「プログラムを実行するとき裏で何が起きているの?」「マルウェアのローダって何?」「ブートローダとローダは別物?」——コンピューターサイエンスとセキュリティの両方で登場する用語が「ローダ(Loader)」です。
ローダ(Loader)とは、プログラムをストレージ(ディスク)からメモリに読み込んで、CPUが実行できる状態に準備するOS(オペレーティングシステム)の機能・プログラムです。ユーザーがアプリケーションをダブルクリックすると、OSのローダが裏側で動いてプログラムをメモリに展開し、実行を開始します。
セキュリティの文脈では「マルウェアローダ(Malware Loader)」という意味でも広く使われます。マルウェアローダは感染した端末に本命の悪意あるプログラム(ランサムウェア・RAT等)をダウンロード・ロードして実行する役割を担い、現代のサイバー攻撃の初期段階で多用されます。
ローダとは?
ローダ(Loader)とは、実行ファイル(.exe・ELF等)をディスクからメモリに読み込み、プログラムが動作できる状態に整えてCPUに実行を引き渡すOS内の機能です。プログラムの「発射台」にあたる役割を担います。

ローダの主な処理内容
- 実行ファイルの読み込み:ディスク上の実行ファイル(.exe・ELF等)をメモリに読み込む
- メモリ領域の確保:プログラムのコードセグメント・データセグメント・スタック・ヒープ等の領域をメモリ上に確保する
- 動的リンク(Dynamic Linking):プログラムが使用する共有ライブラリ(DLL・.so等)を見つけてメモリに読み込む
- アドレス解決(再配置:Relocation):プログラム内のシンボル(関数・変数の名前)を実際のメモリアドレスに解決する
- 実行権限の設定:コード領域を実行可能・データ領域を書き込み可能等のメモリ保護属性を設定する
- エントリーポイントへのジャンプ:準備が完了したらプログラムの開始アドレス(main関数等)にCPUの制御を渡す
コンパイラ・リンカ・ローダ・ブートローダの違い
「ローダ」に近い用語としてコンパイラ・リンカ・ブートローダがあります。それぞれの役割の違いを整理します。
| 用語 | 役割 | 処理タイミング | 入力 | 出力 |
|---|---|---|---|---|
| コンパイラ | ソースコードを機械語(オブジェクトファイル)に変換する | ビルド時 | ソースコード(.c・.java等) | オブジェクトファイル(.o・.obj) |
| リンカ | 複数のオブジェクトファイル・ライブラリを結合して実行ファイルを生成する | ビルド時 | オブジェクトファイル・ライブラリ | 実行ファイル(.exe・ELF等) |
| ローダ | 実行ファイルをメモリに読み込んで実行できる状態にする | 実行時(プログラム起動時) | 実行ファイル | メモリ上で動作するプロセス |
| ブートローダ | コンピューターの電源投入後に最初に動作してOSをメモリに読み込む | OS起動時 | OSカーネルイメージ | 動作するOS |
「料理」のたとえで整理
- コンパイラ:レシピ(ソースコード)を調理手順書(機械語)に翻訳するシェフ
- リンカ:複数の料理(オブジェクトファイル)を一つのコース料理(実行ファイル)にまとめる盛り付け担当
- ローダ:完成したコース料理をテーブル(メモリ)に並べてお客様(CPU)が食べられる状態にするウェイター
- ブートローダ:レストラン(PC)の開店準備をしてシェフ(OS)を呼び込む店長
静的リンクと動的リンクの違い
プログラムがライブラリを利用する方法には「静的リンク」と「動的リンク」があり、ローダの動作に影響します。
静的リンク(Static Linking)
リンカがビルド時にライブラリのコードを実行ファイルの中に直接埋め込む方式です。
- メリット:実行ファイル単体で動作できる(外部ライブラリへの依存なし)・実行時のリンク処理が不要で高速起動
- デメリット:実行ファイルサイズが大きくなる・ライブラリを更新する場合は再ビルドが必要
- ローダの役割:単純に実行ファイルをメモリに読み込むだけで済む
動的リンク(Dynamic Linking)
実行ファイルは「どのライブラリのどの関数を使うか」という情報だけを持ち、実際のライブラリのコードは実行時にローダが読み込む方式です。
- メリット:実行ファイルサイズが小さい・複数プログラムがライブラリをメモリ共有できる・ライブラリだけ更新すれば全プログラムに反映
- デメリット:起動時に動的リンクの処理が必要・DLL(.dll)・共有ライブラリ(.so)が存在しないと動作しない
- ローダの役割:必要なDLL・.soを探してメモリに読み込み・シンボルのアドレスを解決する動的リンカとしての処理が必要
WindowsとLinuxのローダ
Windowsのローダ
Windowsでは実行ファイルはPE(Portable Executable)形式(.exe・.dll)です。OSのローダ(ntdll.dll内のLdrLoadDll等)が以下を担当します。
- PEヘッダーの解析:インポートテーブル(使用するDLLと関数の一覧)・セクション情報等を解析する
- DLLの読み込み:必要なDLL(kernel32.dll・user32.dll等)をメモリに読み込む
- インポートアドレステーブル(IAT)の解決:関数名を実際のメモリアドレスに変換する
- ASLRの適用:PIE対応の実行ファイルとDLLをランダムなアドレスに配置する
LinuxのローダとELF形式
LinuxではELF(Executable and Linkable Format)形式の実行ファイルを使用します。動的リンクを行うELFファイルのヘッダーには動的リンカ(ld-linux.so等)のパスが記録されており、カーネルが実行ファイルを読み込んだ後に動的リンカが残りの処理を担当します。
$ readelf -l /bin/ls | grep interpreter
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
このコマンドでELFファイルが使用する動的リンカ(ローダ)のパスを確認できます。
セキュリティにおけるローダ:マルウェアローダとは
セキュリティの文脈では「ローダ(Loader)」または「マルウェアローダ(Malware Loader)」は、感染した端末に本命の悪意あるペイロード(ランサムウェア・RAT・バンキングトロジャン等)を外部からダウンロードしてメモリに読み込み・実行する役割を担うマルウェアを指します。
なぜ攻撃者はローダを使うのか
- 検知回避:本命のペイロードをファイルに書き込まずにメモリ上だけで実行する(ファイルレス攻撃)ことでウイルス対策ソフトの検知を回避できる
- 柔軟なペイロード変更:ローダ(初期感染部分)を変えずに、C2サーバーから配信するペイロードだけを変更できる
- 多段階攻撃の実現:最初の侵入(フィッシング等)→ローダの展開→本命ペイロードのダウンロード・実行という多段階の攻撃を実現できる
- ローダのシグネチャを小さくできる:ローダ本体はシンプルなコードに留めて検知されにくくしておき、本体ペイロードは動的に取得する
マルウェアローダの主な種類と手法
| ローダの種類 | 仕組み | 代表例 |
|---|---|---|
| ダウンローダー型 | C2サーバーから追加のマルウェアをダウンロードしてディスクに保存・実行する | Emotet・GuLoader・BazarLoader |
| インメモリローダ型(ファイルレス) | ペイロードをディスクに書き込まずにメモリ上に展開して実行する。ディスクスキャンで検知されにくい | Cobalt Strike Stager・PowerShellベースのローダ |
| インジェクション型 | 正規プロセス(svchost.exe・explorer.exe等)のメモリにペイロードを注入して実行する(プロセスインジェクション) | 多くのAPTグループが使用 |
| パック型 | 暗号化・圧縮されたペイロードをローダが実行時に復号・展開して実行する。静的解析を困難にする | UPX・カスタムパッカー |
| LOLBins悪用型 | Windows標準ツール(mshta.exe・regsvr32.exe・wscript.exe等)をローダとして悪用してペイロードを実行する | Squiblydoo(regsvr32悪用)等 |
代表的なマルウェアローダの例
Emotet(エモテット)
もともとバンキングトロジャンとして登場したEmotetは、現在は主にローダ・配信プラットフォームとして機能します。フィッシングメールの添付ファイル(Wordマクロ・OneNote等)から感染してC2サーバーに接続してTrickBot・Cobalt Strike等の追加ペイロードをダウンロードします。
GuLoader(ガイローダ)
GuLoaderは暗号化されたペイロードをクラウドストレージ(Google Drive・OneDrive等)からダウンロードしてメモリ上で復号・実行するローダです。正規サービスを経由するためネットワーク検知が困難です。
マルウェアローダの検知・対策

