ネットワークセキュリティ
 Computer >> コンピューター >  >> ネットワーキング >> ネットワークセキュリティ

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

PrestaShopは世界的に成功を収めているEコマースプラットフォームであり、ハッカーにとって非常に魅力的な標的です。ハッカーは人気CMSに潜む見過ごされた脆弱性を常時探し回っており、ARPポイズニングによってオープンWi-Fiの通信へマルウェアを注入するなど、ペイロードを送り込むための新たな手法を日々編み出しています。「PrestaShopマルウェア」とは、こうした脆弱性を突いてPrestaShopストアを侵害する目的でハッカーが仕掛ける、あらゆる種類の悪意あるコードを指します。

「PrestaShopにはどんな種類のマルウェアが存在するのか」「どうやって防げばいいのか」とお悩みなら、本記事がその答えとなります。感染経路からマルウェアの種類、駆除方法、そしてリアルタイム保護まで、徹底的に解説していきます。

関連記事:PrestaShopのセキュリティ対策とマルウェア除去の完全ガイド

PrestaShopへのマルウェア侵入:主な感染経路

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

PrestaShopへのマルウェア注入は、主に以下の手段によって実行されます。

コードの脆弱性

PrestaShopのマルウェア感染は、バグを含むコードが原因で発生するケースが最も多くあります。これはコアファイルだけでなくプラグインにも当てはまります。ここでは、代表的な脆弱性と、それらがどのようにマルウェア注入に悪用されるのかを見ていきましょう。

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

PrestaShopにおけるSQLインジェクション(SQLi)

SQLインジェクションの脆弱性を突かれると、PrestaShopストアのデータベーステーブルに悪意のあるコードを注入される可能性があります。場合によっては、SQLi脆弱性を利用してサーバーへファイルをアップロードすることも可能となるため、攻撃者はPrestaShopストアのWebサーバー上に悪意あるスクリプトを設置できてしまいます。実際、PrestaShopにはCVE-2018-8824として知られるSQLiの脆弱性が存在していました。

関連記事:PHPサイトやCMSにおけるSQLインジェクションの影響とは

PrestaShopにおけるクロスサイトスクリプティング(XSS)

ストアにXSS脆弱性がある場合、保存型(Stored)XSSであれば攻撃者は直接マルウェアを注入できます。反射型(Reflected)XSSの場合は、細工したURLをストア管理者に送りつけ、攻撃者が管理するサーバーから悪意あるスクリプトを読み込ませることでマルウェアを注入します。PrestaShop 1.7.2.4では、CVE-2018-5681として知られるXSS脆弱性が確認されました。

PrestaShopにおけるリモートコード実行(RCE)

リモートコード実行(RCE)脆弱性を悪用されると、攻撃者はPrestaShopストアのサーバーと直接やり取りできるようになります。RCEに脆弱なストアでは、正規ページへ直接マルウェアを埋め込まれる恐れがあります。コードが難読化されている場合、この種のマルウェアは検出が非常に困難です。PrestaShop(1.5〜1.7)では、CVE-2018-19355として知られるRCE脆弱性が発見されています。

ソーシャルエンジニアリングとドライブバイダウンロード

ソーシャルエンジニアリング攻撃は今なお、マルウェアを配布する有効な手段として使われています。攻撃者は「カスタマーサポート」を装ってマルウェアを注入するケースもあります。また、ストア管理者のメールアドレスを狙ったドライブバイダウンロードも頻繁に行われており、管理者がURLをクリックするだけで気づかないうちにマルウェアがインストールされてしまいます。PrestaShop 1.7.2.5以前のバージョンでは、UIリドレッシング/クリックジャッキングの脆弱性が確認されており、攻撃者は正規のボタンやリンクの背後にマルウェアを隠すことが可能でした。さらに、前述の反射型XSSと組み合わせてマルウェアを配布する手口も存在します。

ゼロデイ攻撃とトロイの木馬

攻撃者が未公開の脆弱性(ゼロデイ)を入手し、Web上の複数のPrestaShop環境に対して大規模なマルウェア攻撃を実行した事例もあります。また、ソフトウェアのコアリポジトリサーバー自体を標的にし、マルウェアを混入させたケースもありました。例えば、PHP Pearパッケージマネージャーは公式サイトからマルウェアを仕込まれた実例があります。このように正規ソフトウェアに見せかけたマルウェアは「トロイの木馬」と呼ばれます。

悪意ある広告(マリシャスアドバタイジング)

ハッカーは毎日のように新しいマルウェア注入手法を進化させており、広告を利用した配布もその一例です。サイトのスペースを広告枠として貸し出している場合、攻撃者がその広告枠を購入し、訪問者へマルウェアを配信する可能性があります。サイト運営者側には何も異常が見えないため、検出が非常に難しいのが特徴です。

PrestaShopマルウェアの主な種類

暗号通貨マイナー(クリプトマイニングマルウェア)

このタイプのマルウェアは、サーバーやストア訪問者のPCの処理能力を不正に利用して暗号通貨を採掘します。単純なクリプトマイナーは、以下のようなコードを含んでいます。

<script src="https://authedmine.com/lib/simple-ui.min.js" async></script>

Coinhiveは導入が容易であることから、ハッカーに頻繁に悪用された正規サービスです。これはあくまで単純な変種の一例であり、より高度なマイニングマルウェアはコードを難読化しているため簡単には検出できません。ある変種はホスト名をノンドット10進表記で記述し、Coinhiveライブラリを偽のjQueryスクリプトで隠蔽しています。さらに、Google Analyticsのパラメータに似たマイナー変数名を使って検出を回避しています。

ランサムウェア

