HAR ファイルの機密情報をマスクするツールについて紹介します

2022.09.15

こんにちは。アノテーションの中村 (誠) です。
今回は HAR ファイルの機密情報をマスクするツールについて紹介します。

先にツール紹介

詳細は後述しますが、先にツールへのリンクだけ紹介しておきます。

HAR ファイルとは

以下の弊社ブログでも記載されていますが、HTTP アーカイブ (HAR) ファイルは、最新のネットワークアクティビティをブラウザで記録した JSON ファイルです。

AWS サポートへの問い合わせ時に HAR ファイルの取得および共有が必要なケースもあるため、AWS ナレッジセンターでも紹介されています。

トラブルシューティングの際に必要な HAR ファイルですが、場合によってはパスワードや Cookie などの機密情報がキャプチャされている場合があります。
弊社テクニカルサポートおよび AWS サポートでは、お客様から共有頂く情報に機密情報が含まれる場合には、必ずマスクしたうえで共有頂くようお願いしています。

技術的なお問い合わせに関するガイドラインより

機密情報が含まれる場合は、確実にマスクしてください。

一括での置換が難しい

HAR ファイルには多数の Cookie などが記載されている場合もあり、すべての機密情報を手作業でマスクするには時間がかかる場合もあります。
また、以下のように機密情報が HAR ファイルの JSON 内で一定の形式ではない場合もあるため、テキストエディタでの置換が難しい場合もあります。

{
  "name": "cookie",
  "value": "xxxxx"
}
{
  "cookies": [
    {
      "name": "cookie-name",
      "value": "xxxx",
      "path": "/",
      "domain": "example.xom",
      "expires": "yyyy-mm-ddThh:mm:ss.000Z",
      "httpOnly": true,
      "secure": true,
      "sameSite": "None"
    }
  ]
}

試しに AWS のマネジメントコンソールで HAR ファイルを取得し、テキストエディタで cookie と検索すると、1,500 件ヒットしました。
このすべてを手作業でマスクするのは非常に効率が悪いと思います。

もちろんセキュリティ上機密情報をマスクするのは必須なのですが、エンジニアがやりたいことは開発や運用作業であって、機密情報のマスクではないはずです。

そこで、HAR ファイルに含まれる機密情報を一括でマスクするツールについて調査したところ、冒頭に記載した 2 つのツールを見つけたので紹介します。

置換ツール 1 HAR Sanitizer

1 つ目のツールは、HAR Sanitizer です。

こちらのツールは、Google の GitHub リポジトリにありますが、リポジトリ内でも Google の公式製品ではないことが明記されています。

使い方は簡単で、上記 GitHub にアクセスし、ライブバージョンという以下の URL にアクセスするだけです。
https://har-sanitizer.appspot.com/

上記の URL にアクセスすると、以下の画面が表示されます。

右上の「LOAD HAR」をクリックして HAR ファイルを選択すると、「COOKIES」, 「HEADERS」, 「URLQUERY/POSTDATA PARAMS」, 「CONTENT MIMETYPES」の 4 つが表示されます。

各項目ごとに、チェックボックスがあり、チェックボックスをオンにすることで対象の項目がマスク対象となります。

試しにダミーの HAR ファイルを使用し、「COOKIES」で「All Cookies」を選択して HAR ファイルをダウンロードします。

ダウンロードした HAR ファイルで Cookie の値を確認すると、以下のようにマスクされていました。

{
  "cookies": [
    {
      "name": "1P_JAR",
      "value": "[1P_JAR redacted]",
      "path": "/",
      "domain": "example.xom",
      "expires": "yyyy-mm-ddThh:mm:ss.000Z",
      "httpOnly": true,
      "secure": true,
      "secure": true,
      "sameSite": "None"
    }
  ]
}

どうやら Cookie の 値を、[cookie-name redacted] に置換するという挙動のようです。
Cookie 以外も上記の値でマスクされていました。

これは便利です!

しかし、HAR Sanitizer の懸念点として、Web サイトに機密情報が含まれている HAR ファイルをアップロードするというリスクがあります。
もし HAR ファイルの内容を第三者に盗まれると、AWS 環境への不正アクセスなどが行われる危険があります。

そこで、ローカル環境で実行できるツールについて調査したところ、2 つ目に紹介するツールが見つかったので紹介します。

置換ツール 2 harsanitizer-docker

名前の通り、先ほど紹介した HAR Sanitizer を Docker 環境で使用できるようにしたツールです。

こちらは Google ではない個人の開発者の方の GitHub リポジトリだと思いますが、動作確認はできたので紹介します。

前提として、Docker のインストールが必要なので、Docker のインストールは Docker のドキュメント を参考に実施してください。

harsanitizer-docker の中身は HAR Sanitizer と同じだったので、やることは README に書いてある通り、docker run コマンドを実行するだけです。

docker run -d -p 8080:8080 scottmcmaster/harsanitizer:1.1

コンテナが起動したら、ローカルホストの 8080 番ポートにアクセスします。
http://localhost:8080

以下の通り、ローカル環境でも HAR Sanitizer にアクセスできることが確認できました。

あとは HAR Sanitizer と同様の手順なので、これで Web サイトに HAR ファイルをアップロードすることなく機密情報をマスクすることができます。

余談

HAR ファイルの機密情報を一括でマスクする方法について調査していたのは私だけではなかったです。

上記の参考サイトではコマンドで置換する方法も紹介されていましたので、コマンドが好きな方は参考サイトをご覧ください。

まとめ

今回は HAR ファイルの機密情報をマスクするツールについて紹介しました。
HAR ファイルには予期せず機密情報が含まれている場合もありますので、会社や個人の情報を守るためにも、マスクツールなどはうまく使っていきましょう。

本記事が参考になれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。