# Artifex Record/Paper Review

Large Language Model for Vulnerability Detection:Emerging Results and Future Directions - Review

Artifex_Ethan_ 2025. 6. 16. 14:16
반응형

Original Paper : Large Language Model for Vulnerability Detection : Emerging Results and Future Directions - IEEE
https://ieeexplore.ieee.org/document/10727143

 

Large Language Model for Vulnerability Detection: Emerging Results and Future Directions

Previous learning-based vulnerability detection methods relied on either medium-sized pretrained models or smaller neural networks from scratch. Recent advancements in Large Pre-Trained Language Models (LLMs) have showcased remarkable few-shot learning cap

ieeexplore.ieee.org

# 본 연구가 해결하려고 하는 과제

주요 과제는 소프트웨어 취약점 탐지의 성능 향상대형 사전 학습 언어 모델(LLM), 특히 ChatGPT를 활용한 취약점 탐지 방법의 효율성을 입증하는 것이다. 기존의 취약점 탐지 방법들은 제한된 크기의 모델이나 소형 신경망을 사용하여 성능이 제한적이었으며, LLM의 잠재력을 취약점 탐지에 적용하는 방식은 거의 탐구되지 않았다. 연구팀은 LLM이 제공할 수 있는 강력한 학습 능력외부 지식 통합을 통해 취약점 탐지의 정확도와 신뢰성을 향상시키는 방법을 제시하려 했다.

# 요약

본 논문 내용을 다음과 같이 요약하고 있다.
기존의 소프트웨어 취약점 탐지 방법은 중간 크기의 사전 학습 모델이나 작은 신경망을 이용했으나, 대형 사전 학습 언어 모델(LLMs)의 소프트웨어 취약점 탐지 효과는 거의 탐구되지 않았다. 본 연구는 GPT-3.5와 GPT-4를 활용하여 다양한 프롬프트 기반 접근 방식을 실험했으며, 그 결과 GPT-3.5는 기존 최첨단 모델과 비슷한 성능을 보였고, GPT-4는 지속적으로 이를 능가하는 결과를 나타냈다.

목차

### INDEX
- ABSTRACT
- **INTRODUCTION**
- **PROPOSED APPROACH**
    - ChatGPT and In-Context Learning
    - Prompt Basics and Designs
- **PRELIMINARY EVALUATION**
    - Dataset and Model
    - Evaluation
    - Results
- **THREATS TO VALIDITY**
- **RELATED WORK**
- **FUTURE WORK**
    - Local and Specialized LLMs-based Vulnerability Detection
    - Precision and Robustness Boost in Vulnerability Detection
    - Enhancing Effectiveness in Long-Tailed Distribution
    - Trust and Synergy with Developers
- **CONCLUSION**
- **REFERENCES**

# 핵심 아이디어

이 연구의 핵심 아이디어는 대형 사전 학습 언어 모델(LLM), 특히 ChatGPT를 활용하여 소프트웨어 취약점 탐지의 성능을 향상시키는 것이다. 기존의 취약점 탐지 방법들이 모델 크기나 데이터셋의 한계로 제한된 성능을 보였다면, LLM은 프롬프트 엔지니어링을 통해 더욱 효과적으로 취약점을 탐지할 수 있다는 가능성을 보여준다. 연구에서는 LLM에 외부 지식(예: CWE 유형)과 훈련 데이터 샘플을 적절히 통합하여 성능을 향상시키고, 정밀도강건성을 높일 수 있는 방법을 제시하였다.

또한, 롱테일 분포 문제적대적 공격에 대한 연구를 통해 LLM이 드문 취약점 유형을 탐지하고, 보안 위협에 강건하게 대응할 수 있는 방향을 모색하고 있다. 이러한 연구 방향은 LLM 기반 취약점 탐지가 현실적인 보안 도구로 자리 잡을 수 있는 가능성을 열어주며, 향후 연구에서 로컬화된 특화된 LLM 개발을 통해 보안과 개인정보 보호를 고려한 솔루션을 제시하려 한다.

