한 줄 정의
프로덕션 코드베이스의 보안 취약점에 대해 인적 개입 없이 자율적으로 위협 탐색, 개념 증명(PoC) 재현 검증, 결함 등급 산정 및 보정 패치 생성을 연속 수행하는 6단계 자동화 보안 워크플로우.
핵심 요지
- 사실 기반 검증 오라클: 에이전트의 주관적 추정이나 구두 보고서를 배제하고, AddressSanitizer(ASAN) 메모리 오류 탐지 도구 환경 내에서 실제 프로그램이 물리적으로 ‘크래시’되는지 여부만을 취약점 판정의 유일한 철칙으로 삼는다.
- 역할 분할을 통한 최적화: 취약성 후보를 찾아내는 탐색 단계(재현율/Recall 극대화)와 실제 격리 구동을 거쳐 중복을 제거하고 오탐을 걸러내는 검증 단계(정밀도/Precision 극대화)를 엄격히 분할하여 보안 도구의 신뢰도를 확보한다.
- 검증 사다리(Validation Ladder): 보안 패치 적용 시 컴파일 성공(T0), 기존 PoC 방어(T1), 기존 정상 기능 동작 보존(T2), 우회 공격 방어(Re-attack)의 단계를 연쇄 검증하여 부작용이 배제된 패치를 빌드한다.
상세
- 작동 6단계 워크플로우:
- 위협 모델(Threat Model): 타겟 소프트웨어가 어떤 망 환경에 배포되는지 비즈니스적 맥락을 파악하고 대상 취약성 범위를 규정한다.
- 샌드박스(Sandbox): 네트워크 차단, 메모리/CPU 용량 제한, 루트 읽기 전용 등이 적용된 도커 컨테이너 격리 구역을 가동하여 PoC 코드를 안전하게 주입해 볼 환경을 구축한다.
- 탐색(Discovery): 리콘(Recon) 에이전트가 코드의 진입 분기점을 확인해 공격 표면(Focus Area)을 분할한 후, 병렬 에이전트 스웜(Swarm)이 각 영역에서 버그를 유도하는 이진 PoC 페이로드를 생성한다.
- 재현 검증(Verification): 작성된 PoC 바이트를 수거해 새로운 컨테이너에서 3회 이상 실행하여 과반수 이상 ASAN 크래시가 발생하는 참값만을 취약점 대장에 등재한다.
- 우선순위 분류(Triage): 크래시 발생 유효 스택 프레임(Stack Frame)에서 공통 시그니처를 정규식으로 파싱하여 중복 결함을 병합하고 위험 심각도(Severity)를 차등 평가한다.
- 보안 패치(Patching): 소스코드 수정을 최소화하여 패치 코드를 빌드하고, 검증 사다리 통과 실패 시 ASAN 트레이스 실황 정보를 피드백받아 코드를 재수정하는 교정 루프를 기동한다.
예시
- 힙 버퍼 오버플로우 탐색 및 보정의 루프 흐름:
- 탐색: 디스커버리 에이전트가
write_poc도구를 사용해 A 문자(라우팅 헤더) 뒤에 claimed 바이트 크기를 255로 주입한 PoC 페이로드 조립 및 격리 실행. - 오라클 검증: 호스트 검증관이 수거한
/tmp/poc.bin으로 재기동하여 ASANheap-buffer-overflow디바이스 크래시 확보TRUE_POSITIVE판정. - 패치 및 사다리 가동: 패치 에이전트가 복사 길이 변수
claimed가 버퍼 최대치인 8을 넘지 않도록 제한하는 코드를 삽입한canary.c보정본 제안. - 우회공격 방어: 수정 바이너리를 대상으로 해킹 에이전트 스웜이 다시 우회 공격을 시도하나 크래시 유발 실패(Re-attack Clean) 메인테이너 최종 승인(ACCEPT).
- 탐색: 디스커버리 에이전트가
충돌
- 모델 기반 적대적 검증 vs 물리적 오라클 검증:
- 모델에게 “이 보고서는 오탐(false positive)이라고 의심하고 모순을 찾아라”고 지시하는 모델 기반 검증을 도입할 때, 초대형 모델과 달리 7B급 소형 오픈 가중치 모델은 편향 지시에 과몰입하여 실제 물리적 크래시 증적이 확실한 진짜 취약점조차 “오탐”으로 오진하는 심각한 논리 충돌을 낸다. 이를 정합하기 위해 모델의 검증 보고서는 참고로만 사용하고, 최종 취약점 분류는 오직 결정론적 격리 샌드박스의 물리 크래시 유무만 판정 기준으로 신봉하게 하여 아키텍처 충돌을 해결한다.