Использование атаки на настольное приложение 3CX для иллюстрации важности подписи и проверки программного обеспечения

Все сообщения

В конце марта 2023 года исследователи безопасности раскрыли данные злоумышленника. сложная атака на цепочку поставок программного обеспечения о программном обеспечении для делового общения от 3CX, в основном о настольном приложении компании для голосовых и видеозвонков. Исследователи предупредили, что приложение каким-то образом было заражено трояном и что его использование может подвергнуть организацию возможной схеме эксфильтрации со стороны злоумышленника. Атака получила название «Гладкий оператор», и есть некоторые свидетельства того, что она продолжается уже несколько месяцев. 

Так что же именно произошло, каким образом использование этой троянской версии подвергает вас риску и как это можно было предотвратить с помощью подписи и проверки программного обеспечения? 

Перво-наперво: что такое 3CX?

3CX это программная IP-АТС с открытыми стандартами (частная телефонная станция), заменяющая традиционную аппаратную АТС. Он предназначен для того, чтобы позволить предприятиям совершать и принимать звонки с использованием технологии VoIP (Voice over Internet Protocol), которая передает голосовую связь через Интернет. 3CX также включает расширенные функции, такие как видеоконференции, присутствие, обмен мгновенными сообщениями и многое другое, и может быть развернуто локально или в облаке. Windows, macOS и Linux — это лишь некоторые из популярных операционных систем, в которых доступно приложение. Кроме того, клиент доступен через браузеры благодаря расширению Chrome, и клиент даже имеет версию PWA, а также доступен в виде мобильного приложения для устройств Android и iOS.

Вы можете получить некоторое представление о потенциальных последствиях атаки на цепочку поставок программного обеспечения на веб-сайте 3CX, на котором 600,000 12 компаний используют их приложение и имеют более XNUMX миллионов ежедневных пользователей.

Краткий обзор атаки: что вам нужно знать

Это немного сложно, поэтому мы разобьем его на этапы:

  1. Вы загружаете троянскую версию настольного приложения или она уже установлена ​​и просто обновите ее, загрузив троянскую версию.
  2. Исполняемый файл 3CXDesktopApp.exe загружает вредоносную динамическую библиотеку (DLL) под названием ffmpeg.dll.
  3. ffmpeg.dll используется для извлечения зашифрованных полезных данных из d3dcompiler_47.dll и их выполнения.
  4. Затем вредоносная программа загружает невинно выглядящие файлы значков, размещенные на GitHub, которые содержат строки в кодировке Base64, добавленные в конец изображений.
  5. Эти закодированные данные затем декодируются и используются для загрузки следующего этапа, содержащего зашифрованный командный сервер, к которому подключается бэкдор, чтобы получить возможную окончательную полезную нагрузку.
  6. На заключительном этапе на практике реализуется функция кражи информации, включая сбор системных данных и данных браузера из браузеров Chrome, Edge, Brave и Firefox. Это может включать в себя запрос истории просмотров и информации из таблицы «Места», а также, возможно, запрос таблицы «История».

Первоначально В 3CX преуменьшили значение атаки, но позже признали, что это реальная угроза, и предложили удалить и переустановить приложение со своими конкретными инструкциями, а также использовать версию PWA, пока компании не удастся распутать инцидент и смягчить его последствия.

Еще один очень важный фактор, о котором следует помнить, — это то, что компрометация включает в себя сертификат подписи кода, используемый для подписи зараженных троянами двоичных файлов. Ну, не совсем — на самом деле он использует известную уязвимость под названием CVE-2013-3900 (первоначально опубликовано в 2013 году, но обновлено в 2022 году и снова на этой неделе), чтобы сделать его появиться законно подписан.

Дежавю: это уже случалось раньше

Если эта история о Троянская версия 3CX звучит знакомо, потому что это уже случалось раньше

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

В других известных атаках, от Kingslayer (2016 г.) до CCleaner (2017 г.), VestaCP (2018 г.), WIZVERA VeraPort (2020 г.) и вплоть до SolarWinds (2020 г.), это распространенная практика злоумышленников, пытающаяся скомпрометировать серверы компании, среду сборки или ее фактический загружаемый исполняемый файл. В конце концов, маскировка чего-то плохого и опасного под то, чему можно доверять, — это отличный способ заставить людей доверять и загружать вашу полезную нагрузку.

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

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

И вот главная проблема – «ничего не подозревающий». Ведь исполняемый файл, бинарный файл или образ поступил от компании-создателя, судя по всему, одобренный ею, и даже содержит подписанный сертификат. Что еще может сделать клиент? Должны ли они позвонить в компанию, чтобы проверить каждое обновление? Сканировать код (если есть) на наличие бэкдоров? Это абсурдно и нереально. Но есть is что-то, что можно сделать.  

Как вы можете добавить уровень доверия помимо сертификата? 

Изображение, иллюстрирующее уровень доверия

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

Сертификаты подписи выдаются доверенной третьей стороной. центры сертификации (CA), которые проверяют личность издателя программного обеспечения и целостность кода программного обеспечения. Центр сертификации использует криптографические алгоритмы для создания цифровой подписи программного обеспечения, которая затем включается в подписываемый код. Когда пользователь пытается установить или запустить программное обеспечение, его система проверит цифровую подпись, чтобы убедиться, что она соответствует подписи, созданной центром сертификации. Если подписи совпадают, программное обеспечение считается подлинным и не подвергалось манипуляциям с момента подписания. 

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

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

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

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

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

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

Но подождите, вы можете спросить, а что, если источником заражения на самом деле является библиотека с открытым исходным кодом? В таком случае подписывать сборку снова бессмысленно, поскольку компрометирующий код «встроен».

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

Где появляется Писец

Писец внедрил инструмент под названием Валинт что позволяет вам подпишите и проверьте файлы, папки и изображения. Без необходимости поддерживать сложные системы PKI этот инструмент реализует новый подход, заключающийся в использовании уже установленного проверенного удостоверения (например, удостоверения Google, Microsoft, GitHub или AWS) для подписи желаемого артефакта. Позже вы можете использовать тот же инструмент, чтобы проверить, был ли подписан артефакт и какое удостоверение использовалось для его подписания.

Допустим, ваш конвейер сборки создает образ контейнера в качестве конечного артефакта. Сразу после создания образа вам следует его подписать и загрузить подписанную версию в репозиторий, где ваши клиенты смогут ее скачать. После подписания это изображение больше нельзя изменить — оно заблокировано. Любой желающий может проверить, подписано ли оно и соответствует ли подписывающее удостоверение тому, что опубликовала компания.

Этот инструмент представляет собой лишь часть возможностей, предоставляемых реализацией Написание SaaS-решения для вашей организации. С целью повышения безопасности вашей цепочки поставок программного обеспечения и общей прозрачности у вас есть все основания пойти и проверить, что Scribe может вам предложить. 

баннер

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