최근 대규모 언어모델(LLM) 기반의 인공지능(AI) 보안 도구들이 코드 취약점을 찾아내는 데 활용되고 있지만, 그 실효성에 대한 냉정한 평가가 나왔습니다. 리눅스 커널 개발의 핵심 인물인 그렉 크로아-하트만(Greg Kroah-Hartman)은 한 발표에서 LLM이 찾아낸 취약점 보고서의 상당수가 실제 버그가 아니거나 이미 수정된 문제였다고 밝히며, AI 도구의 성과와 한계를 명확히 지적했습니다.
크로아-하트만은 앤트로픽(Anthropic)의 AI 모델 '미토스(Mythos)'가 리눅스 커널에서 79개의 취약점을 발견했다고 주장한 사례를 분석했습니다. 검토 결과, 이 중 24개는 구체적인 정보가 없는 충돌 보고였고, 14개는 버그가 아니었으며, 3개는 지어낸 데이터였습니다. 15개는 이미 최신 버전에서 수정된 문제였고, 최종적으로 실제 수정이 필요하다고 판단된 버그는 10개에 불과했습니다. 이는 리눅스 커널 개발자들이 한 시간 동안 처리하는 패치량과 비슷한 수준으로, LLM의 발견이 혁신적이라고 보기는 어렵다는 평가입니다. 그는 LLM이 과거 수정 패턴을 찾아 비슷한 버그를 발견하는 방식은 코시넬(Coccinelle) 같은 기존 도구들이 오랫동안 수행해 온 접근 방식과 크게 다르지 않다고 설명했습니다.
그럼에도 불구하고 LLM 기반 도구를 완전히 배제할 필요는 없습니다. 크로아-하트만은 LLM이 실제 버그를 찾고 재현 환경 및 수정안을 만드는 데 도움을 줄 수 있으며, 퍼징(fuzzing) 도구와 달리 코드 분석을 통해 다양한 경로의 문제를 탐색할 수 있다고 언급했습니다. 중요한 것은 LLM이 제시하는 그럴듯한 설명을 맹신하기보다, 코드, 재현 절차, 테스트 결과를 직접 확인하고, 보고자에게 수정 패치를 요구하여 검증 부담을 줄이는 유지보수자의 역할입니다. 또한, 작은 버그 여러 개가 연결되어 심각한 공격으로 이어질 수 있으므로, 사소해 보이는 수정까지 꾸준히 적용하는 것이 중요하다고 강조했습니다.
이러한 상황은 소프트웨어 보안 유지보수 방식에 대한 근본적인 질문을 던집니다. CVE(Common Vulnerabilities and Exposures) 숫자가 늘어나는 것보다 실제 공격 가능성이 있는 문제를 식별하고 해결하는 것이 중요하며, 이를 위해선 사람의 전문적인 판단과 검토가 필수적입니다. 리눅스 커널 보안팀은 위협 모델을 문서화하고, 보고자에게 초기 수정 패치 제출을 요구하며, 로컬 모델과 에이전트 도구를 활용해 비공개 정보를 보호하는 등 유지보수 부담을 줄이기 위한 노력을 기울이고 있습니다. 결국 AI 도구는 보조적인 역할을 할 뿐, 숙련된 개발자와 유지보수자의 꼼꼼한 검토와 지속적인 개선 노력이 소프트웨어 시스템의 보안과 안정성을 지키는 핵심이라는 점을 다시 한번 상기시켜 줍니다.