デバッグ モードが活性化されたジャンゴ(Django)ウェブ アプリケーションを Criminal IP(https://www.criminalip.io/ja) で検索すると、3,100を超えるウェブ アプリケーションで DB アカウント及びパスワード、そして APIキー がネットでそのまま漏洩されていることを確認できます。すなわち、これはジャンゴで開発されたサイトを通じて企業の個人情報や機密ドキュメントなどが簡単に取られてしまう可能性があることを示します。CIP チームはジャンゴやララベル(Laravel)などのウェブ アプリケーションに関するキーワード検索で Credential 情報漏れの深刻さを調べてみます。

クレデンシャル(Credential)とは?

クレデンシャル(Credential)の辞書上の意味は‘資格証明’で、通常では特定の人がその資格を持っているかを証明する手法を表します。あらゆる身分証と証明書などが Credentialに含まれます。しかし、クラウド環境や Facebook、Twitter、Line などのように Access Key ID/Secret Key を持って、ソーシャル認証に使われる Oauth でもクレデンシャルという用語を使用します。最近、クレデンシャルは認証に関するキーだけではなく、クラウド内部の VPC 網の IP 情報などを包括的に称するに用いられます。

Criminal IP アセット検索で Access Key 情報を探す

アセット検索であらゆる認証に関する情報(Access Key ID、Secret Access Key)キーワードを検索すると、度々 Credential 情報が漏洩されているケースを見られます。特に、Oauth 認証や RESTfull API Credential 情報が漏洩されているリスクも少なくないです。

  • Access Key ID:一般ウェブサイトの ID のようなもの。略して Access Key(アクセスキー)と呼ぶ。
  • Secret Access Key:一般ウェブサイトのパスワードのようなもの。略して Secret Key(シークレットキー)と呼ぶ。

例えば、アマゾンクラウドで使用する Access Key のタイプは下のように構成されます。

아마존 클라우드에서 사용하는 Access Key 타입

アマゾン クラウドで利用する Access Key タイプ

また、バケット ページ検索で認証に関する情報を見つけられます。バケット(Bucket)とは貯蔵庫を表すもので、クラウドサービスでのバケットは主にストレージ(Storage)を意味します。このバケットにアクセスできる場合はファイルサーバーへ入り込んで公開されていないファイルを抜き取ることもできる問題があります。まずは、下のように、読み取りモードができる Bucket キーワードを検索してみました。

“READ_BUCKET_NAME”

上の検索フィルターで検索した結果の中で、“NAVERCloud VOD Service TBD” というサイトが24ヶ所検索されます。おそらく、Naver Cloud ユーザーのためのバケット アップロード デモ ページだと考えられます。ここで問題になる点は、HTML テキストにファイル アップロード テストで使われるデモ用の Endpoint ドメイン アドレスと Access Key ID、Access Secret Key が漏洩されていることです。このように隠られているべきの Secret Key までフロントエンドに漏洩されているサイトがかなり多いです。

HTML Body の中に、Access Credential 情報が漏洩される

Criminal IP アセット検索でウェブ アプリケーション Django の デバッグ モードのサイトを探す

PHP ベースのララベル フレームワーク(Laravel Framework)や Python 言語で開発されたジャンゴ(Django)ウェブ アプリケーション フレームワークはすべて利便性のために、デバッグ モード(Debug Mode)を提供します。ジャンゴ(Django)で開発されたウェブ サイトに Debug モードが活性化されたら、エラーが起こる際、エラー メッセージに敏感な情報を漏洩する問題が発生しますが、これはジャンゴとララベルのフレームワーク両方に同じく発生する症状です。

Criminal IP アセット検索の検索フィルターはジャンゴのデバッグ モードが活性化されているサイトを検索でき、その検索フィルターは下のようです。

“DisallowedHost at“(Djangoのフレームワーク)

디버그 모드가 활성화된 장고 웹사이트는 오류 메시지에 민감한 정보가 노출됨

デバッグ モードが活性化されたジャンゴのウェブ サイトはエラー メッセージに敏感な情報を漏洩する

ジャンゴのウェブ アプリケーションで漏洩される HTTP リクエスト ヘッダ 情報には今まで話した APIキー だけではなく、その上に認証に関する Admin アカウント及びパスワード情報、データベースのアカウント情報も含まれています。

Credential

Admin アカウント及びパスワードなどの敏感な情報が漏洩されたジャンゴのウェブ サイト

ジャンゴ以外のプラットホームとしてララベル(Laravel)を対象に検索でき、ララベルのデバッグ モードが活性化されているサイトを検索するには下の検索フィルターを参考できます。

title: “Whoops! There was an error”

title: “Whoops! There was an error” の検索結果

検索されたサイトはすべてララベル デバッグ モードが活性化されている IP アドレスで、ここにアクセスすると、エラー メッセージへ APP キー情報、DB アカウント及びパスワード情報が漏洩されます。

Credential

DB アカウント及びパスワードなどの敏感な情報が漏洩されたララベルのウェブサイト

全ての APIキー がテキスト ファイル状態で漏洩されている場合

アセット検索で ‘APIKEY.txt’ を検索すると、面白いことを見つけられます。

APIKey.txt

APIKey.txt 検索で発見されたウェブサイト

このサイトへアクセスすると、下のように表し、ここだけを見ると、何の目的のサイトかわかりにくいです。しかし、ウェブ サイトのソースをみると、話は変わります。

Credential

APIKey.txt 検索で発見されたウェブサイトのアクセス画面

ウェブサイトのソースコードをみると、このサイトは firebase のデータベースを使用していることがわかります。そして、firebase Configuration に firebase SDK を使用する際、発行された API Key、AuthDomain、AppID 情報が漏洩されています。

Credential

API Key 情報などの重要情報が漏洩されているページのソースコード

その他にも中国の RESTfull API に見られるサイトも見つかり、管理者(Admin)の Access Token ハッシュ値が漏洩されていました。

Credential

管理者(Admin)の Access Token ハッシュ値が漏洩された中国のサイト

Criminal IP の検索結果には度々 Credential 情報が含まれている HTML ファイルが発見されるが、この HTML ファイルは主にテストまたは、間違いで残られた場合が多いです。

下のイメージはアマゾン クラウド サービス(AWS)の IAM メーターデータが含まれている HTML ファイルや DynamoDB AWS Key がある HTML ファイルを発見した場合です。

1) HTML ファイル IAM メーターベースの内容で、その中にはユーザーアカウント(User Account)に関する情報が含まれている

