Спецслужбы научились вычислять анонимных вирусописателей
Для создателей вирусов и Лаборатории Касперского наступают сложные времена: в военной лаборатории Army Research Laboratory создан и успешно апробирован алгоритм идентификации авторов программ по бинарному коду.
Идея очень простая: программирование — это творческий процесс. Хотя написание программы всегда подчиняется строгим законам логики, творческая составляющая программирования подразумевает, что в некоторых местах автор имеет свободу выбора: использовать тот паттерн программирования или иной, как организовать ветвление, какие определить перехватчики ошибок и т.д. Исследователей очень заинтересовали эти вариативные признаки. Оказалось, что их не менее 462. Затем была написана программа, которая транслирует бинарный код в абстрактный (операция напоминает дизассемблирование). Полученные данные можно использовать для построения синтаксического дерева и поиска этих 462 стилометрических признаков.
Присутствие (или отсутствие) каждого признака позволяет высчитать для любой программы что-то вроде уникального стилистического идентификатора. Понятно, что он будет одним и тем же для текстов одного автора. А потом дело за малым: нужно прогнать через алгоритм все опубликованные когда-либо программы с указанным авторством. Полученная база данных может использоваться для установления авторства новых "неподписанных" программ.
Специалисты по безопасности уже прокомментировали разработку. Отношение к ней очень неоднозначное. С одной стороны, технология позволит эффективней бороться с вирусописателями. Ведь редкий программист начинает карьеру с вирусов и только ими и занимается. Часто вредитель работает и на официальной работе обычным программистом. Спецслужбы — в случае совпадения стилометрических признаков — могут запросить данные о работнике и вычислить его персональные данные. Вирусописателям придется выбирать: либо официальная работа, либо подполье. Количество желающих распространять заразу это резко сократит. Но есть у разработки и другая сторона, негативная. Дело в том, что многие эксперты уверены, что спецслужбы не станут заниматься мелкими кибермошенниками, а начнут вычислять тех, кто анонимно создает инструменты обхода цензуры и иные программы, позволяющие противостоять властям (защищенные мессенджеры, криптовалюты и т.п.). Не вирусов станет меньше, а качественных программ для защиты от слежки.
Комментарии
Чингачгук
7 января, 2016 - 12:21
как интересно. А если мой стиль программирования похож на еще кого-нибудь? Может я даже ни одного вируса не писал, а выцепят где-нибудь мой исходник, да не где-нибудь, а винда например сольет. Поймают — обвинят в краже стотыщьмиллионов, докажи что ты не верблюд. Вот и возвращаемся к сливу данных и аргументу "НАМ ВЕДЬ НЕЧЕГО СКРЫВАТЬ"
Чингачгук
7 января, 2016 - 22:58
Ничего страшного: приедут, е...бнут сапогом в рыло, убедятся, что это не ты и уедут.
Чингачгук
7 января, 2016 - 23:49
не, страшного ничего, даже скорее приятно...
Чингачгук
7 января, 2016 - 13:50
>Для создателей вирусов и Лаборатории Касперского наступают сложные времена
это намек на то что в лаборатории Касперского сами пишут вирусы чтобы их антивирус потом покупали? )))
Чингачгук
7 января, 2016 - 22:36
"Для создателей вирусов и Лаборатории Касперского" — здесь имеется ввиду одно и тоже!
Чингачгук
7 января, 2016 - 23:01
Это намек на то, что если вирусописателей переловят, то новых вирусов станет меньше. А старые ловит старый Касперский. Как убедить людей покупать новые версии и продлевать подписки? Никак.
Чингачгук
7 января, 2016 - 14:16
Идея конечно дельная, но допустим, "хакер" сам не кодит, а использует скрипт-киди (т.е. совокупность чужих скриптов в конечном продукте) и как такого ловить у него нет "собственного почерка"?
Чингачгук
7 января, 2016 - 14:25
Вот именно, отдуваться будет козел отпущения. Показательный процесс.
Чингачгук
7 января, 2016 - 20:07
На всякое ... , всегда найдется элегантное решение для обхода.
Чингачгук
7 января, 2016 - 22:41
Вобщем — это [цензура], товарищи. Большой брат всё ближе. То что данная технология будет использоваться спецслужбами, и использоваться далеко не для ловли вирусописателей — это настолько очевидно, что тут даже обсуждать нечего. А ещё, она обязательно будет использоваться крупными корпорациями — патентными троллями. Тяжелые времена также наступят для всех кто вкладывается в Open Source, пишет всякие свободные библиотеки, фреймворки, и.т.д. Всё то на чём сейчас базируется ПРАКТИЧЕСКИ ВСЕ крупные продукты. Дай бог, чтобы хоть какая-то реализация этой технологии анализа появилась в виде Open Source решения — чтобы была возможность придумать обфускатор. Хотя сдаётся мне, обычного обфускатора тут будет мало — применяемые программистом паттерны разработки, и многие персональные особенности организации программы он никак не изменит.
Чингачгук
8 января, 2016 - 15:50
Проблема не столько в том, что большой брат может следить и выследить. Проблема в том, что большой брат может сделать после. А вот эту проблему возможностей репрессивных механизмов никто решать не собирается, и не хочет даже признавать проблемой. Неспособность физически защититься от репрессивного аппарата большинством воспринимается не как баг, а как фича.
Чингачгук
7 января, 2016 - 22:50
С такими темпами, скоро в дополнение к различным рекомендациям по программированию, появятся рекомендации по написанию максимально обезличенного кода.
Чингачгук
7 января, 2016 - 22:56
Этот вопрос уже изучался и эксперты пришли к выводу, что писать обезличенно невозможно.
Чингачгук
8 января, 2016 - 01:25
Естественно, на 100% не получится.
Моя мысль немного в другом: на крупных проектах существуют требования по стилю оформления кода, разделению классов, применению различных паттернов. Общую архитектуру и даже структуру классов могут вообще разрабатывать согласовано и не исполнители. Я за свою 15 летнюю практику программиста несколько раз встречался с такими проектами, в которых невозможно даже по исходникам понять где кто и что писал — всё было очень чётко регламентировано и проверялось на соответствие. Насколько хорошо ТАКОЙ код проанализирует данная система (а особенно если ей на вход даётся только готовый бинарник) ? Сможет-ли она, например, гарантированно различить авторство друх разных проектов из разных компаний, сделанных по одинаковой схеме ? Как бы это проверить...
Если не сможет — значит обезличивать код всё-таки МОЖНО. В любом случае — такая система оперирует не абсолютными значениями "соответствует\не соответствует", а выдаёт процент соответствия. Снижение этого процента соответствия используя какие-то общие методики — уже может быть достаточно.
Чингачгук
8 января, 2016 - 01:30
Если бы можно было все полностью формализовать и исключить творческую составляющую, то программы бы писались другими программами. Вот тогда метод бы не сработал. Не сомневаюсь, что рано или поздно всё к этому и придет. Но пока есть человеческий фактор, анализ стилометрических признаков будет работать.
Можно ли различить авторов двух картин, если прежде художники учились в одной художественной школе?
Чингачгук
8 января, 2016 - 01:45
О чём-то подобном уже писали вроде-бы на других технических ресурсах недавно. Сейчас уже не вспомню дословно, но основная идея была как раз в том, чтобы использовать программу для написания программ...
А что если 2 художника учившихся в одной школе и творящие в одном и том-же стиле (2 программиста, связанные условностями и требованиями проекта), напишут 2 разных части одной картины — один левую часть, а второй правую часть. Можно-ли будет как-то по признакам определить кто именно из них написал какую именно часть картины ? Особенно если они специально стремились получить максимально гармоничную картину, на которой бы не был виден "разрыв" между стилями ?
Чингачгук
8 января, 2016 - 02:00
Разумеется. Наклон мазков, интенсивность, точность смешивания красок и подбора цвета и т.д. Я слышал (не знаю, насколько это правда), что художественная экспертиза использует свыше 5000 таких признаков. Поэтому спецы могут играючи различить не только авторов двух разных картин, но и всех авторов подделок одной и той же картины.
Кстати, 462 признака для бинарников — это тоже очень много. 2462 возможных вариантов. Понятно, что распределение признаков будет не равномерным, а гауссовым, что снижает количество комбинаций. Но это количество все равно огромно и сильно больше количества активных вирусописателей. Следовательно, вероятно коллизии низка, даже если юзер постарается искусственно повлиять на часть признаков.
Чингачгук
8 января, 2016 - 06:20
Чет я думаю что не все кто пишут вирусы простофили. Вот соберутся энти "писатели" на своих грязных, подпольных сайтах и начнут дискутировать: мол, так и так, пришла беда отворяй ворота.
А потом после долгих-долгих дебатов, кто-нибудь предложит шаблон типа свод правил от которых не желательно отклоняться. Разработают некий стандарт (устав) и, усё.
Чингачгук
8 января, 2016 - 06:24
И насколько будет легко следовать своду минимум из 462 правил? И каждую строчку кода сверять? Проще сразу застрелиться.
Чингачгук
8 января, 2016 - 06:33
Волшебное слово — шаблон.
Комментировать