AI VIDEO BRIEFING
AI 코딩 보안 위험 총정리 — 프롬프트 인젝션·CI/CD 토큰 유출·패키지 환각 스쿼팅
NDC 코펜하겐 강연에서 AI가 생성한 코드의 취약점 실험 결과, 깃허브 액션 워크플로를 통한 비밀 키 유출 라이브 시연, 존재하지 않는 패키지 이름을 노린 공급망 공격까지 새로 생긴 위험을 차례로 짚었다.

핵심 메시지
쉽게 이해하기
NDC 코펜하겐에서 아이키도 시큐리티 소속 매켄지 잭슨이 15분짜리 라이트닝 토크로 AI 코딩이 개발 과정에 들여온 위험을 정리했다. 그는 소속을 밝힌 뒤 회사 이야기는 더 하지 않겠다고 선을 긋고, 자사 조사와 실제 취약점 사례, 라이브 시연으로 발표를 채웠다. 깃허브 집계로 개발자의 97%가 코드 작성에 AI를 쓴다는 통계를 인용하며, 이제는 어디까지가 AI가 쓴 코드인지 구분하는 것조차 의미가 옅어졌다고 말한다.
첫 번째 주제는 생성된 코드 자체의 안전성이다. 발표자 팀은 메모리 안전 언어와 그렇지 않은 언어를 섞어 다섯 개 언어를 고른 뒤, 독립 실행이 가능한 함수를 만들게 하는 프롬프트 100개를 그대로 한 번, 끝에 '안전하게 만들어달라'만 덧붙여 한 번씩 총 1000회 실행하고 정적·동적 분석 도구로 검사했다. 첫 실험에서는 상당수 함수에 취약점이 하나 이상 들어 있었고, 문장 하나를 붙인 쪽은 취약점이 크게 줄었다. 그는 모델이 지시를 받을 때 안전성과 속도 같은 판단을 스스로 채워 넣지만 결국 다음 단어를 예측하는 기계여서 학습 데이터의 허술한 코드를 재현할 수 있다고 설명한다. 최근 다시 진행한 실험에서는 모델이 전반적으로 개선됐고 '안전하게'를 붙인 경우와의 격차도 좁아졌지만, 그는 애플리케이션의 의도를 잘못 해석해 생기는 비즈니스 로직 결함만큼은 코딩 오류가 아니어서 남을 것이라고 본다.
두 번째 주제는 프롬프트 인젝션이다. 챗봇 시절과 달리 도구를 쥔 에이전트가 등장하면서 위험도가 달라졌다는 것이 그의 진단이다. 사용자 입력과 시스템 프롬프트, 모델 자체의 규칙이 모두 같은 층위에서 한꺼번에 해석되기 때문에, SQL 인젝션에서 쓰던 매개변수 분리 같은 대응이 불가능하다. 검사용 모델을 앞에 세우는 방식도 모델을 두 번 뚫으면 그만이라, 모델을 40개 붙여도 통과할 수 있다고 말한다.
가장 구체적인 사례는 CI/CD 파이프라인이다. 공개 저장소에 이슈가 쏟아지면 AI에게 분류와 태깅을 맡기는 것이 자연스러운 선택인데, 이때 이슈 제목과 본문이 그대로 모델에 들어간다. 발표자는 구글을 포함한 여러 회사에서 이 구조의 취약점을 찾았고, 제미나이 CLI 도구에서는 원격 코드 실행과 함께 깃허브 인증 토큰과 API 키까지 꺼낼 수 있었다고 밝혔다. 무대에서는 빈 계정으로 만든 취약한 깃허브 액션에 추가 지시가 담긴 이슈를 등록해, 이슈가 사라지고 비밀 값만 남는 과정을 그대로 보여줬다.
마지막은 공급망이다. 그는 취약점 발견부터 CVE 발급까지 평균 석 달이 걸리는 체계가 악성 코드 대응에는 이미 무너졌다고 말한다. 주간 다운로드가 26억 회에 이르는 패키지들을 관리하던 메인테이너가 피싱을 당한 사건에서, 계정 복구까지 네 시간 반이 걸렸지만 CVE는 이레 뒤에야 나왔고 그 사이 클라우드 계정의 약 10%가 영향을 받았다. 여기에 모델이 실재하지 않는 패키지를 추천하는 문제가 겹친다. 발표자가 시연한 질문에서는 추천받은 패키지가 전부 존재하지 않았고, 이런 이름을 공격자가 먼저 등록해두는 수법에 한 보안 연구진의 시험 패키지가 3만 회 내려받아졌다.
주요 인사이트
- 프롬프트 한 문장이 결과를 바꾼다는 실험은 편리한 요령이 아니라 경고에 가깝다. 명시하지 않은 요구사항은 모델이 임의로 채운다는 뜻이므로, 보안 요건은 지시문과 리뷰 양쪽에 명문화돼야 한다.
- 구글 사례의 해법이 시사적이다. 인젝션 자체를 없앨 수 없으니 모델이 얻은 정보를 밖으로 전달할 능력을 끊는 방향으로 막았고, 그 대가로 기능은 덜 유용해졌다. 자동화 편의와 권한 축소는 맞바꿔야 하는 관계다.
- AI에게 권한을 주는 순간 파이프라인의 신뢰 경계가 바뀐다. 공개 저장소의 이슈 제목처럼 누구나 쓸 수 있는 입력이 비밀 값에 접근하는 워크플로로 흘러드는 구조인지부터 점검할 필요가 있다.
- 학습 시점이 지난 모델은 최신 취약점을 모른 채 의존성을 추천한다. 스택 오버플로를 뒤지던 시절보다 편해졌지만, 버전 선택만큼은 사람이 최신 상태를 확인해야 하는 이유다.
- 발표자는 악성 코드 탐지에서는 오히려 AI가 유리하다고 본다. 규칙 기반 스캐너가 잡기 어려운 비결정적 신호를 판단할 수 있기 때문인데, 다만 맥락을 읽는 고급 도구는 비용이 커서 정적 분석과 조합해야 한다는 단서를 붙였다.
자주 묻는 질문
'안전하게 만들어달라'는 문장을 붙이면 왜 취약점이 줄어드나?
발표자는 모델이 지시를 실행할 때 명시되지 않은 요구사항을 스스로 가정하기 때문이라고 설명한다. 얼마나 안전해야 하는지를 지정하지 않으면 다른 기준으로 답을 채우는데, 검증 조건을 문장에 넣으면 결과가 달라진다는 것이다.
프롬프트 인젝션을 검사용 모델로 막을 수는 없나?
발표자는 어렵다고 본다. 규칙 기반으로 막으면 규칙에 없는 표현을 찾으면 되고, 앞단에 다른 모델을 세우면 모델을 두 번 뚫으면 된다. 난이도가 기하급수적으로 오르지 않기 때문에 모델을 여러 개 겹쳐도 통과할 수 있다는 설명이다.
'환각 스쿼팅'은 어떤 공격인가?
모델이 자주 지어내는 패키지 이름을 공격자가 실제로 등록해두는 수법이다. 발표자가 인용한 조사에서 추천 패키지 중 5~20%가 실재하지 않았고, 한 보안 연구진이 이를 시험한 패키지는 3만 회 내려받아졌다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