15 kwietnia 2010

Jak ukryć dowolne pliki wewnątrz plików MS Office?

Wraz z premierą popularnego pakietu biurowego Microsoft Office 2007, gigant z Redmond wprowadził nowy format plików Office Open XML. Ten bazujący na języku XML format zapewnia końcowym użytkownikom między innymi większy poziom bezpieczeństwa, ze względu na to, że dotychczas stosowane binarne formaty plików były znacznie bardziej podatne na wszelkiego rodzaju infekcje. Mało kto jednak wie, że specyfika plików Office Open XML sprawia, że ukrycie innych plików wewnątrz zbiorów tego rodzaju jest niezwykle proste.

Jak zwykle wszystko najlepiej zilustruje i wyjaśni przykład praktyczny. Weźmy pod uwagę przygotowany przeze mnie dla wszystkich czytelników HCSL testowy plik DOCX. Plik ten z pozoru jest zupełnie zwyczajnym plikiem programu Microsoft Word. Okazuje się jednak, że w jego wnętrzu został ukryty inny plik. Czy potraficie go wydobyć? Dla ułatwienia podpowiem tylko, że do wykonania tego zadania nie jest potrzebne ani oprogramowanie MS Word, ani żaden inny specyficzny program. Zapraszam do zabawy. Po wydobyciu ukrytego pliku przez któregoś z czytelników, wszystkie szczegóły zostaną poniżej wyjaśnione.

Okazuje się, że pliki DOCX, to nic innego jak archiwa ZIP zawierające pewien zbiór plików XML. Skoro tak, to w takim archiwum możemy umieścić dowolny zbiór. Otwórzmy nasz plik testowy w programie 7-Zip:
Widzimy wyraźnie, że wewnątrz został ukryty plik HCSL.png.

Dodając własny plik do wnętrza pliku DOCX, spowodujemy, że taki plik będzie przy otwarciu w programie Word powodował wystąpienie ostrzeżeń oraz błędów:
Chcąc tego uniknąć, musimy poddać edycji plik [Content_Types].xml. W celu ukrycia własnych plików wewnątrz plików w formacie Office Open XML możemy również skorzystać ze specjalnego programu opracowanego przez Irongeeka.

Zawartość mojego pliku testowego została przez jednego z czytelników odkryta już po kilku minutach. Stało się tak jednak tylko dlatego, że wszyscy wiedzieliśmy, że w pliku coś zostało ukryte! Pytanie więc, ile czasu zajęłoby odkrycie pliku ukrytego w zupełnie przypadkowym pliku? Czy jeśli ktoś prześle Wam tego typu plik, to czy sprawdzacie go na obecność innych zbiorów potencjalnie ukrytych w jego wnętrzu?

Czy powyższa metoda może zostać wykorzystana do skutecznego ukrywania plików lub do jakiegokolwiek rodzaju ataku? Oczywiście. Jeśli osoba przed którą chcemy ukryć jakiś zbiór nie spodziewa się w żaden sposób obecności plików ukrytych wewnątrz niewinnych plików DOCX, to odkrycie przez nią takiego faktu jest bardzo mało prawdopodobne. Być może taka metoda może również posłużyć do tworzenia publicznych wiadomości z ukrytym przekazem? Być może intruz przesyłając nam specjalnie spreparowany plik tego rodzaju, będzie również w stanie umieścić w naszym systemie dziecięcą pornografię?

Pamiętajmy również, że ukryty plik może być zbiorem szyfrowanym, a ukrycie faktu jego obecności może stanowić po prostu kolejny element zwiększający bezpieczeństwo danych. Często zdarza się bowiem tak, że od zastosowania szyfrowania, skuteczniejsze jest zamaskowanie samej obecności danych...