← 최신 논문
💻 computer science

Persistent Human Feedback, LLMs, and Static Analyzers for Secure Code Generation and Vulnerability Detection

이 논문은 CodeQL 및 Semgrep과 같은 정적 분석 도구가 LLM이 생성한 코드에 대해 인간이 검증한 정답(ground truth)과 비교했을 때 상당한 불일치를 보인다는 점을 입증하며, 이를 통해 안전한 코드 생성 및 취약점 탐지를 향상시키기 위해 지속적인 인간 피드백을 동적 검색 증강 생성 파이프라인에 통합하는 제안된 프레임워크를 동기 부여한다.

원저자: Ehsan Firouzi, Mohammad Ghafari

게시일 2026-02-06
📖 3 분 읽기☕ 가벼운 읽기

원저자: Ehsan Firouzi, Mohammad Ghafari

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 매우 유능하고 빠르지만 경험은 부족한 견습 요리사(LLM)를 고용하여 복잡한 요리를 만들게 한다고 상상해 보세요. 당신은 음식이 먹기에 안전하기를(보안 코드) 원하므로, 요리사에게 요리를 하게 한 뒤 규칙서와 대조하여 검사하도록 요청합니다.

다음은 연구자들이 발견한 내용과 이를 해결하기 위해 제안하는 방안을 쉬운 비유를 통해 설명한 이야기입니다.

1. 문제점: "규칙서" vs "전문가"

코딩의 세계에는 레시피가 안전한지 확인하는 두 가지 주요 방법이 있습니다:

  • 규칙서 (정적 분석 도구): CodeQL이나 Semgrep 같은 도구는 자동 맞춤법 검사기나 영양 성분 표시 스캐너와 같습니다. 이들은 알려진 위험한 재료(취약점)를 스캔합니다.
  • 전문가 셰프 (인간의 피드백): 요리를 직접 맛보고 맥락을 이해하며, 단순히 재료의 라벨이 안전해 보인다고 해서 그것이 특정 방식으로 섞였을 때 독이 될 수 있다는 사실까지 아는 실제 사람입니다.

연구 내용:
연구자들은 AI 셰프에게 안전하게 설계된 1,080개의 서로 다른 요리(코드 샘로)를 만들도록 요청했습니다. 그 후 인간 전문가가 모든 요리를 일일이 맛보며 "진실(Truth)"을 만들었습니다.

  • 진실: 실제로 안전한 요리는 61%였습니다.
  • 규칙서의 판결:
    • Semgrep은 60%가 안전하다고 말했습니다. (서류상으로는 좋아 보입니다!)
    • CodeQL은 80%가 안전하다고 말했습니다. (이것은 훨씬 더 좋아 보입니다!)

반전:
연구자들이 개별 요리를 조사했을 때, 규칙서는 종종 틀렸습니다.

  • Semgrep은 인간 전문가와 **65%**의 경우에만 일치했습니다.
  • CodeQL은 **61%**의 경우에만 일치했습니다.

비유:
건물에 들어오는 사람들을 검사하는 보안 요원(도구)을 상상해 보세요.

  • 보안 요원은 멋진 정장을 입고 있다는 이유로 위험한 사람을 들여보낼 수도 있습니다 (오탐 - False Negative).
  • 또는, 가방이 수상해 보인다는 이유로 무해한 사람을 막아 세울 수도 있습니다 (미탐 - False Positive).

이 논문은 자동화된 도구(정적 분석기)에만 의존하는 것은 위험하다고 주장합니다. 도구가 "평균" 수치는 맞출지 몰지라도, 특정 결정적인 사례에서는 실수를 저지르기 때문입니다. 우리는 인간 전문가가 개입해야 합니다.

2. 현재 연구의 공백

연구자들은 AI와 보안에 관한 수백 개의 다른 연구들을 살펴보았습니다. 그들은 다음과 같은 패턴을 발견했습니다:

  • 언어 편향: 대부분의 연구는 오직 Python(요리 레시피용)이나 C/C++(엔진 구축용)에서만 AI를 테스트합니다. 다른 언어에 대해서는 거의 테스트하지 않습니다.
  • 도구 의존성: 거의 모든 이들이 "규칙서"(정적 도구)를 사용하여 AI를 채점합니다. 실제로 인간이 요리를 맛보는 연구는 매우 드뭅니다.
  • "기억" 문제: 인간 전문가가 실수를 잡아내더라도, 그것은 해당 요리 하나에 대해서만 수정될 뿐입니다. 전문가가 떠나면 AI는 그 교훈을 잊어버립니다. 다음에 유사한 요리를 할 때, AI는 똑같은 실수를 반복합니다.

3. 해결책: "스마트 라이브러리" 프레임워크

저자들은 Human-in-the-Loop (HIL) 프레임워크라고 불리는 새로운 작업 방식을 제 제안합니다. 이것은 AI 셰프에게 절대 잊지 않는 스마트 라이브러리를 주는 것과 같습니다.

새로운 시스템은 다음과 같이 작동합니다:

  1. 프롬프트 에이전트 (주문받는 사람): 당신이 AI에게 요리를 요청하면, 이 에이전트는 먼저 스마트 라이브러리를 확인합니다. "우리가 이 요리를 전에 해본 적이 있는가? 인간 전문가가 이 특정 재료에 대해 뭐라고 했는가?"를 묻습니다. 그리고 그 조언을 셰프의 지침에 추가합니다.
  2. 보안 에이전트 (첫 번째 맛보기): AI가 요리를 합니다. 보안 에이전트(규칙서)가 먼저 이를 스캔합니다.
  3. 휴먼 에이전트 (헤드 셰프): 이것이 핵심적인 단계입니다. 인간 전문가가 보안 에이전트의 보고서를 검토합니다.
    • 만약 보안 에이전트가 "안전"하다고 했으나 인간이 "위험"하다고 판단하면, 인간이 이를 수정합니다.
    • 마법 같은 단계: 인간의 피드백은 단 한 번의 수정으로 끝나지 않습니다. 이는 스마트 라이브러리에 영구적으로 저장됩니다.
  4. 신뢰 점수 (Trust Score): 라이브러리의 모든 조언이 동일한 가치를 갖는 것은 아닙니다.
    • 두 명의 전문가가 특정 조언에 동의하면, 높은 "신뢰 점수"를 받습니다.
    • 과거에 해당 조언이 성공적으로 많이 사용되었다면, 점수가 올라갑니다.
    • 새로운 조언은 두 명의 전문가가 승인할 때까지 "대기 구역"에서 기다립니다. 이는 잘못된 조언(또는 "오염된" 조언)이 라이브러리에 들어오는 것을 방지합니다.

4. 이것이 왜 중요한가

논문은 우리가 자동화된 도구(규칙서)가 AI가 생성한 코드가 안전한지 알려준다고 해서 그대로 믿을 수 없다고 결론짓습니다. 도구들은 세부 사항에서 너무 자주 틀리기 때문입니다.

대신, 우리는 다음과 같은 시스템이 필요합니다:

  • 인간이 최종 심판자가 됩니다.
  • 인간의 교훈은 영구적으로 저장됩니다.
  • AI는 과거의 인간 수정 사항으로부터 학습하여 똑같은 실수를 두 번 하지 않습니다.

요약하자면, AI는 빠르고 도구는 스캔을 잘하지만, 맥락을 진정으로 이해하는 것은 인간 전문가뿐입니다. 인간 전문가가 하는 말을 기억하는 시스템을 구축함으로써, 우리는 AI가 생성한 코드를 훨씬 더 안전하게 만들 수 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →