Эксперты обнаружили новый способ маскировать вредоносный контент

Эксперты обнаружили новый способ маскировать вредоносный контент

Эксперты обнаружили новый способ маскировать вредоносный контент

Киберпреступники могут упаковывать вредоносные программы в файлы с цифровой подписью, не нарушая ее, это позволяет обойти детектирование антивирусной продукцией, предупреждают эксперты.

В официальном документе, представленном на конференции Black Hat USA 2016, исследователи Deep Instinct показали, что можно скрыть вредоносный файл внутри другого файла с возможностью выполнения, не нарушая при этом структуру (без шифрования основных разделов файла).

Авторы вредоносных программ постоянно ищут новые способы обхода детектирования антивирусными средствами. Часто они прибегают к таким способам как упаковщики или различные техники шифрования, потому что антивирусы способны обнаружить вредоносный контент только тогда, когда есть возможность его распаковать, если он в сжатом или зашифрованном виде. Исследователи утверждают, что обнаруженный ими недавно метод решает проблему детектирования.

Упаковщики были созданы не только для того, чтобы уменьшить размер, занимаемый файлами на диске, но и затруднить обратный инжиниринг (reverse engineering) исполняемых файлов. Несмотря на их изначальную цель, упаковщики вскоре стали инструментом в руках авторов различных вредоносных программ. По подсчетам экспертов, до 80% вредоносных программ используют упаковщики и методы сжатия.

Большинство создателей вредоносных программ используют известные упаковщики, для которых есть обратные решения (распаковщики, unpackers), используемые разработчиками антивирусных решений в процессе сканирования. Тем не менее, существует ряд вредоносных приложений, которые пользуются упаковщиками, сделанными на заказ и неизвестными производителям антивирусных программ.

Windows использует технологию Authenticode для проверки происхождения и целостности двоичных файлов и сертификаты X.509 v3, чтобы привязать подписанный Authenticode двоичный файл к определенному издателю программного обеспечения.

Чтобы проверить целостность файла и убедиться, что он не был подделан, Windows также вычисляет его хэш и сравнивает его с хэшем, указанным в структуре SignedData. Тем не менее, исследователи обнаружили, что можно внедрить код без изменения сертификата.

«Поскольку Windows исключает три поля из вычислений хэша, мы можем вводить данные в таблицу сертификатов, не повреждая сертификат файла. Добавляя вредоносный контент в конец таблицы сертификатов, можно изменить файл без последствий» - утверждают исследователи.

По словам исследователей, этот метод позволяет вредоносному файлу пройти проверку антивирусными решениями, даже если он не использует шифрование. Таким образом, можно прятать вредоносный контент внутри других файлов.

Баги в ядре Linux скрываются в среднем 2 года, а иногда и 20 лет

История с первой CVE для Rust-кода в ядре Linux, которая недавно привела к падениям системы, выглядела почти как повод для оптимизма. В тот же день для кода на C зарегистрировали ещё 159 CVE — контраст показательный. Но новое исследование напоминает: проблема не только в языках программирования.

Гораздо тревожнее первой Linux-дыры в коде на Rust тот факт, что многие ошибки в ядре Linux могут годами, а иногда и десятилетиями оставаться незамеченными.

Исследовательница Дженни Гуанни Ку из компании Pebblebed проанализировала 125 183 бага за почти 20 лет развития ядра Linux — и результаты оказались, мягко говоря, неожиданными.

 

По данным исследования, средний баг в ядре Linux обнаруживают через 2,1 года после его появления. Но это ещё не предел. Самый «долгоиграющий» дефект — переполнение буфера в сетевом коде — прожил в ядре 20,7 года, прежде чем на него обратили внимание.

Важно уточнить: речь идёт о багах в целом, а не только об уязвимостях. Лишь 158 ошибок из всей выборки получили CVE, остальные могли приводить к сбоям, нестабильности или неопределённому поведению, но не обязательно к эксплуатации.

Исследование опирается на тег Fixes:, который используется в разработке ядра Linux. Когда разработчик исправляет ошибку, он указывает коммит, в котором баг был добавлен. Дженни написала инструмент, который прошёлся по git-истории ядра с 2005 года, сопоставил такие пары коммитов и вычислил, сколько времени баг оставался незамеченным.

В датасет вошли данные до версии Linux 6.19-rc3, охватывающие период с апреля 2005 по январь 2026 года. Всего — почти 120 тысяч уникальных исправлений от более чем 9 тысяч разработчиков.

Оказалось, что скорость обнаружения ошибок сильно зависит от подсистемы ядра:

  • CAN-драйверы — в среднем 4,2 года до обнаружения бага;
  • SCTP-стек — около 4 лет;
  • GPU-код — 1,4 года;
  • BPF — всего 1,1 года.

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

Отдельная проблема — неполные фиксы. Исследование показывает, что нередко разработчики закрывают проблему лишь частично. Например, в 2024 году был выпущен патч для проверки полей в netfilter, но уже через год исследователь нашёл способ его обойти.

Такие ситуации особенно опасны: создаётся ощущение, что проблема решена, хотя на самом деле она просто сменила форму.

RSS: Новости на портале Anti-Malware.ru