Развитие информационных технологий влияет на развитие всего спектра программного обеспечения.
Это не обходит стороной вредоносное ПО .
Можно выделить основные приемы, используемые при разработке «продвинутого» вредоносного программного обеспечения (ВПО).
- ? операция уязвимости программного обеспечения , установленный на зараженном компьютере для его скрытого запуска или повышение привилегий .
Примеры - Стакснет вместо традиционного запуска с флешки через автоматический старт (autorun.inf) использовал уязвимость обработки ярлыков MS10-046, позже была использована та же уязвимость Салити .
Конфикер использовал уязвимость сетевого сервиса MS08-067 «Сервер», это позволило ему размножиться на большом количестве машин.
Уязвимость обычно относится к классу переполнение буфера , но не обязательно, также может быть переполнение кучи и т.п.
Краткая суть переполнения буфера: они часто используются в программировании куча .
Концепция стека упрощает передачу параметров функции и возврат управления в то место, где функция была вызвана.
Пример: мы вызвали нашу нужную функцию, которая должна вводить строку с клавиатуры, адрес возврата поместили в стек, скажем 4 байта, далее мы зарезервировали в стеке 255 байт под строку — мы не против.
А товарищ Иванов при работе с нашей программой пошел дальше и ввел строку длиной 364 байта.
4 байта адреса возврата были перезаписаны другими байтами (из строки).
Поэтому управление вернется не в то место, из которого была вызвана функция, а в какое-то другое место.
Помимо прочего, мы можем сделать так, чтобы наша строка содержала двоичные коды и переход происходил по адресу, указывающему на область памяти внутри нашей строки.
Такая настроенная последовательность (данных в целом, а не только строк) называется шеллкод , а вредоносное ПО, внедряющее шеллкод, эксплуатировать .
Уязвимость нашей программы заключается в том, что здесь нет проверки длины входной строки.
Для устранения уязвимости используется пластырь .
Патч — это программа (или последовательность действий), изменяющая определенные файлы для устранения уязвимостей.
- Применение технологии полиморфизм .
Как известно, одним из антивирусных методов обнаружения вредоносных программ является сигнатурный анализ .
Это означает, что для вредоносного ПО определена определенная последовательность данных (байтов), которая называется сигнатурой.
Эту подпись нельзя найти ни в одной другой программе.
В общем виде в текстовом описании это может выглядеть так: 127 байт от начала равны 7, 145237 байт от конца равны 255, а 145235 байт должны быть равны 0. Полиморфизм направлен на то, чтобы вредоносная программа файл каждый раз разный, и выявить для него какой-либо шаблон (подпись) было невозможно.
Например, Зевс при скрытой установке он перекодировал свой основной модуль, поэтому на разных компьютерах одна и та же его версия отличалась практически каждым байтом.
Особо «продвинутым» методом является «серверный» полиморфизм, когда вредоносный сервер загружает на каждый компьютер вновь собранную копию вредоносного ПО.
В этом случае алгоритм преобразования файлов не содержится в самой вредоносной программе, а реализуется на сервере.
Это значительно увеличивает возможность формирования разнородных копий, поскольку код «мутации» может быть сколь угодно большим и сложным.
Этот метод использовался, например, в Storm.
- Наличие функционала руткит (руткит), направленный на сокрытие признаков работы вредоносного ПО на зараженном компьютере.
Как правило, это означает невидимость вредоносных файлов на системном уровне, невидимость вредоносных процессов в Диспетчере задач, определенных ключах реестра и так далее.
- Реализация функций самообороны.
Самозащита предполагает противодействие антивирусным программам, например, принудительное их завершение, или действиям пользователя, например, блокировку запуска редактора реестра.
Также он может запретить доступ к порталам антивирусных компаний или сайтам информационной безопасности, где можно получить инструкции по удалению того или иного вредоносного ПО, скачать обновление к антивирусу или сам антивирус.
Правда, некорректная работа антивируса является демаскирующим фактором вредоносного ПО.
Отдельным пунктом является удаление своих «конкурентов» — других вредоносных программ — с пораженного компьютера.
Классический случай такого противостояния — битва между семействами ботов Сризби и Шторм.
- Использование системы управления передачей команд и получения информации от вредоносного ПО, устойчивой к действиям антивирусных компаний, направленным на прекращение деятельности.
ботнет .
Ботнет — это совокупность ботов (вредоносных программ одного типа), которые получают команды из одного источника — от оператора или операторов (злоумышленников).
Основы криптографии
Для общего понимания того, что представляет собой технология электронной цифровой подписи (ЭЦП), о которой пойдет речь ниже, необходимо раскрыть основные понятия.Существующие методы шифрования можно разделить на симметричный — ДЕС , 3DES , АЕС , RC4 , RC6 И асимметричный (или шифрование с открытым ключом) - ЮАР , ECDSA .
Основные различия между ними:
- симметричное шифрование намного быстрее асимметричного (в десятки раз);
- При симметричном шифровании используется один ключ, при асимметричном — два.
Основная его суть: существует два ключа — приватный и публичный, причем приватный ключ не может быть выбран или вычислен из публичного за приемлемое время (например, при жизни злоумышленника), используя доступные сегодня вычислительные мощности.
Естественно, сейчас 8-битный ключ можно вычислить менее чем за секунду, а 1024-битный ключ придется искать в течение многих лет. Еще одним свойством открытого и закрытого ключей является то, что любой из них может зашифровать сообщение, а другой — его расшифровать.
То есть возможны две операции:
- отправитель – исходный текст – закрытый ключ – зашифрованный текст – открытый ключ – расшифрованный текст – получатель;
- отправитель – исходный текст – открытый ключ – зашифрованный текст – закрытый ключ – расшифрованный текст – получатель.
- отправитель А - исходный текст - закрытый ключ А - зашифрованный текст - открытый ключ А - расшифрованный текст - получатель Б;
- отправитель A – исходный текст – открытый ключ B – зашифрованный текст – закрытый ключ B – расшифрованный текст – получатель B.
В первом случае (идентификатор или подпись) пользователь Б уверен, что сообщение отправил пользователь А, поскольку никто, кроме А, не может зашифровать сообщение так, чтобы его можно было расшифровать с помощью открытого ключа А (закрытый ключ не может быть вычислен из открытый ключ).
Во втором случае (шифрование) только пользователь B может расшифровать с помощью своего закрытого ключа B сообщение, зашифрованное любым пользователем с использованием его открытого ключа B (закрытый ключ не может быть вычислен из открытого ключа).
На практике схема несколько сложнее, поскольку уже упоминалось, что асимметричное шифрование в десятки раз медленнее симметричного.
Поэтому при подписании используют шифрование не всего объема данных, а некоторой функции этих данных, называемой хэш-функция .
В качестве простой хэш-функции можно рассмотреть часто используемый в астрологии прием, например, число 1998 года — 1+9+9+8=27=2+7=9. В первом приближении именно так работает хеш-функция, только вместо сложения используется множество других функций.
В приведенном примере видно, что, например, 1899 год тоже будет иметь цифру 9, такая ситуация называется столкновение , это означает, что одному значению хеш-функции (или просто хешу) соответствуют разные наборы данных.
Наиболее распространенные типы хешей: MD5 , MD6 , ША-1 , ША-2 .
Таким образом, технически ЦП — это дополнительный блок данных, содержащий хэш передаваемых данных, зашифрованный закрытым ключом пользователя.
Коллизию можно использовать для подмены процессора.
Если мы возьмем ЭCPU из любого файла и создадим свой фейковый файл с таким же хешем, то у конечного пользователя все расчеты сойдутся, и он будет думать, что файл был отправлен от известного ему человека (а не от нас) .
Проблема в том, что невозможно создать алгоритм, по которому байты нужно добавлять в наш файл, чтобы получить заданное значение хеш-функции.
Конечно, можно, скажем, добавить в наш файл байт со значением 0, затем 1, 2 и так до 255, затем таким же образом добавить второй, третий и т.д., но это займет некоторое время.
очень долгое время.
Что касается шифрования, то и здесь применены некоторые модификации.
Таким образом, асимметричный алгоритм снова шифрует не весь набор данных, а так называемый сеансовый ключ, сгенерированный случайным образом.
Этот сеансовый ключ используется для шифрования набора данных с использованием симметричного алгоритма, который работает намного быстрее.
Сам сеансовый ключ шифруется открытым ключом получателя и добавляется к исходным данным.
Получатель расшифровывает сеансовый ключ своим закрытым ключом и использует его для расшифровки исходного сообщения.
Использование криптографии во вредоносном ПО
Используя криптографические методы, злоумышленники решают следующие задачи:- с помощью ЭCPU они подтверждают, что обновленная версия вредоносного ПО или команды действительно была получена от операторов, а не от злонамеренных конкурентов или сотрудников антивирусных компаний.
Для этого в бота «вшит» публичный ключ, а приватный хранится в надёжном месте (естественно, не на сервере).
Не секрет, что многие программы содержат уязвимости, и серверы управления ботнетами не являются исключением.
В некоторых случаях удавалось взломать такие серверы, тогда появилась возможность дать ботам команду на самоуничтожение, распространить антивирусную утилиту под видом новой версии бота или изменить адрес центр управления.
Использование ЭCPU устраняет проблему перехвата управления ботнетом;
- шифровать информацию, украденную с зараженного компьютера.
Таким образом, результатами работы ботнета могут воспользоваться только его операторы (имеющие приватный ключ), то есть взлом управляющего сервера ничего не даст;
- Многие антивирусные инструменты не анализируют действия программ (отслеживают подозрительные действия, например внедрение своего кода в другой процесс), если они подписаны ЦП крупных компаний-разработчиков программного обеспечения и разработчиков драйверов.
Эта возможность успешно используется злоумышленниками для обхода систем антивирусной защиты.
Подпись формируется с помощью украденных приватных ключей (Stuxnet подписывается украденным ключом Realtek), методом коллизии (Flame якобы подписана Microsoft), в некоторых случаях можно было зарегистрировать фиктивную компанию-разработчика ПО и получить свою приватную ключ легально;
- Эксперты антивирусных компаний отмечают, что в последнее время случаи распространения программа-вымогатель - программы-вымогатели.
Классическим примером программы-вымогателя является GPCode. Эта вредоносная программа шифрует файлы пользователя случайным сеансовым ключом, который сохраняет в виде, зашифрованном с помощью открытого ключа (находится в GPCode).
Исходные данные естественным образом стираются.
Для выполнения обратной операции необходимо перевести определенную сумму денег по реквизитам, оставленным злоумышленником, и отправить ему этот зашифрованный сеансовый ключ.
Он расшифровывается с помощью закрытого ключа (находится злоумышленником) и отправляется обратно пользователю, после чего файлы будут успешно расшифрованы.
Единственная надежная защита от воздействия таких программ – резервное копирование.
Виды систем управления
В своем развитии система управления прошла следующие этапы:- жестко закодированные адреса электронной почты;
- использование IRC-чатов, ботов, подключенных к определенным каналам на указанных серверах, при этом серверы могут быть как легальными, так и взломанными, с последующей установкой на них программного обеспечения IRC-сервера;
- жестко закодированные доменные имена или IP-адреса;
- использование DGA (Domain Generation Algorithm – алгоритм генерации доменного имени);
- использование P2P-технологий.
Для решения этих проблем используются технологии DGA и P2P. Суть DGA заключается в том, что названия командных центров управления не жестко запрограммированы, а генерируются по псевдослучайному алгоритму с использованием текущей даты и времени, причем количество таких доменов должно быть достаточно большим, например 1000 на каждый.
день.
Это приводит к тому, что зарегистрировать или заблокировать все такие имена – очень сложная и практически невыполнимая задача.
Однако использование DGA во вредоносном ПО позволяет антивирусным компаниям использовать так называемый вороночный маршрутизатор — фальшивый центр управления, который боты начинают воспринимать как свой.
Таким образом, появляется возможность оценить масштабы заражений и их географическое распространение, анализируя IP-адреса входящих подключений.
В некоторых случаях это даже позволяет перехватить управление и дать команду на самоуничтожение, что, однако, случается редко, поскольку команды и новые файлы обычно подписываются злоумышленниками.
Используйте то же самое P2P позволяет полностью отказаться от концепции центра управления; управление или распространение новых версий бота можно осуществлять с любого зараженного компьютера.
P2P (peer-to-peer, одноранговая сеть) предполагает участие большого количества компьютеров, каждый из которых содержит некоторую информацию о других подобных компьютерах, например IP-адрес.
Список таких компьютеров (пиров) называется загрузочным списком (списком начальной инициализации).
В зависимости от того, откуда взят этот список, различают частично децентрализованные и полностью децентрализованные P2P-сети.
Частично децентрализованные P2P-сети предполагают загрузку списков начальной загрузки с ранее известных серверов.
В частности, так работает uTorrent. В такой системе есть слабое место — достаточно заблокировать доступ к серверам, содержащим список начальной загрузки.
Таким образом, вредоносное ПО использует полностью децентрализованную схему.
Следует отметить, что концепция полностью децентрализованной P2P-сети в отношении вредоносного ПО подразумевает, что распространение будет происходить в два этапа.
На первом этапе распространяется бот с пустым загрузочным списком, он периодически обращается к командному центру, который в свою очередь фиксирует IP-адрес бота.
Помимо самого IP-адреса, операторов ботнета интересует информация, находится ли бот за шлюзом или межсетевым экраном.
Если это не так, то бот может выступать в роли суперпира (суперпира, суперноды), то есть к нему могут напрямую подключаться другие пиры.
Как только необходимое количество суперпиров набирается, их список заносится в бутстрап-лист, и новая версия бота с ним начинает распространяться злоумышленниками.
После распространения все боты обмениваются информацией о своих соседях и формируют собственный бутстрап-лист. В результате этого возникает P2P-сеть.
Устойчив к исчезновению определенного количества ботов, так как список соседей постоянно меняется.
В ходе обмена боты также обмениваются информацией о своей версии.
Если бот обнаруживает, что он «устарел», у одного из соседей скачивается новая версия.
При скачивании, как правило, проверяется процессорность файла, чтобы исключить возможность распространения «чужих» файлов.
Таким образом, все боты в P2P постоянно обновляются.
Именно по приведенной выше двухступенчатой схеме работают последние версии Шторма, Салити И Зевс .
Используемая ими реализация P2P основана на Кадемлия .
Конфикер использует собственную реализацию, самое интересное в ней то, что ее загрузочный список изначально пуст; он обнаруживает своих соседей путем сканирования IP-адресов.
По своим возможностям Conficker больше напоминает инструмент для тестирования новейших технологий при написании вредоносного ПО, чем просто очередного бота.
Подводя итог, можно сделать вывод, что создатели современных вредоносных программ достаточно серьезно относятся к вопросам обеспечения живучести своих вредоносных программ.
Более того, существует тенденция, что антивирусные компании фактически проигрывают в этой гонке.
Использование P2P и ЭCPU практически не дает шансов «справиться» с ботнетами.
Теги: #conficker #conficker #sality #storm #stuxnet #zeus #cyberthreat #malware #информационная безопасность
-
Портфельные Инвестиции)
19 Oct, 24 -
Культура Типографики В Сети
19 Oct, 24 -
Китайская База Данных Вредоносных Программ
19 Oct, 24 -
Королевский Рождественский Подкаст
19 Oct, 24