오픈 소스 AI는 단일 제품이 수십 개의 레포지토리에서 코드를 가져오고, 여러 소스의 학습 데이터에 의존하며, 소수의 팀만이 완전히 문서화한 특수 하드웨어 구성에서 실행되는 거대한 생태계로 성장했습니다. 이러한 의존성을 추적하는 것은 어렵습니다. 해당 스택의 어느 부분이 인터넷에 노출되어 있는지 파악하는 것은 더 어렵습니다. Current AI가 발표한 Open Source AI Gap Map v0.1은 이러한 혼란에 질서를 부여하려는 시도이며, 보안 팀은 이를 필독서로 취급해야 합니다.
이 인덱스는 421개의 오픈 소스 AI 제품을 분류합니다. 이를 AI 모델, 데이터셋, 소프트웨어 도구, 하드웨어의 네 가지 카테고리로 나눕니다. 내부적으로 이 프로젝트 전체는 16,000개 이상의 GitHub 레포지토리를 추적하는 1,184개의 YAML 파일로 구동됩니다. 421개의 제품과 16,000개의 레포지토리 사이의 이 격차 자체가 시사하는 바가 큽니다. 대부분의 AI 애플리케이션은 독립적인 모놀리스(monolith)가 아닙니다. 이들은 추론 엔진, 파인튜닝 스크립트, 데이터 로더, 평가 벤치마크, 드라이버 레이어의 집합체이며, 각각 고유한 레포지토리, 유지 관리자, 커밋 히스토리 및 취약점 프로필을 가지고 존재합니다.
Current AI는 이 데이터셋을 MIT 라이선스로 게시하고 완전히 공개했습니다. 이러한 개방성이 바로 핵심입니다. 누구나 이를 다운로드하고, YAML을 파싱하며, 이를 기반으로 도구를 구축할 수 있습니다. 방어자에게 이러한 접근성은 기회입니다. 공격자에게는 똑같이 편리한 도구가 됩니다.
이 지도가 실제로 추적하는 것
AI를 사용하는 대부분의 조직은 자신들이 무엇을 배포했는지에 대한 명확한 인벤토리를 가지고 있지 않습니다. 한 팀이 인기 있는 허브에서 언어 모델을 다운로드하고, 이를 실행하기 위해 몇 개의 Python 패키지를 설치한 뒤 작업을 마쳤다고 생각할 수 있습니다. 하지만 그 단순한 워크플로 아래에는 중첩된 의존성 세트가 자리 잡고 있습니다. 모델 가중치는 다른 레포지토리에서 옵니다. 토크나이저 설정은 또 다른 곳에서 옵니다. 추론 프레임워크는 세 번째 프로젝트의 포크(fork)일 수 있습니다. CUDA 드라이버와 컨테이너 이미지는 또 다른 소스에서 가져옵니다.
Gap Map은 1,184개의 YAML 파일을 421개의 개별 AI 제품을 중심으로 구성함으로써 이를 포착합니다. 여기에 매핑된 16,000개 이상의 GitHub 레포지토리는 해당 제품을 작동시키는 실제 코드, 설정 및 아티팩트를 나타냅니다. 항목을 모델, 데이터셋, 소프트웨어 도구 및 하드웨어로 분리함으로써, 이 인덱스는 기본적인 질문을 던집니다. "당신의 시스템이 실제로 이 네 가지 레이어 중 무엇을 사용하는지 알고 있습니까?"
만약 프로덕션 환경에서 오픈 소스 거대 언어 모델(LLM)을 실행하고 있다면, 아마도 네 가지 레이어를 모두 사용하고 있을 것입니다. 모델 가중치와 아키텍처에 의존합니다. 직접 다운로드하지 않았더라도 사전 학습(pre-training) 또는 파인튜닝에 사용된 데이터셋에 의존합니다. 모델을 변환, 양자화(quantize) 또는 서빙하기 위해 소프트웨어 도구에 의존합니다. 그리고 GPU 또는 특수 가속기에서 실행 중이라면, 하드웨어 카테고리에 속하는 펌웨어 및 드라이버 스택에 의존하게 됩니다.
보안의 양날의 검
이 데이터셋은 두 가지 목적을 수행하며, 보안 책임자는 양면을 모두 이해해야 합니다.
방어 측면에서 Gap Map은 AI 공급망을 위한 전화번호부와 같은 역할을 합니다. 조직이 의존하는 레포지토리 및 도구를 이 인덱스와 비교하여 가시성의 공백을 찾아낼 수 있습니다. 만약 지도에는 나타나지만 소프트웨어 자재 명세서(SBOM)에는 없는 중요한 레포지토리가 있다면, 섀도우 AI(shadow AI) 인프라를 발견했을 가능성이 높습니다. 이는 공격자가 먼저 발견하기 전에 반드시 알아야 할 사항입니다.
공격 측면에서 이 데이터셋은 정찰(reconnaissance)을 위한 황금 정보입니다. 공격자들은 노출된 AI 인프라, 모델 서빙 엔드포인트, 인기 있는 ML 파이프라인의 취약한 의존성을 끊임없이 스캔합니다. Gap Map은 그들이 관심을 갖는 카테고리별로 정리된, 기계 판독이 가능한 구조화된 타겟 목록을 제공합니다. 단 하나의 YAML 파서로 수천 개의 레포지토리 URL을 추출할 수 있으며, 공격자는 이를 통해 알려진 취약점을 교차 참조하거나, 잘못 설정된 공개 인스턴스를 찾거나, 의존성 혼란 공격(dependency confusion attacks)을 위한 고가치 타겟을 식별할 수 있습니다.
데이터가 MIT 라이선스이며 공개되어 있기 때문에 진입 장벽이 없습니다. 구독도, 승인 절차도 필요 없습니다. 이러한 설계 방식은 연구자와 방어자에게 유용성을 극대화하지만, 위협 행고자에게도 유용성을 극대화합니다. 스택을 강화하는 데 도움이 되는 바로 그 파일이 다른 누군가에게는 타겟 목록을 만드는 데 도움이 됩니다.
이 정보를 어떻게 활용할 것인가
이 데이터셋을 위협 인텔리전스 피드(threat intelligence feed)와 똑같이 취급하십시오. 단순히 북마크만 해두고 잊어버리지 마십시오. 여러분의 환경에 대해 능동적인 점검을 수행하십시오.
우선 팀에서 현재 사용 중인 모든 오픈 소스 AI 컴포넌트 목록을 추출하는 것부터 시작하십시오. 눈에 보이는 것 그 이상을 살펴보십시오. 어떤 저장소가 토크나이저, 평가 스크립트, 양자화 라이브러리, 컨테이너 베이스 이미지를 제공하는지 확인하십시오. 그런 다음 해당 저장소들을 Gap Map에서 추적 중인 16,000개의 항목과 대조해 보십시오. 일치하는 항목을 찾는다면, 여러분의 종속성(dependencies)이 오픈 소스 AI 세계에서 가장 눈에 띄게 인덱싱된 영역 중 하나에 위치해 있음을 확인한 것입니다. 이러한 인지도는 양날의 검과 같습니다. 이는 대개 활발한 유지 관리와 커뮤니티의 면밀한 검토를 의미하지만, 공격자들 또한 이러한 저장소의 존재를 알고 있다는 뜻이기도 합니다.
다음으로, YAML 구조 자체를 살펴보십시오. 1,184개의 각 파일은 제품을 기반 저장소와 표준화된 형식으로 연결합니다. 간단한 스크립트를 작성하여 여러분의 종속성 매니페스트, 패키지 목록 또는 SBOM 내보내기 결과물을 이러한 매핑 정보와 비교할 수 있습니다. 만약 여러분의 프로덕션 스택이 들어본 적도 없는 저장소에 의존하고 있다는 사실을 발견한다면, 더 깊이 파고드십시오. 알려지지 않은 종속성은 공급망 공격이 숨어드는 곳입니다.
하드웨어 계층에 특별한 주의를 기울이십시오. 보안 팀은 종종 소프트웨어와 모델에 집중하는 반면, 드라이버와 펌웨어는 부수적인 요소로 치부하곤 합니다. Gap Map은 하드웨어 관련 저장소를 명시적으로 인덱싱하고 있으며, 이는 GPU 드라이버 스택, 컴파일러 툴체인, 가속기 펌웨어도 결국 코드라는 점을 상기시켜 줍니다. 이들 역시 버그가 있고, 업데이트가 이루어집니다. 그리고 버전이 오래되면 여러분의 파이프라인에서 가장 취약한 공격 대상이 될 수 있습니다.
마지막으로,
