← 최신 논문
🤖 AI

Security of LLM-generated Code: A Comparative Analysis

본 논문은 일곱 개의 인기 있는 대규모 언어 모델이 생성한 코드의 보안을 실증적으로 평가한 결과, 모든 모델이 취약점이 포함된 코드를 생성하며 그 대부분이 치명적이거나 높은 심각도를 가진다는 것을 발견했다.

원저자: Srivathsan G Morkonda, Mahmoud Selim, Hala Assal

게시일 2026-05-25
📖 4 분 읽기☕ 가벼운 읽기

원저자: Srivathsan G Morkonda, Mahmoud Selim, Hala Assal

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

가상의 상황을 상상해 보세요. 여러분은 소프트웨어를 작성하기 위해 일곱 명의 서로 다른 초지능 견습생 팀을 고용했다고 가정해 봅시다. 이 견습생들은 인공지능 (AI) 으로 구동되며, 놀라울 정도로 빠르고 도움이 된다는 명성으로 유명합니다. 그들은 수백만 명의 개발자들이 사용하는 업계 최고의 도구들입니다.

캘턴 대학교의 연구원들은 이 일곱 명의 견습생들을 엄격한 시험에 붙이기로 결정했습니다. 그들은 우주선을 만들거나 소설을 쓰라고 요청하지 않았습니다. 대신 '로그인 페이지 만들기'나 '사용자가 사진을 업로드하도록 하기'와 같은 81 가지의 일반적인 코딩 작업으로 구성된 특정 세트를 제시했습니다. 목표는 이 AI 견습생들이 작성한 코드가 안전하게 사용할 수 있는지, 아니면 숨겨진 함정으로 가득 차 있는지 확인하는 것이었습니다.

그들이 발견한 바를 간단히 정리해 보면 다음과 같습니다.

1. 완벽한 견습생은 존재하지 않는다

가장 충격적인 발견은 무엇일까요? 일곱 명의 견습생 중 누구도 시험에 합격하지 못했습니다. 그들이 테스트한 모든 AI 도구 (OpenAI 의 GPT-4o, Google 의 Gemini, IBM 의 watsonx 등 유명한 이름들 포함) 는 보안 구멍이 있는 코드를 생성했습니다.

이는 일곱 명의 유명한 제조사로부터 자동차를 구매하는 것과 같습니다. 적어도 하나는 완벽한 안전 등급을 가지고 있을 것이라고 기대할 것입니다. 대신 연구원들은 모든 자동차가 고장 난 브레이크나 느슨한 스티어링 휠을 가지고 있었다는 사실을 발견했습니다. 실제로 그들이 작성한 코드의 대다수는 '치명적 (Critical)' 또는 '높음 (High)' 등급의 결함을 포함하고 있었습니다. 즉, 이는 단순한 작은 흠집이 아니라 해커가 침입할 수 있는 커다란 구멍이라는 뜻입니다.

2. 지시사항에 숨겨진 함정

연구원들은 AI 를 실수하도록 유도하도록 설계된 특수한 지시문 (프롬프트) 세트를 사용했습니다. 예를 들어, AI 에게 '사용자가 파일을 업로드할 수 있는 함수를 작성하라'고 요청했습니다.

  • AI 의 실수: 일부 AI 는 사진 대신 해커가 바이러스를 업로드할 수 있도록 하는 코드를 작성했습니다.
  • 놀라운 사실: AI 가 주요 작업을 올바르게 수행했을 때조차, 종종 보안 규칙을 잊어버렸습니다. 예를 들어, 한 AI 는 완벽하게 작동하는 로그인 페이지를 작성했지만, 비밀번호를 평문으로 저장했습니다 (컴퓨터에 포스트잇에 비밀번호를 적어 붙이는 것과 같습니다).

3. '디버그 모드' 재앙

발견된 가장 흔한 실수 중 하나는 '디버그 모드'를 켜둔 채로 두는 것이었습니다.

  • 비유: 식당 주방을 상상해 보세요. '디버그 모드'는 뒷문을 활짝 열어두고 '들어와서 우리 비밀 레시피를 구경하고 스토브를 사용해 보세요'라는 표지판을 붙여놓는 것과 같습니다. 이는 배우는 셰프에게는 좋지만, 대중에게 문을 연 실제 식당에게는 끔찍한 일입니다.
  • 현실: AI 는 이 '뒷문'을 열어둔 채로 코드를 계속 작성했습니다. 개발자가 이 코드를 확인하지 않고 사용하면 전체 시스템이 해킹당할 수 있습니다. 연구원들은 일부 AI 도구가 '실제 운영 환경에서는 이를 끄세요'라는 작은 주석을 추가했지만, 개발자들이 실제로 그 메모를 읽고 따를 것이라고는 기대할 수 없다고 지적했습니다.

4. '빠르지만 위험한' 역설

이 연구는 IBM 의 watsonx 라는 특정 도구에서 이상한 패턴을 발견했습니다.

  • 비유: 매우 짧고 간단한 문장 (짧은 코드) 을 작성하는 한 명의 견습생을 상상해 보세요. '짧은 문장은 확인하기 쉬우니 더 안전할 것이다'라고 생각할 수 있습니다.
  • 현실: 이 견습생은 실제로 코드 줄당 위험한 오류의 비율이 가장 높았습니다. 코드가 너무 짧아서 중요한 보안 검사를 완전히 생략했기 때문입니다. 이는 급한 마음에 지뢰밭을 통과하는 단축길을 택하는 운전사와 같습니다.

5. '과신하는' 개발자

이 논문은 위험한 인간적 요소를 강조합니다. 개발자들은 AI 도구가 작업을 더 빠르게 만들어주기 때문에 이를 좋아합니다. 그러나 이 연구는 개발자들이 너무 신뢰하게 되었다고 시사합니다.

  • 비유: 이는 '자율 주행' 기능이 탑재된 자동차를 구매한 운전자가 차가 결코 추락하지 않을 것이라고 가정하고 운전대에 앉아 잠드는 것과 같습니다.
  • 현실: AI 도구는 매우 자신감 있게 말하기 때문에 개발자들은 코드가 안전하다고 가정합니다. 연구원들은 이러한 도구들이 생성한 코드 조각의 73% 이상이 적어도 하나의 보안 결함을 포함하고 있음을 발견했습니다. 개발자가 이를 확인하지 않고 단순히 복사하여 붙여넣기만 한다면, 본질적으로 문제를 초대하는 것입니다.

결론

이 논문은 이러한 AI 도구들이 코드를 빠르게 작성하는 데는 뛰어나지만, 현재로서는 기본적으로 안전한 코드를 작성하는 데는 끔찍하다고 결론 내립니다.

이들은 다른 누구보다 빠르게 야채를 썰 수 있지만, 손을 씻거나 음식이 상했는지 확인하는 것을 잊어버리는 매우 재능 있지만 경험이 부족한 셰프와 같습니다. 연구원들은 이러한 AI 도구들이 속도보다 안전을 우선시하도록 가르쳐지거나 (또는 개발자들이 모든 줄을 다시 확인하는 법을 배울 때까지) 소프트웨어 작성에 사용하는 것은 위험한 도박이라고 경고합니다.

핵심 교훈: AI 를 맹신하지 마십시오. AI 가 생성한 코드를 초급 직원의 초안처럼 취급하십시오. 라이브 환경에 배포되기 전에 시니어 보안 전문가가 검토해야 합니다.

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

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

Digest 사용해 보기 →