Формальная анонимность: ИИ научился узнавать программистов по стилю написания кода

14.08.2018      9795

Ученые из университетов Дрекселя и Вашингтона создали искусственный интеллект, который определит разработчика программы «по почерку». Это может пригодиться для разрешения споров о плагиате, но лишит конфиденциальности тысячи разработчиков, которые выкладывают коды в открытые базы GitHub.

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

Как это работает

Разработанный учеными алгоритм идентифицирует все характеристики, найденные в образцах кода. Можно провести параллель с естественным языком: это слова и частота их использования, длина предложения, порядок слов в предложении и т.д.

Ученые из нескольких сотен тысяч оставили меньше сотни характеристик, которые фактически отличают разработчиков друг от друга.

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

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

Деанонимизация кода

Ученые смогли деанонимизировать программиста, используя только скомпилированный двоичный код. После того, как разработчик завершил написание части кода, программа-компилятор превратила его в двоичный код. Его можно декомпилировать обратно на язык программирования С++, сохранив при этом уникальный стиль разработчика.

Для проведения бинарного эксперимента исследователи использовали образцы кода из ежегодного конкурса Google Code Jam. Алгоритм машинного обучения правильно идентифицировал группу из 100 индивидуальных программистов в 96% случаев, используя восемь выборок кода из каждого. Даже когда группу расширили до 600 программистов, алгоритм все же идентифицировал 83% кодеров.

Плагиат и конфиденциальность

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

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

Вопросы и ответы

В будущем ученые планируют изучить факторы, влияющие на стиль программирования человека: работа в одной организации, проживание в одной стране и т.д. В одном предварительном исследовании они обнаружили, что могут отличать образцы кода, написанные канадскими или китайскими разработчиками с 90%-ной точностью.

 


Автор:
Обозреватель


См. также

Не найдено ни одной записи.

Узнаете ли вы по коду коллегу-программиста?


Да (45.71%, 16 голосов)
45.71%
Почти (28.57%, 10 голосов)
28.57%
Нет (20%, 7 голосов)
20%
Не смотрю код (5.71%, 2 голосов)
5.71%

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vano-ekt 124 14.08.18 09:52 Сейчас в теме
(0) вот еще бы адрес его находил...
Ганс; Kochergov; TreeDogNight; YanTsys; klinval; oldfornit; user605780_L.Alexander8; V.Stavinsky; +8 Ответить
12. s22 19 14.08.18 13:08 Сейчас в теме
(1) Мыло?
14. vano-ekt 124 14.08.18 13:24 Сейчас в теме
(12)
) Мыло?

проживания... это из поговорки, как надо писать код...
2. mkalimulin 1208 14.08.18 10:18 Сейчас в теме
Программиста определяют по комментарию
//Вася 02.06.09
Kochergov; TreeDogNight; YanTsys; citicat; Kaspirovsky; Xershi; +6 Ответить
4. Неопределено 91 14.08.18 10:43 Сейчас в теме
(2) Не всегда. У меня обычно так: если в коде есть конструкция типа
Если ИспользоватьМутку = Ложь Тогда

