2.3 バッファオーバーフロー攻撃〜2.5セッションハイジャック
情報処理教科書 情報セキュリティスペシャリスト 2013年版
- 作者: 上原孝之
- 出版社/メーカー: 翔泳社
- 発売日: 2012/09/11
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 2回
- この商品を含むブログを見る
2.3 バッファオーバーフロー攻撃
スタックBOFとヒープBOFがあるが、BOFと言ったらスタックBOFを指すことにする、そう。
バッファーオーバーフロー攻撃は、確保したメモリより大きいサイズのデータを書き込むことで、スタック内のほかの領域を書き換える。
サブルーチンの戻り先を不正なプログラムに書き換えることで、悪さをする。
悪さの例
- ターゲットとなるサービスをシェルに置き換え
- rootでsetuid/setgid属性をもつプログラムを実行させ、BOFを起こさせる。→root奪取
原因になるポイント
C/C++のstrcpyが例としてあげられている。
書き込み先に対して、書き込むデータのサイズをチェックしないので、バッファオーバーフローが起こりうるという。
このへんVisualStudioならビルド時に警告してくれるので、strcpy_sでも使うといいと思う。
でもstrcpy_s使えば安全ってわけじゃなく、ちゃんと返り値のチェックをしないとあんまり変わらない。
あっ!島だ! strcpy_s
晴 - Note
プログラム書くときは静的にチェックしましょうよしましょうよってば
バッファオーバーフロー起きるんじゃない?と教えてくれるものはいろいろあるわけで。
VisualStudioにはcppcheckなんて入れるといいんじゃないでしょうか。
地獄の苦しみ、メモリ破壊をCppcheckで華麗に食い止めよう! | Futurismo
Visual Studio + CppcheckでC++コードの静的解析ができる - 大人になったら肺呼吸
詳しくないので、実はもっといいのがあるかもしれない。
たぶん他の言語にも似たようなものがあると思う。
2.4 パスワードクラック
パスワードクラックとは、何通りものパスワードを繰り返し試して OSやアプリケーションプログラムに設定されたパスワードを破るという 古典的な攻撃手法である。
研究室にいたときはサーバーに辞書攻撃きてる跡がメールで送られてきたりしてた。
パスワードクラックの種類が3つ書いてある。
推測によるパスワードクラック
誕生日とか電話番号とか
辞書ファイルを用いたパスワードクラック
sysとかrootとかtempとか、aliceとかbobとか
2.5 セッションハイジャック
セッションハイジャックとは、 クライアントとサーバの正規のセッションの間に割り込んで、 そのセッションを奪い取る
正規のサーバになりすますパターン、正規のクライアントになりすますパターン、どちらにもなりすましてどちらも騙すパターン。
ネットワークにも少し詳しくなってから要復習。*2