多くのメーカー様において、IoT(Internet of Things、モノのインターネット)の導入が検討されています。
特に、生産ラインにセンサーやWEBカメラなどのIoTデバイスを導入する工場のIoT化は、スマート工場の実現に向けた重要なステップになるため、最近、特に注目されています。この工場のIoT化は、IoTの可能性を十分に引き出すことを考えると、オンプレミス環境での実現には限界があるため、クラウドを利用した実現方法が現実的です。しかし、クラウドを利用するためには、工場のネットワークをインターネットに接続する必要があり、その実現にあたっては、どうしてもセキュリティへの懸念が拭えません。
また、セキュリティへの懸念は、外部からの攻撃によるものだけではありません。一般的に、センサーやWEBカメラなどのIoTデバイスによって収集したデータは、工場ネットワークに設置された通信機器を使用して送受信します。この工場ネットワークに設置されている通信機器には、無線LANを含むことも多く、十分なセキュリティ対策を実施しておかないと、工場のネットワーク内部に直接侵入されてしまう危険性があります。
本記事では、工場のIoT化に不可欠なセキュリティ対策について、「どのような危険があるか?」を認識いただいて、「IoTシステムを構築する際の考え方」を説明し、「最低限、どのような対策を実施しておく必要があるのか」を理解いただけるように、話を進めて行きます。セキュリティ対策は、やりはじめたらきりがありません。最後は、発生するリスクと発生した場合の影響度及び対策に要するコストのトレードオフで、対策する範囲を決めることになります。なお、本記事はセキュリティ対策の専門記事ではありませんので、もっと対策の詳細を知りたい場合は、専門書やその他のWEB記事を読んで頂くことをお勧めします。
工場のIoT化に潜むリスク
工場のネットワークの安定的な運用は、生産ラインを安定稼働させるために不可欠です。ここでは、クラウドサービスを利用した工場のIoT化を推進する際に、気を付けなければならないセキュリティリスクを列挙し、それらリスクに対して有効な対策について説明します。
工場IoTのセキュリティインシデント
工場のIoT化を推進するにあたって、セキュリティの視点で大切なことは「情報を守ること」と「制御システムを守ること」です。工場のIoT化で収集・保存するデータは、製造条件そのものであることが多く、重要な機密情報です。また、制御システムは生産ラインをコントロールする重要な機能であり、制御システムがダウンすると生産が停止してしまうため、外部の攻撃から守る必要があります。そこで、まずは「情報漏洩」と「外部攻撃」のこの2つの視点でのセキュリティリスクについて見ていきます。
データを盗み見られる
工場で収集したIoTデータは、機器から機器へ順繰りに送信されていきます。その機器から機器へ送信中のIoTデータを傍受することは可能です。特に、無線LANは、セキュリティ対策が甘いと、LANケーブルを接続することなく工場ネットワークに接続して、データを盗み見ることができてしまいます。
なりすましなどの不正アクセス
未使用のアカウントや長時間パスワードが未変更のアカウントがあると、そのアカウントを利用して他人になりすまして工場ネットワークに不正アクセスすることができます。退職者や契約を終了したパートナー社員のアカウントは、すみやかに削除するかロックアウトするなどの適切な管理が必要です。一度、ネットワークにログインされてしまうと、(たとえ、それが不正な手段を使ってのログインであっても)通常のログイン認証されたIDと見分けがつかず、さまざまな不正アクセスができてしまいます。
外部から攻撃を受ける/外部からの侵入を許す
外部からのDoS/DDoS攻撃(DoS攻撃とは、サーバやWebサイトに対してデータを大量に送信してダウンさせる攻撃であり、DDoS攻撃は、それを複数の端末から一斉に実行して攻撃の威力を大きくするもの)などによってサーバーや機器をダウンさせます。工場のネットワークの出口にあたるインターネット・ルータや、クラウドの入口にあたるインターネット・ゲートウェイ、この2つが真っ先に攻撃を受ける箇所になります。
トロイの木馬/コンピュータウィルス
いまさら説明の必要もないほどあたりまえですが、工場のネットワークにノートパソコンなどの機器を接続したり、エッジコンピュータに可搬性記憶装置(USBメモリ、ポータブルHDDなど)を使用することによって感染し、機器やサーバーを乗っ取られ、外部から自由に操作されてしまうリスクがあります。
なお、以上のようなソフトウェア的なセキュリティインシデント以外にも、IoT機器そのものを盗まれてしまわないようにハードウェア的な対策も必要であることを知っておいてください。IoT機器が盗難されると、IoT機器に埋め込まれたセキュリティ情報が外部に漏れることを意味します。
工場IoTの狙われやすい箇所
工場IoTに潜むリスクが分かりましたので、それらのリスクへの対策について考える必要があります。しかし、その前に、工場IoTにおいて狙われやすい箇所と受けやすい攻撃を理解しておくことは大切です。狙われやすい箇所をきちんと把握しておくことによって、効果的でコスト面で無駄のない対策をおこなうことができるからです。
なお、本記事では、用語を次のように定義して使用しますので、ご留意ください。
エッジデバイス
工場ネットワークに設置される機器類すべてを含みます。
例えば、センサーやWEBカメラ、スイッチングHUBやルータなどの通信機器、ノートパソコンやタブレットなどのコンピュータ、それらを総称してエッジデバイスを呼びます。
エッジサーバ
工場ネットワークに接続しているサーバーを指します。
本来はエッジデバイスに含まれますが、本記事では、工場IoTにおける特別な役割を担うという意味で、エッジデバイスとは区別してエッジサーバと呼びます。
図1. 工場IoTに潜むセキュリティリスク
ネットワークの境界
工場IoTはさまざまなデバイスやシステムを、ネットワークを介して相互に繋げて構成するため、システムやネットワークの境界が多く存在し、その境界がもっとも狙われやすいことを知っておいてください。外部からの攻撃を受けても、不正侵入を許さないようにしっかりと対策することが必要です。
工場ネットワーク
必ず守らなければならない最も重要な部分です。まず、多くの人やデバイスがネットワークにアクセスすることができるため、その中に混じって本来はアクセスしてはいけないユーザーによる不正アクセスの可能性があります。外部からの不正侵入を許したり、工場ネットワークに接続した端末を通じてマルウェアに感染するリスクがあります。また、工場ネットワークで使用するアプリケーションや管理コンソールは、ユーザーと工場ネットワークとの境界にあたり、狙われやすいといえます。
インターネット
工場IoTにおいては、工場ネットワークをインターネットを介してクラウドに接続します。このことは、工場からクラウドに送信されるデータは、必ず、インターネットを通ることを意味します。インターネットはパブリックネットワークであるため、インターネットを通るデータは、悪意のある第三者によって盗み見られる可能性があり、データは必ず暗号化(※)が必要です。
※HTTPではなくHTTPSを使用する、MQTTではなくMQTTSを使用する
クラウドネットワーク
クラウドサービスもインターネットに接続されていますので、外部から攻撃を受ける危険性があります。また、外部からの攻撃などによってトロイの木馬やコンピュータウィルスに感染することもありえます。一方で、工場のネットワークとは異なり、クラウドサービスに直接アクセスするユーザーはいませんので(そのように工場IoTを構築する必要があります)、悪意のある第三者による不正アクセスの可能性は低いと言えます。
セキュリティリスクに対する対策
工場IoTの、どこに、どのような、セキュリティリスクがあるのかが分かりました。では、それぞれのセキュリティリスクに対して、どのような対策を実施すれば良いのでしょうか。セキュリティリスクに対する対策には、大きく分けて3種類あります。
・外部からの攻撃を受けにくい構成にする
・セキュリティリスクに対してガードを固める
・日常からセキュリティ管理をきちんとする
一つ目は工場IoTの構成及びアーキテクチャと一体で検討すべき対策であり、2つ目は一般的なネットワーク及びアプリケーションのセキュリティ対策で、3つ目は実施したセキュリティ対策の効果を最大化するための運用時の要求事項です。それぞれについて、どのような対策が必要かを見ていきます。
外部からの攻撃を受けにくい構成にする
工場IoTの構成と一体で検討しなければならない対策です。たとえば、工場IoTを閉域ネットワークで構築すれば(インターネットに接続せず、クラウドを利用しない)、工場IoTのセキュリティは格段に高まります。また、工場ネットワークをインターネットに接続してクラウドを利用する場合でも、データ通信を工場からクラウドへの外向きの一方通行に制限することができれば、内向き(クラウドから工場の方向)の通信をすべて遮断することができるため、セキュリティは確保しやすくなります。
※本記事は、クラウドサービスを利用することで工場IoTの効果を最大化することを目指しているため、閉域ネットワークでの工場IoTの構築は議論しません。また、工場とクラウドの間のデータ通信を一方通行とするか双方向とするかは、本記事の後半の『工場IoTのデータ通信』で説明します。
通信を暗号化する
工場IoTで通信するデータには暗号化が必要です。特に、工場とクラウドの間の通信はインターネットを通るため、悪意のある第三者により、通信データを盗み見られる可能性があるからです。ただ、データを暗号化する処理はデバイスに負荷をかけるため、すべてのデバイス同士の通信を暗号化することは難しいです。しかし、少なくとも、インターネットを通る工場とクラウドの間の通信は、データを暗号化しましょう。この時、暗号化処理を行うエッジデバイスには、暗号化処理が可能なリソース(CPU、メモリ)を確保しておく必要があります。
アクセス可能なデバイス/ユーザーを制限する
工場ネットワークへの不正なアクセスをさせないためには、工場ネットワークにアクセスするデバイスやユーザーを制限する必要があります。工場ネットワークへのアクセスを許可するデバイスをIPアドレスやMACアドレスで制限したり、退職者や契約が終了したパートナー要員のIDはすぐに削除するか無効化して使えないようにします。
※MACアドレスによるアクセス制限は簡単に導入可能な対策ですが、MACアドレスは比較的簡単に偽装できてしまうことも知っておいてください。それでも、制限しないよりは制限した方が良いことは言うまでもありません。
機器やソフトウェアの初期設定を適切に行う
例えば、Windowsサーバーを構築する際、管理者アカウントのID/パスワードを初期設定値から変更します。無線LANやスイッチングHUBなどのIoT機器も同様であり、工場出荷時のID/パスワードをそのまま使用するのではなく、適切に変更しておく必要があります。
機器のファームウェアやソフトウェアを常に最新化する
IoT機器に脆弱性が発見された場合、ファームウェアを更新することで対策することが出来ます。IoT機器の脆弱性を狙う攻撃は多く、ファームウェアを工場出荷時のままにしておくことは危険であり、常に最新のファームウェアに更新しておきましょう。
マルウェア対策を行う
工場IoTにおけるマルウェア対策は、通常のOA環境のネットワークのそれと何ら変わりません。マルウェア対策ソフトウェアを導入し、パターンファイルを日々更新して、リアルタイム監視に加えて定期的な一括検査を行うことが重要です。
ファイアウォールを適切に設定する
ファイアウォールが必要となる箇所は、工場ネットワークとクラウドのそれぞれのインターネットへの出口となるインターネット・ルータ及びインターネット・ゲートウェイの2カ所です。まず、インターネット・ルータについては、工場とクラウドの間の通信を外向き(工場からクラウドの方向)に限定できるか、双方向通信になるかが一つのポイントです。外向きの片方向通信になる場合は、内向きの通信を完全に遮断することができます。工場とクラウドの間が双方向通信になる場合は、接続先をクラウドのみに制限し、次に、インターネット・ゲートウェイについては、 外向き(工場からクラウドの方向、クラウドから見ると内向き)の通信の接続元を工場ネットワークのみに制限します。
図2.工場IoTのセキュリティ対策
工場IoTのデータ通信
工場IoTにおいて、常に気にかけておかないといけないことは、セキュリティ対策に加えて、工場ネットワークのリソースです。IoTデバイスは、CPUやメモリなどのリソースが不十分な機器が多く、大容量のデータを扱うことに長けているわけではありません。一方で、工場IoTにおいては、大量のIoTデータを収集して、クラウドサービスに送信します。大量データと不十分なリソースをどう両立させるのか、は非常に大きな問題です。MQTTプロトコルは、この相反する2つの課題を解決する鍵になります。
MQTTプロトコルとHTTPプロトコル
ここでは、工場IoTにおいて必要なデータ通信のプロトコルとして採用されることが多いMQTTプロトコルについて紹介します。データ通信で使用されるプロトコルと言えばHTTPプロトコルが有名です。工場IoTのネットワークは、一般的なネットワークと比較して通信環境が悪かったり、通信機器の性能が十分でなかったりします。そのため、工場IoTで、どの通信プロトコルを採用するかは重要です。そこで、本記事では、工場IoTで採用されることが多いMQTTプロトコルと一般的なシステムにおいてよく使用されるHTTPプロトコル、それぞれの特徴や長所・短所について整理してみます。ただし、MQTTプロトコルの詳細な仕様については、さまざまなWEB記事や書籍で紹介されていますので、ここでは省略します。別途、WEB記事や書籍を参照ください。
図3. MQTTプロトコルとHTTPプロトコル
MQTTプロトコルによるデータ通信の特徴は、メッセージの送信元=Publisherとメッセージの受信先=Subscriber以外に、通信の仲介役=Broker が登場することです。メッセージを送信元から受信先に届ける場合、一旦、BrokierがPulisherからメッセージを預かっておき、BrokerからSubscriberに届けるという通信方式になります。
一方で、HTTPプロトコルによるデータ通信の場合、登場人物はServerとClientしかありません。送信元はServerに接続してメッセージを届け、受信先もServerに接続することでメッセージを受け取ることになります。つまり、メッセージを送信する場合も受信する場合も、ClientからServerに接続してメッセージをやり取りします。
工場IoTの通信プロトコルに求められること
次に、工場IoTのネットワークについて、使用するプロトコルにどのような要件が必要となるのかを考えてみます。ここでは、工場IoTのネットワークを、「工場ネットワーク」「インターネット」「クラウドネットワーク」の3つのエリアに分け、それぞれのエリアの特徴と求められるプロトコル要件について検討します。
図4. 工場IoTのネットワーク構成
工場ネットワークの特徴
・通信品質が悪いことが多い
・少量のデータ通信が高頻度で発生する
・ネットワークに接続される機器のリソース(CPU、メモリ、バッテリー)は小さい
リソースが貧弱なIoT機器やエッジデバイスの通信では、データの処理に負担がかかるオーバーヘッドの大きな通信プロトコルは向いていません。そのため、メッセージ長が短くオーバーヘッドの小さいMQTTプロトコルが有利です。また、通信品質も悪いことが多いことから、データ送受信時にネットワークの瞬断が発生することを想定しておく必要があり、MQTTのように再送制御機能がプロトコル自体に実装されている点も有利です(HTTPは再送制御機能がなく、送信時のステータスを参照して再送する仕組みを自前で作り込む必要がある)。
インターネットの特徴
・通信品質は良いとは言えない
・通信量と通信頻度は工場IoTの構成とアーキテクチャにより異なる(少量のデータ通信が高頻度に発生する or 大量のデータ通信が定期的に発生する)
・パブリックネットワークであり暗号化は欠かせない
まず通信するデータの暗号化は必須です。この点、MQTTもHTTPも暗号化に対応しており、問題はありません。インターネットは、工場ネットワークとクラウドネットワークを繋ぐ役割であり、インターネットを跨ぐ通信のプロトコルに何を採用するかは、工場IoTの構成により変わります。そして、インターネットを通るデータ通信を検討する上でポイントとなるのは、工場ネットワークに、リソースが十分なエッジサーバを設置することができるかどうかではないかと考えます。なぜならば、エッジサーバを設置することができれば、工場とクラウドの間のすべてのデータ通信をエッジサーバに任せてしまうことが可能になるからです。
クラウドネットワークの特徴
・通信品質は良い
・クラウドサーバ以外にネットワークに接続される機器はない
クラウドネットワークは、ネットワークそのものに直接アクセスすることはないため、細かい検討は不要です。
工場IoTの構成と通信プロトコル
ここまでに説明したことをまとめると次のようになります。
工場とクラウドの間のデータ通信を一方通行にするとセキュリティが高まる
データ通信を一方通行にするためには、工場にエッジサーバを置けるかどうかがポイント
工場にエッジサーバを置けるかどうかは大きな分岐点になります。なぜなら、一般的に工場にはサーバを設置する十分なスペースがないことも多く、油分が浮遊し粉塵が舞うなどサーバにとって望ましい環境ではないことが多いからであり、一方で、工場にエッジサーバを置くことができると、工場IoTの構成やセキュリティ対策に選択肢が増えるからです。
工場にエッジサーバを設置できる場合
・工場とクラウドの間の通信は、エッジサーバに集約する
・エッジサーバとクラウドサーバで役割分担する(IoT機器の管理や制御システムへのフィードバックは、エッジサーバが行う)
・IoT機器の管理や制御システムへのフィードバックをエッジサーバに任せることで、データ通信を工場からクラウドへの一方通行に制限することができる
・インターネット(工場とクラウドの間のネットワーク)の通信プロトコルは、MQTT or HTTPのいずれも選択できる
図5. エッジサーバを設置できる場合のデータ通信
工場にエッジサーバに設置できない場合
・工場のエッジデバイスからクラウドサーバにデータを送信する
・すべての処理をクラウドサーバに集約する(IoT機器の管理や制御システムへのフィードバックも、クラウドサーバから実施する)
・データ通信は工場とクラウドの間で双方向になる
・インターネット(工場とクラウドの間のネットワーク)の通信プロトコルは、MQTTが優位
図6. エッジサーバを設置できない場合のデータ通信
工場IoTのセキュリティは、そのシステム構成によって実施すべき対策が変わってくることが分かりました。特に、工場とクラウドの間の通信方向(片方向か双方向か)は工場IoTの構成によって対応可否が分かれ、更には、その工場IoTの構成は工場に十分なリソースのエッジサーバを設置することが可能かどうかによっても変わってくることが分かりました。
まとめ
工場IoTのセキュリティを確保するためのキーワード
・工場とクラウドの間のデータ通信を工場からクラウドへの片方向に制限できれば、セキュリティは確保しやすい
・工場IoTの通信プロトコルはMQTTとHTTPの特徴と長所・短所を踏まえて、工場IoTの構成に適したプロトコルを選択する
・インターネット(工場とクラウドを接続するネットワーク)を通るデータは暗号化が必要である
・工場ネットワークに接続可能な端末/ユーザーを制限し、両者ともに適切な認証を通じて工場ネットワークにアクセスさせる
・ファイアウォールを適切に設定すること、マルウェア対策を行うこと、の2点は通常の社内LANと同様の対策が有効である。
この記事で紹介したセキュリティ対策は、あくまでも一つの例に過ぎません。工場IoTの目的によっては、採用できないケースも出てきます。すなわち、工場IoTに必要とされるセキュリティ対策は千差万別であり、個々のシステム構成やネットワーク構成にあわせて適切に策定・設定するものといえるでしょう。
ただ、システム構成とネットワーク構成とセキュリティ対策の3つは、それぞれが別個に独立して検討するものではなく(別個に考えると、多くの場合において、セキュリティ対策の検討は後回しになるため、当初の想定以上のコストがかかってしまう)、相互影響を考えながら全体最適で同時並行で検討すべきことであることを認識してください。
その他の記事
第1回:IoTデータを活用する!「IoT×デジタルツイン」のご紹介
第2回:IoTデータを活用する!IoTのクラウドとの付き合い方
第3回:IoTデータを活用する!IoTを成功させるエッジとクラウドの最適な組合せ
第4回:IoTデータを活用する!IoTで気がかりなセキュリティ対策