皆さん、こんにちは!日々のセキュリティ対策やサーバーの管理、本当にお疲れ様です。
セキュリティの現場にいると、「まさか、そんな仕組みが裏で悪用されるなんて……!」と驚かされる攻撃手法にたびたび出会います。今回お話しする BITS(Background Intelligent Transfer Service) もその一つです。
「名前を聞いたことがないな」という方もご安心ください。今回は、身近な防犯の例えを交えながら、攻撃者がこの機能をどう悪用するのか、そして私たちがそれをどう見破ればいいのかを、一歩ずつ優しく紐解いていきましょう!
—
1. 家の「宅配ボックス」が悪用される? BITSってなに?
まずは、BITSがどんな機能なのかをイメージしてみましょう。
皆さんのご自宅に「宅配ボックス」や「郵便受け」はありますか? ネットショッピングで買った大きな荷物が届いたとき、不在であっても配達員さんがボックスに入れておいてくれれば、私たちは自分の好きなタイミングで荷物を取り出すことができますよね。
Windowsパソコンに標準で備わっている BITS(Background Intelligent Transfer Service) は、まさにこの「便利な宅配ボックス」のような機能です。
例えば、Windowsの巨大な更新プログラム(アップデート)をダウンロードするとき、パソコンが重くなったら嫌ですよね。BITSは、「今ユーザーがパソコンをがっつり使っているから、ダウンロードはこっそり裏で少しずつ進めておこう」「夜中になってパソコンが暇になったら、一気に受け取ろう」といった具合に、パソコンの邪魔にならないように裏側(バックグラウンド)でファイルを受け渡してくれる非常に優秀な仕組みなんです。
正規のアプリケーションやWindows自身も、この仕組みを使って日々のメンテナンスを行っています。
—
2. 攻撃者はどうやってこの仕組みを悪用するの?
とても便利で平和なはずの「宅配ボックス(BITS)」ですが、もし悪い人が現れたらどうなるでしょうか?
泥棒が留守宅の郵便受けを利用して、外からこっそりと「開かずの金庫の鍵(悪意あるマルウェア)」をこっそり運び込ませたら……。しかも、その郵便受けは普段から郵便配達員が使っているものなので、家の中にいる人からは「いつもの配達かな?」と見過ごされてしまいます。
サイバー攻撃者は、まさにこの手口を使います。
1. 正規の道具になりすます
攻撃者は、パソコンに最初から入っている正規のコマンド(Windowsに標準搭載されている bitsadmin や PowerShell のコマンド)を使って、BITSに「あの遠くの怪しいサーバーから、このファイルをこっそりダウンロードしてきて!」とこっそり指示を出します。
2. セキュリティの目を盗む
多くのセキュリティソフトやファイアウォールは、「怪しいブラウザが変な通信をしていないか」を厳しく監視しています。しかし、BITSはWindowsの正当な機能であるため、「あ、いつもお疲れ様です!」とスルーされてしまうことが多いのです。これが攻撃者の狙う最大の「盲点」です。
3. 裏でウイルスを仕込む
ダウンロードが完了すると、攻撃者はそのファイルをこっそりと実行し、パソコンを乗っ取ったり、別の危険なウイルスを呼び込んだりしてしまいます。
—
3. SOC(セキュリティ監視センター)はどうやって見破るの?
私たちSOCのアナリストは、こうした「一見すると正当に見える、でも実は怪しい裏口からの出入り」を見つけ出すために、日夜ログ(パソコンの「防犯カメラの映像」のような記録)を分析しています。
「誰が、いつ、どこから、どんなファイルを持ち込もうとしたのか」を記録するWindowsのイベントログを見てみましょう。特に注目すべきは、Microsoft-Windows-Bits-Client というログチャンネルの イベントID 59 や 60、あるいはプロセス実行履歴(Sysmon等)に残る bitsadmin.exe の実行形跡です。
例えば、普段は絶対にそんなことをしない業務用のパソコンで、次のような動きがあったらレッドカード(要調査)です。
- 突然、聞いたこともない外部のIPアドレスに向かって、BITSがファイルの転送を始めた
- 実行ファイル(
.exeや.dll、.ps1など)や、中身のよく分からない拡張子のないファイルが裏でダウンロードされている - 普段はGUI(画面操作)で動くはずのシステムなのに、コマンドプロンプトから突然
bitsadmin /transferのような命令が叩かれた
—
4. 【実務で使える】怪しいBITSジョブを見つけるログ分析&ハンティング
それでは、実際に現場で私たちがどのように怪しい動きを見つけているのか、その一例をご紹介します。
セキュリティ監視やインシデントレスポンスの現場では、PowerShellを使って不審なBITSジョブが現在登録されていないかをサクッと確認することがよくあります。以下のスクリプトは、実務の初動調査でそのまま活用できるものです。
# -------------------------------------------------------------
# スクリプト名: Get-SuspiciousBitsJobs.ps1
# 概要: 現在システムに登録されているすべてのBITSジョブを列挙し、
# 怪しいダウンロード元(URL)やファイル名が含まれていないか確認します。
# -------------------------------------------------------------
Write-Host "[-] 現在登録されているBITSジョブの確認を開始します..." -ForegroundColor Cyan
# BITSモジュールをインポートしてジョブを取得
Get-BitsTransfer -AllUsers | Select-Object DisplayName, JobState, OwnerName,
@{Name="RemoteFiles";Expression={($_.FileSet.RemoteName)}},
@{Name="LocalFiles";Expression={($_.FileSet.LocalName)}} |
Format-Table -AutoSize
Write-Host "[+] 確認が完了しました。見慣れないURLや不審な保存先がないか確認してください。" -ForegroundColor Green
💡 このコードのチェックポイント
現場でこのスクリプトを動かしたとき、RemoteFiles(ダウンロード元のURL)に、次のような特徴がないか目を光らせます。
- 企業として利用する理由のない海外の無料ストレージや、ドメインが不自然なアドレス
- パスの中にランダムな文字列(例:
abc123xyz.exe)が含まれている - 本来は一時フォルダ(
C:\Users\...\AppData\Local\Tempなど)に保存されるべきではない場所に実行ファイルが落ちようとしている
—
5. 一歩ずつ始める防御と対策
「BITSって怖い機能だな、いっそ無効化しちゃえばいいのでは?」と思われるかもしれませんが、実はBITS自体を完全に止めてしまうと、今度はWindowsの正規のアップデートが正常にできなくなってしまい、それはそれで別のセキュリティリスクを生んでしまいます。
だからこそ、次のような「多層防御(鍵を何重にもかけること)」が大切になります。
1. 不要なコマンドの実行を制限する
一般の従業員が使う端末では、管理者権限なしで bitsadmin.exe などの強力なツールがむやみに実行されないように制御(AppLockerやEDR製品でのブロック設定など)を検討します。
2. EDR(Endpoint Detection and Response)の導入
単にウイルスを防ぐだけでなく、「BITSを使った怪しい通信の動き」そのものを検知してアラートを出してくれるEDR製品を導入し、リアルタイムで「防犯カメラ」の目を光らせておきます。
3. 定期的なログの監査
先ほど紹介したようなスクリプトやログ監視ツールを使い、「社内に不審な宅配ボックスの不正利用がないか」を定期的にパトロールする習慣をつけましょう。
—
おわりに
いかがでしたでしょうか?
BITSを悪用した攻撃は、攻撃者が「いかにセキュリティの目をかいくぐり、普段から使われている正規の仕組みに擬態するか」という狡猾さを象徴する手口です。
難しそうに見えるセキュリティの仕組みも、「家の防犯」に置き換えてみると、どこに気を配るべきで、どうやって監視すればいいのかが見えてきますよね。
焦らず、一歩ずつ知識と対策の引き出しを増やしていきましょう!皆さんの日々のインフラ・セキュリティ運用を、心から応援しています。
コメント