メインコンテンツにスキップする

悪意のあるコードとは

悪意のあるコードとは

悪意のあるコードの定義

悪意のあるコードは、システムの脆弱性を作成または悪用するために設計された有害なコンピュータープログラミングスクリプトです。脅威アクターが悪意のあるコードを作成する目的は、コンピューターシステムに望ましくない変更、損傷を与えたり、システムへの継続的な侵入を可能としたりすることです。悪意のあるコードは、バックドア、セキュリティ流出、情報やデータの窃取、ファイルやコンピューターシステムへのその他の損害をもたらす可能性があります。

悪意のあるコードとは

悪意のあるコードは、コンピューターシステムに危険な動作をさせるために悪意のある第三者が 「話す」言語です。コンピュータープログラム、ファイル、およびインフラの既存のプログラムに変更や拡張機能を書き込むことによって作成されます。

この脅威は、サイバーセキュリティ攻撃の大部分の実行において使用される基本的なツールです。サイバー犯罪者は、コンピューターをプログラムする際に使用する言語に基づいた弱点を探り、見つけ出します。そして、これらの言語の脆弱性を悪用するスクリプトやコマンドのリストとして知られる「フレーズ」を作成します。これらのスクリプトは、マクロ命令(略して「マクロ」)を使用して再利用したり、自動化したりすることができます。

サイバー犯罪者やその他の脅威アクターがコンピューターシステムを悪用する方法が手作業に限られている場合、効率は非常に悪くなります。しかし残念ながら、悪意のあるコードを使用すれば攻撃を自動化することができます。コードの中には、自身を複製、拡散しながら被害を与えるものさえあります。人間のユーザーによるダウンロードや対話を必要とする、別の種類のコードもあります。

悪意のあるコードがもたらす結果には、次のようなものがあります:

これらの被害からの自衛手段を講じるために、これらの脅威の仕組みを調べてみましょう。

悪意のあるコードの仕組み

コンピューターシステムのプログラムされたコンポーネントはすべて、悪意のあるコードによって操作される可能性があります。コンピューターのネットワークインフラのような大規模なコンポーネントも、モバイルアプリやデスクトップアプリのような小規模なコンポーネントも、すべて等しく標的になります。WebサイトやオンラインサーバーなどのWebサービスも、標的となる可能性があります。悪意のあるコードは、コンピューターを使用して動作するあらゆるデバイスに感染する可能性があります:

  • 従来のコンピューターデバイス:デスクトップ、ノートPC、携帯電話、タブレット。
  • IoTデバイス:スマートホームデバイス、車載インフォテインメントシステム(IVI)。
  • コンピューターネットワークデバイス:モデム、ルーター、サーバー。

攻撃者は悪意のあるスクリプトやプログラムを使用して、コンピューターシステムの信頼できる部分に侵入します。この時点から、次のうちの1つ以上を実行することが目標となります:

  1. ユーザーを悪意のあるコードに対して無防備な状態にして感染させ、拡散させる。
  2. 侵入されたシステム上の個人情報へのアクセス。
  3. 侵入したシステムの使用状況の監視。
  4. システムの深部への侵入。

悪意のあるコードが作成され使用されるには、いくつかの明確な段階があります。スクリプト化された悪意のあるコードは、各段階で次のイベントを発生させるために、人間による対話やその他のコンピューター操作を必要とする場合があります。特筆すべきは、完全に自律的に動作するコードもあるということです。悪意のあるコードの大半は、次のような構造になっています:

  1. 脆弱性の探索と調査。
  2. 脆弱性を悪用するコードを書いてプログラミング
  3. 悪意のあるコードがコンピューターシステムに侵入
  4. 関連プログラムを通じて、または単独でコードを実行

調査とプログラミングは攻撃のセットアップ段階です。システムへの侵入前に、侵入するための ツールをまず用意する必要があります。コードが存在しない場合は作成する必要がありますが、既存の悪意のあるコードを使用したり修正したりして攻撃を準備する場合もあります。

悪意のあるスクリプティングの結果、新規作成か既存の変更のいずれかにより、自動実行可能なアプリケーションが生成されます、このアプリケーションは自身をアクティブ化し、多様な形態をとることができます。形態の一部を挙げると、JavaScriptのマクロやスクリプト、ActiveXコントロール、Powershellの悪用、プッシュ型コンテンツ、プラグイン、スクリプト言語、Webページやメールの機能拡張を目的とするその他のプログラミング言語などです。

