fragiler’s Security blog

会社でセキュリティ担当しています。まだまだ勉強中の身ですが、遊びがてら発見したセキュリティ関連のことがらを呟こうと思います。

セキュリティの「多層防御」について考えてみた

セキュリティ対策を考える際によく出てくる「多層防御」という言葉。

 

「入口対策~内部対策~出口対策」とか「偵察~武器化~~~目的実行」とか、いろんな流れがあるなかで「各段階で有効な対策を組み合わせましょう」という言葉と思っております。

 

が、いまいち「じゃぁ具体的にどこまで何しなきゃいけないのさ?」というのがモヤモヤしていたので、そもそもどんな具体策があるのかを自分なりに整理してみました。

 

以下の具体策はこれまでセミナーで聞いたり、セキュリティベンダの営業の方から聞いたり、ブログで見た内容をもとにまとめたものです。

 

ちょっとカテゴリ違うんじゃない?と思われるものもあるかもしれませんが、あしからず・・・。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

【主に入口対策】
■通信による侵入を防ぐ(決められた通信だけ入れる)
■Webからのマルウェア侵入を防ぐ(攻撃コードを通過させない)
 ⇒ExploitKitの配置されたWebサイトへつなげさせない(URLブラックリストによる通信遮断)
 ⇒ウィルスゲートウェイによりマルウェアのダウンロードを遮断
■メールによるマルウェア侵入を防ぐ(メール添付ファイルの検知)
 ⇒メールフィルタリングシグネチャ
 ⇒メールフィルタリングSandBox型
■PCに外部媒体からマルウェアを侵入させない
 ⇒アンチウィルスによる検知
 ⇒外部媒体接続時の自動実行の抑止
 ⇒外部媒体を接続させない
■不正アプリからのマルウェアを侵入させない
 ⇒アンチウィルスによる検知
 ⇒アプリを勝手にインストールさせない
■PCにマルウェアを保存させない
 ⇒アンチウィルス(シグネチャ型・機械学習型)
 ⇒アンチウィルス(レピュテーション型)
 ⇒特定フォルダ以外ファイルを保存させない
■過去にPCに保存されたマルウェアを見つける
 ⇒アンチウィルスによるフルスキャン
■PCで攻撃コードを受信させない
 ⇒ホスト型IPS
 ⇒不要なWindowsサービスを停止する
 ⇒Web分離
■PCでマルウェアを実行させない
 ⇒振舞い検知させる
 ⇒マルウェアによく使われる拡張子関連付けの変更する
 ⇒SandBoxで動かして安全が確認できてから実行させる
 ⇒マクロの無効化
 ⇒スクリプト関連プログラムの無効化
 
【主に内部対策】
■情報に触れさせない
 ⇒ネットワークによるアクセス先の分離
 ⇒認証によるアクセス制御
 ⇒権限によるアクセス先の制御
■権限昇格させない
 ⇒そもそも論としてユーザに管理者権限を与えない
 ⇒脆弱性対策パッチ
■遠隔操作させない(アプリを起動させないなど)
 ⇒脆弱性対策パッチ
 ⇒ホワイトリスト型アプリコントロール
 ⇒ブラックリスト型アプリコントロール
 ⇒レジストリを変更させない
 ⇒タスクを登録させない(バックドアを作らせない)
 ⇒スタートアップに登録させない
■不審な処理を検知する
 ⇒EDRによる検知(Excelからcmd.exe呼び出すようなものなど)
 
【主に出口対策】
■C2と通信させない(PC)
 ⇒アプリケーションによる通信制
 ⇒PCファイアウォールで特定拡張子のOutBound通信をブロックする
 ⇒EDRによる端末隔離
■C2と通信させない(NW機器)
 ⇒URLブラックリストによる通信遮断
 ⇒IPブラックリストによる通信遮断
 ⇒通信データ内容で通信遮断
 ⇒プロキシ認証による通信制
 ⇒UserAgentによる通信制御(アプリケーションによる通信制御)
 ⇒ポートによる通信制
■情報を持ち出させない
 ⇒ゲートウェイ機器で特定拡張子の通信を遮断(RARなど)
 ⇒ゲートウェイ機器で特定容量以上の通信を遮断(2M以上は遮断など)
■情報を読めないようにする
 ⇒データを暗号化する
 ⇒データを暗号化し認証サーバと通信できない場合解読できないようにする
 
【(ついでに)インシデントレスポンス対応】
■追跡できるようにする
 ⇒イベントログをPCに保存する
 ⇒ウィルス検知ログをPCに保存する
 ⇒メールの送受信内容を保存する
 ⇒FWの通信ログを保存する
 ⇒プロキシの通信ログを保存する
 ⇒ADの認証ログを保存する
 ⇒ファイルサーバの操作ログを保存する
 ⇒全通信のパケットをキャプチャする
 ⇒業務サーバの操作ログを保存する
 ⇒サーバ系機器の管理者アカウントの認証ログを保存する
 ⇒サーバ系機器の管理者アカウントの操作ログを保存する
-------------------------------------
実現する製品やソリューションはいろいろあります。(そもそもWindowsの基本機能でできるものもあります。)
また、対策自体もたぶん他にもいろいろとあります。
 
それに、全部実現したからといって完璧に防げるわけではありませんし、おそらく運用やユーザの使い勝手がものすごく大変なことになると思います。
 
セキュリティ対策はバランスを考えて・・・
ちなみに私の会社でも実際に行っているのはこの中の一部です。