情報セキュリティ対策にはネットワークを使った通信の禁止や暗号化によるデータ保護などが行われます。しかし、開発するソフトウェアに潜むリスクについてはあまり考慮されません。
セキュリティホールのあるソフトウェアが動いていると、攻撃者に侵入され情報の破壊や盗難が行われる危険性があります。こういったことを防ぐためにも開発中のソフトウェアにセキュリティ対策が必要です。
ここではソフトウェアのセキュリティ対策に必要な要素になるセキュリティ・バイ・デザインについてお伝えします。
システム開発における「セキュリティ・バイ・デザイン」
セキュリティ・バイ・デザイン (Security by Design )はシステム開発の企画・設計段階から情報セキュリティを考慮し取り入れておく考え方です。
セキュリティ・バイ・デザインの提唱者
セキュリティ・バイ・デザインは、平成23年に内閣サイバーセキュリティセンター(NISC)が提唱したものです。現在ではデジタル庁が「政府情報システムにおけるセキュリティ・バイ・デザインガイドライン」を公表しています。(出典:デジタル庁公式サイト)
浸透してきた背景
近年、家電製品を始めとしたさまざまなモノがインターネットに接続できるようになりました。それと同時にIoT機器を狙った攻撃も数多く発生しています。
IoT機器に内臓されているプログラムに脆弱性が見つかった場合、運用段階での修正や対策が非常に困難になります。従って始めからセキュリティ上のリスクが排除されたプログラムにしておく必要があります。
セキュリティ・バイ・デザインはこうした要因から主にIoT機器の開発現場で浸透してきました。現在では開発するプログラムに関わらずあらゆる現場で用いられています。
システム開発におけるセキュリティ対策とは?
システム開発でセキュリティ対策を実施するには、セキュリティ・バイ・デザインを積極的に取り入れて進める必要があります。
以下にセキュリティ・バイ・デザインの基本になることについて解説します。
セキュリティ対策を予防的に実施する
セキュリティ対策は事故や事象(以下インシデントと言う)が発生した場合、後から対処するのが一般的です。
セキュリティ・バイ・デザインはインシデント発生後に対応するのではなく起こらないように始めから対応しておこうという考え方です。開発するソフトウェアにセキュリティリスクを潜ませないように前もって対策します。
全システムライフサイクルを守る
開発プロセスにおける特定の工程だけでなく全てのフェーズで実施するようにします。
プログラミング工程にのみ攻撃を受けにくいプログラムを作ったとしても対策が出来ているとは言えません。システム開発の企画段階から導入・運用まで全工程でセキュリティ対策を盛り込むことが必要になります。
また開発を委託する場合は、関係者との間でどのように対策を取るか、責任範囲をしっかり決めておくことです。責任を明確にする過程で対策の漏れを防ぐことができるからです。
設定値を高セキュリティ状態にする
システムに必要な設定値をあらかじめ高いセキュリティ状態にして利用者に提供します。
ユーザーに提供するシステムの初期設定値が高セキュリティ状態であれば、リスクが少ない状態で提供できるからです。また導入後に値を変更する必要がなくなり、ユーザーによる思いがけないミスを防ぐことができます。
システムの特性に合わせる
ある一つのシステム開発でセキュリティ・バイ・デザインを用いたからと言って、別のシステム開発でも同じ内容のことを実施すればよいということではありません。
制作するシステムの特徴や重要度に合わせてそれぞれ検討し対策する事が求められます。開発する各々のシステムに合わせることが大切です。
セキュリティリスクの評価と管理を行う
情報セキュリティについて考える場合、リスク対策だけでなくリスク評価も重要です。
リスクはシステムの技術的な部分にだけ潜むものではありません。組織が要因になることもあります。システムや組織にあるリスクを評価し、その管理方法や体制についても検討しなければなりません。
利便性とのバランスを考える
権限設定などの対策を行うと、使いにくくなるといった不満の声が出る事があります。
例えば業務上必要なファイルを閲覧する場合、そのファイルに次のようなセキュリティ対策を実施していたらどうでしょうか。
- ファイルを閲覧するたびに部内の承認を得る
- ファイルへアクセスするパスワードは毎回管理者から付与される
- ファイルへアクセスした開始時間と終了時間を記録し部内へ報告する
ファイルにアクセスするまで手順が複数にあり、メンバーから少し簡素にしてほしいと要望が出るはずです。
情報セキュリティでは機密性(許可された人がアクセスできること)と可用性(必要なときに必要な情報を扱えること)を考える必要があります。高いセキュリティを保ちつつ利便性の良いシステムにするため、バランスを見ながら開発する事が重要になります。
システム開発でセキュリティ対策を行うメリット
システム開発でセキュリティ対策を行うと次のようなメリットがあります。
納期の遅れを防ぐ
開発中のソフトウェアにセキュリティの不備があった場合、改修に時間が取られ、納期が守れない危険性が生じます。そういった危険性を回避するにはセキュリティ・バイ・デザインに沿ったソフトウェアの制作が有効です。
システム開発の当初から高いセキュリティを考慮して導入しておけば修正することもなく納期も守る事ができるからです。
コスト増を防ぐ
システム開発では一旦制作したプログラムへの仕様変更や修正がないことが非常に重要です。当初の計画通りにシステム開発を進めることができれば、コストに影響が出ないからです。
万が一開発中のソフトウェアにセキュリティ上の脆弱性が含まれていた場合、その対策をしなければなりません。そうなると予定外の作業が発生し、工数面だけでなく金銭面でもコストが増えてしまいます。
システムのセキュリティ品質が高まる
セキュリティ・バイ・デザインを取り入れたシステムは全体的にセキュリティ面の品質が向上します。
なぜなら開発するシステム毎に一定のセキュリティ対策が実施され、どのシステムでも品質の均一化が行われます。そうするとシステム間でのセキュリティ品質が均等になり、全体の品質が高まります。
セキュリティ意識が高まる
開発メンバーはセキュリティの高いソフトウェア制作に必要な知識や技術を習得しなければなりません。
そのため開発に携わるメンバーには教育を実施する必要があります。その場合セキュリティの高い開発手法など技術的なことだけを伝えるのでなく、情報セキュリティ全般について行うことが大切です。
全般的な教育を実施することでメンバーのセキュリティに対する意識が高まり、内部不正や情報漏洩・事故発生を防ぐことができます。
まとめ
いかがでしたか。セキュリティ・バイ・デザインとそのメリットをご理解いただけたでしょうか。
システム開発でセキュリティの検討を進めるには豊富な経験のあるシステム会社の協力が欠かせません。
システム開発の外注先選びでお困りの方は、弊社までお気軽にご相談ください。当社がこれまで支援してきた開発事例の共有、企画・コンサルティング、要件定義や実際の開発支援まで包括的にサポートさせていただくことが可能です。
むやみな営業電話などは決して行いませんので、まずは無料のご相談をお待ちしております。