情報セキュリティ講座(96) バッファオーバーフロー
ここからは、サイバー攻撃について書きます。以前サイバーセキュリティについて書きましたので、内容が被ると思いますが、大切な内容ですので、改めて書きます。
バッファオーバーフローは、サーバのメモリ領域に意図的な書き込みをすることで、サーバに対して攻撃者の意図する操作を行うものです。
メモリというのは、メモリのアドレスと記憶領域があります。一度確保されたメモリ記憶領域は、解放されるまで他のプログラムでは使えないことになっています。
ところが、C言語などでは、直接メモリ空間を操作することができるため、悪意ある攻撃者が、プログラマが予定していないメモリ領域に、書き込みをすることができます。例えば、システム用に準備されているメモリ領域に、正常値ではない戻り値を書き込み、コンピュータに想定しない動作をさせるという方法です。
このような攻撃を防ぐためには、メモリの取得・メモリの解法が、機能として確立しているプログラミング言語を使うか、C言語などでもメモリ管理ができる関数を使うことが有効です。
CやC++などで作られたプログラムがあれば、このバッファオーバーフローの脆弱性が疑われるので、安全なプログラミングが行われているか、確認することが有用です。