значит это точно писал Саша, а если текст запроса взят в скобки -- однозначно Петя. Если код кажется идеальным, значит это писал я.
1c_uZer; Kochergov; TreeDogNight; a.zernin; s22; klinval; +6 Ответить
8. katenok86 246 14.08.18 12:24 Сейчас в теме
(4)Это знакомо, но со мной обычно наооборот, если все маленькими буквами то Катя)
Kochergov; +1 Ответить
3. PerlAmutor 130 14.08.18 10:39 Сейчас в теме
Было бы интересно через года 2 доработок какой-нибудь конфигурации натравить на исходники искусственный интеллект и проанализировать кто из коллег в носу все время ковырял, а кто вкалывал.
TreeDogNight; +1 Ответить
5. Неопределено 91 14.08.18 10:48 Сейчас в теме
(3) В итоге окажется, что халтурил тот новенький, которого посадили рисовать формы, макеты, настраивать роли и т.д.
7. PerlAmutor 130 14.08.18 12:19 Сейчас в теме
(5) Если он 2 года формочки рисовал и до сих пор считается новеньким то у него есть волосатая лапа и с него не убудет =)
Kochergov; +1 Ответить
10. Неопределено 91 14.08.18 12:44 Сейчас в теме
(7) Разумеется, я утрировал. Имелось в виду, что не вся работа программиста требует написания кода.
Kochergov; +1 Ответить
6. rusmil 262 14.08.18 11:42 Сейчас в теме
А я вот 10 лет назад программный код писал одним способом, 5 лет назад другим, сейчас стараюсь следовать рекомендациям 1С. Сомневаюсь что ИИ правильно идентифицирует меня как одно и то же лицо!
Kochergov; +1 Ответить
9. 🅵🅾️🆇 524 14.08.18 12:37 Сейчас в теме
И тут эта желтуха?

Тут серьезно никто не слышал про использование кросспостинга спецслужбами с черт-знает-каких времен, чтоб выставлять это как ВАУ эффект?
Про анализ написаного с помощью нейросетки 100500 статей написано.

А может никто тут не слышал про компиляцию или обфускацию?


Такое ощущение, что в одноклассники попал.

Алсо, я тоже умею вычислять по коду:
1) открываешь гитхаб с кодом
2) ищешь контакты в readme.md или профиле.
11. twiny 15 14.08.18 12:57 Сейчас в теме
(9) вы не понЕли)), это подготовка к очередным доказательствам, что код следующего супер-мега вируса написали русские хакеры и нас очередной раз обзовут общемировым злом и введут очередную партию животворящих санкций
Kochergov; TreeDogNight; YanTsys; +3 1 Ответить
13. 🅵🅾️🆇 524 14.08.18 13:13 Сейчас в теме
(11)
1) вирусы пишут на плюсах и асме, что будет анализировать "инновационный алгоритм", машинный код gcc?

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

3) россиянские хацкеры заметно уступают тем же китайцам

4) проследуйте в одноклассники или сколково.
15. DmitryKSL 156 14.08.18 13:54 Сейчас в теме
(13)
многие даже не знают где она территориально находиться

Вроде бы хотел обосрать Россию, но как-то глупо получилось. Это что за образование у тех "кому плевать"?
Kochergov; +1 Ответить
16. twiny 15 14.08.18 13:55 Сейчас в теме
(13)
Ну, если вы не поняли, то орфографическая ошибка указывала, что это был сарказм.

Ну, раз у вас имеются аргументы, то и у меня тоже:
#russiandidit и #highlylikely - это "рассиянское государственное телевидение" придумало?

Что по факту является угрозой и кто, кому уступает в хакерских достижениях и почему нам на уши льются помои из всех щелей - это уже тема отдельная.
Kochergov; +1 Ответить
17. 🅵🅾️🆇 524 14.08.18 14:03 Сейчас в теме
(16) Искренне прошу прощения, неоднократно сталкивался тут толи с промытыми ватанами, толи с кремлеботами.

Сомневаюсь, что европейским и сша реднекам каждый вечер уделяют 2/3 эфирного времени, с темами: "что там у канадцев" или "крах российского рубля" или "загнивающая россия".

Всем просто покс на банановые страны третьего мира.
А вот в северной корее очень популярны сюжеты в духе: "страна беднеет, потому что американцы запрещают продавать северокорейский рис".

Алсо, пару месяцев назад переезжал, не было интернета, так сели с братом смотреть фильм по ящику. 15 минут фильма в 360p, 20 минут рекламы. Как это вообще кто то смотрит?
18. Ziggurat 50 14.08.18 14:32 Сейчас в теме
(13) Не смешите мои искандеры.
20. YanTsys 12 14.08.18 15:08 Сейчас в теме
(13) "Россия не являлась, не является и не будет являться значимой угрозой. "

