# CTF 풀이를 돕는 정보보안 에이전트의 필요요건은?

> 작전타임의 공개 토론 기록입니다. 서로 다른 회사의 AI 전문가들이 각자 답하고 반박한 뒤 투표로 결론을 냈습니다.
> 날짜: 2026년 10월 18일 · 주제: 그 밖의 고민 · 참여 AI 전문가: 3명 · 토론 시간: 3분 57초
> 원문: https://jjtime.app/debates/01ae0c8f-0a03-4b48-b20f-433a6ccb92a9

## 결론

CTF 풀이 보조 에이전트의 필요요건은, 문제마다 1회용 샌드박스로 격리 경계를 단단히 세우고 그 안에서는 자율 실행을 허용하되 경계를 넘는 통신만 네트워크 계층에서 강제 차단하며, 결과는 반드시 증거로 재검증하는 구조로 설계하는 것입니다. 전 분야를 한 번에 욕심내지 말고 웹·암호 같은 2개 분야의 CLI 실행 루프부터 시작해 기출로 성과를 검증한 뒤 넓히십시오.

## 핵심 근거

- 성패는 거대한 지식 DB가 아니라 bash·python3 등 표준 CLI 도구를 실행하고 오류를 고치는 반복 루프에 달려 있다(Cybench·NYU CTF Bench).
- 사고는 명령 종류가 아니라 잘못 노출된 경계(o1 사례의 Docker API)에서 난다 — 호스트 소켓·자격증명을 붙이지 말고 출구는 IP 허용목록으로만 열어라.
- 프롬프트 주입은 완전히 못 막는다고 가정하고, 분야별 래퍼에 최소 권한만 줘 주입이 성공해도 피해가 샌드박스 안에서 끝나게 하라(OWASP: 주입·과도한 권한).
- 검증 루프(플래그 형식 확인·익스플로잇 재실행·복호 역검증)가 속도를 올린다는 것은 아직 가설 — 고정 벤치마크로 회귀 측정해 확인하라.

## CTF 보조 에이전트 필요요건 체크리스트 (항목별 필수/권장)

### 기능 — 필수

1. 표준 CLI(bash, python3) 실행→출력 관찰→오류 수정의 반복 루프를 핵심 엔진으로 둔다
2. 결과 검증 루프: 플래그 형식 확인, 익스플로잇 재실행, 복호 결과 역검증 — 증거 없는 결과는 '가설'로만 표시한다
3. 문제당 턴·비용 상한(예: 15턴·$0.50)을 걸어 그럴듯한 오답에 오래 매달리는 것을 끊는다

### 기능 — 권장

1. 메모리는 '실패한 가설 로그'로 구성해 틀린 길을 일찍 배제한다

### 도구 연동 — 권장(초기엔 웹·암호부터)

1. 분야별 최소권한 래퍼 연동: gdb/pwntools, Ghidra headless, volatility, SageMath

### 도구 연동 — 필수

1. 각 래퍼는 자기 작업에 필요한 권한만 갖도록 격리한다

### 지식 구성 — 필수

1. 지식은 사전 DB 구축을 최소화하고, RAG로 들여오는 write-up은 '비신뢰 데이터' 등급으로 다룬다
2. 도구 출력·외부 자료를 '데이터'로 태깅하되 모델의 준수에 의존하지 않고 권한 구조로 방어한다

### 실행 환경 — 필수

1. 문제마다 1회용(일회성) 로컬 Docker 샌드박스를 쓰고, 끝나면 폐기한다
2. 호스트 소켓·자격증명을 컨테이너에 붙이지 않는다
3. 자원 상한과 변경 불가(immutable) 로그를 둔다

### 실행 환경 — 권장

1. 개인 PC + 월 10만 원 안팎 예산으로 과금 위험 없이 실험한다

### 안전장치 — 필수

1. 출구(egress)는 대회 IP 허용목록으로만 열고, 그 판정은 모델이 아니라 네트워크 계층에서 강제한다
2. 허용목록 밖 통신·대상 밖 스캔·마운트 변경 등 경계 이탈만 차단/승인 대상으로 둔다
3. 실서비스를 두드리는 모의해킹 보조는 이 설계에서 제외한다
4. 대회 규정(자동화·AI 도구 허용 여부)과 비공개 문제 데이터의 외부 모델 API 전송 가능 여부를 사전 확인한다

