マカフィー株式会社 公式ブログ

intel-security®, Inc.

Corporate] 2016年11月15日 更新

第37回:今だから学ぶ! セキュリティの頻出用語:バッファオーバーフローとは?

 

「セキュリティに対する重要性は理解したけれど、用語が難しくて」という声を聞くことがよくあります。そんな方に「今だから学ぶ!」と題して、連載でセキュリティの頻出用語を解説します。第37回は、「バッファオーバーフロー」についてです。

バッファオーバーフロー(buffer overflow)は、読んで字のごとく、「buffer(バッファー)」が、「overflow (あふれ出す)」ことをさし、メモリー領域を破壊すること、あるいはそれに従って予期しない動作が起きることをさします。

20161025_fotolia_80353915_subscri_3

脆弱性に関するニュースに、「悪意のあるコードが実行される可能性がある」といった報道がなされていることに気がつくことも多いでしょう。このようなセキュリティホールとして、利用される割合が高いものの1つが、バッファオーバーフローです。バッファオーバーランと呼ばれることもあります。

C/C++言語などで開発したプログラム内であらかじめ確保しているメモリー領域のことをバッファと呼びます。バッファには大きく3つの領域があります。実行命令が格納されているコード領域、プログラム実行のための一時的な情報が格納されているスタック領域、計算や操作のためのデータを格納するヒープ領域の3つです。バッファオーバーフローは、このバッファの大きさを超えるデータを送り込み、データをそのバッファから“あふれ”させ、システム上で悪意のあるプログラムを実行させることをいいます。例えば、システム上にある重要な情報を盗んだりするプログラムを実行させることが可能です。バッファオーバーフローを利用して、サイバー攻撃を行うことをバッファオーバーフロー攻撃といいます。

バッファオーバーフロー脆弱性対策には多くのものが考案されています。まず、アプリケーション開発側で、セキュアな(安全な)プログラミングを実施することが重要です。バッファオーバーフロー対策がなされたC/C++以外の言語を利用して開発することも一つの方策です。しかし別の言語を使ってもすべての問題を解決できるわけではありません。多くの言語がCのライブラリに依存していたりするからです。

また、現実的にすべてのアプリケーションをC/C++以外の言語で開発することは難しいものです。

C/C++で開発する場合は、『セキュア・プログラミング講座:C/C++言語編』(独立行政法人 情報処理推進機構)を参考にすることも役に立ちます。このドキュメントでは開発工程の中のタイミング別に、次のような対策を紹介しています(詳しくはリンク先をご確認ください。)

  1. ソースコード記述時の対策
    領域あふれを未然に防ぐように配慮してソースコードを記述する対策です。

  2. ソースコードの静的検査
    ソースコードを領域あふれ等の観点から検査し、 造り込まれた脆弱性を最も早期に見つけ出す対策です。

  3. あふれを検出するデバッグ
    プログラムのデバッグの際に領域あふれの問題を見つける対策です。

  4. 運用環境における防御

プログラムのリリース後に、 ソフトウェアの運用環境の機能を利用してバッファオーバーフロー攻撃を阻止するものです。 

利用者サイドのバッファオーバーフロー対策としては、まずソフトウェアベンダーから提供される修正パッチを速やかに適用し、最新の状態を維持することが重要です。


【参考】
CWE-119 バッファエラー  
『IPA セキュア・プログラミング講座:C/C++言語編』(独立行政法人 情報処理推進機構)

【関連記事】
今だから学ぶ! セキュリティの頻出用語シリーズ 過去10記事 
第36回:今だから学ぶ! セキュリティの頻出用語:DDoS攻撃とは? 
第35回:今だから学ぶ! セキュリティの頻出用語:DoS攻撃とは?
第34回:今だから学ぶ! セキュリティの頻出用語:常時SSLとは? 
第33回:今だから学ぶ! セキュリティの頻出用語:スピアフィッシングとは? 
第32回:今だから学ぶ! セキュリティの頻出用語:ショルダーハックとは? 
第31回:今だから学ぶ! セキュリティの頻出用語:SQLインジェクションとは? 
第30回:今だから学ぶ! セキュリティの頻出用語:ブルートフォースアタックとは? 
第29回:今だから学ぶ! セキュリティの頻出用語:C&Cサーバーとは? 
第28回:今だから学ぶ! セキュリティの頻出用語:ゼロデイ攻撃とは? 
第27回:今だから学ぶ! セキュリティの頻出用語:CVEとは? 

「今だから学ぶ! セキュリティの頻出用語」アーカイブ 第1回~第19回

必見 ランサムウェア情報 身代金被害急増中!

Also Find Us On

マカフィーは、インテルコーポレーション(NASDAQ:INTC)の完全子会社であり、企業、官公庁・自治体、個人ユーザーが安全にインターネットの恩恵を享受できるよう、世界中のシステム、ネットワーク、モバイルデバイスを守るプロアクティブで定評のあるセキュリティソリューションやサービスを提供しています。詳しくは、http://www.mcafee.com/jp/をご覧ください。

 

© 2003-2017 McAfee, Inc. All Rights Reserved.