[Lobsters 요약] LLM 시대에 재조명되는 autofz: 퍼징의 제어 평면 접근법
3
설명
2023년 USENIX Security에 발표된 autofz는 기존 퍼저들을 위한 런타임 오케스트레이터입니다.
퍼징 연구의 맥락에서 시작되었지만, autofz의 핵심 질문은 "다수의 불완전한 작업자들에게 고정된 예산을 어떻게 분배할 것인가?"로, 이는 LLM 에이전트 시스템에도 적용됩니다.
이 글은 autofz의 제어 평면 접근 방식이 어떻게 현대의 복잡한 시스템 설계에 영감을 주는지 탐구합니다.
### 배경 설명
소프트웨어 보안 분야에서 퍼징(Fuzzing)은 자동화된 취약점 발견 기법으로 오랜 기간 중요한 역할을 해왔습니다. 다양한 퍼저들이 개발되었지만, 각 퍼저는 고유한 강점과 약점을 가지며, 특정 대상이나 상황에 따라 성능이 크게 달라지는 문제가 있었습니다. 예를 들어, 2023년 USENIX Security에 발표된 autofz 논문에서 언급된 바와 같이, LearnAFL은 ffmpeg에서는 뛰어난 성능을 보였지만 exiv2에서는 6위로 떨어졌으며, RedQueen은 exiv2에서 Radamsa보다 10배 이상 뛰어난 성능을 보이기도 했습니다. 이러한 대상 민감성 때문에 "가장 좋은 퍼저 하나만 사용하면 된다"는 단순한 접근 방식은 실질적인 해결책이 되지 못했습니다.
또한, 퍼징 캠페인 중에도 최적의 퍼저는 변할 수 있습니다. 논문에서 '랭크 역전(rank inversion)'이라고 명명된 현상으로, 초기에는 Angora가 exiv2에서 좋은 성과를 보였지만 시간이 지나면서 LAF-Intel과 RedQueen이 이를 따라잡았습니다. 따라서 캠페인 초기에 고정된 결정을 내리는 것은 비효율적입니다. 더불어, 모든 퍼저에게 동일한 리소스를 할당하는 것은 현재 유용하지 않은 작업자에 예산을 낭비하는 결과를 초래할 수 있습니다. 마지막으로, 퍼징의 무작위성은 오프라인 결정을 취약하게 만듭니다. 특정 워크로드에서 성공적인 조합을 찾더라도, 다음 작업이나 다른 실행에서는 재현되지 않을 수 있습니다. 이러한 문제들은 사용자가 직접 최적의 퍼저 조합을 선택하고 튜닝해야 하는 부담으로 이어졌습니다. autofz는 이러한 '선택의 부담'을 시스템이 자동화하도록 설계되었습니다.
### autofz의 작동 방식: 제어 평면의 도입
autofz는 새로운 퍼징 알고리즘을 구현하는 대신, 기존 퍼저들을 실행하고 그 위에 '제어 평면'을 추가하는 방식으로 작동합니다. 이 제어 루프는 준비 단계와 집중 단계로 나뉩니다. 준비 단계에서는 각 퍼저에게 짧고 공정한 실행 기회를 제공하고 진행 상황을 관찰합니다. 퍼저마다 다른 내부 피드백 메커니즘을 사용하지만, autofz는 흥미로운 입력들을 공통된 AFL 비트맵 보기로 매핑하여 런타임 추세를 통합적으로 비교할 수 있게 합니다. 두 번째 단계인 집중 단계에서는 관찰된 추세를 바탕으로 리소스 할당 결정을 내립니다. 특정 퍼저가 두드러지게 앞서 나가면, 다음 예산 창을 해당 퍼저에게 집중할 수 있습니다. 여러 퍼저가 유용해 보이면 리소스를 비례적으로 분배합니다. 시드(seed)는 퍼저 간에 동기화되어 한 작업자의 발견이 다른 작업자의 시작점이 될 수 있습니다. 이 과정은 이전 예산 창에서 가장 좋았던 퍼저가 다음 창에서도 여전히 최고일 것이라는 가정을 하지 않고 반복됩니다. 논문의 Figure 2는 이러한 준비 및 집중 단계의 반복과 리소스 할당 결정을 시각적으로 보여줍니다. autofz의 핵심은 "프로그램당이 아닌, 워크로드당" 결정을 내리는 것입니다. 퍼징이 진행됨에 따라 남은 분기, 유용한 시드, 병목 현상이 변하기 때문에, autofz는 전체 캠페인에 대해 하나의 퍼저 세트에 전념하는 대신 런타임 워크로드에 반응하려고 합니다.
### 결정의 방어력 확보: 프로토타입에서 논문으로
초기 프로토타입은 EnFuzz를 빠르게 능가했지만, 이를 논문으로 만드는 과정은 훨씬 더 오래 걸렸습니다. 리뷰어들은 단순히 "한 번 이기는가?"가 아니라 "스케줄링 결정이 실제로 좋은가?"를 물었습니다. 이를 위해 autofz의 결정을 평가하는 방법이 추가되었습니다. 각 라운드마다 준비 단계 직후의 스냅샷을 여러 번 복원하고, autofz의 리소스 할당을 각기 다른 기본 퍼저에게 전체 집중 단계 예산을 할당하는 합성 결정과 비교했습니다. 이는 동일한 시작 코퍼스와 집중 단계 시간 예산이 주어졌을 때, autofz의 선택적 할당이 명백한 대안과 경쟁력이 있었는지 확인하는 반사실적 질문이었습니다. libarchive에서는 14개 라운드 중 8개에서 1위를 차지했고 평균 순위는 2.64였으며, exiv2에서는 15개 라운드 중 4개에서 1위를 차지하고 평균 순위는 3.5였습니다. 이는 준비 단계에서 관찰된 추세가 다음 집중 단계에도 유용하다는 핵심 주장을 뒷받침하기에 충분했습니다.
하지만 예외적인 경우도 있었습니다. 커버리지가 포화 상태에 이르면 퍼저 선택의 중요성이 줄어들고, 어떤 할당도 큰 진전을 이루기 어렵습니다. exiv2의 4라운드 이후에는 다른 결정으로 인한 커버리지 차이가 미미했으며, 한 후반 라운드에서는 최고와 최악의 결정 간의 비트맵 밀도 차이가 0.07%에 불과했습니다. 퍼징의 무작위성 또한 동일한 스냅샷에서 시작하더라도 노이즈를 추가합니다. 시드 동기화는 다음 추세를 더욱 변화시킬 수 있습니다. 준비 단계에서 가장 강력하지 않았던 퍼저가 다른 퍼저가 입력을 발견하고 공유하여 차단이 해제된 후 더 강력해질 수 있습니다. 이 부분은 데모와 논문 사이의 실제 엔지니어링/연구 격차로 기억됩니다. 프로토타입은 오케스트레이션이 도움이 될 수 있음을 보여주었지만, 논문은 특정 스케줄링 알고리즘이 합리적인 이유, 결정이 신뢰할 수 있는 시점, 그리고 신호가 약해지는 시점을 설명해야 했습니다. 또한 준비 및 집중 단계 주변의 하이퍼파라미터(측정 시간, 조기 종료 시점, 평가에 할당할 예산, 결정 재검토 빈도 등)를 조정해야 했습니다. 이러한 세부 사항은 화려하지 않지만, 메타 퍼저가 실제로 유용한지 아니면 단순히 벤치마크 실행에서 운이 좋았는지 결정합니다.
### 이전 연구와의 비교: 정적 앙상블 vs 런타임 오케스트레이션
autofz는 기존의 퍼징 연구와 비교하여 두 가지 주요 차이점을 가집니다. 첫째, EnFuzz와 같은 기존 협업 퍼징 방식은 여러 퍼저를 앙상블하고 시드를 공유하는 유용한 아이디어를 가지고 있었지만, 리소스 할당은 대부분 정적이었습니다. 즉, 모든 퍼저가 고정된 또는 동등한 리소스를 받는다면, 특정 순간에 어떤 퍼저가 더 많은 CPU를 받을 자격이 있는지에 대한 답을 제공하지 못했습니다. autofz는 시드 동기화의 유용한 부분을 유지하면서 런타임 스케줄링을 추가하여, 퍼저 선택과 리소스 할당을 최우선 문제로 다룹니다.
둘째, CUPID와 같은 다른 연구는 오프라인 분석과 학습 세트를 사용하여 대상 독립적인 퍼저 조합을 예측했습니다. 이는 캠페인 중 선택된 앙상블이 여전히 정적임을 의미합니다. autofz는 이러한 정적 앙상블과 달리, 워크로드 변화에 따라 예산을 받을 자격이 있는 작업자를 반복적으로 결정하는 런타임 오케스트레이션에 중점을 둡니다. 논문의 표 1은 이러한 차이를 명확히 보여줍니다. autofz는 사용자 구성이 아닌 자동화된 퍼저 선택, 런타임에서의 퍼저 전환, 사전 지식이나 대상별 사전 훈련 없이 작동하며, 새로운 퍼저 추가 비용이 낮고 리소스 할당이 동적이며 런타임 워크로드에 적응합니다. 결과적으로 autofz는 12개 벤치마크 중 11개에서 개별 퍼저보다, 20개 벤치마크 중 19개에서 협업 퍼징 접근 방식보다 뛰어난 성능을 보였습니다. UNIFUZZ와 FTS에서는 개별 퍼저보다 평균 152% 더 많은 버그를, UNIFUZZ에서는 협업 퍼징보다 평균 415% 더 많은 버그를 발견했습니다. 이는 단순히 더 많은 퍼저를 실행하는 것이 아니라, 런타임 피드백을 사용하여 어떤 퍼저가 예산을 받을지 결정했기 때문입니다.
### LLM 에이전트 시스템과의 유사성 및 차이점
autofz의 제어 평면 아이디어는 LLM 시대의 에이전트 시스템에도 깊은 관련이 있습니다. LLM 에이전트 시스템에서 작업자는 퍼저, 정적 분석기, 코드 에이전트, 패치 생성기, 검증기 등 다양하며, 공유되는 아티팩트 또한 테스트 케이스, 충돌, PoV, 패치, 노트 등으로 훨씬 풍부합니다. 예산 또한 CPU 시간, 토큰 비용, 응답 지연 시간, 인간의 주의 등 다차원적입니다. autofz의 세계와 CRS/에이전트 보안 시스템의 세계를 비교하면, 퍼저 오케스트레이션의 문제는 에이전트 오케스트레이션 문제와 유사한 구조를 가집니다. 즉, 다수의 이기종 작업자를 고정된 예산 하에 조정하는 것입니다.
그러나 직접적으로 이전되지 않는 부분도 있습니다. autofz는 커버리지 트렌드라는 비교적 저렴하고 공통된 신호를 가졌지만, 에이전트 보안 시스템은 모델의 신뢰도, 정적 분석 경고, 실패한 테스트, 패치 diff 등 자연스럽게 비교하기 어려운 신호를 다룹니다. 따라서 autofz의 교훈은 동일한 스케줄러를 사용하는 것이 아니라, 이기종 작업자들이 제어 평면이 비교할 수 있는 형태로 증거를 노출해야 오케스트레이션이 작동한다는 것입니다. 또한, 단순히 더 많은 에이전트를 추가하는 것이 항상 좋은 것은 아닙니다. 각 추가 에이전트는 측정 비용, 동기화 트래픽, 예산 낭비 가능성을 증가시킵니다. autofz는 이 문제를 해결하기 위해 예산을 유용한 작업자에게 집중시키는 제어 평면의 중요성을 강조했습니다. 이는 LLM 시대의 보안 시스템에서도 마찬가지로, 단순히 많은 에이전트를 투입하는 것이 아니라, 어떤 에이전트가 다음 단계를 담당해야 하는지, 어떤 증거를 공유해야 하는지, 언제 스레드를 포기해야 하는지를 결정하는 제어 평면이 필수적임을 시사합니다.
### 가치와 인사이트
autofz는 퍼징 연구의 맥락에서 시작되었지만, 그 핵심 기여는 '제어 평면'이라는 개념을 통해 복잡한 시스템에서 다수의 이기종 작업자를 효율적으로 관리하는 방법에 대한 근본적인 통찰을 제공했다는 점입니다. 이는 단순히 특정 퍼징 기술의 개선을 넘어, 고정된 예산 하에서 다양한 작업자들의 성능을 동적으로 평가하고 자원을 재분배하는 일반적인 문제 해결 프레임워크를 제시합니다. 특히, 2023년 이후 LLM 기반 에이전트 시스템이 부상하면서, 이러한 '제어 평면'의 중요성은 더욱 커졌습니다. autofz는 퍼징 연구에서 축적된 저비용 피드백 루프 구축, 노이즈 시스템 평가, 작업자 간 증거 공유, 고정 예산 하 도구 비교, 그리고 프로토타입을 신뢰할 수 있는 시스템으로 전환하는 등의 실용적인 교훈을 제공하며, 이는 현대의 복잡한 AI 시스템 설계에 직접적으로 적용될 수 있는 가치를 지닙니다.
### 향후 전망
autofz의 제어 평면 접근 방식은 앞으로도 다양한 분야에서 확장될 가능성이 높습니다. 특히 LLM 에이전트 시스템의 발전과 함께, 에이전트 간의 효율적인 협업 및 자원 할당 문제는 더욱 중요해질 것입니다. BandFuzz와 RCFuzzer와 같이 autofz의 아이디어를 계승한 연구들이 이미 진행 중이며, 이는 다중 에이전트 시스템의 성능 향상에 기여할 것입니다. 또한, autofz가 제시한 '워크로드 기반 동적 자원 할당' 메커니즘은 단순히 CPU 시간뿐만 아니라, 토큰 비용, 응답 지연 시간 등 다양한 제약 조건을 고려하는 방향으로 발전할 수 있습니다. 다만, autofz의 성공 요인이었던 명확한 피드백 신호(예: 커버리지)가 LLM 에이전트 시스템에서는 다루기 어려운 경우가 많다는 점은 앞으로 해결해야 할 과제입니다. 이러한 이기종 작업자들의 증거를 효과적으로 통합하고 비교할 수 있는 새로운 메커니즘 개발이 필요하며, 이는 향후 연구의 중요한 방향이 될 것입니다.
📝 원문 및 참고
- Source: Lobsters
- 토론(Lobsters): [lobste.rs](https://lobste.rs/s/gwxqmh/control_plane_was_point_revisiting)
- 원문: [링크 열기](https://yfu.tw/blog/en/autofz-revisited/)
---
출처: Lobsters · [원문 링크](https://yfu.tw/blog/en/autofz-revisited/)
신고 · 불법·유해·아동 안전(CSAE) 관련 콘텐츠

댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.