Правильно... Вон у Северной Кореи всего одна боеголовка и сколько паники. А тут их тысячи и никто не боится. Потому что при всей демагогии на самом деле понимают, кто адекватный, а кто нет... Зачем бояться адекватных людей :)
22. 🅵🅾️🆇 524 14.08.18 16:27 Сейчас в теме
(20) Корейцев тоже не боятся, лол.
Чтоб вести войну одних только танчиков-самолетиков мало наклепать, нужны лояльно настроенные люди.
Лично Вы или кто то из Ваших знакомых готов идти умирать за национального лидера?

Среди моего окружения вообще 0 потдерживающих царя, причем я не кокозиционер и подобных товарищей тоже нема. В танчики и войнушку было резонно лет 5-7 назад играть, когда руссиянцев волновало "чо там у каклов" и "владимир путин молодец".

Войнушка это всегда усиленное шатание лодки.
А дырявое корыто лучше не шатать лишний раз и перевернуться может.
Что не говори, при кремле работает отличная пропоганда умеющая анализировать и прогнозировать настроения толпы и стравливать пар.
А то что там по ящику агрессивных соседей показывают, так это старейший прием манипулирования быдлом и стадными животными - внешний враг. Спите спокойно, единственное, что угрожает благополучию россии - сама россия.
26. Alex_E 2364 14.08.18 17:08 Сейчас в теме
(22) Царя не поддерживаем - это нормально, но почему страну с маленькой буквы обзываешь?
Kochergov; +1 Ответить
33. пользователь 17.08.18 08:57
Сообщение было скрыто модератором.
...
39. Alex_E 2364 17.08.18 11:10 Сейчас в теме
(33) Какой большой мальчик))))сам усё решает!!! Это не экстремизм, это пройдёт...с возрастом...может быть)))))
40. 🅵🅾️🆇 524 17.08.18 11:15 Сейчас в теме
(39) Лан))))))))))))))))
43. пользователь 20.08.18 08:20
Сообщение было скрыто модератором.
...
27. YanTsys 12 14.08.18 17:50 Сейчас в теме
(22) Корейцев не боятся? Мы не боимся это да, мы с ними дружим. А вот США уже один раз проиграли войну корейцам, уж на своих ошибках даже дураки учатся, а у этих вроде соображалка должна быть :)

А про миролюбие наших соседей знаем, раз в столетие Евросоюз с войной на Россию идёт. Может наконец научится наше государство не на своей территории бои вести, а то уже в который раз приходится всё с руин отстраивать...
ipoloskov; +1 1 Ответить
34. 🅵🅾️🆇 524 17.08.18 09:01 Сейчас в теме
(27)
--Задавят экономически, переманят всех специалистов и скупят по дешевке все природные ресурсы, чем успешно и занимаются.
Можете считать график курса рубля - графиком вставания с колен. --

Простите, все время забываю, что ТОЛЬКО ВЫЙГРАЛИ.
Специалисты которые не хотят жить с боярами и ватанами - предатели.
А природные ресурсы сами будем использовать, обнесемся стеной и построим коммунизм за ней и не с кем не поделимся.

Удачи!
35. YanTsys 12 17.08.18 09:33 Сейчас в теме
(34) Ну не все специалисты, верят ценникам на зарубежных благах.
Да у нас у специалистов зарплаты пока ниже. Но зато при желании можно жить без аренды и кредитов имея в личной собственности и землю и дома.

А насчет природных ресурсов, сейчас с удивлением наблюдаем за санкционными войнами Китая и США.
Просто как-то все подзабыли что в прошлый раз когда Китай хотел заблокировать экспорт редкоземельных материалов США взвились на дыбы и начали грозить полным разрывом торговых отношений. А сейчас США грозит полным разрывом торговых отношений с Китаем забывая о том что это их предохранитель от вылетания пробкой из всех высокотехнологичных отраслей. А если Россия присоединится к такому бойкоту со своими залежами то всё будет еще интереснее.

