TOPセキュリティ > 深刻な脅威につながる、バッファオーバーフローとは(後)

セキュリティ

深刻な脅威につながる、バッファオーバーフローとは(後)

2020/02/13

Lucian Constantin CSO

バッファオーバーフローを防ぐには

 バッファオーバーフローはプログラムのミスによって紛れ込む。その手のミスをしないように開発者をトレーニングすることが第一だ。セキュアプログラミングに関する指針や書籍、あるいはセキュアプログラミングの認定プログラムの多くが、バッファオーバーフローを扱っている。また、CERT Coordination Center(CERT/CC)や、米カーネギーメロン大学のソフトウエア工学研究所(SEI)では、C/C++言語をはじめとする複数のプログラミング言語向けのコーディング標準を策定している。

 特に意識しなくてもバッファオーバーフローを防げるようにするには、メモリー安全性が確保されたプログラミング言語を利用するか、バッファオーバーフローを引き起こしやすい関数を安全にしたバージョンを備えているフレームワークやライブラリを利用する手がある。また、ASLRや、位置独立実行形式(PIE:Position-Independent Executable)など、バッファオーバーフローの影響を抑える機能を活用することも必要となる。さらに、バッファオーバーフローを検知するために、Microsoft Visual Studioの/GSフラグ、Red Hatが追加したFORTIFY_SOURCE GCCフラグ、StackGuard、ProPoliceなど、コンパイラのフラグや拡張機能を利用することも必要だ。

 ただし、いずれの方法も、完璧な防御を約束するものではない。内部と外部の両方のセキュリティチームを交えて、コードレビューやアプリケーションのセキュリティテストを定期的に実施することが重要だ。また、自動テストのワークフローにファジングなどのツールなどを取り入れることも大切である。

(了)

翻訳:内山卓則=ニューズフロント
記事原文(英語)はこちら

↑ページ先頭へ