코퍼헤드OS

**CopperheadOS**는 안드로이드 모바일 플랫폼을 기반으로 하는 스마트폰용 모바일 운영체제이다. 구글의 Android Open Source Project 공식 릴리스에 개인 정보 보호 및 보안 기능을 추가한다. CopperheadOS는 캐나다의 정보 보안 회사인 Copperhead가 개발했다. 소스 코드는 공개 다운로드를 지원하지 않지만, 크리에이티브 커먼즈 BY-NC-SA 4.0 라이선스가 적용된다.

CopperheadOS는 구글 픽셀 제품군의 스마트폰을 지원하며, 개발팀의 리소스 보존을 위해 다른 장치는 지원하지 않는다. 이 운영체제는 강화된 버전의 리눅스 커널과 장치 잠금 및 암호화에 별도의 비밀번호를 사용할 수 있는 기능 등 순정 안드로이드에는 없는 여러 보안 기능을 포함하고 있다. 대부분의 안드로이드 장치에서 볼 수 있는 구글 플레이를 사용하는 대신, CopperheadOS는 사용자가 악성 앱을 설치할 위험을 줄이기 위해 F-Droid 스토어를 함께 제공한다.

CopperheadOS의 개발은 2014년에 시작되었으며, 2015년 8월에 초기 알파 버전이 출시되었다. 이어서 2016년 2월에 베타 버전이 출시되었고, 그 후 구글 넥서스 및 픽셀 폰을 대상으로 한 여러 릴리스가 이어졌다. 이 프로젝트는 처음에는 GNU 일반 공중 사용 허가서로 출시되었으며, 프로젝트의 소스 코드는 깃허브에 공개되어 있었다. 2016년 10월에는 라이선스가 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 (BY-NC-SA)으로 변경되었으며, 2020년 6월부터 소스 코드 접근은 Copperhead의 파트너 네트워크 회원으로 제한되었다.

## 역사

### 프로젝트 시작 및 초기 릴리스

CopperheadOS 프로젝트는 2014년 캐나다 토론토에 본사를 둔 정보 보안 회사인 Copperhead에 의해 시작되었다. 이 회사는 같은 해 CEO인 제임스 도널드슨과 CTO 겸 수석 개발자인 대니얼 미카이(Daniel Micay)에 의해 설립되었으며, 처음에는 캐나다 법률 및 정보 산업의 고객을 대상으로 서비스를 제공했다. 이 작업 중에 설립자들은 모바일 장치용으로 안전하고 오픈 소스 운영체제가 없다는 것을 인지했고, 이러한 필요를 해결하기 위해 오픈 소스 라이선스 아래 CopperheadOS를 만들었다.

Copperhead는 2015년 4월 CopperheadOS 개발을 발표했다. 발표에 따르면, 이 운영체제는 개인 정보 보호에 민감한 사용자를 대상으로 하는 "기본적으로 안전한 안드로이드 버전"으로 설계되었다. 처음에는 CopperheadOS가 GNU 일반 공중 사용 허가서 라이선스를 받았으며, 프로젝트 코드는 깃허브에 있었다. Copperhead는 CopperheadOS를 위해 개발된 여러 버그 수정 및 개선 사항을 구글의 안드로이드 개발의 주요 프로젝트인 Android Open Source Project에 기여했다.

2015년 8월, Copperhead는 CopperheadOS의 첫 번째 알파 버전을 출시했다. 이 시점에서 이 프로젝트는 시아노젠모드를 기반으로 했으며, 구글 넥서스 5와 삼성 갤럭시 S4를 지원했다. 이어서 2016년 2월에 베타 버전이 출시되었으며, 넥서스 5, 넥서스 9, 넥서스 5X를 지원했다. 베타 버전은 시아노젠모드를 사용하는 대신 Android Open Source Project를 직접 기반으로 했으며, 이후 릴리스도 마찬가지였다. 시아노젠모드에서 벗어나고 벤더 지원이 부족하여 삼성 갤럭시 S4에 대한 지원은 중단되었다. 2016년 5월, Copperhead는 CopperheadOS가 미리 설치된 넥서스 5X를 직접 구매할 수 있는 온라인 상점을 열었다. 넥서스 6P는 같은 해 7월에 상점에서 구매할 수 있게 되었다.

### 라이선스 변경 및 대니얼 미카이의 퇴사

