У каждого программиста есть специфические профессиональные приёмы и привычки. Поэтому в исходном коде остаются следы, выдающие автора, как почерк или отпечатки пальцев выдают человека.

С помощью компьютерного анализа можно вычислить уникальный «отпечаток» программиста и идентифицировать автора по его коду. Такую задачу поставила перед собой группа исследователей из университета Дрекселя (США), университета штата Мэриленд, университета Гёттингена (Германия) и Принстонского университета.

Учёные разработали программу для стилометрии кода и применили его на листингах, публично доступных после программистского конкурса Google Code Jam. Этот конкурс привлекает тысячи участников самого разного уровня: от школьников и студентов до профессионалов и опытных хакеров.

Стилометрия — исследование стилистики, включающее статистический анализ текста. В данном случае алгоритм раскладывает код на блоки и строит синтаксическое дерево, как показано на диаграмме.

003

В этом дереве распознаются отдельные синтаксические конструкции и подсчитывается их количество.

Программу тренировали на коде, написанном 250 программистами в течение нескольких лет, в среднем, по 630 строк кода на каждого. После этого программа продемонстрировала точность 95% при распознавании автора анонимного кода.

На выборке из 30 программистов с бóльшим количеством исходного материала (1900 строк) точность распознавания повысилась до 97%.

Результаты опубликованы в научной статье «Деанонимизация программистов по стилометрии кода».

19 комментариев

  1. 30.01.2015 at 12:56

    надо натравить ее на апл. там ничего небудет за их авторством

  2. 30.01.2015 at 13:56

    Планы у них явно далеко идущие: опознавать программиста по стилометрии бинарника, но пока слабы в коленках. 🙂

  3. http://dotblog.ru

    30.01.2015 at 14:15

    Каспер собирается ловить вирусописателей

    • 30.01.2015 at 18:30

      Что будут кушать программисты и их хозяин, когда всех хакеров выловят? А что скажет ему его коллеги по цеху. Это же многомиллиардный бизнес. Если хакеры вдруг исчезнут, антивирусные компании сами начнут писать вирусы, если уже не пишут…

      • 02.02.2015 at 01:30

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

    • 30.01.2015 at 13:32

      Чтобы его поймать, необходимо знать автора. Найдя линейку ПО, написанных одним и тем же прогерорм, Вы все еще не раскрыли его.

      • 02.02.2015 at 01:31

        что-то вроде брута для кодов ? Сработает только если хакер совсем тупой, и будет интуйтивно писать свой код.

    • 02.02.2015 at 01:24

      кто знает что кто-то интересуеться его почерком легко в конце можно тупо устройть «беспорадок».
      Меня лично жестко роздражает некоторые порадки либо позиций которые мне не по душе, ну я не хакер.

  4. 30.01.2015 at 13:51

    Так он анализирует используемые слова или стиль оформления кода? Код некоторые оформляют по стандартам так-то. А уж if и else испольлзуют все.

  5. 30.01.2015 at 15:25

    А у «Хакера» когда уже будет своё анальное королевство?

  6. 01.02.2015 at 15:55

    Вряд ли они смогут натравить эту прогу на закрытые исходники. Тем более в один код коммитят по 100 человек, так что прога с ума сойдёт… А в открытых исходниках итак логируется, кто изменения вносил, никто и не скрывает…

Оставить мнение