결국, 이 연구는 LLM을 활용해 취약점 탐지의 정확도와 신뢰성을 높이고, AI 기반 보안 시스템이 더욱 스마트하고 협력적인 작업 동료로 발전할 수 있는 기반을 마련하는 것을 목표로 한다.


CHAPTER I. Introduction

소프트웨어 취약점은 민감한 정보의 유출 및 시스템 장애와 같은 다양한 위험을 초래하는 소프트웨어 시스템의 주요 문제이다. 이러한 문제를 해결하기 위해 연구자들은 소스 코드의 취약점을 식별하기 위한 머신러닝(ML) 및 딥러닝(DL) 접근법을 제안해 왔다.

기존 ML/DL 기반 취약점 탐지 방법은 유망한 결과를 보여주었으나, 주로 CodeBERT와 같은 중간 크기의 사전 학습 모델에 의존하거나, Graph Neural Networks와 같은 소형 신경망을 처음부터 학습시키는 방식에 의존해 왔다.

최근 대형 사전 학습 언어 모델(LLMs)의 발전은 다양한 작업에서 뛰어난 Few-shot 학습 능력을 입증했다. 하지만 보안 중심 작업, 특히 취약점 탐지에서 LLM의 성능은 거의 탐구되지 않았다. 또한, LLM은 자동 프로그램 수정과 같은 소프트웨어 공학(SE) 작업에서 점차 활용되기 시작했으나, 이들 연구는 주로 생성 중심 작업에 초점을 맞추고 있다. LLM이 분류 작업에 효과적으로 활용될 수 있는지, 특히 CodeBERT와 같은 중간 크기의 사전 학습 모델을 능가할 수 있는지는 불분명하다.

이러한 연구 공백을 메우기 위해, 본 논문은 보안 도메인 내에서 중요한 분류 작업인 취약 코드 식별에 있어 LLM의 효과를 조사한다. 더 나아가, LLM의 성능은 모델에 제공되는 프롬프트(작업 설명 및 기타 관련 정보)의 품질에 크게 의존한다. 따라서 우리는 다양한 프롬프트를 탐구하고 설계하여 LLM을 취약점 탐지에 효과적으로 적용한다. 본 연구에서는 ChatGPT의 기반 모델로 사용되는 두 가지 최첨단 LLM(GPT-3.5와 GPT-4)을 중점적으로 연구했다. 실험 결과, 적절한 프롬프트를 사용하면 GPT-3.5는 CodeBERT와 경쟁력 있는 성능을 달성했으며, GPT-4는 정확도 면에서 CodeBERT를 34.8% 초과하여 성능을 발휘했다.

요약하자면, 기여는 다음과 같다.

  • LLM에 대해 작업 및 역할 설명, 프로젝트 정보, Common Weakness Enumeration(CWE) 및 학습 데이터의 예제를 포함하는 다양한 프롬프트 실험을 수행하여 LLM이 취약점 탐지에서 유망한 모델임을 확인했다.
  • LLM을 활용한 취약점 탐지에서 활용할 수 있는 여러 유망한 연구 방향을 제시하며, 연구 커뮤니티가 이러한 가능성을 탐구하도록 독려했다.

CHAPTER II. PROPOSED APPROACH

ChatGPT and In-Context Learning
ChatGPT(Plus)는 GPT-3.5와 GPT-4라는 비공개 대형 LLM(사전 학습 언어 모델)을 기반으로 구축되었다. 기존 연구에서는 주로 CodeBERT나 CodeT5와 같은 중간 크기의 사전 학습 모델을 사용하며, 이러한 모델들은 보통 라벨이 지정된 학습 데이터에 맞추어 모든 파라미터를 업데이트하는 파인튜닝(fine-tuning)을 통해 활용된다. 파인튜닝은 매우 효과적이지만, 사전 학습 모델의 모든 파라미터를 로드하고 업데이트하기 위해 대규모 GPU 자원이 필요하다.

