외주 웹사이트·자체 인프라 보안 감사
납품을 앞둔 외주 웹사이트와 자체 운영 인프라를 코드 수정 없이 점검하고, 검증을 거친 발견만 담은 보고서와 후속 작업 문서를 남겼다.
무엇을 만들었나
납품을 앞둔 외주 웹사이트와 별도로 운영 중인 자체 인프라를, 코드나 운영 환경에 손대지 않고 점검했다. 자동 점검 결과를 한 번 더 검증해 오탐을 걸러낸 보고서와, 사람이 직접 해야 할 일 목록, 개발자가 바로 착수할 수 있는 수정 지시서를 나눠 남겼다. 이 지시서만으로 후속 수정 3건이 실제로 구현됐다.
구현 방식과 보안 설계는 ‘기술 상세’에 있습니다.
구조와 설계
감사는 시스템마다 점검 영역 4개로 나눈 병렬 스캔, 독립 검증, 문서화의 3단계로 설계했다. 읽기 전용은 프롬프트 지시에만 맡기지 않고, 스캔·검증 단계에는 파일 수정 도구(편집·쓰기)가 없는 에이전트 유형을 배정해 제한했다. 셸은 쓸 수 있어 완전한 격리는 아니므로, 감사 후 코드 변경 0건을 파일 시스템 조회로 따로 확인했다. 검증 단계는 근거 코드를 다시 열어 오탐 제거, 등급 하향, 중복 병합을 수행했고 1단계가 놓친 항목도 새로 찾아냈다. 보고서에는 위치와 종류만 적고 비밀값은 옮기지 않았으며, 실제 환경변수 값을 산출물 5개와 문자열 대조해 유출 0건을 확인했다. 레지스트리 조회가 금지된 조건에서는 확인되지 않은 식별자를 추측하지 않고 미확인 절에 확정 방법을 남겼다.
사용 기술
TypeScript, Next.js, Node.js, 서브에이전트 병렬 오케스트레이션, 정적 분석(코드 독해·전수 grep·의존성 오프라인 3자 대조), 검증 스크립트
보안·안정성 설계
- 운영 환경에 요청을 보내지 않는 것을 규칙으로 두고 정적 분석과 로컬 코드 독해만 수행
- 스캔·검증 단계에는 파일 수정 도구를 주지 않는 에이전트 유형을 써서 읽기 전용을 지시문 이상으로 제한하고, 완전한 격리는 아니므로 종료 후 파일 시스템 조회로 변경 0건을 확인
- 자동 점검의 오탐을 줄이기 위해 별도 검증 단계에서 근거 코드를 재확인하고, 제거·강등 항목을 표로 남김
- 보고서에 비밀값을 옮기지 않고 위치와 종류만 기재, 실제 값과의 문자열 대조로 유출 0건 확인
- 확인되지 않은 식별자(취약점 번호 등)를 추정으로 채우지 않고 미확인 절에 확정 방법을 기록
- 발견마다 근거·재현 경로·영향·권장 수정 절이 빠짐없이 있는지 스크립트로 검사
- 대외 공개용 문서는 고객 식별정보와 취약점 상세를 뺀 방법론 문서로 분리
작업 기록
읽기 전용 보안 감사 스윕(웹사이트·인프라)
서로 다른 스택의 두 시스템을 코드 수정 없이 정적 분석만으로 점검했다. 영역별 병렬 스캔, 독립 검증, 문서화를 거쳐 검증을 통과한 발견만 담은 보고서 2종과 후속 작업 문서 3종을 남겼다.
이 페이지는 작업 기록 문서 1건을 바탕으로 정리했습니다. 고객 정보, 접속 주소, 비밀값은 공개 전에 걸러 냅니다.