RSS DEV 커뮤니티

LLM 기반 코드 분석을 정적 분석으로 대체한 방법 (그리고 더 나은 결과를 얻었습니다)

저자는 처음에 LLM(대규모 언어 모델)을 사용하여 AI가 생성한 코드에 대한 보안 스캐너를 구축했습니다. 이 LLM 기반 접근 방식은 신뢰할 수 없었고, 심각도 점수가 다른 일관성 없는 취약성 평가를 생성했습니다. 스캐너의 결과는 매우 가변적이었으며, 여러 번 실행해도 알려진 취약성을 일관되게 식별하지 못했습니다. 이러한 불일치는 p-해킹과 유사하여 LLM을 보안 애플리케이션에 적합하지 않게 만들었습니다. 저자는 치명적인 명령 주입을 때때로 낮은 위험으로 분류하는 LLM의 한계를 깨달았습니다. 결과적으로 저자는 정적 분석 방법으로 전환했습니다. 새로운 정적 분석 접근 방식은 결정론적 결과를 제공하여 일관되게 취약성을 정확하게 식별했습니다. 정적 분석은 훨씬 더 빠르고 저렴하여 더 빈번한 스캔을 가능하게 했습니다. 또한 더 나은 커버리지를 보여주어 더 많은 취약성을 더 안정적으로 감지했습니다. 정적 분석 시스템은 14개 범주에 걸쳐 93개의 규칙을 사용했습니다. 저자는 LLM이 어려움을 겪었던 복합 위험 및 AI 관련 취약성을 식별하는 데 정밀도를 얻었습니다. 자연어 설명과 상황 인식이 부족했지만, 정적 분석은 이를 보완하기 위해 미리 작성된 설명과 신뢰 수준을 제공했습니다. 정적 분석 접근 방식은 LLM에 비해 모든 측정 지표에서 개선을 보였습니다. 저자는 자동화된 스캔에는 정적 분석이 우수하며, 속도, 일관성 및 신뢰성을 강조합니다. 저자는 LLM이 자동화된 취약성 탐지가 아닌 코드 검토 및 위협 모델링에 더 적합하다고 제안합니다. 궁극적으로 더 간단한 접근 방식이 보안 스캔에 더 효과적이었습니다.
favicon
dev.to
How I Replaced LLM-Based Code Analysis with Static Analysis (And Got Better Results)
Create attached notes ...