赤汁
どこぞで話題のRedSealですが、社内の一部では赤汁と呼ばれています。アカシル、アカジルと読みます。垢汁ではありません。
で、このタイトルです。
当社にはグループ会社を含め、技術のエンティティというのがいくつかありますが、我らC&S技術統括部にもソフトウェア開発の機能はあります。
ウェブ・アプリケーションもいくつかやりましたし、デバイス・ドライバも開発しました。近年では、ぷらっとホームさんのIoT/M2Mゲートウェイ(OpenBlocks)を利用した開発も経験しましたし、最近では機械学習を利用した監視システムの提案活動もあったりします。
ということで、今日はRedSealのAPIを利用したデスクトップ・アプリケーションの話をします。
APIとは?・・・そして使い道
当社の取り扱い製品のほとんどがAPI(Application Programming Interface)を具備しています。私が入社したころはこのAPIの存在は禁忌されると言ってよいほど面倒くさいものだと扱われていたというのは内緒です。
このAPIとは簡単に言うとアプライアンス製品やプラットフォームの中で動くソフトウェアの機能や管理されているデータなどを外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約、仕組みのことです。
使い道としては製品間連携や自動化などの用途が考えられます。ひと昔前は、ベンダーもすべての機能を開発して、ワンストップだとか、ホールプロダクトを目指していましたが、最近はAPIエコシステムを推進して、製品間連携を勧めるというのが潮流です。
自動化・簡略化しようぜ...
まず、リッチなGUIにパスワード入れて、ログインして、画面遷移や検索条件の入力など、いくつかのステップを踏んでデータを表示させ、それをボタンを押下してダウンロードして、データを加工、整形してデータベースにローディングして、SQLクエリで集計して、CSVに吐き出し、それをExcelでまた加工して・・・こんなのバッチ処理一発でなんとかしたいと思いませんか?
ということで、部内の業務はなるべく自動化、簡略化して、時間をもっと有効に使うことを考えたほうがよいと思うのです。まあ、中には「自動化なんてトンデモナイ、心を込めてMicrosoft Wordで丁寧にドキュメントを作るべきだ」という化石クンもいるわけですが、我々は価値を売っているわけで、人工(にんく)を売っているわけではないのです。いいですね、化石クン。
Redseal(赤汁)ベストプラクティスチェック
どこぞで話題のRedSeal(二回目)ですが、機能がリッチで、非常に運用のハードルが高い製品です。また、全部は要らないから、この機能だけ使いたい、というお客様もいらっしゃると思いますが、機能のバラ売りのような製品体系にはなっていません。
例えば、ファイアウォールのルールのバリデーション(妥当性の確認)だけ実施したいとか、ベストプラクティスチェック(BPC:ネットワーク機器の設定がメーカー推奨やネットワークセキュリティの観点からのベストプラクティスに準拠しているか確認する)だけ実施したいというケースもあるわけです。
ちょっと宣伝しちゃいますけど、そういった場合、サービスとしてそれらの診断をご提供することも可能ですので、我々にご相談頂ければと思います。ええと、我々にご相談頂ければと思います(二回目)・・・と強調するのは我々ならばニーズを理解して正しく効用について説明できるからです。三回目はやめときます。
ハードニング(Hardning)という単語がありますが、これは文字どおりハード(Hard)にする、つまりは装置の脆弱性(ゼイジャクセイ)をあぶりだし、対処することにより、セキュリティを強化する、という意味です。
我らが垢汁もとい赤汁さんは、ネットワーク・デバイスの設定情報をシステムに取り込み、設定のミスなどがないか、設計上の盲点(侵入を許すなど)を検出する、定義した/されたポリシーにちゃんと則っているか、その他もろもろの機能を提供し、ネットワークのセキュリティ強度を維持して運用を続けていくことを支援します。
我々はいくつかのプロジェクトを経験してきましたが、個々のネットワーク・デバイスの設定ミスにより生まれる脆弱性(キジャクセイじゃないよ)というのは結構あり、しかもそれを人間の目や手作業でみつけるのは至難の業であると申し上げておきます。
最初にネットワークを構築した直後はよいかもしれませんが、ネットワークというものは日々の運用で設定が変更され、または装置が追加されていくことでしょう。都度、別の業者から装置を調達し、部分構築をすることもあるとは思いますが、さて正しい設定をして、セキュリティ観点で堅牢なネットワークを維持していくことはできるでしょうか。つまりはネットワークのセキュリティ強度は日々、下降していくのです。
ということで私は定期的な診断をすることをお勧めします。
Redseal(赤汁)BPC 自動化アプリ
今回紹介するのは、我々のインターナル・プロジェクトで開発した、RedSealのベストプラクティスチェックの自動化アプリケーションです。まあ、社内で紹介したりもしましたが、あんまり営業サンには響かないようで(悲劇)、全社をあげてのプロジェクトへの格上げは難しいですかね。まあ、まずは我々の道具のひとつとして有効活用していければな、と言ったところです。
いきなり、メニュー画面のスクリーンショットを貼ってしまいますが、こいつがあれば、RedSealのBPC(ベストプラクティスチェック)がボタン一発でできてしまいます。
※肉のカーテンについてはご容赦ください
※チラ裏:某テリーマンは一部から害虫扱いされています
とまあ、日本語化されたベストプラクティスチェックのレポートが簡単にアウトプットできるようになるわけです。もちろん、考察や提言なんてセクションは手入力することもありますし、新しいチェックルールが増えたり、対応機器が増えてプラグインが増えれば、翻訳したマスタをメンテナンスしなければなりません。そういう労力はかかるのですが、まあ、業務効率は向上するし、抜け漏れもなくなります。
また宣伝しちゃいますけど、MSSPさんには、是非、RedSealのサービスプロバイダライセンスをご購入いただいて、このツール(もっと良くします)をご利用になって、サービスメニューを拡大してみてはいかがでしょうか?(ま、いいけど)
RDD(Release Definition Document)抜粋
で、RDD(というよりHigh Level Design) をSlideshareにアップしました。
ちなみに英語なのは意味ないです。
そして開発
まず大変なのは、日本語非対応のRedSealだけにBPCの日本語訳をやらなければならなかったこと。PDFフォーマットの各種ドキュメントからデータをスクレイピングして、翻訳。数名の部長さんから新人さんまで有志がお手伝いしてくださったのですが(感謝)、表記ゆれやらなにやらのチェックが本当に苦行レベル。
RedSealのAPIの取り回しは「まあまあ」やりやすい。ただ、取得したデータはそのまま使わず、Transform(加工・整形)しています。いくつかメーカーサポートにリクエストをあげたいと思ってるけれど、対応してくれるかな。そこはわかりません。当社はいろんな製品を扱っていますが、質は様々で実装からAPIガイドまで反吐がでるようなモノもあり、正直触りたくもないやつもいます。そう考えると、デキは水準以上。
かなり凝った帳票やExcelへの出力があるから、選択したのはデスクトップ・アプリケーション。日本語化の問題もあるし、どうしても「日本的帳票」みたいな文化はありますからね。スクリーンショットにサインして終わり、とはいかない。
システムのアウトプットをわざわざExcelやPowerPointにきれいに整形するなんて日常よく見かける光景かと。なので、開発環境の選択の際はゴリゴリとトリッキーな処理が書けること、WindowsやOffice製品との親和性などを重視。
そして、ここで役に立ったのは「Windows Subsystem for Linux(WSL)」。
ご存知の方も多いとは思いますが、WSLはかなり便利。Windowsアプリから、Linuxコマンドでも各種スクリプトでも叩けますからね。WSLだけでも記事やスライドが書けそうなくらいノウハウは溜まりましたが、いい仕事します、これ。
例えば、入力値がIPv4アドレスかバリデートする際なんかLinux側で正規表現を使ってチェック、読み込むファイルがExcelのファイルであるか確認する場合はLinux側のfileコマンドを使ってしまえ、とか、古いアプリケーションログを削除するなら、Windows側からfindしてxargsしてrmしちゃう、なんてことも簡単です。
若干の注意が必要ですが、Windows/Linux間で相互のファイルの参照もできますし、両プラットフォームの美味しいとこどりができてしまいます。今回は前述の小技もそうなんですが、RedSealのAPIを叩いてデータを取得する部分をLinux側で処理しています。Linuxが得意なメンバーとWindowsが得意なメンバーの協業なんかにも有効ですね。
ちなみに我々はRedSeal以外の汁にも対応可能です!
とまあ、こんな感じではありますが、今回はここまでとします。やや長くなりましたが、読んで頂いてありがとうございました。ご興味のある方は・・・(略)。この記事をきっかけにお仕事の機会が生まれればなあ、なんて、淡い期待を持ちつつ、筆(キーボード)を置くことにいたしまーす。
- カテゴリ:
- 技術情報