내 휴가를 WSC 리버스 엔지니어링으로 망친 이야기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴, 리버스 엔지니어링, DevOps
대상자
- *Windows 보안 관련 개발자, 리버스 엔지니어링 연구자, DevOps 엔지니어**
- 난이도: 중간 (리버스 엔지니어링, 시스템 권한 관리, COM API 활용 등 기술적 지식 요구)
핵심 요약
- Windows Security Center (WSC) API를 활용한 Windows Defender 비활성화 도구 'defendnot' 개발 과정 공유
- 리버스 엔지니어링 및 COM API 활용 시 'Access Denied' 오류 해결
- PPL(Protected Process Light) 검증 우회 및 WinDefend SID 토큰 모방 기법
- 자동 실행 기능 구현 및 Task Scheduler 설정 오류 분석
섹션별 세부 요약
- 프로젝트 배경 및 초기 문제점
- 이전 프로젝트 'no-defender'의 기술적 한계와 법적 문제로 인해 WSC API를 활용한 Defender 비활성화 도구 개발 필요성 발생
- DMCA 삭제 요청으로 인해 이전 프로젝트 종료 및 새로운 리버스 엔지니어링 시도
- M4Pro MacBook 환경에서 x86 디버깅의 어려움 및 고지연 환경에서의 작업 과정
- WSC API 활용 및 초기 실패 사례
- COM API를 통해 WSC 등록 시도 시 Access Denied 오류 발생
- API 호출 프로세스의 서명 검증 및 인증 과정 문제 발견
- AV 프로세스에 모듈 인젝션 시 등록 성공, PPL 검증 실패 경험
- PPL 보호 우회 및 SID 토큰 분석
- PPL 보호 해제를 위해 특수 드라이버 사용 및 디버거로 함수 진입 확인
- WinDefend SID 토큰 확인 및 SID 모방 코드 구현
- SID 체크 미통과 시 권한 상승 상태, 바이너리 서명, PE 플래그 확인
- AV 이름 전달 및 자동 실행 기능 구현
- AV 이름 전달 과정 오류 및 IPC 버그 해결
- Task Scheduler 설정 문제로 인한 자동 실행 실패, AC 전원 연결 여부 설정 해제 후 해결
- 자동 실행 기능 구현 및 코드 클린업
- 법적 및 윤리적 고려사항
- 기존 AV의 서드파티 코드 사용에 따른 저작권 문제
- DMCA 요청으로 인한 프로젝트 종료 및 법적 고려사항 강조
결론
- *WSC API를 활용한 Windows Defender 비활성화 도구 개발은 리버스 엔지니어링, COM API, PPL 보호 우회 등 복잡한 기술적 과정을 거쳤으며, 법적 문제와 고난도 환경에서의 작업은 많은 제약과 도전을 동반했다.**
- 실무 적용 시 법적 검토 및 보안 정책 준수 필수
- 리버스 엔지니어링 작업 시 고성능 환경 및 x86 호환 장비 사용 권장
- Task Scheduler 설정 및 자동 실행 기능 구현 시 OS 전원 설정 문제 유의