Как бы я написал программное обеспечение для обнаружения вредоносных программ?

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

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

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

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


person Prashanth Ambati    schedule 30.12.2016    source источник
comment
Возможно, с этого стоит начать читать различные подходы к обнаружению вредоносных программ.   -  person leroydev    schedule 31.12.2016


Ответы (2)


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

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

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

  • Вредоносный файл на диске - статическое сканирование - по требованию. Может пример у вас есть. Сканер командной строки/по требованию будет перечислять каждый каталог и файл на основе того, что было запрошено для сканирования. Процесс будет читать файлы и передавать потоки данных механизму обнаружения. В зависимости от настроенных параметров сканирования и исключений файлы будут проверены. Движок может понимать/распаковывать файлы для проверки типов. Большинство из них имеют компонент определения типа файла. Он может просто просмотреть первые несколько байтов файла следующим образом: 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. Это гарантирует, что вы получите доступ к файлу до того, как он будет прочитан/записан. Затем вы можете сканировать файл до того, как он будет записан или прочитан процессом, чтобы дать вам возможность запретить доступ и предупредить. Обратите внимание, что в этом сценарии вы блокируете доступ, пока не примете решение о разрешении или блокировании доступа. Именно по этой причине продукты безопасности при доступе могут замедлять файловый ввод-вывод. Обычно у них есть несколько потоков сканирования, которым драйвер может передать работу. Если все потоки заняты сканированием, у вас есть небольшая проблема. Вам нужно справиться с такими вещами, как зип-бомбы и т. Д., И выручить, прежде чем связывать сканирующий механизм / ЦП / память и т. Д. ...

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

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

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

person HelpingHand    schedule 14.01.2017

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

person noxdafox    schedule 02.01.2017