サイバーセキュリティの試験はどの程度まで実施するべきか(1/3)
サイバーセキュリティの試験はどの程度まで実施するべきか(1/3)
IEC 81001-5-1の5.7項では、下記のセキュリティ試験の実施が求められている。
- セキュリティ要求事項試験(7.1)
- 脅威軽減試験(7.2)
- 脆弱性試験(7.3)
- 侵入試験(7.4)
はたして、これらすべての試験の実施は必須なのであろうか。
1.セキュリティ要求事項試験(5.7.1)
セキュリティ要求事項試験では、要求仕様書において要求されたセキュリティに対する試験を実施する。
セキュリティ要求事項試験では、意図する使用環境に基づき、次の種類の試験を含める。
- セキュリティ要求事項の機能試験
- 性能およびスケーラビリティ試験
- 限界試験(セキュリティに影響する可能性のある試験)
- 境界・エッジ条件
- ストレス試験
- 不正な形式の試験
- 予期しないインプットの試験
- サービスプロバイダー、当社および操作者の間の責任協定取決書に基づく、ソフトウェアが意図する機能を実現するために用いるソフトウェアサービスに対する試験。
- クラウドサービスに対する試験
- サービスとしてのソフトウェア(SaaS)に対する試験
- サービスとしてのインフラストラクチャー(IaaS)に対する試験
- サービスとしてのプラットフォーム(PaaS)に対する試験
これらは、要求仕様書において要求されたセキュリティに関する試験を対象に実施することとなる。
2.脅威軽減試験(5.7.2)
脅威軽減試験においては、各軽減策が有効であるかどうかを試験することとなる。
軽減策の検証
軽減策が、設計にその他の脆弱性を生じさせないことを確実にする。
各軽減策の検証試験
特定の脅威に対応するために実装した各軽減策が、設計どおりに動作することを確実にするために、適切な試験内容を策定し、実行する。
各軽減策の妨害試験
各軽減策を妨害する計画を作成し、実行する。
3.脆弱性試験(5.7.3)
既知の脆弱性に対する試験は、少なくとも、確立され業界で認められた、既知の脆弱性の公的な情報源の最近の内容に基づいたものでなければならない。
必要に応じて、以下の試験を実施することとなる。
- 悪用ケース試験
悪用ケース試験では、セキュリティの問題を見つけることに焦点を当て、不正なインプットまたは予期しないインプットに対する試験を実施する。
これには、全ての外部インターフェースおよびプロトコルに対し、下記を実施する。- 手動の悪用ケース試験
- 自動化した悪用ケース試験
- 特殊な種類の悪用ケース試験
具体的には、ファジング、ネットワークトラフィックの負荷試験、容量試験などである。
——————————————————————————————————————–
ファジング(Fuzzing)とは
ソフトウェアの脆弱性を見つけるためのテスト手法の一つである。
具体的には、プログラムに対して、意図的に不正なデータや異常なデータ、ランダムなデータを大量に送り込み、プログラムがクラッシュしたり、予期せぬ動作をしたりしないかを検証する。
ファジングは、主にセキュリティ上の脆弱性を発見するために用いられる。
悪意のある攻撃者は、プログラムの脆弱性を突いて、システムに侵入したり、情報を盗み出したりする可能性があるため、開発段階でファジングを実施し、脆弱性を修正しておくことが重要である。
ファジングには、主に以下の2つの種類がある。
- ブラックボックスファジング: プログラムの内部構造を把握せずに、外部からデータを入力してテストする方法。
- ホワイトボックスファジング: プログラムの内部構造を把握した上で、ソースコードを解析し、脆弱性が潜んでいそうな箇所を狙ってテストする方法。
ファジングは、自動化されたツールを用いて行われることが多く、効率的に脆弱性を発見することができる。