Jump to content

Код стилометрии

Стилометрия кода (также известная как атрибуция авторства программы или анализ авторства исходного кода ) — это применение стилометрии к компьютерному коду для приписывания авторства анонимному двоичному или исходному коду . Часто это включает в себя анализ и исследование отличительных закономерностей и характеристик программного кода, а затем сравнение их с компьютерным кодом, авторство которого известно. [1] В отличие от криминалистики программного обеспечения , стилометрия кода определяет авторство для целей, отличных от нарушения прав интеллектуальной собственности , включая обнаружение плагиата , расследование авторских прав и проверку авторства. [2]

В 1989 году исследователи Пол Оман и Кертис Кук определили авторство 18 различных программ Паскаля , написанных шестью авторами, с помощью «маркеров», основанных на типографских характеристиках. [3]

В 1998 году исследователи Стивен МакДонелл, Эндрю Грей и Филип Саллис разработали систему атрибуции авторов на основе словаря под названием IDENTIFIED (интегрированное извлечение на основе словаря не зависящей от языка информации о токенах для судебно-медицинской идентификации, экспертизы и дискриминации), которая определяла авторство. исходного кода компьютерных программ, написанных на C++ . Исследователи отметили, что авторство можно определить, используя степень гибкости стиля написания исходного кода, например: [4]

  • Как алгоритм в исходном коде решает данную задачу
  • Способ компоновки исходного кода (интервалы, отступы, характеристики границ, стандартные заголовки и т. д.).
  • Способ реализации алгоритма в исходном коде

ИДЕНТИФИЦИРОВАННАЯ система приписывала авторство, сначала объединяя все соответствующие файлы в один файл исходного кода, а затем подвергая его анализу показателей путем подсчета количества вхождений для каждого показателя. Кроме того, система была независимой от языка благодаря способности создавать новые файлы словарей и метасловари. [4]

В 1999 году группа исследователей под руководством Стивена МакДонелла проверила эффективность трех различных методов распознавания авторства программ на 351 программе, написанной на C++ семью разными авторами. Исследователи сравнили эффективность использования нейронной сети прямого распространения (FFNN) , обученной на алгоритме обратного распространения ошибки , множественном дискриминантном анализе (MDA) и рассуждениях на основе прецедентов (CBR) . В конце эксперимента и нейронная сеть, и MDA имели точность 81,1%, а CBR достигла точности 88,0%. [5]

В 2005 году исследователи из Лаборатории безопасности информационных и коммуникационных систем Эгейского университета представили независимый от языка метод атрибуции авторства программы, в котором они использовали байтов на уровне n -граммы для классификации программы по автору. Этот метод сканировал файлы, а затем создавал таблицу различных n -грамм, найденных в исходном коде, и количества раз, когда они встречаются. Кроме того, система может работать с ограниченным количеством обучающих примеров от каждого автора. Однако чем больше исходных кодов программ присутствовало у каждого автора, тем надежнее указание автора. В эксперименте, проверяющем их подход, исследователи обнаружили, что классификации с использованием n точность -грамм достигает 100%, хотя этот показатель резко снижается, если размер профиля превышает 500, а размер n -грамм равен 3 или меньше. [3]

В 2011 году исследователи из Университета Висконсина создали систему атрибуции авторства программ, которая идентифицировала программиста на основе двоичного кода программы, а не исходного кода. Исследователи использовали машинное обучение и обучающий код, чтобы определить, какие характеристики кода будут полезны при описании стиля программирования. В эксперименте, проверяющем этот подход на наборе программ, написанных 10 разными авторами, система достигла точности 81%. При тестировании с использованием набора программ, написанных почти 200 разными авторами, система работала с точностью 51%. [6]

В 2015 году группа исследователей-докторантов из Принстонского университета , Университета Дрекселя , Университета Мэриленда и Геттингенского университета , а также исследователей из Исследовательской лаборатории армии США разработала систему атрибуции авторства программы, которая могла бы определить автора программы по выборка программ, написанных 1600 программистами с точностью 94 процента. Методика состояла из четырех этапов: [7]

  1. Дизассемблирование - Программа дизассемблируется для получения информации о ее характеристиках.
  2. Декомпиляция — программа преобразуется в вариант C-подобного псевдокода посредством декомпиляции для получения абстрактных синтаксических деревьев .
  3. Уменьшение размерности . Отбираются наиболее актуальные и полезные функции для идентификации автора.
  4. Классификация . Классификатор случайного леса указывает авторство программы.

