【初心者向け】もう一度学ぼう、ファイルパーミッション。そして今年2022年の振り返り | EC-CUBE名古屋 vol.90に参加したので、簡単にまとめます。
EC-CUBE名古屋UG Doorkeeperコミュニティページ
今回なぜ参加したかというと、講師の大河内さんが前からパーミッションについて発信していたからです。
パーミッションについて細かい事が質問できると思いました。
参加した事により悶々としていた部分は解消できたと思います。
なぜパーミッション?
最近EC-CUBEを攻撃した手法として「Water Pamola」がありました。
住所などに見慣れない文字列、パッとみたら文字化け?って感じの注文が入っているのを見た人もいるかもしれません。
そこからある操作を行うと、webshellが設置され不正な事を色々を行われてしまいます。
その中の一つとして、テンプレートを改変され、注文を完了させる段階で顧客情報やクレジットカード情報などを盗まれてしまいます。
テンプレートの改変をさせない為に、パーミッションを設定しようという話でした。
パーミッションを設定したらどうなる?
例えば、テンプレートの改変を行わせないため、テンプレートのパーミッションを設定し書き込みを出来ないようにします。
そうすると、管理画面からテンプレートを編集できないようになりますので、テンプレート編集機能をよく使っている方は不便になります。
管理画面の機能が潰れるので、それがデメリットになります。
全く使ってないなら潰しておいた方がよいですね。
悶々としていた部分
自分はレンタルサーバーを使っての構築が多いため、パーミッションと聞いてもあまりピンと来ませんでした。
その部分を質問してみると、レンタルサーバーはパーミッションの設定は意味がないといった感じでした。
レンタルサーバーは管理ユーザー(契約しているユーザー)権限でPHPが動いているのが原因です。
パーミッションのお話は、VPSなどのサーバーに向けたお話でした。
VPSなど構築した事があるので、やっとピンと来ました。
PHPを動かしているユーザーはデフォルトだと「apache」や「www-data」だったりします。
ファイルをFTPなどでアップすると、アップロードしたユーザーが所有者になります。
ファイルの所有者とPHPの実行者が別なので、パーミッションの設定が効いてくるという事ですね。
詳しく知りたいという方へ向けて
大河内さんの書いた以下の記事にパーミッションの事も書かれているので、セキュリティに関心が出た人は読んでみてください。
脆弱性対応勉強会Expansion 第05回(OWASP ZAP&EC-CUBE)発表資料
また、記事の中に「WordPress の安全性を高める記事は、とても参考になります」とあります。
勉強会の中でも、この記事の事を推していました。
こちらの記事にもパーミッションについて書いてありますので、読んでみてください。
EC-CUBEのドキュメントにもパーミッションのページがあります。
EC-CUBEドキュメントパーミッション設定
最後に
もう少し詳しく書きたかったのですが、セキュリティの事なので間違いだらけな情報発信はヤメヨウというのと、ぶっちゃけまだ詳しく理解できてないので、ふわーっとした感じになってます。
詳しく知りたいという方へ向けてで紹介している記事を読み込んで、また別の機会に情報を発信出来たらと思います。
最後まで読んで頂き、ありがとうございました。