6P by neo with xguru 1달전 | favorite | 댓글 1개

npm의 대규모 스팸 패키지 문제

  • Phylum 연구팀은 Tea 프로토콜과 관련된 스팸 패키지가 npm에 급증하고 있음을 발견함
  • Tea 프로토콜은 오픈 소스 기여에 대해 암호화폐로 보상하는 시스템으로, 개발자들이 기여를 과장하도록 유도함
  • 2024년 2분기 동안 npm에 게시된 패키지 중 약 25%가 Tea 프로토콜과 관련된 스팸 패키지로 추정됨

간단한 요약

  • Tea 프로토콜은 개발자들이 기여를 과장하도록 유도하는 알고리듬을 사용함
  • npm은 이러한 스팸 패키지로 인해 심각한 오염을 겪고 있음
  • 스팸 패키지의 특징은 무작위로 생성된 패키지 이름, 의심스러운 의존성 목록, 그리고 tea.yaml 파일임

새로운 관점

  • 2024년 초부터 npm에 게시된 패키지 수가 급증함
  • 2024년 4월 8일에는 하루에 48,000개 이상의 패키지가 게시됨
  • Q2 동안 게시된 npm 패키지 중 21.25%에서 25.5%가 스팸 패키지로 추정됨
  • 새로운 패키지로 범위를 좁히면, 스팸 패키지 비율이 68.66%에서 74.67%로 증가함

위협이 있는가?

  • 현재까지는 이러한 스팸 패키지가 악의적인 공격을 포함하고 있다는 증거는 없음
  • 그러나 이러한 스팸은 오픈 소스 생태계를 오염시키고, AI 모델의 학습 데이터를 왜곡시킬 수 있음
  • 또한, 실제 악성 패키지가 숨겨질 수 있는 환경을 조성함

적의 관점에서 생각하기

  • sournoise 패키지를 예로 들어, npm 웹사이트는 이 패키지가 axios에 의존한다고 표시하지만, 실제로는 스팸 패키지에 의존함
  • 이는 npm이 의존성을 처리하고 사용자에게 표시하는 방식의 부작용임
  • 전이적 의존성으로 인해 개발자가 원하지 않거나 예상하지 못한 패키지가 포함될 수 있음

결론

  • 오픈 소스 소프트웨어 생태계의 오염은 모두에게 문제임
  • Tea 프로토콜 프로젝트는 이 문제를 해결하기 위해 조치를 취하고 있음
  • npm도 일부 스팸 패키지를 제거하고 있지만, 새로운 게시 속도를 따라잡지 못하고 있음
  • 이 문제는 npm에만 국한되지 않으며, Rubygems에서도 유사한 스팸 패키지가 발견됨
  • Phylum은 이 분야를 적극적으로 연구하고 있으며, 이러한 행위자들이 전술을 적응시킴에 따라 이 스팸을 탐지하는 새로운 방법을 모색할 것임

GN⁺의 정리

  • Tea 프로토콜의 보상 시스템이 개발자들을 기여를 과장하도록 유도함
  • 오픈소스 지속가능성을 위한 프로젝트의 의도는 좋았겠지만, 그에 따른 부작용과 악용 사례를 간과한 것으로 보임. 기여도 측정 방식과 보상 체계에 대한 면밀한 설계와 지속적인 모니터링이 필요해 보임
  • 이러한 대규모 스팸 패키지 범람은 단순히 개별 패키지의 안전성 문제를 넘어, 전체 오픈소스 생태계의 신뢰성과 건전성을 위협할 수 있음. 근본적인 해결을 위해서는 에코시스템 차원의 접근과 협력이 필요할 것으로 보임
  • AI 모델 학습 데이터로 활용될 경우 편향성 문제가 발생할 수 있다는 점은 매우 우려되는 부분임. 데이터 품질 관리와 검증에 대한 가이드라인 마련이 시급해 보임
  • 전이 종속성을 통한 예기치 않은 패키지 설치 가능성은 개발자들에게 경각심을 불러일으키기에 충분함. 자동화된 종속성 관리 도구의 필요성과 함께, 패키지 선택에 있어 개발자의 주의와 검토가 여전히 중요함을 시사
  • 장기적 관점에서 블록체인 기반의 패키지 레지스트리나 평판 시스템 등 보다 투명하고 검증 가능한 대안을 모색해 볼 필요가 있어 보임
Hacker News 의견
  • npm의 패키지 의존성 처리 방식이 문제임

    • package.json에 키만 있으면 실제 패키지와 상관없이 의존성으로 간주됨
    • 이는 의존성 생태계를 더 취약하게 만듦
  • tea.yaml을 사용하는 모든 패키지를 제거하는 것이 필요함

    • tea 프로토콜이 악의적인 행동을 유도하고 있음
    • 시스템을 손상시키고 있음
  • 스팸 계정을 영구적으로 차단하고 제거해야 함

    • 예를 들어, 1781개의 의미 없는 패키지를 가진 계정이 있음
    • 보고 절차가 복잡하고 번거로움
  • AI 모델이 스팸 패키지로 인해 왜곡될 가능성이 있음

    • "garbage in, garbage out" 원칙이 적용됨
  • Tea 프로토콜의 인센티브 모델이 문제임

    • 개발자들이 npm에 스팸을 올리도록 유도함
    • 생태계를 손상시킴
  • 요약:

    • 암호화폐 기반의 OSS 개발 자금 조달 계획이 스팸을 유도함
    • package.json을 통해 의존성을 속이는 것이 쉬움
  • Tea 프로토콜의 목표는 오픈 소스 소프트웨어 경제를 강화하는 것임

    • 그러나 인센티브 모델이 잘못되어 스팸을 유도함
    • "코브라 효과"와 "굿하트의 법칙"이 적용됨
  • 인기 프로젝트를 복사해 무작위 라틴어 이름으로 npm에 게시하는 사례가 있음

    • 수백 개의 스팸 리포트를 제출했음
  • Tea와 유사한 프로젝트가 있었음

    • 프로젝트가 실패하고 자금이 소진될 때까지 매달 소액의 비트코인을 받았음
  • 패키지 관리자는 평점 시스템을 가지고 있음

    • 스팸 패키지가 AI에 영향을 미칠 가능성은 낮음
    • 신뢰할 수 있는 회사는 스팸 패키지를 사용하지 않음