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

ハッキングされたWebサイトを修復する方法|DIYでマルウェアを駆除しサイトを復旧させる完全ガイド

Webサイトのセキュリティは、オンラインビジネスの成長において極めて重要な役割を果たします。近年、サイバー攻撃は年々増加しており、毎月新種のランサムウェアやクリプトマイナーが発見されています。そのため、中小企業は自社のオンラインビジネスを守るために、これまで以上にコストをかける必要があります。Juniper Researchのレポートによると、サイバー犯罪による損害額は今後さらに拡大すると予測されています。

また、Cybersecurity Venturesの年次犯罪レポートでも、企業への攻撃頻度は2秒に1回というペースで発生していると指摘されています。

実際に起きたインシデント事例

最近では、4,600以上のWebサイトが、決済情報やユーザーデータを盗む悪意のあるコードに感染しました。被害を受けたのはECサイト、ブログ、eラーニングサイトなどです。このマルウェアは、PicreelとAlpaca FormのCDN(コンテンツ配信ネットワーク)を経由して各サイトに感染し、盗んだクレジットカード情報をパナマにあるサーバーへ送信していました。マルウェアのソースコードには、データの収集・送信を行う複数の関数が確認されています。現在も1,200以上のサイトがPicreel型のマルウェアに感染したまま残っており、3,700以上のサイトにはAlpaca侵害のコードが残存しています。

日々巧妙化するマルウェアが登場する中、あなたのサイトもいつ被害を受けるかわかりません。だからこそ、ハッキングされたWebサイトの修復方法を学び、予防策を講じることが重要なのです。

ハッキングされたWebサイトの症状

  • 見覚えのない不審なリンク、ファイル、管理者ユーザー、ページ、データベーステーブル、スクリプトが突然出現する。
  • 怪しいドメインへ顧客を誘導するポップアップや広告が表示される。
  • Webサイトの動作が著しく遅くなり、応答しなくなる。
  • アクセス数が少ないのにサーバーの負荷が異常に高い。
  • ユーザーから「クレジットカード情報が盗まれた」という苦情が寄せられる。
  • 日本語キーワードハックやファーマハックにより、意味不明な文字列がサイト上に出現する。
  • レンタルサーバー利用時にアカウントが停止・凍結される。
  • Googleなどの検索エンジンが「このサイトは危険です」と警告を表示する。
  • 管理パスワードが勝手に変更され、ログにブルートフォース攻撃(総当たり攻撃)の痕跡がある。
  • 知らないプラグインや拡張機能がサーバーにインストールされている。
  • 自サイトのメールサーバーから大量のスパムメールが送信されている。
  • インターネットフォーラムで自サイトのデータが売買されている。
  • Wiresharkなどのパケットキャプチャツールで、不審なドメインへのデータ送信が検出される。

ハッキングされたWebサイトの修復:マルウェア駆除の基本ステップ

  • ステップ1:まずサイト全体のバックアップを取得し、その後メンテナンスモードに切り替えます。
  • ステップ2:感染源を特定します。スクリプト、ファイル、またはWebページが原因であることが多く、ソースコード内のbase64エンコードの有無を確認しましょう。新しく追加されたプラグインや拡張機能も必ずチェックしてください。
  • ステップ3:検索エンジンからブラックリスト登録されている場合は、Google Search Consoleで感染原因を確認します。不明な管理者アカウントの削除も忘れずに行いましょう。それでも解決しない場合は、Astraのようなオンラインウイルススキャナーを活用します。
  • ステップ4:感染ファイルから悪意のあるコード行を削除し、データベースからも不審なテーブルを削除します。重要なファイルで内容が判断できない場合は、該当箇所をコメントアウトして専門家に相談するのが安全です。
  • ステップ5:クリーンアップ完了後は、Googleに再審査を申請してブラックリストからの解除を依頼します。さらに、ハッキングの根本原因を特定して修正し、再発を防ぎましょう。

以上は汎用的な修復手順ですが、CMSごとの具体的な対処法を以下に紹介します。

ハッキングされたサイトの修復でお困りですか?今すぐサイトをクリーンアップしましょう

OpenCartのマルウェア駆除

OpenCartユーザーは、まずコアファイルの整合性をチェックして感染源を特定します。つまり、正当な理由(OCMOD/VQMODによる変更など)がない限り、OpenCartのコアファイルは公式リポジトリのものと一致しているべきです。これはLinuxの「diff」コマンドで確認できます。公式リポジトリからファイルをローカルフォルダにダウンロードし、以下のコマンドで比較します。