대형 LLM(예: ChatGPT)의 경우, 방대한 수의 파라미터를 가지기 때문에, 학계에서 널리 사용되는 GPU 카드로 이를 파인튜닝하는 것은 매우 어려운 과제이다. 이에 대한 대안으로, GPT-3에서 도입된 ICL(In-Context Learning) 접근 방식이 널리 채택되고 있다. ICL은 LLM의 파라미터를 고정시킨 상태로, 적절한 프롬프트를 활용하여 모델에 작업별 지식을 전달하는 방식이다. 파인튜닝과 달리, ICL은 파라미터 업데이트가 필요하지 않아 대규모 GPU 자원 요구를 크게 줄일 수 있다.

추론/테스트를 수행하기 위해, ICL은 주어진 라벨이 없는 데이터 샘플 𝑥와 프롬프트 𝑃를 기반으로 다음 토큰 𝑡를 생성할 확률을 바탕으로 예측을 수행한다. 이후 출력 토큰 𝑡는 밑에서 설명할 버벌라이저(verbalizer)에 의하여 예측 카테고리로 매핑된다.

Prompt Basics. A
프롬프트는 두 개의 슬롯을 가진 텍스트 문자열이다: (1) 원본 입력 데이터 xxx를 위한 입력 슬롯 [𝑋]과 (2) 예측된 답변 zzz를 위한 답변 슬롯 [𝑍]. 버벌라이저(Verbalizer)로 표시되는 함수 VVV는 예측된 답변 zzz를 목표 클래스 집합 YYY의 클래스 y^\hat{y}y^로 매핑하는 함수이다. 이를 수학적으로 표현하면, V:Z→YV : Z \rightarrow YV:Z→Y이다. 예를 들어, 간단한 프롬프트와 버벌라이저는 다음과 같다.

Table 1: Our prompt designs어업ㅁ기서 VVV는 "vulnerable"라는 토큰이 긍정 클래스에 매핑되는 버벌라이저이다. ChatGPT는 때때로 우리가 정의한 라벨 단어와 다른 응답을 생성할 수 있다. 이 과정을 간소화하기 위해, 우리는 예를 들어 "it is vulnerable because ..."라는 답변을 "vulnerable" 클래스로 매핑한다.

Prompt Designs
위 내용은 ChatGPT를 활용한 취약점 탐지에서 사용된 다양한 프롬프트 설계 방법을 설명한다. Table 1은 우리가 설계한 프롬프트(기본 프롬프트 + 여러 가지 증강)를 보여준다. OpenAI는 사용자가 ChatGPT를 두 가지 유형의 메시지/프롬프트를 통해 안내할 수 있도록 한다: 1) 시스템 메시지, ChatGPT의 전체적인 행동을 영향을 미치며 예를 들어 ChatGPT의 성격을 조정하는 것과 같은, 2) 사용자 메시지, ChatGPT가 처리하고 응답해야 하는 요청을 포함하는 것. 우리는 빈 시스템 메시지를 사용하고, 표 1에 나열된 사용자 메시지를 프롬프트로 사용했다. 처음에 우리는 직관적인 프롬프트(P)를 설계했다: “이제 이 방법이 취약점을 포함하는지 여부를 식별해야 합니다.” 이 기본 프롬프트는 우리가 LLM에게 원하는 작업을 간략하게 설명한 것이다. LLM에게 더 가치 있는 작업별 정보를 제공하기 위해, 우리는 기본 프롬프트에 다양한 증강(A1~5)을 제안하였다.

역할 설명 (A1): 우리는 이 작업에서 LLM의 역할을 명확히 정의했다: "당신은 보안 취약점에 대해 잘 알고 있는 경험 많은 개발자입니다." 이 전략은 LLM이 보안 관련 작업 모드로 전환하도록 유도하는 것을 목표로 한다.

프로젝트 정보 (A2): 최근 Li et al.은 코드에 대한 최첨단 LLM인 StarCoder를 제안했다. Li et al.은 프롬프트에 파일명을 추가하면 StarCoder의 효과가 크게 향상된다고 발견했다. 우리는 그들의 접근 방식을 따르며 LLM에게 목표 코드와 관련된 프로젝트 이름과 파일명을 제공했다.

