ブログに戻る
解説·14 分で読める

機械学習はどのようにマルウェアを検出するのか?ステップごとに解説

従来のアンチウイルスは、既知のマルウェアシグネチャのリストとファイルを照合します。ML ベースの検出は、悪意のある動作の<em>パターン</em>を認識するモデルを構築するため、誰も見たことのない脅威も捕捉できます。その仕組みをステップごとに解説します。

執筆: Casper's Cloak Security Team

要約すると:シグネチャベースのアンチウイルスは、顔写真帳を持った警備員のようなものです――写真帳に顔がなければ通り抜けられます。機械学習による検出は、数千件のトラブルを研究してボディランゲージを読み取れるようになった警備員のようなものです――見知らぬ人でも、その立ち居振る舞いで正体がわかります。この違いこそが、「昨日のウイルスを検出した」と「誰もカタログ化していなかったゼロデイ攻撃を検出した」を分けるものです。以下では、シグネチャが実際に何をするのか、なぜそれだけでは不十分なのか、ML 分類器の仕組み、3 つの主要アプローチ、Casper's Cloak がネットワーク層で具体的に何をするのか、そして正直な限界について説明します。

シグネチャベース vs ML ベースの検出:比較一覧

仕組みの説明に入る前に、まず高レベルでの比較を示します。どちらのアプローチにも存在意義があり、重要なのはそれぞれがどのような脅威に対して有効かという点です。

項目シグネチャベースML ベース
既知の脅威の検出速度非常に高速 — ハッシュ/パターンの直接照合高速 — 特徴抽出 + 分類
ゼロデイ検出シグネチャが書かれるまで不可行動パターンによって新規の脅威を捕捉できる
誤検知率非常に低い — 完全一致高め — 確率的分類
更新頻度毎時/毎日のシグネチャ DB プッシュモデルは定期的に再学習;推論は継続的に実行
リソース使用量低 — データベースのパターン検索中程度 — モデルの複雑さと推論場所に依存
回避の難しさ簡単 — 1 バイト変えればシグネチャを回避できる難しい — 分類を変えるほど多くの特徴を変える必要がある

現実的な答えは「両方を使う」です。シグネチャは既知の脅威に対して高速かつ正確であり、ML は新しい脅威を捕捉します。最新のセキュリティ製品のほとんどはこれらを組み合わせています。興味深いのは ML の部分がどのように機能するかであり、この記事の残りはそこに費やします。

シグネチャベースの検出が行うこと(そしてなぜそれだけでは不十分か)

シグネチャベースの検出は概念的にシンプルです:セキュリティ研究者が新しいマルウェアを分析し、ユニークなバイト列(「シグネチャ」)を抽出し、データベースに追加します。アンチウイルスがスキャンするすべてのファイルはそのデータベースと照合されます。一致が見つかれば?隔離。一致なし?クリーン。

このモデルは、1 日に数十件の新しいマルウェアが出現し、人間のアナリストが追いつけた 2000 年代初頭には有効でした。AV-TEST Institute は現在、1 日に 45 万件以上の新しいマルウェアと潜在的に不要なアプリケーションを登録しています。人間のアナリストチームが 1 日に 45 万件のシグネチャを書くことはできません。マルウェア作者がポリモーフィズム(多態性)を使用するため、自動化されたシグネチャ生成でも追いつけません――彼らはコードのバイト列を配布ごとに変化させながら、動作は維持します。ポリモーフィックウイルスは何千ものバリアントを持つ可能性があり、それぞれ異なるハッシュ、それぞれ異なるシグネチャが必要です。静的パターンマッチングにとって不利なゲームです。

2 番目の問題は露出のウィンドウです。新しいマルウェアが野生に出現した瞬間から、そのシグネチャがデバイスに配信されるまでの間にはギャップがあります。このギャップは 2020 年に平均 24〜48 時間でした;より高速なパイプライン自動化により現在は短くなっていますが、ゼロになることはありません。このギャップの間、シグネチャベースのアンチウイルスは新しい脅威に対して完全に盲目です。このギャップこそがゼロデイ攻撃が生きる場所です。

