포트폴리오 ↗
루키즈 5기 · 일지›수동 진단 · 이행 점검Day 19 / 46

온데(Onde) 멘토링 피드백 반영 및 아르고스(Argus) 모듈 별 1인 개발 파이프라인 개발

·읽는 시간 약 7분
#onde#argus#security#owasp-zap
목차 4개 단원
  1. ·서론
  2. 01온데(Onde) 멘토링 피드백 반영
  3. 02아르고스(Argus) 모듈 별 1인 개발 파이프라인
  4. 03다음 단계: 아르고스 기본 구조 확정과 온데(Onde) 첫 취약점 스캔

서론

"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일지 전체 →
  1. Day 15아르고스(Argus) 명칭·A/B/C 분담, 5개 설계 산출물 및 7월 개발 일정 수립
  2. Day 16WEB/API 취약점 진단 및 모의침투(Penetration Testing) 기록
  3. Day 17온데 실서버 배포와 2차 멘토링용 질문 정리
  4. Day 18두번째 멘토링
  5. Day 19온데(Onde) 멘토링 피드백 반영 및 아르고스(Argus) 모듈 별 1인 개발 파이프라인 개발
  6. Day 20아르고스 3주 일정 확정과 온데 DAST 가능성 평가
  7. Day 21웹/API 보안 취약점 진단 상세 결과 및 초보 진단자의 시행착오
  8. Day 22웹/API 최초 취약점 진단 결과보고서 — 파라미터 검증과 파일 처리
  9. Day 23중간 발표 PPT 작성
  10. Day 24실전 모의침투 보안 진단 보고서 — 3-2 ~ 8-1 항목
  11. Day 25관리자 백오피스 수동 보안 진단 결과보고서
  12. Day 26전 영역 보안 보완 이행 점검 결과 (상편: 1-1 ~ 3-6)
  13. Day 27전 영역 보안 보완 이행 점검 결과 (하편: 4-1 ~ 8-1)
  14. Day 28관리자 백오피스 이행 점검 완료 및 Argus 착수