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

Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する

ハッキングされた Drupal Web サイトは、非常に苦痛な場合があります。現在、ハッキングには多くの理由が考えられます。しかし、最も一般的なものは、マルウェア、コード インジェクション、スパムなどです。Drupal マルウェアの除去技術を探しているなら、あなたは正しい場所にたどり着きました. このガイドには、ハッキングされた Web サイトの Drupal ファイルとデータベースをクリーンアップするための段階的な手順が含まれています。また、マルウェアとバックドアの検出についても言及されています。 この記事は、平均的なユーザーが簡単に適用できるように構成されています。

Drupal は、現在使用されている人気のある CMS の中で最も古く、最も安全な CMS の 1 つです。 100 万を超える Web サイトに対応しています。しかし、今年、Drupal で複数の脆弱性が発見されました。 Drupalgeddon と呼ばれる一連の RCE 脆弱性によく似ています。これにより、数か月以内に複数の Drupal インストールがハッキングされ、そのほとんどが暗号通貨のマイニングに使用されました。しかし、Drupal のセキュリティ チームは、必要なパッチ アップデートをリリースするのに十分迅速でした。

ハッキングされた Drupal:Drupal ハックの考えられる結果

  • 機密情報を盗むように設計されたフィッシング ページが Web サイトに表示される。
  • 悪意のあるリダイレクトについて顧客から苦情が寄せられています。
  • ログイン情報、銀行口座情報などの機密情報がダークネットで売りに出されています。
  • 日本語のキーワード ハックやファーマ ハックなどにより、意味不明なコンテンツがサイトに表示される
  • ログイン中に「あなたのアカウントは停止されました!」というメッセージが表示されます。
  • Drupal サイトが検索エンジンのブラックリストに登録される
  • Drupal ウェブサイトが非常に遅くなり、エラー メッセージが表示される
  • 複数の悪意のある広告とポップアップがサイトに表示される
  • 信頼の欠如により、ユーザーはサイトへのアクセスを控えています。
  • ユーザー トラフィックと収益の減少
  • 新しい不正な管理者がログイン データベースに表示されます。
Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する

Drupal ハッキング:Drupal ハックの例

Drupal サイトがハッキングされると、被害を受けたユーザーがコミュニティ フォーラムから支援を受けていることがわかります。ハッキングされた Drupal の例の 1 つを下の画像に示します。

Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する

Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する

Drupal ハッキングの考えられる原因

Drupal ハッキング:Drupal SQL インジェクション

Drupal SQLi の脆弱性は、よくコード化されていないモジュール内に見られます。ただし、コア内の SQLi は非常にまれであり、危険です。このような危険な欠陥は、かつて Drupal コア内で発見され、「Drupalgeddon」と呼ばれていました。 '、Drupal は PDO を使用しましたが (PHP データ オブジェクト) を使用して、静的 SQL 要求と動的値を分離します。

$query = $db->prepare("SELECT * FROM users WHERE user = :user AND password = :password");
 $account = $query->execute(array(':user' => $_POST['user'], ':password' => $_POST['password']));

データベースに到達する前に入力が適切にサニタイズされるため、すべて問題ないようです。しかし、争点は Drupal のプレースホルダー配列にありました。これらは、データベース クエリ構造を動的に変更できるため、モジュール開発者に柔軟性を与えることを目的としていました。

db_query("SELECT * FROM {node} WHERE nid IN (:nids)", array(':nids' => array(13, 42, 144)));

その後、:nids プレースホルダーは、提供された引数の数と一致します。このように:

SELECT * FROM {node} WHERE nid IN (:nids_0, :nids_1, :nids_2)

