- スペシャル
- 2015/12/21 掲載
制御システムセキュリティ、過去4年の脆弱性は他の分野よりも深刻度が高い-JPCERT/CC(2/2)
- ありがとうございます!
- いいね!した記事一覧をみる
またCWEというポピュラーな分類学により上位階層で集約した結果は、不適切な入力確認と範囲エラーだけで60%を占めた。
「これらの傾向を見ると、組込み制御系では脆弱性の30%がバッファオーバーフローで、C/C++プログラム開発での古典的な脆弱性が繰り返されていることがわかります。また攻撃コードの公開率も36%と高く、ITシステム全般の脆弱性よりも脅威が高い傾向にあります」
脆弱性対策としてのCERT Cコーディングスタンダード
では現状を踏まえ、どのような対策をしていけばよいのだろうか? 久保氏は「いろいろなフェーズでのアプローチがありますが、我々はCERT Cコーディングルールが有効な対策になると思います」と語る。CERT Cコーディングスタンダードの構成は、MISRA Cとあまり違いはない。コーディングルールに違反した典型例が紹介されており、修正アプローチや修正コードなども記載されている。CERT Cコーディングスタンダードでは、ICS-CERTアドバイザリで特定された脆弱性に対して、対策に使えるCERT-Cのルールをマッピングし、どういう対策ができるかを割り出せる。
「実際にマッピングしてみると、調査した445件の脆弱性に関連するCERT-Cコーディングルールは44件でした。このうち、脆弱性対策に有効な、CERT-C コーディングスタンダードへ準拠する際に必須となるルールが22個あることが判明しました」
さらに、これらのCERT-Cコーディングルールをサポートする静的分析ツールが「自動検出セクション」にまとめられている。ここでCERT-Cが独自開発するCompass/ROSEや、PRQAのQA・Cなども挙げられており、脆弱性検出の対応状況が記載されている。
最後に久保氏は「まず開発時に22のルールをカバーしているかを確認し、外注先にもルールを遵守したコードを納めてもらうことが大切です。また違反ルールのコードを静的解析ツールで検出できるかを確認し、ツールを新規導入する際にはCERT-Cコーディングルールのサポート状況も考慮しておきましょう。開発者にルールと脆弱性について学ぶ機会を提供することも重要です」とまとめた。
関連コンテンツ
PR
PR
PR