S1.1-13 では、IoT 製品のセキュリティ強化のため、不要なインタフェースの無効化と脆弱性検査の実施を要求しています。
これにより、外部からのサイバー攻撃を受けるリスクを低減できます。
JC-STAR★1 では、攻撃面を最小化するために、不要な TCP/UDP ポートを無効化することを要求されます。
IoT 機器の利用上必要なポートのみを開放し、不要なポートは閉じた状態にする必要があります。
15.1.1. ABOS がデフォルトで開放しているポート
標準状態の ABOS において、外部からの通信に対して開放しているポートは以下の通りです。
表15.1 ABOS のデフォルト開放ポート
ポート番号 | プロトコル | 使用目的 |
---|
58080 | TCP | ABOS Web |
5353 | UDP | avahi (mDNS) |
ABOS Web が不要な場合は、ABOS Web を無効化することで、ポート 58080 を閉じることができます。
ABOS Web を無効化する方法は、 「ABOS Web を無効化する」を参照してください。
avahi (mDNS) は、ローカルネットワーク内で Armadillo を検出するために使用されます。
開発完了後は使用しないので、avahi を無効化することを推奨します。
avahi を無効化するには、以下のコマンドを実行します。
|
OpenRC に avahi のサービスが登録されていることを確認します。
|
|
avahi のサービスが起動していることを確認します。
|
|
avahi のサービスを停止します。
|
|
サービスを管理している OpenRC から avahi のサービスの登録を解除します。
|
|
サービス設定ファイルの削除を永続化します。
|
15.1.2. 開発した IoT 製品でのポート管理
開発者が新たにポートを開放する際は、以下の点を確認してください。
-
ポート番号とプロトコルを明確にする
-
開放する理由と利用目的を明確にする
-
不要なポートは開放しない
IoT 機器が開放している TCP/UDPポートは、外部から機器に対して nmap というツールを使用することで確認できます。
ATDE ではデフォルトで nmap がインストールされていないため、以下のコマンドを実行してインストールすることで使用できます。
nmap コマンドではプロトコルに合わせて以下のコマンドでポートスキャンを行うことができます。
15.2. HTTP/HTTPS プロトコルの脆弱性テスト
IoT 機器に HTTP/HTTPS プロトコルを使用する設定や機能が実装されている場合、脆弱性テストを実施して特定の脆弱性が検知されないことを確認する必要があります。
標準状態の ABOS では、 ABOS Web にて HTTPS プロトコル、Armadillo Twin にて HTTP/HTTPS プロトコルを使用しています。
開発者がHTTP/HTTPS プロトコルを使用する設定や機能を追加した場合は、その追加した設定・機能に対しても脆弱性テストが必要です。
確認すべき項目は、チェックリストや評価ガイドを参照してください。
![[注記]](images/note.png) | 検証に使用できる脆弱性検査ツールの例 |
---|
ウェブアプリケーションに対して脆弱性の検査を行うツールは有償・無償ともに様々なものがあります。
その一例を示します。 -
OWASP ZAP
-
Burp Suite
-
Nessus
-
OpenVAS
|
IoT 機器が USB デバイスを使用する場合、利用しない USB デバイスクラスは無効化する必要があります。
ABOS は、 USB デバイス固有の情報をもとに、そのデバイスの接続を許可・拒否する USB 接続制御機能を搭載しています。
IoT 機器に接続してもいいと判断した USB デバイスのみ許可リストに入れ、それ以外の USB デバイスは接続を拒否します。
この機能を使用することで、意図しない不正な USB デバイスの接続を防止できます。
ABOS の USB 接続制御機能は、大きく分けて以下の 2 つの USB デバイスが持つ情報によって接続の許可・拒否設定を行うことができます。
-
USB デバイス固有の情報(ベンダー ID、プロダクト ID、シリアル番号など)
-
USB デバイスクラス(HID、Mass Storage など)
15.4.2. 標準状態の ABOS において接続を許可する USB デバイス
標準状態の ABOS では、開発者が開発を行うために最低限必要であろう USB デバイスのみ接続を許可しています。
具体的な標準状態で接続を許可している USB デバイスクラスは各製品マニュアルを参照してください。
15.4.3. ABOS Web を使用した USB 接続制御機能の設定確認
USB デバイスクラスの設定は、ABOS Web の「USB 接続制御」画面で確認・変更できます。
接続が許可されている USB デバイスの接続を拒否する手順は以下の通りです。
図15.6「許可済みの USB デバイスルールを選択」に示すように、許可済みの USB デバイスルールを選択した状態で "削除" ボタンを押すと、図15.7「許可ルールを削除する」に示す画面に遷移します。
確認画面が表示されます。
問題なければ改めて "削除" ボタンを押して許可ルールを削除してください。
USB デバイスの許可ルールが削除されると、そのルールに該当するデバイスの接続は永続的に拒否されます。
「接続済みの USB デバイス」画面では、「可否」が block に変更されます。
15.4.5. USB デバイスクラス単位での接続許可・拒否
図15.8「許可済みの USB デバイスクラス一覧」の「許可済みの USB デバイスクラス」では、デバイスクラス単位で接続設定を管理できます。
一覧には現在許可されている USB デバイスクラスが表示されます。
15.4.6. 特定の USB デバイスクラスの接続を許可する
IoT 機器が動作するために必要な USB デバイスクラスは接続を許可する必要があります。
特定の USB デバイスクラスの接続を許可する場合は、 ABOS Web の「USB 接続制御」画面の「許可済みの USB デバイスクラス」欄にて、 "追加" ボタンを押してください。
"追加" ボタンを押すと、図15.9「USB デバイスクラスの追加」に示す画面が表示されます。
追加可能な USB デバイスクラスを選択し、"追加" ボタンを押してください。
USB デバイスクラスを新たに追加する際は、以下を確認してください。
-
使用する USB デバイスクラスと利用目的を明確にする
-
不要なデバイスクラスは無効化する
-
追加したデバイスクラスを技術文書に記載する
15.4.7. 特定の USB デバイスクラスの接続を拒否する
IoT 機器が動作するために不要な USB デバイスクラスは接続を拒否する必要があります。
特定の USB デバイスクラスの接続を拒否する場合は、 ABOS Web の「USB 接続制御」画面の「許可済みの USB デバイスクラス」欄にて、 "削除" ボタンを押してください。
接続を拒否したいデバイスクラスを選択し、 "削除" ボタンを押すことでそのデバイスクラスの接続を拒否できます。
削除手順は図15.7「許可ルールを削除する」と同様です。
15.4.8. IoT 機器に必要な USB デバイスのみを許可する
上記で紹介した USB 接続制御機能を使用して、IoT 機器に必要な USB デバイスのみを許可し、その他の接続は拒否するように設定してください。
接続を許可した USB デバイスは、使用目的を明確にしてください。