Autora programu lze určit nejen ze zdrojového kódu

ITBiz.cz , 24. duben 2018 06:00 0 komentářů
Autora programu lze určit nejen ze zdrojového kódu

Zdrojový kód každého autora je specifický málem jako literární styl, nicméně moderní nástroje prý umožňují identifikovat tyto vlastnosti celkem spolehlivě i ve zkompilovaném kódu. Může to být využitelné např. při pátrání po tvůrcích malwaru nebo v jiných forenzních aplikacích; mnoho programátorů může však současně mít pocit ohrožení soukromí.

Výzkumníci z Princeton University, Drexel University, Braunschweig University of Technology a společností Sophos a Shiftleft ukázali ve studii publikované na preprintovém serveru ArXiv, jak lze nástroje zkoumající styl nasadit i na binární soubory. Stačí pomocí strojového učení dostatečně vytrénovat program na obdobných známých vzorcích a pak binární soubor dekompilovat do kódu podobného jazyku C (jistě by šlo provést i jinak). Vlastní použitý proces je několikastupňový, přes assembler až po tvorbu abstraktního syntaktického stromu, a využívá více nástrojů (Radare2, ndisasm, Hex-Rays) – ti si autoři výzkumu sami nevyvíjeli, takže zde je další prostor pro zvýšení účinnosti, vytvořením speciálních nástrojů šitých na míru.

Při kompilování se celá řada atributů původního zdrojového kódu samozřejmě ztratí, např. i v důsledku optimalizace. Komentáře, mnohá metadata nebo i názvy proměnných a funkcí se již dekomplilací obnovit nedají, ale i tak zbude dost individuálních rysů – alespoň pro současné programy umělé inteligence. Jaká je úspěšnost přiřazení autora? Výzkumníci zkusili své neuronové sítě na dvou typech vzorků, z Google Code Jam a veřejných repozitářů na GitHubu.

U Google Code Jam dostal algoritmus strojového učení na začátek 8 programů každého účastníka. Mezi 100 programátory pak šlo autora určit s úspěšností 96 %, mezi 600 poklesla na 83 %. Zajímavé je, že úspěšnost identifikace stoupala s pokročilostí programátora – čím jsou lepší, tím mají víc vlastní styl (přitom by se dalo čekat, že naopak snadněji by šlo odhalit programátory podle toho, že používají neefektivní, suboptimální řešení, špatně lze věc udělat více způsoby než správně; možná by se to dalo porovnávat třeba s identifikací děl malířů, šachistů apod. v závislosti na jejich kvalitě).

U GitHubu byla úspěšnost menší, asi 65 % při 50 programátorech. To podle autorů výzkumu vyplývá hlavně z toho, že kód mnohdy obsahuje části, jejichž autorem byl někdo jiný než vlastník repozitáře.

Další otázkou je, co se stane, pokud autoři programu budou kromě komplikace mít snahu záměrně své dílo anonymizovat, tedy např. odstranit operace o symbolech, měnit operace za jejich sémantické ekvivalenty nebo dokonce přidávat nepotřebné příkazy (tedy používat různé techniky obfuskace, ty jsou ovšem ve stávající podobě určeny pro znečitelnění zdrojového kódu). Samozřejmě záleží na tom, jaké konkrétní nástroje se k tomu použijí, ale podle autorů výzkumu se tím přiřazení autorství neznemožní, i když úspěšnost identifikace programátora přirozeně poklesne.

Techniky znáhodňování kódu používají na různé úrovni už dávno tvůrci malwaru, nemusí jim to ale být nic platné (pokud ovšem není kód dílem velké skupiny, která navíc využívá ještě jiné části kódu). Také lze tímto způsobem třeba odhalovat autorství programů, které se z řady důvodů nelíbí v některých státech – obcházejí cenzuru, firewally, nabízejí šifrování apod. Mohou takto prostě vycházet najevo různé věci, bez ohledu na to, na čí straně budou v konkrétních případech naše sympatie.

Co doporučit vývojářům, kteří si chtějí zachovat anonymitu? Podle autorů výzkumu je nejjednodušší v první řadě nepoužívat veřejné přístupné repozitáře kódů. Pro každý uvolněný kód lze vytvořit jinou identitu – neuronová síť nejprve potřebuje určitý vzorek, aby se „naučila“ styl konkrétního člověka, s hromadou autorů jediného programu si asi pořádně poradit nedokáže. The Register cituje Ailyn Calyskan z Princetonu, která navíc rozebírá účinnost různých speciálních technik na proces detekce (např. náhodně vždy použít různých obfuskačních nástrojů apod.). Nakonec některé věci stejně náhodné nejsou, malware třeba komunikuje s určitými řídicími servery, odesílá určitá data – to už ale není předmětem vlastní práce.


Komentáře

RSS 

Komentujeme

Pravidlo dvou pizz

Petr Zavoral , 22. květen 2018 00:00
Petr Zavoral

Úvodem pozdrav všem nerdům a geekům. Prostě celé naší IT komunitě. Zdá se to být zbytečné, ale věřte...

Více







RSS 

Zprávičky

ČBA: Češi si nemění hesla a nepoužívají antiviry na mobilech

Pavel Houser , 23. květen 2018 11:00

Zabezpečení chytrého telefonu skončilo mezi třemi nejhoršími faktory zkoumanými v rámci Indexu bezpe...

Více 0 komentářů

IT a podnikové služby patří v ČR k nejatraktivnějším oborům

Pavel Houser , 23. květen 2018 10:00

Podnikové služby překonaly např. bankovní sektor, telekomunikace či automobilový průmysl....

Více 0 komentářů

USA a Čína se blíží k dohodě ohledně ZTE

ČTK , 23. květen 2018 09:00

Dohoda Číny a USA snížila obavy z obchodní války mezi dvěma největšími ekonomikami světa....

Více 0 komentářů

Starší zprávičky

Technologická "Nobelova cena" za procesory

ČTK , 23. květen 2018 08:00

Finský vědec Suntola oceněn za depozici atomárních vrstev (ALD), která se používá při výrobě velmi t...

Více 0 komentářů

V Amazonu prý manažeři vyhoří, navíc je o ně zájem jinde

ČTK , 22. květen 2018 10:00

Amazon přišel o dalšího klíčového muže. Firmu opustil Jim Freeman, který stál za virtuální asistentk...

Více 0 komentářů

Výrobce Nokií získává 100 milionů dolarů pro financování dalšího růstu

Pavel Houser , 22. květen 2018 09:00

Současná tržní hodnota firmy HMD Global, který stojí za telefony Nokia, přesahuje miliardu dolarů....

Více 0 komentářů

Fujifilm hodlá žalovat Xerox kvůli odstoupení od dohody o spojení

ČTK , 22. květen 2018 08:00

Japonská společnost Fujifilm Holdings plánuje zažalovat amerického výrobce kopírek a tiskáren Xerox ...

Více 0 komentářů