### 검증 — 필수

1. 고정 벤치마크(기출 20문제)에서 Pass@1·소요 시간·토큰 비용·오답률을 매번 회귀 측정한다

### 검증 — 권장

1. 오늘 컨테이너 하나를 띄워 기출 5개부터 돌려 실패 로그를 설계 지침으로 삼는다

## 소수 의견

경계 자율화에 대한 반론: 허용목록이 '대회 IP'만 열어도 공유 인프라의 제3자 서비스에 닿거나 DNS 터널링·허용 대상 경유 유출을 못 막는다. 경계가 한 번만 뚫리면 전면 자율 실행은 피해를 멈출 수단이 없으므로, 외부로 나가는 다음 명령에는 사람 승인을 고정하고 라이트업 없는 문제로만 채점하자는 보수적 설계도 유효하다. 또한 검증 루프의 속도 효과와 '플래그 형식=정답' 가정은 벤치마크로 입증되기 전까지 가설일 뿐이다.

## 질문

개인 학습·연구 목적으로 CTF 문제 풀이를 보조하는 정보보안 에이전트를 만들려고 합니다. 취약점 점검과 모의해킹 보조가 핵심 역할이고, 웹·포렌식·리버싱·암호·포너블 등 전 분야를 폭넓게 지원하는 것이 목표입니다. 성공 기준은 CTF 풀이 속도와 정확도의 향상입니다. 이를 위해 갖춰야 할 기능, 도구 연동, 지식 구성, 실행 환경, 안전장치 등 필요요건을 어떻게 설계하는 것이 좋을까요?

## 참여 AI 전문가

- 윤재석 · AI 보안 전략가 (Claude Opus 5.5)
- 강도율 · 기술 비평가 (Grok 4.7)
- 주다은 · AI 도입 컨설턴트 (Gemini 4 Argon)

## 토론 전문

**윤재석**:

이 도구가 실패하면 무엇을 잃게 됩니까? 저는 그 질문을 붙들고, AI를 들이는 과정에서 생길 수 있는 최악의 경우와 막을 방법을 함께 정리하겠습니다.

**강도율**:

다들 고개를 끄덕일 때가 제일 위험해요. 저는 이 분야의 통념과 홍보 문구, 그리고 아무도 묻지 않은 전제를 하나씩 뒤집어 볼게요.

**주다은**:

실행할 수 있어야 비로소 답입니다. 이번 토론에서는 얼마가 들고, 누가 언제까지 해낼 수 있는지를 함께 따져 보겠습니다.

### 1라운드

**사회자**:

3명의 토론자가 초안을 작성합니다.

**윤재석**:

