🔐

"security.txt" についてまとめみた

2021/10/22に公開

CISSPの継続学習で知ったので忘却録としてまとめました。

security.txtとは

security.txtとは、IETFが提唱している、ウェブサイトにセキュリティポリシーやサイトの脆弱性を発見したときの連絡先を記載するための標準で、robots.txtads.txthumans.txtと同じようにテキスト形式で記載します。
投稿当時(2021/10/22)では、第12版のドラフトまで完成していますが、近くRFC化される見込みです。

(2023/11/1:更新)
RFC 9116としてRFC化されました。

設定の効果

独自開発したWebサイトなどの脆弱性(XSSやSQLインジェクション等)の報告先を独自に設定することができます。したがって、いままでJPCERT/CCなどに報告する必要がある情報を作り手に直接連絡できるため、スピード感がある対応できると見込まれています。
ただし、表向きの脆弱性情報連携の目的などで営業や標的型攻撃の対象となる可能性もありますので、運用にはソーシャルエンジニアリング対策が必要になるかと思います。

設定方法

テキストファイルを指定されてルーティングで表示することが必要です。あわせてテキストファイルは指定された書式に基づいて配置する必要があります。

配置場所

security.txtはデプロイ先が決まっています。
https://www.example.com/.well-known/security.txt
となるようにWebサーバー側でルーティング設定が必要になります。.well-knownフォルダは、Let's Encryptでも使われるフォルダなのでルーティング設定は慎重にお願いします。

書式

以下の例示のようにテキスト形式でKey-Value型に似たような書式で定義します。改行コードはCRLFもしくはLFです。
必須項目はContact, Expiresです。
ExpiresはISO8601形式で記載することだけが定義されています。有効期限の長さは定義されていませんが、メールアドレスやURLが頻繁に変わる内容を含んでいない、ある程度の長さでも大丈夫かなと思います。
また、オプションでPGPキーや、謝辞(Acknowledgments)、優先する言語、プライバシーポリシーや採用サイトの情報まで掲載できます。
参照先リンクは原則HTTPSにしなければなりません。

security.txt設定例

Contact: mailto:john.doe@example.com
Expires: 2023-12-31T14:59:00.000Z
Encryption: https://www.example.com/pgp-key.txt
Acknowledgments: https://www.example.com/hall-of-fame.html
Preferred-Languages: en, jp
Canonical: https://www.example.com/.well-known/security.txt
Policy: https://www.example.com/policy.html
Hiring: https://www.example.com/jobs.html

さいごに

まだ策定中の仕様のため、実運用されているのはGoogle,Facebookなど巨大企業のみとなります。今後はデファクトスタンダードの一つになったりSEO対策のツールとなる可能性も考えられるので、ぜひ設定を検討してみてください!

参考文献

Discussion