**************************** mapWOC-Konfigurationsdateien **************************** In diesem Kapitel werden die wichtigsten Konfigurationsdateien von mapWOC erläutert. mapwoc-master ------------- Der *mapwoc-master* steuert eine oder mehrere *mapwoc-nodes* und hört auf einer Adresse auf Befehle und Anfragen (z.B. von der mapwocgui). **/etc/mapwoc/mapwoc-master.config** ist die Konfigurationsdatei für den *mapwoc-master* Befehl. Hier ein Beispiel für so eine Konfigurationsdatei: .. code-block:: bash [config] name=Master address=localhost node_config_dir=/var/lib/mapwoc/master/nodes/ credentials_path=/var/lib/mapwoc/master/key/master_key ctrl_port=8558 work_dir=/var/lib/mapwoc/master/work/ db=/var/lib/mapwoc/db redirector_port=8228 tolerance=101 #sslconfig=/var/lib/mapwoc/master/credentials [notifications] # Configuration of Mail notifications. # Server used to send Mails with smtp_server=mail.domain smtp_port=25 # Mail address to send administrative notifications to admin_mail=admin.mapwoc-demo@domain # Address used by mapWOC as sender sender_mail=MapWOC Demo Alle Werte aus der Konfigurationsdatei lassen sich auch als Option über den Befehl *mapwoc-master* setzen. Hier ein Überblick aller verfügbarer **Optionen** (Auszug aus der Manpage von *mapwoc-master*, siehe auch ``mapwoc-master --help``): :: -v,--verbose Be verbose and chatty on stdout and logfile. -q,--quiet Be quiet, only log warnings and errors. --redirector_port Port to talk to when talking to redirector. --ctrl_port Port to listen on for control commands. --name Name of the master. --address Interface to listen on. --node_config_dir Directory in which to look for node config files. --credentials_path Path to credentials to use when syncing results with nodes. --work_dir Directory to place working data. --db Path to the database. --tolerance Severity threshold (irrevertable). --sslconfig Path to directory containing the {ca,cert,key}.pem files used for secured communication (talk plain text if not given). --config Path to configuration file to read configuration from (or write to if called with --generate-config). --generate-config Generate a configuration file. -h,--help Show help and exit. --version Show version and exit. .. raw:: latex \newpage mapwoc-node ----------- Die *mapwoc-node* hört auf Befehle des *mapwoc-masters*. Typischerweise resultieren diese Befehle im Starten und Stoppen von KVM-Prozessen und Analysieren des Netzwerkverkehrs von den Honey-Clients. **/etc/mapwoc/mapwoc-node.config** ist die Konfigurationsdatei für den *mapwoc-node* Befehl. Hier ein Beispiel für so eine Konfigurationsdatei: .. code-block:: bash [config] ctrl_port=18158 ctrl_interface=localhost hcsdir=/var/lib/mapwoc/node/hcs result_dir=/var/lib/mapwoc/node/results work_dir=/var/lib/mapwoc/node/work num_analyser=4 max_gb_ram=4 analyser=/usr/bin/mapwocanalyse.pl native_gate_script=/usr/lib/mapwoc/dumper_native_hc.sh proxy_script=/usr/lib/mapwoc/mapwoc_redirect_script #Port Range the node may use to start https proxies proxy_ports=10000-11000 #sslconfig=/var/lib/mapwoc/node/credentials Alle Werte aus der Konfigurationsdatei lassen sich auch als Option über den Befehl *mapwoc-node* setzen. Hier ein Überblick aller verfügbarer **Optionen** (Auszug aus der Manpage von *mapwoc-node*, siehe auch ``mapwoc-node --help``): :: -v,--verbose Be verbose and chatty on stdout and logfile. -q,--quiet Be quiet, only log warnings and errors. --ctrl_port Port to listen on for control commands. --hcsdir Directory from which to read HC files. --work_dir Directory in which to work and store temporary files. --result_dir Directory in which to place results that are fetched from master. --num_analyser Number of analyser processes to start in parallel. --max_gb_ram Number of analyser processes to start in parallel. --analyser The program to execute for analysis. --analyser_conf Path to configuration file for analyser. --native_gate_script The program to execute for control of native HCs. --proxy_script Path to script for mitmproxy. --proxy_ports The range of ports the node may use for ssl proxies --sslconfig Path to credentials for secured communication. --config Path to configuration file to read configuration from (or write to if called with --generate-config). --generate-config Generate a configuration file. -h,--help Show help and exit. --version Show version and exit. mapwoc-redirector ----------------- Der *mapwoc-redirector* startet zwei kleine Server. Auf dem einem Server werden HTTP-Anfragen mit HTTP-Redirects (Weiterleitungen) auf URLs einer Liste beantwortet. Der andere Server hört auf Kontrollbefehle, z.B. das Laden einer neuen URL-Liste. **/etc/mapwoc/mapwoc-redirector.config** ist die Konfigurationsdatei für den *mapwoc-redirector* Befehl. Hier ein Beispiel für so eine Konfigurationsdatei: .. code-block:: bash [config] ctrl_interface=localhost ctrl_port=8228 redirector_interface=localhost redirector_port=8123 #sslconfig=/var/lib/mapwoc/redirector/credentials Alle Werte aus der Konfigurationsdatei lassen sich auch als Option über den Befehl *mapwoc-redirector* setzen. Hier ein Überblick aller verfügbarer **Optionen** (Auszug aus der Manpage von *mapwoc-redirector*, siehe auch ``mapwoc-redirector --help``): :: -v,--verbose Be verbose and chatty on stdout and logfile. -q,--quiet Be quiet, only log warnings and errors. --urllist Path to file containing URLs. -p,--redirector_port Port on which to listen for http requests --redirector_interface Interface on which to listen for http requests. --ctrl_interface Interface on which to listen for commands. -c,--ctrl_port Port on which to listen for commands. --sslconfig Path to credentials for secured communication. --config Path to configuration file to read configuration from (or write to if called with --generate-config). --generate-config Generate a configuration file. -h,--help Show help and exit. --version Show version and exit. Honey-Clients ------------- Honey-Client-Systeme (HCS) werden über hcs-Konfigurationsdateien der jeweiligen mapWOC-Node bekannt gemacht. Das ``hcsdir`` -- das Verzeichnis mit den Konfigurationsdateien -- wird in der mapwoc-node.config festgelegt (Voreinstellung: ``/var/lib/mapwoc/node/hcs``). Hier ein Beispiel für eine hc-Datei ``winxp_ie6_demo.hc``: .. code-block:: bash [hc] name=WindowsXP Demo Image IE6 description=Lots of other software on it hcsid=winxp_ie6_demo max_parallel=-1 controllable=true active_browser=cpe://a:microsoft:ie6 installed_software=cpe:o:microsoft:etc [control] type=kvm boots=true image_master=/usr/share/mapwoc/winxp-master.img image_file=/usr/share/mapwoc/images/winxp_ie6_demo.ovl image_memory=128 [network] own_ip=10.0.0.4 dns_ip=10.0.0.3 proxy_ip=10.0.0.2 gateway_ip=10.0.0.1 homepage=http://10.0.0.1/winxp_ie6_demo Hier ein Überblick der verfügbaren Parameter aus der Konfigurationsdatei eines Honey-Clients (HCs): :: [hc] name= Name des HCs. description= Beschreibung des HCs. hcsid= ID des HCs. Muss mit dem Dateinamen der HC-Konfigurationsdatei übereinstimmen. max_parallel= Gibt an, wieviele Instanzen von diesem HC parallel gestartet werden können. Der Wert "-1" (= unendlich) wird für virtuelle HCs verwendet, "1" für native Geräte. controllable= Gibt an, ob der HC von mapWOC steuerbar ist. Bei virtuellen HCs wird "true" verwendet, bei nativen HCs "false. active_browser= Angabe des aktiven Browsers (in CPE-Form). installed_software= Angabe der installierten Software (in CPE-Form). Mehrere Einträge durch ";" trennen. [control] type= Angabe des HC-Steuerungstyps. Mögliche Werte: - 'kvm' (KVM-Image) - 'kvm-mac' (KVM-Image mit MacOSX, erfordert spezielle KVM-Startparameter) - 'native' (nativer HC, wird manuell gesteuert) boots= Diese Variable muss "true" sein, wenn sich das KVM-Image im Ruhezustand ("Supspend-to-disk") befindet. Andernfalls kann der 'boots'-Parameter weggelassen werden. image_master= Angabe des KVM-Master-Images (absoluter Pfad). image_file= Angabe des KVM-Overlay-Images (absoluter Pfad). image_snapshot= Angabe der KVM-Live-Migration-Snapshot-Datei (absoluter Pfad), sofern vorhanden. image_memory= Angabe des durch den HC benötigten Arbeitsspeicher (in MB). kvm_kernel= Angabe eines speziellen KVM-Kernel Parameters zum Starten. Für KVM-MacOSX-Images wird z.B. benötigt: "kvm_kernel=/root/kvm-x/boot-osx-r327". (Details siehe manpage von KVM, Option '-kernel'). interface= Bei Nutzung eines nativen HCs muss hier das VLAN-Interface angegeben werden, z.B.: 'vlan101'. [network] own_ip= IP-Adresse des HCs. dns_ip= DNS-Adresse des HCs proxy_ip= Proxy-Adresse des HCs gateway_ip= Gateway-Adresse des HCs homepage= Startseite des Browsers (Redirector mit hcsid), z.B.: 'http://10.0.0.1/winxp_ie6_demo' client_mac= MAC-Adresses des nativen HCs wlan_ssid= SSID des zu verbindenen WLAN-Netzes für einen nativen HC. [keyboard-shortcuts] homepage= Optionaler Tastatur-Kurzbefehl, um die Browser-Startseite aufzurufen. Voreingestellt ist bereits 'alt-home' (=Alt+Pos1). Anpassungen nur für bestimmte Browser/Betriebssysteme nötig. Z.B. für Safari unter MacOSX: '0xDB-shift-h' (=CMD+Shift+h) Schweregrade ------------ Die vorbelegten Schweregrad-Werte der Ergebnis-Typen lassen sich in der Datei **/etc/mapwoc/severities.conf** ändern. Die Vorbelegung sieht wie folgt aus: :: [severities] RegularTraffic=000 UnknownProtocol=001 GraphicsFound=50 302=60 204=99 404=100 JSAnalyser=100 PDF=199 Flash=200 MSOfficeDocument=210 MACExecutable=211 GoogleAnalyticsParser=500 WindowsExecutable=500 MissingTraffic=600 VirusFound=900 unknown=999 Es können nur die Werte, nicht die Namen der Ergebnis-Typen, verändert werden. Nach Änderung muss der mapwoc-master neu gestartet werden. Die neue Belegung gilt dann nur für alle zukünftigen Scans; nicht rückwirkend für vergangene Scan. Weitere relevante mapWOC-Dateien -------------------------------- Die nachfolgend genannten Pfade zu den Dateien sind Voreinstellungen von mapWOC. Änderungen der Pfade und Dateinamen sind über die zugehörigen Konfigurationsdateien von Master bzw. Node möglich. Die Angaben *[Master]* und *[Node]* sollen bei der Unterscheidung helfen, ob es sich um eine Datei des Masters oder der Node handelt. - *[Master]:* Die **SQLite-Datenbank** liegt unter :: /var/lib/mapwoc/db Die Datenbank existiert nur auf dem Master. - *[Node]:* Das **Arbeitsverzeichnis der Node** liegt unter: :: /var/lib/mapwoc/node/work/ Hier werden die TCP-Dumps (im pcap-Format) von jedem KVM- und Proxy-Prozess für die Analyse abgelegt. - *[Node]:* Das **Analysescript** liegt auf jeder Node unter: :: /usr/bin/mapwocanalyse.pl Dieses Skript analysiert Netzwerkverkehr aus den vorliegenden Dump-Dateien. Dabei werden gesuchte Dateien extrahiert (sofern vorhanden) und durch einen konfigurierten Virenscanner untersucht. - *[Node]:* Die **Anti-Virenscanner-Konfiguration** werden in folgender Datei vorgenommen: :: /etc/mapwoc/antivir.cfg - *[Node]:* **Analysierte Ergebnisse** eines jeden URL-Besuchs werden von der Node hier als tar.gz-Archiv abgelegt: :: /var/lib/mapwoc/node/results/ - *[Master]:* Der Master holt sich die bereitgestellten Ergebnisse von allen Nodes ab und legt sie alle gemeinsam in diesem **Master-Ergebnis-Verzeichnis** ab: :: /var/lib/mapwoc/master/