[ トピックス ]
(2017/10/17 05:00)
前回に続きセキュリティ対策が難しい理由を解説する。前回は、守るべきものの価値が高まれば手厚いセキュリティ対策が必要になる点と攻撃の糸口となる脆弱性が次々と現れるため、既知の脆弱性への対策、未知の脆弱性ともに網羅的な対策が難しい点を説明した。今回は、攻撃の対象が広範囲である点、攻撃の可能性のある経路の把握が難しい点を説明する。
バッファオーバーフロー攻撃
前回解説したように脆弱性(セキュリティホール)はシステムや運用方法の欠陥や考慮不足である。IoTサービス、ソフトウエア、機器、運用手順、オペレーターの操作といった広い範囲で欠陥や考慮不足は起こりうる。これがセキュリティ対策を難しいものにしている。
脆弱性を使った攻撃の一つとして入力として与える情報の中にコンピューターへの命令を含めておき、その命令を巧妙に実行させる方法がある。バッファオーバーフロー攻撃やインジェクション攻撃と呼ばれる。これらの攻撃は外部からの入力すべてが対象になるため、個々に対策が必要になる。
典型的な方法であるコンピューターの命令の実行方式を悪用したバッファオーバーフロー攻撃を説明する。この方式では、実行すべき命令群(プログラム)を記憶領域に実行順に並べて記録しておく。命令は住所のように記憶領域に割り振られた番地で管理する。ある命令を実行すると次の番地に記録してある命令を実行する。近接していない番地の命令を実行するときもあり、そのときには次の命令が記録されている番地を記憶領域に記録しておいて迷子にならないようにする。この記憶領域には命令、入力も記録されている。組込みソフトでよく使われているC言語のプログラムもこの方式をとる。
攻撃者はコンピューターの外部から与える入力に、攻撃に使う命令と次に実行する命令の番地を含める。後で述べるような不備(脆弱性)を利用して、次に実行する命令の番地を攻撃に使う命令を指すように不正に書き換える。
脆弱性使い、攻撃用命令を埋め込む
この様子をネットワークで接続したセンサーからの情報を入力とするソフトウエアを例にして【図】で説明する。センサーからの情報はその名称と値から成るものとする。名称はセンサーが自由に設定でき、「温度」「質量」といったものである。【図】の上側「通常の入力」は正常な入力を記憶領域に格納する様子である。コンピューターの記憶領域は有限なので、名称には20文字までといった上限を設けるのが通常である。20文字を超えた場合は21文字目以降を無視するなどの対処が必要になる。
もし、こうした対処が抜けていて、21文字目以降が名称の記憶領域とは異なる記憶領域に記録されると脆弱性になる場合がある。【図】の下側「攻撃者からの入力」はその様子を示している。センサーからの値と名称ではなく、攻撃用の命令としておく。次に実行する命令がある番地として、その攻撃用の命令をさしておく。21文字目以降を書き換えることができるため、コンピューターは次に実行する命令として攻撃用の命令を実行してしまう。
次にどの命令を実行するかを示す番地が常に予測できるとは限らなかったり、命令はコンピューターによって異なったりするので、この攻撃が常に成功するわけではない。しかし、ネットワークを経由した接続元からの送信データをはじめ、外部からの入力に対処するすべての部分に関して、このような脆弱性が存在する可能性がある。多数の入力を受け付ける場合、1カ所でも不備があれば、そこが脆弱性になる。
ネットワーク管理に課題
外部から攻撃しようとすると攻撃対象に何らかの方法で到達する必要がある。代表的なものはネットワークである。シンプルな構成ならば把握できるが、いろいろな機器がネットワークで接続されていると対策が難しくなる。接続はネットワークだけではない。オペレーターがデータを移動するために使うUSBメモリの中に攻撃者が実行したい命令が含まれていれば、USBメモリを経由して攻撃対象に到達することもできる。
多くの企業では、オフィスネットワークや工場ネットワークといった具合にネットワークを分割しているだろう。オフィスネットワークでは部品の調達先や役務の委託先から送られてきた見積り書ファイルや納品書ファイルを受け取る機会も多い。その中に脆弱性を利用した攻撃用の命令が含まれていることもあり、気づかずに別のネットワークへ持ち込んでしまい、攻撃されてしまうこともある。どちらの無線ネットワークにもつながるよう設定したタブレット端末で両ネットワークを行き来すれば、攻撃を許してしまう可能性がある。
特に担当者をおかずにネットワークを管理していたり、過去の経緯によりさまざまな機器が接続されていたりすると接続されている機器やネットワークを把握するのが難しくなる。IoTへの対応を検討する段階で既存のネットワークや機器を整理しようとすると当時の状況を知る担当者がいなかったり忘れてしまっていたりするため、調査が難航する。新たにネットワークの担当者を置いて管理するためには追加のコストが必要になる。こうした点もセキュリティ対策を難しくする点の一つである。
次回から、こうした難しさの中でどういう対策をすればよいかを紹介する。
(毎週火曜日掲載)
【著者プロフィール】
(2017/10/17 05:00)