セキュリティ 2023.12.13

「リモートコード実行(RCE)」の脆弱性とは?WordPressの事例と対策を解説

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

リモートコード実行(RCE)は、攻撃者が遠隔から送信したコードが実行されてしまう脆弱性です。

WordPressサイトでもこの脆弱性が悪用されると、ページの改ざんやマルウェアの設置など、さまざまな被害が発生する可能性があります。

本記事では、サイトを安全に保つために必要なリモートコード実行に関する基礎知識を解説すると共に、サイト運営者が取るべき対策を紹介します。

「リモートコード実行」とは

「リモートコード実行(Remote Code Execution)」は、外部からの入力を受け付けるソフトウェアやシステムで生じるセキュリティ脆弱性の一つ。

遠隔から送信されたプログラムコードを実行できてしまうことを指します。

この脆弱性を悪用した攻撃は、リモートコード実行攻撃と呼ばれます。

サーバーに脆弱性があると、不正なコードが実行され、意図せぬ結果を攻撃者に返してしまいます。

そこからシステムへの侵入や権限昇格が行われると、いわば「自社のコンピューターを赤の他人が勝手に使えてしまう状態」になります。

それがどれだけ危険な状態かは想像に難くないでしょう。

米サイバーセキュリティ・インフラセキュリティ庁(CISA)が2023年8月に発表した「2022 年に日常的に悪用された上位の脆弱性」トップ12では、うち半数がリモートコード実行に関する脆弱性でした。

この脆弱性は攻撃が容易で攻撃頻度も高く、悪用される可能性が高いのが特徴です。

使用しているソフトウェアやプラグインなどに脆弱性が発見された場合は、早急に対策を行わないと攻撃対象になるリスクが生じます。

「2022 年に日常的に悪用された上位の脆弱性」トップ12 ※黄色はRCE

CVE ベンダー 製品名 タイプ
CVE-2018-13379 Fortinet FortiOS and FortiProxy SSL VPN credential exposure
CVE-2021-34473
(Proxy Shell)
Microsoft Exchange Server RCE
CVE-2021-31207
(Proxy Shell)
Microsoft Exchange Server Security Feature Bypass
CVE-2021-34523
(Proxy Shell)
Microsoft Exchange Server Elevation of Privilege
CVE-2021-40539 Zoho ManageEngine ADSelfService Plus RCE/
Authentication Bypass
CVE-2021-26084 Atlassian Confluence Server and Data Center Arbitrary code execution
CVE-2021- 44228
(Log4Shell)
Apache Log4j2 RCE
CVE-2022-22954 VMware Workspace ONE Access
and Identity Manager
RCE
CVE-2022-22960 VMware Workspace ONE Access, Identity Manager,
and vRealize Automation
Improper Privilege Management
CVE-2022-1388 F5 Networks BIG-IP Missing Authentication Vulnerability
CVE-2022-30190 Microsoft Multiple Products RCE
CVE-2022-26134 Atlassian Confluence Server and Data Center RCE

出典:https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-215a

特にリモートコード実行攻撃の場合、被害が出るまで攻撃に気づかないケースがあります。

知らない間に攻撃されていて、気づいた時点では既に大きな被害に発展していたという可能性もあるため注意が必要です。

リモートコード実行を引き起こす3大原因

リモートコード実行は、さまざまな脆弱性を悪用して起こります。

リモートコード実行を引き起こす脆弱性として、以下の3つが代表的なものです。

・インジェクション(Injection)

インジェクションは、外部入力を受け付けるプログラムに対して不正な文字列を注入できる脆弱性です。

外部からのデータ入力を受け付ける際のデータチェックに問題があると、プログラムは不正な文字列であってもコマンドの一部として解釈してしまいます。

その結果、プログラムの異常終了や非公開情報の漏洩が発生します。

インジェクション攻撃が成功すると攻撃者の思い通りにコードが実行できるようになり、不正ログインやデータ改ざんに繋がります。

・境界外書き込み(Out-of-Bounds Write)

境界外書き込みとは、コンピュータのバッファ(メモリ)領域外にデータを書き込む脆弱性です。

この脆弱性を悪用すると、攻撃者はプログラムが想定している領域外にあるアドレスへアクセスできてしまいます。

境界外書き込みが実行されると、意図しないメモリ領域上で上書きすることによるデータの破損や情報漏洩、リモートコード実行などを引き起こします。

・安全でないデシリアライズ(Insecure Deserialization)

プログラムを実行・再開する時に、実行中のオブジェクトを扱いやすいように一つのバイト列に変換する処理をシリアライズと呼びます。

デシリアライズとは、シリアライズされたデータを元のオブジェクトに復元する操作のことです。

デシリアライズ処理の際に、バイト列を不正に操作することでオブジェクトのフィールドを改変できてしまいます。

このような脆弱性を「安全でないデシリアライズ」と呼びます。

安全でないデシリアライズを悪用することで、リモートコード実行を引き起こす可能性があります。

リモートコード実行により起こりえる被害

Webサーバーがリモートコード実行攻撃を受けると、攻撃者に管理者権限でアクセスされてしまう可能性があります。

もしそうなった場合は、ファイルの改ざんやユーザー情報の漏洩に繋がる可能性もあります。

例えば、以下のような操作を実行される危険性があります。

  • システムへの侵入
  • 権限昇格
  • 新しい管理者アカウントの作成
  • データ漏洩
  • サービス拒否(DoS)
  • ランサムウェアの拡散

