2. Введение в разработку вредоносного ПО
Модуль 2 - Введение в разработку вредоносного ПО
Введение в разработку вредоносного ПО
Что такое вредоносное ПО?
Вредоносное ПО (malware) - это тип программного обеспечения, специально разработанного для выполнения злонамеренных действий, таких как несанкционированный доступ к компьютеру или кража конфиденциальных данных. Термин "вредоносное ПО" часто ассоциируется с незаконной или преступной деятельностью, но он также может использоваться этическими хакерами, такими как специалисты по проникновению и команды "красных команд", для авторизованной проверки безопасности организации.
MalDev Academy предполагает, что пользователи, проходящие этот курс, будут использовать полученные знания только в этических и законных целях. Любое другое использование может привести к уголовной ответственности, и MalDev Academy не несет за это ответственности.
Почему изучать разработку вредоносного ПО?
Существует несколько причин, почему кто-то может захотеть изучить разработку вредоносного ПО. С точки зрения нападающей безопасности, тестировщикам часто необходимо выполнять определенные злонамеренные действия в среде клиента. У тестировщиков обычно есть три основных варианта при выборе инструментов, используемых в рамках работы:
- Инструменты с открытым исходным кодом (OST) - Эти инструменты обычно имеют сигнатуры, которые обнаруживаются безопасными продуктами или взрослыми организациями. Они не всегда надежны при выполнении оценки нападающей безопасности.
- Покупка инструментов - Команды с более крупным бюджетом часто предпочитают покупать инструменты, чтобы сэкономить время во время работы. Подобно индивидуальным инструментам, они обычно имеют закрытый исходный код и лучше маскируются от средств безопасности.
- Разработка индивидуальных инструментов - Поскольку эти инструменты создаются на заказ, они не проходили анализа и сигнатурирования безопасными продуктами, что дает нападающей команде преимущество при обнаружении. Вот где важны знания разработки вредоносного ПО для более успешной оценки нападающей безопасности.
Какой язык программирования следует использовать?
Технически говоря, для создания вредоносного ПО можно использовать любой язык программирования, такой как Python, PowerShell, C#, C, C++ и Go. Однако есть несколько причин, почему некоторые языки программирования превосходят другие в разработке вредоносного ПО, и это, как правило, сводится к следующим моментам:
- Некоторые языки программирования сложнее обратно разработать. Целью атакующей стороны всегда должно быть ограничение понимания защитниками того, как вредоносное ПО работает.
- Некоторые языки программирования требуют предварительных условий на целевой системе. Например, выполнение сценария Python требует наличия интерпретатора Python на целевой машине. Без наличия интерпретатора Python на машине невозможно выполнить вредоносное ПО на основе Python.
- В зависимости от языка программирования размер сгенерированного файла будет различаться.
Языки программирования высокого уровня и низкого уровня
Языки программирования можно классифицировать на две разные группы: языки программирования высокого уровня и языки программирования низкого уровня.
- Языки высокого уровня - Обычно более абстрактные от операционной системы, менее эффективные в использовании памяти и обеспечивают разработчику меньший контроль из-за абстракции нескольких сложных функций. Примером языка программирования высокого уровня является Python.
- Языки низкого уровня - Предоставляют возможность взаимодействия с операционной системой на интимном уровне и дают разработчику больше свободы при взаимодействии с системой. Примером языка программирования низкого уровня является C.
Исходя из предыдущих объяснений, становится ясным, почему языки программирования низкого уровня были предпочтительным выбором в разработке вредоносного ПО, особенно при работе с компьютерами под управлением Windows.
Разработка вредоносного ПО для Windows
Сфера разработки вредоносного ПО для Windows в последние годы сместилась и теперь активно сосредоточена на обходе защитных решений, установленных на хосте, таких как антивирусные программы (AV) и средства обнаружения и реагирования на инциденты (EDR). С развитием технологий уже недостаточно создавать вредоносное ПО, которое выполняет подозрительные команды или проявляет "вредоносное поведение".
MalDev Academy научит вас создавать эвазивное вредоносное ПО, которое может быть использовано в реальных проектах. В модулях также будут отмечены некорректные действия или действия, которые, скорее всего, приведут к обнаружению вашего вредоносного ПО средствами безопасности или командами "синих команд".
Жизненный цикл разработки вредоносного ПО
В основе вредоносного ПО лежит программное обеспечение, разработанное для выполнения определенных действий. Успешная реализация программного обеспечения требует процесса, известного как жизненный цикл разработки программного обеспечения (SDLC). Аналогично, для хорошо построенного и сложного вредоносного ПО требуется настроенная версия жизненного цикла разработки программного обеспечения (MDLC).
Хотя MDLC не является формализованным процессом, в MalDev Academy он используется для облегчения понимания процесса разработки. MDLC состоит из 5 основных этапов:
- Разработка - Начало разработки или усовершенствование функциональности вредоносного ПО.
- Тестирование - Проведение тестов для выявления скрытых ошибок в коде, разработанном до этого момента.
- Тестирование офлайн-Антивирус/EDR - Запуск разработанного вредоносного ПО против множества антивирусных продуктов. Важно, чтобы тестирование проводилось офлайн, чтобы не отправлять образцы программным продуктам безопасности. В случае использования Microsoft Defender это достигается путем отключения автоматической отправки образцов и облачной защиты.
- Тестирование онлайн-Антивирус/EDR - Запуск разработанного вредоносного ПО против антивирусных продуктов с доступом к Интернету. Облачные движки часто являются ключевыми компонентами в АВ/EDR, поэтому тестирование вашего вредоносного ПО против этих компонентов критично для получения более точных результатов. Будьте осторожны, так как этот шаг может привести к отправке образцов в облачный движок безопасности.
- Анализ индикаторов компрометации (IoC) - На этом этапе вы становитесь охотником за угрозами или аналитиком вредоносного ПО. Анализируйте вредоносное ПО и выявляйте IoC, которые могут потенциально использоваться для обнаружения или сигнатурирования вредоносного ПО.
- Вернуться к шагу 1.