개발일지CJ AI Security Wave 최종 프로젝트(AI를 활용한 침투테스트) →
팀원 다섯 명이 중앙 기록을 직접 바꾸지 않게 했다
다섯 명의 검사 결과를 한곳에서 모으도록 하네스를 넓혔다. 중앙 기록을 한 역할만 수정하게 한 이유와 아직 남은 테스트를 적었다.
목차 3
개인 CVE 하네스가 작동한 뒤에는 같은 방식을 5인 팀으로 넓혔다. 소스 코드 검사(SAST), 실행 중인 서비스 검사(DAST), 랩 운영과 증거 검토를 나눠 맡았다.
혼자 할 때는 순서대로 진행하면 됐다. 여러 명이 동시에 작업하니 누가 기록을 바꾸고 다음 일을 정할지 먼저 정해야 했다. 나는 하네스 구조를 설계하고, 팀원들의 공격 진행 상황과 결과를 종합해 다음 방향을 제시하는 역할을 맡았다.
모두가 중앙 기록을 바꾸면 더 빠르지 않을까
처음에는 각 PC가 중앙 기록을 직접 읽고 쓰는 방식도 생각했다. 그렇게 하면 두 작업이 같은 단계를 동시에 완료 처리하거나, 검토하지 않은 결과가 다음 작업에 쓰일 수 있었다. 나중에 누가 왜 기록을 바꿨는지 찾기도 어려워질 것 같았다.
중앙 기록은 관리 역할 하나만 수정하게 했다. 다른 역할은 작업 지시를 받아 검사를 실행하고 결과를 돌려줬다. 한 번 전달한 자료를 고칠 때는 새 버전을 만들어 이전 기록을 남겼다.
SAST 결과를 DAST에 쓸 때도 관리 역할이 먼저 읽고 새 작업을 지시했다. 한 에이전트의 추측이 다른 에이전트에게 확인된 사실처럼 전달되지 않게 하려는 규칙이었다.
검사 결과를 바로 보고서에 넣지는 않았다
SAST와 DAST는 검사 방식이 달라 결과 형식만 맞췄다. 도구나 AI가 문제를 제시하면 우선 검토 대상으로 저장했다. 사람이 원본 기록을 읽고 영향과 근거를 확인한 뒤 보고서에 넣었다.
오탐과 결론을 내리지 못한 항목도 지우지 않았다. 같은 결과가 다시 들어왔을 때 앞서 기각한 이유를 찾을 수 있어야 했다.
실행 승인에는 대상과 작업, 요청 제한을 함께 적었다. 실행 직전에 작업 지시가 승인 당시와 같은지 해시값으로 대조했다. 내용이 바뀌면 실행을 멈추고 다시 검토하게 했다.
아직 전체 테스트가 남아 있다
첫 주에는 비공개 저장소와 허가된 로컬 테스트 데이터로 작업했다. 중앙 기록을 바꿀 권한과 결과를 전달하는 순서는 정했지만, 실제 검사 도구와 Docker로 돌려 보지 못한 부분이 남아 있다.
작동을 확인한 부분과 코드만 작성한 부분을 나눠 기록해 뒀다.
함께 보면 좋은 글
이 기록과 태그가 겹치는 아티클입니다.