Сценарий Python для обнаружения вредоносных программ на сайте или процедура обнаружения вредоносных программ на сайте? - PullRequest
3 голосов
/ 20 февраля 2012

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

Как именно работает обнаружение вредоносных программ на сайте? Какой может быть алгоритм для этого? Какой алгоритм использует Google SafeBrowsing и т.д.?

Есть ли в наличии сценарий на Python?

Ответы [ 2 ]

6 голосов
/ 20 февраля 2012

Это интересная проблема, которую лучше всего решать несколькими способами.

Google, вероятно, ведет список вредоносных доменов, посещает домен - он пытался обслуживать вас .exe без взаимодействия с пользователем? Кажется ли содержание бессмысленным? И другие подобные квантификаторы. - Отметить как вредоносное. Посетите другой домен, он перенаправил вас на тот, который в вашем списке, который является вредоносным? Отметить как ненадежных. Затем вы можете применить машинное обучение / регрессионный анализ для повышения уверенности и уменьшения ложных срабатываний. Вы можете пойти дальше и провести легкое сканирование для некоторых доменов и глубокое сканирование для других доменов (потому что для глубокого сканирования может использоваться что-то вроде кукушки, которая требует больше ресурсов). Является ли доменное имя разумным словом и соответствует ли оно информации Whois? Или это бред?

Другой подход заключается в том, чтобы сохранить список известных эксплойтов (их имен и кодовых подписей) для уязвимостей в веб-браузерах и распространенных плагинах, а затем посмотреть, пытается ли веб-сайт предоставить вам эксплойт, о котором вы знаете. Чтобы создать список известных эксплойтов, просто просканируйте CVE или другую открытую базу данных и извлеките эксплойты, сделайте из них хэш и так далее ... так что это не поймает не все дерьмо, но большую его часть.

3 голосов
/ 20 февраля 2012

По сути, браузеры просто запрашивают в огромной базе данных Google известных вредоносных сайтов URL-адрес / домен, о котором идет речь.

Как Google строит эту базу данных, это отдельная история.Вероятно, они работают вместе с различными исследователями и антивирусными продуктами для обнаружения уже известных угроз.Кроме того, они, вероятно, имеют некоторое автоматическое обнаружение «подозрительных» URL-адресов или содержимого документа (Flash, PDF, Java или триггеры эксплойтов в браузере, шелл-код, цепочки ROP, сценарии разбивки кучи, ...).В конце концов, им уже приходится просматривать все содержимое для индексации, чтобы они могли легко выполнять относительно сложный анализ.Они также знают URL-адреса, на которые указывают спам и фишинговые письма через почтовый сервис.Чего они, вероятно, не делают, так это ручного анализа вредоносных программ с использованием «песочницы» и т. Д., Это работа компаний, занимающихся безопасностью и антивирусами.

В общем, это довольно сложная задача.И нет, нет ни одного доступного скрипта Python, который бы выполнял эту работу (хотя, если вы действительно заинтересованы в этом, вы обнаружите, что на самом деле существует множество небольших вспомогательных скриптов, а также более сложных сред, написанных на динамических языках, таких как Rubyили питон).Некоторые проекты, на которые вы могли бы взглянуть, чтобы начать (и которые на самом деле достаточно общие, чтобы быть очень полезными для других задач):

  • Immunity Debugger / Visual Dux: для обратного проектирования вредоносных программ.
  • VirtualBox : для запуска вредоносных программ в изолированной среде.
  • Metasm : для манипулирования сборками
  • Wireshark : для просмотра сетевого трафика, вызванного вредоносными программами.
  • ...
...