catch-img

無線LAN・セキュリティ製品のAPI活用事例のご紹介

みなさんこんにちは。セールスエンジニアリング部の小堀と申します。
前回の記事では NOP DevNetの取り組みとして Cisco製品でのAPIを使ったツールのお試し開発を行ったことをご紹介しました。今回は Cisco製品"以外"のメーカでの APIを使ったツールのお試し開発についてご紹介いたします。

2020年8月下旬、 NOP DevNetDay2 と銘打って Cisco"以外"の製品担当技術者が集まり、
各チームが作成したAPIツールのお披露目が行われました。参加チームの作品を簡単にご紹介していきます。


IoTチーム

SCADAfense + PaloAlto Cortex XSOAR 連携動作メカニズム

製造業の現場ではIP以外のプロトコルで動作する機器がまだまだ主流ですが、SCADAfenseはそのような環境に特化した工場現場向けのセキュリティソリューションです。PLCなど制御システムのトラフィックを識別・可視化し、異常な動作が発生した場合に通知することができます。

PaloAlto Cortex XSOARはセキュリティインシデント管理のプラットフォームです。
インシデントを収集したうえで状況や攻撃意図を判断し、リスク要因の排除などの"行動"まで一貫して対処することができる製品です。PaloAlto自社製品だけでなく他社製品も取り込んでオーケストレーションすることを主眼に置いた製品になっています。

IoTチームが発表してくれたのはこれらの2つの製品を組み合わせて動作する仕組みで、
SCADAfense で検知したインシデントをAPIを使ってPaloAlto Cortex XSOARにアラートを通知し、
さらにCortex XSOARで作成したPlaybookに基づいてPaloAlto PAとAPIで連携し、動的にポリシーを作成して対象をブロックするというものでした。
厳密にいうとツールを作ったわけではありませんが、SCADAfense と PaloAlto Networksという2つのセキュリティベンダーの垣根を越えて動作する、まさにAPIのお手本のような使い方を紹介してくれました!





PaloAltoチーム

PaloAlto PA の APIを利用した 自動隔離ツール

PaloAlto社の次世代ファイアウォールPAシリーズはネットワーク業界では大メジャー製品ですね。
弊社でも長年取り扱いをしている製品です。

PAシリーズではActiveDirectoryなどの外部情報と連携してユーザを識別することができる User-ID という機能があります。ログ表示やポリシー作成の際に、IPアドレスではなくユーザ名で表示できるため、より分り易く、よりきめ細やかな設定が可能になります。
PaloAltoチームが作成したツールはこのUser-ID機能を使って脅威に感染してしまった端末を強制的に隔離するというものでした。仕組みは以下のようなものです。

  1. Python端末からPAに対して10秒間隔でログをポーリング
  2. 取得したThreatログの中から重要度MediumもしくはHighのものをピックアップし、送信元IPアドレスを把握
  3. 該当した送信元IPアドレスに"Black-Client"というUser-IDを強制付与
  4. あらかじめ作成しておいた"Black-Client = denyAll" というポリシールールにマッチさせ"隔離"

重要度に応じて隔離時間を変えるようにするなどを運用面まで考えたツールでした。
実は PAN-OS9.1から上記の機能とほぼ同じことができる Auto-Tagging という機能が追加実装されたらしいのですが、ツールを作成した担当者は「今まで座学だけだったPythonの勘所が身に付いた(気がする)」という感想でしたのでこの取り組みは無駄にはなっていないと思います。




Mistチーム

Mist AP 一括登録アプリケーション

MistはCloud管理の無線システムです。APを購入したとしても使えるようにするためにはクラウド管理画面上でAPの登録を行う必要があります。AP登録に必要なのがClaim CodeというAP背面に貼付されている15桁の英数字です。この登録作業、基本的にAP1台ずつ登録が必要ですが、やってみると意外と面倒です。1~2台であればそれほどでもありませんが、初期導入で大量のAPを登録するとなるとちょっと気が重くなります。

さらに、
・どのOrganizationのどのSiteで何台のAPを登録させるのか把握したい
・機器ごとのAP Nameを管理したい
・MACアドレスやClaimCodeなどは後々の管理のために残しておきたい
・APの現場管理者・連絡先も管理したい
など、実際に現場で導入する場面を考えると結局Excelファイルで情報を管理することが現実解になってしまいます。

せっかくExcelファイルでClaim CodeやAP Nameなどを管理するのであれば、その情報をMistクライドに読み込んで一気にAP登録したい!という発想から、ツールが誕生しました。
ツール作成にあたった担当者はAPIやPythonに関する経験はほぼなかったものの、手探りで試行錯誤の末ツールを完成させてくれました。「自分でつくったものが動くのを見るのはやっぱり楽しい」と苦労の中にもエンジニア魂を刺激するものがあったようです。




OPSWATチーム

①フォルダに置くだけで簡単スキャンツール

OPSWATは30種類以上のマルウェアスキャンを使ったファイル検査・脆弱性チェックを行う製品です。検査対象のファイルを手動で指定をする必要がありましたが、この自動化の処理ではAPIを利用して自動化を実現しています。

処理的には

  1. 対象のフォルダに未対処ファイルがあるか100msごとにファイルのタイムスタンプをチェックする
  2. 出力フォルダを作成する
  3. ファイルをダウンロードして出力フォルダに格納する
  4. ファイル名に「無害化済み」を示す文字列を入れる 

というアクションを重ねたものですが、とても汎用性の高い仕組みだと感じました。
さらに応用的な仕組みに組み込んだり、発展させることができそうです。




②ファイル無害化精度向上ツール


OPSWATはファイル検査・脆弱性チェックに加えて「ファイル無害化」を行うことができます。
ファイルに埋め込まれた不正コードを検知・除去して安全なファイルに変換します。
このファイルを無害化する処理前後で見た目が変わることがあります。たとえばパワーポイントに埋め込まれた画像が取り除かれてしまったり、スライドの背景色が微妙に変化してしまったり。

しかしながら「どのくらい違いが生じるか」を定量的に表現することが難しく、実際にお客様に見てもらい、見る人の感覚にゆだねるしかない状況でした。

そこで SSIMという画像評価の指標を使って 処理前・処理後の違いを数量的に表すというツールを
作成しました。このツールがあれば処理前と処理後でSSIM値の違いが何ポイントか、という数値的な基準をもたらすことができます。

例えば、導入前提案や導入後の評価において「処理前と処理後でほとんど違いがありません」としか言えなかったことが、「処理前と処理後でSSIMで平均99.6%の合致率です」と言えるようになるのは大きなインパクトがありますよね!




終わりに

今回の第2回 NOP DevNet Day2 の開催にあたっては、日ごろからAPI連携を使ってソリューションの実用化に向けて取り組んでいたチームもいれば、APIを使ったツール開発は初めてという者もいました。
特に初心者にとっては『大変だったけど自分で作ったものが実際に動くのはやはり面白い』という感想を持った者が大半だったようです。

Cisco製品もAPIを使った操作を大いにアピールしていますが、特にルータ・スイッチはいまだCLIが操作の大半を占めていると感じます。一方 今回ご紹介したようなベンダーは規模感ではCiscoに劣るものの、API実装に関しては引けを取らず便利な使い方を提供してくれています。
我々ネットワンパートナーズも引き続き各製品のより便利な使い方を追求してお客様に提供していきたいと思います。

小堀 泰樹(こぼり たいじゅ)

小堀 泰樹(こぼり たいじゅ)

セールスエンジニアリング部所属でアカウントSEを担当しています。2018年にNOPに加わりました。ネットワークエンジニア歴20年。