보다 안전한 NPM 공급망 계획
오픈 소스 소프트웨어는 현대 소프트웨어 산업의 기반입니다. 협업 특성과 광대 한 생태계는 전 세계적으로 개발자에게 힘을 실어주고 효율성과 전례없는 규모의 발전을 강화합니다. 이 척도는 또한 악의적 인 행위자들의 지속적으로 테스트되고 공격을받는 고유 한 취약점을 제시하여 오픈 소스의 보안이 모든 사람에게 중요한 관심사입니다.
투명성은 커뮤니티 신뢰를 유지하는 데 핵심입니다. 오늘 우리는 최근 NPM 레지스트리 사건, 치료에 대한 조치, NPM 보안에 계속 투자하는 방법에 대한 세부 정보를 공유하고 있습니다.
오픈 소스 생태계에 대한 최근의 공격
소프트웨어 산업은 최근 NPM을 포함한 패키지 레지스트리에 대한 계정 인수를 손상시키는 것이 최근에 급증했습니다. 이러한 지속적인 공격으로 악의적 인 행위자는 관리자 계정에 대한 무단 액세스를 얻은 다음 잘 알려진 신뢰할 수있는 패키지를 통해 악의적 인 소프트웨어를 배포 할 수있었습니다.
2025 년 9 월 14 일, 우리는 악의적 인 사후 스크립트를 대중적인 JavaScript 패키지에 주입하여 손상된 관리자 계정을 통해 NPM 생태계에 침투하는 자체 복제 웜 인 Shai-Hulud 공격에 대해 통보되었습니다. 자체 복제를 여러 유형의 비밀 (NPM 토큰뿐만 아니라)을 훔칠 수있는 능력과 결합 함으로써이 웜은 Github 및 오픈 소스 관리자의 적시 조치를 취하지 않았다면 끝없는 공격 스트림을 가능하게 할 수있었습니다.
이 사건에 대한 직접적인 대응으로 Github은 다음을 포함한 신속하고 결정적인 조치를 취했습니다.
- 악성 소프트웨어의 추가 전파를 방지하기 위해 NPM 레지스트리에서 500 개 이상의 손상된 패키지를 즉시 제거합니다.
- NPM은 맬웨어의 IOC (타협 지표)가 포함 된 새로운 패키지의 업로드를 차단하여 자체 복제 패턴을 차단합니다.
이러한 위반은 오픈 소스 생태계에 대한 신뢰를 침식하고 전체 소프트웨어 공급망의 무결성과 보안에 직접적인 위협을 가합니다. 또한 향후 공격에 대한 NPM 생태계를 강화하는 데 인증 및 안전한 출판 관행에 대한 기준을 높이는 이유를 강조합니다.
패키지 경화를위한 NPM의 로드맵
Github는 이러한 위협을 조사하고 오픈 소스 커뮤니티에 대한 위험을 완화하기 위해 노력하고 있습니다. 토큰 남용 및 자체 복제 맬웨어를 해결하기 위해 가까운 장래에 인증 및 게시 옵션을 변경하여 다음을 포함시킬 것입니다.
- 필요한 2 단계 인증 (2FA)이있는 로컬 출판.
- 7 일의 제한된 수명을 가진 과립 토큰.
- 신뢰할 수있는 출판.
이러한 변화를 지원하고 NPM 생태계의 보안을 더욱 향상시키기 위해 다음을 수행 할 것입니다.
- 레거시 클래식 토큰을 더 이상 사용하지 않습니다.
- 시간 기반 일회성 비밀번호 (TOTP) 2FA를 사용하여 사용자를 FIDO 기반 2FA로 마이그레이션합니다.
- 더 짧은 만료에 대한 출판 권한으로 세분화 된 토큰을 제한하십시오.
- 기본적으로 금지 토큰에 대한 출판 액세스를 설정하여 신뢰할 수있는 출판사 또는 2FA 시행 지역 출판의 사용을 장려합니다.
- 로컬 패키지 출판의 경우 2FA를 우회하는 옵션을 제거하십시오.
- 신뢰할 수있는 출판을위한 적격 공급자를 확장하십시오.
우리는 우리가 만들고있는 보안 변경 중 일부가 워크 플로에 대한 업데이트가 필요할 수 있음을 알고 있습니다. 우리는 NPM의 보안 자세를 강화하면서 혼란을 최소화하기 위해 이러한 변화를 점진적으로 굴리게 될 것입니다. 우리는이 전환을 통해 귀하를 지원하기 위해 최선을 다하고 있으며 명확한 타임 라인, 문서화, 마이그레이션 안내서 및 지원 채널로 향후 업데이트를 제공 할 것입니다.
신뢰할 수있는 출판으로 생태계 강화
Trusted Publishing은 OpenSSF Securing Software Repositories Working Group의 권장 보안 기능으로 빌드 시스템에서 API 토큰을 안전하게 관리 할 필요가 없습니다. 2023 년 4 월 PYPI에 의해 API 토큰을 빌드 파이프 라인에서 얻는 방법으로 개척했습니다. 그 이후로 신뢰할 수있는 출판물은 Rubygems (2023 년 12 월), Crates.io (2025 년 7 월), NPM (2025 년 7 월) 및 가장 최근에 Nuget (2025 년 9 월) 및 기타 패키지 저장소에 추가되었습니다.
NPM이 신뢰할 수있는 출판에 대한 지원을 발표했을 때,이 새로운 기능의 채택을 유기적으로 성장시킬 의도였습니다. 그러나 공격자들은 우리에게 그들이 기다리고 있지 않다는 것을 보여주었습니다. 우리는 프로젝트가 지원되는 모든 패키지 관리자를 위해 가능한 빨리 신뢰할 수있는 출판물을 채택하도록 강력히 권장합니다.
오늘날 NPM 관리자가 취할 수있는 조치
Github와 광범위한 소프트웨어 커뮤니티의 이러한 노력은 소프트웨어 공급망의 보안을 강화하려는 우리의 전 세계의 약속을 강조합니다. 생태계의 보안은 공유 책임이며, 우리는 오픈 소스 커뮤니티의 경계와 협력에 감사합니다.
NPM 관리자가 지금 취할 수있는 조치는 다음과 같습니다.
진정한 탄력성은 소프트웨어 산업의 모든 사람들의 적극적인 참여와 경계가 필요합니다. 강력한 보안 관행을 채택하고, 이용 가능한 도구를 활용하고, 이러한 집단적 노력에 기여함으로써, 우리는 모든 사람을위한보다 안전하고 신뢰할 수있는 오픈 소스 생태계를 전체적으로 구축 할 수 있습니다.
작성자가 작성했습니다
Post Comment