PrestaShopランサムウェアはシステムファイルを暗号化し、サーバーを使用不能にします。その後、index.phpだけが残され、特定のアドレスへのビットコイン支払いを要求するメッセージが表示されます。最も悪質なのは、身代金を支払ってもファイルが復号される保証がないという点です。マルウェア自体の除去は難しくありませんが、サーバーデータの復旧は非常に困難な作業となります。WannaCryのようなランサムウェアは世界中の重要システムを麻痺させた実績があり、この分野では予防こそが最良の対策と言えるでしょう。

クレジットカードスキマー

一部のPrestaShopマルウェアは、ストアの決済情報を盗み出すよう特化しています。以下はその一例のコード断片です。

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

コードを見ると、このマルウェアはまずデータベース接続を確立し、続いてps_payment_ccテーブルから以下の情報を窃取します。

  • 取引の支払いID
  • クレジットカード番号
  • カードブランド名
  • クレジットカードの有効期限

これらの情報を取得すると、マルウェアは攻撃者が管理するサーバーへデータを送り出します。

関連記事:PrestaShopのカード情報漏洩ハックへの対処法

ウイルス

PrestaShopウイルスは、無害ないたずらからファイルシステム全体の削除まで、さまざまな悪意ある操作を実行できます。持続性を維持するため、ウイルスはコードを難読化する必要があります。PrestaShopはPHPで構築されているため、典型的なウイルスシグネチャとしては「php.malware.fopo」のようなものが挙げられます。

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

画像の通り、FOPOによりコードは人間には読めない状態になり、検出を回避しています。マルウェア除去のためにコードを読むには、FOPOデオブファスケーター(難読化解除ツール)が必要です。一部のPrestaShopプラグイン開発者はコード保護のためにFOPOを使用しているため、検出はさらに複雑になります。訓練を受けていない人が安易に対応すべきではありません。また、ここで紹介したのは一般的なPrestaShopウイルスの一例にすぎず、同様の複雑なウイルスは多数存在するため、すべてを網羅することは本記事の範囲を超えます。

PrestaShopマルウェアの駆除方法

ストアがマルウェアに感染した場合は、まずファイルシステムを確認することをおすすめします。PrestaShopはPHPで構築されているため、ハッカーはphp.iniuser.iniなどのPHP設定ファイルを改ざんしがちです。これらのファイルはシステムの権限設定にも関わるため、攻撃者にさらなるリソースを提供しかねません。もう一つの重要なファイルが.htaccessです。マルウェアはこのファイルを書き換え、サイトのトラフィックをスパムサイトへリダイレクトします。ただし、これらのファイルは繊細なので、不審なコードを見つけても削除せず、コメントアウトしてセキュリティ専門家に相談してください。

Base64形式で隠されたマルウェアを見つけるには、SSH経由で次のコマンドを使用します。

find . -name "*.php" -exec grep "base64" '{}' ; -print &> code.txt

このコマンドは、PrestaShopファイル内にBase64エンコードで隠されたコードをすべて検索し、後でデコードできるようcode.txtに保存します。Base64以外にもFOPOがコード隠蔽に使われることがあり、オンラインツールで難読化を解除できます。次にデータベースを清掃するには、phpMyAdminツールを使用します。このツールでデータベース内の悪意あるエントリを検索できます。注目すべき悪意あるキーワードは以下の通りです。

$_POST、$_GET、eval、exec、system、passthru、gzdecode、gzuncompress、base64_decode、file_get_contents、file_put_contents、strtoupper

これらのキーワードをそれぞれphpMyAdminに入力し、ファイルやテーブル内を検索してください。下記画像の例を参考にしてください。

PrestaShopマルウェア攻撃の全貌と対策 – ストアをリアルタイムで保護する方法

究極のPrestaShopマルウェア対策

こうした手動作業は骨が折れるうえ、マルウェア感染が完全に除去される保証もありません。この手間を避けるには、Astraが提供するようなセキュリティソリューションの活用が効果的です。Astraファイアウォールは、PrestaShopストアへのあらゆる悪意ある攻撃をブロックし、同時にファイルシステムの感染スキャンを行います。さらに、AstraはPrestaShopファイルのクリーンアップと更新を自動的に実行してくれます。Astraをインストールすれば、あとのセキュリティ管理はすべてお任せです。

  1. 友達とオンラインで動画をリアルタイムに一緒に観る方法

    お気に入りの番組を友達と一緒にオンラインで観ながら、面白い瞬間を共有したいと思ったことはありませんか?しかし、相手が遠くに住んでいるとなかなか集まれないのが現実。夜にホラー映画を観るとき、そばに誰かいてほしいと感じることもあるでしょう。好きなことを一緒に楽しむ時間は、何ものにも代えがたいものです。「絶対にみんなで観よう」と決めていたドラマシリーズも、頻繁に会うのが難しければなかなか実現できません。どの動画配信サイトも、こうしたサードパーティ製ツールやアプリを使ったコンテンツ共有を公式には認めていません。それでも、友達と一緒に動画を観たいという気持ちが強いなら、インターネットにはその悩みを解決す

  2. マルウェア不要?サイバー犯罪者が企業を攻略する手口と対策を徹底解説

    あらゆる企業にとって、サイバー攻撃への信頼できる備えは不可欠です。しかし見落とされがちなのが、アンチウイルスソフトは万能の救世主ではないという点です。実際、企業への攻撃の多くは、従業員がマクロを実行してしまう、悪意のあるリンクをクリックする、怪しい添付ファイルをダウンロードするといった「人的ミス」がきっかけで発生しています。さらに注意すべきは、サイバー犯罪者がマルウェアを一切使わずに企業ネットワークへ侵入できるケースがあることです。彼らが利用するのは、ソーシャルエンジニアリングと正規のソフトウェアだけ。本記事では、その具体的な手口と対策を詳しく解説します。マルウェアを使わないサイバー犯罪者の攻