# 홈브루 감사 보고서

> Clean Markdown view of GeekNews topic #16108. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16108](https://news.hada.io/topic?id=16108)
- GeekNews Markdown: [https://news.hada.io/topic/16108.md](https://news.hada.io/topic/16108.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-31T11:32:57+09:00
- Updated: 2024-07-31T11:32:57+09:00
- Original source: [blog.trailofbits.com](https://blog.trailofbits.com/2024/07/30/our-audit-of-homebrew/)
- Points: 1
- Comments: 0

## Topic Body

##### Homebrew 감사

- **Homebrew 감사 개요**
  - Homebrew/brew 및 세 개의 관련 저장소를 포함한 Homebrew의 보안 관련 측면을 감사함
  - 발견된 문제는 치명적이지 않지만, 공격자가 예기치 않은 시점에 실행 가능한 코드를 로드하여 Homebrew의 무결성을 저해할 수 있음
  - Open Tech Fund의 후원으로 수행됨

##### Homebrew

- **Homebrew 소개**
  - macOS 및 Linux용 패키지 관리자
  - 소프트웨어 개발자들에게 널리 사용되며, 수백만 건의 패키지 설치를 처리함
  - Golang, Node.js, OpenSSL 등의 중요한 패키지를 포함하여, Homebrew의 보안이 전체 소프트웨어 생태계의 보안에 중요함

- **Homebrew의 역사**
  - 2009년 시작된 이후 여러 아키텍처 변경을 겪음
  - 바이너리 빌드(병)를 기본 설치 메커니즘으로 도입하여 로컬 소스 빌드를 대체함
  - CI/CD를 통해 빌드의 무결성을 유지함

##### 감사 범위

- **감사 질문**
  - 로컬 액터가 `brew install` 없이 공식 DSL을 실행할 수 있는지
  - 로컬 액터가 `brew tap`만으로 공식 DSL을 평가할 수 있는지
  - 네임스페이스 혼동이나 충돌을 유발할 수 있는지
  - 로컬로 설치된 공식이 Homebrew의 빌드 격리 메커니즘을 우회할 수 있는지
  - 낮은 권한의 CI/CD 액터가 높은 권한으로 전환할 수 있는지
  - 낮은 권한의 CI/CD 액터가 병 빌드를 오염시킬 수 있는지
  - 낮은 권한의 CI/CD 액터가 CI/CD에서 지속성을 유지할 수 있는지

##### 주요 발견 사항

###### brew

- **주요 발견 사항**
  - 공식이 문자열 삽입을 통해 샌드박스를 탈출할 수 있음
  - 충돌이 발생하기 쉬운 해시 함수(MD5)를 사용하여 런타임 혼동을 유발할 수 있음
  - 공식이 명시되지 않은 네트워크 리소스를 빌드에 포함할 수 있음
  - 소켓 피벗을 통해 샌드박스를 탈출할 수 있음
  - `sudo` 토큰을 통해 권한 상승을 수행할 수 있음
  - 비로컬 URL에서 공식을 설치할 수 있음

###### Homebrew의 CI/CD

- **주요 발견 사항**
  - `pull_request_target` 트리거를 사용하여 서드파티 PR이 Homebrew의 상위 저장소에서 코드를 실행할 수 있음
  - `workflow_dispatch` 입력을 통해 셸 삽입이 가능함
  - 아카이브 추출 중 샌드박싱/격리가 부족하여 높은 권한으로 전환할 수 있음
  - 비로컬 URL에서 공식을 설치하여 임의 코드 실행을 유도할 수 있음

##### 주요 시사점

- **패키지 관리 생태계 감사의 도전**
  - 패키지 관리 도구는 설계상 임의의 서드파티 코드를 설치하고 실행함
  - Homebrew와 같은 패키징 생태계에서는 패키지 형식(공식)이 자체적으로 실행 가능한 코드임

- **감사 협력**
  - Homebrew 유지보수자 및 Homebrew PLC와 긴밀히 협력함
  - Homebrew의 보안 관리자 Patrick Linnane에게 감사의 뜻을 전함

##### GN⁺의 정리

- Homebrew는 macOS 및 Linux에서 널리 사용되는 패키지 관리자임
- 감사 결과, 치명적이지는 않지만 보안 문제를 발견함
- Homebrew의 보안은 전체 소프트웨어 생태계의 보안에 중요함
- 패키지 관리 도구의 특성상 임의의 서드파티 코드를 실행할 수 있어 보안 감사가 중요함
- 유사한 기능을 가진 패키지 관리 도구로는 apt, yum 등이 있음

## Comments



_No public comments on this page._
