Post

공업일반 1인 1프로젝트 일지

공업일반-1인-1프로젝트

공업일반 1인 1프로젝트 일지

면책조항

  • 본 블로그에 게시된 모든 기술적 분석과 취약점 사례는 승인된 타깃을 대상으로 윤리적 가이드라인을 준수하며 수행된 결과물입니다.
  • 모든 테스트는 해당 프로젝트의 공식 스코프(Scope) 및 정책 범위 내에서만 안전하게 진행되었습니다.
  • 본 게시글은 오직 교육 및 보안 연구 목적으로만 작성되었으며, 이를 악용하거나 모방하여 발생하는 모든 법적 책임은 행위자 본인에게 있습니다.

3월

프로젝트의 목표를 “AI 기반 자동 취약점 탐지 및 버그바운티 보조 시스템”으로 설정하였습니다.

그후 네이버 버그바운티에 대한 사전 정보를 탐색하여 프로젝트의 구체적인 목표를 설정하였습니다.

버그바운티란?

버그바운티는 기업이 보안 취약점을 제보받기 위해 화이트 해커들에게 합법적으로 서비스에 대한 해킹을 허용하고 발견된 취약점의 심각도에 따라 보상을 지급하는 제도입니다.

1.png

네이버 버그바운티

2.png 네이버 버그바운티 홈페이지

NAVER는 자사 서비스의 취약점을 조기에 발견하여 NAVER 이용자에게 안전한 서비스를 제공하기 위하여 2015년부터 버그바운티 프로그램을 운영하고 있습니다.

블로그, 카페, 페이, 쇼핑 등 네이버가 운영하는 앱/웹서비스와 웨일 브라우저, 클로바 디바이스등의 IoT 기기가 버그바운티 대상이 되는 서비스입니다.

버그바운티를 시작하기에 앞서 네이버 버그바운티에 대한 공개된 문서를 바탕으로 대상에 대한 정보를 수집하였습니다.

네이버는 2022년부터 한해의 네이버의 보안 활동을 담은 네이버 보안 백서 (NAVER Security Whitepaper)를 발간합니다.

해당 문서를 통해 아래와 같이 버그바운티 참가자 수, 지급된 리워드, 총 제보 건수, 조치 기간 등 버그바운티에 대한 기본 정보와 외부/내부에서 제보된 주요 보안 버그 유형, 많이 제보받은 서비스를 알 수 있습니다.

3.png XSS가 가장 많은 비중(37.1%)를 차지함을 알 수 있습니다.

4.png 치지직, 카페, 회원 서비스가 가장 많은 비중을 차지함을 알 수 있습니다.

2022-2025의 NAVER Security Whitepaper를 Chat GPT를 통해 분석한 결과 제보된 주요 보안 버그 유형 중 XSS가 꾸준히 1위를 차지했고, IDOR/Logical Flaw 등위 취약점이 많이 존재하였습니다. 또한 카페, 블로그, 페이, 쇼핑, 회원 등 유저 상호작용이 많은 서비스가 취약점이 많이 제보되었습니다.

위 사전 조사를 기반으로 프로젝트 목표를 “네이버 버그바운티의 웹 서비스 타겟”에서 “XSS 및 Logical Bug” 탐지로 설정하였습니다.

4월

공개된 Agent 설계 방법론에 대한 자료를 참고하여 워크플로우를 설계하였습니다.

Agent 워크플로우 설계

아래의 자료들을 참고하여 설계하였습니다.

  • https://blog.cloudflare.com/cyber-frontier-models/
  • https://www.hacktron.ai/blog
  • https://xbow.com/blog

현실적인 비용 문제가 있어 토큰 수가 적은 Claude Code가 아닌 토큰 수가 많은 GPT Pro x20를 구매하여 Codex 5.5 XHIGH로 진행하였습니다.

Cloudflare가 공유한 Vulnerability discovery harness에서 약간의 변형을 통해 전체적인 구조를 설계하였습니다.

5.png Cloudflare’s Vulnerability discovery harness

Codex로 Claude Code만큼의 Multi-Agent 구조를 설계하는 데에 어려움이 있고, 하나의 Main-Agent로 동작된다면 하나의 서비스 맥락을 잘 이해할 것 같아서 Multi-Agent 구조를 중심적으로 사용하지 않고 Phase라는 개념(공식적인 단어인지는 모르겠습니다)으로 구현하였습니다.

