DataSoft / Nova

Repo for the Open Source version of NOVA
http://www.novanetworksecurity.com/
GNU General Public License v3.0
73 stars 22 forks source link

=============================== What is Nova?

=============================== How does Nova work?

=============================== Enterprise Hardware and Support ===============================

=============================== Automatic Installation Script

=============================== Getting the newest code manually

=============================== Getting Dependencies on Ubuntu

=============================== Building Honeyd

=============================== Building Nova

To build and install Nova run the commands,

Step 1: autoconf
Step 2: ./configure
Step 3: make
Step 4: sudo make install

Refer to the Nova wiki on github for more information.

=============================== User's Manual ===============================

=============================== Daemonizing with Upstart

=============================== High Level Nova Components

Haystack: Active honeypots

Novad: Classification tool

NovaCLI: Nova Command line Interface

Quasar: Nova Web Interface

Haystack Auto Configuration Tool: Generates honeyd configurations based off of nmap scans

    - This tool can scan your network with nmap and then generate honeypot
      configurations that are based on the operating systems and ethernet
      vendors that it finds.

NovaTest: Unit Tests

https://github.com/DataSoft/Nova/wiki/Unit-Testing

=============================== TLS Keys =============================== A set of example TLS keys are provided, but because of their public nature provide no real security. Paths to the TLS keys are in the Nova configuration file at ~/.config/nova/config/NOVAConfig.txt

To generate a self signed certificate and key for the Quasar or Pulsar https interfaces,

Generate a private key

openssl genrsa -out ui.key 1024

Create a request for a certificate

openssl req -new -key ui.key -out ui.csr

Generate a self signed certificate

openssl x509 -req -days 365 -in ui.csr -signkey ui.key -out ui.crt

Creating keys for the Pulsar/Quasar connection is a bit more complicated.

Pulsar authenticates clients by using TLS client certificates signed by a

certificate authority.

Create a new certificate athority

openssl genrsa -des3 -out ca.key 1024 openssl req -new -key ca.key -out ca.csr openssl x509 -req -days 365 -in ca.csr -out ca.crt -signkey ca.key

Create and sign the Pulsar key

openssl genrsa -des3 -out pulsarTether.key 1024 openssl req -new -key server.key -out pulsarTether.csr openssl x509 -req -in pulsarTether.csr -out pulsarTether.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365

Create and sign the Quasar keys. For each quasar instance,

openssl genrsa -des3 -out quasarTether.key 1024 openssl req -new -key server.key -out quasarTether.csr openssl x509 -req -in quasarTether.csr -out quasarTether.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365

Transfer this key to the Quasar instance

Remember to make sure that all paths and passphrases are updated correctly in ~/.config/nova/config/NOVAConfig.txt to use the new keys you created.

=============================== Debian Packages

=============================== Common Problems and solutions

    ==================
    Honeypots aren't responding to packets when run inside a VM
    ==================
      The most common reason for this is that the Virtual Machine is unable
      to open the ethernet interface in promiscuous monitoring mode.
      The standard Linux process is that only root can put the NIC into
      promiscuous mode, so you may need to run VMware as root or change
      permissions of the /dev/vmnet device if using VMware Player or
      Workstation. See link at,

        https://www.vmware.com/support/ws55/doc/ws_net_advanced_linux_vadapter_promiscuous.html

      In addition, VMWare ESX switches have a configuration setting to block
      promiscuous mode that must be disabled for Honeyd to work.

      Virtualbox will need to be set to bridged networking mode and "Allow
      All" under the promiscuous mode setting of the ethernet adapter.

      Finally, some virtual machines will have settings to block MAC or IP
      spoofing from within the VM. This security feature will need to be
      disabled for Honeyd to function.

    ==================
    Honeypots aren't responding to packets sent from the same machine 
    that Honeyd is running on.
    ==================
      This is normal. Honeyd ignores packets from the machine that it's
      running on. You'll need to ping/contact the honeypots from another
      machine on your network for them to respond.

    ==================
    Help! I forgot my Quasar password!
    ==================
      The default password is username 'nova' and password 'toor'. To reset
      things back to this password, login to the machine running nova
      via ssh or a physical shell and run,

            novacli resetpassword

    ==================
    Haystack Autoconfig nmap fails on large networks
    ==================

      Nmap will often fail when scanning networks of size greater than 1024
      IPs with the error "nexthost: failed to determine route" or "Strange
      connect error(105): No buffer space available".  This is usually
      caused by the kernel ARP table running out of space and not being
      garbaged collected fast enough to handle all of the ARP requests nmap
      is doing. The solution is to increase the size by adding the following
      lines to /etc/sysctl.conf,

            net.ipv4.neigh.default.gc_thresh1 = 1024
            net.ipv4.neigh.default.gc_thresh2 = 4096
            net.ipv4.neigh.default.gc_thresh3 = 65536

      Then run the command,

            sysctl -p

      And try running the Haystack autoconfig tool again.

