AI 생성 코드는 더 버그가 많을까? 2025-26년 데이터
요약
2025-26년 최신 연구 및 벤더 보고서에 따르면 AI 생성 코드는 인간이 작성한 코드보다 보안 취약점과 결함이 더 많이 발견되는 것으로 나타났습니다. Veracode는 AI 코드의 45%가 OWASP Top 10 취약점을 포함한다고 밝혔으며, PR당 이슈 발생 빈도도 더 높았습니다.
핵심 포인트
- AI 생성 코드의 45%가 OWASP Top 10 보안 취약점을 포함함
- AI 보조 풀 리퀘스트(PR)의 이슈 발생률이 인간 작업 대비 1.7배 높음
- Java 언어에서 AI 생성 코드의 취약점 발생률이 72%로 가장 높게 나타남
- AI 채택률 증가에 따라 월간 보안 탐지 건수가 급격히 상승하는 추세임
2025년과 2026년의 주요 연구들에 따르면, AI 생성 코드(AI-generated code)는 측정 가능한 수준으로 더 많은 결함(defects)을 포함하고 있습니다. Veracode는 그중 45%가 OWASP Top 10 취약점(vulnerability)을 포함한 채 배포되었다는 것을 발견했으며, CodeRabbit은 풀 리퀘스트(pull request, PR)당 이슈가 1.7배 더 많음을 측정했고, Apiiro는 보안 탐지(security findings)가 10배 증가했음을 추적했습니다. 또한 USENIX 연구에서는 AI가 제안한 패키지 5개 중 약 1개가 존재하지 않는다는 것을 발견했습니다. AI 코더를 위한 버그 스캐너(bug scanner)인 BrassCoders가 존재하는 이유는 이러한 수치들이 실제 코드베이스(codebases)에 그대로 나타나기 때문입니다.
아래 수치들은 방법론이 링크된 명시된 출처로부터 가져온 것입니다. 이 중 여러 개는 스캐닝 도구를 판매하는 벤더(vendor)의 자료이므로, 벤더 보고서(vendor reports)로 라벨링되었으며 학술 연구가 존재하는 경우와 함께 병기되었습니다.
AI 코드의 보안 취약점 (Security Vulnerabilities)
BrassCoders는 Veracode가 측정한 취약점 클래스(weakness classes)를 스캔합니다. 2025 GenAI Code Security Report에 따르면, 80개의 실제 코딩 작업에 대해 100개 이상의 모델을 테스트한 결과, AI 생성 코드 샘플의 45%가 OWASP Top 10 취약점을 유발했습니다.
실패율은 언어별로 차이가 있었습니다. Java가 72%로 가장 좋지 않았으며, Python, JavaScript, C#은 그보다 낮았지만 여전히 상당한 수준이었습니다. 이 테스트는 설문 조사가 아닌 객관적인 테스트였습니다. 각 샘플은 알려진 취약점 클래스에 대해 검사되었습니다. 이는 "AI 코드가 안전한가"라는 질문에 대해 가장 많이 인용되는 근거이며, 그 답변은 거의 절반의 경우 안전하지 않다는 것입니다.
풀 리퀘스트(Pull Request)당 더 많은 이슈 발생
BrassCoders는 추가적인 이슈들이 나타나는 프리 머지(pre-merge) 단계에서 실행됩니다. CodeRabbit의 State of AI vs Human Code Generation 보고서에 따르면, 470개의 오픈 소스 GitHub PR을 대상으로 조사한 결과 AI 보조 풀 리퀘스트(AI-assisted pull requests)에서 이슈가 1.7배 더 많이 측정되었습니다. 즉, 인간만 작업한 경우 PR당 6.45개인 것에 비해 AI 보조 작업은 PR당 10.83개의 이슈가 발생했습니다.
이것은 AI 리뷰 서비스를 판매하는 기업의 벤더 보고서이므로, 그에 맞춰 비중을 조절하여 해석해야 합니다. 유용한 세부 정보는 PR당 차이(delta)입니다. 풀 리퀘스트(Pull Request, PR)당 약 4개 정도의 추가 이슈는 리뷰어가 AI 보조를 받은 모든 변경 사항에서 떠안게 되는 분류(triage) 부하를 의미합니다. 이러한 부하는 인간이 검토하기 전에 결정론적인(deterministic) 1차 검토를 통해 줄여야 하는 대상입니다.
채택률에 따라 증가하는 취약점
AI 보조 속도가 상승함에 따라 BrassCoders의 중요성은 더욱 커지며, 이는 정확히 Apiiro가 보고한 추세와 일치합니다. Apiiro는 2024년 12월과 2025년 6월 사이에 월간 보안 탐지 건수가 10배 증가했으며, 권한 상승(privilege-escalation) 경로가 322% 증가했다고 보고했습니다.
Apiiro의 분석은 수만 개의 기업 저장소(repository)에 걸쳐 수천 명의 개발자를 대상으로 이루어졌습니다. 더 많은 코드가 더 빠르게 배포된다는 것은 절대적인 수치 측면에서 더 많은 탐지 결과가 나온다는 것을 의미하며, 그 구성은 더 높은 심각도를 가진 아키텍처 및 권한 상승 결함 쪽으로 이동했습니다. 게이트(gate) 없는 속도는 문제를 악화시킵니다.
존재하지 않는 패키지들
BrassCoders는 설치 전에 해결되지 않는 임포트(import)를 식별하며, 이는 AI 특유의 결함 유형에 대한 방어책입니다. USENIX Security 2025 연구에 따르면, LLM(대규모 언어 모델)이 생성한 코드에서 권장된 패키지의 19.7%가 존재하지 않았으며, 조작된 이름 중 43%는 반복된 프롬프트에서 재발했습니다.
해당 연구는 16개 모델에 걸친 576,000개의 코드 샘플에서 223만 개의 패키지 참조를 생성했습니다. 오픈 소스 모델(open-source models)은 상용 모델(commercial models) (5.2%)보다 더 많은 환각(hallucination, 21.7%)을 일으켰습니다. 가짜 이름이 반복되기 때문에, 공격자는 이를 등록하고 기다릴 수 있는데, 이를 슬롭스쿼팅(slopsquatting) 공격이라고 부릅니다. 이러한 방식으로 심어진 실제 개념 증명(proof-of-concept) 패키지는 수만 건의 다운로드를 기록했습니다. 임포트는 해결되거나 되지 않거나 둘 중 하나이므로, 이는 명확한 결정론적(deterministic) 검사가 가능합니다.
인식의 격차
BrassCoders는 데이터가 지속적으로 드러내고 있는 격차를 메웁니다. 즉, 개발자들이 측정된 수치보다 AI 코드를 더 신뢰한다는 점입니다. Snyk의 2023년 보고서에 따르면 개발자의 거의 80%가 AI 생성 코드가 사람이 작성한 코드보다 더 안전하다고 믿는 반면, METR의 2025년 실험에서는 숙련된 개발자들이 AI 도구를 사용할 때 19% 더 느렸음에도 불구하고 스스로 20% 더 빠르다고 믿는 것으로 나타났습니다.
Snyk의 설문 조사와 METR의 무작위 대조 실험은 서로 다른 것을 측정하지만, 결과는 동일한 방향을 가리킵니다. AI 출력물에 대한 신뢰도가 측정된 품질보다 앞서 나가고 있다는 것입니다. 결정론적 게이트 (deterministic gate)는 이러한 신뢰도와 논쟁하지 않습니다. 그저 코드를 검사할 뿐입니다.
수치가 귀하의 워크플로에 의미하는 것
BrassCoders는 이러한 집계된 수치들을 커밋당 검사(per-commit check)로 전환합니다. 12개의 스캐너가 귀하의 AI 생성 Python 코드를 대상으로 실행되며, 그 결과를 YAML 형식으로 결정론적이고 오프라인 방식으로 출력합니다. 연구들이 인구 통계적 규모(population scale)에서의 문제를 설명한다면, 이 스캔은 귀하의 브랜치(branch)에서 그 문제를 해결합니다.
데이터를 있는 그대로 읽자면, AI 코딩 어시스턴트는 더 많은 결함(defects)과 존재하지 않는 패키지(packages-that-don't-exist)를 배포하며, 개발자들은 이 두 가지 모두를 과소평가하고 있습니다. 이 수치들을 매번 실행되는 게이트와 결합하십시오.
pip install brasscoders
brasscoders --offline scan /path/to/your/project
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기