Skip to main content
QUICK REVIEW

[논문 리뷰] How Secure is Code Generated by ChatGPT?

Raphaël Khoury, Anderson R. Avila|ArXiv.org|2023. 04. 19.
Advanced Malware Detection Techniques인용 수 9
한 줄 요약

본 논문은 다중 언어로 작성된 21개 프로그램에 걸쳐 ChatGPT가 생성한 코드의 보안을 평가하고, 빈번한 보안 취약점을 발견했으며 보안 품질의 변형은 종종 명시적 프롬프트나 반복적인 개선이 필요하다는 것을 시사한다.

ABSTRACT

In recent years, large language models have been responsible for great advances in the field of artificial intelligence (AI). ChatGPT in particular, an AI chatbot developed and recently released by OpenAI, has taken the field to the next level. The conversational model is able not only to process human-like text, but also to translate natural language into code. However, the safety of programs generated by ChatGPT should not be overlooked. In this paper, we perform an experiment to address this issue. Specifically, we ask ChatGPT to generate a number of program and evaluate the security of the resulting source code. We further investigate whether ChatGPT can be prodded to improve the security by appropriate prompts, and discuss the ethical aspects of using AI to generate code. Results suggest that ChatGPT is aware of potential vulnerabilities, but nonetheless often generates source code that are not robust to certain attacks.

연구 동기 및 목표

  • 다양한 언어에 걸쳐 ChatGPT가 생성한 코드의 보안 태세를 평가한다.
  • ChatGPT가 생성한 코드에서 나타나는 일반적인 취약점 클래스를 식별한다.
  • 프롬프트가 ChatGPT가 더 안전한 코드를 생산하도록 이끌 수 있는지 평가한다.
  • 보안에 민감한 맥락에서 코드 생성을 위한 AI 사용의 윤리적 고려사항을 논의한다.

제안 방법

  • C, C++, Python, HTML, Java의 다섯 언어로 21개의 프로그램을 GPT-3.5-series fine-tuned 모델에서 ChatGPT를 사용해 생성한다.
  • 각 프로그램을 알려진 취약점과 관련된 취약점에 대해 평가한다 (예: SQL 주입, 메모리 손상, 역직렬화, XSS).
  • 취약점에 대해 ChatGPT를 조사하고 취약점이 발견되면 보안 버전이나 수정된 버전을 요청한다.
  • 프롬프트 후에 ChatGPT가 취약점을 인식하는지와 얼마나 자주 보안 코드가 생성되는지 결과를 분석한다.
  • 윤리적 함의를 논의하고 생성 코드의 보안 향상을 위한 상호작용 전략을 제안한다.
Figure 1: Code generation by ChatGPT followed by vulnerability check.
Figure 1: Code generation by ChatGPT followed by vulnerability check.

실험 결과

연구 질문

  • RQ1다양한 언어와 사용 사례에서 ChatGPT가 생성한 코드 샘플은 얼마나 안전한가?
  • RQ2타깃 프롬프트나 후속 질문이 ChatGPT로 하여금 더 안전한 코드를 생성하게 할 수 있는가?
  • RQ3ChatGPT가 생성한 코드에서 가장 일반적인 취약점 유형은 무엇이며, 수정하기 위해서는 어느 정도의 코드 재설계가 필요한가?
  • RQ4보안에 중요한 맥락에서 AI가 생성한 코드를 사용할 때 어떤 윤리적 고려사항이 발생하는가?

주요 결과

  • 초기 프로그램 중 보안한 것은 소수에 불과했고, 다수는 심각한 취약점을 보였다.
  • 질문을 받으면 취약점을 인식하는 경우가 많지만 명시적 프롬프트 없이 보안 코드를 생성하지 않는 경우가 많다.
  • 여러 사례에서 수정된 보안 버전이 생성될 수 있었지만 보편적이지는 않으며, 일부 작업은 보안을 위해 상당한 재설계가 필요하다.
  • 취약점은 여러 범주에 걸쳐 있으며, 메모리 손상과 암호학 오용은 보안 수정에 상당한 어려움을 보였다.
  • 본 연구는 교육적 가치와 윤리적 우려를 논의하며 보안 이점은 사용자의 분석과 테스트에 의존한다고 지적한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.