SOC Prime Bias: 위험

16 1월 2026 16:13

페르시아의 왕자 APT 분석: 인피, 푸드르, 그리고 토네르 멀웨어

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon 팔로우
페르시아의 왕자 APT 분석: 인피, 푸드르, 그리고 토네르 멀웨어
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

개요

페르시아의 왕자(일명 APT-C-07)는 2007년부터 활동 중인 것으로 평가받는 이란 동조 사이버 스파이 단체입니다. 이 그룹은 인피, 푸드르, 토네르, 맥스피너 등 여러 독자적인 악성코드 패밀리를 통해 미디어 조직, 정치 단체 및 시민 사회 대상들을 감시해 왔습니다. 작전은 일반적으로 스피어 피싱과 기회주의적인 드라이브 바이 감염 경로를 조합하고, 맞춤형 커맨드앤컨트롤 방법, 특히 텔레그램 봇 기반 채널을 사용하여 무단 시스템 접근을 유지하고 데이터를 전송합니다.

조사

유닛 42 및 다른 연구팀은 2016년 인피 인프라스트럭처로부터 2017년 푸드르 활동의 복귀와 텔레그램을 커맨드앤컨트롤에 사용하는 2025년 토네르 버전까지 배우들의 도구 발전을 추적했습니다. 기술 보고서는 비주얼 베이직 매크로 드로퍼를 통한 전달, Windows 서비스 설치를 통한 지속성, 안정적인 인프라스트럭처 지원을 위한 도메인 생성 로직 사용 등을 강조합니다. 분석가들은 또한 자격 증명 접근 및 키로깅 같은 감시 행위를 위해 Windows 네이티브 API 수준의 기능을 문서화했으며, 피해 이후 지속적으로 무역 기술을 세습함을 나타내는 실행 패턴을 나타냈습니다.

완화

오피스 매크로에 대한 엄격한 통제와 이메일 첨부파일 살균을 시행하여 초기 실행 기회를 줄이세요. 비즈니스 운영에 필요하지 않은 환경에서는 텔레그램 트래픽을 제한하거나 주의 깊게 모니터링하는 네트워크 제어를 구현하세요. 엔드포인트에서는 서비스 생성 경고를 알리고, DLL 실행 체인과 일치하는 rundll32 사용을 추적하며, 알려진 악성 파일 이름 및 레지스트리 기반 지속성 패턴을 차단하세요. DGA 유사 행동과 관련된 동적으로 변하는 도메인 패턴에 대한 최신 탐지 콘텐츠를 유지하고, 현재 텔레메트리에 대해 정기적으로 통제를 검증하세요.

반응

지표가 탐지되면 영향을 받은 시스템을 격리하고, 휘발성 아티팩트를 캡처하며, 지속성에 사용된 특정 서비스 이름 및 레지스트리 항목을 찾아보세요. 예약된 작업 생성, 이상한 DLL 로드 활동, 텔레그램 기반 C2 통신의 모든 증거로 삼각 측량을 확장하세요. 검증된 복구 플레이북을 사용하여 악성 서비스를 제거하고 스테이지된 파일을 제거한 후, 잠재적으로 노출된 자격 증명을 회전시키고 재입장 시도 또는 인접 호스트로의 재감염을 주의 깊게 모니터링하세요.

