目次
IchigoJamをIoTデバイスとして使用する時の簡易セキュリティ対策
IchigoJamに無線LANモジュールを接続してネットワークに接続するとセキュリティ上の危険性が考えられます。ここでは、その簡易的な対策方法について説明します。
BASICはインターネットに対して脆弱
IchigoJam BASICはネットワークに接続しないことを前提に設計されました。このため、機能拡張を行ってインターネットに接続した場合、インターネットの脅威に関して極めて脆弱です。
とくにESPモジュールを接続したIchigoJamは、比較的容易に外部からBASICコマンドが実行される対象となる場合があります。実行中のプログラムは「ESC」コードひとつで停止させることが出来、その後は外部から自由にプログラムを実行することが可能です。さらに、IchigoJamが悪意ある者に乗っ取られると、同じLANに接続されたパソコン内にウィルスを送り込んだり、情報を盗み取ることも容易です。現時点でIchigoJamを攻撃対象に選ぶハッカーの存在は無いと思いますがシステム構成上、極めて容易に攻撃・ハッキング可能であることを認識しておきましょう。
いかなる被害を被った場合であっても、当方は一切の責任を負いません。
とくにESPモジュールを接続したIchigoJamは、比較的容易に外部からBASICコマンドが実行される対象となる場合があります。実行中のプログラムは「ESC」コードひとつで停止させることが出来、その後は外部から自由にプログラムを実行することが可能です。さらに、IchigoJamが悪意ある者に乗っ取られると、同じLANに接続されたパソコン内にウィルスを送り込んだり、情報を盗み取ることも容易です。現時点でIchigoJamを攻撃対象に選ぶハッカーの存在は無いと思いますがシステム構成上、極めて容易に攻撃・ハッキング可能であることを認識しておきましょう。
いかなる被害を被った場合であっても、当方は一切の責任を負いません。
ボクにもわかる
IchigoJam用サンプルプログラム
Espressif ESP8266 ESP-WROOM-02
無線LAN ワイヤレス通信実験
https://bokunimo.net/ichigojam/esp.html
IchigoJam用サンプルプログラム
Espressif ESP8266 ESP-WROOM-02
無線LAN ワイヤレス通信実験
https://bokunimo.net/ichigojam/esp.html
今でも出来る3つの対策
対策1.電源を切っておく。万が一、乗っ取られたら、すぐに電源を切る
第一の対策として、実験が終わったら必ず電源を切っておきましょう。この対策はネットワークの仕組みに詳しくなくても実施可能です。しかし、実験中は侵入される懸念があります。万が一、乗っ取られたら、すぐに電源を切りましょう。
対策2. UARTからのESC無効モードと無限ループ実行
IchigoJam BASICのバージョン1.1以降にESC無効モードが搭載される予定です(Ver 1.1β14より実装)。
この機能にはネットワークに接続したIchigoJamのセキュリティを高める効果があります。IoTデバイスとして使用する場合に、設定しておくと良いでしょう。
ESC無効モードに設定しておくと、プログラムが動作している限りは外部からIchigoJamに侵入しにくくなります。但し、何らかの方法でエラーを発生させて停止させたり、END命令や行番号末に到達してしまうと、BASICコマンドが実行できるようになってしまうので、無限に動作し続けるようなプログラムを実行しておく必要があります。
使い方は下記などを参照ください。
この機能にはネットワークに接続したIchigoJamのセキュリティを高める効果があります。IoTデバイスとして使用する場合に、設定しておくと良いでしょう。
ESC無効モードに設定しておくと、プログラムが動作している限りは外部からIchigoJamに侵入しにくくなります。但し、何らかの方法でエラーを発生させて停止させたり、END命令や行番号末に到達してしまうと、BASICコマンドが実行できるようになってしまうので、無限に動作し続けるようなプログラムを実行しておく必要があります。
使い方は下記などを参照ください。
IchigoJamのUARTシリアル制御に関する情報
https://github.com/bokunimowakaru/IchigoJam/blob/master/UART_ControlCode.txt
対策3. ファイヤーウォールとVPN
インターネットに接続するためのゲートウェイやルーター、パソコンなどにファイヤーウォール機能が搭載されています。パソコンに関しては適切に設定している人が多いと思いますが、これは設定したパソコンへの保護が主体です。IchigoJamなどのIoTデバイスに対しては殆ど効きません(パソコンを踏み台としたアクセスはやりにくくなるが、直接、侵入される懸念に対しては効果なし)。
そこでゲートウェイやルーターの設定についても見直し、とくにIchigoJamに接続した無線LANモジュールに対しては外部からのパケットを通さないようにしておきます。ところが、実際にはその逆を行っている人も多いでしょう。IoTデバイスこそ外出先からアクセスしたいからです。そのような場合は、VPNを使用します。性能の高いゲートウェイやルーターに搭載されています。また、パソコンやスマートフォンにもVPN接続用のクライアント機能が備わっています。
家庭内のネットワークを適切に分離しつつ、自分や特定の機器以外からのアクセスだけを高度なセキュリティを用いて通過させることで、安全に外部からの接続が可能になるでしょう。
具体的な設定方法については若干のネットワークの知識が必要で、またネットワーク機器の設定も少し難しいかもしれません。しかし、どれもIoTデバイスを扱ううえで必須の知識ですので、学習しておいて無駄にはならないでしょう。
なお、残念ながら、ネットワークの知識や具体的な設定方法に関す情報については、当方のサイトであまり扱っておりませんでした。少しづつ、充実させてゆこうと思います。
by ボクにもわかるIchigoJamマイコンボード
追記:受信・送信するだけなら「より安全」
IchigoJamの開発者である福野さんのブログに「表示するだけならIchigoJamのTXDにつながないというセキュリティ対策」という記事がアップされましたので、この内容を追記します(2014/11/23)。
IchigoJamのTXD、ESPモジュールのRXDの配線を行わないことで、IchigoJamからの送信を行わないという対策です。侵入者の立場になれば、応答がない対象に攻撃を行うことは難しくなりますので、有効なセキュリティ対策の一つだと思います。
あるいはIchigoJamのRXDの配線を外し、IchigoJamからの送信だけを行うと、より安全です。IchigoJamを搭載した温度センサや人感センサの値だけをネットワークに送出するような使い方です。ただし、IchigoJamが通信モジュールのセッション状態やエラーなどを確認することが出来なくなるので、安定動作させることが難しくなるかもしれません。
以上、目的に合わせて片方向の通信にするというセキュリティ対策でした。
あるいはIchigoJamのRXDの配線を外し、IchigoJamからの送信だけを行うと、より安全です。IchigoJamを搭載した温度センサや人感センサの値だけをネットワークに送出するような使い方です。ただし、IchigoJamが通信モジュールのセッション状態やエラーなどを確認することが出来なくなるので、安定動作させることが難しくなるかもしれません。
以上、目的に合わせて片方向の通信にするというセキュリティ対策でした。
参考にしたブログ:
福野泰介の一日一創
BASICでつくるIoT、PM2.5表示デバイスをIchigoJamとESP-WROOM-02で試作