SI rozpoznaje programistów po sposobie pisania kodu

Profesor Rachel Greenstadt z Uniwersytetu Drexlera i Aylin Caliskan z Uniwersytetu George’a Waszyngtona wykorzystali uczenie maszynowe do analizy programów i identyfikacji poszczególnych programistów. Naukowcom wystarczył fragment kodu opublikowany na przykład w serwisie GitHub, aby stwierdzić z nawet 85 procentowym prawdopodobieństwem, że dany programista jest również autorem innego programu dostępnego jedynie jako plik wykonywalny. Greenstadt i Caliskan wyniki swoich eksperymentów ze sztuczną inteligencją zaprezentowały na corocznej konferencji DefCon w Las Vegas. Kod SI-detektywa można pobrać z GitHuba.
SI rozpoznaje programistów po sposobie pisania kodu

SI potrafi z binarnego pliku wyciągnąć dane o stylu twórcy danego programu (graf. Greenstad/Caliskan)

Sztuczna inteligencja potrafi rozpoznać autora programu analizując kolejność instrukcji dla procesora. Co ciekawe, SI zaprogramowana przez amerykańskich naukowców nie bierze w ogóle pod uwagę nazw funkcji, wcięć w kodzie i komentarzy. Zamiast tego, analizuje drzewo składni i graf stanów programu. Okazuje się, że nawet pomimo utraty części informacji z kodu źródłowego po kompilacji programu, programiści zostawiają swoiste odciski palców. Można to porównać do tego w jaki sposób chodzimy, albo jak konstruujemy i akcentujemy wypowiedzi. Robimy to nieświadomie. Podobnie programiści mają utarty styl tworzenia aplikacji i te “akcenty” są dostrzegalne na poziomie strukturalnym.

SI tworzy grafy na podstawie instrukcji i zmiennych programu (graf. Greenstad/Caliskan)

Prace Greenstadt i Caliskan mogą pomóc wykrywać autorów złośliwego oprogramowania Teoretycznie służby za pomocą odpowiednio wytrenowanej SI mogłyby zidentyfikować twórców danego narzędzia. Już teraz można zidentyfikować daną osobę po sposobie pisania. Każdy nieświadomie powtarza pewne frazy i konstrukcje gramatyczne. W ten sposób policja identyfikuje osoby piszące na forach w darknecie. Teraz śledczy będa mogli zidentyfikować z dużym prawdopodobieństwem osoby piszące na przykład wirusy i robaki internetowe na podstawie analizy wstecznej. | CHIP