В этом подходе анализировались различные характеристики кода, такие как пробелы, использование табуляции и пробелов, а также имена переменных, а затем использовался метод оценки, называемый анализом синтаксического дерева, который переводил пример кода в древовидные диаграммы, которые отображал структурные решения, задействованные в написании кода. При разработке этих диаграмм приоритет отдавался порядку команд и глубине функций, встроенных в код. [8]

Хакерская атака Sony Pictures в 2014 году

[ редактировать ]

Представители американской разведки смогли определить, что кибератака на Sony Pictures в 2014 году была спонсирована Северной Кореей после оценки программного обеспечения, методов и сетевых источников. Атрибуция была сделана после того, как эксперты по кибербезопасности заметили сходство между кодом, использованным в атаке, и вредоносным программным обеспечением, известным как Shamoon , которое использовалось в 2013 году . атаках Северной Кореи на южнокорейские банки и телерадиокомпании в [9]

  1. ^ Клэберн, Томас (16 марта 2018 г.). «К вашему сведению: инструменты искусственного интеллекта могут отличать анонимных программистов от их двоичных исполняемых файлов» . Регистр . Проверено 2 августа 2018 г.
  2. ^ Деанонимизация программистов с помощью стилометрии кода . 12 августа 2015 г. ISBN.  9781939133113 . Проверено 2 августа 2018 г. {{cite book}}: |website= игнорируется ( помогите )
  3. ^ Jump up to: а б Францескоу, Грузия; Стамататос, Эфстатиос; Грицалис, Стефанос (октябрь 2005 г.). «Поддержка процесса расследования киберпреступлений: эффективная дискриминация авторов исходного кода на основе информации на уровне байтов» . Электронный бизнес и телекоммуникационные сети . Коммуникации в компьютерной и информатике. Том. 3. С. 283–290. дои : 10.1007/978-3-540-75993-5_14 . ISBN  978-3-540-75992-8 – через ResearchGate.
  4. ^ Jump up to: а б Грей, Эндрю; Макдоннелл, Стивен; Саллис, Филип (январь 1998 г.). «IDENTIFIED (интегрированное извлечение на основе словаря независимой от языка информации о токенах для судебно-медицинской идентификации, экспертизы и дискриминации): система на основе словаря для извлечения показателей исходного кода для криминалистики программного обеспечения» . Слушания. 1998 Международная конференция «Программная инженерия: образование и практика» (кат. № 98EX220) . стр. 252–259. дои : 10.1109/SEEP.1998.707658 . hdl : 10292/3472 . ISBN  978-0-8186-8828-7 . S2CID   53463447 – через ResearchGate.
  5. ^ МакДонелл, Стивен; Грей, Эндрю; МакЛеннан, Грант; Саллис, Филип (февраль 1999 г.). «Криминалистика программного обеспечения для различения авторов программ с использованием рассуждений на основе прецедентов, нейронных сетей прямого распространения и множественного дискриминантного анализа» . Нейронная обработка информации . 1 . ISSN   1177-455X – через ResearchGate.
  6. ^ Розенблюм, Натан; Чжу, Сяоцзинь; Миллер, Бартон (сентябрь 2011 г.). «Кто написал этот код? Определение авторов бинарников программ» . Материалы 16-й Европейской конференции по исследованиям в области компьютерной безопасности . Эсорикс'11: 172–189. ISBN  978-3-642-23821-5 – через цифровую библиотеку ACM.
  7. ^ Брейбой, Джойс (15 января 2016 г.). «По мере развития исследований по установлению личности злонамеренные программисты потеряют анонимность» . Армия США . Проверено 2 августа 2018 г.
  8. ^ Гринштадт, Рэйчел (27 февраля 2015 г.). «Стирание кибер-отпечатков пальцев: стиль кодирования идентифицирует анонимных программистов» . Судебно-медицинский журнал . Проверено 2 августа 2018 г.
  9. ^ Бруннстрем, Дэвид; Финкл, Джим (18 декабря 2014 г.). «США рассматривают «пропорциональный» ответ на хакерскую атаку Sony» . Рейтер . Проверено 2 августа 2018 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 963dbcdc87cffe16a0e6f29308c0a5d5__1717320240
URL1:https://arc.ask3.ru/arc/aa/96/d5/963dbcdc87cffe16a0e6f29308c0a5d5.html
Заголовок, (Title) документа по адресу, URL1:
Code stylometry - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)