표적 공격도 무섭지만, 오픈 소스 프로젝트에 악성 코드를 넣은 부분은 더 조심해야 할 것 같네요.

해당 도구의 소스 코드는 정상적인데, Github Release에 포함된 파일에는 악성 코드가 있었다고 합니다.
깃허브 별도 200개가 넘게 있었다고...

갑자기 연달아 보안 뉴스가 생기는군요. 다들 보안에 신경 쓰시어야 할 것 같습니다.

소스코드는 그래도 검증이 될 것 같은데, Release와 다를 것이라는 생각은 못해봤네요. 보안은 끝이없네요..

이런 것도 일종의 공급망 공격인 것 같습니다.
마침 1개월 전에 릴리즈된 Go 1.21.0의 경우 최초로 자신들의 툴체인 빌드 결과물이 완전히 재현 가능하다는 내용의 게시물을 블로그에 올렸더군요. 그 글의 처음 두 문단은 다음과 같습니다.

Perfectly Reproducible, Verified Go Toolchains

오픈 소스 소프트웨어의 주요 이점 중 하나는 누구나 소스 코드를 읽고 그 기능을 검사할 수 있다는 것입니다. 하지만 대부분의 소프트웨어, 심지어 오픈 소스 소프트웨어도 컴파일된 바이너리 형태로 다운로드되기 때문에 검사하기가 훨씬 더 어렵습니다. 공격자가 오픈 소스 프로젝트에 대한 공급망 공격을 실행하려면 소스 코드를 수정하지 않은 채로 제공되는 바이너리를 교체하는 것이 가장 눈에 띄지 않는 방법입니다.

이러한 종류의 공격에 대응하는 가장 좋은 방법은 오픈 소스 소프트웨어 빌드를 재현 가능하게 만드는 것입니다. 즉, 동일한 소스로 시작하는 빌드가 실행될 때마다 동일한 출력을 생성하도록 하는 것입니다. 이렇게 하면 누구나 실제 소스에서 빌드하고 재빌드된 바이너리가 게시된 바이너리와 비트 단위로 동일한지 확인하여 게시된 바이너리에 숨겨진 변경 사항이 없는지 확인할 수 있습니다. 이 접근 방식은 바이너리를 분해하거나 내부를 들여다보지 않고도 바이너리에 백도어나 소스 코드에 없는 기타 변경 사항이 없음을 증명합니다. 누구나 바이너리를 확인할 수 있으므로 독립적인 그룹이 공급망 공격을 쉽게 탐지하고 보고할 수 있습니다. (DeepL 번역)

왜 이런 걸 걱정하는가 했더니, 이미 약 1년 전부터 이런 종류의 공격이 비밀스럽게 이루어지고 있었던 모양입니다. 아 세상 참 흉흉하여라…

저도 깃허브에 코드랑 같이 올라온 건 약간 더 신뢰하는 편인데... 조심해야겠어요.
항상 코드 검토 하고 직접 빌드하는 방법 밖에 없나...

HN 스레드의 AI 요약

  • 0xDEAFBEAD: 이 도구와 같은 멀웨어가 포함된 리포지토리에 대한 경고 배너를 추가할 것을 Github에 제안합니다.
  • zb3: 작성자가 신뢰할 수 있어 보인다고 해서 GitHub의 코드를 맹목적으로 신뢰하지 말 것을 상기시킵니다.
  • nneonneo: 소스는 깨끗해 보이지만 바이너리는 백도어될 수 있으므로 멀웨어가 소스 코드 자체가 아닌 바이너리 릴리스에 있을 가능성이 있다고 생각합니다.
  • bowmessage: 공격자가 제어하는 도메인에서 멀웨어를 다운로드할 수 있는 의심스러운 자동 업데이트 기능을 지적합니다.
  • gregsadetsky: 도구의 미러 저장소가 여전히 작동하는 것을 발견하고 업데이트 프로세스가 어떻게 작동하여 감염을 허용하는지 설명합니다.
  • codetrotter: 삭제되기 전 원본 리포지토리의 아카이브를 제공했습니다.
  • dantillberg: URL에서 파일을 다운로드하고 실행하는 자동 업데이트 코드에 대해 설명합니다.
  • bdowling: 처음에는 문제를 오해했지만 공격자가 제어하는 업데이트 URL이 문제였다고 명확히 밝혔습니다.
  • saagarjha: 제로데이는 업데이트 기능을 통해 공격자의 코드를 실행하는 소프트웨어의 기능에 있었다고 생각합니다.
  • rightbyte: 북한 소행이라고 단정할 수 있는 증거가 정말 있는지 의문을 제기합니다.