LLM과 불안전한 코드 생성: 기본 시나리오
Backslash Security는 OpenAI의 GPT 모델, Anthropic의 Claude, Google의 Gemini를 포함한 7가지 인기 LLM 버전에 대한 일련의 테스트를 수행했습니다. 목표는 다양한 프롬프트 기술이 모델의 안전한 코드 생성 능력에 미치는 영향을 평가하는 것이었습니다. 코드 출력의 보안은 일반적인 소프트웨어 취약점을 나타내는 10가지 CWE(Common Weakness Enumeration) 사용 사례에 대한 복원력을 기반으로 평가되었습니다.
이러한 테스트 결과는 더 정교한 프롬프트 기술을 사용할수록 생성된 코드의 보안이 향상된다는 것을 일관되게 보여주었습니다. 그러나 전반적인 주제는 테스트된 모든 LLM이 자체적으로 작동하도록 방치되었을 때 일반적으로 안전하지 않은 코드를 생성한다는 것이었습니다. 이는 이러한 모델이 기본 구성에서 보안을 우선시하지 않으며 일반적인 코딩 약점을 해결하지 못하는 경우가 많다는 것을 시사합니다.
순진한 프롬프트: 취약점의 레시피
보안 고려 사항을 명시적으로 언급하지 않은 간단하고 ‘순진한’ 프롬프트가 제시되었을 때 테스트된 모든 LLM은 10가지 일반적인 CWE 중 최소 4가지에 취약한 안전하지 않은 코드를 생성했습니다. 이는 특정 지침 없이 작동할 때 이러한 모델에 내재된 보안 인식 부족을 강조합니다.
보안 중심 프롬프트의 영향
일반적으로 보안의 필요성을 지정한 프롬프트는 더욱 안전한 결과를 가져왔으며, 이는 LLM이 명시적으로 지시를 받을 때 더욱 안전한 코드를 생성할 수 있음을 나타냅니다. 또한 OWASP(Open Web Application Security Project) 모범 사례를 준수하는 코드를 요청하는 프롬프트는 훨씬 더 나은 결과를 가져왔습니다. OWASP는 소프트웨어 보안 개선을 위해 노력하는 비영리 재단입니다. 그러나 이러한 더욱 정교한 프롬프트를 사용하더라도 테스트된 7개의 LLM 중 5개에서 일부 코드 취약점이 지속되어 LLM으로 안전한 코드를 일관되게 생성하는 데 어려움이 있음을 강조합니다.
규칙 기반 프롬프트: 안전한 코드로 가는 길
안전한 코드 생성을 위한 가장 효과적인 접근 방식은 특정 CWE를 해결하기 위해 Backslash에서 지정한 규칙에 바인딩된 프롬프트를 사용하는 것이었습니다. 이러한 규칙 기반 프롬프트는 안전하고 테스트된 CWE에 취약하지 않은 코드를 생성했습니다. 이는 LLM에 구체적이고 표적화된 지침을 제공하는 것이 생성된 코드의 보안을 보장하는 데 중요하다는 것을 시사합니다.
LLM 간의 성능 변동
전반적으로 OpenAI의 GPT-4o는 모든 프롬프트에서 가장 낮은 성능을 보였으며 ‘순진한’ 프롬프트를 사용할 때 10개 중 1개만 안전한 코드 결과를 달성했습니다. 안전한 코드 생성을 요청받았을 때도 여전히 10개 중 8개 문제에 취약한 안전하지 않은 출력을 생성했습니다. GPT-4.1도 순진한 프롬프트에서는 크게 나아지지 않아 10개 중 1.5점을 기록했습니다.
대조적으로 Claude 3.7 Sonnet은 테스트된 GenAI 도구 중에서 최고의 성능을 보였습니다. 순진한 프롬프트를 사용하여 10개 중 6점을 기록했으며 보안 중심 프롬프트를 사용할 때는 완벽한 10점 만점을 기록했습니다. 이는 일부 LLM이 명시적인 지침이 없더라도 보안 고려 사항을 처리하는 데 더 나은 장비를 갖추고 있음을 시사합니다.
안전한 바이브 코딩을 위한 Backslash Security의 솔루션
LLM 프롬프트 테스트에서 밝혀진 문제를 해결하기 위해 Backslash Security는 안전한 바이브 코딩을 지원하도록 설계된 여러 가지 새로운 기능을 도입하고 있습니다. 바이브 코딩은 LLM과 같은 AI 도구를 사용하여 코드를 생성하는 것을 의미합니다.
Backslash AI 규칙 및 정책
Backslash AI 규칙 및 정책은 CWE 적용 범위를 보장하기 위해 프롬프트에 삽입할 수 있는 기계 판독 가능 규칙을 제공합니다. 이러한 규칙은 인기 있는 코드 편집기인 Cursor와 같은 도구와 함께 사용할 수 있습니다. 또한 AI 정책은 Backslash 플랫폼을 통해 IDE에서 활성화되는 AI 규칙을 제어하여 조직이 보안 설정을 사용자 지정할 수 있도록 합니다.
Backslash IDE 확장 프로그램
Backslash IDE 확장 프로그램은 개발자의 기존 워크플로에 직접 통합되어 인간과 AI가 작성한 코드에 대한 Backslash 보안 검토를 받을 수 있도록 합니다. 이 통합은 개발 프로세스 전반에 걸쳐 보안 고려 사항을 해결하는 데 중요합니다.
Backslash MCP(Model Context Protocol) 서버
Backslash MCP(Model Context Protocol) 서버는 MCP 표준을 준수하는 컨텍스트 인식 API입니다. Backslash를 AI 도구에 연결하여 안전한 코딩, 스캔 및 수정이 가능합니다. MCP 표준은 AI 도구가 통신하고 정보를 공유하기 위한 공통 프레임워크를 제공하여 안전한 AI 기반 애플리케이션 개발을 용이하게 합니다.
AI 생성 코드의 과제 해결
Backslash Security의 공동 창립자이자 CTO인 Yossi Pik는 AI 생성 코드가 보안 팀에 제기하는 과제를 강조합니다. 그는 ‘AI 생성 코드 또는 바이브 코딩은 보안 팀에게 악몽처럼 느껴질 수 있습니다. 새로운 코드의 홍수를 만들고 환각 및 프롬프트 민감도와 같은 LLM 위험을 가져옵니다.’라고 지적합니다. 환각은 LLM이 잘못되거나 무의미한 정보를 생성하는 경우를 의미하고, 프롬프트 민감도는 LLM이 입력 프롬프트의 미묘한 변화에 따라 다른 출력을 생성하는 경향을 의미합니다.
그러나 Pik는 AI가 올바른 제어와 함께 사용될 때 AppSec 팀을 위한 귀중한 도구가 될 수 있다고 믿습니다. 그는 ‘조직 정의 규칙 및 목적에 맞게 구축된 보안 플랫폼에 연결된 컨텍스트 인식 MCP 서버와 같은 올바른 제어를 통해 AI는 실제로 처음부터 AppSec 팀에 더 많은 제어 기능을 제공할 수 있습니다.’라고 주장합니다. Backslash Security는 동적 정책 기반 규칙, 컨텍스트 감지 MCP 서버 및 IDE 확장 프로그램을 통해 이러한 제어 기능을 제공하는 것을 목표로 하며, 이 모든 것은 새로운 코딩 시대를 위해 설계되었습니다.
안전하지 않은 AI 생성 코드의 의미
Backslash Security의 연구 결과는 소프트웨어 개발 산업에 중요한 의미를 갖습니다. AI 기반 코드 생성 도구가 점점 더 보편화됨에 따라 적절한 보안 조치 없이 이러한 도구에 의존하는 데 따른 위험을 이해하는 것이 중요합니다.
사이버 공격에 대한 취약성 증가
안전하지 않은 AI 생성 코드는 사이버 범죄자가 악용할 수 있는 새로운 취약점을 만들 수 있습니다. 이러한 취약점은 데이터 침해, 시스템 손상 및 기타 보안 사고로 이어질 수 있습니다.
취약점 식별 및 수정의 어려움
AI 생성 코드의 엄청난 양으로 인해 취약점을 식별하고 수정하는 것이 어려울 수 있습니다. 보안 팀은 빠른 코드 생성 속도를 따라잡기 어려워 보안 문제의 백로그가 발생할 수 있습니다.
개발자의 보안 인식 부족
많은 개발자가 AI 생성 코드와 관련된 보안 위험을 완전히 인식하지 못할 수 있습니다. 이러한 인식 부족으로 인해 개발자가 실수로 애플리케이션에 취약점을 도입할 수 있습니다.
규정 준수 문제
AI 생성 코드에 의존하는 조직은 규정 준수 문제에 직면할 수 있습니다. 많은 규정에서는 조직이 민감한 데이터를 보호하기 위해 적절한 보안 조치를 구현하도록 요구합니다. 안전하지 않은 AI 생성 코드는 이러한 요구 사항을 충족하기 어렵게 만들 수 있습니다.
안전한 AI 기반 코드 생성을 위한 모범 사례
안전하지 않은 AI 생성 코드와 관련된 위험을 완화하기 위해 조직은 다음 모범 사례를 채택해야 합니다.
개발자에게 보안 교육 제공
개발자는 AI 생성 코드와 관련된 보안 위험에 대한 교육을 받아야 합니다. 이 교육은 일반적인 CWE, 안전한 코딩 방법 및 보안 도구 사용 방법과 같은 주제를 다루어야 합니다.
보안 정책 및 절차 구현
조직은 AI 생성 코드 사용을 다루는 보안 정책 및 절차를 구현해야 합니다. 이러한 정책은 허용 가능한 사용 사례, 보안 요구 사항 및 AI 생성 코드 검토 및 승인 프로세스를 정의해야 합니다.
보안 도구를 사용하여 AI 생성 코드 스캔
조직은 보안 도구를 사용하여 AI 생성 코드에서 취약점을 스캔해야 합니다. 이러한 도구는 일반적인 CWE 및 기타 보안 문제를 식별하는 데 도움이 될 수 있습니다.
안전한 개발 수명 주기(SDLC) 구현
조직은 개발 프로세스 전반에 걸쳐 보안 고려 사항을 통합하는 안전한 개발 수명 주기(SDLC)를 구현해야 합니다. 여기에는 AI 생성 코드에 대한 보안 검토 수행, 침투 테스트 수행 및 보안 모니터링 구현이 포함됩니다.
버그 바운티 프로그램 구축
조직은 보안 연구자가 AI 생성 코드에서 취약점을 찾아 보고하도록 장려하기 위해 버그 바운티 프로그램을 구축해야 합니다. 이는 내부 보안 팀에서 놓쳤을 수 있는 취약점을 식별하는 데 도움이 될 수 있습니다.
최신 보안 위협에 대한 정보 유지
조직은 AI 생성 코드에 영향을 미치는 최신 보안 위협 및 취약점에 대한 정보를 유지해야 합니다. 이를 통해 잠재적인 보안 문제를 사전에 해결할 수 있습니다.
보안 전문가와 협력
조직은 보안 전문가와 협력하여 AI 생성 코드의 보안을 평가하고 위험 완화 전략을 개발해야 합니다.
안전한 AI 기반 코드 생성의 미래
AI 기반 코드 생성 도구가 계속 진화함에 따라 보안을 우선시하는 것이 중요합니다. 위에 설명된 모범 사례를 구현함으로써 조직은 안전하지 않은 코드와 관련된 위험을 완화하면서 AI 기반 코드 생성의 이점을 활용할 수 있습니다.
AI 보안의 발전
지속적인 연구 개발 노력은 AI 시스템의 보안을 개선하는 데 중점을 두고 있습니다. 이러한 노력에는 적대적 공격을 탐지하고 방지하기 위한 새로운 기술 개발, AI 모델의 견고성 향상 및 더욱 안전한 AI 아키텍처 생성이 포함됩니다.
AI 개발에 보안 통합
보안이 AI 개발 프로세스에 점점 더 통합되고 있습니다. 여기에는 AI 모델 설계에 보안 고려 사항 통합, 안전한 코딩 방법 사용 및 개발 수명 주기 전반에 걸쳐 보안 테스트 수행이 포함됩니다.
AI와 보안 전문가 간의 협력
AI 시스템의 보안을 보장하려면 AI와 보안 전문가 간의 협력이 필수적입니다. 이 협력은 잠재적인 보안 위험을 식별하고 효과적인 완화 전략을 개발하는 데 도움이 될 수 있습니다.
AI 보안 위험에 대한 인식 증가
AI 보안 위험에 대한 인식 증가는 새로운 보안 도구 및 기술 개발을 주도하고 있습니다. 여기에는 적대적 공격을 탐지하고, AI 모델의 보안을 분석하고, AI 시스템에서 의심스러운 활동을 모니터링하는 도구가 포함됩니다.
AI 생성 코드와 관련된 보안 문제를 해결함으로써 조직은 AI 기반 개발의 잠재력을 최대한 발휘하고 시스템과 데이터를 사이버 공격으로부터 보호할 수 있습니다.