🚀

security.txt の自動生成&配置機能

2024/10/15に公開

今日は新しくリリースされたsecurity.txtを自動で生成して配置する機能について纏めます。
https://blog.cloudflare.com/security-txt/

security.txt とは

ウェブサイトに配置するtxtファイルと言えばrobot.txtが有名です。これは配置しておくことで検索エンジンなどのクローラーが情報を収集するのを防ぎます。これはあくまで紳士協定であり、技術的な強制力は存在しないものの大手クローラーはおおよそrobot.txtに準ずるようです。
昨今生成AI用データ収集ボットが増えており一部robot.txtの内容を無視しでデータ収集を行うケースもあるようで特に著作権を有する画像等のコンテンツを学習してしまうという問題が増えてきています。Cloudflareではボットからのアクセスを簡単に制御可能なAI Auditという機能をリリースしています。
https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers/

話をもとに戻します。
security.txt とは、ウェブサイトやサービスがセキュリティ上の問題を報告するために設けた連絡先情報やガイドラインを提供するための標準的なファイルです。このファイルは、セキュリティ研究者やユーザーがウェブサイトにおける脆弱性やセキュリティインシデントを報告する際に役立ちます。例えばウェブサイトへの脆弱性を発見した開発者がそのウェブマスターに通知を行いたいとします。これはあくまで善意で行われる行為ですので、連絡先が分かりづらい場合放置されてしまうという危険性があります。
ウェブサイトが自身が抱えるセキュリティ関連問題の報告先を訪問者に広く告知する物がsecurity.txtです。例えば以下のような書式になります。

Contact: security@example.com
Encryption: https://example.com/pgp-key.txt
Acknowledgments: https://example.com/hall-of-fame
Policy: https://example.com/security-policy
Hiring: https://example.com/careers

このsecurity.txtはRFC9116で定義されています。配置場所も定義されており/.well-known/かルートディレクトリにsecurity.txtという名前で配置されます。

Cloudflareではオリジンのウェブにわざわざ管理者がsecurity.txtを作成して配置しなくて済むよう自動でCDN側でこのファイルを作成&配置してくれるのが今回新しくリリースされた機能です。

さっそくやってみる

使い方はとても簡単です。左ペインのセキュリティタブ設定からSecurity.txt を有効にするのトグルをオンにします。

個別の設定を投入します。必要最小項目は連絡先期限(このファイルの中身の有効期間)のみです。

連絡先には以下の2つから指定可能です。
1.URL
2.メールアドレス
3.電話番号
URLの場合https://から始まる必要があり、メールアドレスの場合mailto:から始まらないといけません。同じく電話番号はtel:から始まる、というのがRFC上のルールです。これは自動化されたボットやスクリプトが情報を判別しやすいようにしているためです。
暗号化はPGPの鍵などを指定します。これにより報告者はWebサイト管理者と暗号化メッセージがやり取り可能となります。

承認者(Acknowledgments)は受け取った情報を責任もって処理を行う組織ないしは人を指します。例えばCloudflareのウェブサイトであれば、Cloudflareのセキュリティ専門部署、などがそれにあたります。

カノニカル(canonical)とはウェブサイトが複数のアクセスURLを持つ場合それを代表する、つまり報告時にどのURLに問題があるのか?を報告すべきURLになります。例えば以下でアクセス可能なウェブサイトの場合
https://example.com/page
https://www.example.com/page
https://example.com/page?session=123
https://example.com/pageが報告対象のURLです。

求人情報はユニークです。例えばセキュリティ企業があえて脆弱性のあるウェブサイトを構築し、発見したエンジニアが報告することで1次試験を突破する仕組みを作るケースがあります。それ用に準備されているフィールドです。

ポリシーは報告者に対して踏んで欲しいプロセスや報告内容のフォーマットなどを指定したウェブを指定するものです。一般的にはそのウェブサイトのセキュリティポリシーのURLが挿入されます。

優先言語はどの言語で報告してほしいかを指定します。

あとは保存をクリックすればOKです。

https://a.harunobukameda.com/に対して設定したのであれば
https://a.harunobukameda.com/.well-known/security.txt
で表示されます。

Contact: mailto:harunobu@cloudflare.com
Expires: 2024-12-31T11:59:00Z

Discussion