SD-WAN
先日、SD-WAN(Software Defined WAN)について説明を受けてきました。今までSD-WANについてあまり詳しく触れたことがなく、漠然とOpenFlowのような構成を想像していたのですが、実態はちょっと違っていました。
まずSD-WANサービスの定義がメーカによってマチマチのようです。また、新しい技術を利用しているのかと思いましたが、説明を受けたメーカのサービスは簡単に言うとIPSecやQoSをGUIで簡単に出来ますよ!ついでにトラフィックも可視化しますよ!というものでした。実際にCiscoのルータで同じことが設定出来ないか聞いてみると、出来てしまうそうです。可視化に関してはMRTGなりNetflowが必要ですが、技術的に革新的なものではなく、既にある技術を簡単に実装できるというのが話を聞いて受けた印象です。今流行のAIもそうですが、今後は煩雑だったCLIの設定も簡単になっていき、Sierとしての仕事のあり方も変わってくるのかなと思いました。
HP 法人向けプリンタの脆弱性
HPの法人向けプリンタ「LaserJet」「PageWide」「LaserJet Managed」「OfficeJet」の各シリーズはSolution DLLの署名検証に不備があり、任意コードが実行される可能性があるそうです。CVSSスコアは 8.1と高く、HPはファームウェアを公開済みで早急にアップデートするように呼びかけています。
プリンタを狙った攻撃は数年前から実在しますが、記事によるとセキュアなプリンタは全体の2%に過ぎないそうです。実際私が担当した案件でもプリンタとの通信を厳密に規制したことはあまり無かったような、、、
今後はプリンタも脆弱性を意識し、必要なポート番号以外の通信を許可しないことが当たり前になってくるのかもしれません。とは言ってもプリンタと端末が同一セグメントにいることは珍しくないかもしれません。そうするとNW機器で実現出来る現実的な設計はプリンタのアップリンクポートにPACLを使用することですかね。。
Palo Alto SSL Decryption
最近ではSSL Decryption(復号)機能は殆どのUTM/Proxy製品が対応していると思います。Palo Altoの場合、SSL Decryptionに3種類の方式があるため、要件に応じて使い分ける必要があります。
(1) SSL Forward Proxy
一般的なSSL Decryption機能であり、ClientからServer向けのSSL通信上にProxyとして存在します。サーバ証明書をPalo Altoが再署名(発行元、RootCAとして署名)するため、クライアントのWebブラウザにPalo Altoの証明書をインポートしなければなりません。また、TAPモードでは使用出来ません。
#公的証明書をインストールすればクライアントのWebブラウザにインストールしなくてもよいとマニュアルには書いてあるんですが出来ないらしい、、Palo自体に証明書自体入りませんでした。
(2)SSL Inbound Inspection
Proxy処理をせずに透過的に検閲します。これは事前にPalo Altoにサーバ証明書と秘密鍵をインポートしておくことで実現します。当然ですが復号化したいサイトのサーバ証明書が必要なため、特定のサイトを対象とした機能です。
(3)Decryption Port Mirror
復号化したトラフィックをミラーリングにより転送します。利用には機種制限と追加ライセンスが必要です。また、アプリケーションデータのみミラーされるため、L2~L4のデータはミラーされません。
SSL復号化機能を有効化すると正常に表示されないサイトや、正しく動作しなくなるアプリケーションが存在するため、導入は慎重に行うべきです。基本的に正しく動作しないサイトに関しては除外設定するしかありません。
以下のケースではSSL復号化に失敗します。
- Windows Updateなど特定の証明書からの通信を許可することが実装されたクライアントソフト
- 独自またはRFC非準拠のプロトコルを仕様したアプリケーション
- Skype/bitTorrentなど回避的アプリケーション
- SSL VPN
- TLS1.3など使用するPalo Altoが対応していない暗号方式
- Palo Altの証明書を利用できないクライアントソフト
Palo Alto User-ID機能の注意点
Palo AltoのUser-ID機能はActive Directoryと連携することでユーザ単位の通信制御を実現することが出来ます。本機能の大前提として、1 ユーザ = 1 IPアドレスでの利用となります。これはPalo AltoではIPアドレス単位で通信制御を行うためです。
実際の動きとしては、まずPan-Agentが連携するADサーバの監視ログからIPアドレスとユーザIDの対応テーブル(user_ip_map.txt)を作成します。その後、Palo Alto本体はuser_ip_map.txtを元にuser_ip_mapを作成します。つまりADサーバに監視ログの登録設定がされていないと動作しません。
Palo Altoに正しくユーザを識別させるため、以下のポリシーを遵守します。
- 同一ドメインのサーバにアクセスする場合、同一のユーザでアクセスする
- 複数ユーザの同時ログインを禁止する
- ローカルアカウントでログインさせない
ローカルアカウントでログインされた場合、IPアドレスと通信制御を紐付けているため、Palo Altoでログオフ検知が出来ないとログオフ前のポリシーが適用されてしまい、結果的になりすましによる権限昇格を許してしまいます。ADサーバの監視ログからログオフを追跡することは出来ないため、Pan-AgentではNetBios/WMIプローブによるログオフ監視機能を保有しています。この機能を使ってuser_ip_mapからIPアドレスを参照し、該当IPアドレスにプローブを送ることでユーザのログインを確認することが出来ます。つまり端末側にNetBios/WMIプローブが許可されている必要があります。許容出来ない端末に関してはuser_ip_map.txtのタイムアウトタイマー(デフォルト45分)を最適化する必要があります。
proxy-arp
proxy-arpは他のデバイス向けのarp要件を代理応答する機能です。proxy-arpが有効なインターフェースでarp要求を受信すると、その機器が代理応答してくれるため、arp要求を行った端末からは同じセグメントにいるように見せることができます。
下記図ではPC01とPC02は別セグメントになりますが、RT01はproxy-arpを有効にしているため、PC01はルーティング設定を行わずにPC02と通信可能です。
PC01#ping 172.16.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/34/44 ms
PC01#
ルーティング設定を行いたくない事情がある場合は便利ですが、セキュリティ上は望ましくないので無効化したほうが良いと思います。特にCiscoはデフォルトで有効のため注意してください。
全体で無効化したい場合は以下のコマンドを使用します。
RT01(config)#ip arp proxy disable
インターフェース単位で無効化したい場合は以下のコマンドを使用します。
RT01(config-if)#no ip proxy-arp
動作確認をする場合は都度arp-cacheをクリアすることを忘れないでください。
Catalyst9300シリーズ
Catalyst9300シリーズは高度な学習機能と自動制御を実現できる新しい製品群です。Catalyst9300シリーズから従来とは異なるパッケージ体系で提供されます。新しい体系は「ADVANTAGEパッケージ」および「ESSENTIALSパッケージ」の2種類となります。DNAライセンスはサブスクリプションとなり、有効期限が存在します。
以下に従来との比較を記載します。価格帯は「Catalyst 9300」→「Catalyst 3850」「Catalyst 9400」→「Catalyst 4500E」「Catalyst 9500」→「Catalyst 4500X」と同等程度になる予定だそうです。
ADVANTAGEパッケージはESSENTIALSパッケージの機能を含んでいます。現時点ではESSENTIALSからADVANTAGEへのアップグレードは出来ないため、アップグレードしたい場合は、筐体毎購入しなおす必要があります。また、DNAライセンスは3年分が標準添付されていますが、DNAライセンス機能を使用する場合は更新を忘れないようにして下さい。ライセンスの有効化には再起動を伴うため注意が必要です。
DHCP Relayについて
通常DHCPによるIPアドレス取得はDHCP ClientとDHCP Serverが同一セグメントに存在する必要があります。IPアドレス取得時にDHCP Clientからの発信する要求(DHCP Discover)がブロードキャストを使用するためです。しかしDHCPサーバをDHCP Clientと同一セグメントに設置することは稀なので、ユニキャストに変換して通信を行うDHCP Relay機能を使います。先日DHCPサーバを評価しているときに「DHCP Serverは何を元にDHCP Clientに対して払い出すセグメントを決めているんだろう」と思い、キャプチャしたパケットを確認しました。
検証構成図は以下となります。
てっきりDHCP Discoverを確認すればサブネットマスク情報が載っていて、送信元IPアドレスとの組み合わせで払い出すセグメント(プール)を決めているのかな~と思ってキャプチャを確認すると、、、サブネット情報がどこにも無い、、
もちろんDHCP Offerにはサブネットマスクもデフォルトゲートウェイ載っています。これはDHCPプールで設定しているので当然ですね、、、
つまりDHCP Serverは自身のプールの中から送信元IPアドレスにマッチしたものを払い出すだけなんじゃないか?と仮説を立ててプールを172.16.0.0/16にしてみました。
DHCP_Server#
!
ip dhcp pool DHCP_POOL
network 172.16.0.0 255.255.0.0
default-router 172.16.0.254
DHCP_Client#
*Nov 15 22:29:42.551: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 172.16.0.1, mask 255.255.0.0, hostname DHCP_Client
想定どおり172.16.0.0/16のIPアドレスが払い出されました。このことからDHCP Serverが払い出すプールは送信元IPアドレスだけ見ていることがわかります。確かにサブネット情報はルーティングプロトコル以外あまりやりとりされないのですが、根拠も無くサブネットマスクも見ているものだと思い込んでいました。ちなみに送信元IPが同じでもDHCP ServerがDHCP Clientを見分けられるのはDHCP Discoverの中にClient Macが格納されているからです。
今まで当たり前にやってきたことも掘り下げる必要があることを痛感しました。。各機器のconfigは以下のとおりです。
DHCP_Server#
!
ip dhcp pool DHCP_POOL
network 172.16.0.0 255.255.0.0
default-router 172.16.0.254
!
interface FastEthernet0/1
ip address 172.16.10.100 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 172.16.10.254
!
DHCP_Cient#
!
interface FastEthernet0/0
ip address dhcp
!
interface FastEthernet0/0
ip address 172.16.0.254 255.255.255.0
ip helper-address 172.16.10.100
!
interface FastEthernet0/1
ip address 172.16.10.254 255.255.255.0
!
機械学習型セキュリティソフトの注意
先日行われた情報セキュリティEXPOで興味深い説明を受けたのでメモを残しておきます。マルウェア対策としては機械学習型と振る舞い検知型が一般的です。最近は機械学習型のセキュリティソフトがトレンドなのか、各メーカがこぞって製品を出しています、どのメーカも検出率99.9%など非常に高い数値を出していて凄いな~と考えていたのですが注意事項があるそうです。まず一般的な機械学習型が検出可能なマルウェアは実行ファイルのみ対象だそうです。つまり実行メモリやレジストリに格納されるようなファイルレスマルウェアには無力な場合があるそうです。各メーカを比較する際は、何を対象とした検出率であるか確認する必要があります。
ファイルレスマルウェアに対応するためにはシグネチャベースによる振る舞い検知が有効ですが、機械学習型との違いは既存のマルウェアにしか効果が無いことです。シグネチャにマッチしないゼロデイ攻撃には対処できません。
また、機械学習型/振る舞い検知型に関わらずランサムウェア対策は別途行う必要があります。仮にランサムウェアを検知出来たとしても、プロセスを停止する前に一部のファイルが暗号化される可能性が高いためです。定期的なバックアップを取って復元するのか、ランサムウェアが最初に暗号化しがちな最も新しくアクセスしたファイルと過去にアクセスしたファイルにダミーファイルを用意し、ダミーファイルが暗号化された時点でプロセスをとめるような専用製品を使った対策を検討して下さい。Windowsはデフォルトでバックアップファイルを保持していますが、最近のランサムウェアはこのバックアップを消してから暗号化を開始するので、対策をしないと無力です。
今後のセキュリティ対策としてはゼロデイ対策として機械学習を、ファイルレスマルウェア対策として振る舞い検知型を、ランサムウェア対策に暗号化ブロックとバックアップの複合的なセキュリティ対策が必要だと思いました。
Webブラウザの仮想化
先日行われた情報セキュリティEXPOに行ったところ、気になっていたWebブラウザの仮想化についてデモがあったので説明を受けてきました。デモが行われていた製品は「Menlo Security Isolation Platform」です。
ブラウザを仮想化することで、クライアント端末には仮想化されたコンテナ内で実行した結果のみ描写されるため、ページの改ざんによるマルウェアの感染やリダイレクトによって悪意のあるサイトに飛ばされても影響範囲を仮想コンテナ内に閉じ込めることが出来ます。ダウンロードするファイルもHTML5に変換し、余計なものを取り除くことで無害化出来るそうです。また、クライアントレスでプロキシサーバとして設定するだけで導入でき、既存のプロキシサーバがある場合も上位サーバとして指定するだけで良いそうです。注意点として変換出来ない実行ファイル等は別途対策がいるとのことです。
この手の製品は他のメーカも出しており、複数メーカで検討する場合は金額はもちろんですが、描写遅延を比べると良いとのことでした。
最近の主なマルウェア感染経路は未認可のUSB等の外部媒体か、メール、Webブラウザ経由だと考えています。外部媒体はそもそも繋げられないのが当然になってきましたし、メールはOffice365のようにクラウド化され、API連携のセキュリティ対策が普及してくるかなと思っています。デモを見るとほとんど遅延もなく使い勝手は良さそうだったので、今後はWebブラウザも仮想化が当たり前になるのかな~と思いました。NSXの分散ファイアーウォールは非常に便利ですが、めちゃくちゃ高いので導入ハードルが高いですし、そもそもNWの仮想化はCPUがまだスイッチングに最適化できていないのでは?(専用品よりスループットが出ないのでは)と疑問があります。
デジタル署名付きマルウェア
過去にイラクの核プログラムを標的としたマルウェアが合法的なデジタル署名付き(コードサイニング)のマルウェアだったことは有名だと思います。この手法は年々増加しており、近年のマルウェアは正規の証明書で署名されているものが徐々に一般的となっています。
本来のコードサイニングとは実行ファイルの開発元を証明することおよび、実行ファイルが改ざんされていないことを証明します。攻撃者がマルウェアにコードサイニングを実施する主な理由としては、まずユーザにファイルを信頼させるためです。また、多くのセキュリティ対策ソフトでは署名している実行ファイルを検査せず、振る舞いをチェックしない(ホワイトリスト扱いにしている)ものが多いためです。これはスキャンする際のホストOSの負荷を下げるために実装されている場合があります。
検証として複数のマルウェアに署名をつけた状態とつけていない状態でマルウェア対策ソフトを実行したところ、TrendMicroやKaspersky Labなどメジャーな製品でも一部検知できなくなることが確認されています。検証の結果、平均して2割、製品によっては8割ほど検出率が低下したそうです。
使用されている正規の証明書は正規の会社と結託したり、架空の会社をでっち上げて正規の手順で認証局から証明書を発行してもらう場合もありますが、企業などから盗み出されている場合もあります、そして盗まれた企業はその事実を知ることは難しいのが現状です。さらに攻撃者は複数の証明書でデジタル署名するなど、今まで以上に検出されない工夫を行ってきています。
証明書の管理を徹底するのはもちろんですが、デジタル署名されているから安心という認識は改めたほうが良さそうです。