2012年10月20日土曜日

ソフトウエア開発者とその提供者の持つべき責任は・・

先日の某LCCサイトで他人の予約情報が表示可能になっていたという問題、そしてまた今日報じられたオンライン古書販売サイトでの個人情報流出。前者と後者では質が違うものの、その根底にある問題には共通のものもあるように思います。

前者の例は、単純な「バグ」のように見えますが、あまりにお粗末で、個人情報を取り扱うアプリケーションであるという意識が、そもそも欠落していたように思われます。

後者の例はまだ詳細が報じられていないものの、おそらくはSQLインジェクションのような手法での攻撃ではないかと推測します。この推測が正しければ、いまだ、こうした大量の個人情報を扱うサイトで、こうした脆弱性が放置されているという事態には危機感を抱かざるを得ません。

これらの問題にかかわらず、オンラインサービスのアプリケーションの問題で発生するセキュリティ事故、事件は後を絶ちません。なぜ、と我々セキュリティ畑の人間は思うのですが、どうやら開発畑の人たちの多くの意識は、そこまで達していないようです。

このようなアプリケーションはその企画段階から、取り扱う情報やサービスに対するリスクが認識されている必要があります。また、設計段階では、そのリスクに応じた安全面での「仕様」が定められ、それに対するテストの方法も定義されなくてはいけません。しかし、実際多くのケースでは、そうした面での考慮が設計やテストに反映されていません。

ここで言いたいのは、このようなセキュリティは、もはや専門家の仕事ではなく、一般のアプリケーション設計、開発者の仕事だということです。設計、開発者は、自らが開発するアプリケーションのセキュリティについて責任をもたなくてはいけません。当然、そのための知識や経験を磨く必要があるのです。

現在、声高にセキュリティ人材育成が叫ばれ、高度なセキュリティ知識を持った人材の大量育成が行われようとしています。しかし、CTFなどで育った「セキュリティ高度人材」が働く場は限られます。そして、このままの状況が続けば、彼らは、現場の開発、運用者の分も含めてセキュリティ事故の後始末をするハメになります。それでは、いくら人材を育成してもきりがありません。まさに、「モグラたたき」です。

せめて「モグラ」の穴くらいは、現場で埋めておくことができなければ、より高度な攻撃技術も必要なく、重要なシステムに対して攻撃が成功してしまうでしょう。(実際、昨年あたりから問題になっている攻撃の多くがそのレベルで成功してしまっています。)そういう意味で、今、最も必要なのは、現場の底上げであり、現場の技術者に対する、各分野での基本的なセキュリティ意識と考え方を植え付けるための教育です。つまり、社会全体のレベルを底上げすることが必要なのです。

高度人材の育成が無意味とは言いませんが、粗製濫造は困ります。いざと言うときに役に立たないばかりでなく、そうした人材が働く場も含めて提供できなければ、職にあぶれた人材がダークサイドに流出しかねないと危惧します。

人材育成は、まず「底上げ」を第一に考え、その上で必要な高度人材の適正な育成の両面から考えるべきでしょう。

0 件のコメント:

コメントを投稿