コンピューターシステムへの侵入は、USBのような直接的なインターフェースポートや、モバイルやWi-Fiのようなオンラインネットワーク接続使用して発生します。侵入を成功させるには、悪意のあるコードがコンピューターに到達する経路が必要です。

広範囲の攻撃では、多くのアクセスを集めるWebサイトやスパムメールなどの接触頻度が高いチャネルを使用する一方で、より標的を絞った攻撃では、スピアフィッシングのようなソーシャルエンジニアリングの手法を使用します。インサイダー攻撃の中には、ローカルのエンドユーザーコンピューターにUSBドライブを直接接続することで、悪意のあるコードを企業イントラネットなどのプライベートネットワークに仕込むものもあります。

侵入されたシステムが悪意のあるコードと互換性がある場合に、攻撃の実行が発生します。標的となるデバイスやシステムが悪意のあるコードにさらされると、その結果、次のような不正行為が試行されます:

  • データの変更:許可されていない暗号化、セキュリティの弱体化など。
  • データの削除または破損:Webサイトのサーバーなど。
  • データの取得:アカウント認証情報や個人情報など。
  • 制限されたシステムへのアクセス:プライベートネットワーク、メールアカウントなど。
  • 動作の実行:自己複製、悪意のあるコードの拡散、リモートでのデバイス制御など。

悪意のあるコードの拡散手段

悪意のあるコードは、それ自体をシステムに侵入するために使用することも、二次的な悪意のある活動を可能にするために使用することも、自身を複製して拡散する目的で使用することもできます。いずれの場合も、元のコードはデバイス間を移動する必要があります。

このような脅威は、データを伝送する通信チャネルのほぼすべてで拡散可能です。多くの場合、拡散経路として次が使用されます:

  • オンラインネットワーク:イントラネット、P2Pファイル共有、一般向けWebサイトなど。
  • ソーシャルコミュニケーション:メール、SMS、プッシュ型コンテンツ、モバイルメッセージングアプリなど。
  • ワイヤレス接続:Bluetoothなど
  • 直接デバイスを接続するインターフェース:USBなど

感染したWebサイトへのアクセスや、悪意のあるメール内のリンクや添付ファイルのクリックは、悪意のあるコードがシステムへ侵入する際の主要な経路となっています。しかし、この脅威は明確に悪意があるコードだけでなく、合法的な手段の悪用によっても侵入することがあります。公共のUSB充電ステーションから、脆弱性攻撃を受けたソフトウェアアップデートツールまで、悪用すればどんなものでも侵入手段となり得ます。

悪意のあるコードの「パッケージ化」は必ずしも明確ではなく、見抜くのが難しいかもしれませんが、公衆データ接続やあらゆるメッセージングサービスは、経路として使用される手段として特に注意を払う必要があります。ダウンロードやURLリンクは、危険なコードを埋め込むためによく使用されます。

悪意のあるコードの種類

スクリプトやワーム、コンピューターウイルスは、ユーザーの大切な情報へアクセス可能な侵入経路を見つけ出すことでコンピューターを攻撃します。悪意のあるコードは増え続ける一方ですが、典型的なコードの一部をここに掲載します。

ウイルス

ウイルスは自己複製する悪意のあるコードで、マクロが有効なプログラムに添付して実行されます。これらのファイルはドキュメントやその他のファイルのダウンロードにより伝搬され、ウイルスによるデバイスへの侵入を可能にします。実行されたウイルスは自己増殖し、システムや接続されたネットワークを通じて拡散します。

ワーム

ワームもまた、ウイルスのように自己複製し、自己拡散するコードですが、追加の操作を必要としません。コンピューターワームがデバイスに到達すると、ユーザーが実行するプログラムに支援されることなく、これらの脅威が完全に単独で自身を実行することができるようになります。

トロイの木馬

トロイの木馬は、悪意のあるコードのペイロードを伝搬するダミーファイルです、実行するには、ユーザーがファイルやプログラムを使用する必要があります。これらの脅威は、自己複製や自律的な拡散ができません。しかし、悪意のあるペイロードには、自己複製が可能なウイルス、ワーム、またはその他のコードが含まれている場合があります。

クロスサイトスクリプティング(XSS)攻撃

クロスサイトスクリプティングは、ユーザーが使用する可能性のあるWebアプリケーションに悪意のあるコマンドを注入することで、ユーザーのWeb閲覧を妨害します。多くの場合、Webコンテンツを変更したり、機密情報を傍受したり、ユーザーのデバイス自体を感染させたりします。

バックドア攻撃