외부 지식 (A3): CWE 시스템은 소프트웨어 취약점에 관한 많은 정보를 제공하며, 대표적인 취약 코드 예시도 포함된다. 이러한 자원을 활용하면 취약점 탐지 작업을 위한 프롬프트 생성 과정을 향상시킬 수 있다. 본 연구에서는 2022년에 식별된 가장 위험한 25개의 CWE 유형을 대표하는 취약 코드 예시를 수집했다. 이 예시들은 취약점의 특성과 패턴을 보여주며, LLM에게 귀중한 통찰력을 제공한다. 이를 통해 우리는 훈련 데이터의 한계를 넘어 외부 자원인 CWE 시스템을 활용하여 모델의 지식을 확장할 수 있다.

학습 데이터 내 지식 (A4): 학습 데이터는 주어진 작업과 관련된 가치 있는 작업별 지식을 포함하고 있다. 그러나 ChatGPT는 최대 토큰 제한이 4,096이기 때문에 제한된 수의 입력-출력 샘플만 처리할 수 있다. 이 전략에서는 학습 데이터에서 K개의 샘플을 무작위로 선택하여 학습 데이터셋에 내재된 지식을 활용한다. 이 전략에서는 취약한 샘플과 비취약한 샘플을 모두 사용한다.

선택적 학습 데이터 지식 (A5): 앞서 언급한 전략과는 달리, 우리는 무작위 샘플링 대신 학습 데이터에서 가장 유사한 K개의 방법을 검색하는 접근 방식을 채택했다. 이러한 검색된 방법들은 LLM에 관련 지식을 제공하여 테스트 데이터를 평가할 때 의사결정 과정을 돕는다. 검색 과정에서는 CodeBERT를 사용하여 코드 스니펫을 의미론적 벡터로 변환했다. 그 후, 각 코드 스니펫의 의미론적 벡터들 간의 코사인 유사도를 계산하여 두 코드 스니펫 간의 유사성을 측정했다. 주어진 테스트 코드에 대해, 우리는 학습 데이터에서 가장 유사한 K개의 방법과 해당하는 취약성 레이블을 검색했다.

CHAPTER III. PRELIMINARY EVALUATION

이 연구에서는 하나의 연구 질문에 답하는 것을 목표로 한다. 다양한 프롬프트 설계가 ChatGPT의 취약점 탐지에서 얼마나 효과적인지, 그리고 이를 기존 기준선들과 비교했을 때의 성능은 어떠한지? 에 대한 질문이다.

Dataset and Model.
우리는 최근 Pan et al. [19]에 의해 수집된 취약점 수정 커밋 데이터셋을 사용한다. 취약점 수정 커밋에서 취약한 함수를 얻기 위해, 우리는 Fan et al. [20]의 방법을 따라 먼저 취약점 수정 커밋 이전의 소프트웨어 버전을 수집한 후, 패치에서 수정된 라인이 있는 함수를 취약한 함수로 라벨링했다. 커밋에 의해 수정된 파일 내의 나머지 함수들은 비취약한 함수로 간주했다.

보안 패치 데이터셋은 다양한 프로그래밍 언어로 구현된 많은 소프트웨어 저장소를 포함하고 있기 때문에, 모든 언어에 대해 해당하는 파서를 작성하는 것이 어려운 작업이다. 따라서 본 초기 평가에서는 C/C++로 구현된 소프트웨어 저장소에만 집중했다. 테스트 세트를 구축하기 위해, 우리는 Pan et al. [19]가 나누어 놓은 원본 테스트 세트에서 C/C++로 구현된 20개의 오픈 소스 소프트웨어 저장소를 무작위로 샘플링하고, 이들의 취약점 수정을 사용하여 취약한 함수(양성 샘플)를 테스트 세트에 포함시켰다. ChatGPT를 대규모 테스트 세트에서 쿼리하는 데 드는 상당한 비용[21]으로 인해, 우리는 샘플링을 20개의 저장소로 제한했다. 제한된 샘플 크기에도 불구하고, 우리의 초기 실험은 ChatGPT의 잠재력을 보여주기 위해 설계되었다.

