はじめに
先日、あまねけ!に設置しているsecurity.txtを経由して、私が運用しているいくつかのサービスについて脆弱性の指摘をもらいました。これらの対応を行うとともに、Acknowledgmentsページを設置したのでそのまとめです。
security.txtのこと
RFC 9116で定義されたsecurity.txtは、当該Webサービスで脆弱性を発見した際の報告先やポリシーを提示するための規格です。具体的には、Webサービスの /.well-known/security.txt
に改行区切りで Key-Name: value
形式の設定項目を記載するもので、フォーマット自体はそんなに難しいものではありません。あまりイメージが湧かなければ、robots.txtのようなものだと思えばよいでしょう。
security.txtでは2つの必須項目( Contact
と Expires
)および7つの任意項目( Acknowledgments
Canonical
Encryption
Hiring
Policy
Preferred-Languages
CSAF
)を利用できます。私は現時点で以下の項目を記載し、PGP鍵でクリア署名を施した上で各サービスに配置しています。
- Contact: mailto:amane@ama.ne.jp
- Expires: 2032-05-31T15:00:00.000Z
- Acknowledgments: https://ama.ne.jp/security/hall-of-fame/
- Canonical: https://ama.ne.jp/.well-known/security.txt
- Encryption: https://keybase.io/amane/pgp_keys.asc
- Preferred-Languages: ja, en
非常に簡単ですね。みなさんもsecurity.txtジェネレータを使って又は使わずに、 gpg --clear-sign security.txt
でクリア署名を施して又は施さずにsecurity.txtを配置してみてください。
脆弱性まとめ
さて、今回もらった指摘とその対応について記載していきます。これらの内容の一部はSecurity Acknowledgmentsとしてまとめられています。
key | value |
---|---|
報告者 | Parth Narula |
報告日 | 2024/04/16 |
報告件数 | 4 |
全体的なリスク評価 | いずれも緊急性が低く、リスクにならない |
アマネイメージズ
報告内容
- jQueryのバージョンが古いことに起因するCVE-2015-9251(リスク評価: ★☆☆)
- MediaGoblinがまともに更新されていないのは知っていましたが、10年前の脆弱性があるとうーん……となりますね。
- 関連するIssueを見る限り、攻撃者の支配下にあるURLからスクリプトを取得して実行させるというXSSの脆弱性のようです。
- MediaGoblinのフロントエンドには3箇所のHTTPリクエスト呼び出し箇所がありますが、いずれも攻撃者がURLを操作できる部分はありませんでした。
- 確認用メールが大量に送信できてしまう挙動(リスク評価: ☆☆☆)
- アカウント作成時のメールアドレスの有効性確認メールが何度も再送できる旨をお知らせいただきました。テストとしてNarula氏が50通程度試した形跡が残っています。
- バックエンドで1日あたりの送信数を絞っているので、無限に送信されることはないです。
- パスワード変更によって既存のセッションが無効化されない挙動(リスク評価: ★☆☆)
- ユーザーが不正なアクセスを検知した場合に応急的にパスワードを変更しても、不正なセッションを停止できない、などのシナリオが考えられますね。
- ただこの挙動はセッションを破棄する べき という程度のもので、必ずしも危険な脆弱性とはいえないと思います。
対応
新規アカウントの登録機能を無効化しました。
アマネイメージズはMediaGoblinで動作しており、アカウントを作成しなければコメントや通報機能を使えないという制限があります。そのため、アカウントの新規登録機能を解放していたのですが、現状ほとんどはCloudflareで弾けるレベルのスパムしか集まっておらず、特にコメント機能も活用されていません。
写真を上げるのは私だけなので通報機能も重要ではなく、もう登録の口を閉じちゃえば変なことは起こらないかな?という判断です。
無料フィード作成 - FGHI PQRS
報告内容
- クリックジャッキングを引き起こす設定不備(リスク評価: ☆☆☆)
- OWASP ZAPとかで最初に出てくるやつですね。
- ただ、このサイトはログインもデータ操作も行わないので、全く損害を引き起こしません。
対応
今回は特に対応しません。気が向いたら各サイトでまとめて X-Frame-Options: DENY
を設定しようと思います。
おわりに
1ヶ月くらい放置していたら毎週メールでめちゃ催促されました。LinkedInを見た感じ、セキュリティエンジニアのキャリア七並べ用の取り組みなんでしょうか。一見して大したリスクではなさそうなのが分かったのと、PARK10周年記念イベントのファンアートを作ったりして忙しかったので後回しにしてました。ごめんね。