Как скрывают вредоносный код внутри цифровой подписи

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

Первая часть исследования Nipravsky, которое было представлено на конференции по безопасности Black Hat в Лас-Вегасе на этой неделе, должен сделать с файлом стеганографии — практика сокрытия данных внутри законного файла.

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

Если исполняемый файл подписан, сведения о его подписи хранится в заголовке, в поле, называемой таблицей сертификатов атрибутов (ACT), которая исключается при вычислении хэш файла — уникальная строка, которая служит в качестве криптографического представления его содержания.

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

Тем не менее, это означает, что злоумышленники могут добавить данные, в том числе еще один полный файл внутри поля ACT, без изменения хэш файла и нарушения подписи. Такое добавление изменит общий размер файла на диске, который включает в свои поля заголовок, и этот размер файла проверяется с помощью технологии Authenticode компании Microsoft при проверке подписи файла.

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

Согласно Nipravsky, это логическая ошибка в Authenticode. Если бы технология проверяла третье, неизменяемоеый значение размера файла, злоумышленники не смогли бы проделать этот трюк и по-прежнему держали подписи файла действительными, сказал он.
Вредоносные данные добавляются в ACT и не загружаются в память, когда сам измененный файл выполняется, потому что это часть заголовка, а не файл тела. Тем не менее, ACT может служить местом укрытия, чтобы последние антивирусные средства защиты  пропустили вредоносный файл незамеченными.

Например, злоумышленники могут добавить вредоносный код на один из многих Microsoft подписанных системных файлов Windows, или в файл Microsoft Office. Их подписи будут по-прежнему действительны и файлы функционировать.

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

Запись опубликована в рубрике Безопасность. Добавьте в закладки постоянную ссылку.