SOC Prime Bias: 중요

13 5월 2026 22:13

트렌딩 허깅페이스 저장소에서 발견된 악성코드

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
트렌딩 허깅페이스 저장소에서 발견된 악성코드
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

HiddenLayer 연구원들은 적법한 OpenAI 프로젝트를 모방하는 Hugging Face 저장소 Open-OSS/privacy-filter에서 호스팅된 악성 코드를 발견했습니다. 해당 저장소에는 jsonkeeper.com에서 파워셸 명령을 가져오는 loader.py 스크립트가 포함되어 있었으며, 이는 2단계 배치 파일과 Rust 기반의 정보 수집기를 다운로드했습니다. 페이로드는 자격 증명, 브라우저 데이터, 암호화폐 지갑 파일 및 스크린샷을 유출한 다음, 단발성 예약 작업 실행 후 자가 삭제합니다.

조사

분석 결과, 초기 미끼에서 최종 Rust 기반의 정보 수집기까지 여섯 단계가 확인됐습니다. 여기에는 숨겨진 파워셸 실행, api.eth-fastscan.org에서 update.bat를 가져오는 다운로드 프로그램, 임시 실행 스크립트 및 일시적 예약 작업을 생성하는 배치 파일이 포함됩니다. recargapopular.com과 관련 도메인인 welovechinatown.info로의 네트워크 트래픽이 관찰되었습니다. 사용자 anthfu의 여러 Hugging Face 저장소가 동일한 로더와 C2 URL을 재사용한 것이 발견되었습니다.

완화

나열된 악성 도메인과 URL을 네트워크 경계에서 차단하고, 엔드포인트에서 서명되지 않은 파워셸 스크립트의 실행을 비활성화하십시오. 손상된 저장소에서 다운로드한 모든 파일을 제거하고 탈취당했을 가능성이 있는 자격 증명을 회수하십시오. 의심스러운 예약 작업 생성 및 비정상적인 파워셸 명령 라인에 대해 엄격하게 모니터링하십시오.

대응

loader 또는 start.bat를 실행한 호스트를 격리하고, 완전히 타협된 것으로 간주하여 시스템을 재구축하십시오. 저장된 모든 비밀번호, 세션 쿠키, OAuth 토큰 및 암호화폐 지갑 자격 증명을 교체하십시오. 악성 도메인에 대한 과거 연결 및 지시된 파일 경로 및 예약 작업 이름의 존재를 추적하십시오.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef credential fill:#ccffcc classDef exfil fill:#c0c0c0 classDef operator fill:#ff9900 %% Node definitions malicious_repo["<b>리소스</b> – <b>Hugging Face 저장소</b><br/>악성 start.bat 및 loader.py 포함"] class malicious_repo file action_user_execution_link["<b>행동</b> – <b>T1204.001 사용자 실행: 악성 링크</b><br/>피해자가 악성 저장소 링크를 클릭"] class action_user_execution_link action file_start_bat["<b>파일</b> – start.bat<br/>피해자가 호출한 배치 스크립트"] class file_start_bat file file_loader_py["<b>파일</b> – loader.py<br/>체크섬을 확인하고 SSL 검증을 비활성하는 파이썬 로더"] class file_loader_py file action_user_execution_file["<b>행동</b> – <b>T1204.002 사용자 실행: 악성 파일</b><br/>피해자가 loader.py 실행"] class action_user_execution_file action action_proxy_execution["<b>행동</b> – <b>T1127 신뢰받는 개발자 유틸리티 프록시 실행</b><br/>loader.py가 우회 및 숨겨진 창으로 파워셸 실행"] class action_proxy_execution action process_powershell["<b>프로세스</b> – 파워셸<br/>원격 명령줄 실행"] class process_powershell process action_taint_shared_content["<b>행동</b> – <b>T1080 공유 콘텐츠 오염</b><br/>파워셸 원라인이 api.eth-fastscan.org에서 update.bat 다운로드"] class action_taint_shared_content action file_update_bat["<b>파일</b> – update.bat<br/>디펜더 제외 항목을 추가하고 예약 작업을 생성하는 배치 스크립트"] class file_update_bat file action_hide_artifacts["<b>행동</b> – <b>T1564.012 아티팩트 숨기기: 파일/경로 제외</b><br/>페이로드 파일에 대해 마이크로소프트 디펜더 제외 항목 추가"] class action_hide_artifacts action action_hijack_execution["<b>행동</b> – <b>T1574 실행 흐름 가로채기</b><br/>MicrosoftEdgeUpdateTaskCore라는 단발성 예약 작업을 생성하여 SYSTEM 권한으로 페이로드 실행"] class action_hijack_execution action process_scheduled_task["<b>프로세스</b> – 예약 작업<br/>SYSTEM 권한으로 Rust 페이로드 실행"] class process_scheduled_task process malware_rust_payload["<b>멀웨어</b> – Rust 페이로드<br/>분석 방지 검사 수행 및 AMSI/ETW 비활성화"] class malware_rust_payload malware action_credential_collection["<b>행동</b> – <b>T1555 암호 저장소에서 자격 증명 수집</b><br/>인지 및 수집기가 Chromium, Firefox, Discord 및 지갑 자격 증명 추출"] class action_credential_collection credential action_credential_files["<b>행동</b> – <b>T1552.001 안전하지 않은 자격 증명: 파일 내 자격 증명</b><br/>SSH, FTP, VPN 및 지갑 시드 파일 수집"] class action_credential_files credential action_os_credential_dump["<b>행동</b> – <b>T1003 OS 자격 증명 덤프</b><br/>암호화된 브라우저 키 검색"] class action_os_credential_dump credential action_screen_capture["<b>행동</b> – <b>T1113 화면 캡처</b><br/>여러 모니터에서 스크린샷 촬영"] class action_screen_capture malware action_data_encoding["<b>행동</b> – <b>T1132 데이터 인코딩</b><br/>gzip 압축 JSON으로 데이터 패키징"] class action_data_encoding malware action_exfiltration["<b>행동</b> – <b>T1567.002 웹 서비스 통신을 통한 데이터 유출</b><br/>HTTPS를 통해 recargapopular.com에 인코딩된 데이터 게시"] class action_exfiltration exfil %% Connections malicious_repo –>|포함| file_start_bat malicious_repo –>|포함| file_loader_py action_user_execution_link –>|leading_to| file_start_bat action_user_execution_link –>|leading_to| file_loader_py file_start_bat –>|실행자| action_user_execution_file file_loader_py –>|실행자| action_user_execution_file action_user_execution_file –>|트리거| action_proxy_execution action_proxy_execution –>|실행| process_powershell process_powershell –>|다운로드| file_update_bat file_update_bat –>|실행| action_hide_artifacts action_hide_artifacts –>|생성| action_hijack_execution action_hijack_execution –>|생성| process_scheduled_task process_scheduled_task –>|실행| malware_rust_payload malware_rust_payload –>|실행| action_credential_collection malware_rust_payload –>|실행| action_credential_files malware_rust_payload –>|실행| action_os_credential_dump malware_rust_payload –>|실행| action_screen_capture malware_rust_payload –>|인코딩| action_data_encoding action_data_encoding –>|유출| action_exfiltration "

