セキュリティやプライバシーはプログラマの仕事(責任)ではなく開発系のデフォルト機能になるべき

368912557_2fc44d3709_b

【抄訳】
ビッグデータやクラウド、それにますます増えつつある複数のサービス間の相互接続の時代に、セキュリティを確立しプライバシーを保護するためには、ソフトウェアの開発のされ方に構造的な変化が導入されることが必要だ。

MITで博士号を取った研究者(MIT研究助手)Jean YangLinkedIn)は、そう考えている。彼女が自作したプログラミング言語Jeevesは、その主張を実現するために、正しいプライバシーポリシーを正しく強制するという開発負荷を言語自身が担い、プログラマの肩の荷を軽くしている。

“言語など開発基盤の構造がプライバシー/セキュリティの強制機能を持っていれば、プログラマがいちいちチェックやフィルタを書いたり、書き忘れたり、書き方が正しくなかった、などなどの負担と責任がなくなる。プログラマがやることは、最初の、正しいポリシー設定だけになる。これにより、プログラマがミスを犯したり犯さなかったりといった、表層的な問題が解消する”、と彼女は語る。

今月末にラスベガスで行われるカンファレンスPrivacy.Security.Risk.で講演をするYangはこう語る: “学部のころは毎年、こればかり考えていた。人びとはプログラムが正しくないことを気にするけど、プログラマは別に、正しくないプログラムを書こうと思って書いてはいない。だから問題をプログラマに転嫁するのは、正しい方向性ではない”。

Yangも認めるように、最近ではプログラマの瑕疵というより、レガシーコードが抱えるソフトウェアの古い設計に、プライバシーやセキュリティの問題の根因がある、という見方に変わりつつある。

2013年にはNSAの内部通告者Edward Snowdenが政府の諜報機関による監視行為を暴露し、ネット上のプライバシーに関する関心が一気に盛り上がった。Snowdenの暴露により、多くの消費者向けサービスがエンドツーエンドの暗号化を採用するのようになった。そういう消費者サービスも監視の対象になっていた、と分かってからは、そういう商用サービスにおけるユーザ保護が政治の課題にもなってきた。

しかしそれでも今だに、データの盗難は毎週のようにニュースになる。人も企業もアプリケーションも、ネットの上ではますます相互接続性を増してくるが、今のソフトウェアとシステムはそんな時代に合っていないのではないか、という印象がいよいよ鮮明になる。あらゆる面でもっと良い方法を考えなければならないが、Yangの主張では、それには、プログラムの作り方をその構造のレベルで再考する、ということが含まれる。

“今のプログラミングのやり方は、1970年代のやり方から変わっていない。そのころも今も、ソフトウェアは小さなレシピの集合、小さな手続き/ 手順の集合と見なされる。その一つ一つは10〜20行ぐらいだろう。そんなものを大量に使って、弾道の計算など重要なコンピューティングをやっていた。当時はまだ、機密データの保護、という問題はなかった。個々のプログラムはとても小さく、また機密データを扱わなかった。それが1970年代だ”、と彼女は語る。

…お互いについて知る機会のない複数のプログラムが、同じ物理マシンを共有している。そこにはきわめて興味深い、…おそらく恐ろしい…、プライバシーとセキュリティの問題が暗黙裡にある。

“今では、プログラムは巨大だ。ソフトウェアの大きなエコシステムが、いくつもある。プログラムは簡単に、数百万行に肥大する。そのコードのサイズは、70年代にはコンピュータのメモリに収まらなかったほどのサイズだ。つまり書いたプログラムが大きいだけでなく、実動コードも大きい。今や、大量の人間がプログラミングに携わっている。それまでは、一つのプロジェクトを担当するのはひとにぎりのプログラマで、プロジェクトの全貌が彼らの頭の中に十分収まる。そのプロジェクトをめぐるお互いの会話も容易だ。しかし今では、クラウドや仮想マシンを使って、それらの上にコードを置く。お互いについて知る機会のない複数のプログラムが、同じ物理マシンを共有している。そこにはきわめて興味深い、…おそらく恐ろしい…、プライバシーとセキュリティの問題が暗黙裡にある”。

