CERT Tapioca

From Embedded Lab Vienna for IoT & Security
Jump to navigation Jump to search

CERT Tapioca

CERT Tapioca ist ein Dienstprogramm zum Testen mobiler oder anderer Anwendungen mit MITM-Techniken, ist also ein network-layer man-in the-middle-proxy, welcher auf mitmproxy basiert. Die Entwicklung von CERT Tapioca wurde vom United States Army Armament Research, Development and Engineering Center (ARDEC) und dem United States Department of Homeland Security (DHS) gesponsert.

Funktionalitäten

  • Überprüfen, ob getestete Applikationen https Zertifikate validieren
  • Überprüfen der verwendeten Cipher-Suiten, ob diese modernen Kryptographischen Standards entsprechen
  • Aufgebaute Netzwerkverbindungen überprüfen
  • Nach Strings im Network Traffic suchen

System Requirements

  • Basis OS: Raspbian (Jessie oder Stretch), Raspberry Pi OS, Debian 10, Centos (7, 8, oder Stream 8), RedHat Enterprise Linux 7, Fedora (25 bis 33), openSUSE (15.x oder Tumbleweed), oder Ubuntu (16.04, 18.04, 20.04, oder 22.04).
  • RAM: 1 GB
  • Bestehende Internet-Verbindung
  • Die Möglichkeit, dem System wireless access bieten zu können, über:
 1. einen wired Netzwerkadapter, wo ein wireless Access Point angeschlossen werden kann
 2. einen USB wireless Adapter, welcher HOSTAP mode unterstützt.
 

Pre-Installation

Eine bereits installierte Linux Distribution ist notwendig, bare metal oder in einer virtuellen Maschine. Weiters notwendig:

  • Internetverbindung
  • User "tapioca" muss vorhanden sein, dieser soll administrative Rechte haben.
  • Der User "tapioca" soll angemeldet sein.

Verbindungsoptionen

Wird ein wireless Adapter verwendet, soll dieser auf die statische IP `10.0.0.1/24` konfiguriert sein. Wird eine andere Adresse verwendet, müssen die Files tapioca.cfg und /etc/dhcp/dhcpd.conf angepasst werden.

Installation

1. Tapioca Source Code vom Git-Repository klonen (https://github.com/CERTCC/tapioca) oder als zip herunterladen und entpacken.
2. Der Code soll sich im Verzeichnis "/home/tapioca/tapioca" befinden.
3. Den Installer starten mit dem Befehl `./install_tapioca.sh` im entsprechenden Verzeichnis. Eingabeaufforderungen folgen.
4. Nach Abschluss das System neu starten.
5. Nach dem Neustart mit dem User "tapioca" einloggen und die Xfce login session wählen.

Quick Start

Testen von Applikationen auf Wireless Geräten über den HOSTAP Adapter

1. Verbinden eines HOSTAP-fähigen WIFI Adapter zur Tapioca-Maschine.
2. Klicken des Software WIFI AP Buttons (Funkturm-Symbol), um den wireless Access Point zu aktivieren.
3. Gerät mit dem Tapioca Access Point verbinden.
4. Klick auf den Tapioca-GUI-Button, um die Haupttest-Schnittstelle zu starten.

Testen von Applikationen auf Wireless Geräten über den Access Point

1. Den zweiten Netzwerkadapter des OS der Tapioca Maschine auf `10.0.0.1/24` konfigurieren.
2. Falls dieses Netzwerk bei der Installation nicht bereits konfiguriert wurde, führe `./install_tapioca.sh` erneut aus oder bearbeite tapioca.cfg manuell, um diesen Netzwerkgerätenamen für internal_net anzugeben.
3. Wenn Tapioca in einer virtuellen Maschine verwendet wird, konfiguriere den zweiten Netzwerkadapter der Tapioca-VM zu einem ungenutzten physischen Netzwerkadapter.
4. Verbinde den Uplink-Port des Access Points mit dem Tapioca-LAN-Port.
5. Verbinden des Geräts mit dem Access Point.
6. Klick auf den Tapioca-GUI-Button, um die Haupttest-Schnittstelle zu starten.

Testen von Applikationen auf virtuellen Maschinen

1. Den zweiten Netzwerkadapter des OS der Tapioca Maschine auf `10.0.0.1/24` konfigurieren.
2. Verbinde den zweiten Tapioca-Netzwerkadapter mit einem benutzerdefinierten Netzwerk und stelle sicher, dass die Virtualisierungssoftware diesem virtuellen Netzwerk kein DHCP bereitstellt.
3. Falls dieses Netzwerk bei der Installation nicht bereits konfiguriert wurde, führe `./install_tapioca.sh` erneut aus oder bearbeite tapioca.cfg manuell, um diesen Netzwerkgerätenamen für "internal_net" anzugeben.
4. Verbinde den Netzwerkadapter der virtuellen Maschine, auf der sich die zu testende Anwendung befindet, mit demselben virtuellen Netzwerk, das du für den zweiten Netzwerkadapter der Tapioca-VM verwendet hast.
5. Klick auf den Tapioca-GUI-Button, um die Haupttest-Schnittstelle zu starten.

Capture Modes

All traffic with tcpdump mode

Im Modus "All traffic with tcpdump" greift Tapioca nicht in die HTTPS-Aushandlung ein. Dadurch kann Tapioca den HTTPS-Handshake zwischen Client und Server untersuchen.

Verify SSL validation mode

Im Modus "Verify SSL validation" fängt Tapioca den Webverkehr ab, die HTTPS-Kommunikation zwischen dem Client und Tapioca verwendet das erwähnte ungültige Root-CA-Zertifikat. Jeder HTTPS-Verkehr, der durchgelassen wird, ist ein Hinweis, dass der Client HTTPS-Zertifikate nicht validiert.

Full HTTPS inspection mode

Im Modus "Full HTTPS inspection" fängt Tapioca den Webverkehr ab, die HTTPS-Kommunikation zwischen dem Client und Tapioca verwendet ein gültiges Root-CA-Zertifikat vom mitmproxy, das auf dem Client installiert wurde. Dies ermöglicht die Suche nach Inhalten im Webverkehr, auch wenn dieser mit HTTPS verschlüsselt wurde. Diese Erfassung ist erforderlich, um Suchfunktionen im verschlüsselten, aber nicht gepinnten Netzwerkverkehr zu ermöglichen.

Manuelles Ausführen von Scripts

Falls die GUI nicht verwendet wird, oder Troubleshooting notwendig ist, können die Python-Scripts auch manuell gegen aufgezeichneten Netzwerkverkehr (z.B. pcap Files) ausgeführt werden.

  • checkcrypto.py - Überprüft, ob die HTTPS-Verhandlungen sicher sind (pcap erforderlich)
  • checknet.py - Auflistung der Hosts, die mit welchen Protokollen kontaktiert werden, sowie der aufgelösten Hostnamen (pcap erforderlich)
  • checkssl.py - Validierung, dass ein Client überprüft, ob ein SSL-Zertifikat von einem vertrauenswürdigen Anbieter ausgestellt wurde (mitmproxy-Protokolldatei erforderlich)
  • search.py - Suche nach Zeichenfolgen in Netzwerkaufzeichnungen (pcap- und/oder mitmproxy-Protokolldatei erforderlich)

Referenzen: