2016-12-30 2 views
-1

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

Я хочу, чтобы иметь возможность обнаруживать вредоносное ПО, которое находится на моем компьютере. Скажем, на моем компьютере есть троянский конь. Как написать программу для ее обнаружения?

Я новичок в информационной безопасности.

Заранее спасибо.

+0

[Это] (https://www.researchgate.net/profile/Aditya_Mathur2/publication/229008321_A_survey_of_malware_detection_techniques/links/543153450cf29bbc1278860d.pdf), вероятно, хорошая бумага, чтобы начать чтение на различные подходы к обнаружению вредоносных программ. – leroydev

ответ

1

В большинстве продуктов безопасности конечных точек есть: - компонент сканирования по требованию. - компонент сканирования в реальном времени. - перехватывает другие области ОС для проверки данных перед «выпуском». Например. Сетевой уровень для сетевых угроз. - механизм обнаружения - включает в себя экстракторы файлов - данные обнаружения, которые могут быть обновлены. - Элементы сканирования времени выполнения.

Существует много слоев и компонентов, которые все должны работать вместе для повышения защиты.

Вот несколько сценариев, которые должны быть покрыты продуктом безопасности.

  • Вредоносный файл на диске - статическое сканирование по требованию. Возможно, у вас есть пример. В командной строке/сканере по требованию будет перечисляться каждый каталог и файл на основе запрошенного сканирования. Процесс будет считывать файлы и передавать потоки данных в механизм обнаружения. В зависимости от настроенных параметров сканирования и исключений файлы будут проверяться. Двигатель может понять/распаковать файлы для проверки типов. Большинство из них имеют компонент обнаружения типа файла. Он может просто посмотреть на первые несколько байтов файла в соответствии с этим - https://linux.die.net/man/5/magic. Довольно простой, но он дает вам представление о том, как вы можете классифицировать тип файла, прежде чем выполнять больше классификаций. Это может быть так же просто, как несколько контрольных сумм файла при разных смещениях.

В случае вашего примера троянского файла. Предполагая, что вы являетесь своей собственной лабораторией вирусов, возможно, вы видели файл раньше, проанализировали его как письменное обнаружение, поскольку вы знаете, что оно злонамеренно. Возможно, вы можете просто контролировать часть файла и публиковать эти данные для своего продукта. Таким образом, у вас есть virusdata.dat, в нем вы можете иметь контрольную сумму и имя для нее. Например. 123456789, Troj-1 У вас есть процесс сканирования, который загружает ваш файл данных вирусов при запуске и открывает файл для сканирования. Вы сканируете контрольные суммы файла в соответствии с лабораторным сценарием и получаете совпадение с файлом данных. Вы показываете имя, как оно было отмечено. Это самый простой пример на самом деле, а не тот практический опыт, который, как мы надеемся, он выполняет. Конечно, вы увидите проблему с ложными срабатываниями.

Другие аспекты продукта включают в себя:

  • Процесс написания вредоносного файла на диск - в режиме реального времени. Чтобы «видеть» доступ к файлам в режиме реального времени и попасть в этот стек, вам нужен драйвер фильтра файловой системы. Мини-фильтр файловой системы, например, в Windows: https://msdn.microsoft.com/en-us/windows/hardware/drivers/ifs/file-system-minifilter-drivers. Это гарантирует, что вы получите доступ к файлу до его чтения/записи.Затем вы можете отсканировать файл до его написания или чтения процессом, чтобы дать вам возможность запретить доступ и оповещение. Обратите внимание, что в этом случае вы блокируете, пока не придете к решению, разрешать или блокировать доступ. Именно по этой причине продукты безопасности на стороне доступа могут замедлять работу ввода-вывода файлов. Как правило, они имеют ряд потоков сканирования, к которым может перейти драйвер. Если все потоки заняты сканированием, у вас есть проблема. Вам нужно обрабатывать такие вещи, как zip-бомбы и т. Д., И избавиться, прежде чем связывать механизм сканирования/CPU/Memory и т. Д.

  • Браузер, загружающий вредоносный файл.
    Вы можете ответить на сканер доступа, предотвращающий попадание файла на диск в процессе браузера, но затем браузеры могут визуализировать скрипты перед удалением файловой системы. В результате вы можете захотеть создать компонент для перехвата трафика перед веб-браузером. Здесь есть несколько возможностей. Вы ориентируетесь на определенные браузеры с помощью плагинов или вы опускаетесь на уровень и перехватываете трафик с помощью локального прокси-процесса. Параметры включают подключение сетевого уровня с помощью Layered Service Provider (LSP) или WFP (https://msdn.microsoft.com/en-us/windows/hardware/drivers/network/windows-filtering-platform-callout-drivers2). Здесь вы можете перенаправить трафик на прокси-сервер или из прокси-сервера процесса для проверки трафика. Трафик SSL представляет собой проблему здесь, если вы не собираетесь взломать трубку еще раз.

  • Тогда существует защита во время выполнения, когда вы не обнаруживаете файл с подписью, но вы применяете правила для проверки поведения. Например, процесс, который создает начальное местоположение реестра для себя, может считаться подозрительным. Может быть, этого недостаточно, чтобы заблокировать файл самостоятельно, но что, если у файла не было действительной подписи, местоположение было временным местоположением пользователя. Он создан AutoIt и не имеет версии файла. Все эти свойства могут придать весу решению, если оно должно быть запущено, и они образуют запатентованные данные поставщика безопасности и постоянно обновляются. Возможно, вы начинаете обнаруживать приложения как подозрительные и давать пользователю предупреждение, чтобы они могли их разрешить.

Это огромная тема, затрагивающая так много слоев. Надеюсь, это именно то, что вы имели в виду.

1

Среди литературы «Искусство компьютерных вирусных исследований и обороны» от Питера Сора определенно «нужно читать».

Смежные вопросы