온데(Onde) 멘토링 피드백 반영 및 아르고스(Argus) 모듈 별 1인 개발 파이프라인 개발
목차 4개 단원
서론
"2차 멘토링에서 나온 피드백을 바탕으로 진단 대상 여행 플랫폼 '온데(Onde)'의 기능 보완과 관리자 로그인 분리를 반영했습니다. 동시에 자동 진단 플랫폼 '아르고스(Argus)'는 기존 A/B/C 팀별 분업 대신 모듈별 1인 개발 방식으로 바꿨습니다. 진단 범위는 정적 분석보다 동적 분석(DAST)에 집중하고, SK 가이드라인 28개 항목 매핑도 보완했습니다."
온데 멘토링 피드백 반영과, 아르고스 모듈 별 1인 개발 파이프라인·DAST 집중·SK 가이드 28항목 동기화를 정리했습니다.
1. 온데(Onde) 멘토링 피드백 반영
2차 대면 멘토링에서 나온 공격 표면 확대와 비즈니스 로직 보완 요구사항을 반영해, 온데(Onde) 플랫폼의 기능과 인터페이스를 수정했습니다.
① 커뮤니티 기능 확장 및 회원가입 중복 검사 도입
- 리뷰 댓글 기능 보완: 여행기 리뷰 영역에 일반 댓글뿐 아니라 인가된 사용자끼리 비밀스럽게 대화할 수 있는 '비밀 댓글 기능'을 추가했고, 본인이 작성한 피드를 수정할 수 있는 '여행기 수정 기능'도 넣었습니다.
- 회원가입 검증 레이어 보완: 회원가입 입력 폼 단계에서 이름, 전화번호, 닉네임, 나이 외에 식별자 오염을 차단하기 위한 [중복 확인 기능]을 필수 추가하여 회원 데이터의 정확성을 강화했습니다.
- 판매자 대시보드 추가: 판매자가 매출의 발생 기전과 트렌드를 직관적으로 트래킹할 수 있도록 어디서 매출이 발생하는지 집계해 주는 판매자 대시보드 패널을 연동했습니다.
② 어드민 로그인 격리 및 인터랙션 최적화
- 독립형 관리자 로그인 페이지 추가: 사용자 로그인 창과 공유하던 구조를 분리하고, 관리자(Admin) 전용 로그인 화면을 따로 추가해 접근 경계를 나눴습니다.
- 다운로드 경로 할당 제거: 마이페이지 예약 내역 다운로드 시 특정 물리 절대 경로가 지정되어 크래시를 유발하거나 경로 조작 취약점을 주던 로직을 제거하고 표준 브라우저 다운로드 스트림으로 전환했습니다.
- 토스트 알림 반응 속도 개선: 전역 토스트(Toast) 메시지 노출 시간을 기존 3초에서 1초로 줄였습니다.
③ 마이페이지 프로필 관리 및 정산 명세 세분화
- 사용자 · 판매자 마이페이지 구축 (백엔드): 일반 유저 및 파트너 셀러가 본인의 계정 보안을 직접 제어할 수 있도록 프로필 관리 기능(전화번호, 닉네임, 비밀번호, 이메일 변경)을 각각 독립형 컴포넌트로 완비했습니다.
- 정산 상세 정보 명세화: 판매자 및 본사 관리자 정산 페이지에서 단순 총매출액 합산만 보여주던 화면을 개편하여, 단건 예약별 상세 정보까지 인덱싱되도록 스키마 바인딩을 추가했습니다.
- 인프라 구성도 보완: 도메인 분리 및 윈도우 가상 서버 결합에 맞추어 클라우드 인프라 토폴로지 구성도를 최신 배포 사양으로 업데이트했습니다.
2. 아르고스(Argus) 모듈 별 1인 개발 파이프라인
보안 진단 자동화 플랫폼 '아르고스(Argus)'의 구조를 맞추는 과정에서, 제한된 일정 안에 엔진 간 세션 연결과 데이터 형식을 맞추기 위해 개발 방식을 바꿨습니다.
① A/B/C 분업에서 모듈 별 1인 개발 파이프라인으로
- 기존 방식의 한계: 당초 A팀(엔진), B팀(Selenium), C팀(리포트)으로 분할하여 개별 모듈을 만드는 방식은 모듈 간 데이터 규격 조율 시 인터페이스 충돌 병목이 잦을 것으로 판단했습니다.
- 수정된 방식: 팀이 아르고스의 기본 공통 뼈대 구조(Skeleton)를 함께 정한 뒤, 한 명의 개발자가 스캔 엔진(A) → Selenium 자동 증거 수집(B) → 최종 보고서 작성(C)까지 이어서 개발하는 모듈별 1인 개발 방식으로 바꿨습니다. 스캔 엔진과 Selenium 증적 캡처가 한 프로세스 안에서 자연스럽게 연결되도록 했습니다.
모듈별 담당은 SK 가이드라인 항목을 아래처럼 나눴습니다. (○ 동적 진단 가능 / △ 부분·보조 / ╳ 배제)
| 번호 | 진단 분류 대영역 (8대 영역) | 보안 진단 기능 및 취약점명 (가이드라인 기준) | OWASP ZAP (동적) | R&R 담당 |
|---|---|---|---|---|
| 1-1 | 1. 입/출력 값 검증 부재 | XSS / CSRF 공격 가능성 | ○ | 개발자 B1 |
| 1-2 | 1. 입/출력 값 검증 부재 | 삽입(Injection) 공격 가능성 (SQL, Command, XXE 등) | ○ | 개발자 B1 |
| 1-3 | 1. 입/출력 값 검증 부재 | 파라미터 값 및 히든(Hidden) 필드 조작 가능성 | △ | 개발자 B1 |
| 1-4 | 1. 입/출력 값 검증 부재 | SSRF / File Inclusion 공격 가능성 | ○ | 개발자 B2 |
| 1-5 | 1. 입/출력 값 검증 부재 | 검증되지 않은 리다이렉트와 포워드 (CORS 오설정 포함) | ○ | 개발자 B2 |
| 1-6 | 1. 입/출력 값 검증 부재 | 입력 값 크기 및 정확성 검증 오류 (역직렬화 등) | △ | 개발자 B2 |
| 2-1 | 2. 취약한 파일처리 | 악성코드파일 업로드 | △ | 개발자 B3 |
| 2-2 | 2. 취약한 파일처리 | 중요 정보 파일 다운로드 가능성 | ○ | 개발자 B3 |
| 3-1 | 3. 취약한 접근 통제 관리 | 패스워드 정책 유무 및 반영 여부 | △ | 개발자 B4 |
| 3-2 | 3. 취약한 접근 통제 관리 | 인증 실패 횟수 제한 | △ | 개발자 B4 |
| 3-3 | 3. 취약한 접근 통제 관리 | 계정 정보 파악 가능성 | ○ | 개발자 B3 |
| 3-4 | 3. 취약한 접근 통제 관리 | 관리자 페이지 분리 여부 | ○ | 개발자 B4 |
| 3-5 | 3. 취약한 접근 통제 관리 | 검색엔진 정보 노출 가능성 | ○ | 개발자 B4 |
| 3-6 | 3. 취약한 접근 통제 관리 | 백업 파일 및 테스트 파일 존재 여부 | ○ | 개발자 B4 |
| 4-1 | 4. 취약한 인증 및 세션 관리 | 쿠키(Cookie) 및 웹 스토리지(Web Storage) 조작 가능성 | ○ | 개발자 B5 |
| 4-2 | 4. 취약한 인증 및 세션 관리 | 인증(세션 및 토큰) 값 안전성 설정 여부 | △ | 개발자 B5 |
| 4-3 | 4. 취약한 인증 및 세션 관리 | 접근제어 우회 가능성 확인 (IDOR 포함) | △ | 개발자 B5 |
| 4-4 | 4. 취약한 인증 및 세션 관리 | 비인증 상태로 중요 page 접근 가능성 | △ | 개발자 B5 |
| 4-5 | 4. 취약한 인증 및 세션 관리 | 일반계정 권한 상승 가능성 | △ | 개발자 B5 |
| 5-1 | 5. 중요 정보 저장/전송 처리 미흡 | 소스코드 내 주요정보 노출 여부 | ╳ | 진단 불가 (배제) |
| 5-2 | 5. 중요 정보 저장/전송 처리 미흡 | 요청 및 응답 값 내 주요정보 포함여부 확인 | ○ | 개발자 B6 |
| 6-1 | 6. 부적절한 에러 처리 | 오류페이지를 통한 정보 노출 여부 (Stack Trace) | ○ | 개발자 B6 |
| 6-2 | 6. 부적절한 에러 처리 | 일괄적인 오류 처리 페이지 존재 여부 (WAS 에러 포함) | ○ | 개발자 B6 |
| 7-1 | 7. 세션 통제 및 환경 설정 | Client Request Method 제한 | ○ | 개발자 B7 |
| 7-2 | 7. 세션 통제 및 환경 설정 | 파일 목록화 가능성 (디렉터리 리스팅) | ○ | 개발자 B7 |
| 7-3 | 7. 세션 통제 및 환경 설정 | 서버 헤더정보 노출 | ○ | 개발자 B7 |
| 7-4 | 7. 세션 통제 및 환경 설정 | 취약한 보안설정 (라이브러리 버전, 인증서 체인 등) | △ | 개발자 B7 |
| 8-1 | 8. 기타 취약점 | 정의되지 않은 취약점 (Zero-Day 요인 등) | △ | 공통 담당 |
② 진단 스코프의 압축: 동적 분석(DAST) 전념
- 정적 분석 MVP 우선순위 조정: 멘토링 특강 분석 결과를 반영하여, 실효성·오탐 부담이 큰 소스코드 정적 분석(SAST/Semgrep)은 MVP에서 우선순위를 낮추고 보류했습니다.
- 동적 분석 집중 셋업: 패킷 변조 및 실시간 파라미터 주입 공격의 PoC 정확성을 입증하기 위해, 오직 동적 분석(DAST / OWASP ZAP) 파이프라인 및 응답 값 캡처 구현에 진단 역량을 집중하기로 했습니다.
③ 리포팅 구조 슬림화 및 SK 가이드라인 동기화
- 보고서 2원화 정돈: 기존 3개 분할(사용자, 판매자, 관리자) 발행 계획을 폐기하고, 실무 효율성을 위해 (일반 사용자 / 판매자 통합 보고서) 1종과 (본사 관리자 전용 보고서) 1종으로 보고서 아웃풋을 총 2개 구조로 명확히 정돈했습니다.
- SK 가이드 룰셋 보완: 아르고스 취약점 탐지 룰셋 모듈 내부를 전수 검사하여, 국내 표준인 SK쉴더스 Web/API 취약점 진단 가이드라인의 8개 그룹 28개 항목 중 매핑이 빠져 있던 세부 명세 항목들을 식별하고 채워 넣는 보완 작업을 마쳤습니다.
3. 다음 단계: 아르고스 기본 구조 확정과 온데(Onde) 첫 취약점 스캔
온데 멘토링 피드백 반영을 마감하고, 아르고스 모듈 별 1인 개발 파이프라인 방향을 잡은 뒤, 다음부터는 자동화 스캔 단계로 넘어갑니다.
- 아르고스 뼈대 구조(개발 방법) 의논 후 확정: 데이터 파싱 규격과 단일 스레드 내 ZAP API - Selenium 캡처 핸들러 간의 실행 순서를 정의하는 뼈대 설계를 마무리.
- Web/API 취약점 최초 진단(Initial Scanning) 개시: 뼈대 구조가 자리 잡는 즉시 실서버에 배포 완료된 온데 플랫폼(
onde.click)을 스캔 범위로 설정하여 최초 취약점 진단 - 최초 진단 보고서(Initial Report) 초안 빌드: 동적 분석 엔진을 통해 수집된 8개 그룹 28개 항목 로우 데이터와 Selenium 응답 값 증적 스크린샷을 병합하여 아르고스 플랫폼이 찍어내는 첫 번째 최초 진단 보고서 출력 테스트 수행.
수동 진단 · 이행 점검단계 3 · Day 15–28 · 5 / 14일지 전체 →
- Day 15아르고스(Argus) 명칭·A/B/C 분담, 5개 설계 산출물 및 7월 개발 일정 수립
- Day 16WEB/API 취약점 진단 및 모의침투(Penetration Testing) 기록
- Day 17온데 실서버 배포와 2차 멘토링용 질문 정리
- Day 18두번째 멘토링
- Day 19온데(Onde) 멘토링 피드백 반영 및 아르고스(Argus) 모듈 별 1인 개발 파이프라인 개발
- Day 20아르고스 3주 일정 확정과 온데 DAST 가능성 평가
- Day 21웹/API 보안 취약점 진단 상세 결과 및 초보 진단자의 시행착오
- Day 22웹/API 최초 취약점 진단 결과보고서 — 파라미터 검증과 파일 처리
- Day 23중간 발표 PPT 작성
- Day 24실전 모의침투 보안 진단 보고서 — 3-2 ~ 8-1 항목
- Day 25관리자 백오피스 수동 보안 진단 결과보고서
- Day 26전 영역 보안 보완 이행 점검 결과 (상편: 1-1 ~ 3-6)
- Day 27전 영역 보안 보완 이행 점검 결과 (하편: 4-1 ~ 8-1)
- Day 28관리자 백오피스 이행 점검 완료 및 Argus 착수