バッファオーバーフロー

セキュリティ(2)
05A2013
大川内 斉
今回の内容
様々なセキュリティに関する技術がある中で
今回は、実際の攻撃(アタック)についての
検証を行った
バッファオーバーフロー
(バッファオーバーラン)
・セキュリティホールを悪用した攻撃で、システムが
想定しているサイズ以上の大量をデータをバッファに
送り込むことにより、システムを機能停止にしたり、
意図的なデータを与えることにより、制御が奪われて
しまう
対策
パッチ(修正プログラム)を当てる
バッファサイズを指定できる命令を使う
自動的なチェック機能
バッファオーバーフローの例
test()
{
int m;
・・・・
}
int main()
{
char str[3];
char str2[3];
・・・・
printf("str = %s\n",str);
printf(“str2 = %s\n",str2);
scanf("%s",&str);
printf("str = %s\n",str);
printf("str = %s\n",str2);
test();
・・・・
実行例
バッファオーバーフローの仕組み
スタックの中身
不正なプログラム
コードと偽のアドレス
でオーバーフロー
test()の内部変数mの領域
main()への戻り値アドレス
str2の格納領域(3バイト)
strの格納領域(3バイト)
偽のアドレスで
書き換える
不正な
プログラム
を実行
配列の領域や戻り値アドレスはそれぞれ独立しているのではなく
連続した領域(実際には余分に取っている)に格納されている
DoS攻撃(サービス拒否攻撃)
・ターゲットのホストまたはサービスを利用できなくす
ることが目的。過負荷をかけたり、例外処理によっ
てサービスを停止させる
ping flood、mail bomb、smurfアタックなど
DDos(分散サービス拒否攻撃)
・DoS攻撃の分散型で、多くのコンピュータがター
ゲットに対して行う攻撃。攻撃主は不正なプログラ
ムを仕掛けられ踏み台となったコンピュータ
踏み台
踏み台
アタッカー
踏み台
ターゲット
pingコマンド
・ TCP/IPのネットワークでパケットが接続先まで
届いているかを確認
相手先ホストに対してICMPのエコー要求パケット
を送信し、相手からICMPエコー応答パケットが返
信されれば接続できる
① ICMPエコー要求
② ICMPエコー応答
5%
ping floodの検証
0%
100%
0%
通常時のネットワーク状況
Ping flood時のネットワーク状況
pingコマンドにより大量のICMPパケットを送り、ネットワークに負荷をかける
単純な攻撃法だが効果はある
ファイアウォールやルータ等でICMPパケットを破棄する
受け付けるパケット数を制限する(通常のpingと見分ける)
今後の予定



攻撃法の検証と分析
コンピュータウィルス
セキュリティに関連するソフトの作成
参考資料


サイト
・Wikipedia http://ja.wikipedia.org/wiki/
・IT用語辞典e-Words http://e-words.jp/
・ITpro http://itpro.nikkeibp.co.jp/
書籍
・ハッカーの教科書