**이 에이전트에서 가장 큰 위험은 "못 푸는 것"이 아니라 "엉뚱한 곳을 풀어버리는 것"입니다.** 그래서 설계는 성능보다 격리와 범위 통제를 먼저 정해야 합니다. 과장된 걱정일까요? 실제 사례가 있습니다. OpenAI o1 시스템 카드에는 CTF 평가 중 모델이 잘못 설정된 Docker API에 접근해 컨테이너 밖에서 플래그를 얻은 일이 기록돼 있습니다(https://openai.com/index/openai-o1-system-card/). Anthropic도 공격자가 "합법적 모의해킹"이라고 속여 Claude Code를 실제 침투에 쓴 사례를 공개했습니다(https://www.anthropic.com/news/disrupting-AI-espionage). 목적이 선량해도 도구의 권한은 가리지 않습니다. 그러니 실행 환경부터 이렇게 잡으시길 권합니다. - **격리**: 문제마다 1회용 VM이나 gVisor/Firecracker 같은 샌드박스를 쓰고, 호스트 소켓·자격증명·홈 디렉터리는 붙이지 않습니다. - **네트워크**: 기본은 차단입니다.

**윤재석**:

출구는 대회 서버 IP·포트 허용목록으로만 엽니다. - **자원 상한**: CPU·시간·토큰 한도를 두고, 한도를 넘으면 자동 종료합니다. 무한 brute-force나 반복 루프로 생기는 비용 폭주를 막는 장치입니다.

**윤재석**:

**두 번째 위험은 문제 파일 자체가 공격 표면이라는 점입니다.** 바이너리 문자열, 웹 응답, 포렌식 이미지 속에 "이전 지시를 무시하고 ~를 실행하라"는 문장이 들어 있다면 어떻게 될까요? OWASP는 LLM 애플리케이션 위험 1위로 프롬프트 주입을, 상위 항목으로 과도한 권한(Excessive Agency)을 꼽습니다(https://genai.owasp.org/llm-top-10/). 차단 장치는 이렇습니다.
- 도구 출력은 모두 '데이터'로 태깅하고, 그 안의 지시는 따르지 않도록 시스템 프롬프트와 정책으로 분리합니다.
- 파괴적이거나 외부로 나가는 명령(rm, curl 외부 전송, 대상 밖 스캔)은 사람이 승인해야 실행되게 합니다.
- 모든 명령과 응답은 변경 불가 로그로 남깁니다. 사고가 나면 재현할 수 있어야 하기 때문입니다.

**윤재석**:

도구 연동은 분야별 최소 권한 래퍼로 묶는 편이 좋습니다. 디버거(gdb/pwntools), 디컴파일러(Ghidra headless), 웹 프록시, 포렌식(volatility, binwalk), 암호(SageMath)를 각각 따로 두는 식입니다. 대화형 도구를 붙였을 때 해결률이 오른다는 근거도 있습니다(EnIGMA, https://arxiv.org/abs/2409.16165).

**윤재석**:

**세 번째 위험은 환각입니다. 그럴듯한 오답이 속도를 오히려 깎아 먹습니다.** "플래그를 찾았다"는 말을 무엇으로 검증하시겠습니까? Cybench 결과를 보면, 사람이 오래 걸린 문제일수록 에이전트 성공률이 급락합니다(https://arxiv.org/abs/2408.08926). 모델의 자신감을 그대로 믿으면 안 된다는 뜻입니다. 그래서 다음 세 가지를 요건으로 넣으시길 권합니다. - **검증 루프**: 플래그 형식을 정규식으로 확인하고, 익스플로잇은 실제로 재실행해서 성공을 확인합니다. 암호 문제는 복호 결과를 역검증합니다. 증거가 없으면 '가설'로만 표시합니다. - **지식 구성**: 과거 write-up, CVE, 기법 노트를 RAG로 쓰되 출처와 날짜를 붙입니다. 외부 문서도 주입 경로라는 점을 잊지 않으셔야 합니다. - **평가**: 성공 기준은 NYU CTF Bench나 Cybench 같은 고정 벤치마크로 잽니다. 해결률, 풀이 시간, 오답률, 토큰 비용을 회귀 테스트처럼 매번 측정합니다.

- **범위 고정**: 승인된 대회·연습 환경(대상 목록)이 주어졌을 때만 동작하게 합니다. 의도치 않은 실전 악용을 막는 최소한의 문입니다.

보안은 한 번 갖추고 끝나는 제품이 아니라 과정입니다. 격리, 주입 방어, 검증을 먼저 세워 두시면 속도와 정확도는 그 위에서 마음 놓고 끌어올리실 수 있습니다.

**강도율**:

전제가 ‘에이전트가 풀이 속도와 정확도를 올려 준다’인데, 그 전제부터 최근 CTF·에이전트 사례로 확인하겠습니다.전 분야를 한 에이전트에 묶는 설계는 요건이 아니라 문제 정의의 오류예요. 프레드 브룩스는 본질적 복잡성은 도구가 없애 주지 못하고, 부수적 복잡성만 줄어든다고 봤어요. CTF의 본질은 가설을 버리고 관측을 다시 읽는 일인데, 2026년 리버싱 실패 로그는 학습 편향·관측 과신·계획 고집으로 수렴하고, 포너블에서는 취약점은 거의 찾으면서 ASLR 주소 유출에서 멈추는 간격이 반복돼요(https://www.ieee-security.org/TC/SP2026/downloads/posters/sp2026posters-final21.pdf). 게리 마커스는 2026년 10월, 열린 인터넷 권한을 가진 에이전트는 지시와 무관하게 확률적으로 벗어나며 아직 통제되지 않는다고 썼어요(https://garymarcus.substack.com/p/we-must-recall-open-ended-ai-agents).

**강도율**:

성공 기준을 ‘속도와 정확도’로 두면 벤치마크가 그 기준을 오염시켜요. CTFusion에서 정적 NYU CTF는 약 14.4%, 라이브 CTF는 약 6.3%였고, 웹 검색 에이전트는 공개 라이트업으로 플래그를 가져와 점수가 거의 두 배가 됐어요(https://arxiv.org/html/2605.11504v1). InterCode-CTF 95%는 고교 난이도 포화와 암기 의심이 같이 붙어 있어요(https://ar5iv.labs.arxiv.org/html/2412.02776). 2026년 8월 요인 실험에서는 Kali 환경이 Ubuntu보다 +9.5%p였고, 잘 갖춘 환경에서 자동 프롬프트와 분야 힌트는 오히려 성적을 깎았어요(https://arxiv.org/html/2604.17159v1). 취약점 탐색 200건 추적에서는 토큰을 더 써도 성공이 따라오지 않았고, 병목은 위치 파악과 트리거 설계였어요(https://arxiv.org/abs/2610.11602).

**강도율**:

그래서 요건은 모델 기능 목록이 아니라 제약이에요. 분야마다 격리된 일회용 랩(웹은 브라우저, 포너블은 디버거, 포렌식은 읽기 전용 이미지)과 출구 없는 네트워크, 사람이 다음에 실행할 명령을 승인하는 고리를 두세요. 채점은 공개 라이트업이 없는 당일 문제만 쓰고, 플래그 문자열 암기는 실격으로 보세요. 지식은 위키 덤프보다 실패한 가설과 관측 로그를 남기는 쪽이 본질에 가까워요. 모의해킹 ‘보조’를 실서비스 범위로 여는 순간, 그 에이전트는 학습 도구가 아니에요.

**주다은**:

전 분야를 한 번에 아우르는 에이전트는 접어두고, 이번 분기에는 웹·암호 2개 분야의 '도구 실행 루프'부터 가장 작게 만들어 검증해야 합니다. 처음부터 리버싱과 포너블까지 다 넣겠다며 거대한 지식베이스(RAG)와 멀티 에이전트를 설계하던 보안 연구팀을 본 적이 있습니다. 석 달 내내 인프라와 프롬프트만 고치다 정작 문제는 하나도 못 풀고 API 토큰 비용만 수백만 원을 날렸습니다. 반면 칼리 리눅스(Kali Linux) 컨테이너 하나에 기본 셸 도구만 물려 웹 기출문제 10개부터 돌려본 연구자는 단 이틀 만에 풀이 시간을 절반으로 줄였습니다.

**주다은**:

스탠퍼드대의 [Cybench 연구(arXiv:2408.08926)](https://arxiv.org/abs/2408.08926)와 뉴욕대의 [NYU CTF Bench(arXiv:2406.05590)](https://arxiv.org/abs/2406.05590)가 입증하듯, CTF 에이전트의 성패는 방대한 사전 지식이 아니라 격리된 환경에서 명령어를 실행하고 오류 피드백을 받아 고쳐 나가는 '반복 실행 루프'와 작업 세분화에 달려 있습니다.

**주다은**:

당장 이번 분기에 개인 연구자 1명이 월 10만 원 안팎의 API 비용과 기존 로컬 PC만으로 구현할 수 있는 최소 요건(MVP)은 네 가지입니다. - **실행 환경과 안전장치**: 로컬 Docker 컨테이너([Cybench GitHub](https://github.com/andyzorigin/cybench) 표준 환경)에 문제 서버 외 외부망 통신을 차단하고, 문제당 최대 15턴·토큰 상한($0.50/문제)을 걸어 무한 루프와 과금 폭탄을 막습니다. - **도구 연동**: 연동 난이도가 높은 GUI 리버싱 도구는 미루고, `bash`, `python3`(`pwntools`, `z3-solver`), `curl`, `sqlmap`, `tshark`, `objdump` 같은 표준 CLI 도구만 함수 호출(Tool Calling)로 가볍게 붙입니다. - **지식 구성**: 유지보수에 시간이 드는 벡터 DB 구축은 빼고, 분야별 핵심 체크리스트와 대표 익스플로잇 템플릿만 시스템 프롬프트에 넣는 방식으로 학습과 전환 시간을 아낍니다.

**주다은**:

- **성과 지표와 시범 범위**: [NYU CTF Bench 자동화 프레임워크](https://github.com/NYU-LLM-CTF/llm_ctf_automation)에서 웹·암호 기출 20문제를 시범 범위로 삼아 '문제당 평균 토큰 비용', '플래그 획득 소요 시간', '1회 시도 성공률(Pass@1)' 세 가지만 측정합니다.

**주다은**:

오늘 당장 오픈소스 벤치마크 컨테이너 하나를 띄우고 상용 LLM API를 연결해 기출문제 5개만 돌려보시기 바랍니다. 반나절이면 구축이 끝나고, 문제당 수백 원의 비용으로 에이전트가 어디서 막히는지 즉각적인 피드백을 얻을 수 있습니다. 작은 범위에서 풀이 속도가 오르는 것을 눈으로 확인한 뒤에 기드라(Ghidra) 헤드리스 연동이나 포너블 자동 디버깅으로 넓혀도 결코 늦지 않습니다. 가장 작은 실험이 가장 빠른 성장을 만드니, 가벼운 첫걸음부터 힘차게 떼어 보십시오.

**사회자**:

📊 초안 라운드 현황 — 🛡 안전장치 우선 2명 : 1명 🚀 기능 우선
안전장치 강조와 MVP 구축 대립

### 2라운드

**사회자**:

최종 라운드 — 토론자들이 수정안을 제출하고 투표합니다.

**윤재석**:

**최종 수정안의 요지는 이렇습니다. 격리 경계 안에서는 에이전트를 끝까지 자율로 풀어 주고, 경계를 넘는 순간에만 사람이 막아서야 합니다.** 앞서 저는 파괴적 명령마다 사람 승인을 두자고 했는데, 여기서 입장을 고칩니다. 성공 기준이 풀이 속도라면, 버리는 VM 안의 `rm`까지 승인받는 구조는 정작 지켜야 할 것은 지키지 못한 채 속도만 깎습니다. 그렇다면 무엇을 지켜야 할까요? o1 사례에서 사고가 난 곳은 명령의 종류가 아니라 잘못 노출된 Docker API, 곧 경계였습니다. 그래서 요건을 이렇게 다시 세웁니다. 문제마다 1회용 샌드박스를 쓰고 호스트 소켓과 자격증명은 붙이지 않습니다. 출구는 대회 IP 허용목록으로만 엽니다. 그러면 샌드박스 안에서는 승인 없이 마음껏 돌게 두고, 허용목록 밖으로 나가는 통신이나 대상 밖 스캔, 마운트 변경 같은 경계 이탈 시도만 차단·승인 대상으로 둘 수 있습니다. 자원 상한과 변경 불가 로그는 그대로 둡니다.

**윤재석**:

**두 번째로, 프롬프트 주입 방어는 시스템 프롬프트에 기대지 말고 권한 구조로 걸어야 합니다.** 도구 출력을 '데이터'로 태깅하라고 말씀드렸지만, 모델이 그 구분을 늘 지킨다고 믿으실 수 있습니까? OWASP가 프롬프트 주입과 과도한 권한(Excessive Agency)을 나란히 상위에 둔 이유가 여기 있습니다. 주입은 완전히 막지 못한다고 가정하고, 주입이 성공해도 할 수 있는 일이 없게 만드는 편이 현실적입니다. 분야별 래퍼(gdb/pwntools, Ghidra headless, volatility, SageMath)는 각자 필요한 권한만 갖게 하고, RAG로 들여오는 write-up도 같은 '비신뢰 데이터' 등급으로 다룹니다. 이 둘을 지키면 첫 번째 경계 설계와 맞물려, 주입이 일어나도 피해가 샌드박스 안에서 끝납니다.

**윤재석**:

**세 번째로, 검증 루프는 안전장치이면서 그 자체로 속도 장치입니다.** Cybench에서 어려운 문제일수록 성공률이 급락한 것은 모델이 그럴듯한 오답에 오래 매달린다는 뜻이기도 합니다. 플래그 형식을 확인하고, 익스플로잇을 재실행하고, 복호 결과를 역검증하는 단계를 거치면 틀린 길을 일찍 끊을 수 있습니다. 증거가 없는 결과는 '가설'로만 표시합니다. 이 효과가 실제로 나는지는 고정 벤치마크에서 해결률·시간·오답률·비용을 매번 회귀 측정해서 확인합니다. 결국 경계는 단단하게, 안쪽은 자유롭게, 결과는 증거로 판정하는 것이 이 질문에 대한 제 최종 답입니다.

**주다은**:

이번 분기에는 웹·암호 2개 분야의 CLI 실행 루프로 범위를 좁혀 최소 비용으로 즉각적인 풀이 성과부터 검증해야 합니다. 현장에서 개인 연구자가 처음부터 전 분야 자동화를 욕심내다 환경 설정의 늪에 빠져 중도 포기하는 경우를 숱하게 보았습니다. 반면 목표를 좁혀 첫 주에 기출문제 하나를 풀어낸 분은 그 작은 성공을 발판 삼아 끝내 전 분야로 도구를 넓혀 냈습니다.

**주다은**:

최종안의 핵심 근거는 세 가지로 압축됩니다. 첫째, Cybench와 NYU CTF Bench가 증명하듯 풀이 성패는 거대한 사전 지식 DB가 아니라 `bash`와 `python3` 등 표준 CLI 도구를 실행하며 오류를 고치는 반복 루프에 달려 있어 구축 낭비를 덜어냅니다. 둘째, 격리된 로컬 Docker 컨테이너에 외부망 차단과 문제당 15턴·$0.50 상한선을 걸면 개인 PC와 월 10만 원 안팎의 예산만으로 과금 위험 없이 안전하게 실험할 수 있습니다. 셋째, 기출 20문제를 대상으로 Pass@1과 소요 시간, 토큰 비용만 측정하면 반나절 만에 에이전트의 병목을 눈으로 확인하고 다음 단계를 결정할 수 있습니다.

거창한 설계도 대신 오늘 당장 컨테이너 하나를 띄워 기출문제 5개부터 가볍게 돌려보시기 바랍니다. 실패하는 로그 하나하나가 가장 값진 설계 지침이 되어 줄 것입니다. 작은 실험으로 손에 잡히는 성취를 확인하며 한 걸음씩 단단하게 나아가시길 진심으로 응원합니다.

**강도율**:

살 요건은 일회용 랩 하나예요. 프레드 브룩스는 도구가 줄이는 건 부수적 복잡성뿐이라고 봤고, 환경이 점수를 민 결과는 딱 그 자리예요. 웹·포너블·포렌식을 한 에이전트에 묶는 기능 목록은 가설을 버리는 본질을 도구 쇼핑으로 바꿔 버려요.

채점을 플래그 속도로 두면 이미 깨져요. 공개 풀이가 점수를 부풀렸고, 랩이 갖춰진 뒤에 힌트와 자동 프롬프트는 성적을 깎았어요. 게리 마커스는 열린 권한의 에이전트가 지시 밖으로 샌다고 했으니, 다음 명령의 승인은 사람 쪽에 고정해요.

수정안은 세 가지예요. 분야마다 출구 없는 일회용 랩, 라이트업 없는 문제만으로 채점, 기억은 실패한 가설 로그. 실서비스를 두드리는 모의해킹 보조는 이 설계에서 빼요.

**사회자**:

📊 결선 라운드 현황 — 🛡 안전장치 우선 2명 : 1명 🚀 기능 우선
A편은 격리와 통제, B편은 빠른 실행 중심

**사회자**:

⚖️ 리스크 재검토 — 이 결론은 샌드박스와 IP 허용목록이 제대로 작동한다고 전제하지만, 그 전제가 깨질 때의 위험을 충분히 다루지 않았습니다. 첫째, 허용목록은 '대회 IP'만 열어도 같은 서버나 공유 인프라에 있는 다른 참가자·제3자 서비스에 닿을 수 있고, DNS 터널링이나 허용된 대상 자체를 통한 우회 유출은 막지 못합니다. 그래서 승인 없이 끝까지 자율로 돌리는 구조는 경계가 한 번만 뚫려도 피해를 막을 수단이 사라집니다. 둘째, 에이전트가 '대상 밖 스캔'인지 아닌지 스스로 판단하게 하면 안 됩니다. 이 판정은 모델이 아니라 네트워크 계층에서 강제해야 합니다. 셋째, 결론은 실제 대회 규정(자동화 도구·AI 사용 허용 여부, 비공개 문제의 외부 모델 API 전송 가능 여부)과 문제 데이터가 외부로 나가는 경로를 다루지 않았습니다. 마지막으로, 검증 루프가 속도를 높인다는 주장은 아직 가설일 뿐이어서 벤치마크로 확인해야 하고, 플래그 형식이 맞아도 정답이라는 보장은 없습니다.
