AI 오픈소스 공급망 공격 비상... 허깅페이스 모델 깃허브 딸깍 받았다가 통장 털릴 뻔한 사연 😱

AI 오픈소스 공급망 공격 비상... 허깅페이스 모델 깃허브 딸깍 받았다가 통장 털릴 뻔한 사연 😱

아니 요즘 AI 오픈소스 공급망 공격 비상이라는 소식 들으셨나요? 허깅페이스에서 오픈소스 모델 깃 클론(git clone)해서 딸깍 다운로드했다가 개발자 통장과 개인정보가 거덜 날 뻔한 실체적 위협이 커지고 있습니다.

"별점 높길래 아무 생각 없이 깃허브 딸깍 복붙했는데 내 개인키 다 털림 ㅋㅋㅋ"

요즘 개발자 커뮤니티나 깃허브 이슈 트래커 가보면 이런 절규가 쏟아져 나오고 있습니다. 도대체 왜 멀쩡한 AI 오픈소스 프로젝트들이 악성코드 유포지로 변해버렸는지 하나씩 털어보겠습니다.

AI 오픈소스 공급망 공격 위험성, 허깅페이스 모델 딸깍 다운로드의 최후

AI 오픈소스 공급망 공격은 사전 학습된 AI 모델이나 외부 패키지에 악성 백도어를 숨겨 개발자 시스템 권한을 탈취하는 공격입니다.

과거에는 오타 도메인이나 이상한 깃허브 저장소를 피하면 그만이었지만, 최근에는 해커들이 허깅페이스(Hugging Face)나 PyPI 같은 공식 레포지토리에 대놓고 유명 모델 변종을 올려둡니다. 유명 오픈소스 LLM 가중치 파일 속에 지능적인 백도어를 심어놓고 사용자가 다운로드하는 순간 로컬 컴퓨터를 탈취하는 수법입니다.

특히 요즘 AI 에이전트 개발 트렌드가 뜨면서 커뮤니티 코드를 가져다 쓰는 방식이 보편화되었습니다. 하지만 이런 방심 속에서 코드를 그대로 복붙하다가는 심각한 사고로 이어질 수 있습니다. 최근 이슈가 된 AI 바이브 코딩 보안 취약점 경고 포스트에서도 언급했듯이 AI가 뱉어낸 무검증 코드와 오픈소스 모델을 맹신하는 태도가 화근입니다.

"허깅페이스 다운로드 수 1만 회 넘어가길래 안전한 줄 알았지..."

하지만 다운로드 수나 스타 개수조차도 해커들이 봇으로 부풀릴 수 있다는 점이 충격적인 사실입니다.

허깅페이스 악성 모델 및 Pickle 취약점, 깃허브 코드 복붙하던 개발자 멘붕

Python의 전통적인 Pickle 형식 AI 모델 파일은 데이터 복원 과정에서 임의의 파이썬 코드를 즉시 실행하는 보안 취약점을 지니고 있습니다.

모델 파일(.bin, .pt, .pkl)을 읽을 때 pickle.load() 함수가 내장된 악성 파이썬 커맨드를 샌드박스 없이 그대로 터미널에 실행시키는 구조입니다. 게다가 허깅페이스 로더 함수를 부를 때 trust_remote_code=True 플래그를 습관적으로 켜두는 개발자들이 아주 많습니다. 이 버튼 하나를 누르는 순간 원격 저장소 작성자가 만든 임의의 스크립트가 내 컴퓨터 Root 권한으로 실행되는 셈입니다.

또한 패키지 생태계 공격도 날로 교묘해져 PyPI 오픈소스 해킹 사례가 빈번하게 보고되고 있습니다. 정상적인 파이썬 패키지 이름을 살짝 바꾼 타이포스쿼팅(Typosquatting) 방식으로 악성 라이브러리를 유포해 SSH 키와 암호화폐 지갑을 몰래 털어가기도 합니다. 더 넓은 시야에서 보안 흐름을 이해하고 싶다면 기존 소프트웨어 공급망 공격 리스크와 대응 방안 글을 함께 읽어보시면 큰 도움이 됩니다.

AI 모델 백도어 예방 수칙, 흑우 개발자 안 되는 3가지 방법

AI 공급망 공격을 예방하려면 trust_remote_code 옵션을 비활성화하고 SafeTensors 포맷을 사용하며 독립된 샌드박스에서 모델을 실행해야 합니다.

실천 가능한 3가지 핵심 수칙을 정리해 드립니다.

  1. Pickle 바이바이, SafeTensors 포맷만 골라 쓰기 .safetensors 파일은 코드 실행 기능이 완전히 배제된 순수 차원 가중치 데이터입니다. 허깅페이스에서 모델을 받을 때 확장자가 .safetensors인지 반드시 확인하는 습관을 들여야 합니다.

  2. trust_remote_code=True 함부로 켜지 않기 편하다는 이유로 이 옵션을 켜두면 해커가 심어놓은 파이썬 코드가 무방비로 돌아갑니다. 검증된 공식 레포지토리가 아니라면 무조건 해당 코드를 직접 가독하여 이상한 네트워크 요청이 없는지 뜯어봐야 합니다.

  3. Docker 샌드박스 및 격리 환경 적극 활용 로컬 개발 환경에 직접 모델을 올리지 말고 도커 컨테이너나 가상 머신 내부에서 격리된 상태로 테스트해야 합니다. 환경변수에 저장된 API Key나 파이썬 가상환경 파일이 털리는 불상사를 기본적으로 차단해 줍니다.

자주 묻는 질문 (FAQ)

Q. 허깅페이스에서 다운로드한 AI 모델도 바이러스에 감염될 수 있나요?

네, 기존 파이썬 Pickle 기반 모델 파일은 실행 시 악성 쉘 코드를 곧바로 구동할 수 있습니다. 악성코드가 포함된 사전학습 모델을 다운로드하면 PC와 서버 권한이 그대로 탈취될 위험이 큽니다.

Q. SafeTensors 포맷을 쓰면 AI 보안 위험이 완벽히 해결되나요?

SafeTensors는 코드 실행 기능이 없는 순수 가중치 저장 방식이므로 Pickle보다 훨씬 안전합니다. 다만 config.json이나 함께 설치되는 파이썬 라이브러리의 취약점까지 전부 막아주지는 않으므로 실행 환경 격리가 병행되어야 합니다.

Q. trust_remote_code=True 옵션은 왜 꺼야 하나요?

이 옵션을 활성화하면 원격 저장소에 있는 임의의 파이썬 커스텀 코드를 로컬 환경에서 직접 실행하게 됩니다. 검증되지 않은 작성자의 코드일 경우 시스템 전체가 백도어에 노출됩니다.


요즘 기술 발전에 눈이 멀어서 '무료 오픈소스니까 일단 깃 클론 받고 보자' 했다간 순식간에 해킹 피해자가 될 수 있습니다. AI 오픈소스 공급망 공격 위험성을 미리 파악하고 안전한 SafeTensors 포맷 사용과 샌드박스 테스트 환경을 차근차근 구축해보세요.

솔직히 여러분도 그동안 trust_remote_code=True 옵션 뇌 빼고 아무 생각 없이 켜놓고 쓰지 않으셨나요? 댓글로 공유해 주시고 다들 내 컴퓨터 방어력 점검 한 번씩 해봅시다!