3 番目の問題はモバイルです。従来のシグネチャベースのスキャンは、大きなデータベースに対してすべてのファイルをスキャンする必要があります――これはバッテリーを消耗させる操作であり、シグネチャデータベース自体のストレージも必要です。iOS はアプリが他のアプリのファイルをスキャンすることすら許可しません。モバイルでは、従来の AV エンジンをバックグラウンドで実行することは、非現実的(Android のバッテリー消耗)か、アーキテクチャ的に不可能(iOS のサンドボックス)です。検出は別の場所で行われなければなりません。

ML モデルが「悪意のある」とはどういうものかを学習する方法

機械学習による検出は根本的に異なるアプローチを取ります。個々のマルウェアのサンプルを記憶するのではなく、特徴(フィーチャー)でモデルを学習させます――悪意のあるソフトウェアと正常なソフトウェア(または悪意のあるネットワーク動作と正常なネットワーク動作)の間で異なる傾向がある測定可能な特性です。モデルは決定境界を学習します:「これらの特徴の組み合わせを持つものはおそらく悪意がある;それらの組み合わせを持つものはおそらく安全だ。」

ステップ 1:学習データセットを収集する

ラベル付きのサンプルが必要です――既知の悪意のあるサンプルと既知の正常なサンプルです。ファイルベースの ML の場合、これは通常、脅威インテリジェンスフィード、VirusTotal などの公開リポジトリ、企業のハニーポット、マルウェア共有コンソーシアムからの数百万の PE(Portable Executable)ファイルを意味します。ネットワークベースの ML の場合、それはラベル付きの DNS クエリログ、ネットワークフローレコード、ドメイン登録メタデータを意味します――数百万の既知の悪意のあるドメインと数百万の既知の正常なドメインです。

ステップ 2:特徴を抽出する

生のデータは分類器に直接役立つわけではありません。各サンプルを特徴ベクトル(その特性を記述する数値のリスト)に変換します。Windows 実行ファイルの場合、特徴には次のものが含まれる可能性があります:各コードセクションのエントロピー(パック/暗号化されたコードはエントロピーが高い)、インポートされた API 呼び出し(マルウェアはプロセスインジェクションやレジストリ操作 API をインポートする傾向がある)、読み書きセクションと読み取り専用セクションの比率、ファイルに有効なデジタル署名があるかどうか、バイナリ内の文字列パターン。ドメイン名の場合、特徴には次のものが含まれる可能性があります:ドメインの年齢、レジストラ、WHOIS プライバシーステータス、TLS 証明書属性、DNS レコードの履歴、ドメイン名自体の語彙的構造。

ステップ 3:分類器を学習させる

ラベル付き特徴ベクトルを使って、機械学習モデルを学習させます――勾配ブースティング木(XGBoost、LightGBM)、ランダムフォレスト、深層ニューラルネットワーク、またはいくつかのアンサンブルの組み合わせです。モデルはどの特徴の組み合わせが「悪意のある」と相関し、どれが「正常」と相関するかを学習します。交差検証とホールドアウトテストセットにより、モデルがトレーニングセットを暗記するのではなく、未見のサンプルに汎化するようにします。

ステップ 4:推論のためにデプロイする

学習済みモデルは、新しいサンプルをリアルタイムでスコアリングできる場所にデプロイされます。ファイルベースの検出の場合、それは通常、ユーザーのデバイス上のエンドポイントエージェントまたはクラウドサンドボックスです。ネットワークベースの検出の場合、それは DNS リゾルバーまたはネットワークプロキシにインラインで位置する分類器です。新しいサンプルが到着し、特徴が抽出され、モデルはそれをスコアリングし(通常は 0.0 から 1.0 の間の確率として)、しきい値がアクション――ブロック、許可、または人間によるレビューのフラグ――を決定します。

シグネチャとの決定的な違い:モデルはこの特定のサンプルを以前に見たことはありませんが、パターンを認識します。既存のランサムウェアの新しいポリモーフィックなバリアントはバイト列を変更しますが、同じ暗号化 API をインポートし、高エントロピーセクションを持ち、有効な証明書がありません――モデルは、このバリアントのルールを人間が書いていなくても、特徴が悪意のあるパターンに一致するため、これを検出します。

マルウェア検出における 3 つの主要な ML アプローチ