=============================== Tips for debugging problems

    ================== 
    General problems 
    ==================

      To enable verbose debug log messages, run the command,

            novacli writesetting SERVICE_PREFERENCES 0:0+;1:6+;

      If the above fails for some reason, you can also change the logging
      settings manually in the ~/.config/nova/config/NOVAConfig.txt file
      under the SERVICE_PREFERENCES setting.

    =================== 
    Permission Problems 
    ===================

      You should be able to run quasar/novad/honeyd without needing explicit
      root permissions. One requirement for this is that the user you're
      running with is in the "nova" group and has run the nova_init script
      located in Installer/. This script adds the user to the group and also
      configures sudo (via adding a file to /etc/sudoers.d). Logging out and
      back in is required for the group addition to work.

      If you're seeing permission related errors, you can try the following
      commands,

            sudo chmod -R g+rw /usr/share/nova
            sudo chgrp -R nova /usr/share/nova

    =================== 
    Web interface problems 
    ===================

      If you can't access the web interface, try stopping it if it's running
      in 'forever' and manually running it as a foreground process with the
      commands,

            forever stopall
            quasar --debug

      This should provide more verbose output and show if it is crashing
      rather than running it as a background daemon process.

      =================== 
      Novad Problems 
      ===================

      If Novad appears to be having problems, try to start it manually
      instead of as a background process with the command

            novacli start nova debug

      =================== 
      Haystack Problems 
      ===================

        If the Haystack appears to be having problems, try to start it
        manually instead of as a background process with the command,

            novacli start haystack debug

      =================== 
      Reinstalling 
      ===================

        If something gets messed up to the point you want to start over, you
        can do so with the commands,

            cd $NOVA_SOURCE sudo make reinstall

        Note that this will remove any configuration changes that you made.

      =================== 
      Building with debugging symbols
      ===================

        If you're seeing novad crash, it might be helpful to compile with
        debugging symbols and get a stack trace. 

            cd $NOVA_SOURCE make clean make debug make reinstall

            gdb novad
            run
            backtrace

=============================== RSyslog Support

There is an option for designating a target Rsyslog instance electing to receive messages exposed within the Advanced Options page of the Quasar Web UI. Some suggestions:

-Make sure that whatever IP is pointed is given in the format IP_ADDRESS:PORT.

-Make sure the designated port is both open and listening on the receiving machine. The easiest way to do this is to uncomment the InputTCPServer lines in /etc/rsyslog.conf and change the port number away from 514 (because rsyslog now drops permissions, using port 514 is no longer an option, as it's < 1024). To test that rsyslog is listening, run

    netstat -tlnup | grep PORT

as root and check that the PID/Name combination for rsyslogd is listed under the results. The port may also need to be registered into the /etc/services file, if changed from the normal port 514.

-Within /etc/rsyslog.d/ lie the configuration files; in one of these files, a rule MUST be created similar to the following:

    :programname,isequal,"Nova" YOUR_ACTION_CHOICE  

where YOUR_ACTION_CHOICE represents the action (most likely a write to a destination) to take upon receipt of messages from a client server that have those program names. This is to help organize the logs, as Nova can potentially send many log messages that would otherwise pollute the normal syslog file. Note that there will be three rules like this total, one each for the strings "Nova", "novad" and "honeyd"

Testing that these changes worked is a good idea as well. Simply start and stop novad on the client with the novacli command line interface and check that the log messages sent at startup arrived at the right place

=============================== Pulsar

Warning: Pulsar was a prototype for controlling multiple instances
of Nova across different physical locations. This tool isn't currently
supported.

Pulsar does not install with the standard Nova ./configure, make, make

install process. Instead, the user must change directory into the Nova directory (most commonly located in the /home/$USER/Code/ directory) and run make install- pulsar with superuser permissions. This will place the Pulsar files within the proper directories and allow for the user to use the alias 'pulsar' on the command line to start the forever process for Pulsar. To access the Pulsar interface, the user must first have configured Nova such that it has the MASTER_UI_ENABLED configuration variable set to 1, as well as properly configuring the MASTER_UI_IP and MASTER_UI_CLIENT_ID variables to match the location and naming requirements for the user's network.

=============================== Ceres

Warning: Ceres was a prototype for allowing remote access to Nova 
information via an Android application. It is no longer supported.

=============================== Contact us

Feel free to contact the authors with issues and suggestions.

Found a bug? Had an install problem? Tell us about it on our issue tracker: https://github.com/DataSoft/Nova/issues

Want to chat with us? Hop on IRC: Server: irc.oftc.net Channel: #nova

Email the team: nova@datasoft.com

And additional contact information should be available on the Datasoft github account located at,

https://github.com/DataSoft