生まれては消えていくIoT機器。なぜなのか?

このところ、様々なIoT機器があるので、見てほしい、というリクエストが来る。健康機器、ちょっとした便利機器、子供や老人の見守り機器。どれもこれも、作った人の家庭状況や、それを必要とする切実さが伝わってくる。当然のことながら、最初の「実験台」は自分の持つ環境で、「そこではこんなに役に立ちました」というエピソードが、機器のデモとともに語られる。納得が行く話が非常に多く、「そうだよなぁ」「これまでは大変だったですねぇ」と相槌を打ちつつ聞くことになる。しかし、数カ月もすると「売れませんでした、やめます」みたいな話が非常に多い。しかも、世間の経済状況がそんなにいい状況でもないから「辞めるけど、XXに事業が買収されました」という話も聞かない。そのまま事業そのものがなくなってしまうことのほうが多くなった。言い訳はけっこう他種類あって、でも共通しているのは「売れない」だ。中には大量の発注をもらったんだけど、どこも融資も投資もしてくれないので、受注残が多すぎて仕事が回らなくなった、なんてのもある。そういう場合は、あてにしていた部品が手に入らない、などということが一緒に和る場合もある。

世に問う製品としてIoT機器を作るときになにかが欠けている、と思わざるえを得ない。

こういった製品を作るときは、以下の条件を一つひとつ潰していく必要がある。

  1. アイデア
  2. ミクロなマーケティング・リサーチ→どのように製品を作ったらいいか?
  3. マクロなマーケティング・リサーチ→それがどのくらい世の中に必要とされ、いくらくらいであれば客は買うのか?
  4. 量産品・商品として、生産ラインを作って、月産台数を用意・確保できるのか?
  5.  部品や部材の調達は問題はないか?
  6. 損益分岐点はどこか?
  7. 営業はどうする?どのくらいのお金がかかる?それは事業として許容できる金額か?売り方はどうするの?それにいくらかかるの?
  8. 製品だけでなく、化粧箱、マニュアル、その他周辺にどのくらいお金がかかるか計算した?

などなど、まだまだ調べておくべきことがたくさんある。どの段階が抜けても、商品として成り立たないので、これらの項目を一つひとつ、潰していく必要がある。これは、ファブレスの場合も全く同じだ。要するに「こんな便利なもの作りました」だけでは、全く商品にならないのだ。それではアマチュアの電子工作で終わってしまう。最近の「ミニ・ファブレス・製造業」の危なっかしさは、実はこういうところにある。

IoTだ、サービスだ、ハッカソンだ、というけれども、実際には「その後」が商売としては非常に大切なものなのだ。そういうことを経験した人が少なくなっている。結果として、学生のハッカソンで終わってしまう、という、そういうIoTが増えている。

え?スマホでコントロールできる自動かき氷機?そんなの誰が使うの?てなもんである。

 


IoT機器の乗っ取りを防ぐ

しかし、IoTのセキュリティってのがあちこちで言われている。あるレポートでは、大規模なIoT機器が乗っ取られ、DoS(Denial of Service – サービス不能化)攻撃に使われている、という。だから、IoT機器には、セキュリティが不可欠だ、というのである。ぼくらにしてみれば、IoT機器に限らず、インターネットに直接つながれるものは、すべて乗っ取りなどの事件が起きないように、セキュリティの設定を施しておくのは当たり前であって、やっていないほうがおかしい。しかもこの数年、インターネットに接続されるサーバーやIoT機器類の乗っ取りのための攻撃は非常に増えている。インターネットにつながれるすべてのコンピュータはセキュリティの設定をちゃんとする必要がどうしてもある。

と、脅しておいてなんだが、まともなエンジニアであれば、そんなことは当たり前だし、当たり前にやっていることでもある。セキュリティ専門のボタン一発のシステムやソフトウエアがありまっせ、いかがですか?と売りたい企業は山ほどあるが、実際のところは、きちんとした設定さえされていれば、まずハッキングの被害に会うことはない。高い買い物をしなくて済むのである。エンジニアの力量の問題なんだが、要するに当たり前のことを当たり前にする水準に、日本のエンジニアがなっていない、ということがとても大きいんじゃないだろうか?

ぼくはまだITという言葉がなかった時代どころか、インターネットもなかった時代からのこの業界の住人なので、IoT(Internet of Things)といまさら名前を付けて言われても、まぁ、それって当たり前に作ってたよなぁ、という思いがどうしてもある。要するにハードウエアもソフトウエアも中身を知り尽くしている、と言っていい立場になってしまう。私の時代以降は、アナログ回路を学ぶ人、デジタル回路を学ぶ人、ソフトウエアを学ぶ人、などなど、様々な分野に枝分かれした教育をしてきたから、自分のように「全部やったよ」って言う人は、今は少ないわけですね。ところが、今流行っているキーワードとしての「IoT」は、このすべての分野にまたがる知識が必要だから、いまさら、また総合的な知識のあるエンジニアを作れ、ってことにまたなってる。時代が一巡りしてきた感じがどうしてもある。

