Cato Cloud の IPS を検証する
こんにちは。
株式会社フーバーブレイン SE の香取です。
本日は Cato Cloud の IPS 機能を試します。せっかくある機能なので、ちゃんと効いているのかな?を調査したいと思います。
WAN に IPS は必要なのか?
脆弱性を利用した不正アクセスはインターネットからの攻撃に限らず、侵入後の横展開にも用いられます。WAN を伝い、全拠点・モバイルユーザーにまで被害を及ぼす可能性があります。
この様な脅威に対し、ひとつの対策で万全とは言えません。パッチの適用やエンドポイントセキュリティとともに、ネットワークのセキュリティ対策を行い、多層防御を実現することが重要です。
Cato Cloud は SASE として、NSaaS(Network Security as a Service)の各種機能を含みます。今回は IPS の機能を確認します。
仮説と結果
先に結果を言います。
成功!!
Cato Cloud IPS で、スキャンを阻止できました。
ログにも記録されました。
検証の環境構築・作業が長くなるため、先に結果を言ってしまいました。「どの様な検証を行ったのか」については、この後に。
検証環境の構築
いつもの3分PoC 環境を少し改造して、この様な構成にしています。
victim として Metasploitable2 を使用します。既知の脆弱性がたくさん含まれている仮想マシンです。VMware イメージ(vmdk)ですが Hyper-V用(vhdx)に NHC で変換しました。Hyper-V で起動すると NIC を認識しないため、こんな時は一旦シャットダウンして「レガシーネットワークアダプタ」を追加です。うまく行きました。
しかし、そのままでは問題があります。OSが Ubuntu 8.04(2008年物!)と古く、Cato Client に対応していません。仮に Cato Cloud に接続できるとしても victim を(検証用ではありますが)WAN に…。心理的な抵抗も多少あります。
そうだ! TCP Proxy を使おう。
クラウドアクセラレーションのことを話すときに良く出てくる言葉ですね。今回は意味が違い、victim が LISTEN しているポートを vm02 で代わりに(vm02自体のポートであるかの様に)受ける形です。
厳密には「脆弱性診断の対象としては不適切」なのですが、今回の検証程度ならこれで十分です。
ちなみに、この TCP Proxy は socat + xinetd です。
下記の FTP 用と同じ形で、プロトコル毎のファイルを作成しました。
vm02:~$ cat /etc/xinet.d/victim-ftp
service ftp
{
port = 21
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/socat
server_args = stdin tcp-connect:victim:21
disable = no
}
詳細な構築方法を書くと記事が非常に長くなってしまいます。惜しみつつカットです。また別の機会にスライド等で共有いたします。
それでは、vm04 の GVM で vm02 をスキャンしてみましょう。
OK! 十分に脆弱化しています。
Cato Cloud の準備
準備はとてもシンプルです。
1. IPS 設定
2. Cato Client 同士が通信できる様にする。
3. Cato Cloud 接続
行うことはシンプルなのですが、肝心要の部分ですので管理ポータルの画面を用いた解説をいたします。
1. IPS 設定
画面上部のスイッチを ON にするだけです(IPS 機能はオプションです。PoC時、または IPS 機能を契約している場合に、本機能をご利用頂けます)。
Malicious File のアイコンは「Block」の意味、Traking はアラートメールの設定です。
中央に TLS Inspection というリンクがあります。HTTPS 等の暗号化された通信も検査する設定です。物理機器の場合はスループットが気になりますが「Cato Cloud は SASE であり、スループットは桁違い!」なので、ON にしておくことをおすすめします。
2. Cato Client 同士が通信できる様にする。
一番上にルールを追加しています。今回は検証のため、What列を「Any」にして「All VPN Users グループの端末同士は何の通信でも通る」という設定にしておきます。
この「Cato Client の同士の通信」は地味ですが、かなり便利な機能です。
例えば Web会議中に「ちょっと自分のローカル(WSL)で動かしている開発中のアプリにアクセスしてみてくれる?」なんて時に使えます。開発用サーバへのデプロイなど、ひと手間をかけずに済みます。
また、拠点と作業場所が離れているときに「SSH の踏み台サーバにグローバルIPアドレスを割り当てられる」とは限りません。
こんな時に、踏み台サーバを Cato Cloud に接続しておくと大変便利です。
3. Cato Cloud 接続状態の確認
CatoTester01 FuvaBrain
vm02(gvm: dist)
Ubuntu 18.04
10.41.14.104
TCP Proxy:オリジンは victim(Metasploitable2)
CatoTester02 FuvaBrain
vm04(gvm: src)
Kali Linux 2020.3
10.41.48.1
Debian用の Cato Client を使用して接続しました。
Cato Cloud に接続した状態でも vm02 の TCP Proxy が効いていることを確認します。
vm04:~$ telnet 10.41.14.104 23
Trying 10.41.14.104...
Connected to 10.41.14.104.
Escape character is '^]'.
_ _ _ _ _ _ ____
_ __ ___ ___| |_ __ _ ___ _ __ | | ___ (_) |_ __ _| |__ | | ___|___ \
| '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __/ _` | '_ \| |/ _ \ __) |
| | | | | | __/ || (_| \__ \ |_) | | (_) | | || (_| | |_) | | __// __/
|_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__\__,_|_.__/|_|\___|_____|
|_|
Warning: Never expose this VM to an untrusted network!
Contact: msfdev[at]metasploit.com
Login with msfadmin/msfadmin to get started
metasploitable login:
おお!バッチリ!!
スキャン実行
検証のクライマックスです!
皆様、すでに結果はご存じのはずですが、今しばらくお付き合いください。
実際にスキャンを開始すると、ずっと 1% から進みません。スキャンを停止し、Cato Cloud の管理ポータルで確認します。
大量にログが記録されていました。内1つを見てみると、この様に IPS でブロックされていることが確認できます。
IPS の話から逸れてしまいますが、Cato Cloud のログは管理ポータルから CSV としてエクスポートできます。また、ログ監視・管理を他のシステムで行う場合は Log Exporter という機能を使用します。Exporter は 30秒毎に新しいイベントを S3 バケットに送信します。
画面下の色が薄くて良く見えないボタンは「DOWNLOAD CLIENT SCRIPT」と「CHANGE ACCESS TOKEN」です。このスクリプトを使い、他のシステムは S3 バケットにあるログを取得できます。
結果を先に述べてしまいましたが、Cato Cloud の IPS は、しっかりと機能しているということが確認できました。
次に IPS について調べる際には「Windows の victim に対し、比較的新しい脆弱性を利用する」など、してみたいと思います。Cato Cloud に含まれる他のセキュリティ機能についても調査・検証を行っていきます。
今後とも、よろしくお願いいたします。