ウェブサイトのセキュリティ対策の強化に有効な security.txt

こんにちは。ソフトウェアエンジニアの id:masutaka26 です。

プロダクトの OSS 化を進める過程で security.txt を知りましたので、軽くご紹介します。

security.txt の概要

security.txt はウェブサイトのセキュリティに関する情報を提供するための、標準的なテキストファイルです。2022 年 4 月に公開された RFC 9116 で定義されており、ウェブサイトの /.well-known/security.txt に設置します。

security.txt を設置することで、以下の恩恵を受けられます。

  • セキュリティ研究者や善意のハッカーは、ウェブサイトのセキュリティ問題を報告する際の連絡先や指針を容易に見つけられる
  • 企業は、セキュリティ問題の報告を容易に受け取り、対応することができる

security.txt を設置しなかったり連絡先が不明確な場合、ウェブサイトのセキュリティ問題が発見されても、報告されないことがあります。

security.txt のフォーマット

最大 8 種類のフィールドを記載します。

# 必須
Contact:  # 報告フォームの URL やメールアドレス。複数ある場合は、Contact フィールドを優先順に複数行書く
Expires:  # 有効期限を日時で指定。security.txt が廃れることを防ぐため、1 年未満が奨励されている

# 任意
Preferred-Languages:  # 対応可能な言語。複数指定可
Policy:               # セキュリティポリシーページの URL
Acknowledgements:     # 過去報告者への謝辞掲載ページの URL
Hiring:               # セキュリティ関連職種の採用ページの URL
Canonical:            # この security.txt の URL
Encryption:           # 暗号化キーのある URL 等の場所。報告者とのやり取りを PGP 等で暗号化したい場合に記載する

記載例です。https://securitytxt.org/ でも作れます。

# 必須
Contact: mailto:security@example.com
Expires: 2025-11-30T23:59:59Z

# 任意
Preferred-Languages: en, ja
Policy: https://example.com/security-policy.html
Acknowledgements: https://example.com/hall-of-fame.html
Hiring: https://example.com/security-jobs.html
Canonical: https://example.com/.well-known/security.txt
Encryption: https://example.com/pgp-key.txt

ROUTE06, Inc. におけるテンプレート

弊社では以下を security.txt のテンプレートとしました。

Contact:  # セキュリティ窓口のメールアドレスを mailto: 形式で記載する
Expires:  # 1 年以内の日時を記載する。定期的に更新すること

Preferred-Languages: en, ja
Policy:     # https://github.com/{org}/{repo}/security/policy または、セキュリティポリシーページの URL を記載する
Canonical:  # この security.txt の URL を記載する

💡 Expires フィールドの更新忘れと、他のフィールドが廃れることを防ぐために、弊社では route06/actions/.github/workflows/create_gh_issue.yml を使って、定期的に更新用 issue を作っています。

ROUTE06, Inc. における設置例

弊社の Giselle というサービスでの設置例です。

💡 Giselle は生成 AI を活用した、エージェントやワークフローをノーコードで構築できる SaaS です。サービスサイト https://giselles.ai/ で、詳細な情報を確認できます。OSS として、リポジトリ giselles-ai/giselle も公開されています。

まとめ

ウェブサイトのセキュリティに関する情報を提供するための security.txt とともに、弊社 ROUTE06, Inc. での設置例も紹介しました。

単なるテキストファイルであるため作成が容易ですし、報告者としても確実に使える窓口が分かることは良さそうです。

付録: 各社の設置例

Supabase

https://supabase.com の security.txt は、GitHub の SECURITY.md も兼ねています。

その他