ML ベースの検出は一つのものではありません――スタックの異なるレイヤーで動作し、異なるカテゴリの脅威を捕捉する、少なくとも 3 つの異なるアプローチがあります。

1. 静的解析:実行せずにファイルを検査する

静的 ML モデルは、ファイルを実行せずに、その構造、メタデータ、コンテンツを分析します。特徴には、PE ヘッダー属性、セクションのエントロピー、インポートテーブル、埋め込み文字列、リソースメタデータ、パッカーの識別、そしてますます、バイナリから直接独自の特徴を学習する畳み込みニューラルネットワークに供給される生のバイト列が含まれます。

強み:高速(サンドボックス実行不要)、何百万ものファイルにスケール、多くのコモディティ脅威を捕捉。弱み:難読化、パッキング、または自己再構成するメタモーフィックコードによって回避できます。十分に動機付けられた攻撃者は、静的特徴が正常に見えるまでバイナリを変換できます。MITRE ATT&CK フレームワークは、防御回避(TA0005)の下にこれらの回避技術を文書化しています。

2. 動的/行動分析:ファイルを実行してその動作を監視する

動的解析は、疑わしいファイルをサンドボックス(計測された仮想マシン)で実行し、その実行時の動作を記録します:どのファイルを読み書きするか、どのレジストリキーを変更するか、どのネットワーク接続を開くか、どのプロセスを生成するか、どのシステムコールを行うか。これらの行動トレースで学習した ML モデルは、サンプルが何をするかに基づいて、見た目ではなく動作でサンプルを分類できます。

強み:回避がはるかに難しい――バイナリが難読化されていても、マルウェアが目標を達成するためには動作が展開されなければなりません。ランサムウェアはファイルを暗号化しなければならない;キーロガーはキーボードをフックしなければならない;C2 ビーコンはホームに電話しなければなりません。動作がグランドトゥルースです。弱み:遅い(サンドボックス実行には数秒〜数分かかる)、高価(VM はコンピューティングを消費する)、そして一部のマルウェアはサンドボックスを検出して実行を拒否します。サンドボックス回避はそれ自体のいたちごっこです。

3. ネットワークトラフィック分析:ペイロードを検査せずに接続を分類する

ネットワークレベルの ML は、実際のペイロードを復号化または検査することなく、ネットワーク接続のメタデータ――DNS クエリ、TLS ハンドシェイク属性、フロー統計、ドメイン登録パターン――で動作します。これはコンシューマーモバイルセキュリティに最も関連するアプローチであり、Casper's Cloak が動作する場所です。

強み:ファイルをスキャンするエンドポイントエージェントをインストールせずにあらゆるデバイスで動作し、暗号化を破ることなく暗号化されたトラフィックを処理し、1 秒あたり何百万もの DNS クエリにスケールし、マルウェアがユーザーのデバイスに届く前にドメイン登録レベルでフィッシングと C2 インフラを捕捉します。弱み:暗号化されたペイロードの中身を見ることができず、ネットワーク接続を行わないマルウェアを検出できず、ドメイン/ネットワーク特徴の質に依存します。

モデルが実際に何を見るのか?

