検索
連載

1000年後の君へ贈るラブレター on GitHubこうしす! こちら京姫鉄道 広報部システム課 @IT支線(32)

情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第32列車は、「GitHubでの情報漏えい」です。※このマンガはフィクションです。

Share
Tweet
LINE
Hatena

こうしす!」とは

ここは姫路と京都を結ぶ中堅私鉄、京姫鉄道株式会社。

その情報システム(鉄道システムを除く)の管理を一手に引き受ける広報部システム課は、いつもセキュリティトラブルにてんてこ舞い。うわーん、アカネちゃーん。

こうしす!@IT支線」とは

「こうしす!」制作参加スタッフが、@IT読者にお届けするセキュリティ啓発4コマ漫画。


今回の登場人物

akane

祝園アカネ(HOSONO Akane)

広報部システム課 係員。情報処理安全確保支援士。計画的怠惰主義者で、有休取得率は100%。しかし、困っている人を放っておけない性格が災いし、いつもシステムトラブルに巻き込まれる

mei

英賀保芽依(AGAHO Mei)

広報部広報課係員。天才的トラブルメーカーで、システム課やシステム子会社からは「アルティメットバグトリガー」として知られる。アカネの同期




第32列車:1000年後の君へ


















※今回よりLive2Dモデルの使用をはじめました。制作に当たっては、次の皆さまにご協力いただきました。モデル制作:Live2D Creative Studio(Live2D)、原画:高嶋るみあ

井二かけるの追い解説

 今回のテーマは「GitHubでの情報漏えい」です。

 公開されることを認識せずに誤ってGitHub上に業務で使用するソースコードを公開してしまうという事例が繰り返されています。このような事態が頻発し、会社内でのGitHubへのアクセスが全面禁止になると、開発業務に多大な支障が生じます。

 GitHubを利用するに当たって、どのような点に留意する必要があるのでしょうか。

公開設定に気を付けよう

 かつて一部報道で「設計図共有サイト」と紹介されたことがあるように、GitHubを一体何をするためのサイトなのか正確に理解せずに使用してしまうことがあるようです。

 GitHubは基本的にはオープンソースソフトウェアなどのソースコードを公開して共有するためのサイトですから、「公開状態で利用する」ことが基本です。従って、GitHub上でリポジトリを新規作成する際には、「Public(公開)」と「Private(非公開)」を選択できますが、個人用のリポジトリの場合はPublicが初期選択されています。

 「基本的には」と書いた通り、非公開でGitHubを利用することもできます。個人用のリポジトリでもPrivateを選択すれば非公開にできますし、企業向けの非公開が前提のサービスとして「GitHub Enterprise Cloud」もあります。

 英語表記のため何が何だか分からずに、Publicを選んだままリポジトリを作成してしまうこともあるかもしれませんが、公開したくないものであるならば、リポジトリ作成時に必ず意識してPrivateを選択するようにしましょう。


「Public(公開)」と「Private(非公開)」を選択できる 引用元:GitHub

パスワードやAPIキーをリポジトリに含めない

 リポジトリの中にパスワードやAPIキーを含めてはいけません。非公開のリポジトリでも今後公開する可能性や漏えいする可能性を考えると含めない方がいいでしょう。

 UUUMの事例は、GitHubのソースコードへのアクセスに必要な認証キーが漏えいした結果、非公開のソースコードにアクセス可能な状態となっていました。さらに、そのソースコードに含まれていたデータベースのアクセスキーにより、個人情報も閲覧可能な状態となっていました。

 トヨタやUUUMのようにデータベースへのアクセスに必要なパスワードやアクセスキーが漏えいしてしまったという事例だけでなく、Amazon Web Services(AWS)のアクセスキーをリポジトリに入れて公開してしまった結果、第三者に不正利用され、高額請求されたという事例もよくあります。

 そして、Gitの仕組み上、変更履歴が全て保持される点にも留意が必要です。

 過去に誤ってパスワードなどをコミットしてしまい、最新版では一見削除されていたとしても、変更履歴にはまだ残っているというケースがあります。従って、そもそもパスワードなどがリポジトリに混入しないようにすることが大切です。

 例えば、パスワードなどを記載する設定ファイルは、別のファイルに分離した上で「gitignore」を用いてGitにコミットされないように設定するなどの方法があります。

そもそも許可なくアップロードしてはいけない

 ところで、たとえ非公開であったとしても業務用のソースコードを許可なくGitHubにアップロードすることには大きな問題があります。

 いつどのような操作ミス、あるいは脆弱(ぜいじゃく)性などで情報が漏えいしてしまうか分かりませんし、その際になぜ許可を得ずにアップロードしていたのか責任を問われかねません。そして、重要な情報が会社の管理外の場所にアップロードされているという状況は、情報管理の観点でも望ましくありません。さらに、GitHubを運営するのは第三者ですから、そこにアップロードしてしまうことは、秘密保持契約違反に問われるリスクもあります。

 業務用のソースコードをGitHub上で管理するのであれば、最低限、会社が管理するOrganization内のリポジトリにのみソースコードをアップロードする必要があります。そして、できるならば、企業向けのサービスであるGitHub Enterprise Cloudを契約して使用するのが望ましいでしょう。監査ログ機能があり、万が一の際に漏えいの有無の確認に役立ちます。

場合によっては1000年保存されることも

 ところで、GitHubには「Arctic Code Vault」というアーカイブプログラムがあります。オープンソースプロジェクトのソースコードを、永久凍土層の地下に1000年間保存するというプロジェクトです。

 このプロジェクトの保存対象に選ばれるためには幾つか条件があるようですが、公開されていて、なおかつ比較的新しいものはスターが0でも対象となることがあるようです。

 例えば、「こうしす!」のキャラクター3Dモデルのリポジトリ(執筆時点ではスター0個)が対象に選ばれています。

 こうしす!のキャラクター3Dモデルは、恐らく1000年間保存されるということになるでしょう。

 従って、公開されたソースコードは、どのようなものでも1000年間保存されてしまう可能性があるということにも留意が必要です。

 「Arctic Code Vault」の対象としたくなければ、リポジトリの設定で「Preserve this repository」のチェックを外すことで、オプトアウトしなければなりません。

 もはや1000年後の未来人に見られたところでどうってことはないかもしれませんが、GitHub上でソースコードを公開するということは、1000年後の未来人へのお手紙となってしまうかもしれないと認識した上で、うまく活用していく必要があるといえるでしょう。

こうしす! #3.3「セキュリティに完璧を求めるのは間違っているだろうか(Part3/4)」(OPAP-JP公式)

Copyright 2012-2017 OPAP-JP contributors.
本作品は特に注記がない限りCC-BY 4.0の下にご利用いただけます


筆者プロフィール

原作:井二かける

アニメ「こうしす!」監督、脚本。情報処理安全確保支援士。プログラマーの本業の傍ら、セキュリティ普及啓発活動を行う。

著書:「こうしす!社内SE 祝園アカネの情報セキュリティ事件簿」(翔泳社)2020年2月発売

ハックしないで監査役!! 小説こうしす!EEシリーズ 元社内SE祝園アカネ 監査役編 [1]」(京姫鉄道出版) 2022年6月発売


解説:京姫鉄道

「物語の力でIT、セキュリティをもっと面白く」をモットーに、作品制作を行っています。


原作:OPAP-JP contributors

オープンソースなアニメを作ろうというプロジェクト。現在はアニメ「こうしす!」を制作中。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る