Эксперты научились идентифицировать кодеров по их кодам

image

Теги: разработчик, деанонимизация, программное обеспечение

С помощью машинного обучения специалисты научились различать разработчиков по их кодам.

Специалистам в области стилометрии, исследующим стилистику письменного текста путем анализа синтаксиса, уже давно известно, что письмо – крайне индивидуальный, уникальный процесс. Используемый словарный запас, синтаксис и грамматические конструкции позволяют выявить автора текста, как если бы под текстом стояла его подпись.

В настоящее время существуют автоматизированные инструменты для идентификации авторов публикаций в интернете, однако об использовании стилометрии в отношении искусственных языков (языков программирования) раньше известно не было. Тем не менее, как оказалось, каждый разработчик ПО также имеет свой уникальный стиль, по которому его можно идентифицировать.

В пятницу, 9 августа, исследователи Рэйчел Гринстад (Rachel Greenstadt) из Дрексельского университета и Айлин Калискан (Aylin Caliskan) из Университета Джорджа Вашингтона представили на конференции DefCon весьма интересные результаты исследований.

В ходе исследований Гринстад и Калискан использовали машинное обучение для выявления авторов образцов кода. Для начала исследователи разработали алгоритм для выявления абсолютно всех характерных особенностей образцов кодов, а затем сузили список только до тех характеристик (порядка 50-ти), которые позволяют отличить одного разработчика от другого. Даже небольшой части кода в репозитории GitHub достаточно для того, чтобы отличить одного кодера, уверены специалисты.

Как показывают исследования Калискан, деанонимизировать разработчика можно даже по его компиллированному коду. Так, ее команде удалось декомпиллировать код на C++ с сохранением стилистических особенностей его автора.

Telegram Подписывайтесь на канал "SecurityLab" в Telegram, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.