2016년 10월부터 안드로이드 7.0 누가를 기반으로 한 CopperheadOS 버전의 경우, Copperhead는 CopperheadOS 라이선스를 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 (BY-NC-SA) 라이선스로 변경했다. 도널드슨에 따르면, 이는 프로젝트의 지속 가능성을 유지하기 위해 다른 회사들이 Copperhead에 라이선스 비용을 지불하지 않고 CopperheadOS 코드를 사용하는 것을 방지하기 위함이었다.

Copperhead는 2017년 3월부터 넥서스 폰 외에 CopperheadOS가 미리 설치된 구글 픽셀 폰 판매를 시작했다. 넥서스 장치의 경우, 사용자들은 CopperheadOS를 무료로 다운로드하고 설치할 수 있었다. 그러나 픽셀 폰의 경우 이 옵션은 제공되지 않았다. 픽셀 폰의 경우, 사용자들은 Copperhead 상점에서 CopperheadOS가 미리 설치된 폰을 구매하거나, 자신의 폰을 Copperhead로 보내 운영체제를 설치할 수 있었다. 이는 CopperheadOS의 비영리 라이선스 위반을 방지하기 위함이었다. Copperhead 경쟁업체들은 상업적 라이선스를 얻지 않고 CopperheadOS가 설치된 넥서스 폰을 판매하고 있었고, Copperhead는 픽셀에서 이러한 문제를 피하고 싶었다. 이 문제는 같은 해 11월에 최고조에 달했는데, Copperhead는 계속되는 라이선스 위반을 중단시키기 위해 넥서스 장치용 업데이트 서버를 잠시 중단했다. 회사는 이틀 후에 업데이트 서버를 복원했다.

Copperhead는 2018년 1월 픽셀 2와 픽셀 2 XL용 CopperheadOS 알파 버전을 출시했다. 픽셀 2와 2 XL의 공식 릴리스는 "내부 사용용"으로 표시되었으며, 인증 없이는 Copperhead 웹사이트에서 다운로드할 수 없었다. 이는 넥서스 릴리스만 공개 다운로드가 가능한 현 상태를 유지했다.

2018년 초 몇 달 동안 두 창립자 간의 사업 정책에 대한 의견 불일치가 점점 격화되었고, 결국 그해 6월 도널드슨이 미카이를 해고했다. 미카이는 자신의 해고 통지서를 레딧에 게시하고, 프로젝트 업데이트를 릴리스하는 데 필요한 암호화 키를 삭제하는 것으로 대응했다. 미카이는 "회사와 인프라가 손상되었다"고 판단했으며, "[도널드슨이] 어떤 사용자에게도 해를 끼치는 것을 막을 것"이라고 말했다. Copperhead는 그 후 몇 달 동안 CopperheadOS 업데이트를 제공하지 못했다. 미카이는 CopperheadOS의 오픈 소스 부분을 안드로이드 하드닝 프로젝트로 계속 개발했으며, 이는 나중에 GrapheneOS로 이름이 변경되었다. 도널드슨에 따르면, 2019년 2월 현재 그와 미카이는 이 사건으로 인해 법적 분쟁 중이었다.

### 안드로이드 파이 이후

미카이의 퇴사 이후 CopperheadOS의 다음 릴리스는 2019년 3월에 이루어졌다. 이 버전은 안드로이드 파이 (9)를 기반으로 했으며, 픽셀, 픽셀 XL, 픽셀 2 및 픽셀 2 XL을 지원했다. CopperheadOS가 사전 설치된 픽셀 장치는 Copperhead 웹사이트에서 구매할 수 있었다. 이어서 2020년 2월에는 안드로이드 10을 기반으로 한 CopperheadOS 버전이 픽셀 2 및 픽셀 2 XL용으로 출시되었다. 2020년 6월 현재, CopperheadOS 소스 및 설치 파일은 더 이상 공개 다운로드가 불가능하며 Copperhead의 파트너 네트워크를 통해서만 얻을 수 있다. Copperhead는 이러한 변경의 이유로 "Copperhead의 비상업적 라이선스에 대한 대량 위반"을 들고 있다.

Copperhead는 2020년 11월에 안드로이드 11을 기반으로 한 CopperheadOS 버전을 출시했다. 이어서 2022년 2월에는 안드로이드 12를 기반으로 한 버전이 출시되었다. 이 버전은 픽셀 4a, 픽셀 4a 5G, 픽셀 5, 픽셀 5a 및 픽셀 6에 대한 지원을 추가했다. 2023년 2월에는 안드로이드 13 업데이트와 함께 픽셀 6a 및 픽셀 7에 대한 지원을 추가했다.

