← 최신 논문
💻 computer science

Evaluating and Preventing Security Smells in AI-Generated Ansible Code

이 논문은 AI가 생성한 Ansible 코드가 본질적으로 보안 취약점을 포함하고 있음을 밝히는 동시에, 확장된 CO-STAR 프레임워크를 통해 프롬프트에 보안 벤치마크를 통합하는 것이 컴플라이언스 및 코드 품질을 크게 향상시킬 수 있으며, 상위 모델들이 재학습 없이도 완벽에 가까운 보안 표준을 달성함을 입증한다.

원저자: Pandu Ranga Reddy Konala, Vimal Kumar, David Bainbridge, Junaid Haseeb

게시일 2026-08-27
📖 4 분 읽기☕ 가벼운 읽기

원저자: Pandu Ranga Reddy Konala, Vimal Kumar, David Bainbridge, Junaid Haseeb

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

현대 디지털 세상에서 거의 모든 온라인 서비스의 중추는 인프라라고 알려진 거대하고 보이지 않는 컴퓨터와 소프트웨어 계층입니다. 수십 년 동안 이러한 인프라를 구축하기 위해서는 엔지니어 팀이 서버, 데이터베이스, 보안 설정을 수동으로 구성해야 했으며, 이는 느리고 오류가 발생하기 쉬운 과정이었습니다. 이를 해결하기 위해 업계는 '코드로서의 인프라(Infrastructure as Code)'라는 방식을 채택했습니다. 이는 전체 설정을 마치 상세한 레시피나 설계도처럼 텍스트 파일로 작성하는 방식입니다. 이 텍스트 파일들은 컴퓨터에 시스템을 어떻게 구축하고 보안을 설정할지 정확하게 지시하며, 이를 통해 신속하고 일관되며 자동화된 배포가 가능해집니다. 하지만 레시피에 재료 하나가 빠지면 요리를 망칠 수 있듯이, 이 코드 파일의 단 하나의 실수는 시스템을 해커에게 완전히 노출시킬 수 있습니다. 만약 코드에 암호화되지 않은 비밀번호나 과도하게 허용된 접근 권한과 같은 숨겨진 약점이 포함되어 있다면, 그 결함은 시스템이 켜지는 순간 라이브 시스템으로 즉시 전이됩니다.

최근 이 분야에 인공지능 코딩 어시스턴트라는 새로운 도구가 등장했습니다. 이 프로그램들은 평범한 영어로 된 간단한 요청을 읽고, 이러한 시스템을 구축하는 데 필요한 복잡한 코드를 자동으로 작성할 수 있습니다. 이는 개발 속도를 높여줄 것이라는 기대를 모으지만, 지금까지 한 번도 답을 찾지 못했던 중요한 질문을 던집니다. 바로 이 기계들이 작성한 코드가 실제로 시스템을 안전하게 지켜주는가 하는 점입니다. 뉴질랜드 와이카토 대학교의 연구진은 그 답을 찾기 위해 나섰습니다. 그들은 단순히 버그를 찾는 것에 그치지 않고, 이 AI 도구들이 생성한 코드가 데이터를 보호하기 위해 정부와 산업계에서 요구하는 엄격한 실제 보안 표준을 충족하는지 조사했습니다. 그들의 연구는 이러한 AI 도구들이 할 수 있는 능력과, 이들을 제멋대로 내버려 두었을 때 실제로 수행하는 결과 사이의 놀라운 격차를 드러내며, 코드가 배포되기 전에 문제를 해결할 수 있는 명확한 경로를 제시합니다.

연구팀은 먼저 16개의 서로 다른 인공지능 모델의 기본 동작을 테스트하는 것으로 시작했습니다. 그들은 각 모델에게 아파치 톰캣(Apache Tomcat)이라는 웹 서버와 몽고DB(MongoDB)라는 데이터베이스 시스템을 설정하기 위한 '앤서블 롤(Ansible role)'이라고 불리는 특정 명령 세트를 작성하도록 요청했습니다. 연구진은 모델들에게 특별한 보안 조언이나 피해야 할 사항에 대한 경고, 혹은 좋은 코드의 예시를 전혀 주지 않았습니다. 그들은 단순히 기계들에게 일을 시켰을 뿐입니다. 결과는 즉각적이었고 우려스러웠습니다. 16개 모델 모두 보안 결함이 포함된 코드를 생성했습니다. 이러한 결함에는 누구나 읽을 수 있는 하드코딩된 비밀번호, 민감한 파일에 대한 보호 미비, 그리고 시스템을 충돌시키거나 예측 불가능하게 만들 수 있는 에러 처리 부족 등이 포함되었습니다. 연구진이 AI가 생성한 코드를 공개 저장소의 인간 개발자가 작성한 코드와 비교했을 때, AI 코드는 더 낮은 성능을 보였습니다. 단순히 약간 결함이 있는 수준이 아니라, 근본적으로 불안전했으며 업계의 표준인 기본적인 안전 요구 사항조차 충족하지 못했습니다.

