目次
security.txtとは
security.txtとはWebサイトのセキュリティに関する連絡先、ポリシー、採用などを示すために使用される特別なファイルです。
security.txtが存在することで、第三者がWebサイトでバグや脆弱性を発見した際に連絡しやすくなるというメリットがあります。
security.txtの保存先
security.txtはWebサイトのルートに「/.well-known/」ディレクトリを作成して、その中に保存します。
robots.txtとは異なり、ルートディレクトリ直下には保存しないので注意が必要です。
security.txtの間違った保存先
https://iwb.jp/security.txt
security.txtの正しい保存先
https://iwb.jp/.well-known/security.txt
security.txtの書き方
security.txt内にはContactやExpiresなどをRFC 9116に準じた書き方で記載します。
例えば楽天のsecurity.txtは以下のようになっています。
Contact: https://issuehunt.io/programs/rakuten-vdp
Expires: 2024-12-29T09:00:00.000Z
Preferred-Languages: en, jp
Canonical: https://www.rakuten.co.jp/.well-known/security.txt
Acknowledgments: https://issuehunt.io/programs/rakuten-vdp/hof
Contactは連絡先、Expiresはsecurity.txtの有効期限、Preferred-Languagesは推奨言語、Canonicalはsecurity.txtの保存先、Acknowledgmentsは助けてくれたセキュリティ研究者に感謝の気持ちを伝える Webページへのリンクです。
https://www.rakuten.co.jp/.well-known/security.txt
security.txtに記載する内容はContactやExpires以外にも色々あります。
ContactとExpiresは必須なので、security.txtを作成する際は一番最初に必ず記載する必要があります。
Contact: https://example.com/contact
Expires: 2024-12-29T09:00:00.000Z
ちなみにContact (連絡先) が複数ある場合はGoogleのsecurity.txtのように複数記載します。
Contact: https://g.co/vulnz
Contact: mailto:security@google.com
Encryption: https://services.google.com/corporate/publickey.txt
Acknowledgements: https://bughunters.google.com/
Policy: https://g.co/vrp
Hiring: https://g.co/SecurityPrivacyEngJobs
security.txtで設定可能な項目は以下の通りです。
Contact | 連絡先 |
Expires | security.txtの有効期限 |
Encryption | セキュリティ研究者が安全に通信するために使用するkeyへのリンク |
Acknowledgments | 助けてくれたセキュリティ研究者に感謝の気持ちを伝える Webページへのリンク |
Preferred-Languages | 推奨言語 |
Canonical | security.txtがある場所のURL |
Policy | セキュリティ研究者がセキュリティ問題を検索または報告する際に行うべきことを詳しく説明したポリシーへのリンク |
Hiring | 組織内のセキュリティ関連の求人へのリンク |
CSAF | CSAFのprovider-metadata.jsonへのリンク |
security.txtのジェネレーター
security.txtはジェネレーターが存在するので、これを使えばRFC 9116に準じた書き方で記載しやすくなります。
メルカリのsecurity.txtなど、一部のWebサイトではRFC 9116に準じた書き方になっていないことがあります。
# Our Security Address
Contact: security@mercari.com
# Hiring page
Hiring: https://careers.mercari.com/
# Found a vulnerability? Report it here:
Policy [EN]: https://about.mercari.com/en/security/vulnerability/
Policy [JA]: https://about.mercari.com/security/vulnerability/
# Privacy Guide:
[EN]: https://about.mercari.com/en/privacy/
[JA]: https://about.mercari.com/privacy/
正しく書かれていないと人間の目視ならともかく、機械的に読み取れないなどの問題が生じる可能性があるので、RFC 9116に準じた書き方にすることをオススメします。
security.txtのリンク先を確認できるScan a Site
Scan a SiteというWebサービスを利用するとドメインを入力するだけでsecurity.txtの有無とリンク先を確認できます。
security.txt は 〜/.well-known/security.txt と手入力だと入力しにくいURLなので、以下のサービスを利用したほうが簡単に確認できます。