この機能は PHP index と組み合わされています 配列を使用して、(GET、POST、および Cookie) などのパラメーターを渡すことができます。 Drupal プレースホルダー配列は、デフォルトで $_POST['user'] を想定します。 パラメータを配列にする。その後、未加工の配列文字列インデックスを使用して、新しいプレースホルダー名を生成します。その結果、攻撃者は Parameter: のような悪意のある値を提供できます。 user[0 #], Value:foo. 結果のクエリは次のようになります:

SELECT * FROM {users} WHERE user = :user_0 #

これにより、攻撃者はログイン認証を回避することに成功します。さらに、攻撃者はパラメータを user[0; INSERT INTO users VALUES ‘MalUser’, ‘Passw0rd!’, ‘Administrators’; #] . Drupal のコアに影響を与える非常に重大な欠陥でした。さらに憂慮すべきことは、これを悪用する Metasploit モジュールもリリースされたことです!

Drupal ハッキング:Drupal アクセス バイパス

Drupal アクセス バイパスにより、ユーザーが意図されていないリソースにアクセスする可能性があります。このような最新の脆弱性は、SA-CONTRIB-2018-081 と呼ばれています。 この原因は、JSON:API という名前の Drupal モジュールにあります Drupal 8.x 用のモジュール 8.x-1.x。主な用途:

  • Drupal コンテンツおよび構成エンティティへのアクセス
  • Drupal のコンテンツと構成エンティティを操作する

この場合、特定のリクエストに応答する際に、アクセス許可を慎重にチェックしません。これにより、権限が不十分な悪意のあるアクターが機密情報を取得する可能性があります。その結果、GET のみ リクエストはこの種の攻撃に使用できます。

Drupal ハッキング:Drupal クロスサイト スクリプティング

Drupal モジュールでは、XSS や SQLi などの脆弱性がかなり一般的です。このシリーズの最新のものは SA-CONTRIB-2018-080 です。 電子署名 モジュールが XSS に対して脆弱であることが判明しました。 E-Sign モジュールでは、基本的に署名パッドを Drupal に統合できます。この記事を書いている時点で、約 875 のサイトがこのモジュールを使用していました。この脆弱性は、署名が表示されるときに入力のサニタイズが行われないために発生しました。これにより、攻撃者はコード を使用して XSS をテストできます。 .脆弱な署名フィールドは、「XSS Found!」というメッセージを吐き出します。攻撃者はこの脆弱性を利用して、次のことを行うことができます。

  • ユーザーの Cookie を盗む
  • ユーザーをリダイレクトします。
  • Drupal サイトにアクセスしているときに、エンドユーザーのデバイスにマルウェアをダウンロードする

Drupal ハッキング:Drupal リモート コード実行

Drupal のセキュリティは、一連の Drupalgeddon バグに悩まされてきました。 Drupalgeddon 3 は、今年発見された最新のものです。これにより、認証されていないユーザーが Drupal サイトでコードを実行できるようになります。 Drupalgeddon 2 では RCE も許可されていましたが、 .ただし、これを悪用するには、攻撃者はノードを削除する機能が必要でした。完全な URL は次のようになります:

POST /?q=node/99/delete&destination=node?q[%2523][]=passthru%26q[%2523type]=markup%26q[%2523markup]=whoami HTTP/1.1 [...] form_id=node_delete_confirm&_triggering_element_name=form_id&form_token=[CSRF-TOKEN]

ここで、攻撃者はノードを削除するという口実で、whoami を注入しました。 指図。コードの 2 行目は、CSRF トークンを確認することです。 CSRF トークンは基本的に、リクエストが同じサーバーで生成されたかどうかを確認します。その後、攻撃者は form_build_id を取得します 以下のコードに示す応答から:

POST /drupal/?q=file/ajax/actions/cancel/%23options/path/[FORM_BUILD_ID] HTTP/1.1 [...] form_build_id=[FORM_BUILD_ID]

これにより、最終的にエクスプロイトと Whoami の出力がトリガーされます コマンドが表示されます。したがって、攻撃者はあらゆる種類のコマンドを実行してサーバーを操作できます。この RCE バグをさらに深刻なものにしているのは、これに対するエクスプロイトがすでにリリースされていることです!

ハッキングされた Drupal Web サイトのクリーニング:Drupal マルウェアをクリーニングする手順

感染を検出

Google 診断を使用する

Drupal サイトがハッキングされると、Google などの検索エンジンがそのサイトをブラックリストに登録することがよくあります。したがって、Google の診断ツールを使用して、感染の種類と原因を特定できます。そんな時に役立つのがGoogle透明性レポートです。それを確認するには:

<オール>
  • 次のリンクからセーフ ブラウジング サイト ステータスの Web サイトにアクセスしてください。
  • このページで、[サイトのステータスを確認] オプションを見つけます。
  • 最後に、その下にサイトの URL を入力し、[検索] ボタンをクリックします。
  • これにより、サイトが感染した場合のスパム リダイレクトなどに関する情報が得られます。 Drupal 感染の原因を特定し、その除去に取り組む
  • サイトをスキャン

    感染したページを検出するには、サイトをスキャンします。 VirusTotal など、無料で利用できるオプションがたくさんあります。または、ファイル全体を .zip ファイルに圧縮して、スキャン用にアップロードすることもできます。ただし、無料のセキュリティ ソリューションでは期待どおりの結果が得られない場合があるため、マルウェアの除去について専門家に問い合わせることをお勧めします。 .

    変更されたファイルをチェック

    多くの場合、Drupal サイトに感染するバックドアが Drupal コア ファイルを変更する可能性があります。 Drupal サイトのファイル変更は、次の手順で確認できます。

    <オール>
  • SSH 経由で Drupal サイトに接続します。
  • コマンド mkdir drupal-y.x を使用して新しいディレクトリを作成します。 「y」を Drupal シリーズ、つまり 7、8、9 に置き換えます。 「x」を Drupal リリース (4.7.1、2.1.3 など) に置き換えます。
  • 次のコマンドを使用してそのディレクトリに移動します。
    cd drupal-y.x
  • 次のコマンドで Drupal バージョンの新しいコピーをダウンロードします。
    wget https://github.com/drupal/core/archive/y.x.tar.gz
  • 次に、次のコマンドを使用して tar.gz ファイルを抽出します。
    tar -zxvf core-y.x.tar.gz
  • 最後に、次のコマンドでコア ファイルの違いを比較します。
    diff -r core-y.x ./public_html
    または、SSH 経由でサイトにログインし、次のコマンドを実行することによっても実行できます。
    find ./ -type f -mtime -20
  • このコマンドは、過去 20 日間に変更されたすべてのファイルを一覧表示します。ファイルの変更日を確認し、疑わしいものがある場合は、そのファイルをスキャンしてマルウェアを探します。

    ユーザー ログを確認

    ユーザー ログは、ハッカーによるサイトへの不審なログインを特定するのに役立ちます。そうするには:

    <オール>
  • Drupal サイトの管理ページにログインします。
  • メニューから、[人] オプションをクリックします
  • このリストに表示されているユーザーを確認し、各ユーザーの「最終アクセス時間」も確認します。不審なログインが見つかった場合は、サイトの脆弱性を見つけてください。
  • 感染ファイルをクリーンアップし、難読化されたコードを削除

    感染したページが特定された後、感染は部分的 (コア ファイル内の一部のコード) またはファイル全体である可能性があります。ファイルに意味不明な文字が含まれている場合、ほとんどの場合、攻撃者は人間が判読できない形式でコードを難読化する傾向があるという事実が原因である可能性があります。 Base64 形式は、攻撃者の間で非常に人気があります。そのようなコードを削除するには:

    <オール>
  • SSH 経由でサイトにログインします。
  • その後、次のコマンドを使用して base64 コードを確認します。
    find . -name "*.php" -exec grep "base64"'{}'; -print &> hiddencode.txt.
    このコードは base64 でエンコードされたコードをスキャンし、hiddencode.txt 内に保存します。
  • さらに分析するために、hiddencode.txt のテキストをこのリンクのようなオンライン サービスにアップロードします。
  • このサイトの [デコード] オプションをクリックします。これにより、元のコードが表示されます。
  • FOPO などの他の難読化も、オンライン サービスを使用して解読できます。
  • 感染がコア パッケージの一部ではないファイル全体にある場合。ファイルを削除します。
  • コア ファイルの部分的な感染の場合、悪意のあるコードを特定できれば、それを削除します。それ以外の場合は、コメントアウトしてヘルプを取得してください
  • Drupal バックドアを無効にする

    Drupal のバックドアは、/modules、/themes、/sites/all/modules、/sites/all/themes などのフォルダーに隠されています。コードが難読化されていることが多いため、それらを検出するのは簡単ではありません。このようなコードを見つけるには、上記の「感染したファイルをクリーンアップし、難読化されたコードを削除する」の手順に従います。また、これらのバックドアは特定の PHP 関数を使用します。

    これらの機能を無効にするには、次の手順に従ってください:

    <オール>
  • サイトにログインして、ファイル マネージャーを開きます。
  • php.ini ファイルを参照して開きます。
  • そのファイルに次のコードを追加します。
    disable_functions = “show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, eval”
  • Drupal データベースをクリーンアップ

    Drupal データベースは、マルウェアの標的になることがよくあります。感染した Drupal サイトのデータベースをクリーンアップするには、次の手順に従います:

    <オール>
  • 管理者パネルから Drupal サイトにログインします .
  • データ アクセス>Drupal データベースに移動します
    Drupal のセキュリティ問題と脆弱性 – ハッキングされた Drupal Web サイトを保護する
  • ここの検索バーで、マルウェア スキャン中に表示される疑わしいリンクまたはコンテンツを検索します。
  • これらのスパム コンテンツとリンクを含むテーブルを開きます。その後、コンテンツを手動で削除してください。
  • 完了したら、サイトがまだ機能しているかどうかを確認し、他のデータベース管理ツールを削除してください。
  • Drupal セキュリティ:攻撃者をブロックする

    ログイン認証情報が侵害されていないことを確認してください。マルウェアのクリーニングが完了したら、Drupal サイトのパスワードをリセットします。パスワードを変更するには、Drupal サイトにログインしてください。

    phpMyAdmin の使用

    <オール>
  • phpMyAdmin がインストールされている場合は、 cPanel>データベース ボックス>phpMyAdmin に移動します。 .
  • その後、Drupal データベースを選択し、[SQL] タブをクリックします。
  • テキスト フィールドに次のコマンドを入力します。
    update users set pass=md5(’YOURPASS’) where uid = 1;
  • 「YOURPASS」を設定したいパスワードに置き換えて、最後に「Go」をクリックしてください!
  • Drush の使用

    <オール>
  • Drush を介してサイトを管理するには、Drush モジュールがインストールされていることを確認してください。
  • Drush を使用するには、SSH 経由でサイトに接続してください。
  • Drupal-8 ユーザーの場合は、次のコマンドを実行します。
    drush user-password UserName --password="your-new-password".
  • Drupal-9 の場合は、次のコマンドを実行します。
    drush user:password UserName "your-new-password"
    ここで、「UserName」を Drupal サイトのユーザーに置き換え、「your-new-password」を設定したいパスワードに置き換えます。パスワードが安全で、アルファベット、数字、文字の適切な組み合わせであることを確認してください。
  • Drupal セキュリティ:ファイルの復元

    感染したページをバックアップから復元します。バックアップが利用できない場合は、新しいコピーを使用してください。ファイルがクリーンアップされたら、次の方法でキャッシュをクリアします:

    <オール>
  • SSH 経由で Drupal サイトにログインします。
  • ターミナルから、次のコマンドを実行します。
    drush cache-rebuild (Drupal 8 の場合)
    また
    drush cache-clear all (Drupal 7 の場合)
  • Drupal サイトが Google またはホスティング プロバイダーによってブラックリストに登録されている場合は、審査のためにサイトを送信してください。

    Drupal ハッキングの緩和

    機密フォルダーの保護

    機密フォルダーへのアクセスをブロックすることが重要です。これは、次の手順で実行できます:

    <オール>
  • サイトにログインして、ファイル マネージャーを開きます。
  • 保護したいフォルダ内に .htaccess というタイトルの新しいファイルを作成します。
  • そのファイル内に次のコードを挿入します。
    Order Deny,Allow
    Deny from all
    Allow from 22.33.44.55
    このコード スニペットは、これらの特定のフォルダーの訪問者へのアクセスを拒否します。ここでは、コードの最後の行で、許可する IP を指定しています。また、変更された .htaccess ファイルも調べてください。そのようなファイルが見つかった場合は、最初にクリーンアップすることを優先してください。
  • アップデートとバックアップ

    Drupal の最新バージョンを使用していることを確認します。 Drupal セキュリティ チームは、新しい更新ごとに重大な欠陥を更新します。これは、変更ログを使用して確認できます。さらに、バグのあるコードが含まれている可能性があるため、評価の低いプラグインの使用は避けてください。必ずサイトのコピーを作成してください。これは、攻撃後にサイトを復元するのに役立つ可能性があります.更新とバックアップは、Drupal サイトを保護するための最も安価で効果的な方法です。

    セキュリティ監査

    セキュリティ監査により、Drupal サイト内の重大な抜け穴が明らかになる可能性があります。すべての Web 管理者がセキュリティの専門家になれるわけではありません。したがって、Astra のようなサービスは、Web 管理者のセキュリティを処理できます。 Astra のセキュリティ監査と侵入テストにより、サイト上の深刻な脅威を責任を持って開示できます。

    これにより、Web 管理者は Drupal サイトのハッキングを防ぐための予防措置を講じることができます。 Astra のセキュリティ監査は、安全な環境内でリアルタイムの攻撃をシミュレートするため、サイトに害が及ばないようにすると同時に、重大な脆弱性を見つけることができます。 Astra のようなセキュリティ監査は、Drupal サイト内の OWASP Top 10 などの一般的な脆弱性を見つけることができます。

    Drupal マルウェア スキャナーとファイアウォール

    Drupal では毎月、新しい脆弱性が発見されています。ただし、これは Drupal サイトが安全でないままであることを意味するものではありません。 Drupal サイトが脆弱であっても、ファイアウォールは攻撃者によるこれらの欠陥の悪用を防ぐことができます。ただし、市場に出回っている複数のファイアウォールから適切なファイアウォールを選択することが重要です。 Astra ファイアウォールは、すべてのパラメーターで際立っています。非常に堅牢でスケーラブルです。これは、小規模なブログでも大規模な e コマース サイトでも、Astra がすべてを保護できることを意味します。さらに、Astra は攻撃者をハニーポットし、一般的な攻撃をブロックできます。

    Astra Drupal マルウェア スキャナーは、ハッキングされたサイトから数分以内にマルウェアを検出できます。また、ファイルの相違点を取得し、悪意のある場合はボタンをクリックするだけで削除できます。


    1. ハッキングされた Web サイトを修復するには? DIY でハッキングされた Web サイトを修正

      Web サイトのセキュリティは、あらゆるオンライン ビジネスの拡大において重要な役割を果たします。近年、サイバー攻撃が増加しており、ランサムウェアや仮想通貨マイナーの新しい亜種が毎月発見されています。これは、中小企業がオンライン ビジネスを安全に保ち、ハッキングされた Web サイトを修復するために、より多くのお金を払う必要があることを意味します。 Juniper Research のレポートによると、 Cyber​​security Ventures による別の年次犯罪レポートによると、 最近、4,600 以上の Web サイトが、支払い情報やその他のユーザー データを盗む悪意のあるコー

    2. Symfony ウェブサイトのハッキング – 症状、原因、修正

      Symfony は、ユーザーが PHP Web サイトや Web アプリケーションを簡単に作成できるようにする人気のある PHP フレームワークです。過去に、Symfony フレームワークの欠陥が原因で Drupal が影響を受けた例がありました。最終的に、これが Symfony Web サイトのハッキングにつながりました。これは Symfony フレームワークの欠陥である場合もありましたが、安全でない開発慣行は PHP Web サイトを脆弱にします。この記事を通じて、Symfony Web サイトのハッキングにつながる可能性のある重大な脆弱性と、それらを防ぐ方法を学びます。 Symfony