graph TB %% Class definitions classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodes for each step step1[“<b>행동</b> – <b>T1566.001 스피어피싱 첨부파일</b><br/>공격자는 매크로가 포함된 악성 Office 문서가 첨부된 표적 이메일을 전송한다.”] class step1 action step2[“<b>행동</b> – <b>T1059.005 Visual Basic</b><br/>매크로가 VBA 코드를 실행하여 Infy/Foudre 페이로드를 추출하고 실행한다.”] class step2 action malware_inf[“<b>악성코드</b> – <b>이름</b>: Infy/Foudre<br/><b>설명</b>: Office 매크로를 통해 전달되는 페이로드.”] class malware_inf malware step3[“<b>행동</b> – <b>T1204.001 악성 링크</b><br/>피해자가 링크를 클릭하거나 첨부파일을 열어 매크로 실행이 트리거된다.”] class step3 action step4[“<b>행동</b> – <b>T1574.010 약한 권한을 이용한 실행 흐름 하이재킹</b><br/>악성코드는 지속성을 위해 권한이 수정된 Windows 서비스를 생성한다.”] class step4 action step5[“<b>행동</b> – <b>T1027 난독화된 파일 또는 정보</b><br/>페이로드는 사용자 정의 인코딩이 적용된 암호 보호 자기압축 아카이브로 패키징된다.”] class step5 action step6[“<b>행동</b> – <b>T1036 위장</b><br/>악성 파일은 “Cyberlink” 또는 “SnailDriver”와 같은 정상 소프트웨어처럼 이름이 지정된다.”] class step6 action step7[“<b>행동</b> – <b>T1056.001 입력 캡처(키로깅)</b><br/>Windows API 후킹을 통해 사용자 자격 증명을 수집한다.”] class step7 action step8[“<b>행동</b> – <b>T1555.003 브라우저 자격 증명</b><br/>Chrome, Edge, Firefox 등에서 비밀번호, 쿠키, 검색 기록을 탈취한다.”] class step8 action step9[“<b>행동</b> – <b>T1012 레지스트리 쿼리</b><br/>HKLM\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid를 읽어 시스템 식별자를 획득한다.”] class step9 action step10[“<b>행동</b> – <b>T1518 소프트웨어 탐색</b> 및 <b>T1518.001 보안 소프트웨어 탐색</b><br/>설치된 프로그램을 열거하고 백신 존재 여부를 확인한다.”] class step10 action step11[“<b>행동</b> – <b>T1010 애플리케이션 창 탐색</b><br/>보안 도구나 분석 콘솔을 감지하기 위해 열린 창을 열거한다.”] class step11 action step12[“<b>행동</b> – <b>T1005 로컬 시스템 데이터</b><br/>사용자 폴더에서 문서, 이미지, 아카이브를 수집한다.”] class step12 action op_collect_methods((“AND”)) class op_collect_methods operator step13[“<b>행동</b> – <b>T1113 화면 캡처</b>, <b>T1123 오디오 캡처</b>, <b>T1125 비디오 캡처</b>, <b>T1115 클립보드 데이터</b><br/>화면, 마이크, 웹캠 및 클립보드 내용을 기록한다.”] class step13 action step14[“<b>행동</b> – <b>T1074.001 로컬 데이터 준비</b><br/>수집된 파일을 임시 위치에 ZIP 또는 RAR로 압축한다.”] class step14 action step15[“<b>행동</b> – <b>T1102.002 웹 서비스 양방향 통신</b><br/>Telegram 봇 또는 그룹을 사용해 C2 및 데이터 유출을 수행한다.”] class step15 action tool_telegram[“<b>도구</b> – <b>이름</b>: Telegram Bot<br/><b>설명</b>: Telegram을 통한 양방향 C2 통신을 가능하게 한다.”] class tool_telegram tool step16[“<b>행동</b> – <b>T1568.002 동적 도메인 생성 알고리즘</b><br/>시간 기반 값으로 C2 도메인을 생성한다.”] class step16 action step17[“<b>행동</b> – <b>T1497 가상화 샌드박스 회피</b><br/>Deep Freeze와 같은 분석 도구를 감지하면 실행을 종료한다.”] class step17 action step18[“<b>행동</b> – <b>T1564 아티팩트 은폐</b><br/>탐지를 피하기 위해 악성 프로세스와 파일을 종료하고 이름을 변경한다.”] class step18 action %% Connections showing the attack flow step1 –>|leads_to| step2 step2 –>|executes| malware_inf malware_inf –>|triggers| step3 step3 –>|leads_to| step4 step4 –>|establishes| step5 step5 –>|enables| step6 step6 –>|enables| step7 step7 –>|provides| step8 step8 –>|provides| step9 step9 –>|provides| step10 step10 –>|provides| step11 step11 –>|provides| step12 step12 –>|feeds| op_collect_methods op_collect_methods –>|combines| step13 step13 –>|feeds| step14 step14 –>|prepares| step15 step15 –>|uses| tool_telegram tool_telegram –>|supports| step16 step16 –>|supports| step17 step17 –>|supports| step18

공격 흐름

시뮬레이션 실행

전제 조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 적수 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령 및 서사는 반드시 식별된 TTP를 직접 반영해야 하며, 탐지 논리에서 예상하는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다.

  • 공격 서사 및 명령:
    시뮬레이션된 적수는 규칙이 감시하는 API 호출에 해당하는 파일명을 가진 세 개의 더미 실행 파일을 생성하여 Infy 악성코드의 행동을 모방합니다. 사용 중인 프로그램 Copy-Item, 우리는 notepad.exe (일반, 이미 존재하는 바이너리)을 임시 디렉터리에 복사하고 각 API 호출에 맞춰 이름을 변경합니다. 공격자는 그런 다음 각 더미 바이너리를 실행하여 Image 값이 GetFileAttributesA.exe, 끝나는 Sysmon 프로세스 생성 이벤트를 만듭니다., 그리고 DispatchMessageA.exe. 규칙의 조건이 ‘field’에서 selection1 or selection2 이므로, 각 실행은 규칙을 충족하고 경고를 생성합니다. Image 선택1 또는 선택2

  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # 시뮬레이션 스크립트 – Infy API 호출 탐지 테스트
    # -------------------------------------------------
    $tempDir = "$env:TEMPInfySim"
    New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
    
    # 도우미: notepad.exe를 새로운 이름으로 복사
    function Copy-And-Run {
        param (
            [string]$newName
        )
        $src = "$env:SystemRootSystem32notepad.exe"
        $dst = Join-Path $tempDir $newName
        Copy-Item -Path $src -Destination $dst -Force
        Write-Host "Created $dst"
        Start-Process -FilePath $dst -WindowStyle Hidden
    }
    
    # API 이름과 일치하는 더미 바이너리 생성 및 실행
    Copy-And-Run -newName "GetFileAttributesA.exe"
    Copy-And-Run -newName "GetMessageA.exe"
    Copy-And-Run -newName "DispatchMessageA.exe"
    
    Write-Host "시뮬레이션 완료. SIEM에서 경고를 확인하세요."
  • 정리 명령:

    # -------------------------------------------------
    # 정리 스크립트 – 시뮬레이션된 바이너리 제거
    # -------------------------------------------------
    $tempDir = "$env:TEMPInfySim"
    
    # 남아 있는 더미 프로세스 중지
    Get-Process -Name "GetFileAttributesA","GetMessageA","DispatchMessageA" -ErrorAction SilentlyContinue |
        Stop-Process -Force
    
    # 임시 디렉터리 및 그 내용 제거
    Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "정리 완료."