연구진은 왜 이런 현상이 발생하는지 조사했습니다. 그들은 문제가 반드시 AI 모델이 코드를 작성하는 능력이 부족해서가 아니라, 안전에 관한 복잡한 지침을 따르는 능력이 부족하기 때문이라는 것을 발견했습니다. 연구의 두 번째 단계에서 팀은 접근 방식을 변경했습니다. 단순히 코드를 요청하는 대신, 매우 구조화된 규칙 세트를 제공했습니다. 그들은 보안 모범 사례와 특정 정부 안전 표준을 명시적으로 나열한 확장된 프롬프트 프레임워크를 사용했습니다. 그들은 모델들에게 어떤 권한을 설정해야 하는지, 비밀번호를 어떻게 안전하게 관리해야 하는지, 그리고 어떤 문서를 포함해야 하는지를 구체적으로 알려주며, 이러한 요구 사항을 단순한 제안이 아닌 필수적인 제약 조건으로 취급했습니다. 단순한 요청에서 상세한 규칙 기반 지침으로의 이러한 전환은 결과를 극적으로 바꾸어 놓았습니다.

연구진이 이러한 구조적 접근 방식을 적용했을 때, 결과는 크게 개선되었습니다. 16개 모델 중 4개가 복잡한 지침을 따를 수 있었고, 첫 번째 라운드에서 나타났던 보안 결함이 없는 코드를 생성했습니다. 가장 뛰어난 성능을 보인 모델은 엄격한 보안 벤치마크의 95%에서 100%를 충족하는 코드를 생성했는데, 이는 기초 단계(baseline)로부터 엄청난 도약이었습니다. 실제로 이 최상위 AI 모델은 23%에서 43% 사이의 표준만을 충족했던 평균적인 인간 작성 코드보다 더 우수한 성능을 보였습니다. 이 연구는 이러한 유능한 모델들의 경우, 문제가 지식의 부재가 아니라 지침이 모호할 때 그 지식을 적용하는 데 실패했다는 점을 보여주었습니다. 규칙이 명확하고 제약 조건이 명시적일 때, AI는 단 한 번의 시도로 안전하고 고품질의 코드를 합성할 수 있었으며, 이는 코드가 이미 작성된 후에 시간이 많이 걸리는 수정 작업을 거칠 필요를 없애주었습니다.

또한 이 연구는 모델들 사이의 결정적인 차이점을 강조했습니다. 성공한 4개의 모델은 내부 작동 방식이 공개되지 않은 폐쇄형 소스(closed-source) 시스템이었던 반면, 많은 오픈 소스 모델들은 복잡한 지침을 따르는 데 실패했습니다. 이는 코드를 생성하는 능력이 단순히 모델의 메모리 크기나 파라미터 수에 달려 있는 것이 아니라, 모델이 어떻게 훈련되었는지와 훈련 과정에서 개발된 특정 역량에 크게 의존한다는 것을 시사합니다. 연구진은 성공한 모델들이 다층적인 지침을 분석하고, 필수 규칙과 권장 사항의 차이를 이해하며, 이를 코드 전체에 일관되게 적용할 수 있다는 것을 발견했습니다. 다른 코딩 테스트에서 높은 점수를 받은 모델이라 할지라도, 보안 시스템을 구축하는 데 필요한 여러 제약 조건을 유지하지 못하면 실패했습니다.

이 연구는 현재 업계가 보안을 다루는 방식에 도전장을 내밉니다. 전통적으로 보안 전문가들은 코드가 작성될 때까지 기다렸다가 코드를 스캔하여 실수와 결함을 찾아내고 수정하는 '탐지(detection)' 과정을 거칩니다. 연구진은 AI가 생성한 코드의 경우, 결함이 코드가 생성되는 순간 도입되기 때문에 이러한 접근 방식이 불충분하다고 주장합니다. 대신 그들은 보안 요구 사항이 생성 과정 자체에 내장되는 '예방(prevention)' 방식을 제안합니다. 지침에 안전 규칙을 직접 삽 Kind 넣음으로써, 조직은 코드가 처음부터 안전하도록 보장할 수 있습니다. 이 접근 방식은 AI 모델을 재학습시키거나 기본 아키텍처를 변경할 필요 없이, 인간이 AI와 대화하는 방식만을 바꾸면 됩니다. 연구는 AI 코딩 어시스턴트가 큰 가능성을 품고 있지만, 명확하고 명시적인 안내 없이는 안전한 인프라를 생성하도록 신뢰할 수 없다고 결론짓습니다. 그러나 적절한 프롬프트가 있다면, 이들은 기능적일 뿐만 아니라 오늘날 많은 인간 개발자가 만들어내는 것보다 더 안전한 코드를 생성할 수 있습니다.

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

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

Digest 사용해 보기 →