피드로 돌아가기
Dev.toSecurity
원문 읽기
ADSI 및 Native C 기반 설계로 EDR 탐지를 회피하는 스텔스 AD Enumeration 구현
KESTREL: AD enumeration that doesn't announce itself
AI 요약
Context
SharpHound 등 기존 AD 분석 도구들이 .NET 및 PowerShell 런타임에 의존함에 따라 발생하는 특유의 Behavioral Signature가 EDR의 즉각적인 탐지 대상이 되는 한계 존재. 단순한 API 호출을 넘어 런타임 자체에서 발생하는 네트워크 트래픽 패턴이 공격자의 존재를 알리는 Neon Sign으로 작용하는 구조적 결함 파악.
Technical Solution
- Windows 2000부터 제공된 ADSI(Active Directory Service Interfaces) 기반의 COM LDAP Abstraction 채택을 통한 정상 도메인 활동과 구분 불가능한 트래픽 생성
- Managed Runtime을 완전히 제거하고 Pure C 및 Direct COM vtable call을 구현하여 런타임 지문(Fingerprint)을 완전히 소거한 구조 설계
- RootDSE resolution 결과값을 시작 시 1회만 읽어 모든 스캔 함수에 파라미터로 전달하는 설계를 통해 불필요한 DC Round-trip 5회를 제거한 최적화 달성
- lastLogonTimestamp 기반의 Stale Computers 분석을 통해 DC 간 복제 지연 문제를 해결하고 데이터 정밀도 확보
- SAL 2.0 Annotation 및 PREfast 정적 분석 도입으로 HRESULT 반환 값 검증 및 메모리 계약 위반을 컴파일 타임에 차단하는 엔지니어링 규격 적용
실천 포인트
- 시스템 호출 시 Managed Runtime이 생성하는 고유한 행동 패턴이 보안 솔루션의 탐지 트리거가 될 수 있는지 검토 - 반복적인 메타데이터 조회 시 RootDSE와 같이 불변하는 값은 캐싱하여 네트워크 왕복 횟수를 최소화하는 구조 적용 - C/C++ 기반 시스템 프로그래밍 시 SAL Annotation과 같은 정적 분석 도구를 활용하여 런타임 에러를 컴파일 단계에서 제거