ここで、抽象的な「ML がパターンを検出する」が具体的になります。ネットワークレベルの ML 分類――Casper に最も関連するアプローチ――の場合、特徴は 6 つのカテゴリに分類されます:

  • ドメインの年齢と登録パターン。悪意のあるドメインは圧倒的に若いです――使用の数日前または数時間前に、しばしば自動化されたレジストラを介して一括登録されます。プライバシー WHOIS レジストラを通じて 72 時間前に登録され、同じバッチで他の 200 のドメインも登録したレジストラのドメインは、8 年前に一貫した WHOIS レコードで登録されたドメインよりも統計的にはるかに悪意がある可能性が高いです。分類器はドメインの年齢を重く重み付けします、そして正当な理由があります:NIST のサイバーセキュリティフレームワークは、資産管理とサプライチェーンリスク(ドメインの出所を含む)をコア識別機能の制御として特定しています。
  • TLS 証明書属性。正規サイトは、組織検証を伴う確立された CA からの証明書をますます使用しています。フィッシングとマルウェアのインフラは、無料の自動発行 DV(ドメイン検証)証明書に頼る傾向があります――具体的には、以前のウェブプレゼンスのないドメインに対して急速に連続して発行された Let's Encrypt 証明書の大量発行です。分類器は証明書発行者、有効期間、SAN(Subject Alternative Name)エントリ、および証明書チェーンがドメインの明らかな目的と一致するかどうかを検査します。
  • DNS の動作。マルウェアの C2 インフラは、ファストフラックス DNS(1 つのドメインの背後で IP アドレスを急速にローテーション)、DGA 生成のドメイン名(xk3j7mq9.net のようなアルゴリズムで生成された文字列)、または異常なレコードタイプ(データ流出に使用される TXT レコード)を使用することがよくあります。分類器は TTL 値、返される IP アドレスの数、解決された IP の地理的多様性、およびドメイン名自体の語彙エントロピーを調べます。
  • ホスティングインフラ。ブレットプルーフホスティングプロバイダーと特定の ASN(自律システム番号)は、マルウェアインフラと不均衡に関連しています。モデルはどのホスティング環境が悪意のある活動と相関するかを学習します――ブロックリストとしてではなく、他のすべての特徴と並んだ重み付きの特徴として。
  • リクエストパターン。マルウェアの C2 ビーコンは特徴的なトラフィックパターンを生成する傾向があります:定期的な間隔のコールバック、両方向の小さなペイロード、正規のウェブコンテンツを持たないインフラへの接続。分類器は暗号化されたコンテンツを検査することなく、フローのメタデータ(タイミング、サイズ、方向)からこれらのパターンを識別できます。
  • ドメイン名の語彙・構造解析。DGA ドメインは高いエントロピーと低い発音可能性を持ちます。フィッシングドメインは文字置換で正規のブランドを模倣します(paypa1.comarnazon-security.com)。NLP ベースの特徴は、既知のブランドへの編集距離、文字 n-gram 分布、およびドメインが正規の登録の構造パターンに従うかどうかを測定します。

単一の特徴が決定的なものはありません――正規ドメインの多くは新しく、Let's Encrypt を使用し、または共有インフラでホストされています。分類器の仕事は、すべての特徴を同時に重み付けして、リスクスコアを生成することです。新しいドメインだけなら 0.3 スコアかもしれません;DGA のような名前、48 時間前の Let's Encrypt 証明書、既知の悪用された ASN でホスト、ウェブコンテンツなしの新しいドメイン?それは 0.95+ のスコアになります。

Casper's Cloak がネットワークレベルの ML 検出をどのように使用するか

Casper の脅威保護は DNS 解決レイヤーで動作します。デバイスが DNS クエリを行うとき――どのアプリからでも、どの接続でも――クエリは IP アドレスが返される前に Casper のリゾルバーを通過します。クエリと応答の間の数ミリ秒で何が起こるかを示します:

  1. DNS クエリが Casper のリゾルバーに到着します。あなたの携帯電話は「suspicious-domain.com の IP は何ですか?」と尋ねます。クエリは暗号化された VPN トンネルを通過するため、ローカルネットワーク上の誰も(コーヒーショップの WiFi、ISP)それを見ることができません。
  2. 静的ブロックリストのチェック。まず、キュレーションされたブロックリスト――既知のフィッシングドメイン、既知のマルウェア C2 ドメイン、既知のトラッカードメイン――に対する高速ルックアップ。これはシグネチャチェックと同等です:正確で高速で、既知の脅威に限定されます。一致が見つかった場合、ドメインはすぐにブロックされます。
  3. ML 分類器のスコアリング。ドメインがどの静的リストにもない場合、分類器は特徴を抽出します:ドメインの年齢、レジストラ、証明書メタデータ、DNS レコードの履歴、語彙解析、ホスティングインフラ、すべての Casper ユーザーにわたるこのドメインの最近のクエリパターン(匿名化および集計)。モデルはドメインのリスクをスコアリングします。
  4. しきい値ベースの決定。リスクスコアが設定されたしきい値を超えた場合、ドメインはブロックされます(リゾルバーは NXDOMAIN を返します)。しきい値を下回った場合、正規の IP が返されます。ボーダーラインのスコアは「ソフトブロック」をトリガーする可能性があります――ユーザーはハードブロックではなく警告のインタースティシャルを見て、続行するオプションがあります。
  5. 接続が確立される前にプロセス全体が完了します。分類は DNS 解決時――TCP ハンドシェイクの前、TLS ネゴシエーションの前、データ交換の前――に行われます。悪意のある接続は決して開きません。

