楽天が採用した MBSDの「本質を見抜いた」セキュリティ教育プログラムとは

「この仕組みがないと困る」――楽天が採用しているMBSDのセキュリティ教育は、実効性を重視した教育プログラムになっていることが採用のポイントという。

» 2009年05月11日 10時00分 公開
[PR/ITmedia]
PR

 「この仕組みがないと、本当に困ります。セキュアプログラミングの勉強なしでプログラムを書き始められたらと思うと恐い」

 楽天のエンジニア・武政央高さん(開発部 コンテンツメディアサービスプロデュースグループ)は、こう明かす。

 “この仕組み”とは、楽天が導入している、三井物産セキュアディレクション(MBSD)のセキュリティ教育プログラム「セキュアWebアプリケーション開発セミナー」だ。エンジニアは、入社時に必ずセキュリティセミナーと試験を受験し、年1回、更新試験も受ける。不合格者にはペナルティがあり、自分の書いたソースプログラムが安全かどうかを、試験の合格者にセキュリティレビューをしてもらわなければならない。

 Webアプリケーションは、セキュリティの知識がなくても作ることができる。セキュリティの実装については個人の意識に依存しがちだ。しかし、もし、エンジニアが脆弱性のあるプログラムをそのままリリースして、システムが攻撃を受けてサービスが停止したり、万が一、個人情報の漏えいなどが起きれば、経営への打撃は計り知れない。

画像 楽天の技術陣

 「楽天が運営するサイトはアクセス数も多く、外部から攻撃を受ける機会もたくさんあります。楽天のインターネットサービスを守るためには実効性のある対策が必要で、セキュリティ教育もただ単に「教育を実施した」ということではなく、それが本当に身についているかをしっかり評価することが重要なポイントだと思います。」――楽天の福本佳成氏(開発部 システムセキュリティグループ マネージャー)はこう話す。

 MBSDのセキュリティ教育は、福本氏が認めた「本質を見抜いた」教育プログラムだ。その“本質”とは何か。それを開発の現場がどう評価し、どう生かしているのか。エンジニアの声を聞いてみよう。

なぜセキュリティ教育が必要か 危険な“素人Webアプリ”

 楽天のエンジニアのレベルはさまざまだ。独学でプログラミングをマスターした人から、入社して初めてプログラムを書く人もいる。

 入社して初めてプログラミングの勉強をしたという、2005年新卒の浅岡哲也さん(開発部 ショッピングナビゲーションプロデュースグループ)は、セキュリティ教育や試験について当初は、「なぜこんなことをしなくてはならないんだろう」と疑問を覚えたという。だが、自分が書いたプログラムを先輩にレビューしてもらい、考え方が変わった。

 「当初は自分のプログラムの何が悪いかも分からず、先輩に指摘されて直しても、どれぐらい安全になるかも分からない状態でしたが、脆弱性のあるプログラムにアタックしてみるとどうなるかを先輩に実演してもらい、勉強の必要性を痛感しました」

画像 鈴木さん

 07年に新卒入社し、初めてプログラムを書いたという鈴木富美恵さん(開発部 ポータルプロデュースグループ)も、セキュリティの知識ゼロからのスタートだった。

 「研修で、入力値を表示させるプログラムを作ったのですが、先輩や上司に徹底的に攻撃されてしまったんです。な、なんだこれは!と驚き、セキュリティを意識するようになりました」

 そんな後輩のプログラムをレビューする立場にある、エンジニアリーダーの武政さんは言う。「例えば、クロスサイトスクリプティングはHTML出力時の穴をついてくる攻撃ですが、単にWebアプリ開発の勉強だけをしていても対策方法は学べません。Webアプリケーションにはどのような脅威があり、どう対策すべきなのか。そういう発想もなくただ単に動くだけを目的としたプログラミングをしていると恐いんです」


場当たり的な対応ではなく、根本的な考え方を学ぶ

 MSBDのセミナーでは、セキュアプログラミングの基礎知識とスタンダードな脆弱性、対処方法をまる1日かけて学び、その後試験を受ける。

 テキストは100ページを超えるボリュームだ。「バグとは」「セキュリティホールとは」といった基本知識や、セキュアなWebアプリ構築の考え方、クロスサイトスクリプティングやSQLインジェクションといったスタンダードな攻撃と具体的な対処法などが1冊に詰め込まれている。

