Laravel Lang 패키지가 자격증명 탈취 악성코드 배포용으로 탈취당했다

발행: (2026년 5월 24일 AM 05:48 GMT+9)
8 분 소요

출처: Bleeping Computer

Laravel Lang 현지화 패키지를 표적으로 한 공급망 공격으로 인해 공격자들이 GitHub 버전 태그를 악용해 Composer 패키지를 통해 악성 코드를 배포하면서 개발자들이 정교한 자격 증명 탈취 악성코드 캠페인에 노출되었습니다.

보안 업체인 StepSecurity, Aikido Security, 그리고 Socket은 금요일에 이번 침해 사실을 경고했으며, 공격자들이 Laravel Lang 조직이 관리하는 네 개의 저장소에 대해 새로운 악성 버전을 배포하는 대신 GitHub 태그를 재작성했다고 밝혔습니다.

영향을 받은 패키지는 laravel-lang/lang, laravel-lang/http-statuses, laravel-lang/attributes, 그리고 어쩌면 laravel-lang/actions까지 포함됩니다. Laravel Lang 패키지는 서드파티 현지화 패키지이며 공식 Laravel 프로젝트의 일부가 아닙니다.

Aikido에 따르면 공격자는 세 개의 저장소에서 233개의 버전을 침해했으며, Socket은 약 700개의 과거 버전이 영향을 받았을 가능성이 있다고 전했습니다.

이번 공격이 눈에 띈 점은 실제 프로젝트의 소스 코드 자체에 악성 코드를 삽입하지 않고, 대신 같은 저장소 포크의 커밋을 가리키도록 태그를 조작하는 GitHub 기능을 악용했다는 것입니다.

“새로운 악성 버전을 배포하는 대신, 공격자는 각 저장소의 기존 Git 태그를 모두 새로운 악성 커밋을 가리키도록 재작성했습니다.” — StepSecurity

“재작성은 22:32 UTC에 laravel-lang/lang(플래그십 Laravel 번역 패키지, 태그 502개)에서 시작돼 00:00 UTC에 laravel-lang/actions에서 마무리되었습니다. 네 개의 저장소 모두 동일한 가짜 작성자 신원, 동일한 수정 파일, 동일한 페이로드 동작을 공유하고 있어, 조직 전체에 푸시 권한을 가진 하나의 침해된 자격 증명을 사용한 동일 행위자에 의한 것임이 거의 확실합니다.”

이렇게 함으로써 공격자는 프로젝트에 정식 릴리스 태그처럼 보이는 것을 배포했지만, 실제로는 공격자가 제어하는 포크에 저장된 악성 커밋을 가리키게 만들었습니다.

개발자가 Composer를 통해 패키지를 설치하면, 정상적인 Laravel Lang 릴리스를 설치하는 듯 보이면서도 악성 코드를 다운로드하게 됩니다.

자격 증명 탈취기 실행

연구진은 악성 릴리스에서 src/helpers.php라는 악성 파일이 도입되었으며, 이 파일이 Composer에 의해 자동으로 로드된다는 사실을 발견했습니다.

helpers.php 페이로드가 composer.json의 autoload 섹션에 추가됨

주입된 코드는 공격자의 명령·제어 서버인 flipboxstudio[.]info에서 두 번째 페이로드를 다운로드하는 드롭퍼 역할을 합니다.

다운로드된 PHP 페이로드 [VirusTotal]는 Linux, macOS, Windows를 모두 지원하는 대규모 크로스플랫폼 자격 증명 탈취기로, 클라우드 자격 증명, Kubernetes 시크릿, Vault 토큰, Git 자격 증명, CI/CD 시크릿, SSH 키, 브라우저 데이터, 암호화폐 지갑, 비밀번호 관리자, VPN 설정, 로컬 .env 파일 등을 수집합니다.

악성코드에는 AWS 키, GitHub 토큰, Slack 토큰, Stripe 시크릿, 데이터베이스 자격 증명, JWT, SSH 개인 키, 암호화폐 복구 구문 등을 파일 및 환경 변수에서 추출하기 위한 정규식 패턴도 포함돼 있습니다.

비밀 정보를 탈취하기 위한 정규식 패턴
출처: BleepingComputer

Windows 환경에서는 PHP 페이로드가 파일 내에 포함된 base64‑인코딩 실행 파일 [VirusTotal]을 추출해 %TEMP% 폴더에 무작위 .exe 파일명으로 저장한 뒤 실행합니다.

BleepingComputer이 분석한 Windows 인포스틸러는 ‘DebugElevator’라는 이름이며 Chrome, Brave, Edge를 목표로 하여 저장된 브라우저 자격 증명을 복호화하는 데 필요한 App‑Bound Encryption 키를 추출합니다.

DebugElevator 실행 파일
출처: BleepingComputer

내장된 PDB 경로에는 Windows 계정명 ‘Mero’와 ‘claude’라는 문자열이 포함돼 있어, AI가 Windows 악성코드 개발에 활용됐을 가능성을 시사합니다.

C:\Users\Mero\OneDrive\Desktop\stuff\claude\Chromium-DebugElevator\x64\Release\DebugChromium.pdb

연구진은 민감한 데이터가 추출된 뒤 악성코드가 이를 암호화해 C2 서버로 전송한다고 밝혔습니다.

Aikido는 이번 사건을 Packagist에 보고했으며, Packagist는 신속히 악성 버전을 삭제하고 영향을 받은 패키지를 일시적으로 비공개 처리해 추가 설치를 방지했습니다.

Laravel Lang 패키지를 사용 중인 개발자는 설치된 패키지 버전을 검토하고, 노출된 자격 증명을 교체하며, 시스템에 침해 징후가 있는지 점검하고, 가능하다면 flipboxstudio[.]info에 대한 과거 외부 연결 기록을 확인하길 권고합니다.

The Validation Gap: Automated Pentesting Answers One Question. You Need Six.

자동화된 펜테스팅 도구는 실제 가치를 제공하지만, “공격자는 네트워크를 가로지를 수 있는가?”라는 한 가지 질문에만 답하도록 설계되었습니다. 방어 제어가 위협을 차단하는지, 탐지 규칙이 작동하는지, 클라우드 설정이 안전한지는 검증하지 못합니다.

이 가이드는 실제로 검증해야 할 6가지 영역을 다룹니다.

지금 다운로드

0 조회
Back to Blog

관련 글

더 보기 »