Conclusiones clave
- Los usuarios de Elastic están protegidos de los ataques a la cadena de suministro dirigidos a los usuarios de 3CX
- Elastic Security Labs y otros equipos de investigación están investigando activamente cómo opera el flujo de ejecución
- Independientemente de la tecnología anti-malware que esté empleando, las alertas de shellcode e inyección de procesos para 3CX no deben agregar a las listas de excepciones
Preámbulo
On March 29, 2023, CrowdStrike reported a potential supply-chain compromise affecting 3CX VOIP softphone users as detailed in a Reddit post. Elastic Security Labs continues to monitor telemetry for evidence of threat activity and will provide updates as more evidence becomes available. The earliest period of potentially malicious activity is currently understood to be on or around March 22, 2023 as reported by Todyl.
3CX afirma que es empleado por más de 600,000 compañías y más de 12,000,000 de usuarios, por lo que Elastic Security Labs está lanzando un análisis de triaje para ayudar a los clientes de 3CX en la detección inicial de SUDDENICON, con un análisis de malware e intrusiones de seguimiento que se publicará en una fecha posterior.
En esta actualización informativa, Elastic Security Labs proporciona lo siguiente: - Posibles dominios maliciosos asociados con la actividad de malware - Hashes de archivos para clientes 3CX Windows y MacOS que pueden ver afectados - Consultas elásticas y protecciones prediseñadas que pueden ser relevantes para esta actividad - Reglas YARA para identificar el malware SUDDENICON
Análisis de triaje de SUDDENICON
El MSI del instalador de 3CXDesktopApp parece contener código malicioso que espera siete días luego de la instalación antes de descargar archivos adicionales de GitHub y comunicar con dominios de comando y control maliciosos. La aplicación cliente escribe ffmpeg.dll
y d3dcompiler\_47.dll
en el disco, el último de los cuales contiene una carga útil a la que nos referimos como SUDDENICON. Ambas bibliotecas de nuestra ejemplificación parecen ser introducidas por una puerta trasera. Debe tener que ffmpeg.dll
y d3dcompiler\_47.dll
son nombres de archivo legítimos y las reglas no deben crear solo con ellos.
El binario ffmpeg.dll
extrae SUDDENICON de d3dcompiler\_47.dll
buscando la secuencia de bytes FEEDFACE y descifrándola mediante una clave RC4 estática (3jB(2bsG#@c7
). A continuación, la carga útil resultante se carga en la memoria como carga útil de la segunda etapa. Un código auxiliar de shellcode antepuesto a la carga útil empleada para asignarlo a la memoria comparte similitudes con los códigos auxiliares del cargador APPLEJEUS, que se han asociado con DPRK. Al ejecutar con éxito, este código auxiliar de shellcode escribe un nuevo archivo ( manifest
) en el disco con una marca de tiempo 7 días en el futuro, que se emplea para implementar un temporizador luego del cual el malware se conecta a la infraestructura C2.
Los dominios C2 se recuperan descargando y decodificando en base64 los bytes finales anexados a los archivos de iconos almacenados en el repositorio de Github de IconStorages (este repositorio fue eliminado por Github). Este repositorio fue creado por GitHub ID 120072117
el 8 de diciembre de 2022 y se actualizó por última vez el 16 de marzo de 2023. Luego de conectarse inicialmente a un servidor C2 activo, el malware realiza un POST que contiene un identificador de máquina. A continuación, descarga y descifra un nuevo ejecutable.
El análisis inicial del nuevo ejecutable parece ser un ladrón de información. Publicaremos una actualización una vez que se completó el análisis.
El CEO de 3CX ha recomendado desinstalar el software; un pequeño número de publicaciones en foros de la comunidad describen cómo las herramientas de seguridad están reaccionando a posibles comportamientos de malware, y CrowdStrike y SentinelOne publicaron información inicial. Parece probable que la amenaza fue capaz de introducir software malicioso creado por el adversario a través de canales de actualización, sobreescribir componentes que de otro modo serían benignos de la aplicación 3CXDesktopApp. Los usuarios también pueden autoinfectarse accidentalmente.
Lógica de detección
Prevención
- Alerta de detección de amenazas a la memoria: inyección de shellcode
- Windows.Trojan.SuddenIcon
Consultas de caza
Los eventos para KQL y EQL se proporcionan con Elastic Agent mediante la integración de Elastic Defender. Las consultas de búsqueda podrían devolver señales altas o falsos positivos. Estas consultas se emplean para identificar comportamientos potencialmente sospechosos, pero se requiere una investigación para validar los hallazgos.
Consultas de KQL
La siguiente consulta KQL se puede emplear para identificar el software firmado por 3CX que realiza la resolución de nombres de raw.githubusercontent.com, Cuando se prepararon aplicaciones maliciosas relacionadas con esta amenaza:
process.name : "3CXDesktopApp.exe" and dns.question.name : "raw.githubusercontent.com"
La siguiente consulta KQL se puede usar para identificar varios indicadores basados en host de esta actividad:
dll.hash.sha256 : "7986bbaee8940da11ce089383521ab420c443ab7b15ed42aed91fd31ce833896" or dll.hash.sha256 : "c485674ee63ec8d4e8fde9800788175a8b02d3f9416d0e763360fff7f8eb4e02"
Consultas EQL
Usando la sección Línea de tiempo de la solución de seguridad en Kibana en la pestaña "Correlación", puedes usar las siguientes consultas de EQL para buscar comportamientos similares.
La siguiente consulta EQL se puede emplear para perfilar el software 3CX y el software hijo:
any where process.code_signature.subject_name == "3CX Ltd" or process.parent.code_signature.subject_name == "3CX Ltd"
La siguiente consulta EQL se puede emplear para identificar el software firmado por 3CX que realiza la resolución de nombres de raw.githubusercontent.com, Cuando se prepararon aplicaciones maliciosas relacionadas con esta amenaza:
network where process.code_signature.subject_name == "3CX Ltd" and dns.question.name == “raw.githubusercontent.com”
La siguiente consulta EQL se puede emplear para identificar los archivos escritos por el cliente 3CXDesktopApp:
file where event.type == "creation" and (host.os.type == "windows" and file.path : "*:\\Users\\*\\AppData\\Local\\Programs\\C3XDesktopApp\\app\\*" and file.name : ("manifest")) or (host.os.type == "macos" and file.path : "*/Library/Application Support/3CX Desktop App/" and file.name : ("UpdateAgent", ".main_storage", ".session-lock")
La siguiente consulta EQL se puede emplear para identificar varios indicadores basados en host de esta actividad:
sequence by host.name, process.entity_id[process where process.code_signature.subject_name:"3CX Ltd"][library where dll.hash.sha256:"c485674ee63ec8d4e8fde9800788175a8b02d3f9416d0e763360fff7f8eb4e02","7986bbaee8940da11ce089383521ab420c443ab7b15ed42aed91fd31ce833896"][network where dns.question.name:"raw.githubusercontent.com"]
La siguiente consulta EQL se puede usar para identificar esta actividad si se actualiza el archivo DLL:
library where process.code_signature.subject_name : "3CX Ltd" and not dll.code_signature.trusted == true and not startswith~(dll.name, process.name) and /* DLL loaded from the process.executable directory */ endswith~(substring(dll.path, 0, length(dll.path) - (length(dll.name) + 1)), substring(process.executable, 0, length(process.executable) - (length(process.name) + 1)))
YARA
Elastic Security Labs lanzó dos firmas YARA para el shellcode malicioso, al que nos referimos como SUDDENICON.
Recomendaciones defensivas
Los clientes de Elastic Endgame y Elastic Endpoint con protecciones de shellcode habilitadas en modo de prevención bloquearon la ejecución de SUDDENICON, aunque es posible que sea necesario eliminar cualquier software cliente comprometido. Debido a la demora en la recuperación e inyección del shellcode, es posible que los usuarios de 3CXDesktopApp no vean alertas hasta que pase el intervalo de suspensión (aproximadamente 7 días). Los clientes que emplean protecciones de shellcode en modo de solo detección deben habilitar la prevención para mitigar el riesgo de infección. No cree excepciones para estas alertas.
Referencias
The following were referenced throughout the above research: - https://www.reddit.com/r/crowdstrike/comments/125r3uu/20230329_situational_awareness_crowdstrike/ - https://www.sentinelone.com/blog/smoothoperator-ongoing-campaign-trojanizes-3cx-software-in-software-supply-chain-attack/ - https://www.todyl.com/blog/post/threat-advisory-3cx-softphone-telephony-campaign
Indicadores
Dominios potencialmente maliciosos
Los dominios en negrilla indican que se observaron en nuestro análisis.
- akamaicontainer[.]com
- akamaitechcloudservices[.]com
azuredeploystore[.]com
- azureonlinecloud[.]com
- azureonlinestorage[.]com
- dunamistrd[.]com
- glcloudservice[.]com
- journalide[.]org
msedgepackageinfo[.]com
- msstorageazure[.]com
msstorageboxes[.]com
officeaddons[.]com
officestoragebox[.]com
- pbxcloudeservices[.]com
- pbxphonenetwork[.]COM
- pbxsources[.]com
- qwepoi123098[.]com
- sbmsa[.]wiki
sourceslabs[.]com
visualstudiofactory[.]com
zacharryblogs[.]com
Versiones y hashes de 3CXDesktopApp potencialmente afectados:
Hash del cliente: dde03348075512796241389dfea5560c20a3d2a2eac95c894e7bbed5e85a0acc
Sistema operativo: Windows Hash del instalador: aa124a4b4df12b34e74ee7f6c683b2ebec4ce9a8edcf9be345823b4fdcf5d868
Nombre del archivo del instalador: 3cxdesktopapp-18.12.407.msi
Hash del cliente: fad482ded2e25ce9e1dd3d3ecc3227af714bdfbbde04347dbc1b21d6a3670405
Sistema operativo: Windows Hash del instalador: 59e1edf4d82fae4978e97512b0331b7eb21dd4b838b850ba46794d9c7a2c0983
Nombre del archivo del instalador: 3cxdesktopapp-18.12.416.msi
Hash del cliente: 92005051ae314d61074ed94a52e76b1c3e21e7f0e8c1d1fdd497a006ce45fa61
Sistema operativo: macOS Hash del instalador: 5407cda7d3a75e7b1e030b1f33337a56f293578ffa8b3ae19c671051ed314290
Nombre del archivo del instalador: 3CXDesktopApp-18.11.1213.dmg
Hash del cliente: b86c695822013483fa4e2dfdf712c5ee777d7b99cbad8c2fa2274b133481eadb
Sistema operativo: macOS Hash del instalador: e6bbc33815b9f20b0cf832d7401dd893fbc467c800728b5891336706da0dbcec
Nombre del archivo del instalador: 3cxdesktopapp-latest.dmg