漏洩GitHubでのキー漏洩とその回避方法GitHubでは、トークンや暗号化キーが多数見つかっています。それが危険である理由と、漏洩を防ぐ方法とは。Golubev2019年4月5日ノースカロライナ州立大学のリサーチャーは、トークンや暗号化キーなどの機密データがオープンな形で保存されているプロジェクトがGitHubに10万件以上あることを発見しました(英語記事)。パブリックドメインで見つかったそのようなオブジェクトは合計50万個以上、ユニーク数にして20万個以上でした。MWS、Twitter、Facebook、MailChimp、MailGun、Stripe、Twilio、Square、Braintree、Picaticなどの大手企業が発行したトークンでした。GitHubは、ソフトウェアの共同開発でよく使われるリソースです。オープンアクセスまたは制限付きアクセスの状態でリポジトリにコードを保存し、関係者と連携してプログラムをテストしたり、開発済みのオープンソースソフトウェアを使用したりすることができます。アプリやサービスの開発が簡素化され、時間の短縮にもなるため、多くのプログラマーが好んで使用しています。オープンソースのモジュールを基にソフトウェア開発を行っている企業が積極的に利用しているほか、透明性を重視する企業もGitHubを頻繁に利用しています。GitHubにコードをアップロードするときには特別な注意が必要です。常にそうしている開発者ばかりではないようですが。パブリックドメインに置かれていたデータトークンやキーを含むコードが、誰もがアクセスできる状態でGitHubに多数ホスティングされていることが明らかになったわけですが、このようなトークンやキーがあれば、権限を手にし、利用者やアプリになり代わって一定の操作を実行できるようになります。意図せず公開状態となっていた情報には、以下のものがあります。主要Webサイトの管理者アカウントのログイン情報アプリ内のAPI機能(プログラムやWebサイトなどさまざまなシステムコンポーネント間でやり取りするためのツールのセット)を利用可能とするAPIキーやトークン暗号化キー。パスワードの代わりに単独で認証に使用されることが多いため、1つのキーを入手すれば、プライベートネットワークも含め多くのリソースにアクセス可能になるトークンと暗号化キーの漏洩が危険な理由アカウントへの不正アクセスは、たとえ限定的であっても、企業にとって重大な脅威となります。いくつか例を見てみましょう。悪用方法の1つは、そうしたトークンの発行元会社からと見せかけて大量のメールを配信したり投稿を行ったりすることです。企業のWebサイト、またはFacebookやTwitterのアカウントに何者かが不正にアクセスし、悪意ある投稿やフィッシングサイトへのリンクを置いていくことが考えられます。一般的に、企業の公式Webサイトや公式アカウントは信頼できる情報源と見なされるため、多くの人がこういった投稿やリンクを安全だと思い込む危険性が大いにあります。企業Webサイトの購読者リストに載っている人が、フィッシングのターゲットになる可能性もあります(メール配信システムであるMailChimpを使っている場合など)。先ほどの例と同じように、利用者は自分が購読申込みをした、実在する会社からのメールを信じてしまうでしょう。このような攻撃は、企業の評判を著しく傷付ける可能性があり、多くの顧客を失ったり、通常業務に戻るまでに時間がかかったりするなどの害をもたらしかねません。AWSなど)を、あなたの支払いで利用する可能性もあります。Chadwick)氏の身に降りかかった一件を見てみましょう(英語記事)。ある日チャドウィック氏は、自分のキーがGitHub上で誰にでも見られる状態になっているという連絡をAmazonから受けました。調べてみると、クローズしていなかった古いプロジェクトの中にそのキーが見つかりました。なっているかと自分のAmazonアカウントにログインしてみたところ、3,493ドルが請求されて未払い状態であることが判明しました。公開されていたキーを誰かが手に入れ、チャドウィック氏のアカウントを使って仮想通貨のマイニングをしていたようです。同氏は最終的にAmazonに返金してもらうことができましたが、いつも同じようにハッピーエンドとはいかないことは肝に銘じておきましょう。プライベートなデータはどのようにしてGitHubへ行きつくのか調査結果を分析してみると、パブリックドメインに機密情報を残しているのは、若くて経験の浅いプログラマーだけではないようです。大規模な政府系教育機関のWebサイトにアクセスできるデータが、10年の実績を持つ開発者によってGitHubにアップロードされていました。トークンやキーがGitHubのリポジトリで公開されているのには、さまざまな理由があります。あるサービスへアプリを統合するのに、認証ツールが必要かもしれません。テスト用にコードを発行するとき、デバッグキーではなく実際に有効なキーを使ってしまった人が、そのままパブリックドメインから削除することを忘れている場合もあります。Mogull)氏の場合を例に取りましょう(英語記事)。モグル氏は、カンファレンスでの発表用に開発したアプリをGitHubにアップロードしました。AWSを呼び出すようになっており、認証用の全データはローカルに保存されていました。コードの個々のブロックをデバッグするために、アクセスキーをいくつか含むテスト用ファイルを作成した同氏は、デバッグが済んだ後にファイルからアクセスキーを削除するのを単純に忘れていました。これを何者かが発見し、知らないうちにAmazonのサービスを500ドル分使っていたのです。GitHubリポジトリに有効なトークンを置いたままにすることのリスクと、コードをリポジトリに置く前にトークンを探して削除する(または置き換える)必要性に、単に気付いていない開発者もいるかもしれません。リソースを保護するには誰でもアクセスできるリポジトリに有効なトークンやキーをアップロードするのは有害かつ危険であることを、開発者に意識付けましょう。プログラマーは、コードをアップロードする前に、公にしてはならない情報が含まれていないことを必ず確認すべきであることを理解している必要があります。GitHub上にある自社プロジェクトに機密情報が含まれていないかどうか、製品管理者に精査させ、そういった情報が含まれている場合は削除しましょう。削除の際には、変更履歴にも何も残さないように徹底的に削除してください。GitHubに保存されている何らかの自社データにパスワードが含まれている場合は、パスワードを変更しましょう。誰かがそのコードを見て、保存している可能性が否定できないためです。日頃から従業員の情報セキュリティへの意識を高めるように努め、GitHubをはじめとするツールやリソースの責任ある利用を習慣づけましょう。Labのプラットフォームは、業務に支障を与えずに、効果的かつ実際的な方法で意識を高めるのに役立ちます。Mantisが、新たな手法を取り入れた活動を見せています。ResponseサービスのSOCにおいて、AIモデルの効果的な活用方法について解説します。Soldatov2024年10月29日ヒントセクストーションの手口サイバー犯罪者が被害者の性生活を利用して金を儲ける方法。教育におけるサイバーセキュリティの重要性と、サイバー攻撃から学校や組織を守る方法。Team2024年10月17日ヒントネット上のデータは永遠に残るもの?オンライン上に保存された重要なデータをバックアップする必要がある理由。Lab」にメールアドレスを提供することに同意します。上記目的で受け取るメールの下部にある[購読の解除]リンクより、この同意をいつでも取り消し可能である旨を承知します。(Japan)その他の国々Global。