Evaluating LLMs for Real-World Web Vulnerability Detection
이 논문은 워드프레스 플러그인의 실제 웹 취약점을 탐지하는 능력을 바탕으로 6개의 프런티어 및 오픈 웨이트 대규모 언어 모델을 벤치마킹하였으며, 모든 모델이 유효한 문제를 식별할 수는 있으나 탐지율은 모델과 프롬프트 설계에 따라 크게 달라지며, 어떤 모델도 반복적인 실행 과정에서 일관된 보고나 완벽한 정확도를 달성하지 못했다는 점을 밝혀냈다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신에게 웹사이트를 구축하기 위한 방대한 양의 디지털 "설명서"(코드) 라이브러리가 있다고 상상해 보십시오. 이 설명서 중 일부에는 숨겨진 함정이 있습니다. 예를 들어, 도둑(해커)들이 가득한 지하실로 이어지는 헐거운 바닥판 같은 것 말입니다. 이러한 함정들을 **취약점(vulnerabilities)**이라고 부릅니다.
오랫동안 이러한 함정을 찾는 일은 보안 전문가 팀이 모든 설명서의 모든 페이지를 일일이 직접 읽어야 하는 작업이었습니다. 하지만 최근에 새로운 종류의 "슈퍼 독자"가 등장했습니다: 바로 **대규모 언어 모델(LLM)**입니다. 이들은 인간처럼 코드를 읽고 이해할 수 있는 AI 시스템입니다.
이 논문은 본질적으로 여섯 가지 서로 다른 "슈퍼 독자"가 워드프레스 웹사이트 플러그인(웹사이트에 추가 기능을 제공하는 애드온)에서 이러한 숨겨진 함정을 얼마나 잘 찾아내는지 테스트한 성적표입니다.
다음은 이들의 실험과 발견을 쉬운 비유를 사용하여 정리한 내용입니다:
1. 설정: "함정 찾기"
연구진은 구체적인 실제 세계의 함정(예를 들어, 데이터베이스가 비밀을 털어놓도록 유도하는 SQL 인젝션, 또는 공공 게시판에 가짜 메모를 삽입하는 크로스 사이트 스크립팅과 같은 것)이 있는 것으로 알려진 네 가지 인기 있는 워드프레스 플러그인을 선정했습니다.
그들은 여섯 가지 서로 다른 AI 모델에게 보안 감사관 역할을 수행하도록 요청했습니다. 그들은 단 한 번만 묻지 않았습니다. 마치 학생에게 3일 연속으로 같은 시험을 치르게 하는 것처럼, AI가 일관성을 보이는지 확인하기 위해 테스트를 세 번 반복했습니다.
또한 질문을 던지는 다양한 방식(프롬프트)도 시도했습니다:
- "게으른" 프롬프트: 단순히 "버그를 찾아줘"라고 말함.
- "일반적인" 프롬프트: "당신은 보안 전문가입니다. 모든 주요 유형의 버그를 찾으세요"라고 말함.
- **"구체적인" 프롬프트: "당신은 보안 전문가입니다. 특히 이 정확한 유형의 버그를 찾으세요"라고 말함.
2. 결과: 누가 테스트를 통과했나?
결과는 인상적인 성공과 좌절스러운 불일치가 뒤섞여 있었습니다.
- 우등생: 한 모델인 Claude Opus 4.6이 가장 뛰어난 성과를 보였습니다. 이 모델은 알려진 함정의 약 **63%**를 찾아냈습니다. 가장 신뢰할 수 있는 "탐정"이었습니다.
- 오픈 소스의 놀라움: 자신의 컴퓨터에서 실행할 수 있는(구독료를 내야 하는 다른 모델들과 달리) MiniMax M2.5라는 모델은 약 **48%**의 함정을 찾아내며 상위 유료 모델들과 대등한 성능을 보여주었습니다. 이는 집에서 만든 음식이 유명 레스토랑의 요리만큼 맛있는 것과 같습니다.
- 고전하는 모델들: 또 다른 오픈 소스 옵션인 Qwen 모델들은 약 **35%**의 함정만을 찾아냈습니다. 절반 이상의 경우를 놓쳤습니다.
핵심 결론: 최고의 AI조차도 약 40%의 함정을 놓쳤습니다. 어떤 단일 AI도 모든 플러그인에서 모든 함정을 찾아내지는 못했습니다.
3. "마법의 질문" (프롬프트 설계)
연구진은 어떤 AI를 사용하느냐보다 어떻게 질문하느냐가 더 중요하다는 것을 발견했습니다.
- 구체적인 것이 더 좋다: 만약 AI에게 "SQL 인젝션을 구체적으로 찾아봐"라고 말했다면, "뭐가 잘못됐는지 찾아봐"라고 했을 때보다 더 많은 버그를 찾아냈습니다. 이는 금속 탐지 사용자에게 "금속을 찾아라"라고 하기보다 "금화(gold coins)를 찾아라"라고 말하는 것과 같습니다.
- 복잡성은 도움이 되지 않는다: AI에게 길고 복잡한 단계별 지침서를 주는 것이 AI를 더 똑똑하게 만들지는 않았습니다. 단순하고 직접적인 지시가 똑같이 효과적이었습니다.
4. "동전 던지기" 문제 (일관성)
이것은 가장 놀라운 발견이었습니다. AI는 신뢰할 수 없었습니다.
동일한 AI에게 동일한 코드에 대해 같은 질문을 세 번 던졌을 때, 매번 다른 답을 내놓았습니다.
- 때로는 "함정을 찾았습니다!"라고 말합니다.
- 다음번에는 "모든 것이 안전해 보입니다"라고 말합니다.
- 세 번째에는 "함정을 찾았지만, 다른 종류의 함정입니다"라고 말할 수도 있습니다.
단 하나의 모델(Gemini)만이 95%의 확률로 일관성을 보였지만, 이 모델은 가장 적은 수의 함정을 찾아낸 모델이기도 했습니다. 즉, 가장 좋은 모델들은 종종 불일치하며, 마치 동전 던지기처럼 작동했습니다. 이는 단 한 번의 스캔만으로는 신뢰할 수 없으며, 확실히 하기 위해 스캔을 여러 번 실행해야 함을 의미합니다.
5. "유령 함정" (모두가 놓친 것)
여섯 가지 AI 모두가 "저장형 크로스 사이트 스크립팅(Stored Cross-Site Scripting)"이라는 까다로운 함정이 있는 특정 플러그인을 하나도 찾아내지 못했습니다. 90번의 시도 후에도 마찬가지였습니다.
왜일까요? 그 함정은 기본적으로 켜져 있지 않은 매우 특정한 설정 뒤에 숨겨져 있었기 때문입니다. AI들은 "설정이 꺼져 있으니, 이 코드는 중요하지 않다"라고 가정하고 건너뛰었습니다. 이는 AI가 논리적인 가정을 했으나, 그 가정이 틀린 경우였습니다.
6. 기존 도구와 비교하면 어떤가?
연구진은 코드를 전통적인 보안 스캐너(특정한 모양에만 반응하는 금속 탐지기와 같은 Semgrep)에 통과시켜 보았습니다.
- 결과: 전통적인 스캐너는 알려진 함정을 단 하나도 찾아내지 못했습니다.
- 교훈: AI는 이러한 특정 실제 세계의 함정을 찾는 데 있어 기존의 도구들보다 훨씬 뛰어났지만, 여전히 일부를 놓쳤습니다.
최종 판결
논문은 AI가 강력한 조수이지만, 인간 보안 전문가를 대체할 수는 없다고 결론짓습니다.
- 효과가 있다: AI는 웹사이트 코드에서 실제 위험한 버그를 찾아낼 수 있습니다.
- 완벽하지 않다: 버그의 절반 정도를 놓치며, 자주 생각을 바꿉니다.
- 사용 방법: 최고의 모델(Claude 등)을 사용하고, 구체적인 질문("SQL 버그를 찾아줘")을 던지며, 테스트를 여러 번 실행할 때 최상의 결과를 얻을 수 있습니다.
- 경고: AI의 보고서를 그대로 믿어서는 안 됩니다. AI는 때때로 "환각(hallucinate)" 현상을 일으켜 존재하지 않는 버그를 만들어내거나 복잡한 함정을 놓칠 수 있으므로, 인간이 반드시 결과를 재확인해야 합니다.
요약하자면, AI는 웹사이트의 갑옷에 난 구멍을 찾는 데 아주 좋은 새로운 손전등이지만, 여전히 사람이 손전등을 들고 그림자를 확인하며 벽이 정말 안전한지 확인해야 합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.