대규모 언어 모델로 웹 애플리케이션 신뢰성 자동 평가
초록
본 논문은 대규모 언어 모델(LLM)을 활용해 OWASP 입력 검증 보안 코딩 관행의 준수 여부를 자동으로 판단하고, 이를 계층형 품질 모델과 Logic Score of Preference(LSP) 방식을 결합해 웹 애플리케이션의 신뢰성 점수를 산출하는 방법을 제시한다. 다섯 종류의 최신 LLM에 대해 네 가지 프롬프트 설계(기본, CWE‑예시, 호출 그래프 컨텍스트, 규칙 기반 지시)를 비교 실험했으며, 구조적 컨텍스트가 과도할 경우 노이즈가 발생하고, 명시적 규칙 지시가 정확도와 일관성을 크게 향상시킴을 확인했다. 결과적으로 LLM 기반 평가가 취약 구현과 안전 구현을 구분할 수 있는 신뢰성 점수를 제공함을 입증한다.
상세 분석
이 연구는 웹 애플리케이션 보안 평가에서 ‘신뢰성’이라는 포괄적 개념을 정량화하려는 시도로, 기존의 취약점 탐지 중심 접근법이 놓치는 ‘코딩 관행 준수’를 자동화하는 방법론을 제시한다. 핵심은 OWASP Input Validation 16가지 관행을 기준으로, 각 함수‑코드 조각에 대해 (1) 적용 가능성(applicability)과 (2) 준수 여부(adherence)를 판단하도록 LLM에 프롬프트를 제공하는 것이다. 프롬프트 설계는 네 단계로 확장되었다. P1은 관행 명칭만 제시하는 제로샷 베이스라인이며, P2는 CWE 번호와 부정 예시를 추가해 의미적 힌트를 제공한다. P3는 함수 호출 그래프에서 추출한 상위·하위 함수 이름을 삽입해 구조적 컨텍스트를 강화했지만, 실험 결과 과도한 컨텍스트가 모델의 집중을 흐트러뜨려 정확도가 떨어지는 현상이 관찰되었다. 마지막으로 P4는 “관행을 확인하고, 적용되지 않으면 NA, 적용되면 1/0으로 답하라”는 명시적 규칙 지시를 포함했으며, 이는 가장 높은 F1‑Score와 낮은 MAE를 기록했다.
모델 선택 측면에서는 OpenAI의 gpt‑3.5‑turbo, gpt‑4o‑mini, gpt‑4.1‑mini, gpt‑4.1, 그리고 Google Gemini‑2.5‑flash 다섯 가지 LLM을 동일한 온도(0.2) 설정으로 비교했다. 비용‑효율이 높은 gpt‑3.5‑turbo는 기본 프롬프트에서 낮은 성능을 보였지만, 규칙 기반 프롬프트에서는 중간 수준의 정확도를 회복했다. 반면 고용량 gpt‑4.1은 전반적으로 가장 높은 정확도와 일관성을 유지했으며, 특히 복합적인 관행(예: 중앙화된 검증 루틴) 판단에서 우수했다.
평가 단계에서는 WSVD‑Bench 데이터셋의 42개 함수(각 16관행)와 수작업으로 만든 정답 라벨을 사용해 이진 분류(F1, Precision, Recall)와 회귀(MAE) 지표를 산출했다. 결과는 P4‑Rule‑Based 프롬프트가 모든 모델에서 평균 F1‑Score 0.87, MAE 0.12를 달성했으며, 이는 기존 수동 평가와 비교해 30% 이상 시간 절감 효과를 기대할 수 있음을 시사한다.
신뢰성 점수 산출은 Lemes et al.이 제안한 계층형 품질 모델(QM)을 LSP 논리 연산자로 구현한 뒤, LLM이 제공한 관행 준수 결과를 가중치(취약점 발생 빈도 기반)와 결합해 0~1 사이의 스칼라 점수로 변환한다. 이 점수는 Vx0(안전) 버전에서는 평균 0.92, VxA(취약) 버전에서는 0.41을 기록해 명확한 구분을 보여준다.
위험 요소로는 LLM의 ‘환각(hallucination)’ 가능성, 프롬프트 설계에 따른 편향, 그리고 OWASP 관행 외의 도메인(예: 인증·세션 관리) 확장 시 추가적인 라벨링 비용이 있다. 또한, 호출 그래프 추출 비용과 정확도 사이의 트레이드오프가 존재해, 실무 CI/CD 파이프라인에 적용할 때는 컨텍스트 양을 조절해야 한다.
전반적으로 이 논문은 LLM을 보안 코딩 관행 평가에 체계적으로 적용하고, 정량적 신뢰성 점수와 연계함으로써 기존 정적·동적 분석 도구가 놓치는 ‘예방적’ 보안 측면을 보완한다는 점에서 의미가 크다.
댓글 및 학술 토론
Loading comments...
의견 남기기