SynkLoader, 여러 가지 회피 및 전송 기술 결합
Detection stack
- AIDR
- Alert
- ETL
- Query
SynkLoader 내부: 회피 기법을 포함한 로더
요약
SynkLoader는 새로 식별된 모듈형 악성코드 계열로, 다언어 구조를 사용하여 탐지를 복잡하게 만듭니다. 이 악성코드는 Python 기반의 로더에 의존하여 시스템 프로파일링, 지속성, 가짜 Windows 잠금 화면을 통한 자격 증명 도난을 위한 메모리 상주 모듈을 배포합니다. 또한 메모리 내 DLL 로딩 및 C2 통신을 위한 맞춤형 ChaCha20 암호화 등 고급 회피 기법을 사용합니다.
조사
연구원들은 사건 조사 도중 SynkLoader를 발견하고 나중에 C2 에뮬레이터를 구축하여 위협 행위자를 통제된 환경으로 유인했습니다. 가짜 시스템 정보를 제공하여, 지속성 및 피싱 구성 요소를 포함한 여러 모듈의 배포를 관찰했습니다. 이 능동적 기만 접근법을 통해 분석가는 공격자의 도구 세트의 많은 부분을 포착하고 그 통신 프로토콜을 더 잘 이해할 수 있었습니다.
완화
조직은 퍼블릭 클라우드 저장소에서 전달되는 허가되지 않은 MSI 설치 프로그램을 차단하고, 인코딩된 명령어를 포함한 의심스러운 PowerShell 활동을 모니터링해야 합니다. Microsoft Teams의 파일 다운로드에 대한 엄격한 통제와 COM 인터페이스를 통해 생성된 허가되지 않은 예약 작업에 대한 모니터링을 권장합니다. EDR 솔루션은 또한 메모리 내 DLL 로딩 및 비정상적인 Python 프로세스 동작을 탐지해야 합니다.
대응
SynkLoader 활동이 탐지되면, TrafficRedirector 모듈이 가능하게 한 횡적 이동을 제한하기 위해 영향을 받은 호스트를 즉시 격리해야 합니다. 대응자는 메모리 포렌식을 수행하여 상주 구성 요소를 식별하고, 지속성을 위한 예약 작업이나 COM 객체 조작을 검사해야 합니다. 인증 로그 역시 PhishLocker 모듈의 가능성 있는 배포 후 의심스러운 로그인 시도를 검토해야 합니다.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
의심스러운 Powershell 문자열 (PowerShell 통해)
PowerShell에서 의심스러운 .NET 메서드 호출 (PowerShell 통해)
의심스러운 폴더에서의 Python 실행 (명령줄 통해)
가능한 시스템 열거 (명령줄 통해)
가능한 계정 또는 그룹 열거 / 조작 (명령줄 통해)
가능한 PowerShell 혼란화 지표 (PowerShell 통해)
의심스러운 예약 작업 (감사 통해)
IOC (HashSha256)로 탐지: SynkLoader: 주방 싱크대까지 던질 때
Python 로더를 사용한 SynkLoader 실행 탐지 [Windows 프로세스 생성]
헥사 인코딩 값을 사용한 메모리 내 PowerShell 실행 탐지 [Windows PowerShell]
PhishLocker 가짜 잠금 화면과 예약 작업 지속성 탐지 [Microsoft Windows 보안 이벤트 로그]
시뮬레이션 실행
전제조건: 원격측정 및 기준점 사전 비행 검사가 통과했음.
이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 상대방 기술의 정밀한 실행을 상세히 설명합니다. 명령과 설명은 확인된 TTP를 직접 반영하고 탐지 논리가 기대하는 정확한 원격측정을 생성해야 합니다. 추상적이거나 관련 없는 예는 잘못된 진단을 초래할 수 있습니다.
-
공격 내러티브 & 명령어: 적이 초기 접근을 확보했고 디스크에 자취를 남기지 않기 위해 메모리에서 완전히 이차 페이로드를 실행하려고 합니다. 간단한 파일 기반 AV를 피하기 위해 PowerShell의
Invoke-Expression(별칭:iex)를 사용하여 헥사 인코딩 문자열을 실행합니다. 또한[System.Management.Automation.ScriptBlock]::Create메서드를 사용하려고 시도하는데, 이는 종종 고급 로더가 메모리에서 직접 코드 블록을 실행하는 데 사용하는 고급 기술입니다. 이러한 행동은 보안 규칙이 모니터링하는 특정 명령 줄 패턴을 트리거하도록 설계되었습니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: 메모리 내 실행 탐지 트리거 Write-Host "[*] 탐지 검증 시뮬레이션 시작..." -ForegroundColor Cyan # 1. 'iex' (Invoke-Expression) 패턴을 통해 트리거 Write-Host "[*] 'iex' 패턴을 통해 페이로드 실행 중..." -ForegroundColor Yellow $hexPayload = "Write-Host 'ALARM: IEX를 통한 메모리 내 실행 탐지!'" $hexEncoded = [System.BitConverter]::ToString([System.Text.Encoding]::UTF8.GetBytes($hexPayload)).Replace("-", " ") # 로그에 나타날 명령 줄 실행 시뮬레이션 powershell.exe -Command "iex ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromHexString('$($hexEncoded.Replace(' ', ''))')))" Start-Sleep -Seconds 2 # 2. 'ScriptBlock::Create' 패턴을 통해 트리거 Write-Host "[*] 'ScriptBlock::Create' 패턴을 통해 페이로드 실행 중..." -ForegroundColor Yellow $cmd = "Write-Host 'ALARM: ScriptBlock을 통한 메모리 내 실행 탐지!'" powershell.exe -Command "& ([System.Management.Automation.ScriptBlock]::Create('$cmd'))" Write-Host "[*] 시뮬레이션 완료." -ForegroundColor Green -
정리 명령:
# 이 시뮬레이션은 순전히 메모리 안에서 이루어져 지속되는 아티팩트를 생성하지 않습니다. # 하지만 완료를 의미하기 위해 콘솔을 지웁니다. Clear-Host Write-Host "[*] 정리 완료. 디스크에 파일이 작성되지 않았습니다." -ForegroundColor Cyan