ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

重要操作時の再認証機能

Open okazy opened this issue 3 years ago • 5 comments

概要(Overview)

現状ではファイルのアップロードなどの操作時に再認証がない。 他のXSSなどの脆弱性を組み合わせることで、不正な機能をアップロードする攻撃手法が報告されている。

トレンドマイクロの参考記事

ファイルのアップロードなどの重要な操作に再認証の機能を追加できれば、 XSS で不正なスクリプトが実行されても、ファイルアップロード前で弾くことができる。

期待する内容(Expect) or 要望 (Requirement)

重要操作時に再認証を入れる。

  • ファイルのアップロード
  • テンプレートの編集
  • プラグインのインストールなど
  • メンバー管理
  • 権限管理
  • セキュリティ管理

重要操作の洗い出しは別途必要。

実現可能性

調査が必要

Symfony の remember me などでできるかもしれない。 https://symfony.com/doc/current/security/remember_me.html

難しい場合は独自で実装が必要。

対応できるバージョン

4.1 以降で検討。 マイナーバージョンで実現可能かは不明。

okazy avatar Jun 15 '21 02:06 okazy

2021/6/17 セキュリティ対策検討会より

認証が一定時間有効な仕様が考えられる。 攻撃者が巧みに誘導すると回避されるリスクはある。

okazy avatar Jun 17 '21 02:06 okazy

実現する方向で検討。

shinya avatar Oct 25 '22 05:10 shinya

  • RememberMe の流用は難しそう。RememberMe に似た機能を独自に実装する必要がありそう
  • 以下仕様案
    1. 前提として、認証の有効期間を定めた cookie を使用する
    2. 認証が必要な機能を GET でリクエストした際に、 cookie の有無をチェック
    3. cookie が無い、または有効期限切れの場合は認証画面を表示
    4. 認証が必要な機能の操作完了後、cookie を削除する

nanasess avatar Nov 04 '22 05:11 nanasess

GitHub の sudo mode の仕様が参考になる https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/sudo-mode

Symfony にも提案があがっている https://github.com/symfony/symfony/issues/33955

nanasess avatar Nov 04 '22 15:11 nanasess

ユーザービリティの観点と実装難易度から、引き続き検討する。 特に、ファイルアップロード時の再認証は実装を進めたい。

xuelian311 avatar Apr 27 '23 06:04 xuelian311