Avidata Sp. z o.o. ul. Górczewska 53 01 401 Warszawa kontakt@avidata.pl Warszawa 1.11.2018 r. Rozwiązanie zadań Konkursu, w którym nagrodą była wejściówka na Security PWNing Conference 2018 W konkursie należało udzielić odpowiedzi na następujące pytania: 1. Jaka będzie suma md5 i suma sha256 pliku o sumie sha1: b4aea5a24d82b99e27c707bfa5b2386616fc678f 2. Podać producenta i model kamery jaką nagrano wystąpienie na temat odzyskiwania danych, w czasie Security PWNing Conference 2017. 3. Jakie oprogramowanie posłużyło do opracowania tego materiału video i w jakim systemie operacyjnym (rodzina systemów) ono działało? 4. Jaka była ścieżka do pliku wspomagającego montaż, tworzonego przez to oprogramowanie, (plik projektu audio-wideo)? 5. Podać czas (z dokładnością do minut) utworzenia ostatecznej formy tego materiału, oraz czas umieszczenia go w serwisie YouTube. (Nie jest to ten sam czas, co publikacji w serwisie). Odpowiedzi: 1. Prawidłowa suma md5: 5cf7e8abd723a12e73f307050e7b5ed9 i sha256: bdc092699418d66269ce0dfdcfa980a6d68b27ec494b3a4e210622ef31958116. Obie podane są jako komentarz do materiału z Security PWNing 2017 Conference, opublikowanego pod adresem: https://www.youtube.com/watch?v=ciwggxx2qu Stanowią one wyniki funkcji skrótu z oryginalnego pliku dostępnego pod adresem: https://avidata.pl/docs/kulczycki Avidata PWNing2017.mp4 Sugerowana metoda znalezienia odpowiedzi: W związku z pozostałymi pytaniami, konieczne jest wejście na powyższą stronę serwisu YouTube, oraz pobranie pliku mp4 z serwisu Firmy Avidata Sp. z o.o.. Wystarczyło więc, obliczyć sumę sha1 z tego pliku, aby potwierdzić, że podane w opisie sumy, są odpowiedzią na to pytanie (bez konieczności ich przeliczania). 2. Producent kamery: Panasonic, model: AG-HMC150. Informacje te zawarte są w strukturach metadanych pliku mp4, pobranego z serwisu Firmy Avidata Sp. z o.o. Sugerowana metoda znalezienia odpowiedzi: Ze względu na wszechstronność obsługiwanych formatów, sugerowanym, darmowym narzędziem (o otwartym kodzie), do odczytu metadanych jest oprogramowanie exiftool, choć podgląd w edytorze heksadecymalnym, czy też za pomocą programu strings powinien pozwolić na wydobycie tej informacji. Powyższe dane, znajdują się w XML-owym segmencie metadanych XMP:
tiff:make="panasonic" tiff:model="ag-hmc150" Przy odczycie wszystkich metadanych (z etykietami nadawanymi przez program): Pantry Make : Panasonic Pantry Model : AG-HMC150 3. Do edycji materiału użyto oprogramowania: Adobe Premiere Pro CC 2018.0 (Windows) Adobe Photoshop CC (Windows) Adobe Premiere Pro CS6 (Windows) Na materiał zawarty w pliku mp4 składają się segmenty planszy początkowej i końcowej oraz materiału video. Poszczególne elementy były tworzone i edytowane różnymi narzędziami, kluczowe w tym przypadku etykiety to CreatorTool (alternatywnie Creator Tool) i softwareagent (alternatywnie Software Agent). xmp:creatortool="adobe Premiere Pro CC 2018.0 (Windows)" stevt:softwareagent="adobe Premiere Pro CC 2018.0 (Windows)" xmp:creatortool="adobe Photoshop CC (Windows)" stevt:softwareagent="adobe Photoshop CC (Windows)" stevt:softwareagent="adobe Premiere Pro CS6 (Windows)" Odczyt wszystkich metadanych z etykietami nadawanymi przez program: Creator Tool : Adobe Premiere Pro CC 2018.0 (Windows) History Software Agent : Adobe Premiere Pro CC 2018.0 (Windows), Adobe Premier e Pro CC 2018.0 (Windows), Adobe Premiere Pro CC 2018.0 (Windows), Adobe Premiere Pro C C 2018.0 (Windows) Pantry Creator Tool : Adobe Photoshop CC (Windows) Pantry History Software Agent : Adobe Premiere Pro CS6 (Windows) 4. Ścieżka do pliku projektu: E:\PWN\wyklady pwn.prproj Analogicznie do poprzednich metadanych, tym razem z Path w etykiecie:
stref:filepath="gfx_2018_1.jpg" stref:filepath="napis 2018.psd" stref:filepath="tło1.psd" stref:filepath="gfx2_piziom2.jpg" stref:filepath="gfx2_piziom2.jpg" creatoratom:uncprojectpath="\\?\e:\pwn\wyklady pwn.prproj"/> Oprócz zasadniczej informacji o ścieżce, pokazane zostały dodatkowo komponenty wchodzące w skład projektu. Podczas odczytu wszystkich metadanych, z etykietami nadawanymi przez program: Ingredients File Path : 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, 00005.MTS, GFX_2018_1.jpg, living_it_up_full _version.wav, living_it_up_full_version.wav, living_it_up_full_version.wav, living_it_up _full_version.wav, napis 2018.psd, tło1.psd, GFX2_PIZIOM2.jpg, GFX2_PIZIOM2.jpg Windows Atom Unc Project Path : \\?\E:\PWN\wyklady pwn.prproj 5. Czas utworzenia materiału stanowiącego plik mp4: 2018-09-12 10:33 UTC (2018-09-12 12:33 CET). Czas umieszczenia materiału w serwisie YouTube przedział: od 2018-09-14 09:38 UTC (2018-09-14 11:38 CET), do 2018-09-14 11:53 UTC (2018-09-14 13:53 CET). Dla strumienia o najlepszych parametrach audio i video: 2018-09-14 09:46 UTC czas modyfikacji na podstawie metadanych w pliku strumienia, 2018-09-14 11:48 CET czas modyfikacji pliku (na podstawie parametru nagłówka odpowiedzi HTTP Last-Modified). O ile odpowiedź na pierwszą cześć pytania można ustalić na podstawie metadanych pliku mp4, o tyle druga cześć była dość podchwytliwa, stąd pewien zakres, a nie jedna konkretna wartość czasu dodania materiału do serwisu YouTube. Zgodne ze specyfikacją, w odpowiedzi z użyciem protokołu HTTP, może pojawić się znacznik czasu Last-Modified. Co do zasady odpowiada on czasowi modyfikacji danego zasobu, w systemie plików serwera, odpowiadającego na zapytanie o ten zasób (wartości zwracane jako znacznik czasu strefy UTC). Program pobierający strumień video, może taką właśnie wartość ustawić, po pobraniu strumienia danych do pliku, jako czas modyfikacji tego pliku, w lokalnym systemie plików. Z drugiej strony wiadomo że, pliki multimedialne zapisują parametry utworzenia i modyfikacji wewnątrz własnych struktur metadanych.
Sugerowana metoda znalezienia odpowiedzi: Dla etykiety z Date wyniki dla pliku mp4: xmp:createdate="2018-09-12t12:33+02:00" xmp:modifydate="2018-09-12t12:33:22+02:00" xmp:metadatadate="2018-09-12t12:33:22+02:00" Z etykietami tworzonymi przez program: Track Create Date : 2018:09:12 10:33:00 Track Modify Date : 2018:09:12 10:33:00 Media Create Date : 2018:09:12 10:33:00 Media Modify Date : 2018:09:12 10:33:00 Create Date : 2018:09:12 12:33+02:00 Modify Date : 2018:09:12 12:33:22+02:00 Metadata Date : 2018:09:12 12:33:22+02:00 W celu pobrania strumieni multimedialnych z serwisu YouTube, sugerowane jest użycie youtube-dl. Program ten ma bardzo rozbudowane możliwości, jeśli chodzi o pobieranie i integrowanie strumieni multimedialnych. Tak jak w przypadku exiftool jest to rozwiązanie o otwartym kodzie źródłowym. Program ten stara się wykorzystać znacznik HTTP Last-Modified w sposób wcześniej opisany. Dodatkowo pozwala na określenie możliwych formatów strumieni oferowanych przez serwer. Służy do tego opcja -F: 0x726D202D7266202F@localhost:/tmp $ youtube-dl -F https://www.youtube.com/watch?v=ciwgg XX2QU format code extension resolution note 249 webm audio only DASH audio 54k, opus @ 50k, 18.88Mi 250 webm audio only DASH audio 70k, opus @ 70k, 21.84Mi 171 webm audio only DASH audio 126k, vorbis@128k, 35.62Mi 140 m4a audio only DASH audio 130k, m4a_dash container, mp4a.40.2@128 k, 47.96Mi 251 webm audio only DASH audio 134k, opus @160k, 39.80Mi 160 mp4 256x144 144p 82k, avc1.4d400c, 25fps, video only, 5.08Mi 278 webm 256x144 144p 91k, webm container, vp9, 25fps, video only, 15.10Mi 242 webm 426x240 240p 121k, vp9, 25fps, video only, 13.03Mi 133 mp4 426x240 240p 183k, avc1.4d4015, 25fps, video only, 10.14Mi 243 webm 640x360 360p 230k, vp9, 25fps, video only, 24.20Mi 134 mp4 640x360 360p 286k, avc1.4d401e, 25fps, video only, 14.92Mi 244 webm 854x480 480p 406k, vp9, 25fps, video only, 44.00Mi 135 mp4 854x480 480p 552k, avc1.4d401e, 25fps, video only, 33.37Mi 247 webm 1280x720 720p 746k, vp9, 25fps, video only, 131.75Mi 136 mp4 1280x720 720p 1075k, avc1.4d401f, 25fps, video only, 88.03Mi 248 webm 1920x1080 1080p 1571k, vp9, 25fps, video only, 397.42Mi 137 mp4 1920x1080 1080p 2253k, avc1.640028, 25fps, video only, 460.08 Mi 17 3gp 176x144 small, mp4v.20.3, mp4a.40.2@ 24k, 16.48Mi 36 3gp 320x180 small, mp4v.20.3, mp4a.40.2, 45.56Mi 43 webm 640x360 medium, vp8.0, vorbis@128k, 95.72Mi
18 mp4 640x360 medium, avc1.42001e, mp4a.40.2@ 96k, 97.73Mi 22 mp4 1280x720 hd720, avc1.64001f, mp4a.40.2@192k (best) Do pobierania konkretnego formatu strumienia służy opcja -f format code. Po pobraniu wszystkich możliwych formatów strumieni, można kolejne pliki przeanalizować za pomocą exiftool, zwracając uwagę na dwie etykiety: File Modification Date/Time i Modify Date. Przykładowo dla pliku o kodzie typu 22 (najlepsza jakość dźwięku i obrazu): 0x726D202D7266202F@localhost:/tmp $ youtube-dl -f 22 https://www.youtube.com/watch?v=ci WGGXX2QU 0x726D202D7266202F@localhost:/tmp $exiftool Security\ PWNing\ Conference\ 2017\ -\ Kacp er\ Kulczycki-CIWGGXX2QU.mp4 File Modification Date/Time : 2018:09:14 11:47:31+02:00 Modify Date : 2018:09:14 09:45:41 Dzięki tak zgromadzonym parametrom można przygotować następującą tabelę: type File Modification Date/Time Modify Date note 136 2018:09:14 11:38:15 CET 2018:09:14 09:38:15 UTC 135 2018:09:14 11:38:15 CET 2018:09:14 09:38:15 UTC 134 2018:09:14 11:38:15 CET 2018:09:14 09:38:15 UTC 133 2018:09:14 11:38:15 CET 2018:09:14 09:38:15 UTC 160 2018:09:14 11:38:15 CET 2018:09:14 09:38:15 UTC 137 2018:09:14 11:39:47 CET 2018:09:14 09:39:47 UTC 140 2018:09:14 11:43:29 CET 2018:09:14 09:43:29 UTC recode 36 2018:09:14 11:45:55 CET 2018:09:14 09:45:38 UTC T 17 2018:09:14 11:45:55 CET 2018:09:14 09:45:40 UTC T 18 2018:09:14 11:46:04 CET 2018:09:14 09:45:38 UTC T 22 2018:09:14 11:47:31 CET 2018:09:14 09:45:41 UTC T 43 2018:09:14 12:59:02 CET 250 2018:09:14 13:03:27 CET 171 2018:09:14 13:03:52 CET 251 2018:09:14 13:03:56 CET 249 2018:09:14 13:04:35 CET 248 2018:09:14 13:52:41 CET 247 2018:09:14 13:52:41 CET 244 2018:09:14 13:52:41 CET 243 2018:09:14 13:52:41 CET 242 2018:09:14 13:52:41 CET 278 2018:09:14 13:52:41 CET Widać więc, że przekodowywanie oryginalnego materiału przez serwis YouTube, szczególnie w przypadku dużych plików, zajmuje sporą ilość czasu. Dodatkowo pewne formaty oferowane przez serwis, nie mają znacznika czasu w swojej strukturze (wtedy z pomocą przychodzi informacja z Last-Modified). Ciekawostki W przypadku ścieżki audio o kodzie 140 oryginalne metadane były dostępne w pliku, do momentu pełnego pobrania całości strumienia. Niestety po pobraniu następowało ponowne przekodowywanie przez ffmpeg i oryginalne metadane były tracone, jednak czas modyfikacji pliku ustawiany był przez youtube-dl na ten z Last-Modified. (W trakcie pobierania, czas ostatniej modyfikacji docelowego pliku, zmieniał się oczywiście na bieżąco). W przypadku materiału o kodzie 36, 17, 18, 22, czas ostatniej modyfikacji pliku, wpisywany do struktur metadanych nie był tożsamy z czasem z Last-Modified. Oznacza to że, zapis na dysku utworzonych plików został w pewnym momencie opóźniony, w stosunku do wprowadzanych w plikach zmian. Na zakończenie można jeszcze przyjrzeć się mechanizmom konwersji i publikacji w serwisie YouTube, grupując wyniki listowania dostępnych formatów, względem czasu ich gotowości.
type extension resolution note 136 mp4 1280x720 720p 1075k, avc1.4d401f, 25fps, video only, 88.03Mi 135 mp4 854x480 480p 552k, avc1.4d401e, 25fps, video only, 33.37Mi 134 mp4 640x360 360p 286k, avc1.4d401e, 25fps, video only, 14.92Mi 133 mp4 426x240 240p 183k, avc1.4d4015, 25fps, video only, 10.14Mi 160 mp4 256x144 144p 82k, avc1.4d400c, 25fps, video only, 5.08Mi 137 mp4 1920x1080 1080p 2253k, avc1.640028, 25fps, video only, 460.08Mi 140 m4a audio only DASH audio 130k, m4a dash container, mp4a.40.2@128k, 47.96Mi 36 3gp 320x180 small, mp4v.20.3, mp4a.40.2, 45.56Mi 17 3gp 176x144 small, mp4v.20.3, mp4a.40.2@ 24k, 16.48Mi 18 mp4 640x360 medium, avc1.42001e, mp4a.40.2@ 96k, 97.73Mi 22 mp4 1280x720 hd720, avc1.64001f, mp4a.40.2@192k (best) 43 webm 640x360 medium, vp8.0, vorbis@128k, 95.72Mi 250 webm audio only DASH audio 70k, opus @ 70k, 21.84Mi 171 webm audio only DASH audio 126k, vorbis@128k, 35.62Mi 251 webm audio only DASH audio 134k, opus @160k, 39.80Mi 249 webm audio only DASH audio 54k, opus @ 50k, 18.88Mi 248 webm 1920x1080 1080p 1571k, vp9, 25fps, video only, 397.42Mi 247 webm 1280x720 720p 746k, vp9, 25fps, video only, 131.75Mi 244 webm 854x480 480p 406k, vp9, 25fps, video only, 44.00Mi 243 webm 640x360 360p 230k, vp9, 25fps, video only, 24.20Mi 242 webm 426x240 240p 121k, vp9, 25fps, video only, 13.03Mi 278 webm 256x144 144p 91k, webm container, vp9, 25fps, video only, 15.10Mi Pomimo tego że, powyższe rozważania stanowią jedynie zabawę z metadanymi plików multimedialnych, to zastosowane tu narzędzia jaki i samo ustalanie kolejności umieszczania w serwisie plików, czy wiązanie informacji z różnych stron i serwisów, są realnymi działaniami w przypadkach obejmowanych pracami z zakresu informatyki śledczej. Dziękujemy za wspólną zabawę. Zespół Avidata Sp. z o.o.