EDRによるふるまい検知
マルウェアローダは「正規プロセスからの不審な子プロセス生成」「powershell.exeによるURLからのダウンロード実行」「メモリへの不審な実行可能コードの書き込み」などのふるまいを示します。EDRツールはこれらの異常なパターンをリアルタイムで検知します。
メールゲートウェイのサンドボックス検査
Emotet等のローダが添付ファイルとして届くケースが多いため、メールゲートウェイでOfficeファイル・ISO・LNK等の添付ファイルをサンドボックスで実行して挙動を確認します。
LOLBins(正規ツール悪用)の監視
mshta.exe・regsvr32.exe・wscript.exe・cscript.exe・certutil.exe等の正規Windowsツールが不審な引数で実行された場合にアラートを上げます。
PowerShellのログ記録とアクセス制限
PowerShellはマルウェアローダに広く悪用されるため、PowerShellのスクリプトブロックログ・モジュールログを有効にしてSIEMで監視します。制約言語モード(Constrained Language Mode)を設定して悪用を困難にします。
Officeマクロの無効化
フィッシング経由のローダ感染の主要な入口であるOfficeマクロをグループポリシーで無効化します(Microsoft 365では2022年以降インターネット由来のファイルのマクロはデフォルトブロック)。
マルウェアローダに関連する被害事例
マルウェアローダや、追加のマルウェアを呼び込む機能を持つマルウェアは、国内企業・組織でも実際に被害を発生させています。ここでは、サイバーセキュリティ.comで過去に報じた事例を紹介します。
事例①:NTT西日本グループでEmotet感染、1,343件のメールアドレスが流出
2019年、NTT西日本のグループ企業で、従業員のパソコンがマルウェア「Emotet」に感染しました。
感染のきっかけは、取引先を名乗る不審なメールです。従業員がメールに添付されたファイルを開いたことでEmotetに感染し、その後、同社従業員を装ったなりすましメールが確認されました。
感染したパソコンには、NTTグループ外の顧客を含む合計1,343件のメールアドレスが保存されていました。
Emotetは、感染した端末から情報を窃取するだけでなく、追加のマルウェアを呼び込むための「配信基盤」のような役割を持つことがあります。そのため、Emotetのようなマルウェアへの感染を初期段階で検知・遮断することが、その後の被害拡大を防ぐうえで重要です。
事例②:首都大学東京でEmotet感染、1万8千件超のメール情報が流出
2019年には、首都大学東京(現・東京都立大学)でもEmotetへの感染が発生しました。
大学の教員が、実在する雑誌社を装ったフィッシングメールに記載されたリンクを開いたことで感染したとされています。その後、感染した教員を装った不審メールが学内の別の教員に送信されていることが確認されました。
調査の結果、感染端末のメールソフト内に保存されていたメール本文やメールアドレスが外部へ流出した可能性が判明しました。対象となったアカウントには合計1万8,843件のメールが保存されていました。
この事例からも、メールやWebサイトを入口とした初期感染を許すと、その後の情報窃取や感染拡大につながる可能性があることがわかります。マルウェアローダを利用する攻撃では、最初に実行される不正プログラムだけを見るのではなく、その後に外部から何がダウンロード・実行されたのかまで確認することが重要です。
よくある質問(FAQ)
Q. ローダとブートローダはどう違いますか?
ローダはOSが動作中にアプリケーション・プログラムをメモリに読み込んで実行できる状態にする機能です。ブートローダはPCの電源を入れた後・OS起動前に動作して、OSカーネル自体をメモリに読み込む特殊なプログラムです(GRUB・Windowsブートマネージャー等)。「ブートローダがOSを起動し、OSのローダがアプリケーションを実行する」という順序関係です。
Q. ダウンローダーとローダは同じものですか?
セキュリティの文脈では似た意味で使われますが、厳密には異なります。ダウンローダーは主に「ファイルをダウンロードしてディスクに保存する」役割に焦点を当てた用語です。ローダはより広い概念で「ダウンロード+メモリへの展開・実行」まで担うものを指すことが多いです。ただし実際のマルウェアはこれらの機能を組み合わせて持つため、厳密な区別が難しい場合も多いです。
Q. DLLとローダはどういう関係ですか?
DLL(Dynamic Link Library)はWindowsで使われる共有ライブラリのファイル形式です。ローダ(Windowsではntdll.dll内のローダ機能)が実行ファイルの起動時に必要なDLLを見つけてメモリに読み込み、関数のアドレスを解決(動的リンク)します。つまりローダがDLLを読み込む側で、DLLはローダによって読み込まれる側です。マルウェアがDLLを悪用する「DLLサイドローディング」ではこの仕組みが悪用されます。
Q. ファイルレスローダはどのように検知すればいいですか?
ファイルレスローダはディスクにファイルを書かないためシグネチャ検知が困難です。有効な検知方法は①EDRによるプロセスの動作・メモリ操作・ネットワーク接続の監視②PowerShellのスクリプトブロックログの有効化とSIEMでの監視③LOLBins(mshta・regsvr32・wscript等)の不審な実行の検知④メモリスキャンによるペイロードの検出、の組み合わせです。
Q. DLLサイドローディングとはどういう攻撃ですか?
DLLサイドローディングとは、正規アプリケーションが起動時に読み込むDLLと同じ名前の悪意あるDLLを用意して正規DLLの代わりに読み込ませる攻撃手法です。Windowsのローダは実行ファイルと同じフォルダ→システムフォルダ→PATH等の優先順位でDLLを探すため、実行ファイルと同じフォルダに偽DLLを置くと悪意あるDLLが先に読み込まれます。正規のデジタル署名済みアプリが攻撃のベクターになるため検知が困難です。
まとめ
ローダ(Loader)とは、実行ファイルをディスクからメモリに読み込んでCPUが実行できる状態に整えるOSの機能です。処理内容はメモリ領域の確保・共有ライブラリ(DLL・.so)の読み込み・アドレス解決(再配置)・実行権限の設定・エントリーポイントへのジャンプです。コンパイラ・リンカがビルド時に動作するのに対してローダは実行時に動作します。ブートローダはOSカーネル自体をロードする特殊なローダです。
セキュリティの文脈では「マルウェアローダ」は感染端末に本命のペイロードをダウンロード・メモリ展開・実行する役割を担います。Emotet・GuLoader等のダウンローダー型・PowerShell等を使ったインメモリ型・LOLBinsを悪用した正規ツール型など多様な手法があります。
対策はEDRによるふるまい検知・メールゲートウェイのサンドボックス検査・Officeマクロの無効化・LOLBinsの監視・PowerShellログの収集を組み合わせることが重要です。多段階攻撃の初期段階であるローダを早期に検知・遮断することで後続の深刻な被害を防止できます。


























![中小企業の情報瀬キィリティ相談窓口[30分無料]](/wp-content/uploads/2023/07/bnr_footer04.png)



ローダは「舞台の準備スタッフ(舞台監督)」のようなものです。俳優(プログラム)が倉庫(ディスク)にいる状態では演技(実行)できません。舞台監督(ローダ)が俳優を舞台(メモリ)に連れてきて、照明・音響・道具(必要なライブラリ・アドレス解決)をセットアップしてから「スタート(実行開始)」の合図を出します。プログラムを「実行できる状態」に持っていくのがローダの仕事です。