Yangの主張では、さまざまな特色の豊富なデータを大量に集めているFacebookのようなデータリポジトリは、プライバシーにとって、まるで火薬庫のように危険で恐ろしい。Facebookやそのユーザが、ユーザの情報を今後どのように切り刻むのか、それがまったく不明だから。

たとえば、と彼女は言う、ユーザの情報はFacebookのプロフィールの上に時系列で表示されるだけでなく、いわゆるグラフ検索機能(Graph Search feature)によっていろんな方法で検索される。ユーザは、自分のデータが将来どのように見られ共有されることになるのか、知ることもコントロールすることもできない。

“彼らはあらゆるものを持っている。数百万行のコード、プログラマの大群、そしてコードのさまざまな箇所で、機密データが利用される。しかしプログラマは、あらゆる箇所で、“ここでは一体どんなポリシーを強制されるのか”と、問うことしかできない。答はない。

“Facebookに関して人びとは、‘プライバシーのポリシーに一貫性がない。しかも頻繁に変わる’と不平を言うが、自分の情報をプロフィールの上では保護できても、グラフ検索など、そのほかの間接的な方法で情報が見られることに関しては、打つ手がない”。

Yangによると、今でもプライバシーのポリシーを正しく強制し、問題を緩衝する手段はある。たとえばそれは、ライブラリ関数の呼び出しにポリシーを埋め込むのだ。でもそうなるとプログラマは、どういう場合にはどの関数を呼び出す、ということをおぼえて正しく実行しなければならない。プライバシー保護がプログラマの負担・責任になる、という問題は変わらない。

クラウドの時代に機密データを正しく保護するためには、大きな構造的ソリューションが絶対的に必要、とYangは信じているが、ただし、そういうソリューションの採用やそれらへの移行が、プログラマにとって大きな負担になるようでは、どんなに良いソリューションでも正しく普及しない、と彼女は言う。

もっと、‘それとなく’的なソリューションが必要、と彼女は言う。つまりプログラマは従来どおりにコードを書いているが、そのコードの“ボンネットの下”では、ちゃあんとプライバシーとセキュリティの強制が行われている、そんなソリューションだ。例えば暗号化が必要な場面では、プログラマが暗号化をとくに気にしなくても(暗号化のためのコードを書かなくても)データの暗号化が行われる。また、ある箇所ではシステムを保護的な手続きで保護して“まずいことの発生を防ぐ”。最初から、データの健康と安全のための措置が、言語やライブラリに焼きこまれている。…。

“こういう、一見何も変わっていないけどシステム全体に浸透しているソリューション、それで行くべきだ”、と彼女は付言する。

この夏、YangとPhDの同級生Frank WangはMITで、Cybersecurity Factoryと名づけたアクセラレータのパイロット事業を開始した。目的は、Yangらのような学生起業家がセキュリティに関する深い技術的ソリューションを身につけて、上述の構造的問題に取り組んでいくことだ。このパイロット事業はHighland Capital Partnersが出資し、最初の二つのチーム、AikicryptとOblivilockには、どちらも複数のPhDが参加している。来年はこの事業を拡大して、もっと広い範囲から、計五つぐらいのチームを育てたい、という。

またこのアクセラレータでは、アイデアの技術的実装以外に、セキュリティ事前埋め込みタイプの開発系の、普及活動(対投資家、対デベロッパ、対企業、など)も起業家の事業領域とされる。

【中略】

Yangによると、Y CombinatorのSam Altmanも最近は、セキュリティの分野に注目している。たとえばこの夏のツイートで彼は、次の二年間でセキュリティ関連のスタートアップを“数ダース”育てたい、と言っている。システムやデータの保護とプライバシー保護は、Yangたち学究ばかりでなく、投資家の投資ターゲットとしても着目され始めているのだ。

【後略】

 

[原文へ]
(翻訳:iwatani(a.k.a. hiwa