CopperheadOSは、 Androidモバイルプラットフォームをベースにしたスマートフォン向けモバイルオペレーティングシステムです。GoogleのAndroidオープンソースプロジェクトの公式リリースに、プライバシーとセキュリティ機能を追加しています。CopperheadOSは、カナダの情報セキュリティ企業であるCopperheadによって開発されました。Creative Commons BY-NC-SA 4.0ライセンスの下で提供されていますが、ソースコードは一般公開されていません。
CopperheadOSは、Google Pixelシリーズのスマートフォンのみをサポートしています。開発チームのリソースを節約するため、他のデバイスは対象外となっています。標準のAndroidにはないセキュリティ機能がいくつか搭載されており、例えば、強化版のLinuxカーネルや、デバイスのロック解除と暗号化にそれぞれ異なるパスワードを設定できる機能などがあります。また、ほとんどのAndroidデバイスに搭載されているGoogle Playストアではなく、F-Droidストアを採用することで、ユーザーが悪意のあるアプリをインストールするリスクを軽減しています。
CopperheadOSの開発は2014年に始まり、2015年8月に最初のアルファ版がリリースされました。その後、2016年2月にベータ版がリリースされ、Google NexusおよびPixelスマートフォンを対象とした複数のバージョンがリリースされました。このプロジェクトは当初、 GNU General Public Licenseの下でリリースされ、ソースコードはGitHubで公開されていました。2016年10月にライセンスがCreative Commons Attribution-NonCommercial-ShareAlike (BY-NC-SA)に変更され、2020年6月現在、ソースコードへのアクセスはCopperheadのパートナーネットワークのメンバーに限定されています。
CopperheadOSプロジェクトは、カナダのトロントに拠点を置く情報セキュリティ企業Copperheadによって2014年に開始されました。同社は同年、CEOのJames DonaldsonとCTO兼リード開発者のDaniel Micayによって設立され、当初はカナダの法律業界と情報機関の顧客にサービスを提供していました。この業務中に、創設者たちはモバイルデバイス向けの安全なオープンソースオペレーティングシステムが不足していることに気づき、このニーズに対応するためにオープンソースライセンスの下でCopperheadOSを作成しました。[ 1 ] [ 2 ] [ 3 ]
Copperheadは2015年4月にCopperheadOSの開発を発表しました。発表によると、このオペレーティングシステムはプライバシーを重視するユーザーを対象とした「デフォルトで安全なAndroidバージョン」として設計されました。 [ 4 ]当初、CopperheadOSはGNU General Public Licenseの下でライセンスされ、[ 5 ]プロジェクトのコードはGitHubにありました。[ 6 ] Copperheadは、CopperheadOS向けに開発したバグ修正や改善点のいくつかを、 GoogleによるAndroid開発の主要プロジェクトであるAndroid Open Source Projectに提供しました。[ 7 ]
2015 年 8 月、Copperhead は CopperheadOS の最初のアルファ版をリリースしました。[ 8 ]この時点では、プロジェクトはCyanogenMod をベースにしており、Google Nexus 5とSamsung Galaxy S4のサポートが含まれていました。[ 9 ]これに続いて、2016 年 2 月に、Nexus 5、 Nexus 9、Nexus 5Xをサポートするベータ版がリリースされました。ベータ版は、CyanogenMod を使用する代わりに Android Open Source Project を直接ベースとしており、その後のリリースも同様でした。CyanogenMod から離れ、ベンダーのサポートがなくなったため、Samsung Galaxy S4 のサポートが中止されました。[ 10 ] 2016 年 5 月、Copperhead は、CopperheadOS がプリロードされた Nexus 5X を直接購入できるオンライン ストアを開設しました。Nexus 6Pは、同年 7 月にストアで購入できるようになりました。[ 11 ]
2016 年 10 月以降、Android 7.0 Nougat をベースとした CopperheadOS のバージョンでは、Copperhead は CopperheadOS のライセンスをCreative Commons Attribution-NonCommercial-ShareAlike (BY-NC-SA) ライセンスに変更しました。[ 5 ] [ 12 ] Donaldson 氏によると、これはプロジェクトの持続可能性を維持するために、他の企業が Copperhead にライセンス料を支払わずに CopperheadOS のコードを使用することを防ぐためでした。[ 5 ]
Copperheadは、Nexus端末のラインナップに加え、2017年3月にCopperheadOSをプリインストールしたGoogle Pixel端末の販売を開始しました。 [ 13 ] Nexus端末の場合、ユーザーはCopperheadOSを無料でダウンロードしてインストールできましたが、[ 14 ] Pixel端末ではこのオプションは利用できませんでした。[ 15 ] Pixel端末の場合、ユーザーはCopperheadストアでCopperheadOSがプリインストールされた端末を購入するか、自分の端末をCopperheadに送ってオペレーティングシステムをインストールしてもらうかのどちらかでした。これは、CopperheadOSの非商用ライセンス違反を防ぐためでした。Copperheadの競合他社は商用ライセンスを取得せずにCopperheadOSをインストールしたNexus端末を販売しており、CopperheadはPixelでこの問題を回避したかったのです。[ 15 ]同年11月、Copperheadはライセンス違反が続くのを阻止するためにNexus端末のアップデートサーバーを一時的に停止し、この問題は深刻化しました。同社は2日後にアップデートサーバーを復旧しました。[ 15 ]
Copperheadは2018年1月にPixel 2とPixel 2 XL向けにCopperheadOSのアルファ版をリリースした。Pixel 2と2 XLの公式リリースは「内部使用用」とマークされており、認証なしではCopperheadのWebサイトからダウンロードできなかった。これにより、Nexusリリースのみが一般公開でダウンロード可能という現状が維持された。[ 16 ]
2018 年の最初の数か月で、2 人の創業者間のビジネス ポリシーに関する意見の相違がますます激化し、同年 6 月に Donaldson が Micay を解雇するに至った。[ 17 ] [ 18 ] Micay は、 Redditに解雇通知を投稿し、プロジェクトのアップデートをリリースするために必要な暗号鍵を削除することで対応した。[ 17 ] [ 19 ] Micay は、「会社とインフラストラクチャが侵害されている」と考えており、「[Donaldson] がユーザーに危害を加えるのを防ぐ」と述べた。[ 20 ] Copperhead はその後数か月間、CopperheadOS のアップデートを提供できなかった。[ 18 ] Micay は、Android Hardening プロジェクトとして CopperheadOS のオープンソース部分の開発を続け、後にGrapheneOSにブランド変更した。[ 21 ] Donaldson によると、2019 年 2 月の時点で、彼と Micay はこの事件に関して法的紛争中であった。[ 22 ]
Micay の退社後、CopperheadOS の次のリリースは 2019 年 3 月でした。このバージョンはAndroid Pie (9) をベースとしており、Pixel、Pixel XL、Pixel 2、Pixel 2 XL をサポートしていました。CopperheadOS がプリインストールされた Pixel デバイスは、Copperhead の Web サイトから購入できました。[ 23 ]これに続いて、2020 年 2 月には Android 10 をベースとした CopperheadOS のバージョンがリリースされ、Pixel 2 と Pixel 2 XL で利用可能になりました。[ 24 ] 2020 年 6 月現在、CopperheadOS のソースとインストールファイルは一般公開されておらず、Copperhead のパートナー ネットワークからのみ入手できるようになりました。Copperhead はこの変更の理由として「Copperhead の非商用ライセンスの大規模な違反」を挙げています。[ 25 ]
Copperheadは2020年11月にAndroid 11ベースのCopperheadOSをリリースしました。[ 26 ]続いて2022年2月にAndroid 12ベースのバージョンがリリースされました。このバージョンでは、 Pixel 4a、Pixel 4a 5G、Pixel 5、Pixel 5a、Pixel 6のサポートが追加されました。[ 27 ] 2023年2月には、 Android 13アップデートでPixel 6aとPixel 7のサポートが追加されました。[ 28 ]
CopperheadOSは、攻撃者が潜在的なセキュリティ脆弱性を悪用することをより困難にするために、Androidオペレーティングシステムを強化することに重点を置いています。2016年のインタビューで、CopperheadのCEOであるJames Donaldson氏は、「その目的は、攻撃者が費やす必要のあるリソースの量を増やし 、最終的に攻撃者が諦めるようにすることです」と述べています。[ 1 ]このオペレーティングシステムは、プログラムがメモリとどのようにやり取りするかに関連して、標準のAndroidよりもいくつかのセキュリティ改善が施されています。Linuxカーネル用のPaXセキュリティパッチを実装しており、書き込み可能なメモリに侵入したコードの実行に対する耐性が向上しています。[ 10 ]また、アドレス空間レイアウトのランダム化の改善、メモリレイアウトのランダム化がより優れたバージョンのmalloc 、およびより安全なSELinuxポリシーも備えています。[ 10 ] [ 29 ] CopperheadOSには、マルウェアがデバイスのブートプロセスまたはリカバリプロセスを乗っ取るのを防ぐ検証済みブートも備わっています。 [ 30 ]
ユーザー向けの機能にも、標準の Android とは異なるさまざまな変更点があります。CopperheadOS では、デバイスのロック解除に使用するパスワードとデバイスの暗号化パスワードが分離されています。ユーザーは比較的簡単なパスワードを使用してデバイスのロックを解除できますが、パスワードを 5 回連続で間違えると、デバイスが再起動し、暗号化パスワードを入力する必要があります。これは、攻撃者が推測するのがより困難であると考えられます。[ 10 ]このオペレーティングシステムには、Android スマートフォンに通常搭載されているGoogle Play ストアの代わりに、ユーザーがオープンソースのアプリケーションをインストールできるF-Droidストアが付属しています。これは、ユーザーがデバイスに悪意のあるアプリを意図せずインストールすることを防ぐことを目的としています。[ 1 ]
このプロジェクトは、 Google Pixel製品ラインのスマートフォンをサポートしています。これは、Copperheadの開発リソースを節約し、Googleがセキュリティアップデートをリリースした際に迅速なパッチ適用を可能にするためです。[ 31 ] 2022年9月現在 サポートされているスマートフォンは、Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL、Pixel 4a、Pixel 4a 5G、Pixel 5、Pixel 5a、およびPixel 6です。[ 32 ]
2018年1月、opensource.comのTarus BalogはCopperheadOSの機能に好印象を持ったが、Googleアプリケーションがないことに難しさを感じ、ライセンス条項と条件に戸惑った。Balogは、Copperheadから入手可能なPixelとPixel XLのスマートフォンが高価すぎたため、最初はNexus 6Pを使用したと述べた。当時ソースコードは入手可能だったが、彼は自分のビルドを正常に完了することができなかった。[ 31 ]
2016年、TorプロジェクトはCopperheadOSをベースにしたTor Phoneというプロトタイプのスマートフォンをリリースしました。これにより、ユーザーは匿名性を確保するためにTor経由でネットワーク接続をルーティングできるようになりました。CopperheadOSはセキュリティに重点を置いており、特に検証済みブートの使用と、システムアプリがGoogle Playストアのアプリによって上書きされるのを防ぐ点が評価されました。このプロトタイプはGoogle NexusとPixelハードウェアでのみ動作し、多くの未完成な部分がありました。[ 30 ] [ 33 ]