0xNews - PHP packagist 저장소 해킹으로 인해 PHP 패키지 사용한 5억개 사용자 패키지 손상

0xNews - PHP packagist 저장소 해킹으로 인해 PHP 패키지 사용한 5억개 사용자 패키지 손상


Packagist 발표

https://blog.packagist.com/packagist-org-maintainer-account-takeover/


Packagist 는 PHP 소프트웨어 패키지 저장소

공격자는 현재까지 기준 5억회 이상 설치되어 12개 이상의 패키지 정보를 탈취하기 위해 플랫폼에서 4개의 비활성 계정에 접속한 것으로 확인


공격자는 각 패키지를 포크하고 composer.json 의 패키지 설명을 자신의 메시지로 교체했지만 악의적 수정은 하지 않은 것으로 확인

패키지 URL 이 분기된 저장소를 가리키도록 변경


4개의 사용자 계정은 여러 Doctrine 패키지를 포함하여 총 14개의 패키지에 접속 가능

문제가 확인된 것은 2023년 5월 1일


다음은 이번 문제로 인해 영향을 받는 패키지 리스트

acmephp/acmephp

acmephp/core

acmephp/ssl

doctrine/doctrine-cache-bundle

doctrine/doctrine-module

doctrine/doctrine-mongo-odm-module

doctrine/doctrine-orm-module

doctrine/instantiator

growthbook/growthbook

jdorn/file-system-cache

jdorn/sql-formatter

khanamiryan/qrcode-detector-decoder

object-calisthenics/phpcs-calisthenics-rules

tga/simhash-php


neskafe3v1 이라는 닉네임을 사용하는 침투 테스터는 일자리를 얻기 위해 변경 사항을 적용한 것으로 확인



공격 체인을 통해 각 패키지의 packagist 페이지를 이름이 동일한 GitHub 저장소로 수정

Composer 환경내에서 사용되는 설치 워크플로를 효과적으로 변경

공격자가 이를 성공적으로 악용하게 되면 패키지를 다운로드 하는 개발자는 정상적인 실제 컨텐츠가 아닌 공격자가 생성한 분기된 버전을 얻게 됨


Packagist 는 추가적인 악성 변경 사항이 배포되지 않았으며 모든 계정이 비활성화되었으며 2023년 5월 1일 발견 후 5월 2일 패키지 복원 완료

사용자가 계정을 보호하기 위해 이중 인증 2FA를 활성화할 것을 권고


비활성화 조치를 한 4개의 계정 모두 이전에 다른 플랫폼에서 발생한 사건에서 유출된 공유 암호를 사용한 것으로 판단


클라우드 보안회사인 Aqua 가 2억 5천만개 이상의 아티팩트와 6만 5천개 이상의 컨테이너 이미지를 포함하는 수천개의 노출된 클라우드 소프트웨어 레지스트리와 저장소를 식별하면서 확인

잘못된 구성은 레지스트리를 인터넷에 실수로 연결

의도적으로 익명 접속을 허용

기본 암호를 사용하고 악성 코드로 레지스트리를 오염 시키는데 악용될 수 있는 사용자에게 업로드 권한을 부여하게 됨


이렇게 되면 일부에서 익명 사용자 접속을 토앻 잠재적인 공격자가 비밀키, 암호화와 같은 민감 정보 획득 가능

이는 심각한 소프트웨어 공급망 공격과 소프트웨어 개발 수명 주기의 중독으로도 이어질 수 있음


댓글

이 블로그의 인기 게시물

0xNews - 미군을 주제로 하여 한국인을 노리는 피싱 공격 캠페인 경고

0xNews - 리눅스 커널에서 StackRot 라는 이름의 취약점으로 권한 상승 취약점 발견

0xNews - 리눅스 시스템에 원격 명령어 인젝션 공격이 가능한 새로운 openSSH 취약점 발견