• 投稿日
  • 3G/LTEのSIMで固定IPを使わずIoTデバイスのセキュリティを確保する方法とは?

    こんにちは!主に関⻄地⽅を担当する営業の服部(masa)です。

    ソラコムへよくいただくお問い合わせの中に「SIMに固定のグローバルIPアドレスを割り当てられないか?」というものがあります。背景を伺うと、以下のような要件への解決策として検討されるようです。

    1. SIMを取り付けたIoTデバイスに対して、クラウド側からリモートアクセスやコマンド送信をするときに利用
    2. IoTデバイスから自社システムへの接続時における発信元アドレス特定に利用
    3. 現場の機器と事務所のパソコンといった機器間の相互通信用のために必要

    実は、いずれのケースにおいても SORACOMプラットフォームのサービスを活用頂くと、固定グローバルIPアドレスを使用せずに解決いただくことができます!

    このブログでは、IoTシステムの企画や設計をされている方向けに、IoTのシステムで固定グローバルIPアドレスを利用する場合の問題点の整理と、SORACOMサービスを利用した解決方法をご紹介します。

    固定のグローバルIPが求められるケースとその問題点

    IoTで双方向の通信が要件である場合の一般的なアプローチ

    IoTのアーキテクチャを検討する際、最初に考慮すべき要素の1つがデバイスとクラウドの間で通信、即ちデータがどのようにやりとりされるかになります。ほとんどのケースで、デバイスからクラウドへ向けてセンサーデーターや位置情報などを含む上り方向のデータを送りますが、一方で多くのプロジェクトでは、クラウドからデバイスへ向けても下り方向でデータを送り返す必要が生じます。例えば、コマンドによる指示やパース(解析)されたデータの返送、あるいはリモート保守などが考えられます。こうした双方向通信の要件には、2つの一般的なアプローチがあります:

    • ポーリングベースのアプローチにおいては、デバイスはまずクラウド上のサーバに、HTTP のようなプロトコルを使用してリクエストを送信することでデータ送信をします。サーバがデータを受信すると、データが受信されたことを確認するためのレスポンスをデバイスに返します。このリクエスト・レスポンス・アーキテクチャでは、サーバはシンプルにレスポンスに便乗する形でデバイスにデータを送信することができます。(ピギーバックなどと呼ばれることがあります) この方法はシンプルではありますが、クラウドからデバイスへの下り方向のデータは、デバイスがリクエストを開始する際にしか下り方向のデータ送信ができないため、デバイスは通常、新しいデータがあるかどうかを定期的にサーバに確認する必要があります。
    • ソケットベースのアプローチでは、デバイスはサーバとの継続的な接続を確立します。MQTT のようなパブリッシュ – サブスクライブ プロトコルを使用する場合、これによりデバイスはお互いに独立して、ポーリングを必要とせずにサーバへのデータの送信とサーバからのデータの受信の両方を行うことができます。

    これらのアプローチはどちらも多くの双方向 IoT アプリケーションに適していますが、クラウドからデバイスにデータを送信する前に、デバイスが接続を開始する必要があります。これは、クラウドからデバイスへのデータ送信頻度が低すぎてポーリングやソケットの維持をできない場合や、ハードウェアが適切なプロトコルをサポートしていない場合、あるいはアプリケーションが別のもの( SSHのようなリモートアクセスなど)を必要とする場合に問題となることがあります。

    このような状況では、固定グローバルIPアドレスと組み合わせたサービスベースのアプローチを使用するのが一般的です。デバイスに固定グローバルIPアドレスを割り当てることで、サーバはデバイスが接続を開始するのを待つことなく、デバイス上で実行されているサービス(Web管理画面やAPI、SSHなど)に直接アクセスすることができます。トレードオフとしては、そのIPアドレスが第三者も含めて公開されることであり、デバイスのセキュリティやデータ保護に関する懸念が生じます。

    このブログ記事では、固定グローバルIPアドレスの必要性をいかに排除してより安全な双方向通信のアーキテクチャを構築するかを説明し、インターネットへのアクセスは代替案となるようなIPベースの通信方法について紹介します。

    このブログ記事では、IPベースの通信について見ていき、固定グローバルIPアドレスの必要性を排除して、より安全な双方向性アーキテクチャをどのように構築するかを考えていきます。

    それでは始めましょう!

    双方向通信要件に対する、固定グローバルIPアドレスでのアプローチ

    従来、クラウドなどのサーバーから携帯電話ネットワークを介してデバイスにデータを送信する場合、携帯電話ネットワーク・プロバイダに対して、SIMカードにグローバルで一意な固定グローバルIPアドレスを割り当てるよう依頼することが必要でした。これは、クラウドサーバーからデバイスへの接続がパブリックなインターネットを経由することを意味するため、暗号化は必須の要件であり、なおかつアーキテクチャとハードウェアの設計の両方でセキュアな通信となるよう考慮する必要があります。

    デバイスのIPアドレスは公開されているため、パスワードのローテーション、使用していないサービスの無効化、着信接続のホワイトリスト化など、攻撃者からデバイスを守るための対策も考慮する必要があります。加えて、このアプローチではサーバ自体も公開されている必要があるため、サーバを保護する上でデバイス同様の懸念があります。以下の図では、携帯電話ネットワークを介した 従来のIP ベースのデザインパターンがどのようなものであるかを示しています。

    このアーキテクチャは公共のインターネットを横断するため、転送中や保管時のデータが暗号化されていることを確認し、攻撃からエンドポイントを保護するように注意する必要があります。固定グローバルIPアドレスは、インターネットに面しており 24時間365日アクセス可能であるためリスクがあります。悪意のある活動を防ぐためにデバイスを強化するためには、継続的な運用努力が必要です。セキュリティ上の問題に加えて、従来より通信事業者から固定グローバルIPアドレスを割り当てされるためには事務手続きに時間がかかり、さらにコストのかかるコミットメントや契約が必要になることも少なくありません。

    SORACOMで実現する、デバイスとクラウドをプライベート接続するネットワークの構築

    ではまず最初に、悪意のある攻撃者の最も大きな攻撃手段を排除してしまう、デバイスとクラウド間のプライベートネットワークの構築方法を見てみましょう。

    デバイスとバックエンドの間にプライベートネットワークを構築するには、3つの主要なSORACOM ネットワークサービスが使用できます。それぞれについて簡単に見ていきましょう。

    SORACOM Canal

    バックエンドサービスがAmazon Web Services (AWS) 内でホストされている場合、SORACOM Canalを使用して、デバイスを格納しているSORACOM Virtual Private Gateway(VPG)とバックエンドサービスを格納しているAWS Virtual Private Cloud(VPC)との間でVPCピアリング接続を作成することができます。VPCピアリングの他に、AWS トランジットゲートウェイもサポートしており、さらに柔軟性を高めることができます。

    SORACOM Door

    バックエンドサービスが AWS 以外のクラウドやデータセンターにある場合、SORACOM Door を使用してソラコムの VPG とバックエンドネットワーク間の IPSec サイト間 VPN を作成することができます。ソラコムが VPN 接続を処理するため、デバイスは VPN クライアントソフトウェアを管理する必要がありません。

    SORACOM Direct

    SORACOM Direct は AWS Direct Connect を利用して、データセンターに専用の物理的な専用回線を接続します。

    プライベート接続で双方向通信ネットワークを実現する SORACOM Gate

    ここまでの説明で携帯電話ネットワークでプライベートネットワークを構築できるようになりました。今度はコマンドの送信やリモート保守時に必要な、クラウド側からデバイスにパケットを送るために必要なものを見てみましょう。クラウドからデバイスへの通信を確立するために、SORACOM Gate を使用します。

    SORACOM Gate は VXLAN を使用して、ソラコムの VPG に存在するゲート・ピア (Gate Peer) とクラウドに作成したGate Peer を接続します。 これらの Gate Peer は、2 つの環境間でトラフィックを送受信する役割を果たします。 VPG を作成すると、ソラコム側では 2 つのGate Peer が自動的に設定されますが、バックエンドで対応する Gate Peer をユーザーが設定する必要があります。 これは通常クラウド上で稼働している Linux サーバーで、特定のトラフィックルールを必要とし、データがSORACOM VPGの対応する Gate Peer にルーティングされていることを保証します。 Gate Peer の設定についての詳細はこちらをご覧ください。 これらが完了すると、バックエンドのサーバー側からSORACOM VPG 内のデバイスに割り当てられたプライベート IP アドレスに直接データを送信することができます。

    次のステップ

    SORACOM VPG を設定することで、時間的な制約の多いユースケースではプライベートNTPエンドポイントを使用したり、パブリックインターネットへのアクセスが必要な場合には、デバイスが到達できるIPアドレスのホワイトリストやブラックリストを保持するためのアウトバウンドルーティングフィルタを作成するなど、追加のネットワーク機能を有効にすることができます。株式会社IHI様のようなソラコムのお客様は、データセンター内から遠隔制御修正するためにSORACOM Gateを使用しています。IHI様の導入事例でお客様のアーキテクチャをチェックしてみてください。

    また、追加のネットワーク機能を必要とせずにオンデマンドで安全なリモートデバイスアクセスを実装したい場合は、SORACOM Napterを使用してデバイスへの一時的なアクセスを確立することができます。
    こちらの方法についてはSORACOMユーザーサイト内の SORACOMをリモートアクセスに活用するアーキテクチャー例 をご覧ください。


    いかがでしたでしょうか?

    本記事は、グローバルメンバーのソリューションアーキテクト Roy が 2020年8月27日に書いた英文のブログ記事 “Reduce Your IoT Threat Surface by Eliminating Public IPs” を翻訳したものとしてご紹介しました。

    SORACOM Canal や SORACOM Doorといったプライベート接続を構成する際に登場したネットワークサービス SORACOM Virtual Private Gateway(VPG)を利用することで、固定グローバルIPアドレスが必要だと思われがちなケースにおいても、固定グローバルIPアドレスを利用せずにセキュアなIoTネットワークを構築いただくことができます。

    より詳細な構成をお探しのエンジニア方は、エンジニア向けカンファレンス「SORACOM Technology Camp」で発表された「デバイス、クラウドの双方向通信デザインパターンと実践」も合わせてご確認ください。

    ご不明点はお気兼ねなくこちらまでご相談ください、お待ちしております!

    ― ソラコム Roy / 服部(masa)