アプリケーションのバックドアアクセスはコード化が可能です。そのコードにより、侵入されたシステムへサイバー犯罪者がリモートでアクセスできるようになります。バックドアは企業の非公開情報などの機密データを流出させるだけでなく、サイバー犯罪者による持続的標的型攻撃(APT)を可能とします。

サイバー犯罪者は、新たに得たアクセスレベルを使用して水平移動し、コンピューターのデータを消去したり、スパイウェアをインストールしたりすることもできます。これらは深刻な事態を引き起こす脅威に発展する可能性があります: 米国政府説明責任局は、国家安全保障に対する悪意のあるコードの脅威について警告しています。

悪意のあるコードによる攻撃の例

悪意のあるコードには多様な形態があり、これまでも非常に活発な活動が観測されました。これらの攻撃の例の中で、最もよく知られているものをいくつか紹介します:

トロイの木馬Emotet

2014年に初めて登場したトロイの木馬Emotetは、マルウェアのルーツから進化し、悪意のあるコードが満載されたメールスパムになりました。攻撃者は、緊急メールの件名(例:「支払いが必要です」)のようなフィッシングの手口を使用し、ユーザーを騙してダウンロードさせます。

Emotetはデバイスに侵入すると、ウイルスを配信するスクリプトを実行したり、ボットネットを構築するためのコマンド&コントロール(C&C)マルウェアをインストールしたりすることが知られています。この脅威は、2018年にしばらく活動を休止していましたが、その後、SMSマルウェアの脅威として復活しました。

ワームStuxnet

2010年以来、コンピューターワームのStuxnetとその後継は、国家的なインフラを標的としてきました。最初に文書化された攻撃は、USBフラッシュドライブ経由でイランの核施設を攻撃し、重要な機器を破壊しました。Stuxnetはその後停止しましたが、そのコードは同様の高度標的型攻撃を行うために、2018年まで使用され続けています。

悪意のあるコードによる攻撃から身を守る方法

ほとんどの悪意のある脅威に対する最善の防衛策となるのは、自動アップデート、マルウェア除去機能、Web閲覧のセキュリティ実装するウイルス対策製品です。しかし、ウイルス対策製品だけでは悪意のあるコードを防止できない場合があります。

ウイルス対策は通常、ウイルスやその他の形態のマルウェア(悪意のあるソフトウェア)を防止、除去しますが、これは悪意のあるコードのサブカテゴリです。悪意のあるコードの広範なカテゴリには、脆弱性を悪用してマルウェアをアップロードするWebサイトスクリプトが含まれています。脅威の定義によっては、すべてのウイルス対策が悪意のあるコードによって引き起こされる特定の感染や行為に対処できるわけではありません。

とはいえ、ウイルス対策は事前対応型の感染除去と保護に不可欠であることに変わりはありません。自分自身を守るための役立つ方法をいくつか紹介します:

  • スクリプティングに対抗可能なソフトウェアをインストールし、JavaScriptや関連コードが不正に実行されないようにしましょう。
  • リンクや添付ファイルに注意しましょう。URLリンクや添付ファイルを含むメッセージは、メールであれテキストメッセージであれ、悪意のあるコードの経路となる可能性があります。
  • ブラウザーのポップアップブロック機能を有効にして、悪意のあるコンテンツがスクリプトによって不要なウィンドウで表示されるのを防ぎましょう。
  • 管理者レベルのアカウントを日常的に使用することは避けてください。スクリプトやプログラムを自動的に実行するには、通常、高レベルの権限が必要です。
  • かけがえのないファイルや文書を保護するために、データのバックアップを活用しましょう。
  • 公共のデータ接続を使用しないように注意してください。USB接続はよく見過ごされがちですが、悪意のあるコードが潜んでいる可能性があります。公衆Wi-Fiも、悪意のあるコードの配信に悪用される一般的な脅威です。
  • 適切に設定されたファイアウォールを使用して、不正な接続をブロックしてください。悪意のあるコードがデバイスに侵入し、マルウェアのペイロードを要求する目的で外部に接続する場合、ファイアウォールがこれを阻止するのに役立ちます。ファイアウォールの既定の動作を「ブロック」に設定し、期待される接続や信頼する接続をホワイトリストに登録して許可するようにしましょう。

関連リンク:

悪意のあるコードとは

悪意のあるコードとは、セキュリティ侵害を引き起こし、コンピューターシステムに損害を与えるコンピューターコードのことです。悪意のあるコードから身を守る方法を学びましょう。
Kaspersky logo