これが DNS レイヤーの ML 検出がモバイルに特に適している理由です:ファイルをスキャンするオンデバイスエージェントなしにデバイス上のすべてのアプリを保護し(モデルは私たちのリゾルバーインフラで動作)、バッテリーを消耗させず、モバイルで従来のアンチウイルスが機能することを妨げるアーキテクチャの制限なしに iOS と Android の両方で動作します。この件のフィッシング側については、3 つの実際のフィッシングキャンペーンの分析で詳しく説明しています。

Casper のネットワークレイヤー ML が行わないこと:デバイス上のファイルをスキャンしません。暗号化された接続の内容を検査しません。デバイス上のアプリの動作を監視しません。悪意のあるファイルがすでにデバイス上にあり、IP アドレスのみで通信している場合(DNS ルックアップなし)、Casper の DNS レイヤー分類器はそれを検出しません。これがネットワークレベル検出の正直な境界です――ドメインベースのインフラを含む脅威(フィッシング、マルウェア配布、C2 通信の大多数)を捕捉するのに非常に効果的ですが、高度な攻撃者が IP のみの C2 チャネルを使用する可能性があるエンタープライズ環境でのオンデバイスエンドポイントセキュリティの代替品ではありません。

限界と正直な注意点

ML ベースのマルウェア検出はシグネチャのみと比較して真の改善ですが、正直な議論で必ず言及しなければならない実際の限界があります。

誤検知は実際のコスト

確率的分類とは、モデルが時々正規のドメインを悪意のあるものとフラグすることを意味します。最近登録されたドメイン、Let's Encrypt 証明書、予算プロバイダーでのホスティングを持つ新規スタートアップは、マルウェアインフラが引っかかるのと同じ特徴に引っかかる可能性があります。適切に調整された DNS 分類器の誤検知率は通常 0.01〜0.1% の範囲です――パーセントの点では低いですが、1 日に何百万ものクエリを処理している場合、0.01% でも数千の正規クエリがフラグされます。エンジニアリングの作業はしきい値の調整、高速な許可リストメカニズムの構築、そして誤検知フィードバックによる継続的な再トレーニングにあります。

敵対的 ML は実際の分野

ML 分類器を理解している攻撃者は、それらを回避するためにインフラを設計できます――使用前にドメインをエージング、EV 証明書の取得、評判の良いプロバイダーでのホスティング、正規に見えるドメイン名の使用。これは敵対的機械学習と呼ばれ、学術研究と実際のいたちごっこの活発な領域です。MITRE ATLAS フレームワーク(AI システムのための敵対的脅威ランドスケープ)は、この分野に特有の既知の敵対的 ML 技術をカタログ化しています。

防御者の利点:一つの特徴を回避するのは簡単です;すべての特徴を同時に回避するのはコストがかかります。ドメインのエージングには時間がかかります(そして時間は攻撃キャンペーンにとってコストです)。EV 証明書の取得には組織のアイデンティティ確認が必要です。評判の良いプロバイダーでのホスティングは、彼らの不正利用対応プロセスを受け入れることを意味します。ML 分類器は、各特徴が個別に無敵である必要はありません――組み合わせが、ほとんどの攻撃者が試みないほど回避にコストがかかるほど十分で、試みる者は他の特徴で捕まるか、次の再トレーニングサイクルで捕まればよいのです。

暗号化されたペイロードはネットワーク層では不透明

ネットワークレベルの ML はメタデータ――ドメイン名、証明書属性、フロー統計――を見ます。ペイロードの内容ではありません。悪意のあるペイロードが正規に見えるドメインから HTTPS で配信された場合(侵害された WordPress サイト、主要なクラウドプロバイダーのストレージでホストされた悪意のあるファイル)、ドメインの特徴がクリーンに見えるため、DNS 分類器はそれをフラグしないかもしれません。これがネットワークレベルの検出が他のレイヤーを補完するが置き換えない理由です:DNS レイヤーでのトラッカーブロックはデータ流出チャネルを止め;ブラウザと OS レベルの保護(Google Safe Browsing、Apple の XProtect)はペイロード検査レイヤーを処理します。

