핵심 사항
- 3CX 사용자를 대상으로 하는 공급망 공격으로부터 Elastic 사용자 보호
- 실행 흐름의 작동 방식은 Elastic Security Labs와 다른 연구팀에서 활발히 조사 중입니다.
- 사용 중인 안티멀웨어 기술에 관계없이 3CX에 대한 셸코드 및 프로세스 인젝션 경고를 예외 목록에 추가해서는 안 됩니다.
서문
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는 600,000개 이상의 기업과 12,000,000명 이상의 사용자가 사용하고 있으며, Elastic Security Labs는 3CX 고객의 초기 수데니콘 탐지를 지원하기 위해 분류 분석을 공개하며, 후속 멀웨어 및 침입 분석은 추후 공개할 예정입니다.
이 정보 업데이트에서 Elastic Security Labs는 다음을 제공합니다: - 멀웨어 활동과 관련된 잠재적 악성 도메인 - 영향을 받을 수 있는 3CX Windows 및 MacOS 클라이언트의 파일 해시 - 이 활동과 관련이 있을 수 있는 Elastic 쿼리 및 사전 구축된 보호 기능 - SUDDENICON 멀웨어를 식별하기 위한 YARA 규칙
수데니콘 분류 분석
3CXDesktopApp 설치 프로그램 MSI에는 설치 후 7일 동안 기다렸다가 GitHub에서 추가 파일을 다운로드하고 악성 명령 및 제어 도메인과 통신하는 악성 코드가 포함되어 있는 것으로 보입니다. 클라이언트 애플리케이션은 ffmpeg.dll
및 d3dcompiler\_47.dll
을 디스크에 쓰며, 후자는 SUDDENICON이라고 하는 페이로드를 포함합니다. 샘플링에 포함된 두 라이브러리 모두 백도어가 적용된 것으로 보입니다. ffmpeg.dll
과 d3dcompiler\_47.dll
은 모두 합법적인 파일 이름이며, 이 이름만으로 규칙을 만들어서는 안 된다는 점에 유의하세요.
ffmpeg.dll
바이너리는 피드페이스 바이트 시퀀스를 찾고 정적 RC4 키(3jB(2bsG#@c7
)를 사용하여 복호화하여 d3dcompiler\_47.dll
에서 SUDDENICON을 추출합니다. 그런 다음 결과 페이로드가 2단계 페이로드로 메모리에 로드됩니다. 페이로드에 추가되는 셸코드 스텁은 메모리에 매핑하는 데 사용되는 APPLEJEUS 로더 스텁과 유사점을 공유하며, 이는 DPRK와 연관되어 있습니다. 성공적으로 실행되면 이 셸코드 스텁은 타임스탬프가 7 일 후인 새 파일( manifest
)을 디스크에 쓰고, 그 후에 악성코드가 C2 인프라에 연결되는 타이머를 구현하는 데 사용됩니다.
C2 도메인은 IconStorages Github 리포지토리에 저장된 아이콘 파일에 추가된 후행 바이트를 다운로드하고 base64 디코딩하여 검색합니다(이 리포지토리는 Github에서 제거됨). 이 리포지토리는 2022년 12월 8일에 GitHub ID 120072117
에 의해 생성되었으며 가장 최근에 업데이트된 것은 2023년 3월 16일입니다. 처음에 활성 C2 서버에 연결한 후, 악성 코드는 시스템 식별자가 포함된 POST를 수행합니다. 그런 다음 새 실행 파일을 다운로드하고 암호를 해독합니다.
새 실행 파일의 초기 분석 결과 정보 도용자로 보입니다. 분석이 완료되면 업데이트를 발표할 예정입니다.
3CX의 CEO는 소프트웨어 삭제를 권장했으며, 소수의 커뮤니티 포럼 게시물에서 보안 도구가 잠재적인 멀웨어 동작에 어떻게 반응하는지에 대해 간략하게 설명했으며, CrowdStrike와 SentinelOne에서 초기 정보를 공개했습니다. 이 위협은 업데이트 채널을 통해 공격자가 만든 악성 소프트웨어를 도입하여 3CXDesktopApp의 다른 정상 구성 요소를 덮어쓰는 것으로 보입니다. 사용자가 실수로 자가 감염을 일으킬 수도 있습니다.
탐지 로직
예방
- 메모리 위협 탐지 알림: 셸코드 인젝션
- Windows.Trojan.SuddenIcon
헌팅 쿼리
KQL과 EQL 모두에 대한 이벤트는 Elastic Defend 통합을 사용하는 Elastic 에이전트와 함께 제공됩니다. 헌팅 쿼리는 높은 신호 또는 오탐을 반환할 수 있습니다. 이러한 쿼리는 잠재적으로 의심스러운 행동을 식별하는 데 사용되지만 결과를 검증하려면 조사가 필요합니다.
KQL 쿼리
다음 KQL 쿼리를 사용하여 raw.githubusercontent.com의 이름 확인을 수행하는 3CX 서명 소프트웨어를 식별할 수 있습니다, 이 위협과 관련된 악성 애플리케이션이 스테이징된 곳입니다:
process.name : "3CXDesktopApp.exe" and dns.question.name : "raw.githubusercontent.com"
다음 KQL 쿼리를 사용하여 이 활동의 여러 호스트 기반 지표를 식별할 수 있습니다:
dll.hash.sha256 : "7986bbaee8940da11ce089383521ab420c443ab7b15ed42aed91fd31ce833896" or dll.hash.sha256 : "c485674ee63ec8d4e8fde9800788175a8b02d3f9416d0e763360fff7f8eb4e02"
EQL 쿼리
Kibana의 보안 솔루션 타임라인 섹션에서 '상관관계' 탭을 사용하면 아래 EQL 쿼리를 사용하여 유사한 동작을 찾을 수 있습니다.
다음 EQL 쿼리를 사용하여 3CX 소프트웨어 및 하위 소프트웨어를 프로파일링할 수 있습니다:
any where process.code_signature.subject_name == "3CX Ltd" or process.parent.code_signature.subject_name == "3CX Ltd"
다음 EQL 쿼리를 사용하여 raw.githubusercontent.com의 이름 확인을 수행하는 3CX 서명 소프트웨어를 식별할 수 있습니다, 이 위협과 관련된 악성 애플리케이션이 스테이징된 곳입니다:
network where process.code_signature.subject_name == "3CX Ltd" and dns.question.name == “raw.githubusercontent.com”
다음 EQL 쿼리는 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")
다음 EQL 쿼리를 사용하여 이 활동의 여러 호스트 기반 지표를 식별할 수 있습니다:
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"]
DLL이 업데이트된 경우 다음 EQL 쿼리를 사용하여 이 활동을 식별할 수 있습니다:
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는 악성 셸코드에 대한 두 개의 YARA 시그니처를 공개했으며, 이를 SUDDENICON이라고 부릅니다.
방어 권장 사항
예방 모드에서 셸코드 보호를 활성화한 Elastic Endgame 및 Elastic Endpoint 고객은 손상된 클라이언트 소프트웨어를 제거해야 할 수도 있지만 SUDDENICON의 실행을 차단했습니다. 셸코드 검색 및 삽입이 지연되므로 3CXDesktopApp 사용자는 절전 모드 간격(약 7 일)이 지날 때까지 알림이 표시되지 않을 수 있습니다. 셸코드 보호 기능을 탐지 전용 모드로 사용하는 고객은 감염 위험을 완화하기 위해 예방 기능을 활성화해야 합니다. 이러한 알림에 대한 예외를 만들지 마세요.
참고 자료
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
지표
잠재적 악성 도메인
굵게 표시된 도메인은 분석에서 관찰된 도메인을 나타냅니다.
- 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
잠재적으로 영향을 받을 수 있는 3CXDesktopApp 버전 및 해시:
클라이언트 해시: dde03348075512796241389dfea5560c20a3d2a2eac95c894e7bbed5e85a0acc
OS: Windows 설치 관리자 해시: aa124a4b4df12b34e74ee7f6c683b2ebec4ce9a8edcf9be345823b4fdcf5d868
설치 프로그램 파일 이름: 3cxdesktopapp-18.12.407.msi
클라이언트 해시: fad482ded2e25ce9e1dd3d3ecc3227af714bdfbbde04347dbc1b21d6a3670405
OS: Windows 설치 관리자 해시: 59e1edf4d82fae4978e97512b0331b7eb21dd4b838b850ba46794d9c7a2c0983
설치 프로그램 파일 이름: 3cxdesktopapp-18.12.416.msi
클라이언트 해시: 92005051ae314d61074ed94a52e76b1c3e21e7f0e8c1d1fdd497a006ce45fa61
OS: macOS 설치 관리자 해시: 5407cda7d3a75e7b1e030b1f33337a56f293578ffa8b3ae19c671051ed314290
설치 프로그램 파일 이름입니다: 3CXDesktopApp-18.11.1213.dmg
클라이언트 해시: b86c695822013483fa4e2dfdf712c5ee777d7b99cbad8c2fa2274b133481eadb
OS: macOS 설치 관리자 해시: e6bbc33815b9f20b0cf832d7401dd893fbc467c800728b5891336706da0dbcec
설치 프로그램 파일 이름입니다: 3cxdesktopapp-latest.dmg