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천개 이상의 컨테이너 이미지를 포함하는 수천개의 노출된 클라우드 소프트웨어 레지스트리와 저장소를 식별하면서 확인
잘못된 구성은 레지스트리를 인터넷에 실수로 연결
의도적으로 익명 접속을 허용
기본 암호를 사용하고 악성 코드로 레지스트리를 오염 시키는데 악용될 수 있는 사용자에게 업로드 권한을 부여하게 됨
이렇게 되면 일부에서 익명 사용자 접속을 토앻 잠재적인 공격자가 비밀키, 암호화와 같은 민감 정보 획득 가능
이는 심각한 소프트웨어 공급망 공격과 소프트웨어 개발 수명 주기의 중독으로도 이어질 수 있음
댓글
댓글 쓰기
글과 상관없는 댓글 작성은 발견 즉시 삭제합니다.