リモートコード実行(RCE)は、サイバー攻撃の1つのクラスを指す言葉で、攻撃者がリモートでコマンドを実行して、マルウェアや他の悪意のあるコードをユーザーのコンピューターやネットワークに送り込むことを意味します。RCE攻撃では、ユーザーからの入力は必要とされません。リモートコード実行の脆弱性は、ハッカーがネットワークに物理的にアクセスしなくても、ユーザーの機密データを危険にさらす可能性があります。
このため、RCEの脆弱性はほとんどの場合重大であると考えられており、この脆弱性を見つけてパッチを適用することは最優先事項の1つとすべきです。ネットワークセキュリティは1980年代のワームへの対抗策からかなりの発展を遂げてきましたが、RCE攻撃は、非常に複雑で発見が困難な場合があります。21世紀のRCE攻撃はどのようなものでしょうか。そして、会社を保護するために何ができるでしょうか。
リモートコード実行(RCE)とは
リモートコード実行の範疇は信じがたいほど広く、非常に多様な攻撃と悪意のあるコードを含んでいます。最も一般的には、攻撃者はゼロデイソフトウェア脆弱性を悪用して、マシン、ネットワーク、またはWebアプリケーションへのより深いアクセスを取得します。
任意コード実行とRCE
任意コード実行(ACE)では、ハッカーは特定のマシンまたはネットワークを標的にして悪意のあるコードを使用します。すべてのRCE攻撃は任意コード実行の一形態ですが、任意コード実行がすべてリモートであるとは限りません。一部のACE攻撃は、デバイスに物理的にアクセスするか、ユーザーにマルウェアをダウンロードさせることによって、対象のコンピューターで直接実行されます。一方、RCE攻撃はリモートで実行されます。
RCE攻撃の仕組み
リモートコード実行は非常に定義が広い用語であるため、RCE攻撃の仕組みを一言で言い表すことはできません。一般に、RCE攻撃には次の3つの段階があります。
- ハッカーが、ネットワークのハードウェアまたはソフトウェアの脆弱性を見つけ出します。
- この脆弱性を悪用して、悪意のあるコードやマルウェアをリモートからデバイスに送り込みます。
- ハッカーがネットワークにアクセスできるようになると、ユーザーデータを漏洩させたり、ネットワークを不正な目的で使用したりします。
RCE攻撃の目的
リモートコード実行を通じてネットワークにアクセスできるようになると、攻撃者は制限を受けず、ほとんど何でも行えるようになります。RCE攻撃は、暗号通貨マイニングから国家レベルのスパイ活動まで、あらゆることを実行するために使用されてきました。このようなわけで、サイバーセキュリティの世界では、RCEの防止に高い優先順位が置かれています。
リモートコード実行の脆弱性の影響
知らない人には家の鍵を渡さないのと同じように、悪意のある人物に会社のネットワークやハードウェアへのアクセスを許可してはなりません。リモートコード実行は広く蔓延しているため、RCEの防止はIT部門だけの問題ではありません。ネットワークセキュリティは、経営幹部から用務員まで、あらゆる人の責任です。
RCEの脆弱性を無視することのリスク
RCEの脆弱性を無視すると、経済的コストは当然のこと、それ以上の影響が及びます。RCE攻撃を受けると、次のようなリスクが生じます。
- ブランドに対する消費者の信頼が損なわれる
- 侵害されたユーザーデータのID保護の対応のため、多額の罰金や経済的負担が求められる
- ハッカーが自分の目的のためにネットワークを使用するため、ネットワークの低速化への対処が必要となる
RCE攻撃が引き起こす損害の種類
リモートコード実行にはこのように広範囲の攻撃が含まれるため、RCEはネットワークにほぼすべてのレベルの損害を与える可能性があると言っても過言ではありません。過去に生じた、リモートコード実行の有名な例には、次のものがあります。
- 2017年、「WannaCry」ランサムウェアが、巨大企業から病院まで、世界中のネットワークをクラッシュさせました。
- 同じく2017年、Equifaxの侵害により、1億5,000万人近くの消費者の財務データが流出しました。これは、1つのRCEの脆弱性だけでなく、一連の脆弱性の結果でした。
- 2016年2月にハッカーが、SWIFT銀行ネットワークに対するRCE攻撃により、バングラデシュ銀行から約10億ドルを奪いました。
RCEの脆弱性を最小限に抑える
100%完璧なシステムはありませんが、リモートコード実行に対する脆弱性を最小限に抑える方法はいくつかあります。まず、ソフトウェアを最新の状態に保ちます。これらのセキュリティ更新プログラムは、オペレーティングシステムからワードプロセッサーまで、新たに出現した脅威からソフトウェアを保護します。CrowdStrike Falcon®プラットフォームなどの技術ソリューションを展開することも優れた手段です。最後に、ユーザーがデータを挿入できる場所では、常にユーザー入力のサニタイズを実施します。
コード実行の脆弱性を特定する方法
ゼロデイエクスプロイトの問題は、脆弱性へのパッチ適用に時間がかかることです。そのため、既知の脆弱性を封じ込め、未知の脆弱性を見つけることに関しては、プロアクティブな取り組みが重要です。
ペネトレーションテストはRCEの脆弱性の特定にどのように役立つか
ペネトレーションテスト(侵入テスト)は、ハッカーの行動をシミュレートするもので、ハッカーより前に会社の弱点を発見するのに役立ちます。結果に基づいて対処できれば、これはRCEから保護するためにできる最善のことの1つです。これには、マルウェアに対する保護の強化、従業員がフィッシング攻撃に巻き込まれるのを防ぐためのトレーニング、見つかった潜在的なエクスプロイトへのパッチ適用などが含まれます。
脅威モデリングはRCEの脆弱性の特定にどのように役立つか
ハッカーの先を行くベストな方法の1つは、ハッカーのように考えることです。脅威モデリングでは、問題となりそうな事柄に注目し、潜在的な脅威にランクを付け、それらに対する対策を事前に立てます。防御側で脆弱性を探す人が多いほど、ネットワークがRCE攻撃を受ける可能性が低くなります。
RCEの脆弱性を探す他の方法
他人の努力から利益を享受することに引け目を感じる必要はありません。2021年のLog4Shellの脅威は、1人の努力で解決されたのではありません。世界中のチームによって特定され、パッチが適用されました。クラウドセキュリティソリューションにより、一部のRCE脆弱性の悪用を防げますが、ソリューションを最新の状態に保つように注意してください。ハッカーがこれらのプログラムのリモートコード悪用に関連した脆弱性を悪用する場合もあるためです。
リモートコード実行攻撃を防ぐ方法
上記のペネトレーションテストと脅威モデリングに加えて、リモートコード実行の脆弱性が会社にとって問題になるのを防ぐ方法は数多くあります。
RCE攻撃を防ぐための予防措置とベストプラクティス
技術レベルでRCE攻撃を防ぐために会社ができる最善策は、ネットワーク上のすべてを最新の状態に保つことです。これは、ソフトウェアだけでなく、使用しているWebアプリケーションも更新することを意味します。また、定期的にネットワーク上で脆弱性分析を実行することも検討してください。ペネトレーションテストの実行が高価であると思われるとしたら、おそらく、データ侵害の結果としてどれほどの費用がかかるかを経験していないのでしょう。
セキュリティは会社全体の責任であるので、人間的なレベルとしては、詐欺、フィッシング、詐欺を見つけるために従業員を訓練し続けることも重要になります。従業員が攻撃を防止できるようにする一方で、従業員が不要な機密データにアクセスするのを制限する必要もあり、これらの間でバランスを取らなければなりません。これは最小特権の原則と呼ばれ、RCE攻撃が会社やネットワークに与える悪影響の可能性を軽減します。
RCE攻撃を防ぐために避けるべきこと
リモートコード実行攻撃に関して、避けるべきことがいくつかあります。
- ユーザー(または他の誰か)がWebアプリケーションの任意の場所にコードを挿入することを許可してはなりません。常に、ユーザー入力によってアクティブな攻撃が企てられていると想定してください。実際にそのような人はいるからです。
- 便利または人気があるという理由だけで、特定のソフトウェアを使用しないでください。ソフトウェアの選択は、必ず会社のセキュリティニーズに基づいて行うようにしましょう。
- バッファーオーバーフローからの保護をおろそかにしないでください。これによるリモートコード実行は何十年も前から行われており、今でもなくなってしまったわけではありません。
RCE攻撃から保護する
リモートコード実行の世界は広大に思われるかもしれませんが、会社とあなた自身の保護を、自分一人の力で行う必要はありません。クラウドストライクでは、次世代のウイルス対策ソフトウェアから完全なエンドポイントセキュリティソリューションまで、ハイエンドテクノロジーと人間によるアプローチを組み合わせた、さまざまな製品を提供しています。CrowdStrike Falcon® Spotlight™を使用すれば、追加のハードウェアを必要とせずに、すべてのプラットフォームに対するリアルタイムの脆弱性評価を受けることができます。