Reklama
aplikuj.pl

Ten algorytm jest w stanie rozpoznać hakerów na podstawie ich programów

Stylometria jest metodą analizy polegającą na wyszukiwaniu charakterystycznych cech dzieła, które da się powiązać z konkretnym autorem. Techniki często używa się podczas ustalania autorstwa dzieł literackich, muzycznych czy malarskich. Teraz do tego grona może dołączyć oprogramowanie.

To oczywiste, że zasób słownictwa, jakim się posługujemy, może być dla nas charakterystyczny. Tak samo jak charakterystyczny może być styl programowania. Rachel Greenstadt oraz Aylin Caliska starają się udowodnić, że każdą aplikację, nawet stworzoną przez anonimowego człowieka, można rozpracować. W tym celu należy skorzystać z techniki uczenia maszynowego. Zaprojektowany w tym celu algorytm analizuje porównywane kody i wyszukuje te elementy, które mogą się różnić. W przypadku języka pisanego byłyby to np. długość zdania, kolejność wyrazów, zasób słów.

Ważny jest fakt, że program potrzebuje przynajmniej kilku różnych próbek kodu danego autora, aby zapamiętać jego „styl”. Nie muszą być one długie, wystarczą niewielkie fragmenty, podkreślają autorzy badania. Aby przetestować skuteczność algorytmu, przebadano kod pochodzący z corocznego konkursu programistycznego zwanego Google Code Jam. Używając 8 próbek pochodzących od każego uczestnika (było ich łącznie stu) program uzyskal skuteczność na poziomie 96 procent. Gdy liczbę progamistów zwiększono do 600, skuteczność spadła, ale wyniosła zadowalające 83 procent.

Tak powstała aplikacja mogłaby zostać wykorzystana do wyszukiwania plagiatów programów, np. podczas rekrutacji do pracy bądź na studiach. Jednocześnie zastosowanie mogłoby być inne, niekoniecznie pozytywne. Mowa o walce z przeciwnikami systemu, np. Anonymous, którzy walczą z rządami państw m.in. poprzez hakowanie stron. Choć działalność tego typu ugrupowań nie zawsze jest dobra, to ważne, że w internecie do tej pory mógł istnieć mocno anonimowy „ruch oporu”. Wkróce może on jednak całkowicie zniknąć.

Co ciekawe, badacze zauważyli, że początkujących programistów jest znacznie trudniej zidentyfikować niż tych doświadczonych. Algorytm łatwiej radził sobie z rozpoznaniem prac należących do weteranów branży. Nawet kraj pochodzenia (a raczej kraj, w którym dany programista się edukował) może wpływać na sposób kodowania, a w konsekwencji – łatwość deanonimizacji autora programu.

[Źródło: wired.com; grafika: Casey Chin]