本文の内容は、2021年12月28日に
あなたがここにいるということは、あなたのペットはいつも走り回って、あなたのかわいい家の中のものを破壊している可能性があります。ペットの悪行を止めることはできなくても、少なくとも悪行をしたときには警告してくれるスマートなプラグインを使って、Falcoでセキュリティを充実させる方法をご紹介します。
Falcoは、クラウド・ネイティブ・ランタイム・セキュリティ・プロジェクトとして知られています。しかし最近、Falcoはプラグイン、つまり外部のイベントソースを提供する共有ライブラリをサポートするようになりました。
これは何を意味するのでしょうか?基本的には、自分のニーズに合わせてFalcoをカスタマイズできるようになったということです。
例えば、スマートサーモスタットのバッテリー残量が少なくなったときや、誰かが夜11時以降にキッチンの照明をつけたときに警告するルールを持つ、IoTイベントの中心的存在としてのFalcoを想像することができます。
今日は、家中のウェブカメラからのビデオストリームをコンシュームして、かわいい侵入者を捕まえることが目標になるでしょう
これは、Falcoのランタイムセキュリティから、いわゆる物理的なセキュリティへのシフトです。つまり、Falcoはフルスタックのセキュリティソリューションを提供できるようになるのです
要件・必要なもの
このプラグインは、ビデオストリームを受信するためにOpenCVを使用し、TensorflowモデルをロードするためにDNN(Deep Neural Network)モジュールを使用します:http://download.tensorflow.org/models/object_blob/ssd_mobilenet_v1_coco_2017_11_17.tar.gz
https://gist.githubusercontent.com/dkurt/45118a9c57c38677b65d6953ae62924a/raw/b0edd9e8c992c25fe1c804e77b06d20a89064871/ssd_mobilenet_v1_coco_2017_11_17.pbtxt
さらに、Falcoのプラグインを書くための小さなSDKであるFalco plugins go sdkも当然使用します。
最後に、ビデオストリームのソースとしてウェブカメラを使用します。プラグインのソースコードは以下のサイトで見ることができます:
https://github.com/FedeDP/falco-home-security
順を追って説明しましょう。そして起動させます
あなたはきっと、どうやってこれを実行するか気になっているでしょう。まず、マスターから最新のFalcoを入手するか、Falco 0.31がリリースされるまで待ちます。プラグインサポートが導入されたのはごく最近なので、これは必須です。さらに、前述のTensorflowモデルのtarballを抽出する必要があります。これで、プラグインをビルドできるようになります。pluginフォルダに移動して、以下を発行します。
$ make libhomesecurity.so
プラグインを実行するには、まずFalcoの設定で以下のように有効化する必要があります: https://falco.org/blog/falco-plugins-early-access/#configuring-plugins-in-falco.
falco-home-securityのリポジトリには、すぐに使える設定とルールがいくつかあります。設定ファイルは、ウェブカムの代わりに、ソースとして小さなビデオ(主にYoutubeで見つかる)を使用します。
選択した設定の「videoSource」キーを必ず更新してください。これが今回使用したルールです:
- rule: Pet detected desc: We detected a pretty pet condition: video.entities[animal] > 0 output: "!!PET ALERT 😍!! -> source=%video.source, n_pets=%video.entities[animal]\n%evt.plugininfo" priority: Warning source: homesecurity
最後に、新しい設定とルールファイルを指して、例えばFalcoを実行することができます:
$ falco -c falco-home-security/confs/falco_pet_webcam.yaml -r falco-home-security/rules/pet_in_webcam.yaml
このプラグインには、オブジェクトのトラッキングを強化するためのパラメータが多数用意されています。さらに、GUIを表示するかどうかや、イベントが発生したときにスナップショットを保存するかどうかを指定することもできます。
FalcoプラグインIoTの動作
デモの時間です!
真面目な話として、このプラグインのセキュリティ上の意味を示す小さなデモを紹介します。ご覧のように、このプラグインは、おかしな点も重要な点も含めて、さまざまな方法でFalcoを強化することができます。
このプロジェクトは、Hackathon 2021 in Sysdigのおかげで実現しました。
Falco+カメラIoTの他の例
現在のプラグインの実装では、動物を区別していません。別の言い方をすれば、巨大な「動物」グループしかありません。cocoのデータセットは多くのカテゴリをサポートしているので、「猫」「犬」「牛」などの複数のカテゴリをフィルタリングすることで、簡単に例を拡張することができます。
サポートされているカテゴリーの全リストは、こちらをご覧ください:
https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/
まとめ
そんなに簡単だったの?そうです。プラグインをサポートしたFalcoは、クラウドはもちろん、最終的には物理的なインフラを保護する標準的な方法になることを目指しています。
また、FalcoとIoTについてはどうでしょうか?
例えば、家庭内のすべてのスマートセンサーから送られてくるIoTデータをFalcoを使って集約するなど、今回の例から、他の統合を想像するのはとても簡単です。
スマートセンサーがSDKを提供していれば、その周りにFalcoプラグインを作るのは非常に簡単です。次回は、Falcoの世界から新しい素晴らしい驚きをお届けします。
もっとFalcoのことを知りたい方は、こちらをご覧ください。
- まずはFalco.orgをご覧ください。
- GitHubでFalcoプロジェクトをチェックしてください。
- Falco コミュニティに参加する。
- Falco Slackでメンテナーと交流する。
- ツイッターで @falco_org をフォローする。