Introduction
現代、多くの組織がオンラインアプリを構築し、顧客に便利なアクセスと継続的なサービスを提供しています。しかし、アプリがセキュリティ基準に従って開発されていない場合、サーバや顧客データへの不正アクセスにつながる恐れがあります。対象システムで任意の命令を実行できる能力を、任意コード実行と呼びます。
この記事では、ACEの定義、仕組み、実例、そして回避方法について解説します。また、任意コード実行とリモートコード実行の違いについても分析するので、ぜひ参考にしてください。
攻撃者が所有者の許可なく対象マシン上であらゆるコードや命令を実行する能力を、任意コード実行(ACE)といいます。製品やソフトウェアの脆弱性であるACE脆弱性により、任意コードの実行が可能となります。この脆弱性を利用するコードは、ACEエクスプロイトと呼ばれます。リモートコード実行は、ネットワーク経由でACEを引き起こす能力を表す用語です。
攻撃を仕掛けるため、任意コードはシステムへの別経路を作り、パスワードなどの機微な顧客データを盗んだり、セキュリティ機能を無効にしたりします。この脆弱性は、攻撃者が悪意あるコードをシステムに送り込み、遠隔のシステムに実行させる可能性があることを意味します。インジェクションは、悪意あるコードをシステムに届ける手法です。
コンピュータは、命令や大量のデータを認識するために設計されていません。適切な文字と数字の組み合わせを用い、システムがそれらを受け入れるよう設定されていれば、任意の文字列が攻撃に変わる可能性があります。攻撃者は、プログラム内のデータを積み重ねたり、変更したり、後で実行するためのスケジュールを組んだり、既存のバグを引き起こしたりするなど、さまざまなコードを利用します。
攻撃者のアクセス権は対象デバイスやソフトウェアによって制限されますが、権限を昇格させる手法も取られます。攻撃者はデバイスの制御を狙い、成功すると、そのシステムを今後の攻撃に用いるゾンビ端末に変える恐れがあります。
任意コード実行脆弱性は、貴社のサイト、アプリ、システムに大きな損害を与える可能性があります。以下のような影響が考えられます。
サイトに侵入した後、ハッカーは任意コードを用いてファイルを探索し、サイトやアプリの完全な制御権を得る方法を探ります。
ハッカーは、任意コード実行エクスプロイトを使用してファイルの改ざんや削除を行ったり、機微なデータを盗んで販売するなど、ユーザーの安全性とプライバシーに大きなリスクをもたらす可能性があります。
また、サイトのリソースを利用して、他のサイトに対してハッキング攻撃やスパム送信を行うことも考えられます。
ハッキングは単にどのシステムにでも侵入してコードを書き始めるものではありません。まず、問題となる脆弱性を見つける必要があります。
既知のリモートコード実行脆弱性は、以下の4種類に大別されます:
ハッカーの創意工夫は尽きることがなく、未だ多くの脆弱性が潜んでいる可能性があります。この概要は、問題が避けがたいものであることを示しています。
攻撃者は脆弱性を利用して対象システム上で任意コード実行を行うことができます。一方、リモートコード実行は、他のシステムからネットワークを介し、対象システムやデバイスで任意コードを実行することを可能にします。
システムに近づかれ、脆弱性を悪用されないよう、考えられる全ての予防策を講じることが大切です。
疑わしい、または新規のユーザーは直ちに削除してください。管理者を1名に限定し、他のアカウントには必要最低限の権限のみを与えるのが理想です。不必要なFTPアカウントも削除すべきです。
マルウェアおよび脆弱性のスキャンは定期的に実施し、セキュリティホールが問題となる前に対処することが望ましいです。
使用するソフトウェアが本質的に安全ではないことを認識し、システムやソフトウェアを定期的かつ十分に更新するとともに、既知の脆弱性がセキュリティを損なわないよう注意してください。
また、アンチマルウェアソフトも最新の状態に保つ必要があります。未修正の脆弱性が残ると、アンチマルウェアがACE攻撃を検知・制限できなくなる可能性があります。
過去の攻撃で収集されたIPはブロックし、同じ悪意ある行為者からの今後の攻撃を避け、攻撃発生前に検知する助けとしてください。
一般的な認証情報では容易にサイトへアクセスされる恐れがあるため、強固で安全な認証情報を用いてサイトを守ることが推奨されます。
最新情報を購読