Credential

アマゾン クラウド(AWS)IAM Metadata 内にユーザー情報が含まれている HTML ファイルが発見された場合

2) アマゾン クラウド サービス(AWS)の代表的な NoSQL サーバーの一つである DynamoDB で生成された HTML ファイルに Access Key ID と Secret Key などの Credential 情報が漏洩される

“DynamoDB Admin”

AWS DynamoDB Admin ページの検索結果

AWS DynamoDB 작업 Script안에 Access Key Fair가 노출된 경우

AWS DynamoDB 作業の Script の中に Access Key Fair が漏洩された場合

結論

クラウド ネイティブ技術を用いて開発チームの生産性は驚くほど向上しています。しかし、生産性にフォーカスを合わせすぎて、セキュリティは後回しされているのではないかという懸念の声が高まっています。クラウド ネイティブ技術で最も多く使用されている APIキー がこのように漏洩されている姿はこのような声を裏付けます。

データベースが漏洩されている姿はただ、個人情報の漏洩だけではなく、“書き込み” 権限がある場合、データベースを造作することもできます。過去にはデータベースの ID/パスワードのようなアカウント管理にはセキュリティにフォーカスが合わせられていたが、クラウド時代の現在は APIキー でも “書き込み” 権限がある場合が存在し、 APIキー 一つで個人情報漏れまたは、造作までもできます。

速く進化するクラウド関連の技術に、果たして、エンジニアたちはセキュリティに関する部分にも同様についていっているかを綿密にチェックする必要があります。クラウド時代はこのように小さくて単純な設定エラーのような間違いで重要な情報がネットにさらされ、これによる個人とビジネス両方へ大きな被害を及ぼす大事故につながられることを心に刻むべきです。


データの提供:Criminal IP(https://www.criminalip.io/ja)