Prípona súboru je iba označenie — premenovanie virus.exe na
photo.jpg nič vnútri nezmení. Táto stránka prečíta prvé bajty každého
nahraného súboru a porovnáva ich s viac ako 60 reálnymi magickými signatúrami: obrázky, dokumenty,
archívy, zvuk/video, písma, spustiteľné súbory, databázy a kľúče. Získa sa zistený typ, typ MIME, prípony,
ktoré tento typ zvyčajne používa, upozornenie, keď prípona
odporuje obsahu, a tam, kde formát obsahuje údaj (rozmery obrázka, verziu PDF,
značku MP4). Všetko sa kontroluje lokálne v prehliadači.
Vybrať súbory
Súbory sa sem presunúalebo kliknutím sa vyberú Jeden súbor alebo viac. Číta sa iba prvých 512 bajtov každého; súbory nikdy neopustia tento počítač.
Nie sú vybrané žiadne súbory.
Výsledky
Tabuľka detekcie sa zobrazí tu po výbere súborov a stlačení Zistiť.
Čo znamená „zhoda“:konzistentné — prípona
súhlasí so zisteným formátom; nezhoda — obsah je iný formát, než aký prípona tvrdí (premenovaný súbor, alebo čo je horšie); „žiadna
signatúra“ — prvé bajty nezodpovedajú žiadnej známej signatúre, čo je normálne pri obyčajnom texte, CSV a väčšine dátových formátov, ktoré jednoducho nemajú hlavičku.
Súkromie: súbory sa čítajú vlastným FileReaderom prehliadača; nič sa nenahráva.
Čo je signatúra súboru?
Takmer každý binárny formát začína pevnou postupnosťou bajtov — magickým číslom — ktoré tam je umiestnené preto, aby program mohol rozpoznať vlastné súbory bez toho, aby dôveroval názvu. PNG vždy začína ôsmimi bajtmi 89 50 4E 47 0D 0A 1A 0A
(„\x89PNG\r\n\x1a\n“), PDF textom ASCII %PDF, ZIP PK\x03\x04 (iniciály Phila Katza, ktorý formát navrhol). Operačné systémy tieto bajty väčšinou ignorujú a pozerajú sa na príponu — práve preto sa premenovaný súbor nikde „neotvorí správne“ a preto bezpečnostné nástroje kontrolujú obsah.
Známe prvé bajty
Bajty
Formát
Poznámka
89 50 4E 47 0D 0A 1A 0A
Obrázok PNG
\r\n chráni pred poškodením konca riadka
FF D8 FF
Obrázok JPEG
každý rámec JPEG začína značkou SOI
25 50 44 46 2D
Dokument PDF
„%PDF-1.7“ — za ňou nasleduje verzia
50 4B 03 04
Archív ZIP
docx/xlsx/odt/epub sú ZIP s cudzou príponou
D0 CF 11 E0
Staré Office
doc/xls/ppt/msi — zložený súbor OLE2
4D 5A
Windows EXE
„MZ“ podľa Marka Zbikowského z Microsoftu
7F 45 4C 46
Linux ELF
\x7fELF — programy a zdieľané knižnice
1A 45 DF A3
Matroska/WebM
začiatok kontajnera EBML
75 73 74 61 72na posune 257
Archív TAR
signatúra sa ukrýva hlboko v hlavičke
Ako detektor rozhoduje
Prvých 512 bajtov každého súboru sa porovnáva s tabuľkou signatúr v poradí špecifickosti: kontajnerové značky (RIFF…WAVE verzus
RIFF…AVI verzus RIFF…WEBP, značky ISO boxov na posune 8) sa kontrolujú skôr než ich všeobecné kontajnery a formáty založené na ZIP (EPUB, ODF, OOXML) skôr než obyčajný ZIP. Tam, kde formát nesie samopopisné metadáta, stránka ide o úroveň hlbšie: rozmery PNG/GIF/BMP/JPEG/WebP sa čítajú z ich hlavičiek, verzia PDF z bajtu 5, značka MP4 a verzia triedy Java z ich štandardných posunov. Súbory, ktoré nezodpovedajú ničomu, prejdú heuristikou textu (BOM, <?xml, <html, shebang, pomer tlačiteľných znakov), až potom sa označia ako neznáme.
Časté chyby
„Hovorí ZIP, ale súbor je .docx“ — to je správne: .docx je archív ZIP, ktorého prvá položka je [Content_Types].xml; detektor tento prípad rozpozná a uvedie konkrétne Office Open XML. „Hovorí, že nemá signatúru, ale súbor sa otvorí“ — CSV, väčšina zdrojového kódu a nespočetné vedecké formáty nemajú vôbec žiadne magické bajty; „žiadna signatúra“ nie je obvinenie. „Dokáže mi povedať, či je súbor bezpečný?“ — nie. Kontrola obsahu hovorí, čím súbor je, nie čo robí; EXE je EXE, či ide o inštalátor, alebo o malvér.
FAQ
Prečo iba 512 bajtov? — každá podporovaná signatúra leží v prvých 512 bajtoch (najhlbšia je ustar v TAR na posune 257); čítanie viac by spomalilo veľké dávky bez akéhokoľvek prínosu. Zisťuje sa dĺžka videa? — nie, iba kontajner a jeho značka; dĺžka vyžaduje spracovanie celého indexu, čo je úloha prehrávača. Viac súborov naraz? — áno, celý výber sa dá naraz pretiahnuť; každý riadok sa zisťuje samostatne. Súvisiaca stránka: na opačný smer — prípona na typ MIME — slúži Vyhľadávanie typu MIME; na hashovanie tých istých súborov slúži Hash dávky súborov.