И что значит слово ватан в вашем понимании, очень даже интересно :)
36. 🅵🅾️🆇 524 17.08.18 09:44 Сейчас в теме
(35)
Ну раз живете в самой прекрасной из стран и остальные страны Вам завидуют - то Я вполне рад за Вас (нет, кроме шуток, очень даже рад, если Вам и правда здорово жить).
Но и Вы меня поймите, Я живу в стране третьего мира в которой развита ксенофобия, богатеют присосавшись к природным ресурсам, а глубинка - это тлен и разложение. Я не хочу жить здесь в старости и не хочу, чтоб мои дети здесь жили (родители мне и моим братьям еще с пеленок говорили - учи язык и смывайся из глубинки и по возможности из страны), не хочу платить налоги которые тратятся в разрез моим убеждениям.

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

Вы и сами прекрасно должны понимать, что на людей, чья профессия предполагает работу с информацией и критическое мышление - слова, уговоры и пропаганда повлиять не могут по определению.
37. YanTsys 12 17.08.18 10:15 Сейчас в теме
(36) Это наша страна и именно от нас зависит как в ней будет жить.

И в какую страну собрались? Где так любят эмигрантов?
38. 🅵🅾️🆇 524 17.08.18 10:38 Сейчас в теме
(37)
> Это наша страна и именно от нас зависит как в ней будет жить.
Полностью потдерживаю. Потому и не хочу Вам мешать двигаться в том же направлении.


> И в какую страну собрались? Где так любят эмигрантов?
Эмигрантов не любят нигде без исключения.
А вот специалистов обожают везде без исключения.

Нет, ну правда, зачем вам такие предатели как Сергей Брин (США, Google) и Павел Дуров (Дубаи, Telegram), уедут, соскучатся по березкам, пожалеют и вернуться сами.
41. YanTsys 12 17.08.18 12:45 Сейчас в теме
(38)
А вот специалистов обожают везде без исключения.


Вы уверены? Например в Японии специалистов иностранцев берут только в том случае если по данному направлению нет даже близко подходящих по уровню японцев и при первой возможности от них избавляются.
Во многих других странах такой же подход...

Поэтому мне и интересно куда конкретно собрались?

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

И кстати две новости для вас, сейчас уже обсуждается проект того что все записи в соцсетях будут анализироваться государством, и что при принятии гражданства нужно будет давать клятву верности своей стране. Если дальше пойдут этим же путем напрашивается следующий этап, те кто явно нарушат эту клятву и будут лишаться своего гражданства и высылаться из страны. То есть вместо железного занавеса времен СССР будет наоборот волшебный трамплин. И тогда у вас не будет времени доказать той стране в которую мечтаете попасть что вы такой уж замечательный специалист и выучить язык и окажетесь где нибудь в Уганде.
42. 🅵🅾️🆇 524 17.08.18 13:18 Сейчас в теме
(41)
Это правда, причем такой позиции придерживается все мое окружение.
Считайте практически все айтишники и люди схожих специальностей (интеллигенция + критическое мышление + работа с информацией) рожденные в 90х и после. Можете у себя на работе опрос в дружеской атмосфере провести, но мне Вам врать смысла нет. Среднего класса в россии и так, считай нет, а в ближайшем будующем станет еще меньше, причем это уже вовсю идет. И тут дело даже не в деньгах, тк с зарплатами все ок.

Запрет на двойное гражданство не является проблемой (в украине, так любимой ватниками, это существует давным давно, это не является препятствием для эмиграции).

Лишить гражданства не могут, если ты не обладаешь другим гражданством, но Я был бы только "ЗА", ведь это сделало эмиграцию просто супер легкой, комиссия по правам человека трудилась бы в поте лица и позволило зарубежным СМИ излить такой ушат говна на встающую с колен, что в век не отмоешься. Достойная метка к метке "страна пособник террористам".
Просто чтоб понимали, многие политические беженцы получают убежище только на основании того, что в россии тюрьмы "неочень" (хотя по сравнению с тюрьмами в азиатских странах, это просто курорт)