아래와 같이 Discovery, Hunt, Report라는 3개의 단계로 구분하여 시스템 프롬프트에 각 상태간의 전환 조건과 전환 시의 행동(그전 페이즈의 내용을 파일에 기록 후 다음 페이즈로 전환 등)을 명시하였습니다.

  • Discovery: static recon, dynamic discovery
  • Hunt: Hypothesis Generation & Validation, Impact
  • Report: write report draft, draft

다만 Context Window가 전부 차서 Compact되는 문제나 이전의 내용을 잊어버리는 문제가 발생하여 아래와 같은 방법으로 추후 문제를 완화하였습니다.

  • JS 파일을 분석하는 Sub-Agent (Codex 5.3 Spark XHIGH)
  • 한 session에 하나의 타겟으로 프롬프팅 (예: cafe.naver.com, blog.naver.com 각각 동작)

시스템 설계

(정확한 용어인지는 모르겠으나) Agent에게 줄 주변 툴들을 구현하고 기획했습니다.

Agent의 의미를 살려 실제 윤리적인 해커가 Pentesting, Bug Bounty에 사용하는 툴들을 AI가 사용하기 쉽게 만들어 주었습니다. (MCP는 사용하지 않았습니다.)

Service Note

타겟 서비스 (hostname으로 구분)에 대한 정보를 담고 있는 Note입니다.

1
2
3
4
blog.naver.com/
    index.md
    path1.md
    path1/path3.md

위와 같이 File로 저장하고 markdown 파일로 각 엔드포인트에 대한 메소드, 파라미터, 기능들을 정리하였습니다.

HTTP Proxy

Burp Suite의 Proxy와 비슷하게 HTTP 요청을 기록하고 확인하며, 동일한 요청의 반복을 막기 위해서 제작하였고, 핵심적으로 HTTP-ID라는 개념으로 hallucination을 방지하였습니다.

모든 (Req, Res) 집합에 대해 각각 고유의 HTTP-ID를 부여하였습니다.

Proxy 기능

  • Response Header에 X-HTTP-ID: ... 삽입 후 반환
  • host,path,http-id 등으로 검색 후 req, res 반환
  • Static (image, video)는 저장하지 않음

(brutecat의 연구에도 비슷한 개념을 사용한것을 프로젝트 끝나고 확인하였습니다.)

5월

남은 부분을 구현하고 실제 NAVER Bug Boutny Target 대상으로 실제로 가동하며 방법론을 점검했습니다.

처음 동작시에는 사전조사에서 확인한 blog.naver.com, cafe.naver.com의 Client Side 취약점을 중점적으로 살폈습니다.

이후에는 버그바운티 타겟 전체를 대상으로 작동시켰습니다.

성과는 글 맨 아래에 분리된 항목으로 작성하겠습니다.

방법론

  • Legacy Endpoint, Feature, Code
  • Javascript
  • Frontend and Backend Validation Mismatch
  • URL

보완

Grepper

프로그램 작동 중 JS 파일 분석 등에서 리눅스의 grep 명령어를 많이 활용하는 것을 보고, 반복되는 작업을 AI를 통해서 하지 않고 코딩을 통해 해결하였습니다.

구조

1
2
3
4
5
6
7
8
Keywords/
    client/
        xss.json
        open_redirect.json
        ...
    server/
        idor.json
        ...

keyword 파일은 아래와 유사하게 구성하였습니다.

예:

1
2
3
4
5
{
    "keywords": [
        "eval", "document.write", 
    ]
}

6월

프로젝트의 당위성을 경제적 측면에서 분석하여 연구 목적 및 필요성을 보강하였습니다.

보고서를 열심히 작성하고 발표자료를 제작하였습니다.

발표자료 링크 (학교 내부 발표에 사용했습니다.)

alt text alt text alt text alt text alt text

결과 및 성과 요약

개발 기간 : 약 3주

사용한 토큰 : 약 9B

투입 금액 : Codex Pro x20 1달 (299,000원)

찾은 취약점 : 취약점 수정 후에 공개하겠습니다.

- N/A는 ‘버그바운티 프로그램을 통해’ 또는 ‘내부적으로’ 이미 인지하고 있는 이슈입니다.

- 보고서 작성이 늦어져 5월에 발견한 취약점은 1~3주 정도 늦게 제보되었습니다.

This post is licensed under CC BY 4.0 by the author.