pr

開発者のセキュリティ教育こそ最善の方策だ!

開発現場におけるセキュリティ対策の重要性が高まっている。どんなセキュリティ対策が求められ、何をどう学べばいいのか。その最前線のトレンドを紹介しよう。

開発現場の現実とは

 セキュリティ対策といってすぐ思いつくのは、ウイルス対策や不正アクセスへの対応などだろうか。確かにこうしたセキュリティ対策は重要なことである。

 だが、Webアプリケーションなどシステム開発の現場でここ数年注目を集めているのは、セキュアプログラミングの分野である。

 システムからはさまざまな脆弱性が発見される。その対策のためにパッチを当てたり、アプリケーションをバージョンアップする必要がある。これは何も運用中のシステムだけではない。開発中のシステムであっても、開発が進む中でプログラムに脆弱性が発見され、その修正が必要となることは多い。このような場合、脆弱性の発見が開発段階の後半になるほど、大幅な手戻りが発生し、修正は困難となっていく。これは深刻な問題だ。本来は、もっと上流工程の段階から脆弱性を意識し対応しておくべきなのはいうまでもない。開発プロセスにおけるプロアクティブなセキュリティへの取り組みが、開発期間や修正コストの削減につながることは、開発者またはプロジェクト管理担当者にとっては、自明のことであろう。

 つまり、従来のセキュリティ対策が、システムを攻撃から守るための受動的セキュリティを中心とするのに対して、システム開発で重要性が増しているのは、開発段階で脆弱性そのものをつくらないという、能動的セキュリティ――攻めのセキュリティ対策なのである。

アプリケーション開発時のチェック体制

 それでは、実際の開発現場では、どのような体制でどのようなチェックを行っているのだろうか。@ITのSecurity&Trustフォーラムにて行った調査によると、Webアプリケーション開発時のチェック体制を尋ねたところ、「基準が明確で必ずチェックしている」は18%に対して、「基準はあるがチェックは徹底していない」が20%、「基準はなく開発者個人の能力に依存」が44%に上った(図1)。

図1 Webアプリケーション開発時のセキュリティチェックの有無についての回答。回答総数は263人

 さらに「セキュリティ対策が不十分な理由」を尋ねたところ、「チェック人材/ノウハウが少ない」という回答が約6割にも上った。このことから、「発注者のセキュリティ意識が希薄」なため、発注者から明確に要求されない部分には対応しないまま、脆弱性を含んだアプリケーションが開発されるという悪循環に陥っているようだ。

セキュアプログラミングの学び方

 こうしたアプリケーションやシステム開発におけるセキュリティ対策については、国もその重要性を訴えている。内閣官房情報セキュリティセンター(NISC:National Information Security Center)は2007年1月23日に、「人材育成・資格制度体系化専門委員会報告書」を公表した。その中で、一般ベンダのソフトウェア開発者について、「セキュアプログラミング技法や開発したプログラムの脆弱性を点検する製品の活用法等、製品等を製造・提供するに当たって必要となる最低限の情報セキュリティに関する能力」を習得できるような計画的な育成方法の必要性に言及している。

 問題は、セキュアプログラミング技法などの知識や技術を、どのようにして身に付ければいいのか、という点にある。個人の意識に依存しているようでは、教育レベルのばらつきによるクオリティの不確実性が生じるし、開発効率に与える影響も少なくない。

 セキュリティはプロジェクト全体にかかわるような技術、必要スキルであることを認識し、体系的に学習させることが望ましい。その1つの方法が、ベンダなどが提供するトレーニングなどを利用することだ。

 シマンテックが2006年に発表し、実施している「セキュアアプリケーション開発技術者認定制度」を利用すれば、効率よく体系的にセキュア開発を学ぶことができるだけでなく、資格を取得することも可能だ。

 シマンテックが設立した制度であることから、ベンダの製品やサービスに依存した制度ではないかという疑問があろう。しかし本制度は、同社が長年にわたって提供してきたセキュリティアプリケーションに関するコンサルティングのノウハウを基に作られたものであり、同社の製品に依存したものではないことが特長の1つである。

トレーニングの特長

 このトレーニングの優れている点は、開発プロセスの上流の設計段階から実装、テストまで、システム開発ライフサイクル(System Development Life Cycle:SDLC)全体を通したトレーニングを受けることができることだ。

 トレーニング内容を具体的に見てみよう。トレーニングの目的をシステム構築の要件定義、設計、開発、品質テストのプロセスに沿った人材育成とし、アナリスト、アーキテクト、プログラマ、テスティングエンジニアの4分野でそれぞれトレーニングコースを提供する(図2)。

図2 セキュアアプリケーション開発技術者認定制度に基づくトレーニングは、開発プロセスの設計段階から実装、テストまで、システム開発ライフサイクル全体を4分野に分け、その4つにそれぞれに専門のコースを設けている。クリックすると図を拡大します

 例えば分析・要件定義の段階を担うアナリストコースでは、講義で脅威分析、リスク分析、セキュリティ要件定義作成を、実習でリスクプロファイリング、脅威分析、リスク分析、セキュリティ要件定義書の作成を学ぶ。アーキテクトコースでは、講義でセキュリティモデル、サービスと基盤レベルにおけるセキュリティデザイン、テストケース作成を、実習でコンポーネントレベルにおけるセキュリティデザイン、テストケース計画の作成を学ぶ。

シマンテック コンサルティングサービス本部ディレクター テルミ・ラスカウスキー氏

 シマンテックのコンサルティングサービス本部ディレクター テルミ・ラスカウスキー氏は、トレーニングの特徴を次のように説明する。「このトレーニングは受講者の皆さまにアプリケーションセキュリティを確実に身に付けていただくために、実習を多く取り入れていることが特長です。トレーニングは講義と豊富な実習を通じて最新のノウハウを習得していただけるように構成されています。また、トレーニングはアプリケーションの要件定義から導入テストまでの各開発段階におけるセキュリティ要件のトレーサビリティを重視しており、各企業でアプリケーションセキュリティを本格的に導入するための第一歩として利用していただければ幸いです」

 トレーニング料金には認定資格取得のための試験費用1回分が含まれる。セキュアなシステム開発を行うための体系的なカリキュラムで構成されたこのトレーニングの受講は、効率的な開発を行ううえでプラスになるだろう。なお、トレーニング後の試験は受講した内容の理解度を確認するための客観的な指標として利用できる。セキュアなシステム開発を行うための体系的、効率的な学習方法として、本講座の受講を検討してみてもいいのではないだろうか。

 このトレーニングを受講して、能動的セキュリティ、攻めのセキュリティ対策のノウハウをわがものにしよう。それはすなわち、開発エンジニアとして自らを差別化するスキルになるはずだ。

シマンテックのセキュアアプリケーション
技術者認定制度に興味を持った方へ
現在、トレーニングで利用するテキスト、試験問題のサンプルを
シマンテックのWebサイトからダウンロードできます。



提供:株式会社シマンテック
企画:アイティメディア株式会社
制作:@IT編集部
掲載内容有効期限:2007年4月30日