こんにちは!インフラやセキュリティの世界へようこそ。
新人のIT担当者さんや、これからシステムの安全性を守る立場になる開発者さんにとって、「サーバーのセキュリティをどう守るか」というのは、最初の一歩としてすごくドキドキするテーマですよね。
今回は、Windows Serverの標準機能でありながら、プロの現場でも「最後の砦」として重宝されている「AppLocker(アップロッカー)」についてお話しします。
「難しそうだな…」と感じるかもしれませんが、大丈夫です!身近な「家の鍵」にたとえながら、一歩ずつ優しく紐解いていきましょう。
—
1. なぜサーバーに「侵入」される前提で考える必要があるの?
セキュリティの現場では、よくこんな言葉が使われます。
「絶対に破られない壁なんて存在しない。だから、侵入された後にどう暴れさせないかが勝負だ」
ちょっと怖いですよね。でも、これは現実の泥棒と同じなんです。
どれだけ頑丈な玄関の鍵をつけていても、窓の鍵が閉め忘れていたり、プロの空き巣が巧みな手口で侵入してきたりすることはゼロにはなりません。
では、泥棒が家の中に忍び込んだとき、一番困ることは何でしょうか?
それは、「家の中にあるドロボー用の特殊な工具箱を持ち出され、金庫を勝手にこじ開けられること」ですよね。
サーバーの世界でも同じです。万が一、外部から悪い人が侵入してきたり、うっかり踏んでしまったウイルス(マルウェアやランサムウェア)がパソコン内で動き出したりしたとき、彼らは必ず「自分たちの都合の良いプログラム(実行ファイル)」を持ち込もうとします。
ここで登場するのが、今回解説するAppLockerです。
—
2. AppLockerってなに? 家の鍵にたとえてみよう
AppLockerは、Windows Serverに標準で備わっている「アプリケーション制御機能」です。
一言でいうと、「このパソコンの中では、私(管理者)が許可した行儀の良いアプリしか動かちゃダメですよ!」という強力な実行許可リスト(ホワイトリスト)を作れる仕組みです。
これを身近な「防犯」にたとえてみましょう。
- これまでの一般的なセキュリティ(ブラックリスト方式):
「怪しい顔つきの人は入れません!」という指名手配書を貼っておく方法です。でも、これだと世の中に次々と現れる「新しい顔(新種のウイルス)」を見破ることができません。
- AppLockerのやり方(ホワイトリスト方式):
「我が家に入れるのは、私が名簿に登録した家族と、身元がしっかり保証された宅配業者さんだけです!」と決める方法です。名簿に載っていない怪しい奴がどんなに巧妙な変装をしていても、名簿になければ絶対に家の中に入れない(プログラムを動かせない)というわけです。
これなら、未知のランサムウェアがサーバーのどこかに潜り込んできたとしても、「動かす権利」自体がないため、ただの無力なデータ(ゴミ)になってしまいます。すごく安心感がありますよね!
—
3. AppLockerでどんなルールが作れるの?
AppLockerでは、いくつかの条件(ルール)を組み合わせて「何を実行して良いか」を管理します。主なものは以下の3つです。
1. 発行元(パブリッシャー)ルール:
Microsoft社など、信用できる大きな会社がデジタル署名した安全なプログラムだけを許可します。
2. パス(ファイルパス)ルール:
「C:\Windows\ フォルダの中にあるものだけは動かしていいよ」といった、保存されている場所で判断します。
3. ハッシュルール:
ファイルの「中身のデジタル指紋(ハッシュ値)」を計算し、一言一句狂いのない安全なファイルだけを許可します。
現場で一番よく使われるのは、管理の手間が少なくて安全な「発行元ルール」と「パスルール」の組み合わせです。
—
4. 【実務で使える】AppLockerの具体的な設定手順
それでは、実際にWindows ServerでAppLockerを設定する流れを、初心者の方にも分かりやすく見ていきましょう。
今回は、「デフォルトでは何も動かさないけれど、Windowsの基本機能や特定の管理ツールだけは動かせるようにする」という、安全なホワイトリスト運用の基本設定を行います。
ステップ1:グループポリシーエディターを開く
Windows Serverの「ファイル名を指定して実行」などから、ポリシーの編集画面を開きます。
gpedit.msc (ローカルグループポリシーの場合)または、ドメイン環境であれば gpmc.msc を使って設定を行います。
開く場所は次のパスです。
コンピューターの構成 > Windows の設定 > セキュリティの設定 > アプリケーション制御ポリシー > AppLocker
ステップ2:デフォルトルールの自動生成(ここが一番ラク!)
最初から自分で全部のルールを書くのは大変なので、Windowsが用意してくれている「既定のルール」を自動で作っちゃいましょう。
1. [実行可能ファイル規則 (Executable Rules)] を右クリックします。
2. [既定の規則の作成] をクリックします。
これだけで、OSの動作に不可欠なシステムファイルや、管理者(Administratorsグループ)が実行するプログラムへのアクセスが自動的に許可されます。まずは一安心ですね。
ステップ3:【重要】監査モード(Audit Only)でテストする
いきなり「今日からホワイトリスト以外のアプリは一切起動禁止!」にしてしまうと、社内ニッチな業務アプリや、サーバーの監視ツールまで動かなくなってしまい、システムが止まる大惨事になりかねません。
プロの現場では、必ず「監査モード」というテスト期間を設けます。これは、「ブロックはしないけれど、もしルールに違反したアプリが動いたら、イベントログに記録してね」という優しいモードです。
1. AppLocker のプロパティを開きます。
2. [実行可能ファイルの規則] タブを開き、[構成する] にチェックを入れます。
3. 適用モードを [監査のみ (Audit only)] に変更して適用します。
この状態で数日間サーバーを動かし、「おや、この業務アプリがブロックされそうになってログに残っているな」というのを事前に確認して、ルールのリストを修正していきます。
ステップ4:強制モード(Enforce rules)への切り替え
テスト期間が終わって、必要なアプリの許可リストが完璧に整ったら、いよいよ本番です。
先ほどのプロパティ画面で、適用モードを [強制する (Enforce rules)] に切り替えます。
これで、リストに載っていない怪しいバイナリ(例:デスクトップにこっそりダウンロードされた見知らぬ bad.exe など)を実行しようとしても、Windowsがビシッと弾き返してくれるようになります。
—
5. 設定が反映されたか確認する(PowerShellの活用)
設定が正しく動いているか、また現在どんなルールが適用されているかは、PowerShellを使って簡単に確認することができます。
サーバー管理の現場ではお馴染みのコマンドですので、ぜひ使ってみてください。
以下のコマンドをPowerShell(管理者権限)で実行すると、現在のAppLockerのポリシー状況を綺麗に出力してくれます。
# 現在適用されているAppLockerのポリシーをXML形式で画面に表示する
Get-AppLockerPolicy -Effective -Xml
# AppLockerのサービスが正常に稼働しているか(Application Identityサービス)を確認する
Get-Service -Name AppIDSvc
> 💡 現場のちょっとした裏ワザ・注意点
> AppLockerを動かすには、Windowsの Application Identity (AppIDSvc) という裏方サービスが動いている必要があります。もし「設定したのにうまく動かないな…」と思ったら、まずはこのサービスが「自動起動」になっているか確認するのが、インフラエンジニアの最初のチェックポイントです。
—
まとめ
いかがでしたでしょうか?
AppLockerによる実行許可リストの管理は、一見すると難しそうなサーバーの要塞化テクニックですが、考え方はとてもシンプルです。
- 「知らないプログラムは一切動かさない」という強い意志を持つこと
- いきなり強制するのではなく、監査モードで安全にテストしてから本番に臨むこと
この2つを守れば、あなたの管理するサーバーのセキュリティレベルはグッと跳ね上がります。
セキュリティ対策は、日々の小さな積み重ねが大きな安心を生みます。一歩ずつ、確実にマスターしていきましょう!
コメント