훈련/검증 세트는 Pan et al.가 나눈 원본 훈련/검증 세트에서 C/C++ 저장소의 모든 취약점 수정을 사용하여 취약한 함수(양성 샘플)를 추출했다. 비취약한 함수(음성 샘플)를 얻기 위해서는 무작위 샘플링 기법을 사용했다. 각 취약한 함수에 대해, 우리는 해당 취약한 함수와 동일한 파일에서 추출된 비취약한 함수 중 하나를 무작위로 선택했다. 취약한 함수와는 달리, 이 비취약한 함수들은 취약점 수정 커밋에 의해 수정되지 않았다. 마지막으로, 우리의 데이터셋은 훈련/검증/테스트 세트에 각각 7,683/853/368개의 방법을 포함하고 있다.

이 연구는 소프트웨어 취약점 탐지에서 LLM(대형 언어 모델)의 효과를 탐구하는 과정에서 매우 신중하고 체계적인 접근을 보여준다. 데이터셋 구성부터 실험 설계에 이르기까지 많은 부분에서 철저한 계획이 느껴졌다. 예를 들어, 취약점 수정 커밋에서 취약한 함수와 비취약한 함수의 구분을 명확히 하여 훈련과 테스트 데이터셋을 구성한 방식은 연구의 신뢰성을 높여준다. 또한, 무작위 샘플링 기법을 사용하여 균형 잡힌 데이터를 만들고, 데이터의 다양성을 확보하려는 노력이 엿보인다. 이러한 세심한 구성은 모델이 과적합되는 것을 방지하고, 다양한 상황에서 더 좋은 성능을 낼 수 있도록 한다.

우리는 연구된 모델 중에서 주로 ChatGPT (GPT-3.5) 모델인 gpt-3.5-turbo에 집중하여 연구를 진행했으며, 또한 ChatGPT (GPT-4)에 대한 제한적인 실험도 수행했다. 기준선 모델로는 최근의 포괄적인 실험 연구에 따라 최첨단 접근 방식 중 하나인 CodeBERT를 선택했다.
이 연구에서는 ChatGPT (GPT-3.5)와 ChatGPT (GPT-4)의 성능을 다양한 프롬프트 디자인을 통해 취약점 탐지에서 평가하고, 이를 기존의 최첨단 모델인 CodeBERT와 비교했다. 모델의 효과를 측정하기 위해 일반적으로 사용되는 평가 지표인 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 점수, F0.5 점수를 사용하였다. 특히, F0.5 점수를 추가하여 정밀도를 더 중요하게 반영한 이유는 개발자들이 허위 긍정(False Positive)에 민감하기 때문에 낮은 성공률이 시스템에 대한 신뢰를 감소시킬 수 있다는 점에서 정밀도를 높이는 것이 중요하다는 점에 기반한 것이다. ICL(인-컨텍스트 학습) 방법이 불안정할 수 있어, 초기 실험에서는 두 번 반복 실험을 진행하고 평균 결과를 보고했다.

Result, GPT-3.5는 다양한 프롬프트를 통합하여 평가한 결과, 기본 프롬프트만 사용할 경우 성능이 만족스럽지 않았으며, 모든 코드가 비취약한 것으로 예측되어 정확도는 50%, 재현율은 0%로 나타났다. 역할 설명과 프로젝트 정보를 추가했으나 성능 개선에 큰 도움이 되지 않았다. 그러나 외부 지식, 특히 2022년 가장 위험한 25개의 CWE 유형에 대한 예제를 포함했을 때, 정확도는 18.2% 증가했다. 또한, 훈련 데이터에서 랜덤 샘플링과 유사한 코드를 검색하는 방법을 사용하였을 때 성능이 크게 향상되었으며, 정확도는 각각 22.8%와 19.6% 개선되었다.
다양한 프롬프트 조합 중 P+A5 조합이 가장 높은 F1 점수(54.0%)와 재현율(47.2%)을 기록했고, P+A4+A5 조합은 F0.5(62.8%)와 정확도(62.7%)에서 가장 높은 성과를 보였다. P+A4+A5 조합은 기본 프롬프트(P)에 비해 정확도가 25.4% 향상되었다.
GPT-3.5는 CodeBERT와 비교했을 때 정확도, 정밀도, F0.5 점수에서 각각 4.0%, 22.5%, 4.5% 우수했으나, 재현율과 F1 점수에서는 각각 44.8%와 15.3% 낮은 성과를 보였다. 이 결과는 GPT-3.5와 CodeBERT의 강점을 명확히 구분해주며, GPT-3.5는 허위 긍정(False Positive)을 최소화하는 데 뛰어난 정밀도를 보였고, CodeBERT는 더 많은 취약점을 찾아내는 능력을 가진 높은 재현율을 보였다. 전반적으로 GPT-3.5는 CodeBERT에 비해 경쟁력 있는 성능을 보여주었다.

