포트폴리오 ↗
루키즈 5기 · 일지›온데 개발Day 14 / 46

진단 대상(온데) 마무리 후 웹 취약점 자동 진단 플랫폼 기획: 오픈소스(ZAP·Semgrep) 분석 및 3대 MVP 시나리오 확정

·읽는 시간 약 5분
#security#argus#owasp-zap#semgrep#onde
목차 6개 단원
  1. ·서론
  2. 01진단 대상 '온데(onde)' 여행 플랫폼 핵심 개선 및 스키마 수정
  3. 02웹 취약점 자동 진단 플랫폼 기획 방향과 성격 정리
  4. 03차별점 확보를 위한 오픈소스 도구 분석 및 3대 핵심 MVP 기능 도출
  5. 04저장소 문서화 최신화 및 가상화 서버 스크립트 빌드 테스트 현황
  6. 05다음 단계: 진단 파이프라인 코딩 및 크롤러 스크립트 연결

서론

"진단 대상인 여행 플랫폼 '온데(onde)'를 연결하고, 스키마 수정과 PortOne 실결제 연동 구현·검증까지 마쳤습니다. 이어서 온데를 스캔할 '웹 취약점 자동 진단 플랫폼'을 기획했습니다. 오픈소스(ZAP·Semgrep)를 분석한 뒤 AI 우선순위 분류와 Selenium 자동 증적 캡처를 포함한 3개 핵심 MVP 기능을 정했습니다."

온데 타깃 쪽 스키마·PortOne 연동을 마무리한 뒤, 이를 스캔할 웹 취약점 자동 진단 플랫폼 기획으로 넘어가 ZAP·Semgrep 기반 3대 MVP 기능을 확정했습니다.

1. 진단 대상 '온데(onde)' 여행 플랫폼 핵심 개선 및 스키마 수정

취약점 스캔과 모의해킹 대상(Target)이 될 여행 플랫폼 '온데(onde)'의 안정성을 높이고, 프론트엔드와 백엔드 연결 상태를 점검하며 데이터 계층을 수정했습니다.

  • 도메인 핵심 스키마 추가 및 확장:
    • 판매자 정산 및 계정 관리 무결성을 위해 seller_account 구조를 V1 테이블 초기 형성에 최종 추가 반영했습니다.
    • 숙소 상세 옵션 다각화를 반영하고자 rooms 테이블 스펙에 신규 비즈니스 컬럼을 확장하는 V5 마이그레이션 스크립트를 적용했습니다.
  • Flyway 버전 파이프라인 충돌 해결:
    • 개발팀 간 병렬 머지 과정에서 생긴 V9 중복 스키마 문제를 확인했습니다. 시스템 인스턴스를 중단하지 않고 정합성을 맞추기 위해 중복 구간을 나누고 V10 버전으로 마이그레이션을 분리했습니다.
  • 지리 공간 데이터(LBS) 정밀화 및 마스터 데이터 교체:
    • 지도 탐색 화면의 핀 포인트 오차를 줄이기 위해, 데이터베이스 내에 적재되어 있던 숙소 위도 및 경도 좌표값을 수정했습니다. 구글 드라이브를 통해 공유된 최신 정제 합본 CSV 데이터를 기반으로 데이터베이스 마이그레이션을 마쳤습니다.
  • 성능 및 기능 최적화 연동:
    • 대량의 지리 데이터 및 최신 숙소 리스트 로드 시 브라우저 오버헤드를 줄이기 위해 IntersectionObserver 기반의 숙소 카드 레이지 로딩(Lazy Loading)을 추가해 렌더링 성능을 높였습니다.
    • 프론트엔드 포트원 결제창 요청과 백엔드 데이터베이스의 payments/prepare 및 validate 검증 계층을 이어서 PortOne 실결제 연동을 구현하고 결제 경로를 검증했으며, 여행기(커뮤니티) 게시글 추가/수정 폼의 데이터 바인딩 예외 처리도 마감했습니다.

2. 웹 취약점 자동 진단 플랫폼 기획 방향과 성격 정리

우리 팀 '너의 취약점은'은 웹 서비스의 보안 결함을 자동으로 찾아 추적하는 플랫폼을 만들기 위해 보안 진단 플랫폼의 방향과 진단 대상을 분리해 정리했습니다.

  • 진단 대상과 진단 플랫폼의 명확한 이원화 구도 정립:
    • 우리가 개발한 개선된 여행 플랫폼 '온데(onde)'는 취약점 진단의 대상(Target)이 됩니다.
    • 이와 동시에 온데의 취약점을 자동으로 스캔하고 관리자에게 시큐어 코딩 보완 내용을 보여 주는 '웹 취약점 자동 진단 플랫폼'의 핵심 구조를 연결해 함께 만듭니다.
  • 범용 웹 진단 플랫폼으로 확장: 특정 도메인 전용 도구가 아니라 여러 웹 서비스 환경을 스캔할 수 있는 '범용 진단 플랫폼'으로 방향을 정했습니다.
  • 기획 구성 비율(50:50) 정의: 기술 문제를 다루는 '기술 논문 형식' 50%와, 관리자가 보기 편한 '서비스 형식' 50% 비율을 정했습니다.
  • 주제 개요와 필요성 정리: 이 플랫폼이 필요한 이유를 정리하고, 시나리오 기반 취약점 탐색 과정을 설계했습니다.

3. 차별점 확보를 위한 오픈소스 도구 분석 및 3대 핵심 MVP 기능 도출

기존 단일 스캐너와 다른 기능을 만들기 위해 현업에서 쓰는 오픈소스 진단 도구를 조사하고, 이를 함께 제어하는 파이프라인과 3개 핵심 기능을 골라 MVP 사양을 설계했습니다.

