EC-CUBE / ec-cube

EC-CUBE is the most popular e-commerce solution in Japan
https://www.ec-cube.net
Other
745 stars 648 forks source link

ファイルに Web サーバの書き込み権限がない場合には FTP/SSH のユーザアカウントを入力で書き込みができるようにする #5069

Open okazy opened 3 years ago

okazy commented 3 years ago

概要(Overview)

ファイルに Web サーバの書き込み権限がない場合には FTP/SSH のユーザアカウントを入力で書き込みができるようにする。 WordPress で実現されている機能。

ファイル管理だけでなくJS管理、CSS管理でも有効

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

再現手順(Procedure)

環境 (environment)

関連情報 (Ref)

nanasess commented 3 years ago

WordPress では以下のような定数が設定できます https://ja.wordpress.org/support/article/editing-wp-config-php/#wordpress-アップグレード用の定数

tao-s commented 3 years ago

FTP、SSHのアカウント情報をWebのIFから入力させることは、その漏洩の危険性が増えることになる、またWeb、FTP、SSHでユーザ分けてる意味がなくなるので、セキュリティ上のリスクがあります。 これだけセキュリティで騒がれているEC-CUBEが自ら新たなリスクをこのタイミングで作るのはどうかと思います。

nanasess commented 3 years ago

FTP、SSHのアカウント情報をWebのIFから入力させることは、その漏洩の危険性が増えることになる

保存せずに毎回入力させれば問題は少ないかと思います

Web、FTP、SSHでユーザ分けてる意味がなくなる

現状、 Webサーバー権限のパーミッションの範囲が広すぎて、本来 Webサーバーの書き込み権限が不要な箇所(JSファイル や テンプレートファイルなど)にも書き込みを許可を与えてしまっており、Webサーバーの権限を悪用して改竄する攻撃が確認されています。 Webサーバーの書き込み権限を最小限にすることで、このような攻撃をリスクを軽減できると考えています

tao-s commented 3 years ago

@nanasess

Webサーバーの書き込み権限を最小限にすることで、このような攻撃をリスクを軽減できると考えています

管理画面というWebのIFからできる様にするのであれば、apacheがsudoする様なものなので、結局大差ないかと思いますがどうでしょう? システムの複雑さを増し、かえって不具合や脆弱性の温床になりかねないと思います。

EC-CUBEの特徴から、どうしても画像のアップロードやファイルの書き込みが必要になってくるので、jsやcssの書き込みを制限しても全体からすると大差無いと思います。 それよりも出力内容、管理ユーザからの入力、書き込み処理を監査、サニタイズするなどの方が有効だと思います。

nanasess commented 3 years ago

@tao-s 画像のアップロードは、画像のみに制限することで安全にできますし、Webサーバーからのファイルの書き込み権限を最小限にすることは有効だと思われます。 また、他のCMSの脆弱性からEC-CUBEを攻撃されるリスクを考慮すると、EC-CUBE内部のサニタイズなどを頑張ってもあまり意味がありませんが、ファイルの書き込み範囲を最小限にしておくことで最近のクレジットカード画面を偽装するような攻撃は防ぎやすいかなと。

Apache が sudo するような実装になるのも否めないですし、実装が複雑になるのは否めませんが、テンプレートや PHP ファイルに Webサーバーからの書き込み権限が常にあるような状況は避けられるようにしたいです

shinya commented 2 years ago

継続して検討。メリット・デメリットがそれぞれあるので、一概に決めきれない部分あり。