ということは、必要な知識を十分に持っていないエンジニアが今はあまりに多い、ってことですね。その人たちを助けるために、様々な「IoTセキュリティのシステム」が売り込まれている。マニュアルのクルマがオートマが当たり前の時代に変わり、気がつけばアクセルとブレーキを間違える不良老人ドライバーも増えてきた、という報道もある。だから、そういう間違いを起こさない(起こしても影響が無い)仕組みを作りましょうね、ということなんだな。セキュリティの教育はあっても、そのエンジニアはハードウエアもソフトウエアもアナログも知らないといけないし、この上セキュリティまでやってられるかよ、ってことですね。まぁ、そこにマッチポンプにも見える商売が成立するわけですが。人間が横着になった、というのは言い過ぎかも知れませんが。

セキュリティの基本の基本の話をすると、セキュリティの設定その他にも、またもしもアクシデントが起きたときにも、その対処には、「人件費」がかかる。つまり時間がかかる。その投資額が必要であると認められるものかどうかは、事業者が持っているお金の額による。大きなお金を扱っているところでは、セキュリティに大きなお金をかけざるを得ないし、ハッキングなどが小さな損失しか産まないものなのであれば、それなりの投資になる。セキュリティもまた現代という時代、日本という場所が資本主義社会の一部である以上、すべて「コスト」で考える必要がある、ということだね。だから、エンジニアでお金の話ができない人は、これからセキュリティに限らず、仕事をなくしていくわけだね。

ところで、このところいろいろなレポートで問題になっているIoT機器の乗っ取りのけっこうな部分が、ビデオレコーダーやテレビだというんだな(ぼくはメーカーも機種もわかっているけど、ここでは書かない)。そして、比較的早い時期にLinuxをOSとしてこれらの機器に組み込みで使っているから、まだLinuxのセキュリティがデフォルトでそんなに強固でなかった時期のものなんだな。だから、セキュリティ設定に人件費を割いていなかったんだね。その機器をいかに安く作るか、ってことばかりに注力してたんでしょうね。機器が量産品であって、それが大量にハッキングの対象になる、ってことは想定していなかったんですね。結果として、だけど、かけなければならなかったセキュリティの作業のコストをかけなかった、ということね。今となっては後の祭り。未来への想像力が働かなかったんだな。会社ごとね。そりゃおかしくなりますよ。そういう会社は。

結論を言えば「セキュリティ」とは「コスト」のことです。

 


IoT機器の大規模クラッキング(ハッキング)に対処する

秋葉原殺傷事件の翌日IoT機器の大規模なクラッキング(ハッキング)がここしばらく大規模に続いている、という。問題の本質はなにか?

ハッキング被害にあったIoT機器の話を見ると、システムのデフォルトで設定してあるIDとパスワードで、sshへの侵入が行われ、ハッキングされた、という被害が多いとのこと。たとえば、最近IoT機器の試作品を作るのに、よく使われる「Raspberry Pi」の標準のOS「Raspbean」は、インストール初期のIDが「pi」、パスワードが「raspberry」である、ということは、説明書にも書いてあるし、よく知られている。しかし、そのアカウントがそのまま放置され、パスワードも変えていないままになっている例は非常に多い。そのアカウントが狙われることが多いのは、想像に難くない。IoT開発技術者はハードウエアやセンサーを作るプログラム開発に時間をとられ、セキュリティまで手が回らない。結果として、大規模はハッキング被害の被害者になる。

鍵をかけていない家の中で、お金を数えるのに夢中になっていたら、泥棒が正面玄関から入ってきた、という感じだ。

IoT機器といっても、センサーやモーターなどのすぐ近くに、小さなコンピュータを入れることが多く、多くはマルチタスクシステムが容易にできるLinuxやWindowsなどを使っている。簡単に言えば目の当たりにする小さなコンピュータは、規模は違うが、本質は「Linuxなどによるサーバー」みたいなものだ。技術の進歩によって、大きなサーバーが小さなセンサーをつなげる、安価で低消費電力の現場のコンピュータになっただけで、中身はほとんど変わらない。

だから、小さなボードコンピュータであっても、サーバー並のものが中に入っている。だから、数千円の小さなボードコンピュータを使いこなす技術は、数キロワットの電力を消費し、一部屋と24時間の空調を占領する大きなサーバーとほとんど変わらない。

