SOC Prime Bias: Critical

17 Aug 2026 06:26 UTC

APT-Q-27 드래곤 브레스: RONINGLOADER 및 Gh0st RAT 분석

Author Photo
SOC Prime Team linkedin icon 팔로우
APT-Q-27 드래곤 브레스: RONINGLOADER 및 Gh0st RAT 분석
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Dragon Breath는 아시아 태평양 지역의 중국어 사용자들을 대상으로 하는 중국 사이버 범죄 APT입니다. 이 그룹은 트로이 목마 설치 프로그램, DLL 사이드 로딩 및 서명된 커널 드라이버를 포함한 고급 기술을 활용하여 RONINGLOADER 감염 체인과 맞춤형 Gh0st RAT 변형을 배포합니다. 이들은 또한 인증 기관을 침해하고 멀웨어에 대한 코드 서명 자료를 얻는 능력도 보여주었습니다.

조사

이 보고서는 2020년부터 2026년까지 Dragon Breath의 진화를 조사하며, 워터링 홀 공격에서 고급 DLL 사이드 로딩과 Protected Process Light (PPL) 남용으로의 변화를 기록합니다. 2026년 DigiCert와 관련된 침입 사례를 강조하며, 그룹이 코드 서명 자료를 획득했다는 보고가 있습니다. 분석은 스레드 풀 객체 남용 및 커널 모드 프로세스 종료를 포함한 다중 인젝션 기술도 다룹니다.

완화

조직은 모의 Dragon Breath 공격 기술에 대한 엔드포인트 보안 통제를 검증하고 애플리케이션 실행에 대한 보호를 강화해야 합니다. 엄격한 애플리케이션 통제 정책을 시행해야 하며, 방어자는 무단 서비스 생성 및 의심스러운 DLL 사이드 로딩을 감시해야 합니다. Protected Process Light (PPL) 남용 및 무단 또는 서명되지 않은 WDAC 정책 탐지는 또한 중요합니다.

대응

Dragon Breath 활동이 감지되면, 영향을 받은 호스트는 즉시 격리되어야 하며, 무단 로컬 계정 및 Windows Services를 통한 지속성에 대해 조사해야 합니다. 응답자는 신뢰받는 시스템 프로세스를 포함한 프로세스 인젝션 활동을 면밀히 조사해야 합니다. TrustedInstaller.exe or taskhostw.exe. 코드 서명 인증서를 검증하고, Windows Defender 또는 지역 보안 제품의 수정 사항을 검토해야 합니다.

공격 흐름

탐지

지연 실행의 가능성 (명령 줄을 통해)

SOC Prime 팀
2026년 8월 13일

의심스러운 하드 링크 생성 폴더 리디렉션 기술 (명령 줄을 통해)

SOC Prime 팀
2026년 8월 13일

ClipUp을 남용하여 보안 솔루션을 조작하려는 시도 가능성 (명령 줄을 통해)

SOC Prime 팀
2026년 8월 13일

Dragon Breath 지속성: 로컬 백도어 계정 생성 [Microsoft Windows 보안 이벤트 로그]

SOC Prime AI 규칙
2026년 8월 13일

Golden Gh0st RAT WebSocket C2 통신 탐지 [Windows 네트워크 연결]

SOC Prime AI 규칙
2026년 8월 13일

Dragon Breath 지속성: Winlogon 레지스트리 수정 [Windows 레지스트리 이벤트]

SOC Prime AI 규칙
2026년 8월 13일

Dragon Breath 시스템 바이너리 프록시 실행 regsvr32.exe와 appR.exe [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 8월 13일

시뮬레이션 실행

전제 조건: 텔레메트리 및 기준선 사전 비행 검사를 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 유발하기 위해 설계된 적대자 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령 및 내러티브는 확인된 TTP를 직접 반영해야 하며 탐지 논리에서 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 수 있습니다.

  • 공격 내러티브 및 명령: 적대자가 초기 접근에 성공했으며 지속적인 명령 및 제어 (C2) 채널을 설정하려고 합니다. 전통적인 서명 기반 탐지와 표준 HTTP/S 요청만 검색하는 방화벽을 피하기 위해 공격자는 경량 에이전트를 배포하여 WebSocket 업그레이드 요청을 실행합니다. 표준 HTTP GET 요청에서 WebSocket 연결로 전환함으로써 공격자는 풀 듀플렉스 통신 채널을 설정하여 명령을 내리고 (키 입력이나 파일 유출과 같은) 실시간으로 데이터를 받습니다.

  • 회귀 테스트 스크립트:

     # WebSocket 핸드셰이크/연결을 모방하는 시뮬레이션 스크립트
      # 이 스크립트는 WebSocket 스타일의 연결을 시작하는 PowerShell 소켓 구현을 사용합니다.
      # 참고: 성공을 위해서는 활성 리스너 또는 공용 WebSocket 에코 서비스가 필요합니다.
    
      $wsUri = "wss://echo.websocket.org" # 시뮬레이션을 위한 공용 에코 서비스 사용
      Write-Host "[*] $wsUri에 WebSocket 연결을 시도하는 중..."
    
      try {
          $ws = New-Object System.Net.WebSockets.ClientWebSocket
          $ct = New-Object System.Threading.CancellationTokenSource
          $connectTask = $ws.ConnectAsync($wsUri, $ct.Token)
    
          # '네트워크 연결' 이벤트를 시뮬레이션하기 위해 연결 대기
          if ($connectTask.Wait(10000)) {
              Write-Host "[+] WebSocket 연결 성공적으로 설정되었습니다."
              Write-Host "[!] SIEM에서 '프로토콜: WebSocket' 경고를 확인하세요."
    
              # 소켓을 열어두기 위해 작은 하트비트 전송
              $buffer = [System.Text.Encoding]::UTF8.GetBytes("Ping")
              $sendTask = $ws.SendAsync((New-Object ArraySegment[byte]($buffer)), [System.Net.WebSockets.WebSocketMessageType]::Text, $true, $ct.Token)
              $sendTask.Wait(5000)
    
              # 텔레메트리 캡처를 보장하기 위해 잠시 연결 유지
              Start-Sleep -Seconds 10
              $ws.CloseAsync([System.Net.WebSockets.WebSocketCloseStatus]::NormalClosure, "Closing", $ct.Token).Wait()
          } else {
              Write-Host "[-] 연결 시간 초과. 타겟이 WebSocket URI에 도달할 수 있는지 확인하세요."
          }
      } catch {
          Write-Error "[-] 시뮬레이션 중 오류: $($_.Exception.Message)"
      } finally {
          if ($ws) { $ws.Dispose() }
      }
  • 정리 명령:

     # PowerShell 스크립트는 지속적인 아티팩트를 생성하지 않습니다.
      # 수동으로 열린 연결은 닫혀 있는지 확인합니다.
      Write-Host "[*] 시뮬레이션 환경 정리 중..."
      Stop-Process -Name "powershell" -ErrorAction SilentlyContinue