Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Śledzenie otwierania dokumentów MS Office
Wstęp
Jedną z inspiracji do napisania tego tekstu był niedawny komentarz na Sekuraku.
Zacznijmy od zastanowienia się, jakie cele mogą przyświecać dodawaniu zewnętrznych obrazków do dokumentów. Mogą być prozaiczne: jak zwykła ciekawość czy chęć przeprowadzenia analizy statystycznej (Analytics dla Worda? czemu nie!), ale również może to być zamierzone jako swoiste zastawienie zasadzki.
Wyobraźmy sobie sytuację, w której podejrzewamy, że dokumenty z firmy są wykradane, ale brak nam na to dowodów. Przygotowujemy zatem plik Worda z odniesieniem do zewnętrznego obrazka na naszym serwerze, licząc na to, że włamywacze spróbują otworzyć ten dokument. Jeżeli haczyk zostanie połknięty, otrzymamy cenną informację, że rzeczywiście plik został otwarty, dodatkowo poznając adres IP owego niepożądanego czytelnika.
Całość przykładowego scenariusza prezentujemy na diagramie poniżej:
Jak to zrobić?
1. Microsoft Office
Dodanie odniesienia do zewnętrznego obrazka w pakiecie Office Microsoftu jest bardzo łatwe. Procedura wygląda tak samo w Wordzie, Excelu i PowerPoincie. Screeny zostały zrobione w Wordzie 2007, w innych wersjach poszczególne kroki mogą wyglądać trochę inaczej.
- Na wstążce wybieramy zakładkę Wstawianie, następnie Obraz.
- W polu Nazwa pliku wklejamy adres URL pliku, do którego chcemy się odnieść (w przykładzie używamy logo Sekuraka).
- Naciskamy na strzałkę obok przycisku Wstaw i wybieramy opcję Połącz z plikiem. Dzięki temu obraz zawsze będzie pobierany z Internetu i nie będzie miał kopii offline.
Aby sprawdzić, czy rzeczywiście rysunek zawsze jest pobierany z Internetu, możemy spróbować otworzyć dokument z Wiresharkiem w tle lub, co chyba jeszcze łatwiejsze, odłączyć wcześniej kabel sieciowy. W drugim przypadku zostanie wyświetlona informacja, że plik nie może zostać pobrany.
Istnieje jeszcze alternatywna metoda, działająca wyłącznie w Wordzie.
- W zakładce Wstawianie wybieramy Szybkie części->Pole.
- Z listy po lewej stronie zaznaczamy IncludePicture.
- W polu Nazwa pliku lub adres URL wklejamy adres odpowiedniego obrazka i pamiętamy o zaznaczeniu opcji Dane nieprzechowywane z dokumentem.
- Zatwierdzamy przyciskiem OK.
2. LibreOffice
Sposób postępowania jest podobny, jak w pakiecie firmy z Redmond.
- Przechodzimy do menu Wstaw->Obraz->Z pliku.
- Wklejamy URL obrazka i wybieramy opcję Łącze.
- Wybieramy Otwórz.
- LibreOffice może jeszcze zapytać, czy na pewno nie chcemy zagnieżdżać obrazka w pliku. Klikamy Pozostaw łącze.
Podobnie jak w przypadku MS Office plik obrazka został dołączony i znów stosujemy metodę odpięcia kabla sieciowego jako weryfikację, że plik rzeczywiście pobierany jest zdalnie. ;-)
Jak się zabezpieczyć?
Znamy już sposoby na dodanie do dokumentu obrazka pobieranego z Internetu. Czy opisane powyżej metody zawsze działają?
W przypadku Office’a: odpowiedź brzmi: nie. Obrazki zdalne nie są wyświetlane, gdy plik zostanie otwarty w trybie chronionym.
Gdy jednak tryb chroniony nie włącza się, jedyną aplikacją z trójki: Word, Excel i PowerPoint, która domyślnie blokuje dołączanie obrazków z zewnętrznych źródeł, jest… ta trzecia.
Czy w pozostałych aplikacjach takie ostrzeżenie też może być wyświetlane? Na stronach Microsoftu znaleźliśmy podstronę poświęconą dołączaniu zewnętrznych źródeł danych (niemniej dotyczy ona wyłącznie programów Excel i PowerPoint), według której domyślnie obrazki zewnętrzne nie są wyświetlane w celu ochrony prywatności użytkownika. Sprawdziliśmy już, że w Excelu nie jest to prawda…
Zajrzeliśmy następnie do wspominanego w pomocy Centrum Zaufania. Jedynie w Excelu znaleźliśmy tam zakładkę Zawartość zewnętrzna. Mimo że z pomocy wynika, że powinna wystąpić również w PowerPoincie – nie widać jej (trochę to zaskakujące, biorąc pod uwagę fakt, że akurat tylko PowerPoint blokował obrazki). Wracając do Excela, Zawartość zewnętrzna nie zawiera żadnych opcji związanych z dołączaniem obrazków, stąd nawet ustawienie obu dostępnych opcji w pozycji Wyłącz… nie zablokowało żadnych zewnętrznych odniesień do obrazków.
Przeprowadziliśmy testy również na Office for Mac 2011. Okazało się, że obrazki zewnętrzne dodawane pierwszą metodą (a więc Połącz z plikiem) w ogóle nie były wyświetlane (it’s not a bug, it’s a feature?), zaś IncludePicture w Wordzie działał, bez możliwości zablokowania.
Jak na tle pakietu Microsoftu wypada jego otwartoźródłowy odpowiednik? Równie słabo. W ustawieniach LibreOffice nie znaleźliśmy żadnych opcji pozwalających jakkolwiek ograniczyć dołączanie obrazków z zewnętrznych lokalizacji. W każdym z testowanych przez nas plików (.docx, .xlsx, .pptx) grafiki były wyświetlane, z wyjątkiem obrazków dodanych metodą IncludePicture (co najpewniej wynika z braku kompatybilności).
Wnioski
W tabelce poniżej przedstawiamy wyniki naszych testów przeprowadzanych na pakietach Office 2007, LibreOffice 4.1.0.4 oraz Office For Mac 2011.
Wyświetlanie zewnętrznych obrazków w zależności od pakietu biurowego i typu pliku.
|
.docx |
.docx (IncludePicture) |
.xlsx |
.pptx |
MS Office 2007 |
Działa |
Działa |
Działa |
Ostrzeżenie |
Libre Office 4.1.0.4 |
Działa |
Nie działa |
Działa |
Działa |
Office for Mac 2011 |
Nie działa |
Działa |
Nie działa |
Nie działa |
Podsumowując: PowerPoint jako jedyny ze wszystkich testowanych aplikacji wyświetla ostrzeżenia o dołączaniu plików z zewnętrznych źródeł. W pakiecie MS Office (w wersji co najmniej 2010) jedyną domyślną linią obrony jest szansa, że plik zostanie otwarty w trybie chronionym. W pozostałych przypadkach pakiety biurowe nie umożliwiają blokowania zewnętrznych grafik.
Załączniki
Poniżej udostępniamy do pobrania wygenerowane przez nas pliki. Nie musicie się obawiać, każdy z nich zawiera odwołania jedynie do logo Sekuraka :-). Zachęcamy do testów i uzupełniania naszej tabelki o kolejne wersje programów biurowych, być może w innych wersjach systemu/oprogramowania zachowanie poszczególnych aplikacji będzie różne.
- sekurak.docx
- sekurak2.docx (includepicture)
- sekurak.xlsx
- sekurak.pptx
—Michał Bentkowski
A jakiś przykład do pdf?
Powklejałoby się w CV.
Przecież takiego docxa możesz sam zapisać jako pdfa i zobaczyć na typowych programach (Adobe Reader, Foxit Reader i ten domyślny czytnik z Windows 8 na przykład) czy i w jaki sposób to działa. Sekurak podrzucił Ci ciekawy temat i ja tam się cieszę, że nie podał wszystkiego na tacy.
Kombinowanie i praktyka to droga do sukcesu ;)
Wymaga to więcej zabawy i nie ma gwarancji sukcesu ;)
Zobaczcie np.: http://stackoverflow.com/questions/1833222/adding-external-images-to-pdf-using-itext
Do PDFa można dodać JS
Mozna przetestować w: Dropbox, Google Drive, Gmail :P
Możesz powiedzieć w jaki sposób można to potem sprawdzić, czy link został otwarty? Czy w jaki sposób to kontrolować na którymkolwiek z tych domen sprawdzić jakieś logi czy coś? Nie studiowałem infy, i jestem raczej zielony w tym temacie :)
Jako zabezpieczenie nie starczy regułka w firewallu?
Wystarczy ale pamiętaj że to HTTP… więc musisz zblokować ludziom web, no chyba że będziesz robił jakieś matche np. po user agencie.
Wtedy można przerzucić się na protokoły HTTPS lub np. FTP, które, co ciekawe, też działają i w Libre, i w MS Office.
Myślałem raczej o zablokowaniu MSWordowi dostępu do sieci po prostu.
Czasami wystarczy samo odpytanie o domenę.
Masz np. domenę ja.pl
Wysyłasz CV z linkiem http://cv201402282049.ja.pl/plik.jpg i sprawdzasz logi swojego dnsa czy ktoś odpytywał.
Bo w tym dziadowskim Office for Mac mało co w ogóle działa. Jest strasznie okrojony (niech ktoś znajdzie na przykład obsługę żądań przeczytania wiadomości w Outlooku)…
MS word 97 z dodatkiem wyświetlającym docx:
sekurak.docx – wyświetlił najpierw pustą ramkę później doczytał obrazek
sekurak2.docx – Błąd! Nieznany argument przełącznika.
MS excel 97:
sekurak.xlsx – wyświetlił prostokąt trójkąt i kółko
PPviewer 2010:
sekurak.pptx – zamknął się zanim coś się pokazało
A skąd Ty wziąłeś takiego starego worda? ;-) 97 to juz chyba z kilka lat nie jest supportowany (dla Office 2003 mają zakończyć support jakoś z XP).
Firmowy! :-)
To chyba ma coś wspólnego z prawami Murphy’ego ;-)
– Stare systemy produkują stare błędy.
– Nowe systemy produkują tak nowe, jak i stare błędy.
@Amadeuszx
Firmowy Office z 97 roku…
A Małomiękki chce, żeby firmy porzuciły XP-ka :D
Życzę szczęścia…
widać zaprzyjaźnił się z Panem Spinaczem i nie chce przyjaźni zerwać.
Dzięki.
Zanim artykuł powstał to ja se ręcznie podmieniłem w hex edytorze odnośniki.Musiałem się trochę pobawić zanim udało mi się to zrobić bez naruszenia struktury pliku.
W tym pliku z przykładu który podałem w komentarzu było kilka odnośników( w tym „inculde picture”). Pewnie były użyte 2 metody naraz.
PS. Na Word Viewer też działa.
Nie jest powiedziane czy w Libre Office można zabezpieczyć przed tym.
PS.
Mam jeszcze inny możliwy scenariusz:
1.Andrzej wysyła leve cv ze „zdjeciem” do firmy którą podejrzewa o sprzedaż danych osobowych.
2.Jeśli zdjęcie zostaną obejrzane z 2 różnych sieci(z 2 razem jakiś czas później) to Andrzej może być prawie pewien, że firma sprzedaje dane osobowe.
A no tak, OpenOffice jest robione przez apaczów – z pewnością zablokowali taką zabawkę z przyzwyczajenia ;)
#odpowiedź 7661827 na pytanie z serii: co to jest LibreOffice i skąd na Boga ktoś to wyciągnył?
Warto zwrócić uwagę na powiązany z tematem eksperyment z Dropboxem i usługę HoneyDocs:
http://www.wncinfosec.com/dropbox-opening-my-docs/
PS. Czy zna ktoś jakąś inną usługę, która zapisze i później da dostęp do pełnych nagłówków żądania HTTP? Fantastycznie jakby wykonywała przekierowanie HTTP pod wskazany. Nie chce nic samemu stawiać, zarządzać, myśleć o tym …
Próbowałem powtórzyć ten eksperyment, nie udało mi się…
Libreoffice ma taką opcję w najnowszej wersji: whatofhow.wordpress.com/2013/12/02/stealth-mode/
Zrobił bym prędzej jakiś SET i PDF – może opiszecie krok po kroku jak to zrobić ?
…wystarczy HTML jako .DOC zapisać :)
np.
z logów serwera:
1.2.3.4 – – [25/Jan/2015:14:44:00 +0100] „OPTIONS / HTTP/1.1” 200 30212 „-” „Microsoft Office Protocol Discovery”
1.2.3.4 – – [25/Jan/2015:14:44:01 +0100] „GET /test HTTP/1.1” 404 585 „-” „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; ms-office; MSOffice 14)”
1.2.3.4 – – [25/Jan/2015:14:44:02 +0100] „GET /test HTTP/1.1” 404 585 „-” „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; ms-office; MSOffice 14)”
Pakiet 2013 na Windzie blokowane wszystko word,excel,powerpoint :(
Testowałem teraz wasze pliki na Office for Mac 2016 i na każdym otwiera się obrazek bez zapytania.
WPS Office by KingSoft:
WPS Writer: sekurak.docx – Działa, wysłało zapytanie, brak ostrzeżenia, nie widać obrazka(?)
WPS Writer: sekurak2.docx – Działa, wysłało zapytanie, brak ostrzeżenia, nie widać obrazka(?)
WPS Spreadsheets – Działa, wysłało zapytanie, brak ostrzeżenia, nie widać obrazka(?)
WPS Presentation – Nie działa, zapytanie nie zostało wysłane, nie widać obrazka
Dziwne, że obrazki nie wyświetlają się. Można je zaznaczyć i edytować, ale obrazka nie ma (przezroczyste).
Się jak może to zadziałać w Word 2010 w górę skoro defaultowo dla plików sciągniętych z Internetu Windows Attachment Execution Service oznacza w ads’ie pliku że pochodzi z Internetu i uruchamia Protected View. O ile się nie mylę dopóki Pani/ Pan z HR nie opuści tryb chroniony to opisany artykuł nie ma zastosowania czy się mylę?
Jak widać po komentarzach innych ludzików – różnie z tym bywa :)
Tak, tyle że z tych komentarzy nie wynika, czy opuścili Protected View czy nie …
Do LibreOffice poleciał feature request ;).
https://ask.libreoffice.org/en/question/75305/feature-request-a-mode-that-prevents-loading-external-resources/
To chyba może być też idealne narzędzie do spearphishingu – można je nieźle 'targetować’ – wysyłać raz zwykłe obrazki a raz pliki z wirusem. Może nawet dałoby się wykryć kiedy obrazek ściąga skaner wirusów i wtedy wysyłać coś nieszkodliwego.
zdecydujcie się czy piszecie po polsku czy po angielsku, bo nie da się tego czytać, jak co drugie słowo jest w innym języku. „upload na share dyskowy”, „request do serwera trackującego”…