diff -r path/to/OpenCart/file.php /path/to/official/Opencart/file.php

また、OpenCartではinstallフォルダの削除が重要です。ルートフォルダに移動すれば見つかります。さらに、攻撃者からカタログを保護するため、.php.txtといった機密性の高いファイルへのアクセスをブロックしましょう。catalogフォルダ内の.htaccessファイルに以下のコードを追記します。

関連記事 – OpenCartセキュリティ対策とマルウェア駆除の究極ガイド

PrestaShopのマルウェア駆除

PrestaShopの修復では、標的にされやすいモジュールを重点的に調査します。まずFTPクライアントでストアに接続し、以下のフォルダ内に悪意のあるコードがないか確認してください。

  • modules/homepageadvertise/slides
  • modules/homepageadvertis2/slides
  • modules/productpageadverts/slides
  • modules/columnadverts/slides
  • modules/simpleslideshow/slides

base64エンコードされたコードがないかに注目してください。LinuxのGrepコマンドで以下のように検出できます。

find . -name “*.php” -exec grep “base64″‘{}’; -print &> infected.txt

このコマンドを実行すると、base64エンコードされたすべての箇所がinfected.txtに保存されます。その後、オンラインツールで復号化して削除しましょう。

Drupalのマルウェア駆除

Drupalの修復では、まず/drupal-adminフォルダに不明なファイルがないことを確認します。特に注意すべき不審なファイルは、Marvins.php、db_.php、8c18ee、83965、admin.php、buddy.strength、dm.phpなどです。見つけたら即座に削除してください。加えて、不正なデータベースユーザーの削除も忘れないようにしましょう。特定の日付以降に作成された新規ユーザーを確認するには、以下のSQLコマンドを使用します。

Select * from users as u AND u.created > UNIX_TIMESTAMP(STR_TO_DATE(‘May 15 2019’, ‘%M %d %Y ‘));

これにより、2019年5月15日以降に作成された全ユーザーが表示されます。クリーンアップが完了したら、drush cache-rebuild(Drupal 8)または drush cache-clear all(Drupal 7)のコマンドでキャッシュをクリアしましょう。

関連記事 – Drupalセキュリティ対策とマルウェア駆除の究極ガイド

PHPのマルウェア駆除

PHPサイトの修復では、まずデータベースを確認します。作業前に必ずデータベースのバックアップを取得してください。phpMyAdminなどのツールを使って、「Sqlmap」のような不審なテーブルを探します。さらに、テーブルの中身に不審なリンクや悪意のあるコードがないか検索し、見つかった場合は該当エントリ、あるいは必要に応じてテーブル全体を削除します。その後、サイトが正常に動作しているか確認しましょう。問題なければ、データベースからのマルウェア除去は成功です。

PHPファイルの感染を検出するには、以下のコマンドでbase64エンコードされた悪意のあるコードを検索します。

find . -name “*.php” -exec grep “base64″‘{}’; -print &> output.txt

base64以外にも、FOPOなどの難読化技術が使われることもあります。不明なPHPスクリプトは削除してください。コードの内容がわからない場合はコメントアウトして、専門家にマルウェア除去を相談しましょう。PHPでは、リモートコード実行(RCE)攻撃に悪用される危険な関数を無効化することも重要です。以下の1行で設定できます。

disable_functions = “show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, eval”

また、エラーメッセージには攻撃者に悪用される可能性のある機密情報が含まれることがあります。エラー表示をオフにするには、php.iniファイルに以下のコードを追加します。

display_errors=Off
log_errors=On
error_log=/var/log/httpd/php_error.log

この設定により、画面へのエラー表示が無効になり、代わりにphp_error.logファイルに記録されます。ログを参照すればトラブルシューティングが可能です。最後に、フォームや入力値など、サーバーが受け取るすべての入力データが適切にフィルタリングされていることを確認してください。無防備な入力はサイトに深刻な被害をもたらします。PHPサイト全体のセキュリティ監査を実施することをおすすめします。

サイト修復にお困りですか?チャットボックスからお気軽にご連絡ください

関連記事 – PHPセキュリティ対策とマルウェア駆除の究極ガイド

WordPressのマルウェア駆除

WordPressの修復では、まずコアファイルを点検します。コアファイルの感染除去は比較的容易です。さらに、システムログからファイルの変更履歴を確認すると、マルウェア感染の特定に役立ちます。コアファイルに感染が見つかった場合は、公式リポジトリから新しいファイルをダウンロードして置き換えましょう。テーマファイルも同様に対処できます。ただし、wp-contentwp-configなどの機密性の高いファイルやフォルダは直接編集しないよう注意が必要です。

