Деанонімізація програміста можлива не тільки через вихідний код, але і через скомпільований бінарний файл

Не секрет, що багато розробників програмного забезпечення з відкритим вихідним кодом і не тільки, з різних причин бажають зберегти свою анонімність. Зовсім недавно група дослідників опублікувала роботу, в якій описуються методи деанонімізація програміста за його стилю кодування через аналіз вихідних кодів. Автори стверджують, що їм вдалося досягти середньої точності ідентифікації в 94%.

За допомогою побудови абстрактних синтаксичних дерев на основі аналізу вихідного тексту, їм вдалося виділити стійкі відмітні ознаки при написанні коду, які важко приховати навіть цілеспрямовано. Використовуючи машинне навчання і набір евристик, вдалося домогтися вражаючою точності визначення авторства серед вибірки з 1600 програмістів Google Code Jam.


У своїй новій роботи, дослідники продемонстрували, що деанонімізація можлива і через аналіз вже скомпільованих двійкових файлів у відсутності вихідних кодів (відео презентації доповіді). В цей раз для дослідження використовувалися вихідні коди 600 учасників Google Code Jam, які були скомпільовані в виконувані файли, а потім піддавалися розбиранню. Завдяки тому, що завдання на змаганнях були однакові для всіх, різниця файлів полягала в значній мірі саме в стилі програмування, а не в алгоритмі. Спочатку, при складанні бінарних файлів відключалися оптимізації компілятора і не застосовувалася обфускація вихідних кодів. Але, як стверджують автори роботи, деякі відмітні ознаки зберігаються і при застосуванні цих способів приховування авторства, знижуючи точність деанонімізація до 65%.


З допомогою дизассемблирования і декомпіляції, застосовуючи всі ті ж абстрактні синтаксичні дерева, проводиться аналіз графа потоку керування, виділяються відмітні ознаки кодування та проводиться навчання класифікатора на основі векторів ознак.





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

Автори впевнені, що за допомогою подібних методів коли-небудь будуть виявлені справжні автори таких розробок як Bitcoin, TrueCrypt і відомих шкідливих програм.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.