제퍼넷 로고

PHP Packagist 공급망이 "구직 중인" 해커에 의해 중독됨

시간

우리는 PHP에 대해 썼습니다. 패키지스트 생태계 전에.

Pythonista를 위한 PyPI, Ruby 팬을 위한 Gems, JavaScript 프로그래머를 위한 NPM 또는 Luaphiles를 위한 LuaRocks와 같이 Packagist는 커뮤니티 기여자가 자신이 만든 PHP 패키지의 세부 정보를 게시할 수 있는 저장소입니다.

이를 통해 동료 PHP 코더가 자신의 프로젝트에서 사용하려는 라이브러리 코드를 쉽게 확보하고 원하는 경우 해당 코드를 자동으로 최신 상태로 유지할 수 있습니다.

실제 라이브러리 코드가 저장되는 자체 서버를 제공하는 PyPI(또는 때로는 프로젝트 소스 코드 자체를 저장하고 때로는 다른 리포지토리에 링크하는 LuaRocks)와 달리 Packagist는 링크하지만 자체적으로는 코드의 사본을 보관하지 않습니다. 다운로드해야 합니다.

이 방법을 사용하면 긍정적인 면이 있습니다. 특히 GitHub와 같은 잘 알려진 소스 코드 서비스를 통해 관리되는 프로젝트는 공식 릴리스의 두 복사본을 유지할 필요가 없기 때문에 두 버전 간의 "버전 드리프트" 문제를 방지할 수 있습니다. 소스 코드 제어 시스템 및 패키징 시스템.

그리고 패키지가 부비 트랩될 수 있는 두 가지 다른 방법이 필연적으로 있다는 단점이 있습니다.

패키지 관리자 자체가 해킹될 수 있으며 단일 URL을 변경하는 것만으로도 패키지 사용자를 잘못 안내할 수 있습니다.

또는 링크된 소스 코드 리포지토리가 해킹되어 올바른 URL처럼 보이는 사용자가 악성 콘텐츠로 끝날 수도 있습니다.

유해한 것으로 간주되는 오래된 계정

공격 (관련 해커가 부비트랩 코드를 게시하지 않았음에도 불구하고 우리는 그것을 호출할 것입니다) 하이브리드 접근 방식이라고 부를 수 있는 것을 사용했습니다.

공격자는 어떻게든 로그인 암호를 획득한 오래된 비활성 Packagist 계정 XNUMX개를 발견했습니다.

그런 다음 이러한 비활성 계정에 연결된 14개의 GitHub 프로젝트를 식별하고 새로 생성된 GitHub 계정에 복사했습니다.

마지막으로 그들은 새로운 GitHub 리포지토리를 가리키도록 Packagist 시스템의 패키지를 조정했습니다.

GitHub 프로젝트 복제는 매우 일반적입니다. 때때로 개발자는 새로운 관리하에 프로젝트의 진정한 포크(대체 버전)를 만들거나 다른 기능을 제공하기를 원합니다. 다른 경우에는 분기된 프로젝트가 "볼륨적 이유"라고 불릴 수 있는 이유로 복사되어 GitHub 계정이 실제보다 더 크고, 더 좋고, 더 바쁘고, 커뮤니티에 더 헌신적으로 보이도록 만듭니다(말장난을 용서한다면).

해커가 복제된 GitHub PHP 소스에 트래커, 키로거, 백도어 또는 기타 맬웨어를 추가하는 등 악성 코드를 삽입할 수 있었지만 변경한 것은 각 프로젝트의 단일 항목인 것으로 보입니다. composer.json.

이 파일에는 다음 항목이 포함되어 있습니다. description, 일반적으로 소스 코드의 용도를 설명하는 텍스트 문자열인 정확히 예상되는 내용을 포함합니다.

그리고 그것이 우리 해커가 수정한 전부입니다. Project PPP implements the QQQ protocol so you can RRR, 그들의 프로젝트가 대신 보고하도록:

 XXX@XXXX.com 소유. Ищу работу на позиции 애플리케이션 보안, 침투 테스터, 사이버 보안 전문가.

반은 러시아어로, 반은 영어로 쓰여진 두 번째 문장은 다음을 의미합니다.

 애플리케이션 보안 등에서 일자리를 찾고 있습니다.

모든 사람을 대변할 수는 없지만 CV(이력서)가 진행됨에 따라 이것이 그다지 설득력이 없다는 것을 알았습니다.

또한, 포장 팀이 말합니다. 이제 모든 무단 변경이 되돌려졌고 14개의 복제된 GitHub 프로젝트는 소유자의 고용 권유를 포함하는 것 외에 다른 방식으로 수정되지 않았습니다.

그만한 가치가 있는 것은 응용 프로그램 보안 전문가가 되려는 사람의 GitHub 계정이 여전히 활성 상태이며 여전히 "포킹된"" 프로젝트가 포함되어 있다는 것입니다.

GitHub가 아직 계정이나 프로젝트를 말소하지 않았는지 또는 사이트에서 제거하지 않기로 결정했는지 여부는 알 수 없습니다.

결국, 포크 프로젝트는 흔하고 허용 가능하며(최소한 라이센스 조건이 허용하는 경우), 텍스트로 비악성 코드 프로젝트를 설명하지만 Pwned by XXXX@XXXX.com 도움이 되지 않으며 거의 ​​불법이 아닙니다.

무엇을해야 하는가?

  • 이러지 마 당신은 확실히 합법적인 고용주의 관심을 끌지 못할 것이며 (우리가 정직하다면) 거기에 있는 어떤 사이버 사기꾼에게도 깊은 인상을 주지 않을 것입니다.
  • 가능하다면 사용하지 않는 계정을 활성 상태로 두지 마십시오. 우리가 어제 말했듯이 세계 암호의 날, 더 이상 필요하지 않은 계정을 폐쇄하는 것을 고려하십시오. 사용 중인 비밀번호가 적을수록 도난당할 가능성도 적습니다.
  • 둘 이상의 계정에서 암호를 재사용하지 마십시오. Packagist의 가정은 이 사건에서 남용된 암호가 피해자가 Packagist 계정과 동일한 암호를 사용한 다른 계정의 데이터 유출 기록에 있다는 것입니다.
  • 2FA를 잊지 마세요. Packagists는 모든 자체 사용자에게 2FA를 켜도록 촉구하므로 암호만으로는 공격자가 계정에 로그인하기에 충분하지 않으며 GitHub 계정에서도 동일한 작업을 수행할 것을 권장합니다.
  • 정확성을 검토하지 않고 공급망 업데이트를 맹목적으로 수락하지 마십시오. 복잡한 패키지 종속성 웹이 있는 경우 책임을 제쳐두고 시스템이 모든 업데이트를 자동으로 가져오도록 하고 싶지만, 이는 귀하와 하위 사용자를 추가 위험에 빠뜨릴 뿐입니다.

세계 암호의 날의 조언


spot_img

최신 인텔리전스

spot_img