멘토링 피드백 반영 진단 엔진(1-2, 4-5, 7-4) 개선과 1-6 Docker 크래시 수정
목차 8개 단원
서론
"채용 특강(7/9)을 앞두고, 지난 멘토링에서 받은 '넓게 찾고 단계별로 좁히기(Broad-to-Narrow)'와 다중 권한 세션 교차 검증 피드백을 실서버 진단 엔진에 반영했습니다. 7월 7일에는 4-5 일반계정 권한상승(IDOR) 세션 검증 엔진을 만들고, 7-4 취약한 보안설정(OSV 및 TLS 스캔)을 합쳤으며, Slim Docker 환경에서 생기던 1-6 모듈 컴파일 크래시도 고쳤습니다."
2026-07-07 작업 로그 기준으로 4-5 IDOR 다중 세션 검증, 7-4 OSV/TLS 통합, 1-6 슬림 Docker 컴파일 크래시 및 2-2 fan-out 최적화를 반영했습니다.
1. [4-5] 일반계정 권한상승 (IDOR) 다중 세션 진단 개선 및 UI 구성
피드백에서 강조한 다중 권한 교차 확인과 접근제어 우회 확인을 위해, 한 가지 경우만 보던 탐지 방식을 바꿨습니다.
── IDOR 다중 세션 시나리오 로직 옮김
- 적용 소스:
scanner.py,g45_discovery.py,g45_auth.py - 동작 방식: 세션 풀(Session Pool)을 바탕으로 [일반 계정 A vs 일반 계정 B vs 권한이 없는 비인증 계정(Anonymous)] 세 가지 요청을 비교합니다. 다른 사람의 게시글, 주문 내역, 관리자 데이터의 식별자(ID)를 바꿔 요청했을 때 백엔드가 제대로 거부하는지 확인합니다.
- 도커 네트워크 최적화: Docker 구동 환경에 맞추어 네트워크 인터페이스 및 API Base URL 라우팅 매핑 주소를 보완하고,
/diagnosis/modules/4-5/파이프라인의 스캔 주기를 최적화했습니다.
── 프론트엔드 전용 Findings 패널 연동
- 적용 파일:
G45FindingsPanel.tsx,G45SectionInfoPopover.tsx - 가시성 확보: 타인 권한 탈취 결과 및 우회 성공 증적 패킷을 직관적으로 대조할 수 있도록 전용 Findings 패널과 인포 팝오버 UI 컴포넌트를 새롭게 개발하여 대시보드 단에 밀착 배치했습니다.
2. [1-2] 삽입 공격 엔진 개선 및 [7-4] 취약한 보안설정 모듈 통합 완료
단계별로 쿼리를 쌓아 검사하는 1-2 인젝션 엔진을 다듬고, 서버 인프라 취약점을 검사하는 7-4 모듈도 연결했습니다. 여기서의 TLS·OSV 점검은 새 항목 번호가 아니라, 같은 가이드라인 7-4(취약한 보안설정) 아래에서 CORS·보안 헤더에 이어 범위를 더 넓힌 것입니다.
── 백엔드 코어 인프라 진단 엔진 구현 명세
- 7-4 서버 보안 설정 검사 엔진 레이어 정리:
tls_check.py/tlsCheck.py: 타깃 도메인의 SSL/TLS 핸드셰이크 프로토콜을 역추적하여, SK쉴더스 가이드라인 상 명백한 취약점으로 분류되는 레거시 프로토콜(SSLv3, TLS 1.0, TLS 1.1 등) 활성화 유무 및 암호화 스위트(Cipher Suite) 안전성을 판정합니다.port_scan.py: 대상 호스트에 대해 불필요하게 대외 개방되어 공격 표면을 노출하고 있는 미사용 포트 현황을 고속 점검합니다.version_check.py: HTTP 응답 헤더(Server, X-Powered-By 등)에서 배출되는 배너 정보를 파싱하여 소프트웨어 버전을 확인하고, 이름 및 버전 노출 시 즉각 미흡 취약점으로 확정 판정합니다.dependency_check.py(OSV 실시간 연동): 프로젝트 빌드 자산인gradle_dep_files.json등을 파싱해 외부 오픈소스 라이브러리 의존성을 자동 수집한 뒤, 구글 OSV(Open Source Vulnerability) 데이터베이스 API를 실시간 상호 참조하여 취약점이 실존하는 위험 버전인지 자동으로 판별해 냅니다.
- 1-2 삽입 공격 엔진 주입 속도 튜닝:
payload_injector.py: SQL/OS 커맨드 인젝션을 유발하는 모의 페이로드 적합성을 다듬고, API 파라미터별 주입 스피드 및 예외 처리 가드를 대폭 리팩터링했습니다.zap_engine.py/zap_scan.py: OWASP ZAP 액티브 스캔 정책 세션과의 연동 옵션을 튜닝하여 탐지 정확도를 상향 제고했습니다.
── 프론트엔드 리포트 대시보드 표출 최적화
- 적용 파일:
DiagnosisPage.tsx,DiagnosisReportPanel.tsx,BuildSourcePanel.tsx - 구조화 뷰 적용:
DiagnosisReportPanel.tsx구성을 개편하여 7-4 진단 엔진이 발출한 세부 지표(TLS 버전 현황, 포트 스캔 맵, 취약 라이브러리 CVE 연동 정보)를 직관적인 요약 테이블 및 차트 형태로 표시하도록 변경했습니다. 빌드 소스 패널(BuildSourcePanel.tsx)에는 1-2 및 7-4를 기동 제어할 수 있는 옵션 폼 설정을 최적화했습니다.
3. [1-6] 입력 값 크기 및 정확성 검증 오류 모듈 Docker 크래시 수정
Docker 컨테이너 환경에서 1-6 진단 모듈을 돌릴 때 백엔드 컨테이너가 내려가거나 ImportError가 나서 작업이 멈추던 문제를 고쳤습니다.
── Selenium 의존성 지연 로딩 (Lazy Import) 처리
- 결함 원인: fuzzer 엔진 내부의
session_manager.py파일 최상단에서selenium패키지가 항상 즉시 import되도록 선언되어 있었습니다. 이로 인해 셀레니움 드라이버가 빌드되어 있지 않은 가벼운 슬림 도커 백엔드 이미지 환경(Slim Docker Image)에서 구동될 시 파일 전체가 컴파일되지 못하고 컴파일 크래시를 유발했던 것으로 규명되었습니다. - 해결 조치: 최상단의 항상 import하는 구문을 제거하고, 실제 브라우저 드라이버를 호출하는 기동 시점에만 패키지를 불러오도록
_load_selenium메서드를 새로 만들어 지연 로딩(Lazy Import) 패턴으로 코드를 수정했습니다. 이로써 해당 패키지가 없는 환경에서도 정상적인 fallback 예외 처리가 작동해 시스템이 다운되지 않습니다.
── 도커 전용 설정 파일 동기화 및 라우팅 적용
- 적용 파일:
config.docker.yaml - 설정 동기화: 로컬 설정에만 존재하고 도커 구성에 누락되어 있던
diagnosis_1_6블록 옵션(skip_zap,skip_spider,skip_selenium등 변수 팩터)을 동기화 지정하여 컨테이너망에서도 올바른 스킵 제어가 수행되도록 보정했습니다. 컨테이너 외부 호스트 서버로의 트래픽 라우팅을 보장하는ARGUS_PROBE_HOST주소 재작성(Rewrite) 규칙을 1-6 스캐너 프로브 단에도 전향 적용했습니다.
4. [2-2] 중요 정보 파일 다운로드 엔드포인트 전파 (Fan-out) 최적화
- 다중 Base URL 대응 검사 다변화 (
transfer_endpoints_service.py): 2-2 파일 다운로드 및 상위 경로 변조 진단 시, 특정 벤더 경로(/user-api)에만 의존하여 쿼리를 송신하던 레거시 정적 재작성(Rewriting) 방식을 모두 폐기했습니다. - 검사 커버리지 확장: 대시보드 시스템에 등록된 모든
base-urlsOrigin 대역으로 탐지된 다운로드 URL 엔드포인트를 동시 전파(Fan out) 넣는 분기 알고리즘을 반영하여 스캔 타깃 커버리지를 대폭 확장했습니다. 도커 내부 프로브 오라우팅을 방지하기 위해probe_base_url헬퍼를 결합하여 다운로드 결함 증적의 URL 주소 체계를 표준 정규화했습니다.
5. [1-1] XSS / CSRF 도커 환경 경로 매핑 수정 및 UI 개선
- 도커 전용 경로 빌드 로직 정리: 도커 컨테이너 내부망 환경 하에서 ZAP 엔진 실행 시 생성되는 파일 정보 및 리포트 저장 경로가 호스트 OS 로컬 환경의 경로 정보와 충돌을 일으키며 불일치하던 싱크 현상을 교정하기 위해,
backend/app/config.py소스코드 단에 도커 컨테이너 전용 경로 동적 빌드 아키텍처를 추가 삽입했습니다. - 텍스트 오버플로우 패치: 1-1 진단 완료 후 대시보드 리포트 상세 장표 페이지에서 긴 페이로드 설명문 인입 시 줄바꿈 가드가 깨져 텍스트 렌더링이 잘리던 프론트엔드 스타일 유실 오류를 수정했습니다.
6. 공통 헬퍼 개선 및 시스템 진척도 모니터링 안정화
- 범용 키워드 아규먼트 (
**kwargs) 도입 정리: 중앙 코어 서비스 스케줄러인run_section호출부 구문에서 특정 모듈 변수의 부가 인자 전달이 누락될 시 발생하던 심각한TypeError예외 마비 현상을 차단하기 위해, 백엔드 핵심 구동 파이프라인 흐름 함수 시그니처 래퍼 전반에**kwargs범용 인자 처리 가드를 주입했습니다. - 실시간 폴링 레이어 보완 (
progress_reporter.py): 1-2 인젝션 및 4-5 IDOR 스캔 등 대량의 패킷 전송으로 인해 장시간 수행되는 백엔드 진단 모듈의 실시간 진척도(Progress) 지표가 대시보드 단으로 끊김 없이 웹소켓 및 폴링 응답을 통해 전달되도록 수신 커넥션 로직의 전송 안정성을 다듬었습니다.
7. 다음 작업: 채용 특강과 스크린샷 증적 캡처 기능 만들기
오늘 멘토링 피드백에 맞춰 핵심 탐지 로직을 고치고 관련 모듈에 반영했으며, Docker 환경의 컴파일 크래시도 수정했습니다. 이로써 검색 엔진과 공통 인프라를 연결하는 스프린트 1 작업을 마쳤습니다.
- 다음 작업:
- 현업 채용 특강 (7/9): 다음 날(7/9)은 플랫폼 개발을 잠시 멈추고, 취업 역량을 위한 채용 특강에 참여할 예정입니다. 대기업 보안 업계 흐름과 HR이 보는 소프트 스킬을 파악해 이후 플랫폼 발표 방향에도 반영합니다.
- Playwright 기반 실시간 증적 스크린샷 캡처 모듈 만들기 (7/9 ~ 7/11): 채용 특강 전후에
backend/screenshot/modules/{id}에 동적 증적 캡처 기능을 만듭니다. 스캐너 요청이 진행되는 과정을 찍는 과정(Process) 캡처 모드와, 익스플로잇 성공 시점의 Before-After 화면을 찍는 결과(Result) 캡처 모드를 고를 수 있게 Selenium/Playwright 헤드리스 드라이버 제어 코드를 작성할 예정입니다. 다음 스프린트에도 이어서 진행합니다.
아르고스 개발단계 4 · Day 29–40 · 7 / 12일지 전체 →
- Day 29세번째 멘토링
- Day 30아르고스(Argus) 진단 모듈 6개 개발
- Day 31아르고스(Argus) 진단 모듈 9개 추가와 Progress UI·Docker 라우팅 정비
- Day 32아르고스 코어 리팩토링과 1-1·1-2·1-4·1-6 Staging 통합
- Day 33아르고스 Staging 통합과 비동기 퍼징 구조 정리
- Day 34네번째 멘토링
- Day 35멘토링 피드백 반영 진단 엔진(1-2, 4-5, 7-4) 개선과 1-6 Docker 크래시 수정
- Day 36IT 채용 시장 변화와 취업·비즈니스 소프트 스킬 정리
- Day 37Playwright 증적 스크린샷 (자동: 1-2 · 7-4 · 2-2 / 정리·작업중: 1-6 · 6-1)
- Day 38아르고스 Findings·증적 UI 연동, 캡처 확장, ONDE 하드코딩 제거
- Day 39아르고스 PDF 결과서 생성과 다운로드
- Day 40아르고스 AWS 프라이빗 서브넷 배포 아키텍처와 코드 설정