SOC Prime Bias: 위급

15 12월 2025 17:42

PyStoreRAT: IT 및 OSINT 전문가를 겨냥한 AI 기반 공급망 악성코드

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
PyStoreRAT: IT 및 OSINT 전문가를 겨냥한 AI 기반 공급망 악성코드
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Morphisec는 AI로 생성된 저장소를 호스팅하기 위해 휴면 GitHub 계정을 악용하는 조정된 악성코드 작전을 밝혀냈습니다. 이는 궁극적으로 PyStoreRAT이라 불리는 JavaScript/HTA 백도어를 전달합니다. 로더는 호스트를 프로필링하고 Rhadamanthys 스틸러를 포함한 여러 페이로드를 배포하며 특정 AV 솔루션이 감지되었을 때 동적으로 동작을 조정합니다. 이동식 매체를 통해 전파할 수 있으며 모듈을 갱신하기 위해 회전 기반의 C2 인프라에 의존합니다. 캠페인은 전 세계 IT 관리자, 보안 분석가 및 OSINT 전문가를 대상으로 하고 있습니다.

조사

연구원들은 악성 GitHub 프로젝트를 조사하고 백도어 구성 요소를 격리하여 시스템 프로파일링, 단계별 페이로드 전송, AV 우회, 이동식 드라이브 확산 및 온디맨드 모듈 로딩을 포함한 전체 실행 체인을 문서화했습니다. 보고서는 또한 회복력을 강화하는 순환 C2 노드 아키텍처와 대상의 로케일을 검증하기 위해 사용된 러시아어 문자열을 설명합니다. 분석은 로더를 Rhadamanthys 스틸러와 연결하고 시작 경로 변경 능력을 강조합니다.

완화

Morphisec는 로더의 런타임 환경을 불안정하게 만들고 신뢰할 수 없는 실행 경로를 차단하며 페이로드 배포를 중단하기 위해 자동 이동 표적 방어를 사용할 것을 권장합니다. 전통적인 서명 기반 제어가 비효과적이기 때문에 방어자는 행위 기반 및 가상화 기반 보호를 의존해야 합니다. 신뢰할 수 없는 출처의 스크립트 실행을 제한하고 이동식 드라이브 활동을 철저히 모니터링하는 것도 권장됩니다.

대응

PyStoreRAT 활동이 식별되면 즉시 영향을 받은 엔드포인트를 격리하고 백도어 프로세스를 종료하며 모든 지속 모듈을 제거하십시오. IOC를 수집하기 위한 포렌식 분석을 수행하고 C2 도메인, 파일 해시 및 예약된 작업을 포함하십시오. 취약한 소프트웨어를 패치하고 엄격한 최소 권한 실행 정책을 시행하며 악의적이거나 의심스러운 저장소 활동을 GitHub에서 지속적으로 모니터링하십시오.

