toplogo
Sign In

XZ Utils 백도어 공격의 비판적 경로와 잠재적 완화 기술의 효과성: XZ 사례의 초기 학습


Core Concepts
XZ Utils에 숨겨진 백도어를 통해 원격 명령 실행이 가능하며, 이에 대한 다양한 완화 기술을 분석하였다.
Abstract
이 논문은 XZ Utils에 발견된 백도어 공격의 주요 단계를 분석하고, 이러한 유형의 공급망 공격을 완화할 수 있는 다양한 기술을 소개한다. 신뢰 구축 단계: 공격자는 2021년부터 XZ Utils 프로젝트에 기여하며 신뢰를 쌓았다. 준비 단계: 공격자는 2023년 Google OSS-Fuzz 프로젝트의 주요 연락처를 변경하고, GNU 간접 함수(IFUNC) 기능을 추가했다. 백도어 주입 단계: 2024년 2월 23일, 공격자는 악성 테스트 파일을 프로젝트에 추가했다. 배포 단계: 2024년 2월 24일, 공격자는 악성 소스 코드를 포함한 XZ Utils 5.6.0 버전을 릴리스했다. 악용 단계: 공격자는 OpenSSH의 RSA_public_decrypt 함수 포인터를 변경하여 원격 명령 실행이 가능했다. 이 공격에 대한 잠재적 완화 기술로는 오픈소스 프로젝트의 조직적 보안 강화, 기여자 신뢰성 검증, 투명성 로그 활용, 공급망 추적성 향상, 코드 샌드박싱, 법적 대응 등이 논의되었다.
Stats
공격자는 XZ Utils 프로젝트에 2021년부터 기여하며 신뢰를 쌓았다. 공격자는 2023년 Google OSS-Fuzz 프로젝트의 주요 연락처를 변경했다. 공격자는 2024년 2월 23일 악성 테스트 파일을 프로젝트에 추가했다. 공격자는 2024년 2월 24일 악성 소스 코드를 포함한 XZ Utils 5.6.0 버전을 릴리스했다. 공격자는 OpenSSH의 RSA_public_decrypt 함수 포인터를 변경하여 원격 명령 실행이 가능했다.
Quotes
"Jia Tan" (presumably a pseudonym)이 2021년부터 XZ Utils 프로젝트에 기여하며 신뢰를 쌓았다. Lasse Collin은 "Jia Tan이 프로젝트의 더 큰 역할을 하게 될 것"이라고 언급했다. Google OSS-Fuzz의 보안 엔지니어 jonathanmetzman은 "프로젝트 유지 관리자가 OSS-Fuzz에서 테스트할 부분을 결정할 수 있다"고 설명했다.

Deeper Inquiries

오픈소스 프로젝트의 보안을 강화하기 위해 어떤 추가적인 조직적 조치를 고려할 수 있을까?

오픈소스 프로젝트의 보안을 강화하기 위해 추가적인 조직적 조치를 고려할 수 있는 몇 가지 방안이 있습니다. 위험 관리 프로세스 개선: 오픈소스 소프트웨어를 통합할 때 특정 기준을 평가할 수 있는 위험 관리 프로세스를 개선할 필요가 있습니다. 이를 통해 특정 오픈소스 라이브러리나 도구가 통합될 수 있는지 여부를 결정할 수 있습니다. 피어 리뷰 워크플로우 구축: 특정 브랜치를 보호하고 변경 사항을 허용하기 전에 다른 인증된 엔티티의 승인을 요구하는 피어 리뷰 워크플로우를 구축할 수 있습니다. 이를 통해 변경 사항을 검토하고 승인하기 전에 다른 전문가의 의견을 수렴할 수 있습니다. 의존성 감사 도구 사용: 오픈소스 프로젝트의 의존성을 감사하기 위해 Cargo Vet와 같은 도구를 사용하여 프로젝트의 타사 의존성을 스캔하고 신뢰할 수 있는 감사를 수행할 수 있습니다. 정신 건강 및 유지자 지원 강화: 오픈소스 프로젝트를 유지하는 개발자의 정신 건강과 지원을 강화하여 과부하를 방지하고 보안 관련 작업에 더 많은 시간을 투자할 수 있도록 지원할 필요가 있습니다. 신뢰성 있는 기여자 식별: 기여자의 신뢰성을 높이기 위해 디지털 신원 확인을 요구할 수 있습니다. 이를 통해 온라인 신원을 자연인과 연결할 수 있습니다.

