Security in a Workflow: Exploring Role-Based Agentic Architectures for Vulnerability Handling
본 논문은 고립된 LLM 보안 작업과 실제 산업 현장의 관행 사이의 간극을 메우기 위해 Planner, Analyzer, Fixer, Verifier 에이전트로 구성된 역할 기반 에이전트 워크플로를 제안하고 평가하며, 25개의 실제 C/C++ 취약성에 대해 44%의 취약점 탐지 정확도와 19%의 수정 정확도를 입증한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 아주 오래되고 복잡한 집(C 또는 C++로 작성된 소프트웨어 프로그램)을 수리하려고 한다고 상상해 보십시오. 이 집에는 숨겨진 균열과 약점(보안 취약점)이 있습니다. 과거에는 당신이 단 한 명의 매우 똑똑한 탐정(표준 AI)을 고용하여 집을 조사하고, 균열을 찾아내어 한꺼번에 모두 때우려고 했을 수도 있습니다. 때때로 이 탐정은 제대로 해내기도 하지만, 종종 너무 많은 정보에 압도당하거나, 미세한 단서를 놓치거나, 엉뚱한 벽을 보수하기도 합니다.
이 논문은 다른 접근 방식을 제안합니다. 바로 한 명의 외로운 탐정 대신 전문화된 에이전트 팀을 고용하는 것입니다. 이들은 각자 특정한 직무를 가진 엄격한 조립 라인(assembly line) 방식으로 협력합니다.
다음은 논문의 연구 결과를 바탕으로 이 팀이 어떻게 작동하는지에 대한 설명입니다.
1. 팀의 역할 (에이전트 워크플로우)
연구진은 건설 현장과 유사하게 네 가지 뚜렷한 역할을 가진 디지털 팀을 구성했습니다.
- 플래너 (현장 소장): 아무도 땅을 파기 전에, 이 에이전트는 설계도(코드)를 스캔하여 명백한 문제 지점을 포착합니다. 이 에이전트는 무언가를 직접 고치지는 않으며, 그저 "뒷문을 확인하라"라거나 "기초를 살펴봐라"와 같이 팀이 주의를 기울여야 할 곳을 가리키기만 합니다.
- 주요 발견: 연구진은 이 "현장 소장" 역할을 갖추는 것이 매우 중요하다는 것을 발견했습니다. 이 역할을 제거했을 때, 문제를 찾는 팀의 능력은 거의 절반으로 떨어졌습니다.
- 애널라이저 (검사관): 이들이 메인 탐정입니다. 이들은 플래너로부터 받은 단서와 원본 코드를 바탕으로 무엇이 고장 났는지, 왜 고장 났는지, 그리고 도둑이 어떻게 침입할 수 있는지 파악합니다.
- 주적인 발견: 연구진은 이 에이전트에게 균열을 찾는 데 도움을 줄 첨단 금속 탐지기(CodeQL이라는 도구)를 쥐여주었습니다. 놀랍게도 금속 탐지기가 항상 도움이 된 것은 아니었습니다. 때때로 이 도구는 너무 많은 오경보를 울려 검사관을 혼란스럽게 만들었습니다. 가장 좋은 결과는 외부 도구에 크게 의존하기보다 AI 모델 자체가 심층적인 사고를 수행할 때 나타났습니다.
- 픽서 (수리공): 검사관이 "문틀이 썩었다"라고 말하면, 픽서는 새로운 문을 만드는 작업을 시도합니다. 이들은 구멍을 메우기 위한 코드를 작성합니다.
- 주요 발견: 이것이 가장 어려운 작업이었습니다. 팀은 문제를 찾는 데는 어느 정도 능숙했지만(정확도 약 44%), 실제로 이를 올바르게 고치는 것(정확도 약 19%)은 훨씬 더 어려웠습니다. 종종 픽서는 구멍은 메웠지만 근처의 다른 것을 망가뜨리거나 불필요한 부품을 추가하기도 했습니다.
- 베리파이어 (안전 검사관): 수리가 완료된 후, 이 에이전트는 작업 내용을 재검토합니다. 이들은 다음과 같이 질문합니다. "실제로 부식된 부분을 고쳤는가? 집을 더 안전하게 만들었는가, 아니면 단순히 균열 위에 페인트만 덧칠한 것인가?"
- 주요 발견: 이 역할은 꽤 유능하여 수리 과정에서의 오류를 약 69% 잡아냈습니다.
2. 실험
연구진은 이 팀을 인기 있는 C/C++ 소프트웨어(안전이 중요한 시스템에서 사용되는 유형)에서 발견된 25개의 실제 보안 결함에 대해 테스트했습니다. 이 팀을 구동하기 위해 세 가지 다른 "두뇌"(AI 모델)를 사용했습니다.
연구진은 두 가지 버전의 팀을 비교했습니다:
- 팀 A: 서로 소통하는 네 가지 역할로만 구성된 팀.
- 팀 B: 동일한 네 가지 역할이지만, 검사관에게 균열을 찾는 데 도움을 줄 CodeQL 금속 탐지기를 제공한 팀.
3. 발견한 내용
- "관리자"가 가장 중요하다: 프로세스에서 가장 중요한 부분은 플래너였습니다. 팀을 안내할 관리자가 없으면 AI는 길을 잃었습니다. 관리자와 함께했을 때, 팀은 버그를 찾는 데 있어 최고 수준의 상용 AI(GPT-5.5)만큼의 성능을 보여주었습니다.
- 도구는 마법이 아니다: 검사관에게 화려한 도구(CodeQL)를 주는 것이 자동으로 성능을 높여주지는 않았습니다. 사실, AI가 도구의 데이터를 올바르게 해석하는 데 어려움을 겪었기 때문에 상황을 더 악화시키기도 했습니다. 이 논문은 저수준 컴퓨터 언어(C와 같은)의 경우, AI가 스스로 단서의 우선순위를 정을 수 있을 만큼 똑똑해야 한다고 제안합니다.
- 찾는 것 vs 고치는 것: AI는 보안 구멍을 찾는 것이 그것을 고치는 것보다 훨씬 쉽습니다. 팀은 버그를 약 44%의 확률로 찾아냈지만, 이를 올바르게 고친 경우는 19%에 불과했습니다.
- 여전히 인간의 손길이 필요하다: "수리공"(픽서)이 자주 실수를 하거나 불필요한 변경을 가했기 때문에, 이 논문은 실제 보안 환경에서는 AI가 모든 것을 주도하게 해서는 안 된다고 결론짓습니다. AI의 뒤에서 지켜보며 수리 내용을 확인하고 집이 정말 안전한지 확인할 인간 전문가가 반드시 필요합니다.
핵심 요약
이 논문은 AI가 이제 스스로 소프트웨어를 완벽하게 보호할 수 있다고 주장하는 것이 아닙니다. 대신, AI를 명확한 역할을 가진 구조화된 팀으로 조직하는 것이 하나의 AI가 모든 것을 처리하게 하는 것보다 더 나은 방식임을 보여줍니다. 하지만 훌륭한 팀을 갖추더라도 "고치는" 부분은 여전히 까다로우며, 인간 전문가의 검증 작업은 여전히 필수적입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.