GPT-4의 성능은 표 3에 나타나 있으며, 높은 비용이 수반되는 점에서 실험은 테스트 세트의 절반만 사용하여 진행되었다. GPT-4의 성능을 평가하기 위해 네 가지 프롬프트를 사용했으며, 기본 프롬프트(P), 외부 지식 프롬프트 P+A3, GPT-3.5에서 두 번째로 높은 F1 점수를 기록한 P+A5, 그리고 GPT-3.5에서 가장 높은 F1 점수를 기록한 P+A4+A5를 사용했다. 표 3에서 GPT-4는 P+A3 프롬프트를 사용할 경우 CodeBERT를 34.8% 정확도 면에서 초과하여 성능을 크게 상회한 결과를 보였다.

결론적으로, GPT-3.5와 GPT-4는 각각 다른 방식으로 취약점 탐지에서 유망한 성과를 보였으며, GPT-3.5는 정밀도에서 뛰어난 성능을, GPT-4는 외부 지식을 잘 활용할 경우 뛰어난 정확도를 기록하는 모습을 보여주었다.

CHAPTER IV. THREATS TO VALIDITY

ChatGPT 모델을 사용하여 취약점 탐지 성능을 평가하는 과정에서 몇 가지 중요한 신뢰성 및 유효성 문제를 제기하고 있다. 첫 번째 우려는 데이터 누수(data leakage) 가능성이다. 사용된 데이터셋이 ChatGPT의 훈련 데이터와 겹칠 수 있는데, ChatGPT가 폐쇄형 모델이기 때문에 실제로 이러한 겹침이 존재하는지 확인할 방법이 없다. 이는 모델의 평가 결과가 실제 성능을 과대평가할 위험이 있다는 문제를 발생시킨다.

두 번째 문제는 테스트 세트에서 취약한 함수와 비취약한 함수의 데이터 비율이 동일하게 설정된 점이다. 이 실험에서는 ChatGPT 사용과 관련된 비용을 절감하기 위해 균형 잡힌 데이터 세트를 만들었으며, 특히 많은 수의 비취약한 함수가 있을 경우 테스트 샘플 수가 급격히 증가할 수 있기 때문이다. 그러나 실제로 소프트웨어 시스템에서 취약한 코드가 적은 비율을 차지하는 것을 고려할 때, 테스트 세트에서 취약한 함수와 비취약한 함수의 동일한 비율은 실제 문제를 반영하지 않는다. 이로 인해 연구 결과의 평가 지표가 과대평가될 수 있다. 이에 따라 연구팀은 이러한 문제를 이 연구의 한계로 인정하고, 향후 연구에서는 실제 취약한 함수와 비취약한 함수의 비율을 보다 정확하게 반영하는 새로운 테스트 세트를 개발할 계획이다.

마지막으로, 취약점 수정 커밋에서 수정된 함수들을 취약한 함수로 라벨링하는 방법(heuristic)이 실제 취약한 함수의 수를 과대평가할 수 있다는 점을 지적한다. 이는 커밋에서 일부 변경된 함수가 실제로는 취약점 해결과 관련이 없을 수 있기 때문이다. 이러한 문제를 해결하기 위해 향후 연구에서는 취약점 수정 커밋을 보다 정확하게 분석할 수 있는 기술을 도입할 예정이라고 언급하고 있다. 예를 들어, 커밋에서 수정된 함수들이 실제로 취약점 해결과 관련이 있는지 확인하기 위해 기존 기술들을 활용할 계획이다.

