なぜ、「脆弱性」はなくならないの?:セキュリティ、いまさら聞いてもいいですか?(11)(4/4 ページ)
サイバーセキュリティの“基礎の基礎”をおさらいする本連載。今回はソフトウェアに「脆弱(ぜいじゃく)性」が生まれてしまう理由や、開発者/利用者として可能な脆弱性への対処方法について解説します。
脆弱性診断以外の対策とは?
脆弱性を作り込んでしまう可能性を減らすために、診断以外にできることはあるでしょうか?
「ファジング」を実践するなど、さまざまな手法を組み合わせて工夫しましょう。
脆弱性を作り込まないようにするには、まず開発者が脆弱性について理解を深め、意識を高めることが重要です。そのためには、定期的に教育を続けることだけでなく、上述のように設計から開発、テストからリリースまで全ての場面でセキュリティに関するあらゆるチェックを実施します。
このとき、ソフトウェアの開発者も想定していないようなデータを入力し、それに対する応答を見ることで脆弱性の有無を判断する「ファジング」と呼ばれる検査手法があります。こうした手法を用いることも有用でしょう。ファジングを実施するツールもいくつか登場していますので、ぜひ試してみてください。
参考リンク:「脆弱性対策:ファジング」(IPA)
利用者側として、脆弱性に対抗する方法はないのでしょうか?
「脆弱性緩和ツール」を使うのも1つの方法です。
ソフトウェアに脆弱性が見つかると、修正プログラムが提供されることが一般的です。しかし、開発者が脆弱性に対応するまで、利用者としては危険な状態のソフトウェアを使い続けなければなりません。
Webアプリケーションの場合は、脆弱性への対応が終わるまでシステムの公開が停止されるのが一般的で、該当のシステムを使わないことしか対処法はありませんが、デスクトップアプリケーションの場合、「脆弱性緩和ツール」を使うのも1つの方法です。
例えば、Windowsの場合、Microsoftから提供されている「Enhanced Mitigation Experience Toolkit(EMET)」があります。これはソフトウェアに存在する未修正の脆弱性が悪用されることを防止するセキュリティツールで、脆弱性が存在するアプリケーションに更新プログラムが適用されるまでの間、システムを攻撃から保護できる場合があります。
こうした脆弱性緩和ツールを使うことで、未知の脆弱性を狙う「ゼロデイ攻撃」を未然に防げる可能性があります。ただし、既存のソフトウェアの動作に影響を及ぼす恐れもあるため、うまく活用するには利用者に対してある程度のスキルが要求されます。
増井敏克(ますい としかつ)(増井技術士事務所代表)
技術士(情報工学部門)、テクニカルエンジニア(ネットワーク、情報セキュリティ)、その他情報処理技術者試験にも多数合格。
ITエンジニアのための実務スキル評価サービス「CodeIQ」にて、情報セキュリティやアルゴリズムに関する問題を多数出題している。
また、ビジネス数学検定1級に合格し、公益財団法人日本数学検定協会認定トレイナーとして活動。「ビジネス」「数学」「IT」を組み合わせ、コンピュータを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発を行っている。
近著に「おうちで学べるセキュリティのきほん」(翔泳社、2015)、「プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問」(翔泳社、2015)「シゴトに役立つデータ分析・統計のトリセツ」(ソシム、2016)がある。
Copyright © ITmedia, Inc. All Rights Reserved.