この記事は9分50秒で読めます。

当サイトをご覧いただきありがとうございます。初めまして、ECCUBERの流尾(ながれお)です!

今回は、4月9日(木)にオンラインで行われた「EC-CUBE全国UG合同オンライン勉強会」に参加したのでそのレポートを投稿したいと思います!

その前に「ユーザーグループ」とは?

EC-CUBE界隈では各地方にユーザーグループがあります。各ユーザーグループでは定期的に勉強会等のイベントを行っており、筆者も情報収集・共有のために頻繁に参加します。「EC-CUBEについて相談したい」「ECサイトの集客を増やしたい」など、EC-CUBEで気になることがある場合は参加をおススメします!各地方のユーザーグループの活動については、WEBで「ECCUBE ユーザーグループ」で検索すると近況がわかります。

おそらく、筆者が知っている限りでは初?のオンライン形式での開催なのですが、参加者は90人近くいらっしゃいました。慣れないGoogle Hangoutsでしたが、和気あいあいと始まりました。

当日のタイムスケジュール

当日は下記の発表が行われました。

  • 千葉UG 「コロナ騒ぎのEC界隈(仮)」(株式会社Refine 大塚様)
  • 福岡UG 「エバンジェリストって何?」(株式会社BLUE STYLE 外谷様)
  • 名古屋UG「不正アクセスを防ぐためのパーミッション設定」(大河内様)
  • 関西UG 「EC-CUBE4 API β版を触ってみよう」(株式会社イーシーキューブ 岡嶋様)
  • EC-CUBE4 API技術談義

どの発表も非常に興味深かったのですが、今回は中でも今すぐに気を付けなければならない「不正アクセスを防ぐためのパーミッション設定」にフィーチャーしたいと思います。

と言いますのも、昨年末に経済産業省から「EC-CUBE」のカード情報流出被害の増加を注意喚起があり、弊社で保守をさせていただいているお客様にセキュリティ診断の結果に合わせたセキュリティ対応を行っております。

私自身もセキュリティ対応を行っているため、実際の犯行手順とその対策を知る良い機会となりました。

少し内容が長くなりそうなので前編と後編に分けて投稿したいと思います。前編ではクレジットカード情報を抜き取る手順について、後編では不正アクセスを防ぐためのパーミッション設定について投稿する予定です。

EC-CUBEでクレジットカード情報を抜き取る手口について

クレジットカードの抜取りは下記の手順で行われることが多いそうです。

  • 利用者(エンドユーザー)が不正アクセスによりファイル改ざんされたECサイトで商品の購入手続を進めると、偽の決済画面へ誘導される。
  • 利用者が偽のサイトにクレジットカード情報などを入力し、決済を完了しようとすると、「再度決済をお願いします」といった偽のエラーメッセージが表示される。(ここでクレジットカード情報が不正入手される!)
  • その後正規のクレジットカード入力画面へ遷移し、再度クレジットカードを入力し、決済が完了する。

この手順では、正規のクレジットカード決済が行われ、商品も正常に届くため、利用者(エンドユーザー)もサイト運営者も気づかない点が厄介です。そのため、誰かが気づくまでカード情報が抜き取られ続けてしまいます。

ではどのようにしてファイル改ざんが行われるのか

大河内さん曰く、EC-CUBEにおける不正アクセスの原因は、下記の4点が多いそうです。

  • 見えちゃいけないファイルが見えていた
  • 他のCMSやCGIの脆弱性攻撃
  • OSコマンドインジェクション
  • SQLインジェクション

では、この4つの原因からそれぞれどのようにして不正アクセスが行われるのでしょうか。

見えちゃいけないファイルが見えていた

EC-CUBEの2系でいう使用していないAPIディレクトリなどのことですね。このようなファイルから管理画面にログインしているセッションを奪取し、管理画面にログインされてしまうそうです。

その後、管理画面から偽の決済画面へ遷移させるよう、テンプレートを改ざんや攻撃用Javascripを混入するそうです。EC-CUBEでは各バージョンでファイル管理が行えますので、常に不審なJavascriptファイルが無いか確認しましょう。

また、管理画面のURLを「/admin」から推測されにくいものに変更しましょう。

APIディレクトリが残っているとEC-CUBEのバージョンがわかってしまい、脆弱性を突かれてしまう一因となります。使用していない場合は削除する、または.htaccessでアクセス制限をかけましょう。

他のCMSやCGIの脆弱性攻撃

