SecurityStudy2
■はじめに
本ページは、技術評論社の雑誌「エンジニアマインド」の Vol.8 に掲載された記事 『社内留学という選択肢【後編】』の記事を、 編集部の承諾のもと、公開するものです。まずは快諾をいただいた、編集部に感謝致します。 掲載前に査読していただいた同僚の皆さんにも感謝致します。
Vol.7 に掲載された前編は以下のページからご覧いただけます。
誌面に掲載された状態ではなく、最終的な編集が入る前の原稿の状態で公開致します。 図なども、筆者が提出したラフスケッチの状態です。
雑誌に掲載された記事であり、Web上の文章としては不自然な箇所があるかもしれませんが、ご了承下さい。 また2008年1月に刊行された雑誌であることをご考慮の上、読んでいただければと思います。
お読みになった感想などをいただけると、幸いです。
それでは、記事をどうぞ。
■社内留学という選択肢【後編】
*前編のおさらい
本誌Vol.7に掲載した前編では筆者の勤務するソニーデジタルネットワークアプリケーションズ株式会社(以下 SDNA)の「SSAG留学制度」について紹介しました。 本制度は、情報セキュリティの知識習得の為に、セキュリティエンジニアの集まるプロジェクトであるSSAG(Software Security Assurance Group)への期間限定移籍を行うものです。SSAGは製品開発を担う各プロジェクトに対してセキュリティアドバイスを行うのが第一義の目的であるプロジェクトです。
筆者自身が現在この制度の留学生であり、留学期間の半分(2ヶ月)ほどを過ごした時点での状況を踏まえながら前編では以下の項目を取り上げました。
- 制度開始の経緯
- 制度のあらまし
- 留学前半のカリキュラム
- 期間半分から得た気づき
前編を読んでいない方のために留学制度開始の経緯について簡単に説明します。 こんにち、増え続ける情報セキュリティ分野への要求に対し、 SDNAに在籍するセキュリティ専門のエンジニア4〜5名ではいずれソフトウェア製品のセキュリティレビューをこなせなくなるおそれがありました。 そこで、一般のエンジニアのプラス・アルファのスキルとして情報セキュリティに関する知識を身につけてもらい、 専門のエンジニアが最小限のサポートをするだけで十分なセキュリティ品質をもつ製品を開発できる体制を構築する方法が模索されました。 このために設計されたのが「SSAG留学制度」です。
なお留学で扱うテクニカルな内容は情報セキュリティですが、本稿で扱いたいのはその部分ではありません*1。 より普遍的に「組織と教育」「個人と学び」「制度としての試行錯誤」などをキーワードとして、読者の皆さんの参考になればいいな、と考えています。
さて、今回の後編では留学後半について紹介し、さらに全体を通じて考察してみたいと思います。
*留学後半のカリキュラム
留学前半は「書籍トレーニング」「情報セキュリティ勉強会」の2つの活動がメインでしたが、 後半では前半で得た基礎的な知識を生かしながらより実践的な内容にシフトします。 具体的には次の3つが主な活動となります。
- センスアップトレーニング
- セキュリティレビュー
- 各自のチャレンジ
>センスアップトレーニング
実際に過去にあったソフトウェア脆弱性に関する事例を、ごく直近のものも含めて調査を行い、その対策等について考察をして社内公開されているWikiにまとめます。 このWikiページには SSAGコアメンバーやLAC先生(図1とそのキャプションを参照)からの経験者コメントが付き、それを読んだりコメントに応じて追加調査を行うことで理解を深めます。 表1にWikiへのまとめの際に使うテンプレート項目を示します。
【図1】 SSAGのメンバー構成。リーダーを含め4名のコアメンバー、5名の留学生、そしてLAC先生からなる。LAC先生とは、セキュリティ・コンサルタントサービス会社である株式会社LACから招聘したアドバイザ
【表1】センスアップトレーニングまとめテンプレート項目
学習者 |
脆弱性名称 |
情報源 |
要約するとどんな問題だったのか? |
被害者はどんな人? |
被害者はどのように困ったか? |
攻撃者はどんな人? |
攻撃者に何ができたからこの脆弱性が生じたのか? |
この脆弱性が作りこまれてしまった背景・原因は? |
どのように対策することができたはずか? |
・要件で対処 |
・設計で対処 |
・実装で対処 |
・運用で対処 |
・顧客への注意喚起のみ |
・リスク受容 |
・リスク回避 |
・その他の観点 |
主にどの開発工程で入り込んだ脆弱性か? |
DREAD評定 |
キーワード(利用技術や概念など) |
前半のカリキュラム「書籍トレーニング」に似ていますが実際の事例のケーススタディになっている点が大きく異なります。
また、留学生個々人が独立に進めていた書籍トレーニングと違い、センスアップトレーニングは2人1組のペア学習になっている点も特徴です。 各留学生は、必ず全ての人とペアになるようにローテーションが組まれており、2日に1事例の割合で進行していきます。
筆者が行っている2007年度第2期(2007.8〜2007.11)では留学生が5名なので、2ペアと1ソロが出来ることになりますが、 ソロの1名が他の2組のペアの調査に(経験者コメントとは別に)コメントをする係になります。
このように「調査ペアでのディスカッション」「経験者によるコメント」「ペア以外の学習者によるコメント」などが行われることで、 情報セキュリティ学習に必要な多角的な視点を養うことが促進されていると感じています。
参考までに本稿執筆時点で筆者が行ったセンスアップトレーニングのタイトルを表2に列挙します。
【表2】筆者が行ったセンスアップトレーニング題材の一部
項目名 |
---|
Microsoft Windows Media Player Skin File Code Execution Vulnerability |
Apple Mac OS X Multiple Products Format String Vulnerabilities |
IBM iSeries AS400 POP3 Server Remote Information Disclosure Vulnerability |
Solaris FTP Core Dump Shadow Password Recovery Vulnerability |
Squid Improper Header Handling HTTP Request Smuggling Vulnerability |
LibTiff Tiff Image Header Divide By Zero Denial of Service Vulnerability |
Multiple Vendor Hyper-Threading Technology Information Disclosure Vulnerability |
Microsoft IE MIME Header Attachment Execution Vulnerability |
>セキュリティレビュー
SSAGの本来の活動である製品プロジェクトのセキュリティレビュー、すなわち仕様/設計/実装コードの各側面から セキュリティの観点でアドバイスをする業務を実際に行います。 その際、留学生に対して1名以上のSSAGコアメンバーが付くことになります。 平たく言えば本カリキュラムはOJTです。
留学期間を通じて、仕様書ドキュメントを入力とした「ドキュメントレビュー」、製品コードを入力とした「コードレビュー」 を各1プロジェクト分以上はこなすことを目標としています。
本稿執筆時点では筆者は製品プロジェクトとの最初の打ち合わせに参加したのみで、 どちらのレビューもまだ体験していません。 しかし留学終了後には、自分のプロジェクトのセキュリティレビューは留学生自身が主となって行う事が期待されますので、 最も実践的なカリキュラムである本項目は真摯に取り組みたいと考えています。
>各自のチャレンジ
ここまで紹介したカリキュラムは、前編のものも含めて留学生は全員同じものを行うのが基本です (セキュリティレビューで担当する製品プロジェクトが異なるなどの違いはありますが)。
それ以外に、留学生それぞれに自分の興味のあるテーマ(チャレンジ項目)を選定し、 それについて調査したり、実際に脅威を発動させたりする試みを行います。
機密事項に抵触する事柄も含まれるためどのようなテーマがあるのかを紹介できないのが残念なのですが、 各自のエンジニアとしてのバックボーンを生かしたテーマになることが多く、結果の発表を聞くのが楽しみなカリキュラムです。
*留学先でも「ふりかえり」
さて、このようなカリキュラムをこなしながら、一方で筆者としては別の試みも行ってみました。
留学期間中の9月末、筆者もレビューアをやらせていただいた書籍『アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き』*2 が発売されました。このこともあり、留学先のSSAGでも早速筆者がファシリテーターを勤めて「留学制度ふりかえり」を開催したのです。 なお、「ふりかえり」自体については、上述の書籍や「プロジェクトファシリテーション」をキーにしたWeb検索にて詳細を知ることができます。 また、留学生活半分の時点での筆者の個人的な「ふりかえり」は本稿前編で紹介致しました。
さて、メンバーの多くが「ふりかえり」が初めてであることを鑑み、今回は「タイムライン」と「KPT」の2つの方法を使って実施しました。 図2・図3にそれぞれの結果の画像を示します。 少し時間を短めに設定してしまったのですが、それでも初めてにしては Keep が予想以上に多く出たな、というのが印象です。
Keep(Good) 項目として挙がっていた中で印象的だったものをひとつ紹介します。 それは「専門分野が違うなどの理由から同じ会社の中であっても普段はほぼ交流のないエンジニアとの接点が生まれた」というものです。 筆者としても、「情報セキュリティの学習」という本来の意義の外にある、このコトガラの効果は意外に大きいのではないかと睨んでいます。
たとえば、ここで行った「ふりかえり」というアクティビティを、留学後のプロジェクトでもやってみる気になったとしたら、 そんなことを夢想して微笑んでしまうのです。
【図2】最初に皆でタイムラインを作成することで、頭を整理する
【図3】KPTはやや時間が短かったが、皆から意見が出た
* 社内留学制度についての提言
前編も含め、ここまで留学制度について紹介してきましたが「なんだかうまくいっていそう」という印象を持たれたかもしれません。 しかし、先ほどのKPTの結果を見るまでもなく、ひとつのプロジェクトの正常な姿として、もっと良くしていくためカイゼンの余地は様々あるというのも事実です。
ここでは細かいカリキュラム上の話はおいておき、 仮に読者の皆さんが似たような制度を設計する場合に、 参考になるかもしれない点に絞って筆者の考えをいくつか挙げることとします。
>コミュニケーションについて
SSAGは雰囲気が悪いわけでもないし、コミュニケーションが疎なプロジェクトというわけでもありません。 学習上わからなかった点などについて時に活発にやりとりがあり、対話の頻度という観点ではむしろ高い方だといえます。
しかし、留学による学習というどちらかというと個々に進めていくタイプの活動が多いため、いきおい「プロジェクトとしての一体感」に欠けがちだと感じます。 この点が補完されると留学生・コアメンバーを含め全体の知識レベルの向上スピードがアップするのではないかと思うのです。
今回紹介したセンスアップトレーニングで行われているペア学習に、そのためのヒントをかいま見ることができるのではないでしょうか。
>留学期間について
2007年度は1年を4か月ごとに区切って、計3回の留学生受け容れタイミングがあります。 前編にも書いたとおり、現状でも留学前のプロジェクトのスケジュールにあわせてある程度はフレキシブルに対応してます (あるいは対応せざるを得ない)。
もちろん、ここをうまく制度設計して自由なタイミングで留学できるようにすることには、 それを理由に見合わせていた人をキャッチアップできるという大きなメリットがあります。 実際にSSAG留学制度においてもそうした要求は挙がっていると聞いています。
ただし先ほど書いた「一体感」にも通じますが、 「同期生」というツナガリ感は意外と効いているという実感も持っています。 あるクールであえて区切ることにも意義があると思われますので、 メリット/デメリットのトレード・オフを検討する余地はあるでしょう。
>さらなる多様性のために
「ふりかえり」のところで、普段は接しない他のエンジニアとの交流のメリットについて言及しました。
現状でも十分にいろんなバックボーンを持つエンジニアが留学生として集まってはいるのですが、 どうしても設計や実装に近いエンジニアまたはプロジェクトリーダーの参加が主になっています。
セキュリティ知識の生かせる場所という意味においても、 たとえばテストエンジニアやインテグレーションエンジニアなど、 他の専門分野を持つ人の参加がもっとあるといいのでは、と考えています。
*まとめ
前編/後編を通じて、筆者の参加しているSSAG留学制度の紹介を行い、 社内留学という学びの場について考察をしました。
ここで紹介した制度をそのまま読者の皆さんの環境に導入することは難しいだろうと思います。 しかし筆者としては、皆さんの選択肢の中に1枚カードが増え、 学び続けるということについて考えるきっかけが生まれたのなら良いなと願っています。
なにか意見や感想があればぜひ筆者まで連絡をお願いします。 ここまで読んでいただきありがとうございました。
次は皆さんの手持ちのカードを見せていただくのを楽しみにしています!
■コラム欄
*インタビュー「SSAGリーダー:松並勝」
留学制度を思いつき、実際に制度として運用するところまで持っていった一番の 功績者であるSSAGリーダーの松並に対してメールインタビューを行いましたので、以下にご紹介します。
>制度設計をする上で気をつけたことがあれば教えてください
- (a) 現実に実行できること
- (b) 経営層の支持を得られること
(a)のために、教育効果を維持しつつ、コアメンバーとLAC先生の負荷を 如何に小さく抑えるか、に気を付けました。
教材は既存の書籍やWeb上の情報を活用し、また留学生自身ができるだけ 自習できるようなカリキュラムになっているのはこのためです。 プロジェクトとしての一体感が少ないのはこれも影響しているでしょうね。
(b)のために、経営層の不安を取り除き、経営層が納得感を得る制度設計に するよう、気を付けました。
まず制度運用前に1名のメンバーを対象にパイロット的にカリキュラムを実施し、 半年で実際にセキュリティレビューで貢献しているという実績を作りました。 これにより「投資効果が見えにくい」とされる教育活動の不安を取り除きました。
そして、留学生がOJTを通じて学習期間中にもちゃんと会社の業務に貢献するように カリキュラムを組み、OJTで発見・除去できる見積もり脆弱性数を金額換算し、 セキュリティリスクを削減できると説明し、納得してもらいました。
>コアメンバーによる受け容れ態勢のこれまでの自己評価はいかがですか?
わたしも含め、まだまだ改善の余地はあると思いますが、 高い評価をしてよいと思っています。 さまざまな留学生の都合に柔軟に対応したり、 カリキュラムの改善に努力したり、 リーダーであるわたしの無理難題にも取り組んでくれます。 コアメンバーのこうした柔軟な態度・姿勢が、 何もかもが初めてのことである、 この留学制度という活動を支えてくれていると考えています。
>留学生に期待することはどんなことですか?
会社から与えられたチャンスを何倍にも増幅させて、 会社と自分の成長に役立ててほしいです。
そして会社が社員に教育の機会を与えることが会社にも大きなメリットとなる、 と経営層も社員も当たり前のことと考え、 ポジティブスパイラルを作り上げてほしいと思います。
自分に与えられたチャンスは、今後の留学生にも受け渡していかねばならない、 という使命感を持って、学習に励んでほしいと思います。
*インタビュー「iVASリーダー:石川裕之」
SDNAでは各エンジニアは専門分野に応じて必ずどこかのチームに属し、 仕事の単位であるプロジェクトに対しチームから人を提供するというチームとプロジェクト が直交するマトリクス型の組織運営を行っています。
留学はSSAGというプロジェクトに対してチームメンバーを提供するという形を取りますので、 メンバーを送り出す側のチームリーダー(TL)からの意見として、 筆者の所属する Image & Video Applicatioin Specialists Team(iVAS) のTLである 石川にメールインタビューを行いましたので、以下にご紹介します。
> 留学制度そのものについてはどう感じていますか?
非常によいシステムで、セキュリティ以外でも適用できるような 分野があれば留学制度を導入したいと思っています。 特に通常業務と兼務でないため、学習を阻害する要因がないことが 大きな学習効果を生むと思ってます。
> 留学生になったチームメンバーに期待することはどんなことですか?
自分の持っている固有技術に別の視点が加わり、思考の幅が 広がることです。卒業後には通常業務の中での設計レビュー、 コードレビューを通して他のメンバーにもその視点を気づかせて 会社全体の意識が向上すればよいと思います。
> 今後もチームメンバー(自分を含む)を留学させたいと思いますか?
ぜひさせたいと思います。 当然ながら本人からの強い意志表示があることが前提ですが。 メンバを推薦するからには、学習内容を自分で知りたいという 気持ちもあるので自分の留学もアリです。