“graph TB %% Class Definitions classDef technique fill:#99ccff %% Node definitions technique_supply_chain[“<b>Technique</b> – <b>T1195.002 공급망 손상</b><br /><b>설명</b>: 피해자가 복제하는 프로젝트에 악성 코드를 주입하기 위해 공용 GitHub 저장소를 손상시킵니다.<br /><b>하위 기술</b>: 악성 GitHub 저장소”] class technique_supply_chain technique technique_user_exec[“<b>Technique</b> – <b>T1204 사용자 실행</b><br /><b>설명</b>: 피해자가 악성 페이로드를 포함한 AI로 생성된 프로젝트를 실행합니다”] class technique_user_exec technique technique_obfuscation[“<b>Technique</b> – <b>T1027 파일 또는 정보 혼돈화</b><br /><b>하위 기술</b>: T1027.009 임베디드 페이로드<br /><b>설명</b>: 페이로드가 탐지를 피하기 위해 합법적인 파일 안에 숨겨져 있습니다”] class technique_obfuscation technique technique_system_info[“<b>Technique</b> – <b>T1082 시스템 정보 발견</b><br /><b>설명</b>: 운영 체제 버전, 하드웨어 세부 사항 및 기타 호스트 정보를 수집합니다”] class technique_system_info technique technique_software_disc[“<b>Technique</b> – <b>T1518 소프트웨어 발견</b><br /><b>설명</b>: 설치된 애플리케이션 및 소프트웨어 버전을 열거합니다”] class technique_software_disc technique technique_c2_https[“<b>Technique</b> – <b>T1071.001 웹 프로토콜</b><br /><b>설명</b>: HTTPS를 통해 명령 및 제어 통신을 설정합니다”] class technique_c2_https technique technique_removable_media[“<b>Technique</b> – <b>T1092 이동식 미디어를 통한 통신</b><br /><b>설명</b>: USB 드라이브를 통해 추가 시스템으로 악성 페이로드를 전파합니다”] class technique_removable_media technique %% Connections technique_supply_chain u002du002d>|리드_투| technique_user_exec technique_user_exec u002du002d>|리드_투| technique_obfuscation technique_obfuscation u002du002d>|리드_투| technique_system_info technique_system_info u002du002d>|리드_투| technique_software_disc technique_software_disc u002du002d>|리드_투| technique_c2_https technique_c2_https u002du002d>|리드_투| technique_removable_media “

공격 흐름

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 검사 통과.

  • 공격 설명 및 명령:

    1. 휴면 계정 재활성화 – 적은 GitHub UI 또는 API를 사용하여 계정 상태를 ‘휴면’에서 ‘활성’으로 변경합니다.
    2. AI로 생성된 악성 저장소 게시 – 재활성화 직후, ‘AI로 생성된 프로젝트’를 광고하는 README를 포함하여 새로운 저장소가 생성됩니다 ai‑osint‑toolkit 라는 이름으로 생성됩니다.
    3. “유지 관리” 커밋 추가 PyStoreRAT 백도어를 포함합니다; 커밋 메시지는 의도적으로 탐지 규칙을 만족시키기 위해 ‘유지 관리’라는 단어를 포함합니다.
    4. 악성 코드 푸시 – 푸시가 생성 푸시 감사 이벤트를 생성하지만, 우리가 테스트하고 있는 규칙은 계정 활성화 감사 항목만을 감시하므로 주된 트리거는 플래그가 된 설명과 함께 있는 재활성화 로그 항목입니다. audit entry, so the primary trigger is the re‑activation log entry with the flagged description.
  • 회귀 테스트 스크립트: (GitHub CLI에서 Bash 사용 gh – 공격자가 개인 액세스 토큰을 가지고 있다고 가정 admin:org 범위)

     # simulate_attack.sh
      # 전제 조건: gh CLI가 설치 및 공격자로 인증됨
    
      # 1. 휴면 계정 재활성화 (사용자 필드 업데이트를 통해 시뮬레이션)
      gh api -X PATCH /admin/users/attacker_user 
          -f state=active 
          -f note="재활성화: AI 생성 프로젝트; 유지 보수 커밋 예약됨"
    
      # 2. 악성 저장소 생성
      gh repo create attacker_user/ai-osint-toolkit --public --description "AI 생성 OSINT 도구"
    
      # 3. 악성 파일 추가(PystoRErat) 및 커밋
      cd ai-osint-toolkit
      echo "# PyStoreRAT 백도어" > pystorerat.py
      git add pystorerat.py
      git commit -m "초기 커밋 - 유지 보수 커밋: 백도어 포함"
      git push origin main
    
      # 4. 선택 사항: 실제 활동과 유사한 두 번째 유지보수 커밋 생성
      echo "# README 업데이트" >> README.md
      git add README.md
      git commit -m "유지 보수 커밋: 문서 업데이트"
      git push origin main
  • 정리 명령:

     # cleanup_attack.sh
      # 악성 저장소 삭제
      gh repo delete attacker_user/ai-osint-toolkit -y
    
      # 선택 사항: 공격자 계정을 다시 휴면 상태로 설정 (API가 허용하는 경우)
      gh api -X PATCH /admin/users/attacker_user -f state=dormant