News Feed

울트라리틱스 AI 파이썬 라이브러리 해킹에서 얻은 3가지 교훈

컨텐츠 정보

  • 조회 769

본문

파이썬에서 널리 사용되는 실시간 객체 탐지 ML 패키지인 울트라리틱스 YOLO가 사이버 공격으로 손상됐을 때, 대부분은 PyPI가 실패 지점일 것이라고 생각했다. 손상된 소프트웨어 아티팩트가 PyPI에서 처음 발견됐기 때문에 이는 당연한 일이었다. 게다가 파이썬이 소프트웨어 업계에서 가장 인기 있는 언어인 만큼 파이썬 소프트웨어 리포지토리는 주요 공격 벡터였다.

그러나 손상된 PyPI 패키지는 한 가지 증상일 뿐이었고 실제 익스플로잇은 다른 곳, 즉 일반적인 깃허브 빌드 메커니즘에 대한 정교하고 대담한 침해에 있었다. 이제 사태가 진정되기 시작했으니, 울트라리틱스 AI 라이브러리 해킹에서 얻은 3가지 주요 시사점을 살펴볼 때다.

파이썬의 자체 공급망은 해킹 지점이 아니었다

대부분 개발자는 PyPI가 파이썬 공급망의 취약점이라고 인식하고 있다. 트래픽이 많은 PyPI 프로젝트가 잠시 동안만 손상돼도 수천 명에게 악성 패키지를 퍼뜨릴 수 있다. 버려지거나 거의 사용되지 않는 PyPI 패키지도 보안 위험을 초래한다. 울트라리틱스 해킹도 처음에는 개발자 자격 증명이 도용되거나 기여자 시스템이 손상돼 PyPI로 이어진 또 다른 사례처럼 보였다.

하지만 실상은 달랐다. 공격자는 깃허브 액션(Actions)의 알려진 익스플로잇(사실 이전에 패치된 취약점의 회귀)을 활용해 자동화된 빌드 프로세스를 캡처했다. 이를 통해 조사를 받지 않고도 손상된 패키지는 PyPI에 전달할 수 있었다. 깃허브 자체에는 손상된 코드가 나타나지 않았고, PyPI에서만 나타났기 때문에 처음에는 PyPI의 보안과 프로세스가 원인으로 지적됐지만, 이는 잘못된 생각이었다.

PyPI에는 여러 가지 내부 보안 및 안전 문제가 존재한다. 그중 일부는 타이포스쿼팅, 종속성 혼동 등 npm 생태계에서 경험하는 문제와 유사하다. 하지만 이번 공격은 이런 문제에 대비해 구축된 보호 조치를 우회한 것이다. 궁극적으로, 이런 익스플로잇에 대한 PyPI 측면의 좋은 방어책은 없을 수도 있다.

모든 API는 보안 실패 가능성이 있다

최신 소프트웨어 개발 및 배포 플랫폼에서 수행되는 자동화된 작업은 깃허브 액션을 구동하는 것과 같은 API가 수행한다. 특정 작업을 수행할 수 있는 권한(예를 들어, “이 패키지를 변경한 후 깃허브에 게시”하는 것)을 가지고, 적절한 자격 증명을 받은 사용자만 특정 API 엔드포인트를 사용할 수 있다면 모든 것이 괜찮을 것이라고 생각하기 쉽다.

그러나 모든 API는 잠재적인 장애 지점이 될 수 있다. 특히 문제가 되는 API가 소프트웨어 배포 생태계를 자동화하는 핵심 연결 고리인 경우에는 적극적인 감사가 필요하다. 이번 공격에 사용된 익스플로잇은 공급망에서 당연하게 여겨져 간과하기 쉬운 지점을 공격했다.

깃허브 액션이 파이썬 프로젝트의 실패 요인이 된 것은 이번이 처음은 아니다. 2024년 1월, 한 연구팀은 깃허브 액션 워크플로우를 탈취해 파이토치 프로젝트의 개발 인프라를 손상시키는 방법을 시연했다. 이 연구를 통해 깃허브 액션을 사용하는 수천 개의 다른 프로젝트 역시 안전하지 않은 것으로 나타났다. 이들 프로젝트 모두 유연성과 편의성을 위해 자체 호스팅 인프라로 깃허브 액션 빌드 에이전트를 실행하는 안전하지 않은 프랙티스를 공유하고 있었기 때문이다.

규모가 큰 프로젝트에서는 개발자가 깃허브 액션에 대한 베스트 프랙티스를 따르지 않는 것 자체보다는 깃허브 액션의 기본값이 안전하지 않다는 점이 더 큰 문제다. 프로젝트가 크고 기여자 기반이 클수록 전 세계에 아티팩트를 전달하는 모든 자동화 프로세스에 대한 공격 범위가 넓어진다. 깃허브 액션처럼 널리 사용되는 시스템에 합리적인 기본값이 더 많이 필요하다는 것을 의미한다. 기본값으로 제공되는 기능이 적더라도 마찬가지다.

파이썬 소프트웨어 공급망은 주요 표적이다

소프트웨어 생태계가 대중적일수록 공격의 표적이 될 가능성이 높다. 파이썬의 인기가 계속 상승함에 따라 파이썬 생태계에 대한 공격도 증가할 전망이다. 그리고 이런 공격은 직간접적으로 여러 방면에서 이루어질 것이다.

파이썬이 특히 취약한 이유는 인기뿐 아니라 소프트웨어 생태계에서 차지하는 독특한 위치에도 기인한다. 파이썬은 적어도 두 가지 핵심적인 역할을 수행하기 때문에 매력적인 공격 벡터가 된다.

  • 프로세스 자동화 : 파이썬은 테스트 실행이나 중간 빌드 단계 수행과 같은 작업을 위한 공통 기반을 제공해 프로젝트의 여러 부분을 하나로 묶는 데 자주 사용된다. 프로젝트의 자동화 도구를 탈취하면 프로젝트의 다른 모든 측면을 프록시로 손상시킬 수 있다. 깃허브 액션 침해는 향후 공격을 위한 템플릿을 제공한다. 소프트웨어 배포 자동화의 잘 알려지지 않은 측면을 악용해 프로젝트 관리의 일부 측면을 제어할 수 있다.
  • AI/ML : 제품 포트폴리오나 내부 프로세스에 AI를 추가하는 기업이 늘어나고 있으며, 파이썬의 에코시스템은 최종 제품을 개발하는 방법과 AI 기술을 실험할 수 있는 편리한 놀이터로서의 역할을 한다. ML 라이브러리가 손상되면 독점 모델을 훈련하는 데 사용되는 독점 데이터와 같이 AI 프로젝트를 위한 기업의 내부 리소스에 광범위하게 액세스할 수 있다.

이번 울트라리틱스 공격에서는 페이로드가 크립토마이너이기 때문에 포렌식 탐지가 쉬워 비교적 치명적인 공격은 아니었다. 하지만 인프라에 지능형 지속적 위협을 전달하는 공격이 발생할 가능성이 있다. 파이썬의 유명세와 파이썬이 제공하는 기능, 파이썬이 추구하는 목적이 점점 더 커지고 있기 때문에 앞으로는 더 많은 표적이 될 것이다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank