情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第32列車は、「GitHubでの情報漏えい」です。※このマンガはフィクションです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
ここは姫路と京都を結ぶ中堅私鉄、京姫鉄道株式会社。
その情報システム(鉄道システムを除く)の管理を一手に引き受ける広報部システム課は、いつもセキュリティトラブルにてんてこ舞い。うわーん、アカネちゃーん。
「こうしす!」制作参加スタッフが、@IT読者にお届けするセキュリティ啓発4コマ漫画。
今回のテーマは「GitHubでの情報漏えい」です。
NECもソースコード流出を確認、GitHubで 三井住友銀、NTTデータに続き(ITmedia NEWS)
トヨタ、ユーザーのメアド約30万件漏えいの可能性 ソースコードの一部、GitHubに5年間放置(ITmedia NEWS)
公開されることを認識せずに誤ってGitHub上に業務で使用するソースコードを公開してしまうという事例が繰り返されています。このような事態が頻発し、会社内でのGitHubへのアクセスが全面禁止になると、開発業務に多大な支障が生じます。
GitHubを利用するに当たって、どのような点に留意する必要があるのでしょうか。
かつて一部報道で「設計図共有サイト」と紹介されたことがあるように、GitHubを一体何をするためのサイトなのか正確に理解せずに使用してしまうことがあるようです。
GitHubは基本的にはオープンソースソフトウェアなどのソースコードを公開して共有するためのサイトですから、「公開状態で利用する」ことが基本です。従って、GitHub上でリポジトリを新規作成する際には、「Public(公開)」と「Private(非公開)」を選択できますが、個人用のリポジトリの場合はPublicが初期選択されています。
「基本的には」と書いた通り、非公開でGitHubを利用することもできます。個人用のリポジトリでもPrivateを選択すれば非公開にできますし、企業向けの非公開が前提のサービスとして「GitHub Enterprise Cloud」もあります。
英語表記のため何が何だか分からずに、Publicを選んだままリポジトリを作成してしまうこともあるかもしれませんが、公開したくないものであるならば、リポジトリ作成時に必ず意識してPrivateを選択するようにしましょう。
リポジトリの中にパスワードやAPIキーを含めてはいけません。非公開のリポジトリでも今後公開する可能性や漏えいする可能性を考えると含めない方がいいでしょう。
UUUMの事例は、GitHubのソースコードへのアクセスに必要な認証キーが漏えいした結果、非公開のソースコードにアクセス可能な状態となっていました。さらに、そのソースコードに含まれていたデータベースのアクセスキーにより、個人情報も閲覧可能な状態となっていました。
トヨタやUUUMのようにデータベースへのアクセスに必要なパスワードやアクセスキーが漏えいしてしまったという事例だけでなく、Amazon Web Services(AWS)のアクセスキーをリポジトリに入れて公開してしまった結果、第三者に不正利用され、高額請求されたという事例もよくあります。
そして、Gitの仕組み上、変更履歴が全て保持される点にも留意が必要です。
過去に誤ってパスワードなどをコミットしてしまい、最新版では一見削除されていたとしても、変更履歴にはまだ残っているというケースがあります。従って、そもそもパスワードなどがリポジトリに混入しないようにすることが大切です。
例えば、パスワードなどを記載する設定ファイルは、別のファイルに分離した上で「gitignore」を用いてGitにコミットされないように設定するなどの方法があります。
ところで、たとえ非公開であったとしても業務用のソースコードを許可なくGitHubにアップロードすることには大きな問題があります。
いつどのような操作ミス、あるいは脆弱(ぜいじゃく)性などで情報が漏えいしてしまうか分かりませんし、その際になぜ許可を得ずにアップロードしていたのか責任を問われかねません。そして、重要な情報が会社の管理外の場所にアップロードされているという状況は、情報管理の観点でも望ましくありません。さらに、GitHubを運営するのは第三者ですから、そこにアップロードしてしまうことは、秘密保持契約違反に問われるリスクもあります。
業務用のソースコードをGitHub上で管理するのであれば、最低限、会社が管理するOrganization内のリポジトリにのみソースコードをアップロードする必要があります。そして、できるならば、企業向けのサービスであるGitHub Enterprise Cloudを契約して使用するのが望ましいでしょう。監査ログ機能があり、万が一の際に漏えいの有無の確認に役立ちます。
ところで、GitHubには「Arctic Code Vault」というアーカイブプログラムがあります。オープンソースプロジェクトのソースコードを、永久凍土層の地下に1000年間保存するというプロジェクトです。
このプロジェクトの保存対象に選ばれるためには幾つか条件があるようですが、公開されていて、なおかつ比較的新しいものはスターが0でも対象となることがあるようです。
例えば、「こうしす!」のキャラクター3Dモデルのリポジトリ(執筆時点ではスター0個)が対象に選ばれています。
こうしす!のキャラクター3Dモデルは、恐らく1000年間保存されるということになるでしょう。
従って、公開されたソースコードは、どのようなものでも1000年間保存されてしまう可能性があるということにも留意が必要です。
「Arctic Code Vault」の対象としたくなければ、リポジトリの設定で「Preserve this repository」のチェックを外すことで、オプトアウトしなければなりません。
もはや1000年後の未来人に見られたところでどうってことはないかもしれませんが、GitHub上でソースコードを公開するということは、1000年後の未来人へのお手紙となってしまうかもしれないと認識した上で、うまく活用していく必要があるといえるでしょう。
Copyright 2012-2017 OPAP-JP contributors.
本作品は特に注記がない限りCC-BY 4.0の下にご利用いただけます
アニメ「こうしす!」監督、脚本。情報処理安全確保支援士。プログラマーの本業の傍ら、セキュリティ普及啓発活動を行う。
著書:「こうしす!社内SE 祝園アカネの情報セキュリティ事件簿」(翔泳社)2020年2月発売
「ハックしないで監査役!! 小説こうしす!EEシリーズ 元社内SE祝園アカネ 監査役編 [1]」(京姫鉄道出版) 2022年6月発売
「物語の力でIT、セキュリティをもっと面白く」をモットーに、作品制作を行っています。
オープンソースなアニメを作ろうというプロジェクト。現在はアニメ「こうしす!」を制作中。
Copyright © ITmedia, Inc. All Rights Reserved.