Спецпроекты

Безопасность Пользователю Стратегия безопасности Техника

Хакеры переходят на «экзотические» языки программирования, чтобы ловчее обманывать экспертов по безопасности

Киберпреступники начали писать свой вредоносный софт на не очень популярных языках программирования. Больше всего им нравится созданный Google язык Go, но они также используют Rust, D и Nim, чтобы запутать специалистов ИБ-компаний.

Хакеры предпочитают экзотику

Программисты, пишущие вредоносные программы, все чаще используют для этого редко встречающиеся языки программирования. Согласно отчету об исследовании BlackBerry Research & Intelligence, они стали отдавать предпочтении языкам D (он же Dlang), Go (Golang) и Nim вместе с Rust. Авторы отчета называют такие языки «экзотическими»

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

Например, хакеры могут написать загрузчик на «экзотическом» языке, в котором они прячут вредоносное ПО, созданное с использованием более распространенного языка. Согласно отчету, на Go, Rust и других также пишутся так называемые дропперы (droppers – англ.), использующиеся для декодирования, загрузки и установки вредоносного ПО.

Накинувшиеся на «экзотические» языки хакеры делают их все более популярными в мировом масштабе

По данным BlackBerry, и APT-группировки, пользующиеся поддержкой национальных государств, и «коммерческие» вирусописатели проявляют все больше интереса к Golang и другим таким языкам в надежде усилить свой арсенал. Уже появлялись и шифровальщики-вымогатели, использующие Go для шифрования основного вредоносного модуля. Как указывают исследователи, им стали почти регулярно попадаться вредоносные программы на Go, причем любых разновидностей и атакующие любые операционные системы. Используя нестандартные языки программирования злоумышленники могут заметно осложнить анализ своих вредоносов со стороны исследователей антивирусных компаний. Кроме того, против вредоносных программ на таких языках не срабатывают сигнатурные методы обнаружения: сам код на нестандартном языке обеспечивает вредоносу дополнительный слой скрытности.

«Сигнатурный метод тут действительно может и не сработать, однако сегодняшние защитные средства не полагаются только на него одного. Более действенными являются защитные инструменты, использующие также и поведенческий анализ, то есть, реагирующие на то, что программа делает, а не на ее код. Однако такой анализ занимает время, что дает вредоносу иногда критическое преимущество. Сигнатурные методы не теряют актуальности, но только если они способны распознать код, написанный на любом языке», – отметил эксперт по информационной безопасности компании SEC Consult Services Дмитрий Кирюхин.

Язык Go создан компанией Google в ноябре 2009 г. Появление Nim датировано 2004 г., а D на три года старше – он вышел в 2001 г. Самым молодым в этой четверке является Rust – он существует с июля 2010 г.

Со старого языка на новый

В ряде случаев программисты полностью переписывают ранее созданные ими вредоносные программы на новом языке. В отчете описан пример с трояном Buer, первоначально написанном на языке C. Пик его активности фиксировался в конце 2020 г., а летом 2021 г. появилась его новая версия RustyBuer, написанная на Rust.

Также в качестве примера приведен и вредонос BazaLoader, также известный как BazarBackdoor. О нем тоже стало известно в 2020 г., и он тоже написан на С.

Распространением BazaLoader занимается хакерская АРТ-группировка TA800. В феврале 2021 г. она запустила новый троян NimzaLoader. Это все тот же вредонос, но на этот раз созданный на языке Nim.

Насколько языки экзотичны

В отчете BlackBerry Research & Intelligence приводятся лишь четыре «экзотичных» языка программирования. Однако по-настоящему экзотичным можно считать лишь один из них – Nim.

Согласно рейтингу Tiobe за июль 2021 г., по своей популярности среди программистов Nim не входит даже в топ-50. Его доля очень мала, наряду с ActionScript, BBC BASIC и другими полузабытыми языками программирования.

Шкала популярности языка Go

Язык D в топ-50 входит, хотя и находится на 45 строчке в нем. На заметно более высоком уровне находится Rust – он занял 27 место в рейтинге Tiobe.

Наиболее востребованным в этой четверке является Go. Он входит в первую двадцатку самых популярных языков программирования, находясь на 13 месте.

Влияние киберпреступности

Резкий скачок популярности Go действительно может быть связан с киберпреступниками. Составители отчета BlackBerry Research & Intelligence отметили, что они все чаще используют его в своей работе. В качестве примера они привели неназванный вредонос, заимствовавший свои функции у целого списка троянцев. Его загрузчик написан как раз на Go.

Авторы отчета утверждают, что Go регулярно используется как обычными хакерами, разрабатывающими вредоносный софт, так и крупными хакерскими группировками, спонсируемыми государством. «Данное предположение основано на том, что новые образцы (вредоносного ПО – прим. CNews), на основе Go теперь появляются почти на регулярной основе. К тому же, они нацелены на все самые популярные операционные системы», – говорится в отчете.

Впрочем, за последние полтора года популярность Go все же немного снизилась. В марте 2020 г. он находился на 10 месте в рейтинге, и это пока самое высокое значение. С другой стороны, в мае 2015 г. он не был даже в топ-100. На тот период он занимал 122 строчку.

Для Rust наиболее удачным месяцем был сентябрь 2020 г., когда он занимал 18 место в рейтинге. Свой антирекорд он поставил в декабре 2011 г. – 211 место.

Пик популярности языка D пришелся на март 2009 г. (12 место). Самым плохим показателем для него было 74 место (декабрь 2004 г.). Статистику по Nim составители рейтинга Tiobe не приводят.

Эльяс Касми

Короткая ссылка