진단 대상(온데) 마무리 후 웹 취약점 자동 진단 플랫폼 기획: 오픈소스(ZAP·Semgrep) 분석 및 3대 MVP 시나리오 확정
목차 6개 단원
서론
"진단 대상인 여행 플랫폼 '온데(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 스펙
- AI 기반 조치 우선순위 분류 알고리즘: 대량의 로우 데이터(Raw Data) 취약점이 발견되었을 때, 인공지능 API와 프롬프트 설계를 통해 어떤 결함을 먼저 보완해야 하는지 위험도 및 시급성별로 취약점을 자동 분류합니다.
- Selenium 기반 스크린 자동 캡처: 인프라 트랙의 윈도우 서버(Windows Server) 환경에서 헤드리스(Headless) 웹 드라이버 실행 스크립트를 구현해, 자동 진단 과정에서 취약점이 매핑되는 순간의 증적 화면을 자동 캡처해 저장합니다.
- 커스텀 한글 보안 진단 리포트 엔진: 스캔된 통계 지표와 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일지 전체 →
- Day 06인프라 설계 정리 및 개발 속도를 위한 방식 변경
- Day 07프론트엔드 아키텍처 개선 및 백엔드 통합 시작
- Day 08프론트 Mock 데이터 제거와 백엔드 전체 모듈 통합
- Day 09실전 연동을 위한 API 표준화, BOLA 보안 취약점 개선 및 클라우드 인프라 개선
- Day 10본격 취약점 진단을 위한 공격 메커니즘 이해: 웹 해킹 및 SQL Injection 인증 우회 기법 학습
- Day 11실시간 DB 재고 달력 동기화, 권한(RBAC) 보안 가드 보완 및 로컬 Mock S3(MinIO) 인프라 구축
- Day 12백엔드 코어 데이터베이스 개편, 결제 파이프라인 연결 및 SQL Injection 심화·CSRF 다층 방어 정리
- Day 13메인 브랜치 통합, Nginx 배포 패키징, 플랫폼 헬스체크(Health Check) 설정 및 웹 보안 진단 준비
- Day 14진단 대상(온데) 마무리 후 웹 취약점 자동 진단 플랫폼 기획: 오픈소스(ZAP·Semgrep) 분석 및 3대 MVP 시나리오 확정