## 기능 및 호환성

CopperheadOS는 잠재적인 보안 취약점을 공격자가 악용하기 어렵게 만들기 위해 안드로이드 운영체제를 강화하는 데 중점을 둔다. 2016년 인터뷰에서 Copperhead CEO 제임스 도널드슨은 "이것의 요점은 공격자가 소비해야 하는 리소스의 양을 늘리는 것이다... 바라건대 그들이 포기할 지점까지."라고 말했다. 이 운영체제는 프로그램이 메모리와 상호작용하는 방식과 관련하여 순정 안드로이드에 비해 여러 보안 개선 사항을 제공한다. 이 운영체제는 리눅스 커널용 PaX 보안 패치를 구현하여 쓰기 가능한 메모리에 침투한 코드를 실행하는 것에 대한 저항력을 향상시킨다. 또한 향상된 주소 공간 배치 난수화, 더 나은 메모리 배치 난수화를 가진 malloc 버전, 그리고 더 안전한 SELinux 정책을 특징으로 한다. CopperheadOS는 또한 검증된 부팅 기능을 제공하여 악성 코드가 장치의 부팅 프로세스나 복구 프로세스를 장악하는 것을 방지한다.

사용자 지향적인 기능에도 순정 안드로이드와 다른 여러 변경 사항이 있다. CopperheadOS는 장치 잠금에 사용되는 비밀번호와 장치의 암호화 비밀번호를 분리한다. 사용자들은 비교적 간단한 비밀번호로 장치를 잠금 해제할 수 있지만, 잘못된 비밀번호를 5번 연속으로 입력하면 장치가 재부팅되고 암호화 비밀번호를 입력해야 하는데, 이는 공격자가 추측하기가 더 어려울 것이다. 이 운영체제는 일반적으로 안드로이드 폰에서 볼 수 있는 Google Play 스토어 대신 사용자들이 오픈 소스 애플리케이션을 설치할 수 있는 F-Droid 스토어를 함께 제공한다. 이는 사용자들이 알지 못하는 사이에 악성 앱을 장치에 설치하는 것을 방지하기 위함이다.

이 프로젝트는 구글 픽셀 제품군의 스마트폰을 지원한다. 이는 Copperhead의 개발 자원을 보존하고, 구글이 보안 업데이트를 출시할 때 신속한 패치를 가능하게 하기 위함이다.  현재 지원되는 폰은 픽셀 3a, 픽셀 3a XL, 픽셀 4, 픽셀 4 XL, 픽셀 4a, 픽셀 4a 5G, 픽셀 5, 픽셀 5a, 픽셀 6이다.

## 평가

2018년 1월, opensource.com의 타루스 발로그(Tarus Balog)는 CopperheadOS의 기능에 깊은 인상을 받았지만, 구글 애플리케이션의 부족이 불편했고 라이선스 이용 약관에 혼란을 느꼈다. 발로그는 Copperhead에서 제공하는 픽셀 및 픽셀 XL 폰이 너무 비싸서 처음에는 넥서스 6P를 사용했다고 말했다. 당시 소스 코드는 이용 가능했지만, 그는 자신만의 빌드를 성공적으로 완료할 수 없었다.

## 영향

2016년 토어 프로젝트는 CopperheadOS를 기반으로 하는 토어 폰이라는 프로토타입 스마트폰을 출시했으며, 이는 사용자에게 익명성을 위해 토어를 통해 네트워크 연결을 라우팅할 수 있는 기능을 제공했다. CopperheadOS는 보안에 중점을 두었기 때문에 선택되었는데, 특히 검증된 부팅 사용과 구글 플레이의 앱이 시스템 앱을 덮어쓰는 것을 방지하는 기능 때문이었다. 이 프로토타입은 구글 넥서스와 픽셀 하드웨어에서만 작동했으며, 많은 미완성 부분이 있었다.

## 같이 보기
* 커스텀 안드로이드 배포판 목록
* 보안 중심 운영체제
* 세일피시 OS
* 가디언 프로젝트

## 각주

## 외부 링크
* 
* 

분류:모바일 리눅스
분류:모바일 운영체제
분류:커스텀 안드로이드 펌웨어