본문으로 건너뛰기

Mastermind: 전략 수준 학습으로 리포지토리 규모 취약점 재현을 개선한 연구

Mastermind는 자연어 전략을 학습하고 태스크별 경험을 보관하는 이중 루프 구조로 CyberGym에서 GPT-5.5와 결합해 84.5%의 취약점 재현률을 달성했다.

용어 해설

전략 수준 강화학습(Strategy-level RL)
전략 수준 강화학습은 긴 실행 궤적 대신 재사용 가능한 자연어 전략을 정책의 출력 단위로 삼아 보상 신호로부터 정책을 갱신하는 접근이다. 본 논문 맥락에서는 긴 리포지토리 실행(trace) 대신 최대 2,000토큰의 전략 텍스트를 생성하여 실행 비용을 크게 낮추고 전달 가능한 패턴을 학습하는 데 중요했다.
큐레이터 경험 저장소(Curator experience)
큐레이터 경험 저장소는 태스크별로 누적되는 파일 위치, 실패한 가설, 마일스톤 결과 등 단기간 유효한 사실을 보관하는 구조이다. 이 저장소는 정책 가중치에 짐을 주지 않고 순차적 시도에서 이전 시도의 근거를 빠르게 제공하는 데 사용되었다.
마일스톤 보상(Milestone reward)
마일스톤 보상은 이산적 단계(예: 소스 위치 확인, PoC 제출, 듀얼 빌드 재현)에 따라 내리는 계층적 보상 스케줄이다. CyberGym의 0–7 마일스톤을 원천으로 사용하여 희소한 최종 성공보다 더 촘촘한 학습 신호를 생성했다.
슬롯 조건 샘플링(Slot-conditioned sampling)
슬롯 조건 샘플링은 동일 태스크 그룹 안에서 상이한 가설(예: parser-format, bounds-allocation 등)을 강제하여 전략 다양성을 확보하는 기법이다. GRPO 그룹 내에서 서로 보완적인 전략을 생성하도록 설계되어 탐색-품질 균형을 개선했다.
CyberGym 벤치마크(CyberGym)
CyberGym은 리포지토리 규모의 실제 취약점 복제 작업을 모아둔 벤치마크로서 ARVO와 OSS-Fuzz 태스크를 포함한다. 본 논문은 Level 1(설명 텍스트 제공) 설정을 기본으로 260개 학습, 200개 평가 태스크 분할로 실험을 수행했다.

코드 예제

python
def mastermind(task):
    while not converge:
        experience = curator.activate(task)
        strategy = planner.generate(experience)
        rollout = executor.execute(strategy)
        result = verifier.validate(rollout)
        curator.accumulate(result)
        planner.calibrate(result)

이 코드는 Mastermind의 핵심 루프를 간결한 파이썬 유사 코드로 보여주며 큐레이터 활성화, 플래너 생성, 실행기 수행, 검증기 확인, 경험 누적 및 플래너 보정의 순서를 나타낸다.

text
0: task d, curator C, planner pi_theta, executor E, verifier V
0: maximum attempts N
1: tau* <- ⊥ ; m* <- 0
2: for n = 1, …, N do
3: x_n <- C.Activate(d)
4: s_n ~ pi_theta*(·| d, x_n)
5: tau_n <- E(d, s_n)
6: y_n <- V(d, tau_n)
7: C.Update({(d, s_n, tau_n, y_n, n)})
8: if m(y_n) > m* then
9:   tau* <- tau_n ; m* <- m(y_n)
11: if m* = 7 then break
15: return tau*, C

이 의사코드는 Algorithm 1 Mastermind 추론 스트림을 그대로 옮긴 것으로, 각 시도에서 큐레이터 활성화부터 결과 업데이트와 조기종료 조건까지 절차를 보여준다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 02.수집 2026. 07. 08.출처 타입 PAPER

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.