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이 소프트웨어를 자주 또는 충분히 빠르게 업데이트하지 않았다는 주장은 실수였음을 시사함.
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개월 이내에 유사한 사례가 발견될 것이라는 예측. 유지보수자들이 서로의 과거 커밋을 의심하면서 시작될 것임.
이 사건에서 얻은 개인적인 교훈:
문제를 발견한 사람이 Azure Postgres에서 일하는 마이크로소프트 엔지니어였음에 대한 감사의 표현. 이제 Azure를 좋아하게 됨.
xz의 원래 유지보수자가 Jia Tan에게 책임을 넘겼지만, 실제로 만나거나 전화 통화를 한 적이 없을 수도 있음. 이메일/GitHub을 통해서만 소통하는 것이 일반적인지에 대한 의문 제기. 이 이야기 이후에 오픈 소스 프로젝트의 유지보수자들이 더 조심할 것으로 예상됨.
이 백도어가 일찍 발견되었다고 생각하는 동안, 이미 목적을 달성했을 수도 있음. 특히 Kali와 Debian과 같은 롤링 릴리스 배포판을 사용하는 개발자들이 목표였다면 더욱 그러함.
xz Utils의 오랜 유지보수자인 Lasse Collin이 소프트웨어를 자주 또는 충분히 빠르게 업데이트하지 않았다는 주장은 실수였음을 시사함.