つまりセキュリティも小さなボードコンピュータと大きなサーバーであまり変わるところがない。であれば、数千円の小さなボードコンピュータでも、けっこうまともなセキュリティ対策を当たり前にして置かなければならない。たとえば、よくハッキングの標的にされるsshやftpのポートをよく使われているものとは違うものに変更しておくとか、アカウントを必要以上に作らないとか、パスワードをより複雑なものにしておくとか、OSカーネルや周辺の基本システムのアップデートは怠らないとか、そういうサーバーセキュリティの基本を押さえておけば良いのだ。

しかし、サーバーの技術者は小さなボードコンピュータを触る機会はあまりない。両者は違う技術者だと思われているだろう。だから、技術者の配置で大きく間違え、こういった事故を起こす元になっている、と考えられる。

IoT機器のセキュリティ。それは大事なことなのだが、経営者はそのために必要なコストは見えないコストだから、普通は払おうとしない。だから、セキュリティに詳しい技術者がもう一人必要、といっても、なかなか聞き入れてはくれないだろう。そして、セキュリティの一点で、会社を潰すことになる。これは、ドラマではない、現実に起こっていることだ。

 


IoT機器のセキュリティ対策って?

P1140736

最近、IoTの仕事が増えていて、いろいろとセミナーをすることも多いのだが、必ず聞かれるのが「セキュリティはどうなのか?」ということだ。私はこのIoTの仕事を長年やっているし、実際の現場はいくつやったか忘れたくらいやっている。また、2012年から2年間は韓国の大学でITのことを教える教授でいたのだが、そのときの専門はセキュリティだった。ネットワークで接続されたコンピュータのセキュリティは自分の専門の1つといっていいのだが、実は、IoT機器のセキュリティは、なにも専用のネットワークライブラリを使うまでもない、ということが非常に多い。実際、特にセキュリティ関係のライブラリや別システムを使わなくても、実績としてハッキング被害などにはあっていない、という実例はたくさんある。

最近のIoTの要のノードとなる小さなコンピュータには、Linuxなどが動くものを使うことが増えてきたのだが、実際非常に便利だ。マルチタスクは当然なので、動作中にそのコンピュータにログインして、通信前のデータの値などを直接モニタする、などのことが簡単にできる。しかし、それが簡単にできる、ということは、一方ではそのコンピュータはインターネット用のサーバーと同じもの、ということでもあって、セキュリティはしっかりと設定しておく必要がある。不要なポートは開けないとか、sshを使うにしても、22番ポートは使わないとか、データベースなどを使っているときはそのポートは開けて置いても、データがsshなどで暗号化して動くようにしてあるとか、あるいは独自の暗号化システムでガードする、などはごく当たり前に行われている。

加えて、TCP/IP上でのデータのやりとりも、独自のシステムで暗号化して、どういうデータがやりとりされているかを、Snifferなどで、モニタしても意味がないようにするとか、ごく当たり前のことをしていれば、まず問題はないはずだ。むしろ、暗号化の方法が一律であるなどのメーカー製のよく使われるセキュリティシステムやライブラリを使うと、それこそハッキング被害に会いやすくなってしまうと思われる。

要するに、IoTのセキュリティを守る、というのは、こういった機器を作る側としてはごく当たり前のことだ。いまさら、大声で言うのは、そういう仕事を増やして余計なお金にしたい、という意図が大きいのではないか?と、ぼくは疑ってしまう。ネットワークプログラマとして、あるいはシステム管理者として、当たり前のことをしていれば、こういったセキュリティ対策は95%は間違いなく達成される。

「IoTは商売になる」ということで、有象無象がこのキーワードに群がっているが、一番大切なのは、「なにを作ったら世の中の役に立つか」ということを考えることであって、重要なのはそういうことを考える仕事そのものだ。ものを作らないうちから、セキュリティのことを言っても始まらないだろう。まずは「なにを作るか」の目標を設定し、その中で、セキュリティを言うべきなのだが、それだって、通常はプログラマのレベルで充分に対処できることのように思えるのだが。

つまり、IoTのシステムにとって「セキュリティ」とはプログラマレベルでの仕事の「常識」であって、それ以上のものではない。ましてや、実際にコードを触らない人間が云々しても、ほとんどの場合は無意味だ。せいぜいがプログラマに「セキュリティはちゃんと考慮するようにプログラムを書け」というだけで充分なはずである。

特にTCP/IPのソケットライブラリを直に触ることの多いIoTのシステムでは、メールなどでのウィルスやマルウエアの感染経路そのものが通常は存在しないわけで、脅威を受ける入り口そのものが少ないはずだ。そこで、使っていないポートを閉じることや、接続先を限定すること、そして、プロトコルをSnifferなどで見てもわからないように暗号化する、というだけで、ほぼ充分であるように思える。むしろ、良く知られたメーカー製のセキュリティライブラリを利用することによって、ハッカーにも良く研究されているであろうそういうシステムの利用は、むしろセキュリティ的な脅威を増すばかりだろう。