モデルドリフトには継続的な再トレーニングが必要

脅威の状況は常に変化しています。攻撃者はレジストラを変え、新しいホスティングプロバイダーを採用し、ドメイン生成アルゴリズムを変更します。2025 年のデータで学習したモデルは、新鮮なラベル付きデータで再トレーニングしなければ、数ヶ月で精度が低下します。新しい脅威インテリジェンスによる継続的な再トレーニング――加えて本番環境での誤検知と誤検知(偽陰性)からのフィードバックループ――が不可欠です。デプロイされた ML 分類器は「一度学習して永遠に出荷する」成果物ではありません;継続的な投資が必要な生きたシステムです。

これがあなたの携帯電話にとって何を意味するか

これを携帯電話で読んでいるなら――統計的に、ほとんどの方がそうです――実際的な要点を示します:

  • 従来のアンチウイルスはモバイルではうまく機能しません。iOS はアーキテクチャ的に許可しません;Android ではバッテリーを消耗し、それでもほとんどのアプリデータをスキャンできません。シグネチャモデルは、完全なファイルシステムアクセスを持つデスクトップコンピュータ向けに構築されていました。
  • ネットワークレベルの ML 検出はすべてのモバイルプラットフォームで動作します。ファイルシステムへのアクセスを必要とせず、オンデバイスで実行する必要がなく、すべてのアプリを同時に保護します。携帯電話がフィッシングドメインにアクセスしようとすると、DNS レイヤー分類器は接続が開く前にそれをブロックします――どのアプリが接続を開始したかに関わらず。
  • 静的ブロックリストと ML 分類の組み合わせは、既知と未知の両方の脅威をカバーします。ブロックリストはすでにカタログ化されたドメインを捕捉し;ML 分類器はまだそうなっていない新しいものを捕捉します。合わせると、どちらか単独よりも意味のある意味で効果的です。
  • 単一のレイヤーがすべてをカバーするわけではありません。DNS レベルの ML はドメインベースの脅威(フィッシング、マルウェア配布、C2 通信、追跡)を捕捉します。ファーストパーティがホストする脅威や DNS を完全にバイパスする脅威は捕捉できません。ネットワーク層での Casper、コンテンツ層でのブラウザ保護、システム層での OS 保護という階層化されたアプローチが、最も広いカバレッジを提供します。

より広い要点:セキュリティにおける機械学習はハイプでも魔法でもありません。データのパターンを認識する特定のエンジニアリング分野です――そして「このドメインはおそらく悪意があるか?」という特定の問題に対しては、パターン認識アプローチは静的リストを大幅に上回ります、特にシグネチャが間に合わず捕捉できないゼロデイ脅威に対して。問題は、あなたのセキュリティツールがそれを使用しているかどうか、そして何をカバーし何をカバーしないかについて正直かどうかです。


関連情報:2026 年のフィッシングテキスト――3 つのキャンペーンの解剖では、実際のフィッシングインフラに対して ML 分類器が実際に動いている様子を示しています。脅威保護は Casper の ML ベースの検出の機能ページです。トラッカーブロックは、補完的な DNS レベルのフィルタリングレイヤーを説明しています。学術的な基礎については、MITRE ATLAS フレームワークが敵対的 ML 技術をカタログ化し、NIST のサイバーセキュリティフレームワークがこれらの検出システムが動作するより広いリスク管理の文脈を提供しています。

監修: Casper's Cloak Security Team · 最終更新

ML 脅威検出の実際の動作を確認する

Casper's Cloak は上記の DNS レベル ML 分類器を動作させています――あなたの携帯電話からのすべての DNS クエリをリアルタイムで分析し、接続が開く前に悪意のあるドメインをブロックします。静的ブロックリスト、トラッカーブロック、暗号化された VPN トンネルと組み合わせています。<a href="/features/threat-protection">脅威保護の仕組み</a>をご覧いただくか、<a href="/subscriptions">料金</a>をご確認ください。