この記事はisaaxアドベントカレンダー2018の15日目の記事です。

IoTでは様々な物がインターネットに繋がることで、生活が便利で豊かになるという可能性がある一方で、ネットに繋がった無数の端末は大規模なサイバー攻撃の道具として使われる危険性を秘めています。
実際に2016年9月には「Mirai」と呼ばれるマルウェアを利用した史上最大規模のDDoS攻撃が起きました。これはIPカメラなどネットに繋がった端末がウイルスに感染し、一斉に特定のドメインにリクエストを送ることで実行されました。
そういった自体を防止する為に、isaaxを用いた簡易的な端末のプロセス監視の仕組みを作ったので紹介します。

仕組みはシンプルでpsコマンドを用いたプロセスの監視を用います。

Raspberry Piにisaax経由でpsコマンドを動かす為のファイルをデプロイしてリモート端末のプロセス監視を実現します。
psコマンドの詳細についてはこちらをご確認下さい。

 

今回はPythonプログラムからUNIXコマンドを読み込んで結果を標準出力して、isaaxのコンソール画面で確認するという流れになります。
以下がpsauxer.pyのコードの内容です。


import datetime
import time
import subprocess
from time import sleep

cmd = ["ps", "aux"]

while True:
    dt_now = datetime.datetime.now()
    returncode = subprocess.call(cmd)
    print(dt_now)
    sleep(15)

コード内では念の為タイムスタンプも打刻しています。
以下がRaspberry Pi内部でisaaxが実行するファイルを司るisaax.jsonの内容です。


{
  "name": "python-app",
  "version": "Nothing test",
  "author": "Nanami Setoyama",
  "language":"python",
  "license": "",
  "scripts": {
     "start": "python3 -u psauxer.py"
    }
}

pythonの後に-uオプションををつけないとアンバッファーモードにならないので気をつけましょう。

結果は以下の様な形でコンソールで確認できます。
isaaxを用いることでリモート端末のプロセス稼働状況が把握できているという事が肝心です。

 

以上の様に簡易的に意図しないプロセスを監視する事ができます。

セキュリティという観点では”意図しないプロセス”がどれかを把握しておくという事も課題となりますね。

 

レポジトリの全容はこちらのGitHubで公開しておきます。


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *