AI 공급망 문제는 실재합니다. 또한 이는 수십 년 된 문제입니다.
요약
AI 모델의 공급망 보안과 데이터 오염 문제는 새로운 이슈가 아닌 오래된 과제임을 지적합니다. Semgrep의 에세이를 비판하며, 모델의 블랙박스 특성보다 검증되지 않은 데이터 학습으로 인한 취약점 발생과 도입의 실패가 핵심 문제임을 강조합니다.
핵심 포인트
- AI 모델의 공급망 및 데이터 오염 문제는 수십 년 된 고전적 위협임
- GitHub Copilot 등 코드 생성 모델의 취약점은 이미 2021년에 입증됨
- 소량의 악성 데이터로도 대규모 모델에 백도어를 심을 수 있음
- 문제의 핵심은 지식의 부재가 아니라 보안 표준 도입의 실패임
Semgrep은 모델이 우리가 감사할 수 없는 블랙박스 (black boxes)라는 점을 정확히 지적하고 있습니다. 하지만 모델을 오염시키기 위해 공격자가 반드시 필요한 것은 아닙니다. 인터넷이 이미 그 역할을 수행했습니다. 그리고 이 두 위협 사이의 차이점이 바로 그들의 에세이가 생략한 부분입니다.
공개 사항: 저는 AI 기반 취약점 해결 (vulnerability remediation) 분야에서 일하고 있습니다. 다시 말해, 저는 이 논쟁의 대상이 되는 검증 계층 (verification layer)을 구축합니다. 이 점을 염두에 두고 읽어주시기 바랍니다.
Semgrep은 최근 에세이를 통해 AI 모델을 역공학 (reverse engineer)하는 것이 사실상 불가능하며, 학습 데이터에 심어진 백도어 (backdoors)는 거의 탐지할 수 없고, 업계에는 전통적인 소프트웨어와 마찬가지로 모델에 대한 출처 표준 (provenance standards)과 독립적인 감사인 (independent auditors)이 시급히 필요하다고 주장했습니다. 여기서 출처 (Provenance)란 모델이 어디에서 왔는지, 그리고 그 과정에서 어떤 작업이 수행되었는지에 대한 검증 가능한 기록을 의미합니다.
저는 그 내용의 거의 대부분에 동의합니다. 그렇기 때문에 다음과 같은 말을 하는 것이 가치가 있습니다. 이 중 어느 것도 새로운 것이 아닙니다. 그리고 몇몇 부분에서, 그 프레임워크는 독자들을 잘못된 위협으로 안내하고 있습니다.
우리는 이를 1984년부터 알고 있었습니다
이 에세이의 가장 훌륭한 부분은 Ken Thompson의 [
이를 코드 생성 모델 (code-generating models)에 적용하는 것 또한 새로운 일이 아닙니다. 2021년, "]"Asleep at the Keyboard" 연구는 MITRE의 가장 위험한 소프트웨어 취약점 카테고리를 기반으로 구축된 89가지 시나리오를 통해 GitHub Copilot을 테스트했습니다. 생성된 1,689개의 프로그램 중 약 40%가 취약한 것으로 나타났습니다. 저자들의 논거는 공급망 (supply chain) 문제였으며, 이는 토씨 하나 틀리지 않고 다음과 같았습니다: 모델이 검증되지 않은 방대한 양의 공개 코드를 흡수했으므로, 버그가 있고 악용 가능한 코드를 학습했을 것이라는 점입니다. 그것은 5년 전의 일입니다. 데이터 오염 (Data poisoning) 연구는 훨씬 더 오래전으로 거슬러 올라가며, 최근에는 UK AI Security Institute 및 Alan Turing Institute와 함께 진행된 Anthropic의 연구 (논문)와 함께 정점에 달했습니다. 약 250개의 악성 문서만으로도 6억(600M)에서 130억(13B) 파라미터 규모의 모델에 백도어 (backdoor)를 심기에 충분했습니다. 이는 학습 데이터의 일정 비율이 아니라, 고정된 수치였습니다.
따라서 2026년의 한 에세이가 "모델은 감사 불가능한 공급망을 가지고 있다"라는 내용을 마치 새로운 발견인 양 긴급하게 제시한다면, 정직한 답변은 다음과 같습니다: 맞습니다. 그리고 만약 업계가 여전히 이 말을 들어야 한다면, 그것은 지식의 공백이 아니라 도입의 실패입니다. 문제는 다르며, 해결책도 다릅니다.
인용 문헌을 끝까지 읽으십시오
두 가지 기술적 주장은 교정이 필요합니다. 과도한 주장은 올바른 논지조차 기각되게 만들기 때문입니다.
첫째, 해당 에세이는 역공학 (reverse engineering)을 통해 "행동에 대한 완전한 설명"을 생성할 수 있다고 주장하며 모델과 컴파일된 바이너리 (compiled binaries)를 대조합니다. 그것은 불가능합니다. 패킹된 (packed) 악성코드 샘플 내부에서 일주일을 보낸 사람이라면 누구에게든 물어보십시오. 프로그램이 무엇을 하는지에 대한 일부 질문은 수학적으로 결정 불가능 (undecidable)하며, 이것은 논쟁의 여지가 없는 사실입니다. 공정한 주장은 바이너리가 모델 가중치 (model weights)보다 분석하기 훨씬 쉽다는 것입니다. 그것은 사실이며, 그것만으로도 충분합니다.
둘째, 해당 에세이는 두 가지 서로 다른 연구 결과를 하나의 무시무시한 문장으로 압축했습니다. 즉, 사전 학습 (pretraining) 중 소량의 오염 (poisoning)이 지속적인 악성 행동을 유발한다는 것입니다. 이는 정확하지 않습니다. 250개의 문서 결과는 조잡한 백도어 (backdoor)였습니다. 즉, 트리거 문구 (trigger phrase)가 입력되면 횡설수설이 출력되는 방식입니다. 저자들 스스로도 이것이 프런티어 모델 (frontier models)에서는 큰 영향을 미치지 않을 가능성이 높다고 언급했으며, 동일한 논문에서 해당 사전 학습 백도어들은 일반적인 사후 학습 (post-training) 과정을 견뎌내지 못했습니다. 지속성 (persistence)에 관한 결과는 다른 논문인 Sleeper Agents에서 나온 것입니다. 해당 연구에서는 연구자들이 더 큰 모델에 기만적인 행동을 의도적으로 학습시켰으며, 표준적인 안전 학습 (safety training)이 이를 제거하는 데 실패했음을 보여주었습니다. 두 결과 모두 실제입니다. 하지만 이 둘을 짜깁기한 주장은 두 논문 어디에도 나타나지 않습니다.
이것은 오픈 웨이트 (open-weight) 문제가 아닙니다. 대규모 학습 (training-at-scale) 문제입니다.
에세이는 오픈 웨이트 모델을 언급하며 제목의 논지를 완화하고, 지정학적인 자극을 추가합니다. 즉, 특정 국가에서 구축된 모델을 신뢰해야 하는가 하는 문제입니다. 하지만 에세이 자체의 가장 강력한 문장이 그 논지를 스스로 깎아내립니다. 우리는 이력을 검증할 수 없는 모든 모델을 걱정해야 합니다.
불편한 사실은 이것입니다. 모든 연구소는 동일한 오염된 물을 마시고 있습니다. 즉, 좋고 나쁨, 보안이 잘 되었거나 취약한 것, 의도적으로 취약하게 만든 튜토리얼 코드, 실수로 취약해진 프로덕션 코드 (production code) 등 스크래핑된 공개 코드가 모두 포함됩니다. 그것들이 그곳에 있었기 때문에 모두 포함된 것입니다. 물론 중복 제거 (deduplication), 품질 점수 산정 (quality scoring), 라이선스 확인 (license checks)과 같은 필터링 과정이 존재합니다. 하지만 아무도 페타바이트 단위의 학습 코드를 대상으로 보안 검토 (security review)를 수행하지 않습니다. 아무도 그럴 여력이 없습니다.
그리고 블랙박스 (black-box) 특성은 라이선스가 아니라 아키텍처 (architecture)에서 기인합니다. 오히려 폐쇄형 모델 (closed model)이 조사하기 더 어렵습니다. 가중치 (weights)조차 얻을 수 없기 때문입니다. 당신에게 주어지는 것은 텍스트 박스뿐입니다.
오픈 웨이트에 있어 진정으로 더 나쁜 점은 단 하나입니다. 누구나 익숙한 이름으로 모델 허브 (model hub)에 변조된 파인튜닝 (fine-tune)을 업로드할 수 있으며, 원본 출시 이후 그 모델에 어떤 일이 일어났는지 증명할 방법이 없다는 것입니다. 그것은 실제적인 격차 (gap)입니다. 하지만 그것은 서명되지 않은 파일 (unsigned files)에 관한 격차이지, 개방성 자체가 위험하다는 것에 관한 것이 아닙니다.
건초더미와 바늘
여기에 에세이가 결코 구분 짓지 않은 차이점이 있으며, 이것이 당신이 실제로 무엇을 구축해야 하는지를 알려줍니다.
건초더미 (haystack)는 우발적인 오염 (accidental poisoning)이며, 이는 이론이 아닙니다. 그것은 이미 오픈 소스든 폐쇄형이든 모든 모델 내부에 존재합니다. 주요 실패 모드 (failure mode)는 심어진 백도어 (backdoors)가 아닙니다. 그것은 작동하는 보안 취약 코드가 있는 것입니다: 문자열을 단순히 이어 붙여 만든 SQL 쿼리, 취약한 비밀번호 해싱 (password hashing), 꺼져 있는 인증서 확인 (certificate checks) 등이 그것입니다. 이러한 패턴들은 훈련 데이터 (training data) 어디에나 존재하는데, 정확히 그것들이 작동하고, 복제되며, 별표(star)를 받기 때문입니다. 모델은 우리가 게시한 것을 정확히 학습했습니다. 공격자가 필요하지도 않습니다.
그리고 여기서 핵심은 이것입니다: 출처 (provenance)는 건초더미 문제에 도움이 되지 않습니다. 훈련 데이터의 모든 바이트를 문서화하더라도 오염은 그대로 남습니다. 왜냐하면 그 오염은 대중적이고 합법적인 코드이기 때문입니다. 건초더미는 출력 (output) 단계에서 포착됩니다. 모델이 작성하는 것을 스캔하십시오. 생성된 모든 변경 사항이 배포되기 전에 검증하십시오. 확인하지 않은 디프 (diff)는 절대 신뢰하지 마십시오.
바늘 (needle)은 의도적인 백도어 (deliberate backdoor)입니다: 250개 문서 공격, 혹은 슬리퍼 에이전트 (sleeper agent)와 같은 것입니다. 이것은 더 드물며, 지금까지 주요 모델을 대상으로 야생 (in the wild)에서 발견된 사례는 없습니다. 또한 이것은 반대되는 특성을 가집니다. 출력 검사로는 이를 거의 잡아낼 수 없는데, 왜냐하면 이는 당신이 테스트할 줄 모르는 입력값에 대해서만 작동하기 때문입니다. 이것이 바로 서명된 가중치 (signed weights)와 검증된 모델 이력 (verified model history)이 핵심적인 역할을 하는 유일한 경우입니다.
두 가지 위협. 완전히 다른 두 가지 방어책. 이 둘을 하나로 묶어버리는 에세이는 누군가가 모든 것을 감사 (audit)해야 한다는 결론밖에 내릴 수 없습니다. 그것은 맞는 말이긴 하지만, 쓸모없는 말입니다.
감사인은 이미 존재합니다. 어려운 부분은 그렇지 않습니다.
이 에세이는 마치 이 분야가 비어 있는 것처럼 신뢰할 수 있는 제3자와 출처(provenance) 표준을 요구하며 끝을 맺습니다. 하지만 그렇지 않습니다. CycloneDX에는 ML-BOM이 있습니다. SPDX 3.0은 AI 프로필 (AI profile)을 탑재하고 있습니다. OpenSSF는 작동 가능한 Sigstore 구현 (Sigstore implementation)을 포함한 모델 서명 규격 (model signing spec)을 보유하고 있습니다. NIST는 AI 리스크 관리 프레임워크 (AI Risk Management Framework)를 발표했습니다. EU AI 법(EU AI Act)은 그 위에 문서화 및 출처(provenance) 의무를 추가했습니다. 격차는 비전이 아니라 채택(adoption)과 강제력(teeth)에 있습니다.
진정으로 해결되지 않은 문제, 즉 이 에세이가 더 많은 분량을 할애했어야 했던 문제는 소프트웨어 공급망 보안의 핵심인 '재현 가능한 빌드 (reproducible build)'가 모델에게는 손이 닿지 않는 곳에 있을 수 있다는 점입니다. 프런티어 모델 (frontier model)을 재학습시키는 데는 막대한 비용이 듭니다. 학습 데이터는 공유될 수 없습니다. 그리고 심지어 동일한 입력값이라 하더라도 GPU 실행에 따라 동일한 가중치 (weights)를 생성하지 않습니다. 소프트웨어의 비유는 당신이 가장 의지하고 싶은 바로 그 지점에서 무너집니다. 그것은 선언문 (manifesto)이 아니라 연구 과제 (research agenda)입니다.
컴파일러를 신뢰하는 방식처럼 모델을 신뢰하기
Thompson의 교훈은 결코 "컴파일러의 내부 구조를 이해하라"가 아니었습니다. 아무도 제품을 출시하기 전에 최적화 도구 (optimizer)의 소스 코드를 읽지 않습니다. 우리가 컴파일러를 신뢰하는 이유는 테스트 스위트 (test suites), 독립적인 구현 (independent implementations), 재현 가능한 빌드 (reproducible builds), 서명된 릴리스 (signed releases)와 같이 수십 년간 쌓여온 검증 체계가 그 주변에 형성되었기 때문입니다.
모델도 같은 방식으로 신뢰를 얻을 것이며, 에세이가 제시한 목적지는 옳습니다. 하지만 길은 두 갈래로 나뉩니다. 모델이 침해되었다고 가정하고 모든 출력을 검증하십시오. 통계적으로 모델의 학습 데이터는 이미 침해되었기 때문입니다. 그리고 모든 모델을 그 이력과 함께 서명하십시오. 언젠가 누군가의 모델이 실제로 침해될 것이기 때문입니다.
문제는 새로운 것이 아닙니다. 단지 작업이 미완성일 뿐입니다. 그리고 어떤 방어책이 어떤 위협을 막는지 명시하는 것이 바로 그 작업을 완성하는 방법입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기