CHAPTER VI. FUTURE WORK

미래 연구에서 탐구할 수 있는 흥미로운 경로가 많이 있다. 여기에서는 이러한 잠재적인 방향 중 일부를 강조하고 있다.

Local and Specialized LLMs-based Vulnerability Detection.
이 연구는 ChatGPT에 집중하고 있다. 그러나 ChatGPT는 데이터를 제3자 서비스로 전송해야 한다. 이는 특정 조직, 예를 들어 주요 기술 기업이나 정부 기관에서 ChatGPT 기반의 취약점 탐지 도구를 사용하는 데 제한을 둘 수 있다. 이러한 조직들은 자신의 소스 코드를 독점적이고 민감하거나 기밀 자료로 간주하여 제3자 서비스와 이를 전송하거나 공유할 수 없기 때문이다. 또한, ChatGPT 모델은 취약점 탐지에 특화되어 있지 않기 때문에, 풍부한 오픈 소스 취약점 데이터를 충분히 활용하지 못할 수 있다.

위에서 언급한 제한 사항을 해결하기 위해, 향후 우리는 취약점 탐지를 위한 로컬화된 특화된 LLM 솔루션을 제안할 계획이다. 이 솔루션은 일반 목적의 오픈 소스 코드 LLM(예: Llama)을 기반으로 하여, 관련된 취약점 데이터셋을 사용해 취약점 탐지를 위해 조정될 것이다. 조정된 LLM은 데이터 보안과 개인정보 보호를 우선시하는 조직들의 우려를 해소하면서도 풍부한 오픈 소스 취약점 데이터를 활용할 수 있게 해준다.

Precision and Robustness Boost in Vulnerability Detection.
높은 정밀도를 가진 취약점 탐지 솔루션이 일반적으로 선호된다. 또한, 이 솔루션은 데이터 변동이나 적대적 공격에 대해 강건성을 유지해야 한다. 정밀도가 높으면 개발자들이 탐지의 신뢰성에 더 큰 자신감을 가질 수 있으며, 그에 따라 탐지된 취약점을 해결하기 위한 적절한 조치를 취할 것이다. 강건성이 높으면, 더 안전하고 안정적인 취약점 탐지 모델을 만들 수 있으며, 적대적 공격에 대한 면역력을 높일 수 있다.

향후 우리는 이 작업에서 LLM의 정밀도와 강건성을 향상시킬 계획이다: 1) 정밀도를 개선하기 위해, 우리는 앙상블 학습을 사용할 계획이다. 이는 서로 다른 모델들 간의 공통적인 높은 신뢰도 예측을 식별함으로써 정밀도(그리고 가능하면 재현율)를 향상시키는 유망한 기술이다. 2) 강건성을 개선하기 위해, 우리는 기존의 연구[33]를 확장할 계획이다. 이 연구는 단일 적대적 변환(변수 이름 변경)을 사용하여 모델의 강건성을 향상시킨다. 우리는 다양한 다른 종류의 적대적 변환을 탐구하고, LLM의 강건성을 향상시키는 데 있어 이들 변환이 얼마나 효과적인지 평가할 것이다.

Enhancing Effectiveness in Long-Tailed Distribution.
이 연구에서는 취약점 탐지 작업을 이진 분류(취약함 또는 비취약함)로 설정하였다. 그러나 개발자들은 탐지된 취약한 코드와 관련된 구체적인 취약점 유형(CWE 유형)을 표시하는 기능을 원할 수 있다. 이는 취약점을 더 잘 이해하고 해결하는 데 중요하다. 그러나 최근 연구에 따르면 취약점 데이터는 CWE 유형에 따라 긴 꼬리 분포(long-tailed distribution)를 보이며, 일부 CWE 유형은 샘플이 많지만, 많은 다른 유형은 샘플이 적다. 이 연구는 LLM이 이러한 드문 취약점 유형을 효과적으로 처리하는 데 어려움을 겪을 수 있음을 지적했다. 향후 연구에서는 1) LLM, 특히 ChatGPT가 드문 취약점을 효과적으로 탐지할 수 있는지 확인하고, 2) 드문 유형에 대해 데이터 증강을 통해 더 많은 샘플을 생성하는 등의 해결책을 제시할 계획이다.

