S1.1-13

S1.1-13 では、IoT 製品のセキュリティ強化のため、不要なインタフェースの無効化と脆弱性検査の実施を要求しています。 これにより、外部からのサイバー攻撃を受けるリスクを低減できます。

以下の 2 つの基準を満たす必要があります。

  • 不要かつ攻撃リスクがあるインタフェース(TCP/UDP ポート、Bluetooth、USB)の無効化
  • 脆弱性スキャンツールによる既知の脆弱性検査の実施(攻撃に悪用される可能性がある脆弱性が検出されないこと)

15.1. TCP/UDP ポートの確認と管理

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 を無効化するには、以下のコマンドを実行します。

[armadillo ~]# rc-update | grep avahi-daemon 1
         avahi-daemon |      default
[armadillo ~]# rc-service avahi-daemon status 2
 * status: started
[armadillo ~]# rc-service avahi-daemon stop 3
avahi-daemon             | * Stopping avahi-daemon ... [ ok ]
[armadillo ~]# rc-update del avahi-daemon 4
 * service avahi-daemon deleted from runlevel default
[armadillo ~]# persist_file -d /etc/runlevels/default/avahi-daemon 5

図15.1 avahi-daemon を停止する


1

OpenRC に avahi のサービスが登録されていることを確認します。

2

avahi のサービスが起動していることを確認します。

3

avahi のサービスを停止します。

4

サービスを管理している OpenRC から avahi のサービスの登録を解除します。

5

サービス設定ファイルの削除を永続化します。

15.1.2. 開発した IoT 製品でのポート管理

開発者が新たにポートを開放する際は、以下の点を確認してください。

  • ポート番号とプロトコルを明確にする
  • 開放する理由と利用目的を明確にする
  • 不要なポートは開放しない

15.1.3. nmap を使用したポート確認

IoT 機器が開放している TCP/UDPポートは、外部から機器に対して nmap というツールを使用することで確認できます。

ATDE ではデフォルトで nmap がインストールされていないため、以下のコマンドを実行してインストールすることで使用できます。

[ATDE ~]$ sudo apt install nmap

図15.2 nmap のインストール


nmap コマンドではプロトコルに合わせて以下のコマンドでポートスキャンを行うことができます。

[ATDE ~]$ nmap -sT <Armadillo の IP アドレス>

図15.3 TCP ポートの確認


[ATDE ~]$ nmap -sU --min-rate 1000 <Armadillo の IP アドレス>

図15.4 UDP ポートの確認


15.2. HTTP/HTTPS プロトコルの脆弱性テスト

IoT 機器に HTTP/HTTPS プロトコルを使用する設定や機能が実装されている場合、脆弱性テストを実施して特定の脆弱性が検知されないことを確認する必要があります。

標準状態の ABOS では、 ABOS Web にて HTTPS プロトコル、Armadillo Twin にて HTTP/HTTPS プロトコルを使用しています。

開発者がHTTP/HTTPS プロトコルを使用する設定や機能を追加した場合は、その追加した設定・機能に対しても脆弱性テストが必要です。 確認すべき項目は、チェックリストや評価ガイドを参照してください。

[注記]検証に使用できる脆弱性検査ツールの例

ウェブアプリケーションに対して脆弱性の検査を行うツールは有償・無償ともに様々なものがあります。 その一例を示します。

  • OWASP ZAP
  • Burp Suite
  • Nessus
  • OpenVAS

15.3. Bluetooth プロファイルの確認と管理

IoT 機器が、 Bluetooth 機能を使用する場合は、以下を確認してください。

  • 使用する Bluetooth プロファイルと利用目的を明確にする
  • 不要なプロファイルは無効化または削除する
  • 廃止された Bluetooth プロファイルが使用できないことを確認する

15.3.1. ABOS における Bluetooth プロファイル

標準状態の ABOS には、 Bluetooth プロファイルは含まれていません。

15.4. USB デバイスクラスの確認と管理

IoT 機器が USB デバイスを使用する場合、利用しない USB デバイスクラスは無効化する必要があります。

15.4.1. 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 接続制御」画面で確認・変更できます。

images/abos-images/abos-web/usb-filter-setting.png

図15.5 USB 接続制御画面


15.4.4. USB デバイスの接続拒否手順

接続が許可されている USB デバイスの接続を拒否する手順は以下の通りです。

images/abos-images/abos-web/usb-filter-setting-allowed-all-device.png

図15.6 許可済みの USB デバイスルールを選択


図15.6「許可済みの USB デバイスルールを選択」に示すように、許可済みの USB デバイスルールを選択した状態で "削除" ボタンを押すと、図15.7「許可ルールを削除する」に示す画面に遷移します。

images/abos-images/abos-web/usb-filter-setting-remove-device.png

図15.7 許可ルールを削除する


確認画面が表示されます。 問題なければ改めて "削除" ボタンを押して許可ルールを削除してください。

USB デバイスの許可ルールが削除されると、そのルールに該当するデバイスの接続は永続的に拒否されます。 「接続済みの USB デバイス」画面では、「可否」が block に変更されます。

15.4.5. USB デバイスクラス単位での接続許可・拒否

図15.8「許可済みの USB デバイスクラス一覧」の「許可済みの USB デバイスクラス」では、デバイスクラス単位で接続設定を管理できます。

images/abos-images/abos-web/usb-filter-setting-allowed-class.png

図15.8 許可済みの USB デバイスクラス一覧


一覧には現在許可されている USB デバイスクラスが表示されます。

15.4.6. 特定の USB デバイスクラスの接続を許可する

IoT 機器が動作するために必要な USB デバイスクラスは接続を許可する必要があります。 特定の USB デバイスクラスの接続を許可する場合は、 ABOS Web の「USB 接続制御」画面の「許可済みの USB デバイスクラス」欄にて、 "追加" ボタンを押してください。

"追加" ボタンを押すと、図15.9「USB デバイスクラスの追加」に示す画面が表示されます。 追加可能な USB デバイスクラスを選択し、"追加" ボタンを押してください。

images/abos-images/abos-web/usb-filter-setting-allow-class.png

図15.9 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 デバイスは、使用目的を明確にしてください。

15.5. 技術文書への記載要件

S1.1-13 の要件を満たすため、技術文書に各評価項目を満たすような内容を明示してください。 評価項目の詳細はチェックリストや評価ガイドを参照してください。