Если брать лично меня - Я могу сесть на поезд и укатить в закат хоть завтра, но на этом в первое время Я потеряю больше чем приобрету. Не люблю неоправданых рисков.

Если вам нужны или хочется пообсуждать детали - с удовольствием пообсуждаю и рассмотрю подводные камни, которые предстоит решить, но не здесь. Моя телега: @PlugFox
Тут пасется штук 5 ватанов и данный топик быстро превратиться в клоунаду, поэтому только в общем.
Алсо, только пожалуйста без "Где родился, там и пригодился", это не является аргументом, а только делит любое уважение и репутацию собеседника на ноль.
32. strange2007 144 17.08.18 08:34 Сейчас в теме
(22) >> Спите спокойно, единственное, что угрожает благополучию россии - сама россия.
Как обычный человек из очень далёкого поселения, могу сказать (основываясь на личных наблюдениях) - угроза благополучию любого коллектива исходит от таксистов, которые умеют управлять страной. Ага, точно говорю.
🅵🅾️🆇; +1 Ответить
19. пользователь 14.08.18 14:59
Сообщение было скрыто модератором.
...
21. Denis_CFO 49 14.08.18 15:12 Сейчас в теме
(19)
они же еще и комментарии в коде восстанавливают

так там же все просто, в каждом решении есть такая строчка:
Функция КодДопиливал_22_06_2017_Вася_Пупкин_Программист_ООО_РогаИКопыта()
Возврат "Домашний адрес: 163515, Архангельская Область, Приморский муниципальный район, Сельское поселение Катунинское, Архипелаг Земля Франца-Иосифа Остров, ФИАС_ИД_68a9a7ce-6396-4955-b9ce-a72753a5954c, телефон + 7 989 879 87 87"
КонецФункции
rusmil; YanTsys; +2 Ответить
23. 🅵🅾️🆇 524 14.08.18 16:34 Сейчас в теме
(21) Непорядок, где банковские реквизиты для налоговой?)
Или Вы террористов поддерживаете и детей не любите?
25. Denis_CFO 49 14.08.18 17:03 Сейчас в теме
(23)
Непорядок, где банковские реквизиты для налоговой?)
в следующем обновлении :)

(23)
Или Вы террористов поддерживаете и детей не любите?


"... - Профессор, а правда, что Вы жену бьёте?
- Нет, не правда, я не профессор..." (с) Народное.
🅵🅾️🆇; +1 Ответить
24. Timur.V 79 14.08.18 16:38 Сейчас в теме
В некоторых компаниях, при приёме на работу, программиста знакомят с инструкцией (правилами) написания кода.
Встречали такие правила? (это и есть стиль написания кода)

В этом случае, весь код на выходе получается одинаковый.
И авторство можно узнать только по комментариям
//Вася 02.06.09
и в хранилище конфигураций посмотреть, кто создал объект.
28. Артано 766 15.08.18 07:54 Сейчас в теме
Мне кажется, распознавать можно будет тех кто пишет хорошо. Потому что говнокодеры, копипастящие целые блоки кода из разных источников никогда не будут идентифицированы. А жаль
30. katenok86 246 15.08.18 12:42 Сейчас в теме
(28)
говнокодеры, копипастящие целые блоки кода из разных источников

Я чем плохо копирование блоков кода, если оно к месту? Зачем каждый раз изобретать велосипед, если для решения задачи есть готовые шаблоны?
29. Wildsou1 17 15.08.18 10:27 Сейчас в теме
НУ наверно не плохо иметь статистику по говнкодерам и норм программеров
31. Infector 201 15.08.18 23:04 Сейчас в теме
Те, кто слишком проникся 7.7 обычно бросаются в глаза. Еще привычки к именам переменных в схожих алгоритмах сохраняются.
У меня выработалась во-первых привычка дробить процедуры, во-вторых оформлять запросы так, чтобы открывались конструктором при любом раскладе, СтрЗаменить() всегда в них вместо склеивания строк.
Правда видоизменяется со временем все, в том числе и стиль по мере обретения новых знаний.
Оставьте свое сообщение