2019.03.08サイバ課長FacebookTwitterはてブ処理能力を超えたコンピューターに不正なデータを送りつけて、誤動作を起こさせるバッファーオーバーフロー攻撃。対策方法がわからずに不安に思っている方のために、このページではその概要から対策方法まで幅広く解説しておりますので、ぜひ最後までご覧ください。まとめバッファオーバーフロー攻撃とは?バッファーオーバーフロー攻撃を簡単に説明すると以下のようなものです。攻撃対象のコンピュータに許容量以上のデータを送りつけ、誤作動を起こさせる脆弱性を悪用して誤作動したコンピューターの乗っ取りなどを行う乗っ取ったコンピューターを踏み台にして別のコンピューターを攻撃するこのように、コンピューターが許容できる以上の情報量で正常に動かなくなっている間に乗っ取りなどの悪さを行う非常に悪質なものです。大まかな流れなどを図にすると下記のようなイメージです。バッファオーバーフローはOSやアプリケーションプログラムの入力データ処理に関するバグを利用して、情報を不正に操作する攻撃を指しています。OSやアプリケーションが本来想定している値よりもずっと大きな値を変数部分に入力することで、処理しきれなくなった情報を溢れさせ(オーバーフロー)、本来想定していない他の領域を上書きしてしまうことから、このように呼ばれるようになりました。バッファオーバーフロー攻撃の種類バッファオーバーフローにはいくつかのバリエーションがあり、それぞれ攻撃方法が異なります。以下に代表例を示しますので、興味がある方は目を通して見て下さい。スタック領域型データ領域とリターンアドレスが記載されている部分に対してオーバーフローを起こし、リターンアドレスを攻撃者が書き換えてしまう。未使用領域の管理に双方向リストが用いられていることを悪用し、関数のリターンアドレス、例外ハンドラアドレス等を書き換えてしまう。その他の攻撃型ファイルのオーナー権限で動作するUNIX環境下で、rootのSUID属性をもつコマンドを悪用し、管理者権限を奪取。バッファオーバーフローの原因とは?非常に脅威となるバッファーオーバーフロー攻撃。危険性についてはお分かりいただけたと思いますが、この攻撃はどういった仕組みで行われるのでしょうか。コンピューターがプログラムを実行する場合、3つのメモリ領域を確保する必要があります。計算や操作のためのデータ格納そしてスタック領域とヒープ領域を合わせてバッファと言うのですが、バッファーオーバーフロー攻撃では、あらかじめ確保してあるバッファのサイズを超えたデータを入れることで、プログラムの誤作動を起こさせます。オーバーフローが起きてしまう根本的な原因は、OSやアプリケーションの脆弱性(メモリ領域に本来想定している情報量以上の値が入力された結果、リターンアドレスなどの致命的な部分を上書きしてしまう)にあります。バッファオーバーフロー攻撃の影響バッファオーバーフローによりメモリ領域が攻撃を受けてしまうと、攻撃者の手により様々な悪影響が生じます。代表的な被害の影響は以下の2つです。他のサイバー攻撃の踏台にされる侵入した攻撃者がオーバーフローにより入り込んだマルウェアを悪用することで、他のWEBサイトやサーバに対するサイバー攻撃の加害者に仕立て上げられてしまいます。管理者権限の乗っ取り管理者権限で動作しているプログラムにマルウェアをリンクさせ、管理者権限を奪取されてしまいます。記憶領域にあるパスワードやカード情報が流出したり、仮想通貨採掘プログラムなどにより被害が生じます。バッファオーバーフロー攻撃の事例ここで、これまでバッファーオーバーフロー攻撃によってどういった被害が起きているのか見ておきましょう。実際の被害事例には以下のようなものがあります。中央省庁のホームページ改ざん2000年と少し以前の事例になりますが、世間的に話題になった事例です。科学技術庁のホームページの改ざんやデーターの削除などに始まり、合計で24もの省庁のホームページが改ざんされた。これは、バッファーオーバーフローによる管理権限の乗っ取りが原因となって発生したものです。Facebookのサービス停止こちらは2015年1月に発生した事例で、facebookのサービスが複数の攻撃を受け、過負荷な状態に陥り、サービス停止になったものです。この例では、バッファーオーバーフローを引き起こすための手法としてDoS攻撃が行われたもので、世界のいくつかの地域から一斉に攻撃が行われたことがわかっています。攻撃されないための対策バッファオーバーフローによる攻撃を防ぐには、いくつかの対策が必要です。開発側とユーザー側では打てる手が違ってくるので、それぞれ分割して記載します。ユーザー側が打つことができる対策は多くありません。脆弱性を露呈しないように、セキュリティを向上させることが重要です。セキュリティソフトを最新にする不正なマルウェアの動作だけでなく、ネットワークの監視等も含めた総合セキュリティソフトをオススメします。使用しているアプリケーションの脆弱性を修正するためには、パッチの導入が欠かせません。バッファーオーバーフロー攻撃に限らず、サイバー攻撃の多くはプログラムの脆弱性を悪用する傾向があります。セキュリティ対策ソフトはこういった脆弱性を突く攻撃を検知し防ぐことが出来ますし、何よりプログラムアップデートによって脆弱性を解消することで攻撃自体を有効でなくすことが出来ます。したがって、これらの対応が非常に大切なものとなります。開発側が行うべき対策コード記述時の対策オーバーフローを未然に防ぐように配慮して、ソースコードを記述することが重要です。データ領域と記述するコードの量は常に意識することをオススメします。対策されたランタイムライブラリの導入も1つの手です。コードの静的検査オーバーフローが起きないかを重視して検査し、悪用されそうな脆弱性の有無をチェックしましょう。目視が難しい場合はソースコード検査ツールを利用を推奨します。あふれを検出するデバッグオーバーフローを防止するためには欠かせない工程です。オーバーフローの検出を得意とするデバッガもあります。DoS攻撃との違い大量にデータを送りつける攻撃として、DoS攻撃との違いがよくわからない方も多いかと思いますので、その違いを説明いたします。その違いを簡単に言うと、前述の通り「バッファオーバーフロー」は、コンピューターの脆弱性を突く攻撃のことで、コンピューターが確保しているメモリ領域を越えたデータが送られ、このデータに悪意のあるコードが含まれることにより、プログラムの誤動作などを起こす攻撃です。それに対して「DoS」は、外部のサーバなどに負荷をかけるために大量のデータを送る攻撃手法です。簡単にいうと、「バッファオーバーフロー」はコンピューターの内部への攻撃に利用され、「DoS」は外部から過剰に負荷を与える攻撃です。attack)とは、サイバーの攻撃の1つであり、攻撃目標であるサイトやサーバに対して大量のデータを送り付けることで行われる攻撃のことで、大きく分けて2つあります。攻撃対象に意図的に過負荷になるような大量のリクエストや大きなファイルを送りつけ、サービスの妨害を行うもの攻撃対象の脆弱性を突いて悪用するもの詳細は下記ページも参考にしてください。解説まとめバッファオーバーフローによる攻撃を受けると、甚大な被害が生じます。場合によっては自身が所有するパソコンやサーバが踏台にされることもあるので、突然犯罪者に仕立て上げられてしまう可能性もあります。高度な技術が必要なサイバー攻撃ですが、"いつ自分が受けるかもしれない"と考え、セキュリティ体制を万全にしておきたいところです。セキュリティ情報を伝えるべく日々奮闘中プロフィールはこちら事務局からのお知らせ当サイト掲載コンテンツの二次利用について2019.08.07当サイトコラムニスト星野靖裕さんが東京新聞に取材されました。資料請求リストに製品がありません。