공격 흐름

시뮬레이션 실행

선행 조건: 텔레메트리 및 기본 설정 사전 점검이 완료되어야 합니다.

근거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령과 내러티브는 반드시 식별된 TTP를 직접 반영해야 하며 탐지 논리에서 예상되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련이 없는 예는 오진을 초래합니다.

  • 공격 내러티브 및 명령:
    공격자는 Windows 워크스테이션에 발판을 마련하였으며, 사용자의 눈에 띄지 않으면서 악성 페이로드를 권한 상승 상태로 실행하고자 합니다. 그들은:

    1. 숨겨진 CMD 셸을 생성하는 파워셸 원-라이너를 작성하고 (/k), 이를 즉시 Start-Process -Verb RunAs.
    2. 사용하여 권한을 상승시킵니다. and 기존의 파워셸 세션에서 이 원-라이너를 실행하여, 프로세스 트리에 숨겨진 PowerShell 인스턴스와 함께 /k.
    3. 로 시작된 CMD 인스턴스가 포함되게 합니다.
  • 회귀 테스트 스크립트:

    # ---------------------------------------------------------
    # 시뮬레이션 된 적 스크립트 – 숨겨진 PowerShell + RunAs CMD
    # ---------------------------------------------------------
    $maliciousCmd = "cmd.exe /k echo Attacker has escalated && ping -n 5 127.0.0.1"
    $psCommand   = "-ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Start-Process -FilePath 'powershell.exe' -ArgumentList `"$maliciousCmd`" -Verb RunAs`""
    # 숨겨진 PowerShell을 실행하여 권한 상승 CMD를 실행
    Start-Process -FilePath "powershell.exe" -ArgumentList $psCommand -WindowStyle Hidden
  • 정리 명령:

    # 테스트에 의해 실행된 남아있는 권한이 상승된 CMD 프로세스를 종료
    Get-Process -Name "cmd" -ErrorAction SilentlyContinue | Where-Object {
        $_.StartInfo.Arguments -match "/k echo Attacker has escalated"
    } | Stop-Process -Force
    
    # 이 단순한 데모에서 생성된 임시 파일이 없는 경우 옵션으로 제거