소개: AI 코드 보안 및 새로운 위험
대규모 언어 모델(LLM)과 AI 지원 코딩 도구는 개발 주기를 단축하고 비용을 절감하며 생산성을 향상시키는 데 있어 엄청난 잠재력을 제공합니다. 그러나 이러한 가속화에는 대가가 따릅니다. AI로 생성된 코드는 심각한 보안 위험을 야기하며, 이러한 위험 중 상당수는 제대로 이해되지 않고, 적절히 완화되지 않으며, 대부분 규제되지 않고 있습니다. AI로 생성된 코드에 내재된 취약점은 AI 기반 소프트웨어 개발을 평가, 보안 및 관리하도록 설계된 제한된 프레임워크와 방법론으로는 식별하고 해결하기 어렵습니다.
인공 지능(AI) 코드 생성 모델은 안전하지 않은 코드를 생성할 가능성이 있습니다. 그러나 연구에 나타난다. 사용자들은 AI가 생성한 코드를 사람이 생성한 코드보다 더 신뢰할 만하다고 인식하고 있으며, AI 생성 코드의 문제점을 식별하고 해결하는 방법을 자세히 설명하는 프레임워크도 부족합니다. 이로 인해 조직은 심각한 취약점과 위험을 감수해야 하는 심각한 사각지대에 놓이게 됩니다.
예를 들어, 다음 연구에서는 AI가 생성한 코드와 관련된 보안 문제의 정도를 살펴봅니다.
- 130개의 코드 샘플 중 InCoder와 Github Copilot을 사용하여 생성한 코드 샘플의 68%와 73%는 수동으로 검사했을 때 취약점을 포함하고 있었습니다.
- ChatGPT는 생성에 사용되었습니다. 5가지 프로그래밍 언어로 작성된 21개 프로그램을 대상으로 CWE(코드 무결성 오류) 검사를 실시한 결과, 21개 프로그램 중 5개만 초기에는 안전한 것으로 나타났습니다. 코드 수정을 위한 구체적인 안내가 있은 후에야 7개 프로그램이 안전한 코드를 생성했습니다.
- 평균 48% 5개의 서로 다른 LLM에서 생성된 코드에는 잠재적으로 악의적인 악용으로 이어질 수 있는 버그가 하나 이상 포함되어 있습니다.
이러한 결과에도 불구하고, 사용자들은 AI가 생성한 코드가 사람이 작성한 코드보다 더 안전하다고 인식한다는 초기 징후들이 있습니다. AI가 생성한 코드에 대한 이러한 "자동화 편향"은 사용자들이 신중한 코드 검토를 간과하고 안전하지 않은 코드를 그대로 받아들일 수 있음을 의미합니다. 예를 들어, 2023년 산업 조사 537명의 기술 및 IT 종사자와 관리자 중 76%가 AI 코드가 인간이 작성한 코드보다 더 안전하다고 응답했습니다.
AI 코드를 취약하게 만드는 요인
생성 AI 시스템은 여러 유형의 적대적 공격에 대한 알려진 취약점을 가지고 있습니다. 여기에는 공격자가 모델의 훈련 데이터를 오염시켜 원하는 행동을 유도하는 데이터 포이즈닝 공격과, 공격자가 미리 정해진 트리거 문구를 모델에 입력하여 특정 출력을 생성하려고 시도하는 백도어 공격이 포함됩니다. 코드 생성 맥락에서 데이터 포이즈닝 공격은 공격자가 모델의 훈련 데이터를 조작하여 악성 패키지나 라이브러리를 임포트하는 코드를 생성할 가능성을 높이는 것으로 보일 수 있습니다.
모델 자체에 대한 백도어 공격은 개발자가 제거하려고 시도하더라도 지속될 수 있는 단일 트리거로 모델의 동작을 크게 변경할 수 있습니다. 이러한 변경된 동작은 개발자가 모델에 설정한 제한 사항(예: "맬웨어와 관련된 코드 패턴을 제안하지 마십시오")을 위반하거나 원치 않거나 민감한 정보를 노출할 수 있는 출력을 초래할 수 있습니다. 연구원들은 코드 생성 모델이 한정된 수의 검증되지 않은 코드 저장소에서 대량의 데이터를 사용하여 학습되기 때문에 공격자가 악성 코드가 포함된 파일을 사용하여 이러한 저장소에 쉽게 침투하거나 취약한 코드가 포함된 새로운 저장소를 의도적으로 추가할 수 있다고 지적했습니다.
코드 생성 모델의 인터페이스 또는 스캐폴딩에 따라 간접 프롬프트 주입과 같은 다른 형태의 적대적 공격이 발생할 수 있습니다. 간접 프롬프트 주입은 공격자가 합법적인 사용자에게 지시를 숨기고 특정 방식으로 동작하도록 모델에 지시를 내리는 공격입니다. 사용자가 특정 방식으로 지시를 내려 생성 모델을 공격하는 직접 프롬프트 주입(일명 "탈옥")과 달리, 간접 프롬프트 주입은 모델이 웹사이트와 같은 제3자 소스에서 숨겨진 지시가 포함된 손상된 데이터를 검색해야 합니다.
코드 생성 맥락에서 외부 웹 페이지나 문서를 참조할 수 있는 AI 모델은 합법적인 프롬프트와 악성 프롬프트를 구별하는 방법이 없을 수 있으며, 가설적으로 특정 패키지를 호출하거나 안전하지 않은 코딩 패턴을 따르는 코드를 생성하도록 지시할 수 있습니다.
마지막으로, 코드 생성 모델은 광범위한 권한이 부여될 경우 더욱 효과적이고 유용할 수 있지만, 이는 결국 공격의 잠재적 매개체가 되어 보안을 더욱 강화해야 합니다. 대부분의 AI 생성 코드는 전문적인 환경에서 내장된 테스트 및 보안 평가를 포함하는 개발 파이프라인을 통해 생성될 가능성이 높지만, AI 기업들은 코드 작성 모델을 포함한 모델에 더 많은 자율성과 환경과의 상호 작용 능력을 부여하기 위한 전략을 적극적으로 개발하고 있습니다.
생성 AI 시스템, 특히 코드 생성에 사용되는 시스템은 데이터 포이즈닝, 백도어 조작, 즉석 주입 등 다양한 적대적 공격에 본질적으로 취약합니다. 이러한 공격은 훈련 데이터, 모델 동작, 외부 종속성의 취약점을 악용하여 공격자가 악성 코드를 유포하거나 우회할 수 있도록 합니다. safeAI 모델이 합법적인 입력과 악의적인 입력을 일관되게 구분하지 못하는 것은 이러한 위험을 더욱 악화시키며, 특히 모델이 외부 리소스와 상호 작용하거나 광범위한 권한으로 작동하는 상황에서 더욱 그렇습니다.
AI 생성 코드를 위한 모범 사례 프레임워크
일련의 모범 사례를 구현하면 조직은 위험을 완화하고, 규정 준수를 보장하며, 효과적인 보안 조치를 유지할 수 있습니다. 아래는 AI 생성 코드의 보안을 유지하기 위한 규정 준수 프레임워크 제안입니다.
| 카테고리 | 연습 | 목표 | 행동 단계 | 결과 |
| 테스트 및 검증 | LLM 및 해당 출력 테스트 | 취약점을 식별하고 일관되고 안전한 AI 생성 코드를 보장합니다. | 적대적 테스트를 수행하고 다양한 실제 프롬프트를 시뮬레이션하고 에지 사례를 검증합니다. | 안전하지 않은 출력의 위험 최소화 및 코드 일관성 개선 |
| 도구 통합 | SAST 및 SCA 도구 사용 | 소스 코드, 종속성 및 런타임 환경의 취약점을 감지합니다. | CI/CD 파이프라인에 도구를 내장하고, 스캔을 자동화하고, 식별된 문제를 해결합니다. | 개발 라이프사이클 전반에 걸친 포괄적인 보안 적용 |
| 컨트롤에 액세스 | 역할 기반 액세스 제어(RBAC) 구현 | AI 시스템 및 중요 기능에 대한 무단 액세스를 제한합니다. | 세분화된 역할과 권한을 정의하고 세분화를 시행하며 자세한 액세스 로그를 유지 관리합니다. | 오용 위험 최소화 및 책임 강화 |
| 정책 및 규정 준수 | 규정 준수 템플릿을 사용하여 정책 시행을 자동화합니다. | 조직 및 규제 요구 사항에 맞춰 조정 | Deploy GDPR, HIPAA 및 PCI DSS 규정 준수를 위한 템플릿을 제공하고 보안 표준에 따라 출력을 검증합니다. | 정책에 대한 일관된 준수 및 규정 위반 감소 |
| 추적성 관리 | 소프트웨어 관리 체계 유지 | AI 생성 코드에 대한 추적성과 책임성을 보장합니다. | 코드 출처, 수정 사항 및 배포를 추적하고 거버넌스 도구를 사용하여 편차를 표시합니다. | 취약성 추적 및 감사 가능성 유지 능력 향상 |
| 회복력 측정 | 점진적인 전달 및 롤백 전략을 통합합니다. | 프로덕션 환경의 취약점을 탐지하고 완화합니다. | 카나리아 테스트, 블루-그린 배포를 수행하고 식별된 문제에 대한 자동 롤백을 활성화합니다. | 생산 시스템에 대한 취약점의 영향 감소 |
| 중앙 집중식 관리 | 통합 플랫폼을 사용하여 도구와 프로세스를 관리하세요 | 보안 워크플로우를 간소화하고, 위험을 모니터링하고, 수정을 우선시합니다. | SAST, DAST 및 SCA 데이터를 집계하고, 워크플로를 자동화하고, 대시보드를 통해 가시성을 제공합니다. | 팀 간 운영 효율성, 위험 완화 및 협업이 향상되었습니다. |
검토wing Tools 및 프로세스 Digital.ai
Digital.ai Release 그리고 데플로y는 AI 생성 코드 보안을 위한 모범 사례를 준수하기 위해 포괄적인 도구, 알림 및 정책을 통합합니다. 다음은 목록입니다. Digital.aiAI가 생성한 코드의 보안을 강화하는 데 사용되는 관련 기본 통합 및 기본 기능입니다.
Digital.aiAI 생성 코드 보안을 위한 통합
- Application Security 지원 – Checkmarx는 SAST 검사를 용이하게 하고, Black Duck은 SCA 검사를 실행합니다.
- 정책 시행 – OPA(Open Policy Agent)는 CI/CD 파이프라인 전체에서 정책을 코드로 구현합니다.
- 연속 배달 – ArgoCD와 Argo Rollouts는 지속적이고 점진적인 배포와 GitOps 워크플로를 용이하게 합니다.
Digital.aiAI 생성 코드 보안을 위한 기본 기능
- 역할 기반 액세스 제어 – 규정 준수 의무를 시행하는 동시에 LLM과 사용자 간에 최소 권한을 적용합니다.
- 감사 및 규정 준수 추적 – 도구, 사용자 및 환경 전반의 모든 활동을 검토하여 규정 준수 달성에 어떤 영향을 미치는지 평가합니다.
- 분석 및 워크플로 – 환경 및 보안 추세를 평가하고, 문제가 발생할 때마다 이를 해결하고 규정 준수 의무를 시행하기 위해 업무를 위임하고 워크플로를 원활하게 진행합니다.
포괄적인 사용 사례: AI 코드 보안 강화
앞서 언급한 도구를 통합하고, 알림을 구성하고, 정책을 시행함으로써 Digital.ai Release Deploy AI가 생성한 코드가 안전하고 규정을 준수하며 운영 효율성이 있는지 확인합니다. 이는 모든 잠재적 사용 사례에 대해 추가로 검토됩니다. Release Deploy, 아래에 나열되어 있습니다.
Application Security 지원
- Checkmarx의 SAST는 AI가 생성한 코드에서 애플리케이션의 안전하지 않은 패턴을 검사합니다. 이러한 검사는 CI/CD 파이프라인에서 코드가 커밋된 후 자동으로 실행되도록 구성되어 개발자에게 즉각적인 피드백을 제공하고 다운스트림 취약점 위험을 최소화합니다.
- Black Duck SCA는 AI 모델이 추천하는 타사 종속성의 취약점을 식별합니다. 이러한 종속성은 알려진 CVE가 있는 라이브러리나 타이포스쿼팅된 악성 패키지와 같은 경우가 많으며, 파이프라인 빌드 단계에서 검사됩니다. 위험한 종속성을 조기에 표시하고 수정함으로써, 은행은 안전하지 않은 라이브러리가 프로덕션 환경에서 제외되도록 보장했습니다.
규정 준수 시행
- OPA(Open Policy Agent)는 CI/CD 파이프라인과 통합되는 코드형 정책(policy-as-code) 기능을 제공합니다. 정책은 GDPR, PCI DSS, 내부 거버넌스 프레임워크와 같은 주요 표준의 시행을 자동화하기 위해 Rego로 작성됩니다. 이는 위험의 심각도, 규정된 조사 및 복구 조치, 그리고 모범 사례 및 규정 준수 요건 준수를 기반으로 합니다. 예를 들어, OPA 정책은 HTTPS를 시행하고 규정 준수 요건을 준수하는 강력한 액세스 제어를 구현하지 않는 한 AI 생성 API 배포를 차단할 수 있습니다. 또한, OPA는 런타임 구성을 검증하여 민감한 데이터가 전송 중 및 저장 중 모두 암호화되었는지 확인합니다. 또한 정책은 CVE 점수가 7.0 이상인 고위험 라이브러리의 포함을 제한하여 안전한 개발을 위한 모범 사례를 준수합니다.
- RBAC는 AI 시스템 및 배포 파이프라인과 상호 작용하는 사용자에게 세분화된 권한을 정의하여 위험을 완화합니다. 개발자는 격리된 환경에서만 코드를 생성하고 테스트할 수 있는 반면, 보안 팀은 출력 결과를 검토, 감사 및 승인할 수 있는 권한을 부여받았습니다. 관리자는 정책을 수정하고, 도구를 관리하고, 배포를 감독할 수 있습니다. 이러한 세분화는 AI 생성 코드의 우발적 또는 악의적인 오용 가능성을 최소화했으며, 상세한 액세스 로그를 통해 시스템 내에서 수행되는 모든 작업에 대한 책임을 부여합니다.
- Digital.ai의 모니터링 대시보드는 SAST, SCA 및 관측 도구의 데이터를 집계하여 조직의 보안 태세를 중앙에서 확인할 수 있도록 합니다. 알림은 심각도가 높은 취약점, 정책 위반 또는 런타임 문제를 팀에 알리도록 구성됩니다. 규정 준수 템플릿은 규정 준수 기준을 시행하기 위한 반복 가능한 워크플로를 제공합니다. 또한, 소프트웨어 관리 체계(Chain of Custody)는 AI 생성 출력부터 배포까지 모든 변경 사항을 추적하여 추적성과 규정 준수를 보장합니다. 예를 들어, AI 생성 스크립트로 인해 취약점이 발생한 경우, 관리 체계는 관련된 특정 프롬프트와 종속성을 파악하여 은행이 근본 원인을 효율적으로 해결할 수 있도록 지원합니다.
사용 사례 요약
이 통합 절차는 소프트웨어 개발 수명 주기의 모든 단계에서 취약점을 식별하여 규정 준수를 강화하고 운영 안정성을 유지합니다. 정책은 규제 기준과의 일치성을 보장하는 동시에, RBAC(역량 기반 접근 제어), 거버넌스 도구, 그리고 관리 연속성(Chain of Custody)은 책임 소재를 명확히 하고 감사 기능을 제공합니다. 자동화된 워크플로는 수작업을 줄이고, 운영을 간소화하며, 문제 해결을 가속화합니다. 이러한 도구를 활용함으로써 AI 생성 코드는 안전하게 보호되고, 위험은 최소화되며, 규정 준수 의무가 준수됩니다.