Trust and Synergy with Developers.
이 연구를 포함한 취약점 탐지의 AI 기반 솔루션은 개발자와의 상호작용이 제한적이다. 이러한 솔루션은 실제 사용 중에 개발자와 신뢰와 협력을 구축하는 데 어려움을 겪을 수 있다. 이를 해결하기 위해, 향후 연구는 개발자와 AI 기반 솔루션 간의 신뢰와 협력을 촉진할 수 있는 더 효과적인 전략을 조사해야 한다. 신뢰와 협력을 키움으로써, AI 기반 솔루션은 개발자를 더 잘 지원하는 스마트 작업 동료로 발전할 수 있을 것이다.

FUTURE WORK 부분에서 제시된 연구 방향은 매우 흥미롭고, LLM(대형 언어 모델)을 활용한 취약점 탐지의 향후 발전 가능성을 잘 보여준다. 특히 로컬화된 특화된 LLM 솔루션 개발은 조직의 데이터 보안과 개인정보 보호 문제를 해결하면서도 오픈 소스 취약점 데이터를 활용할 수 있는 방안을 제시하고 있다. 이는 ChatGPT와 같은 대형 모델의 클라우드 의존성을 줄이고, 데이터 보안에 민감한 기업이나 기관들이 이 기술을 보다 적극적으로 도입할 수 있는 길을 열어줄 것이다.

또한, 정밀도와 강건성 향상을 위한 방법론 제시도 매우 중요한 부분이다. 앙상블 학습을 통해 정밀도를 개선하고, 적대적 공격에 대한 저항력을 높이려는 계획은 실제 현업에서 발생할 수 있는 다양한 보안 위협을 잘 반영하고 있다. 특히 적대적 공격에 대한 연구는 LLM의 안전성을 높이는데 중요한 요소가 될 것이다.

롱테일 분포 문제를 해결하려는 시도도 매우 현실적이다. 드물게 발생하는 취약점 유형을 효과적으로 탐지할 수 있는 방법을 모색하는 것은 LLM을 취약점 탐지에 실용적으로 적용하는 데 큰 도움이 될 것이다. 드문 취약점 유형에 대해 더 많은 데이터를 생성하거나 데이터 증강 기법을 활용하려는 접근은 특히 중요한 발전 방향으로 보인다

CHAPTER X. CONCLUSION

이 연구에서는 LLM(즉, ChatGPT)의 취약점 탐지에서의 효과와 가능성을 탐구했다. 우리는 외부 지식을 통합하고 훈련 데이터에서 가치 있는 샘플을 선택하는 등의 유용한 프롬프트 개선을 제안했다. 또한 향후 연구를 위한 많은 유망한 방향을 제시했다. 우리는 향후 연구를 위해 우리의 복제 패키지를 공개했다

이 연구는 LLM(특히 ChatGPT)을 활용한 취약점 탐지의 가능성을 탐구하며, 프롬프트 개선을 통해 성능을 향상시킬 수 있음을 보여주었다. 특히 외부 지식 통합과 훈련 데이터에서 유용한 샘플을 선택하는 방식이 중요한 성과를 이끌어냈다. 향후 연구 방향으로 제시된 다양한 가능성은 AI 기반 취약점 탐지 시스템의 신뢰성과 협력성 증진을 위한 중요한 시사점을 제공한다.

부족한 내용과 설명이 많습니다. 양해 감사드립니다.
긴 글 읽어주셔서 감사합니다.

좋은 하루 되세요 :) - 앙뇽 - 

반응형