In diesem Kapitel werden die wichtigsten Konfigurationsdateien von mapWOC erläutert.
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:
[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 <demo@mapWOC>
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.
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:
[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.
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:
[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-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:
[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)
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.
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/