Обратный инжиниринг вредоносных программ (часть 1)
- Обратный инжиниринг вредоносных программ (часть 2)
- Обратный инжиниринг вредоносных программ (часть 3)
- Обратный инжиниринг вредоносных программ (часть 4)
- Обратный инжиниринг вредоносных программ (часть 5)
Для многих из нас мир обратного инжиниринга довольно экзотичен. Многие люди даже не знают, как это сделать. В этой серии статей мы рассмотрим, как применять эту быстрорастущую область компьютерной безопасности.
Реверс-инжиниринг и вы
Я помню, как много лет назад, точнее всего несколько лет назад, я впервые услышал термин реверс-инжиниринг. В то время эти слова ничего для меня не значили. Как только мои знания в области компьютерной безопасности начали расширяться от сетевых протоколов до других областей, таких как обнаружение вторжений и безопасность веб-приложений, я решил вернуться к обратному инжинирингу. Проработав несколько лет в области компьютерной безопасности, я смог понять, почему возможность реконструировать исполняемый файл была полезной. Кроме того, навыки, необходимые для выполнения такой задачи, были для меня гораздо яснее. Знать, что вы хотите что-то сделать, — это только полдела. Другая половина — это просто понимание того, как подойти к задаче, которую вы перед собой поставили.
Прежде чем мы обсудим, какие навыки и знания необходимы для того, чтобы иметь возможность практиковать реверс-инжиниринг, возможно, нам следует обсудить, почему вам как системному администратору или специалисту по безопасности важно это знать. Это действительно неизбежно, что компьютерная сеть, в которой вы работаете, будет подвергнута успешному взлому. В конце концов, сотни, если не тысячи хакеров разного уровня квалификации сканируют, а затем атакуют вашу сеть. На самом деле вопрос только в том, когда, а не в том, если. Там, где нападающему должно повезти только один раз, вы, с другой стороны, должны быть на вершине своей игры каждый день.
Затем мы предположим, что злоумышленник успешно взломал вашу сеть. Вы быстро определили атаку и смогли быстро ее сдержать, тем самым сведя к минимуму нанесенный ущерб. Это превосходно, так как ваша IDS выполнила свою работу, предупредив вас о возможной атаке, и затем вы приступили к действию. Надеюсь, с этой атакой пришло определенное любопытство. Был ли исполняемый файл, использованный против вашей сети, полностью локализован? Вы обнаружили атаку, проверив свои журналы IDS, и затем смогли отключить затронутый компьютер. Ничто другое в ваших системных журналах ничего не раскрывает. Тем не менее, я бы все равно немного нервничал по поводу того, что еще могло произойти после того, как атака успешно захватила внутреннюю сеть. Что вы можете сделать?
Первый из многих шагов
Первый шаг, который вы захотите сделать после атаки, — это локализовать ее, а затем очистить пораженный компьютер. После этого я пытался определить, какой именно эксплойт был использован. Был ли это 0-дневный эксплойт или вы просто не применяли исправления к конкретному компьютеру. Если дело просто в непримененных исправлениях, перестройте компьютер и примените эти исправления! В любом случае вы должны попытаться получить копию рассматриваемого эксплойта, будь то исходный код или скомпилированный. Я слышу, как вы говорите: «Это практически невозможно сделать!». Вы были бы правы, если бы сказали, что довольно часто вы можете найти эксплойт с помощью некоторых творческих поисков. Теперь существует довольно удобный способ поиска вредоносных программ, который мы рассмотрим в рамках этой серии статей. Он был создан и размещен очень умным HDM, известным на Metasploit.
Имея в руках эту часть информации, мы отправимся и получим вредоносное ПО для изучения. На этом этапе, пожалуйста, поймите, что если вы решите загрузить и изучить часть вредоносного ПО, вы делаете это на свой страх и риск. Я никоим образом не несу ответственности за то, что может случиться с вашим компьютером. Тем не менее, используйте стандартные методы при работе с образцами вредоносных программ. Либо работайте в образе VMware, либо используйте выделенный компьютер, отделенный от вашей сети. Это позволит вам изучать вредоносное ПО, не опасаясь заразить вашу домашнюю или корпоративную сеть.
Давайте возьмем вредоносное ПО!
Итак, с приведенным выше предупреждением о загрузке и использовании образцов вредоносных программ, давайте на самом деле пойдем и получим копию. К сожалению, поскольку FrSirt больше не хранит код эксплойта, нам нужно найти другой репозиторий. Есть много других сайтов, на которых размещается код эксплойта, например, Securiteam. В зависимости от вашего уровня навыков вы можете не знать, как скомпилировать исходный код в настоящий исполняемый файл PE. Честно говоря, если вы не умеете компилировать исходный код, то эта статья может быть для вас немного продвинутой. Хотя, с другой стороны, я большой сторонник изучения вещей, когда это возможно.
До сих пор эта первая часть была в основном контекстуальной информацией о реверс-инжиниринге. Есть важная причина для того, чтобы написать это как таковое. Реверс-инжиниринг — непростая тема для изучения. Многие читатели также будут иметь разный уровень навыков. Поэтому для того, чтобы вы, читатель, могли извлечь максимальную пользу из этой серии статей, очень важно изложить основы навыков, необходимых для выполнения базового реверс-инжиниринга. Как уже было сказано выше, если вы не знаете, как компилировать код, то здесь вам может понадобиться немного обучения. Сделайте все возможное, чтобы понять, и, если нужно, вернитесь и освойте необходимые навыки.
Что случилось с загрузкой вредоносных программ?!
Да-да, я помню, как говорил, что мы собирались загрузить какое-то вредоносное ПО с сайта Metasploit. И снова я отвлекся, пытаясь дать вам дополнительную информацию, необходимую для этого предприятия. Чтобы иметь возможность выполнять упомянутый обратный инжиниринг, вам в разной степени необходимы следующие навыки.
- Прежде всего, вам нужно иметь некоторые навыки программирования или, по крайней мере, уметь понимать и читать исходный код. Это станет решающим при использовании дизассемблера, такого как Ollydbg или IDA Pro, если вы сможете себе это позволить. Лучшее из обоих миров — это дизассемблер, который я использую в этой статье. Он очень недорогой и вполне функциональный.
- Иметь представление о методологии обратного инжиниринга. Это будет включать как статическую, так и динамическую части.
- Знайте, какие инструменты использовать во время как статической, так и динамической фаз.
Хотя приведенные выше три пункта могут показаться некоторым из вас пугающими, поверьте мне, это совсем не так. Все, что нужно сделать, это собрать соответствующую информацию, инструменты и надлежащую настройку компьютерной лаборатории, чтобы всерьез приступить к обратному инжинирингу. На этой ноте я закончу первую часть этой серии статей. Хотя в этой статье было очень мало практических рук, в следующих частях они действительно будут. Очень важно заложить основу, прежде чем углубляться в суть проекта. Время, потраченное на планирование, редко тратится впустую. Итак, с учетом сказанного, я с нетерпением жду встречи с вами во второй части. Где мы обязательно, обещаю, скачаем наш образец вредоносного ПО и начнем настройку для реверс-инжиниринга.
- Обратный инжиниринг вредоносных программ (часть 2)
- Обратный инжиниринг вредоносных программ (часть 3)
- Обратный инжиниринг вредоносных программ (часть 4)
- Обратный инжиниринг вредоносных программ (часть 5)