-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSanitizer.tex
104 lines (80 loc) · 8.67 KB
/
Sanitizer.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
\textbf{
USB-Sticks unbekannter Herkunft können potentiell gefährliche Daten beinhalten oder sich als Hacker Tool erweisen. Malware, Ransomware, Macroviren und andere Schafsoftware kann sich darauf befinden und verbreitet werden. Eine veränderte Firmware kann als Einfallstor, Trojaner oder Keylogger genutzt werden. So einen USB-Stick sorglos in den eigenen PC oder Laptop zu stecken wäre nicht ratsam.\\}
\textbf{Beispiele:}\\
\url{https://usbkill.com} - USB-Killer Gerät\\
\url{https://bit.ly/32x1O8T} - BadUSB\\
\url{https://bit.ly/32wCz6A} - SyncCrypt: Neue Ransomware lauert in JPG-Dateien\\
\url{https://bit.ly/2qFalTz} - Analysiert: Alte Masche, neue Verpackung - Infektion durch PDFs\\
CIRCLean USB-Sanitizer ist eine freie Hardwarelösung zum Überprüfen von Dokumenten auf einem nicht vertrauenswürdigen USB-Stick. Das Gerät kopiert automatisch Dateien und speichert sie auf einem eigenen vertrauenswürdigen USB-Stick.
%Das Gerät konvertiert automatisch Dateien in ein lesbares, aber sicheres Format und speichert es auf einem eigenen vertrauenswürdigen USB-Stick.
Der Fokus vom USB-Sanitizer liegt auf der %Dokumentenaustausch
Dokumentenprüfung, auch wenn die verwendete Transportschicht (der USB-Stick) nicht vertrauenswürdig ist oder ein Verdacht besteht. Im schlimmsten Fall wäre nur das USB-Sanitizer Gerät gefährdet, nicht jedoch der eigene Computer, der die Daten liest.\\
Das System wurde speziell für den Einsatz mit einer Raspberry Pi Hardware vorbereitet. Weitere Informationen kann der Projektseite \url{https://www.circl.lu/projects/CIRCLean/} entnommen werden. Dokumentation, Source Code und das offizielle Image wird auch auf der GitHub Seite \url{https://github.com/CIRCL} zur Verfügung gestellt.
\subsection{GC2-Image CIRCLean USB-Sanitizer}
Der Grazer Computer Club hat über einen GitHub Fork Erweiterungen zum Projekt hinzugefügt und ein eigenes Image erstellt. Über die GitHub Seite \url{https://github.com/GrazerComputerClub/Circlean} wird alles zur Verfügung gestellt.\\
Beim dem GC2-Image werden alle bisherigen Raspberry Pi Typen und Varianten unterstützt. Bei den Raspberry Pi Zero und den A Varianten muss ein USB-Hub bzw. USB-Hub-HAT eingesetzt werden, da Quell- und Ziel-USB-Stick gleichzeitig angeschlossen sein müssen.\\
CIRCLean USB-Sanitizer ist eine freie Software, die von Dritten geprüft und analysiert wird. Das GC2-Image hat zum original Projekt noch Optimierungen, Features in Bereich Visualisierung sowie Kompatibilität hinzugefügt. An der generellen Funktionalität wurden keine Änderungen durchgeführt. Das GC2-Image bzw. das Raspbian Betriebssystem darauf wurde nicht extra gegen Beeinflussung oder mögliche Schwachstellen geschützt, es ist eher als Entwicklungs- und Versuchsversion zu sehen.\\
Als visuelle Rückmeldung werden 3 LEDs an unterschiedlichen Positionen genutzt. Die rote LED leuchtet, wenn der nicht vertrauenswürdigen USB-Stick, also die Quelle eingesteckt wurde. Die grüne LED leuchtet wenn der vertrauenswürdigen USB-Stick, also das Ziel, eingesteckt wurde. Die mittlere orange LED leuchtet, wenn der Synchronisierungsvorgang gestartet wurde. Sie blinkt dabei, wenn eine Übertragung am USB-Bus stattfindet.\\
Es wurden zwei mögliche Positionen für die LEDs vorgesehen. Eine Position ist kompatibel mit der PiStop Ampel (Bezug PIMORONI: \url{https://bit.ly/2VVJ1Sd}) die direkt auf die GPIO-Leiste gesteckt wird. Diese Position bei GPIO25, GPIO8 und GPIO7 ist kompatibel mit allen Raspberry P Versionen.\\
Die zweite mögliche Position ist für die Ampel die beim Raspberry Pi Jam eingesetzt wird (China Produkt). Bei dieser Ampel ist die rote und die grüne LED vertauscht. Sie kann nur auf Raspberry Pi Varianten mit 40-Pin Header Anschluss bei GPIO16, GPIO20 und GPIO21 genutzt werden. Diese Belegung ist auch kompatibel mit dem GC2-xHAT Aufsteckboard. Auch hier sind die entsprechende Ampel-LEDs vorhanden.\\
Zusätzlich gibt es noch zwei Tasten für das Herunterfahren der Raspberry Pi und Starten der Synchronisierung. Hier wurde wieder eine Position für die alten Raspberry Pi Varianten und eine kompatible für den GC2-xHAT vorgesehenen. Die linke Taste am GC2-xHAT startete die Synchronisierung die rechte fährt das System herunter. Besser ist allerdings die Nutzung des GPIO3 da damit auch ein neuerlicher Start ausgelöst werden kann, wenn die Raspberry Pi heruntergefahren wurde.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.2]{images/USB-Sanitizer_26pin_IO.png}
\includegraphics[scale=0.2]{images/USB-Sanitizer_40pin_IO.png}
% \caption{}
\label{LED_Steckplatine}
\end{figure}
\begin{table}[h]
\caption{GPIO Belegung}
\centering
\begin{tabular}{|l|c|l|c|c|}
\hline
\textbf{Bauteil} & \textbf{Aktiv} & \textbf{Funktion} & \textbf{Pos. A} & \textbf{Pos. B} \\
\hline
Rote LED & High & Nicht vertrauenswürdigen USB-Stick & GPIO07 & GPIO21\\
& & angesteckt & & \\
\hline
Orange LED & High & Synchroniserungsvorgang läuft & GPIO08 & GPIO20\\
\hline
Grüne LED & High & Vertrauenswürdigen USB-Stick angesteckt & GPIO25 & GPIO21\\
\hline
Sync Taste & Low & Synchroniserungsvorgang starten & GPIO17 & -\\
\hline
Sync Taste & High & Synchroniserungsvorgang starten & - & GPIO13\\
\hline
Shutdown Taste & Low & System herunterfahren bzw. starten & GPIO03 & -\\
\hline
Shutdown Taste & High & System herunterfahren & - & GPIO26\\
\hline
\end{tabular}
\end{table}
\texttt{Position A} ist kompatibel mit allen Raspberry Pi Versionen. Weiters ist die LED Anordnung kompatibel mit der PiStop Ampel. \\
\texttt{Position B} ist kompatibel mit Raspberry Pi Versionen mit 40-Pin Header. Weiters ist die Anordnung kompatibel mit einer markenlosen Ampel (China Produkt) sowie dem GC2-xHAT.
\clearpage
\subsection{Installation}
Nach dem Download der neuesten Release-Version von \url{https://github.com/GrazerComputerClub/Circlean/releases} liegt das Image "`image\_20\_\_-\_\_-\_\_-CIRCLean-USB-Sanitizer-full.zip"' als komprimierte ZIP-Datei vor und kann direkt auf eine SD-Karte übertragen werden. Hierzu wird eine mindesten 4 GB große SD- bzw. MicroSD-Karte benötigt.\\
Unter Linux kann dazu das grafische Programm Etcher (Download auf \url{hattps://www.balena.io/etcher/}) verwendet werden. Unter Windows kann mit dem Programm "`Rufus"' (Download auf \url{https://rufus.akeo.ie/}) die Übertragung durchgeführt werden. Näheres zur Bedienung der Software kann im Kapitel "`Installation Raspjamming (Raspbian)"' entnommen werden.\\
Danach kann die SD-Karte in den Raspberry Pi gesteckt werden.
\subsection{Funktionsweise}
Man steckt den nicht vertrauenswürdigen USB-Stick links oben in die USB-Buchse. Dann steckt man den vertrauenswürdigen USB-Stick auf eine weitere USB-Buchse. danach wird die Versorgung (Micro USB Power) angeschlossen. Damit fährt das System hoch und der Synchronisierungsvorgang startet ohne Interaktion. Während des Synchronisierungsvorgangs wird Musik abgespielt, sofern Kopfhörer oder Lautsprecher angeschlossen wurden. Danach stoppt die Musik und das System fährt wieder automatisch herunter. Die USB-Sticks können entfernt werden.\\
Beim GC2-Image kann auch zur Laufzeit der Vorgang gestartet werden. Wird das System ohne USB-Sticks gestartet, so verbleibt es im aktiven Zustand. Beim Einstecken der USB-Sticks wird die entsprechende LED eingeschaltet. Die Synchronisierung starten dann nach betätigen der Sync-Taste. Nach dem Synchronisierungsvorgangs erlischt die orange LED und die Musik hört zu spielen auf. Dann können die USB-Sticks entfernt werden. Das Herunterfahren des Systems wird über eine eigene Shutdown-Taste gestartet.\\
\begin{figure}[ht]
\centering
\includegraphics[scale=0.21]{images/Circlean_-_howto-visual-horizontal.png}
% \caption{}
\label{LED_Steckplatine}
\end{figure}
{\footnotesize Lizenz Grafik: CC-BY-SA \url{https://creativecommons.org/licenses/by-sa/3.0/at/},\\ Alexandre Dulaunoy CIRCL - Computer Incident Response Center Luxembourg }
\clearpage
\subsection{Resultat}
Nach dem Synchronisierungsvorgang wurden alle Daten von Quell- auf den Ziel-USB-Stick kopiert. Dabei wurden Archive wie zip- und 7zip-Dateien entpackt und in einem eigenen Verzeichnis geprüft.\\
Möglicherweise gefährliche Dateien wie z. B. Ausführbare- und Scripting-Dateien, Boot-Dateien, Office Dateien mit Macros, WVF-Videos wurden als potentiell gefährlich markiert.\\
Auf dem Quell USB-Stick wurde die Datei autorun.inf umbenannt. Sie ist potentiell sehr gefährlich, wenn sie mit alten Windows Versionen automatisch ein Programm ausführt. Ab Windows XP wurde dieses Verhalten aber bereits aus Sicherheitsgründen deaktiviert (\url{http://technet.microsoft.com/en-us/security/advisory/967940}).
\begin{figure}[ht]
\centering
\includegraphics[scale=0.26]{images/USB-Sanitizer_Src.png}
\includegraphics[scale=0.26]{images/USB-Sanitizer_Des.png}
% \caption{}
\label{USB_Sanitizer_Folder}
\end{figure}