Steganographie
Bei der Steganographie geht es darum, eine geheime Nachricht so zu versenden, dass niemand außer dem gewünschten Empfänger die Existenz dieser Nachricht überhaupt vermutet. Der Begriff kommt aus dem griechischen und bedeutet in etwa „geheimes Schreiben“. So wurden schon in der Antike erste simple Formen der Steganographie verwendet. Statt wie üblich die Nachricht in der Wachs auf einer Wachstafel zu kratzen, wurde die geheime Nachricht in das Holz darunter geritzt und wieder Wachs darüber gegossen.
Linguistische Steganografie
In der heutigen Zeit ist es natürlich naheliegend, die Steganographie in der digitalen statt der analogen Welt einzusetzen. So kann man zum Beispiel schon in Plain Text eine geheime Nachricht verstecken. Viele Texteditoren zeigen standardmäßig Leerzeichen und Tabs am Zeilenende (trailing whitespace) nicht an. Dies macht sich das Tool SNOW (steganographic nature of whitespace) zunutze, um geheime Nachrichten zu verstecken, oder man schreibt gleich komplette Programme in der etwas verrückten Programmiersprache Whitespace.
Technische Steganografie
Die technische Steganografie nutzt das Verstecken von digitalem Inhalt in unauffälligen Medien wie zB Bilder oder Musikdateien. Deutlich verbreiteter und effektiver ist es aber als Tarn-Medium (das so genannter Cover) ein Bild zu nehmen. Bilder haben viele nützliche Eigenschaften, insbesondere dass geringe Änderungen für das menschliche Auge unsichtbar bleiben. Aber auch ihre Größe ist vorteilhaft da ein Bild leicht um den Faktor 1000 größer ist, als die darin zu versteckende Nachricht.
Bei einem Grauwertbild wird typischerweise ein Byte pro Pixel verwendet, also die Helligkeit jedes Bildpunktes wird durch einen Wert zwischen 0 für Schwarz und 255 für Weiß repräsentiert. Dieses Byte besteht wiederum aus 8 Bits, zum Beispiel der Folge 11110000 für den Wert 120. In der Steganographie kann man sich zu Nutze machen, dass das hinterste Bit (least significant bit) nur sehr wenig zum eigentlichen Farbwert beträgt. Es entscheidet nur ob die Zahl gerade oder ungerade ist und wenn der Wert geändert wird, fällt einem Menschen dieser geringe Helligkeitsunterschied gar nicht auf. Somit kann man nun seine geheime Nachricht von den ASCII-Werten in Binärzahlen konvertieren und anschließend in den least significant Bits (LSBs) einbetten. Man braucht also 8 Pixel pro Buchstabe. Weitere Verfahren gibt es auf Basis spezieller Eigenschaften von Datenformaten wie GIF, PNG oder JPEG.
Dazu verwendet man das letze Bit der Farbinformation jedes Pixel. Dadurch verringert sich der Farbraum um ca 10%, was nicht auffällt. Dabei ergeben 3 RGB-Pixel ein 8-Bit-Zeichen. Siehe:
stegosuite -e -f <Geheime.Datei> -k <passwort> <Bild.jpg> # Der Payload darf je nach Bildgröße nicht zu groß gewählt werden stegosuite x <Bild.lpg> -k <passwort> # Extrahiert die Datei
Hier gibt es weitere Infos: https://www.blackmoreops.com/2017/01/11/steganography-in-kali-linux-hiding-data-in-image/