システムへ侵入されたことに所有者が気づかないまま、攻撃者は管理者権限を用いてさまざまな操作を行っていきます。

そのため被害は徐々に拡大していき、最終的にはユーザーへ被害を与えて企業の信頼性が低下するようなケースや、システムがストップして事業が継続できなくなるようなケースに陥る危険性があります。

WordPressサイトでの事例

WordPress関連では、2020年9月にWordPressのファイル管理プラグイン「File Manager」でリモートコード実行の脆弱性が発見された事例があります。

File Managerは、ファイルやフォルダをバックエンドから編集したりアップロードしたりできる便利なプラグインで、70万以上のサイトでダウンロード実績がありました(2020年9月時点)。

しかし、2020年に認証されていないユーザーでも任意のファイルをアップロードできてしまう脆弱性(CVE-2020-25213)が発見、公表されました。

脆弱性の発表と同時期にベンダーから修正版が公開されましたが、アップデートせずに放置したため被害にあったサイトも多数ありました。

WordPressのセキュリティプラグインを提供するWordfenceでは、脆弱性が発見されてからわずか数日間で45万回以上の攻撃が行われた形跡があったことを明らかにしています。

同種の脆弱性は、脆弱性に関する発表直後(または発表する前)から攻撃が発生するため早急に対策を行なう必要があります。

プラグインの無効化では対策が不十分な場合もあるため、最新版のアップデートを行う対応や、不要であればプラグインを削除するなどの対応が不可欠です。

対策

リモートコード実行の脆弱性は頻繁に発生するため、「攻撃可能性を低減する対策」と「被害範囲を最小化する対策」の両方が必要です。

複数の対策を並行して実施することで、高い安全性を保持できます。

ソフトウェアを最新のバージョンにアップデートする

対策の基本は、各種ソフトウェアを最新のバージョンにアップデートすることです。

特にWordPressおよびWoedPressのプラグインやテーマに関しては、脆弱性発見の情報があれば速やかに最新版をインストールしてください。

脆弱性を発見するためには、WordPressの脆弱性診断サービスを利用するのも良い方法です。

脆弱性診断サービスについては、以下の記事で詳しく解説しているのでチェックしてみてください。

WordPressの脆弱性診断サービス10選【無料+有料】

データのサニタイジングを行う

サニタイズ処理とは、セキュリティ上の問題が発生する特定の文字列を無効化することです。

攻撃者が悪意のあるコードを入力したとしても、サニタイジングにより単なる文字列として処理することで攻撃を防御できます。

トラフィックの監視を行う

侵入防止システム(IPS、Intrusion Prevention System)は、ネットワークやサーバーを監視して不正なアクセスを検知するセキュリティシステムです。

脆弱性を悪用しようとする不正なアクセスをIPSが検知して管理者へ通知することで、攻撃を未然に防御できます。

アクセス制御

万が一、攻撃を受けてしまった場合にアクセス制御を実施しておくことで、被害を最小限に抑えられます。

最小特権の原則に基づきアクセス権を設定することが推奨されています。

まとめ

Webサイトを危険に晒す大きな要因の一つが脆弱性です。

リモートコード実行は悪用される頻度が高く攻撃が容易という特徴を持ち、攻撃が成功すると無制限に操作を実行されてしまうため影響が甚大です。

サイト運営者は特に注意して対策する必要があります。

もっとも効果的な対策は、脆弱性を把握したら早急にアップデートを実施することです。これにより大半の攻撃を阻止できます。

加えて適切なアクセス制御を行う、サイトの脆弱性チェックを定期的に行う、といった基本的な対策を重ねていくことで、WordPressサイトをより安全に保つことが可能です。

WordPress保守・運用のパートナーなら「wp.support」にお任せ!

WordPressサイトを運用していて、以下のようなお悩みはありませんか?

  • 管理画面を使いやすくしたいけれど、カスタマイズする時間や技術がない…
  • サイトのUI/UXを改善したいけれど、自社内では難しい…
  • WordPressサイトを高速化したいけれど、ノウハウがない…
  • セキュリティ対策をしたいけれど、知識のある人材がいない…
  • 日々の業務に追われて、バージョンアップなどの保守業務が放置気味…
  • ちょっとしたトラブルを気軽に相談できる相手が欲しい…

「wp.support」は、WordPressのプロフェッショナル集団によるWordPress保守サービスです。
「セキュリティ対策」「バージョンアップ対応」「定期バックアップ」はもちろん、「電話サポートが無制限」なのでカスタマイズの方法やトラブル発生時にも気軽にプロに相談できます。

既に導入済みのお客様からも、
「些細なことでも気軽に相談できるパートナー的な存在」
「困ったら相談していいんだ、と気持ちが楽になった」
と大変ご好評をいただいています。

WordPress保守・運用のパートナーをお探しなら、ぜひお気軽にお問合せください。

>> wp.supportに無料相談する

バージョンアップが面倒だと思ったら WordPress保守・セキュリティ対策は『wp.support』にお任せ!

wp.support資料

WordPressのバージョンアップやセキュリティ対策にお悩みではないですか?

面倒な保守・運用作業は全て任せて、コア事業に集中してください。
大手・上場企業100社以上のWebサイトの安全を守る、WordPressのプロフェッショナル集団が、あなたのWordPressサイトを守ります!

【対応範囲】
・WordPress、プラグインのバージョンアップ ・セキュリティ対策 ・継続的なバックアップ ・緊急時の復旧対応 ・技術サポート・電話/メールサポート無制限 etc...

WordPressに関することなら何でもご相談ください!