画像 国分さん

 根本的な考え方の解説に時間を割き、日々進化する攻撃手法に対しても応用が利くよう工夫されているのがこのテキストの特徴。「場当たり的な対応ではいたちごっこになってしまうから」という、講師のMBSD国分裕氏(技術部セキュリティアセスメントマネージャー)の考えを反映している。

 楽天のエンジニアは、テキストを事前にもらって勉強した上でセキュリティセミナーを受け、試験に臨む。鈴木さんは、「テキストからまず基盤知識を学び、知識がすごく固まりました。セミナーで知識が深まりましたし、分からなかった部分が講師の方に聞けたのもよかったです」と振り返る。

 浅岡さんは、「言葉としては聞いたことがあっても背景や裏の意図などが分かっていなかった知識を、教科書やセミナーがつなげてくれ、体系的に理解できるようになりました」と語る。


「本質を問う」難しい試験で実効性を

 セキュリティセミナーの後には、スタンダードな脆弱性とその対策を尋ねる試験があるが、これは単純に理解度をはかる10問程度の試験とは訳が違う。学んだ知識を現場で活かすよう、根本を理解していないと解けないようになっており、付け焼き刃の暗記だけでは太刀打ちできないよう作ってあるのだ。

画像 武政さん

 毎回合格しているという武政さんですら「本質を理解してないと合格は本当に難しい」と話すほど。「テストの質が良く、用語だけ覚えればいいという問題ではありません。プログラミングや脆弱性の仕組み・考え方が分かっていないと解けない問題です」

 「油断していてはまず受からない。楽天が求める基準は高い。」と福本氏も話す。

 試験の結果はA〜Eで判定。Cまでは合格、D以下は不合格だ。不合格者は再びセミナーを受け、再受験しなくてはならない上、不合格者が業務で書いたプログラムは、上位合格者がチェックし、作業報告書を作成しなくてはならないというペナルティが付く。

 不合格になるとプライドが傷付くだけでなく、チーム全体に負担をかけることになるため、エンジニア陣は真剣に勉強するというわけだ。「試験前にはエンジニアの目の色が変わります」(鈴木さん)。

 試験が近づくと、チーム内で勉強会を開くなど助け合いながら勉強するという。浅岡さんは、自分のチームの勉強会で講師を務める。「チームには多数ののエンジニアがいますので、技術レベルや経験はそれぞれ違います。事前に配られたテキストを使って年1〜2回は勉強会を設けています。落ちる人がいると、自分にはね返ってくるので真剣です」(浅岡さん)

「とにかく安全な物を作ろう」 変わる意識

 セミナーや試験を受ける中で、楽天のエンジニア陣のセキュリティ意識は着実に高まっている。

画像 浅岡さん

 「セキュリティを意識しなければ、誰でも動くプログラムは作れますが、セキュリティを考えるとプログラミングは変わってきます。楽天として提供しているサービスの質をより高めるために、セキュリティ意識と知識は必須です」(浅岡さん)

 「とにかく安全なものを作ろうという意識が高まり、何を意識すればいいかというポイントに気づけるようになりました。セミナーで『答えは1つではない』とも聞いていたので、『こういうのもできるんじゃないか』など、保険的な対策をたくさん考えたりもします」(鈴木さん)

 武政さんは、「セミナーや試験があるおかげで、エンジニアがセキュリティのことを意識してプログラムを書くようになり、上がってきたプログラムを差し戻したりするその手間が省けています。事前に『これに気をつけて』と注意する必要もなく、『試験受けたんだから分かっているよな』という前提からスタートできるので、ソースレビューの作業コストが下がります」と高く評価する。


「世の中には質の高いセキュリティ教育コンテンツが足りていない」

画像 福本さん

 インターネットセキュリティの重要性が叫ばれて久しいが、福本氏によると、「世の中には質の高いセキュリティ教育コンテンツが足りていない」(福本氏)のが現状だという。

 「世の中的にもセキュアプログラミングの参考文献も少なく、残念ながらたまに混乱を招くような解説をしているものを見かけます。またセキュリティ会社でも、セキュアプログラミングのためのセキュリティ教育サービスは、まだまだ不足していると思います。」――そう話す福本氏が信頼を置いているのが、MBSDの教材と講師だ。

 「MBSDは場当たり的な対処法を教えるのではなく、プログラムとは何かという本質を見抜いた根本的な考え方を教えてくれるため、応用が効くんです。また、積極的に最新の内容を取り込み、新しい教育の仕組み作りにも柔軟に対応してくれますので、非常に助かっています。」

 MBSDが提供する本質を見抜いた教材とセミナー、よく練られた試験が楽天のエンジニア陣のセキュリティ意識を高め、安全なサイト運営につながっているのだ。


Copyright © ITmedia, Inc. All Rights Reserved.


提供:三井物産セキュアディレクション株式会社
企画:アイティメディア営業本部/制作:ITmedia ニュース編集部/掲載内容有効期限:2009年5月24日