マルウェアによって新しいWordPressユーザーアカウントが作成されていたら、すぐに削除しましょう。新規の不審なアカウントを探し、以下の手順で削除します。

  1. wp-adminダッシュボードを開き、ユーザー>ユーザー一覧へ移動します。
  2. チェックボックスで削除したいユーザーを選択し、「一括操作」ドロップダウンを展開します。
  3. 最後に「削除」を選択して「適用」をクリックします。

また、bak.bak/Faviconマルウェアのような画像ファイルを狙うマルウェアも多いため、画像ファイルも必ず確認してください。wp-uploadsフォルダ内の画像を手動でスキャンしましょう。具体的には、.icoファイルをフォルダにコピーし、拡張子を.txtに変更して開きます。内容が意味不明な文字列なら問題ありませんが、PHPコードが表示された場合は前述のWordPress修復手順に従って対処してください。最後に、WordPressのXML-RPC機能を無効化することも忘れないでください。

ハッキングされたWebサイトの修復:予防策

  • 管理フォルダの名前をランダムな名前に変更します。たとえば、www.abc.com/admin/www.abc.com/random123/に変更するなどです。
  • ディレクトリリスティングが有効になっていると、攻撃者が機密ファイルを閲覧できてしまいます。各ディレクトリの.htaccessファイルに「Options -Indexes」を追記して無効化しましょう。
  • CMSの種類に関わらず、常に最新版にアップデートしてください。公式サイトから定期的に更新する習慣が、ハッキング防止につながります。
  • 適切なファイルパーミッション設定は、重要なファイルを攻撃者から守ります。通常は644または444に設定し、config.php、index.php、admin/config.php、admin/index.php、system/startup.phpなどの機密ファイルは444にしましょう。
  • ハードコードされたパスワードや初期パスワードが残っていないか確認し、評判の良いテーマ・拡張機能・プラグインだけを使用してください。
  • 安価なホスティングプランではなく、セキュリティ体制の整ったプランを選びましょう。安さで選ぶと、修復費用で結果的に高くつくこともあります。サーバーの設定ミスや開放ポートがないかも確認が必要です。
  • SSLの導入は、ユーザーとサイト間の通信を保護するだけでなく、SEO面でも有利になります。SSL証明書を取得してサーバーに実装し、HTTPからHTTPSへ常にリダイレクトされるようにしましょう。そのためには、.htaccessファイルに以下のコードを追加します。

# Redirect HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

手動修復を避けるためにセキュリティソリューションを活用しよう

そもそも最初からセキュリティソリューションやファイアウォールを導入していれば、ハッキングされたサイトの修復という手間は回避できたかもしれません。現在は、ファイアウォールだけでなく包括的なセキュリティ機能を提供する選択肢が豊富にあります。Astraは拡張性が高くコストパフォーマンスにも優れています。Astraのファイアウォールは、サイトに脆弱性があってもあらゆる種類の攻撃から保護し、マルウェアスキャナーは多数のマルウェア変種を検出できるため、感染時の修復にも役立ちます。

  1. SiteGroundアカウントが停止する原因とは?解除方法と再発防止策を徹底解説

    「このサイトは一時的に利用できません(This site is temporarily unavailable)」というメッセージが突然表示されると、多くのWeb管理者はホスティング業者を疑いがちです。しかし、SiteGroundのアカウントが停止されるのには、明確な理由があります。請求関連のトラブル、コピーされたコンテンツや不適切なコンテンツの掲載、マルウェア感染など、さまざまな要因が複合的に絡み合ってアカウント停止につながるのです。 この記事では、マルウェアによるSiteGroundアカウント停止の要因とその解決手順を網羅的に解説します。さらに、ホスティングアカウントの停止を防ぐために押さ

  2. URLブラックリストとは?原因と解除方法を徹底解説

    「ウェブサイトは24時間365日休みなくあなたを宣伝してくれる。それができる従業員はいない」――ポール・クックソン(Paul Cookson) まさにその通りです。ウェブサイトはいわばデジタルポートフォリオであり、あなた自身、組織、製品やサービス、そして事業のあらゆる側面を、インターネットという巨大な仮想空間の中で表現する「企業の顔」とも言える存在です。もしURLがGoogle、Bing、Norton Safe Webなどの検索エンジンやセキュリティ機関によってブラックリストに登録されてしまったら、それはウェブサイトのオンラインプレゼンスにとって深刻な打撃となります。 ウェブを閲覧していると、