① 오픈소스 진단 툴 리서치 및 라인업 확정

  • OWASP ZAP: 동적 애플리케이션 보안 테스트(DAST) 엔진으로 채택하여 구동 중인 웹 서비스를 대상으로 실시간 패킷 퍼징 및 주입 공격 취약점 자동 스캔.
  • Semgrep: 정적 애플리케이션 보안 테스트(SAST) 소스코드 분석 도구로 채택하여 개발 단계의 소스코드 내 시큐어 코딩 규칙 위반 여부 스캔.
  • SSL Labs: 외부 통신망의 안전성을 보장하기 위해 웹 서버의 SSL/TLS 암호화 프로토콜 설정 및 인증서 취약점 평가.

② 플랫폼 3개 메인 핵심 기능 및 MVP 스펙

  1. AI 기반 조치 우선순위 분류 알고리즘: 대량의 로우 데이터(Raw Data) 취약점이 발견되었을 때, 인공지능 API와 프롬프트 설계를 통해 어떤 결함을 먼저 보완해야 하는지 위험도 및 시급성별로 취약점을 자동 분류합니다.
  2. Selenium 기반 스크린 자동 캡처: 인프라 트랙의 윈도우 서버(Windows Server) 환경에서 헤드리스(Headless) 웹 드라이버 실행 스크립트를 구현해, 자동 진단 과정에서 취약점이 매핑되는 순간의 증적 화면을 자동 캡처해 저장합니다.
  3. 커스텀 한글 보안 진단 리포트 엔진: 스캔된 통계 지표와 AI가 바인딩한 시큐어 코딩 대응 가이드를 결합하여, 가독성 높은 고품질의 표준 한글 보고서(PDF)를 원클릭으로 자동 생성 및 출력합니다.

4. 저장소 문서화 최신화 및 가상화 서버 스크립트 빌드 테스트 현황

실전 개발 및 플랫폼 기획 구체화와 동시에, 팀의 협업 표준화 유지를 위한 레포지토리 관리 및 인프라 사전 검증 작업을 수행했습니다.

  • 백엔드(Backend) README.md 수정 보완: 13일차에 완료된 메인 통합 소스코드의 엔드포인트 구조와 최신 시스템 컴포넌트 사양을 백엔드 공식 기술 명세서에 반영했습니다.
  • 인프라(Infra) 사양 가이드라인 수정 반영: 클라우드 구성 토폴로지와 컨테이너 가상화 배포 사양을 인프라 공식 README 문서에 녹여내는 가이드라인 수정 작업을 활발히 진행 중입니다.
  • Selenium 가동 환경 스크립트 빌드 테스트 (인프라): 가상화 서버 내에서 크롬 드라이버와의 호환성 충돌 없이 헤드리스 모드로 웹 페이지를 추적하고 스크린샷을 안정적으로 파일 시스템에 파일링할 수 있도록 사전 스크립트 빌드 및 구동성 테스트를 진행 중입니다.
  • 보안 진단 역량 내재화: 인프런(Infrun) 웹 보안 및 시큐어 코딩 대장정 전 교육 과정을 완강 달성하여, 플랫폼 내부 결함을 날카롭게 식별해 내기 위한 이론적 무장을 마쳤습니다.

5. 다음 단계: 진단 파이프라인 코딩 및 크롤러 스크립트 연결

이기종 보안 엔진을 제어할 시스템 아키텍처와 AI 매핑 규격이 수립되었으므로, 차일 마일스톤부터는 설계를 실제 소스코드로 구현하는 본격적인 빌드 단계로 들어갑니다.

  • 오픈소스 제어 파이프라인 구현: 백엔드 서버 내에 ZAP API 호출 클라이언트 모듈 및 Semgrep CLI 결과 파일 파서 클래스 코드 작성 완료.
  • Selenium 크롤러 실전 결합: 윈도우 서버 인프라 환경에서 검증 중인 Selenium 헤드리스 자동 캡처 스크립트를 플랫폼 백엔드 이벤트 핸들러와 물리적으로 연동.
  • AI 응답 데이터 파싱 모듈 테스트: 프롬프트 매핑 템플릿을 통해 인입되는 LLM API의 JSON 응답 데이터를 자바 엔티티 객체로 변환하여 데이터베이스 무결성을 검증하는 통신 테스트 진행.
온데 개발단계 2 · Day 6–14 · 9 / 9일지 전체 →
  1. Day 06인프라 설계 정리 및 개발 속도를 위한 방식 변경
  2. Day 07프론트엔드 아키텍처 개선 및 백엔드 통합 시작
  3. Day 08프론트 Mock 데이터 제거와 백엔드 전체 모듈 통합
  4. Day 09실전 연동을 위한 API 표준화, BOLA 보안 취약점 개선 및 클라우드 인프라 개선
  5. Day 10본격 취약점 진단을 위한 공격 메커니즘 이해: 웹 해킹 및 SQL Injection 인증 우회 기법 학습
  6. Day 11실시간 DB 재고 달력 동기화, 권한(RBAC) 보안 가드 보완 및 로컬 Mock S3(MinIO) 인프라 구축
  7. Day 12백엔드 코어 데이터베이스 개편, 결제 파이프라인 연결 및 SQL Injection 심화·CSRF 다층 방어 정리
  8. Day 13메인 브랜치 통합, Nginx 배포 패키징, 플랫폼 헬스체크(Health Check) 설정 및 웹 보안 진단 준비
  9. Day 14진단 대상(온데) 마무리 후 웹 취약점 자동 진단 플랫폼 기획: 오픈소스(ZAP·Semgrep) 분석 및 3대 MVP 시나리오 확정