Hacker News 의견
  • OpenSSH는 가장 인기 있는 sshd 구현체로, liblzma 라이브러리에 연결되지 않지만, Debian과 다른 많은 리눅스 배포판들은 systemd에 sshd를 연결하는 패치를 추가한다. systemd는 liblzma에 연결되어 있어 xz Utils가 sshd에 영향을 미칠 수 있음.

  • Xz는 오픈 소스 압축 프로그램이자 라이브러리로, 압축된 데이터를 다루는 자신만의 프로그램을 작성하는 데 도움이 됨. OpenSSH를 포함한 많은 다른 프로그램에서 사용됨.

  • GNU의 binutils도 liblzma에 연결되어 있으며, OpenSSH보다 더 널리 사용됨. 대부분의 경우, binutils는 OpenSSH, sshd가 실행되는 운영 체제 등의 컴파일에 사용됨. 악의적인 행위자들이 오픈 소스 소프트웨어에 깊숙이 침투할 수 있는 좋은 프로젝트를 선택했음을 시사함.

  • XZ 프로젝트의 안정성을 장기적으로 돕기 위해 더 많은 테스트를 작성하는 데 도움이 될 표준화된 테스트 프레임워크 사용이 목표임. 많은 기능이 아직 테스트되지 않았기 때문에 이러한 테스트가 유용할 것임.

  • RSA_public_decrypt 함수에 연결할 수 있는 링킹 메커니즘에 대한 논의가 많지 않았음. 프로세스 분리 등을 통해 달성할 수 있는 것에 대한 많은 논의가 있었지만, 그 함수 호출 리디렉션에 대해서는 적음. 중요한 컴포넌트를 신뢰 계층 방식으로 연결할 수 있는 방법을 설정할 수 있을지에 대한 의문 제기.

  • 세계를 "거의" 감염시켰다고 하는데, 실제로는 아치, 젠투, 오픈수세 텀블위드와 같은 인기 있는 리눅스 배포판들이 수주간 백도어를 포함한 상태로 배포되었고, 텀블위드에서는 확실히 작동했음. "거의"라는 표현은 부적절함.

  • 향후 12개월 이내에 유사한 사례가 발견될 것이라는 예측. 유지보수자들이 서로의 과거 커밋을 의심하면서 시작될 것임.

  • 이 사건에서 얻은 개인적인 교훈:

    • 소스 저장소와 다른 코드를 포함하는 소스 배포 tarball은 나쁨. 이러한 방식에서 벗어나야 함.
    • 자동 생성된 아티팩트는 항상 커밋되어야 함.
    • 코드 리뷰 중에 누구나 넘겨보는 자동 생성된 아티팩트는 문제가 될 수 있음. 이러한 유형의 파일이 저장소에 있을 경우, 누군가가 조작하지 않았는지 확인하는 자동 테스트가 있어야 함.
    • autotools와 autotools 문화는 나쁨.
    • libsystemd는 생태계에 문제를 일으킴. systemd를 비판하는 사람들이 종종 무시당하지만, systemd는 크고 복잡하며 많은 의존성을 가지고 있고, 대부분의 프로그램은 그 일부만 사용함.
    • 코드 재사용이 항상 좋고, 작은 기능을 위해 큰 라이브러리에 의존하는 것이 좋다는 문화는 잘못됨. 의존성은 유지 관리 부담과 보안 위험을 가져오므로, 이를 기능성과 균형을 맞춰야 함.
    • 배포판 유지보수자들이 패키지에 상당한 패치를 적용하는 것은 문제가 될 수 있음. 실제로 관리하는 사람이 없는 널리 사용되는 사실상의 포크를 만들어냄.
    • 개발자들에게 금전적으로 OSS 작업이 가능하도록 해야 함. liblzma와 xz-utils는 수천만 개의 설치를 가지고 있지만, 정신 건강 문제를 가진 단일 유지보수자가 있음.
    • 코드 리뷰와 유지보수자 교체는 현재 지정학적 고려 사항을 고려해야 함.
  • 문제를 발견한 사람이 Azure Postgres에서 일하는 마이크로소프트 엔지니어였음에 대한 감사의 표현. 이제 Azure를 좋아하게 됨.

  • xz의 원래 유지보수자가 Jia Tan에게 책임을 넘겼지만, 실제로 만나거나 전화 통화를 한 적이 없을 수도 있음. 이메일/GitHub을 통해서만 소통하는 것이 일반적인지에 대한 의문 제기. 이 이야기 이후에 오픈 소스 프로젝트의 유지보수자들이 더 조심할 것으로 예상됨.

  • 이 백도어가 일찍 발견되었다고 생각하는 동안, 이미 목적을 달성했을 수도 있음. 특히 Kali와 Debian과 같은 롤링 릴리스 배포판을 사용하는 개발자들이 목표였다면 더욱 그러함.

  • xz Utils의 오랜 유지보수자인 Lasse Collin이 소프트웨어를 자주 또는 충분히 빠르게 업데이트하지 않았다는 주장은 실수였음을 시사함.