오픈소스 프로젝트의 보안을 강화하기 위해 어떤 추가적인 조직적 조치를 고려할 수 있을까?

오픈소스 프로젝트의 보안을 강화하기 위해 추가적인 조직적 조치를 고려할 수 있는 몇 가지 방안이 있습니다. 위험 관리 프로세스 개선: 오픈소스 소프트웨어를 통합할 때 특정 기준을 평가할 수 있는 위험 관리 프로세스를 개선할 필요가 있습니다. 이를 통해 특정 오픈소스 라이브러리나 도구가 통합될 수 있는지 여부를 결정할 수 있습니다. 피어 리뷰 워크플로우 구축: 특정 브랜치를 보호하고 변경 사항을 허용하기 전에 다른 인증된 엔티티의 승인을 요구하는 피어 리뷰 워크플로우를 구축할 수 있습니다. 이를 통해 변경 사항을 검토하고 승인하기 전에 다른 전문가의 의견을 수렴할 수 있습니다. 의존성 감사 도구 사용: 오픈소스 프로젝트의 의존성을 감사하기 위해 Cargo Vet와 같은 도구를 사용하여 프로젝트의 타사 의존성을 스캔하고 신뢰할 수 있는 감사를 수행할 수 있습니다. 정신 건강 및 유지자 지원 강화: 오픈소스 프로젝트를 유지하는 개발자의 정신 건강과 지원을 강화하여 과부하를 방지하고 보안 관련 작업에 더 많은 시간을 투자할 수 있도록 지원할 필요가 있습니다. 신뢰성 있는 기여자 식별: 기여자의 신뢰성을 높이기 위해 디지털 신원 확인을 요구할 수 있습니다. 이를 통해 온라인 신원을 자연인과 연결할 수 있습니다.

오픈소스 소프트웨어의 공급망 추적성 향상을 위해 개발자와 배포 플랫폼이 협력할 수 있는 방안은 무엇일까?

오픈소스 소프트웨어의 공급망 추적성을 향상시키기 위해 개발자와 배포 플랫폼이 협력할 수 있는 몇 가지 방안이 있습니다. CI 파이프라인을 통한 자동화: 개발자가 개인 컴퓨터에서 수정된 릴리스 타볼을 만드는 대신 CI 파이프라인을 통해 자동으로 수정된 릴리스 타볼을 생성하도록 장려할 수 있습니다. 이를 통해 타볼의 정확한 내용이 저장소의 검증 가능한 코드에 의해 정의됩니다. 수동 업로드 아티팩트 강조: 코드 호스팅 플랫폼은 수동으로 업로드된 아티팩트를 UI에서 덜 신뢰할 수 있는 것으로 강조할 수 있습니다. 이를 통해 사용자들이 더욱 주의깊게 검토하도록 유도할 수 있습니다. 완전히 재현 가능한 수정된 릴리스 타볼: 개발자가 수정된 릴리스 타볼을 완전히 재현 가능하도록 만들어 검증 가능한 타볼 아티팩트를 제공할 수 있습니다. 이를 통해 수정된 타볼이 정확한 소스 코드와 일치하는지 확인할 수 있습니다. 네이티브 타겟을 위한 도구 사용: Autoconf와 같은 도구 대신에 특정 타겟을 위해 항상 크로스 컴파일하는 도구체인을 사용하여 수정된 타볼을 불필요하게 만들 수 있습니다. 배포에 대한 직접적인 의존: 배포는 릴리스 타볼이 아닌 소스 저장소에 직접 의존할 수 있습니다. 이를 통해 릴리스 타볼의 실제 원본과 상위 소스 코드가 연결될 수 있습니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star