APT 공격, 인도 정부를 GOGITTER, GITSHELLPAD, GOSHELL로 겨냥 | Part 1
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Zscaler ThreatLabz는 인도 정부 기관을 대상으로 한 파키스탄 연계 APT 그룹의 Gopher Strike 및 Sheet Attack이라는 두 캠페인을 발견했습니다. 이 활동은 GOGITTER, GITSHELLPAD 및 GOSHELL을 포함한 Golang 기반 도구를 도입하여 페이로드를 배치하고, 비공개 GitHub 리포지토리를 C2용으로 사용하며, 궁극적으로 Cobalt Strike 비콘을 배포합니다. 초기 접근은 spearphishing PDF를 통해 달성되며, 이는 희생자를 악성 ISO 파일을 다운로드하도록 유도합니다. 운영자는 환경 검사, 파일 채우기 및 예약된 작업 지속성과 같은 여러 회피 방법을 층층이 쌓습니다.
조사
분석 결과 GOGITTER는 windows_api.vbs 스크립트의 존재를 확인하고, 없을 경우 이를 생성하고, 50분마다 이를 실행하는 예약 작업을 등록합니다. GITSHELLPAD는 GitHub REST API를 사용하여 명령을 검색하고 데이터를 탈취하며, GOSHELL은 선택된 호스트명에서만 준비된 Cobalt Strike 비콘을 조건부로 로드합니다. 도구들은 자동화된 분석과 샌드박싱을 방해하기 위해 하드코드된 URL과 사용자 에이전트 문자열을 삽입합니다. 캠페인은 또한 adobe_update.zip과 같은 지원 페이로드를 호스팅하기 위해 비공개 GitHub 리포지토리를 사용했습니다.
완화
신뢰할 수 없거나 서명되지 않은 Golang 바이너리의 실행을 차단하고 엄격한 허용 목록 검토 및 예약 작업 생성 검토를 강제하십시오. 알려진 악성 도메인 및 C2로 사용된 GitHub 자원을 향한 아웃바운드 트래픽, 개발자 엔드포인트가 아닌 곳에서의 비정상적인 GitHub API 사용을 모니터링하십시오. 이메일 보안을 강화하여 PDF 첨부 파일을 스캔하여 난독화 여부를 확인하고 ISO 다운로드로 리디렉션되는 링크를 차단하십시오. windows_api.vbs 생성 및 50분 간격의 정기 작업 실행 패턴에 대한 엔드포인트 감지를 통해 경고해야 합니다.
대응
어떤 IOC가 감지되면 엔드포인트를 격리하고, 예약 작업을 중지 및 제거하며, 관련된 악성 아티팩트를 삭제하십시오. GitHub 기반 C2 활동에 대한 포렌식 검토를 수행하고 명령 실행 로그를 보존하며, 가능할 경우 탈취되거나 업로드된 콘텐츠를 제거하십시오. 영향을 받은 계정의 자격 증명을 재설정하고, 횡적 이동을 검색하며, 환경 전반에 걸쳐 관련 활동을 식별하기 위해 추출된 지표로 감지를 업데이트하십시오.
공격 흐름
탐지
가능한 IP 조회 도메인 통신 시도 (dns를 통해서)
보기
의심스러운 프로세스가 명령줄에서 URL을 사용 (cmdline 사용)
보기
의심스러운 CURL 사용 (cmdline 사용)
보기
가능한 시스템 열거 (cmdline 사용)
보기
가능한 계정 또는 그룹 열거 (cmdline 사용)
보기
아카이브에서 추출된 의심스러운 파일 (file_event 사용)
보기
가능한 시스템 네트워크 구성 발견 (cmdline 사용)
보기
APT 공격 탐지를 위한 IOCs (HashSha1): GOGITTER, GITSHELLPAD 및 GOSHELL을 사용하여 인도 정부를 공격 | 1부
보기
APT 공격 탐지를 위한 IOCs (HashMd5): GOGITTER, GITSHELLPAD 및 GOSHELL을 사용하여 인도 정부를 공격 | 1부
보기
APT 공격 탐지를 위한 IOCs (HashSha256): GOGITTER, GITSHELLPAD 및 GOSHELL을 사용하여 인도 정부를 공격 | 1부
보기
GITSHELLPAD 백도어 및 정리 명령 탐지 [Windows 프로세스 생성]
보기
GOGITTER 다운로더 및 C2 통신 탐지 [Windows 네트워크 연결]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 기본라인 사전 비행 검사가 통과해야 합니다.
근거: 이 섹션은 탐지 규칙을 유발하도록 설계된 적대자 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 서술은 식별된 TTP를 직접 반영해야 하며 감지 논리에 의해 예상되는 정확한 텔레메트를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련이 없는 예는 오진을 초래할 것입니다.
-
공격 서사 및 명령:
APT 그룹은 적대적인 GITSHELLPAD 백도어 (edgehost.exe)를 손상된 Windows 호스트에 배포합니다. 일반적인 시스템 동작과 어울리기 위해 공격자는 Windows 명령 셸 (cmd /c)를 통해 백도어를 실행합니다. 추가 모듈을 다운로드하는 등 페이로드를 완료한 후, 백도어는taskkill /F /PID <PID>를 사용하여 자신의 프로세스를 종료함으로써 “정리”를 수행합니다. 두 동작 모두 이진 파일 이름 및 필요한 명령줄 하위 문자열을 포함하는 프로세스 생성 이벤트를 생성하여 Sigma 규칙을 충족시킵니다. -
회귀 테스트 스크립트:
# ------------------------------------------------- # GITSHELLPAD 백도어 실행 및 정리 시뮬레이션 # ------------------------------------------------- # 1. 플레이스홀더 edgehost.exe (모든 안전한 실행 파일) 드롭 $src = "$env:SystemRootSystem32notepad.exe" $dst = "$env:TEMPedgehost.exe" Copy-Item -Path $src -Destination $dst -Force # 2. cmd /c를 통해 edgehost.exe 실행 (cmd_cmd 패턴과 일치) $proc = Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$dst`"" -PassThru # 3. 프로세스가 활성 상태임을 보장하기 위해 몇 초간 대기 Start-Sleep -Seconds 5 # 4. 정리: taskkill을 사용하여 edgehost.exe 프로세스 종료 (taskkill_cmd 패턴과 일치) $pid = $proc.Id cmd /c "taskkill /F /PID $pid" # 5. 드롭된 파일 제거 Remove-Item -Path $dst -Force -
정리 명령:
# 어떤 남은 edgehost.exe 인스턴스도 종료하도록 보장 Get-Process -Name "edgehost" -ErrorAction SilentlyContinue | Stop-Process -Force # 여전히 존재하는 경우 임시 실행 파일 삭제 $tempPath = "$env:TEMPedgehost.exe" if (Test-Path $tempPath) { Remove-Item $tempPath -Force }