EC-CUBEの脆弱性ではなく、EC-CUBEと併用して使用されるワードプレスやPHPMyAdminなどのCMSやフリーCGIの脆弱性利用して不正アクセスを行い、そこからEC-CUBEのファイル群を探り、ファイル改ざんされることが多いそうです。

OSコマンドインジェクション

プログラムに与えるパラメータにOSへの命令文を紛れ込ませて、書き込み可能なディレクトリにバックドアを仕込みます。バックドアからテンプレートを改ざんし、購入確認画面に攻撃用JavaScriptを混入させるそうです。

古いバージョンのEC-CUBE(2.11~2.12)にOSコマンドインジェクションの脆弱性があるため注意が必要です。

当日の勉強会で例としては紹介していたのは、お問い合わせフォームに攻撃用文字列を入れて送信する方法です。攻撃用文字列を混入させてエラーを起こし、エラーの時にそのコマンドが発動されて、以降自由にファイルに書き込むことができるようになってしまうそうです。

SQLインジェクション

アプリケーションの不備を意図的に利用し、想定しないSQL文(データベース操作)を実行させる攻撃手法で、数年前から多く悪用されている攻撃方法です。商品や個人情報が保存されているデータベースへの攻撃となるため、SQLインジェクション攻撃をされると個人情報の流出につながります。

実際に、過去にはSQLインジェクション攻撃により個人情報流出被害に遭い、訴訟に発展したケースもあります。ですので、EC-CUBEのカスタマイズ時も注意には十分な対策が必要です。

ファイルを改ざんされてしまう直接的な原因について

先述したどの攻撃方法もファイルを改ざんされることにより不正アクセスが行われてしまいます。

大河内さん曰く、ファイルが改ざんされる原因で一番多いのが「Webサーバーのユーザー権限でファイル書き込みを許可しているため」だそうです。

攻撃を防ぐには・・・

EC-CUBEのファイルに対して適切なパーミッション設定をすることで、攻撃リスクを大幅に軽減させることができます。権限の詳細な設定については使用しているサーバーの仕様によって異なりますが、少なくともパーミッションが777であったり666のファイル、フォルダが存在しないように設定をしましょう。

安価な共有レンタルサーバーを使用している場合、FTP/SSHユーザー権限でWebサーバーが動作しているため対策できない場合があります。構築時はサーバー仕様についても慎重に吟味した上で選択するようにしましょう。

また、Webサーバーで権限で書き込める箇所を最小限にとどめることでセキュリティリスクを軽減させることができます。

  • 画像フォルダ(html/upload/save_image)
  • キャッシュフォルダ(template_c)
  • プラグインのインストール機能関連ファイル

パーミッション関連でいうと、管理画面のデザイン管理はWebサーバーの権限でテンプレートに書き込みを許可しているのでリスクになりえます。なので、管理画面のデザイン管理を使用不可にしたほうが安全性が高い、とのことでした。

やはり、安全性を高めるためには利便性を天秤にかけることになると力説されておりました。

あとはダメ押しで定期的に各パーミッションを定期的にチェックし、不正アクセスの痕跡をいち早く発見・対策できるようにすることを心がけましょう。攻撃とセキュリティは常にイタチごっこで、対策をすれば攻撃者は別の攻撃方法を模索します。決して適切なパーミッション設定を行うことで完璧に攻撃を防ぐことができるというわけではありませんので、少なくとも自身でわかる範囲で定期的にメンテナンスを行いましょう。

まとめ

今回の投稿をまとめると以下になります。

  • EC-CUBEには各地方にユーザーグループがあり定期的に勉強会を開催しています!
  • 不正アクセスによってファイル改ざんされると誰かが気づくまでカード情報を抜き取られ続けてしまう!
  • 不正アクセスの原因は「見えちゃいけないファイルが見えていた」、「他のCMSやCGIの脆弱性攻撃」、「OSコマンドインジェクション」、「SQLインジェクション」
  • ファイルが改ざんされる原因で一番多いのは「Webサーバーのユーザー権限でファイル書き込みを許可しているため」
  • 攻撃を防ぐには「適切なパーミッション設定を行う」、「Webサーバーで権限で書き込める箇所を最小限にとどめる」、「管理画面のデザイン管理を使用不可にしたほうが安全性を高める」、「EC-CUBEファイルは定期的にチェックする」

弊社では構築・カスタマイズのみでなく、セキュリティに関しても対応可能です。

自社で対応できなくて困っているお客様、ぜひお気軽にご相談ください。
▼問合せフォームから相談してみる。
 https://ec-cuber.jp/contact-us/
▼メールで相談してみる。
 sales_ec@ids.co.jp
▼電話で直接相談してみる。
 03-6386-3652