ИИ научился распознавать программистов по «фирменному почерку»

14 авг 2018 10:40 #71291 от ICT
Цифровой «отпечаток пальца» программиста Рейчел Гринстед (Rachel Greenstadt), профессор Дрексельского университета, Пенсильвания, США и Айлин Калискан (Aylin Caliskan), доцент Университета Джорджа Вашингтона, Вашингтон, округ Колумбия, США, разработали систему машинного обучения, которая способна «деанонимизирвать» программистов при помощи анализа исходного кода или скомпилированных бинарных файлов. Для тестирования алгоритма исследовательницы воспользовались образцами программ, написанных в рамках Google Code Jam – ежегодного международного соревнования по программированию, проводимого под эгидой Google. В результате искусственный интеллект смог правильно определить автора в 96% случаев, проанализировав по восемь образцов кода, написанного 100 разными программистами. Увеличение числа участников до 600 несколько снизило эффективность алгоритма – 83% авторов были корректно опознаны системой.
В ходе работы Гринстед и Калискан выявили несколько любопытных закономерностей. Так, оказалось, что более опытных разработчиков идентифицировать по коду программы проще, чем новичков. Как отмечают авторы, это может быть связано с тем, что начинающие программисты часто прибегают к заимствованию фрагментов чужого года, найденного на тематических ресурсах в Сети. Американки научили искусственный интеллект «деанонимизировать» программистов Также была выявлена зависимость между сложностью решаемой задачи и простотой идентификации автора решения. В результате анализа листингов исходного кода при решении относительно простых задач, алгоритм правильно определил авторство в 90% случаев. При решении более сложных задач эффективность ИИ возростала до 95%. Как это работает Работа девушек основана на стилометрии – статистическом анализе языкового стиля. Исследователям в данной области давно известно, что стиль письма каждого индивидуума уникален: набор слов, применяемых автором, особенности синтаксиса и грамматики – все это формирует собственный неповторимый стилистический «отпечаток пальцев», позволяющий с высокой точностью идентифицировать автора текста при наличии достаточного количества образцов работ.
На первом этапе своей работы алгоритм выявляет характерные черты фрагмента исходного кода. Исследовательницам удалось сузить перечень оцениваемых характеристик до 50 – остались только те, которые действительно помогают отличить одного программиста от другого. Несущественными ученые посчитали, к примеру, то, как отформатирован исходный код.
На основе собранных данных строится так называемое абстрактное синтаксическое дерево, отражающее общую структуру кода, а не его произвольные компоненты. Важно отметить, что для правильного функционирования метод нуждается в нескольких образцах работ одного и того же автора. Применение находки и возможные последствия Ученые считают, что результаты их работы могут быть использованы для выявления случаев недобросовестного заимствования кода. Например, преподаватели технических вузов получат возможность проанализировать код, предоставленный студентами-программистами, и с большой долей уверенности сказать, написан ли код самостоятельно или позаимствован из чужих работ. Софтверные компании смогут контролировать соблюдение сотрудниками-программистами условий контракта, чтобы избегать случаев, когда уволившиеся работники используют наработки, ранее перешедшие в собственность компании, в сторонних проектах. Специалисты сферы информационной безопасности также нашли бы применение технологии – определить разработчика вредоносного ПО при помощи подобной системы ИИ стало бы намного легче. В то же самое время взятие такого инструмента на вооружение спецслужбами авторитарных режимов потенциально способно усложнить жизнь разработчикам решений для обхода государственной цензуры в интернете. Могут пострадать и разработчики, которые регулярно вносят свой вклад в развитие свободного программного обеспечения, утратив возможность сохранять анонимность. По словам Гринстед, обфускация (намеренное запутывание) исходного кода не слишком помогает в деле сохранения анонимности – даже после такой обработки код сохраняет уникальный авторский «отпечаток». «Люди должны понимать, что не существует гарантированного способа скрыть личность в подобного рода ситуациях», – отметила Гринстед. В другой работе за авторством Люси Симко (Lucy Simko), коллеги Калискан, рассказывается, что программисты все же могут видоизменить собственный код таким образом, чтобы обмануть алгоритм, не обладая при этом специальными навыками. Ссылка на источник


  • Сообщений: 103416

  • Пол: Не указан
  • Дата рождения: Неизвестно
  • Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    Похожие статьи

    ТемаРелевантностьДата
    Компьютер научился оптимизировать код ПО быстрее программистов13.84Пятница, 10 июля 2015
    «Яндекс» научился распознавать марки машин по фотографии13.74Четверг, 30 июня 2016
    Новый «Битрикс24» научился распознавать лица клиентов в CRM13.74Среда, 16 ноября 2016
    Новый Битрикс24 научился распознавать лица клиентов в CRM13.74Вторник, 22 ноября 2016
    Искусственный интеллект от Microsoft научился распознавать эмоции13.74Четверг, 20 июля 2017
    Искусственный интеллект научился распознавать человека за стеной13.74Среда, 13 июня 2018
    Голосовой помощник «Яндекса» научился распознавать детские голоса13.59Пятница, 18 сентября 2020
    «Битрикс24» научился захватывать и распознавать лица с помощью технологии VisionLabs13.45Понедельник, 25 сентября 2017
    ID Finance разработала систему с распознаванием человека по клавиатурному почерку9.74Понедельник, 05 марта 2018
    Эксперты InfoWatch рассказали об идентификации сотрудников по клавиатурному почерку9.74Вторник, 29 мая 2018

    Мы в соц. сетях