Webサイトのセキュリティを高めるsecurity.txtの作成方法

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連絡先
Expiressecurity.txtの有効期限
Encryptionセキュリティ研究者が安全に通信するために使用するkeyへのリンク
Acknowledgments助けてくれたセキュリティ研究者に感謝の気持ちを伝える Webページへのリンク
Preferred-Languages推奨言語
Canonicalsecurity.txtがある場所のURL
Policyセキュリティ研究者がセキュリティ問題を検索または報告する際に行うべきことを詳しく説明したポリシーへのリンク
Hiring組織内のセキュリティ関連の求人へのリンク
CSAFCSAFのprovider-metadata.jsonへのリンク

security.txtのジェネレーター

security.txtはジェネレーターが存在するので、これを使えばRFC 9116に準じた書き方で記載しやすくなります。

Webサイトのセキュリティを高めるsecurity.txtの作成方法

security.txtのジェネレーター

メルカリの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なので、以下のサービスを利用したほうが簡単に確認できます。

Scan a Site