第5回 DoS攻撃

第5回
DoS攻撃
その攻撃と対処
NECラーニング
山崎 明子
DoS攻撃とは?

サービス妨害(Denial of Service)
具体的な攻撃例
大企業
行政機関
有名な
ポータルサイ
ト
有名人の
オフィシャル
サイト
DoS攻撃の種類

サービス妨害(Denial of Service)
CPU過負荷攻撃
アプリケーションの
欠陥への攻撃
メモリ過負荷攻撃
リソース過負荷攻撃
ネットワーク帯域幅
攻撃
アプリケーションの欠陥への攻撃

アプリケーションの欠陥を狙った攻撃

例)Ping of Death


データ構造の問題を利用した攻撃
対処


ネットワークから送られてくる情報を信頼しない
堅牢なプログラムコードの記述


コードレビュー
テストの実施

さまざまなパターンを想定してチェック
CPU過負荷攻撃

負荷の高い処理を実行



例)無限のループ処理
例)F5アタック(F5攻撃)
対処

システムのパフォーマンスをアップさせる

攻撃を受けたときのダメージを最小限にする
メモリ過負荷攻撃

メモリを大量に消費


ページングが発生
オブジェクトの生成に失敗


例外をスロー
対処

メモリの割り当てを適切に行う



要求元が適切であるかどうか?
必要最低限のメモリを割り当てる
設計段階で攻撃を考慮
リソース過負荷攻撃

特定のリソースを使い切るまでリソースを消費

数が限られたものを狙う


量が限られたものを狙う


各種ハンドル
メモリ、ディスク、ネットワーク帯域幅
対処

ユーザー、プロセスごとに、使用数、量を制限


プール、クォータ、タイムアウト
設計の時点で考慮すべきこと

攻撃を受けたら、動作を変更
ネットワーク帯域幅攻撃

ネットワークに大量のデータを流す攻撃

例)Smurf攻撃
 Pingコマンドを利用



Request → Reply
ターゲットに対し大量のデータが送られる
対処


システム管理者による防御
 ルータなどで送信元をチェック
 ブロードキャストアドレス宛のデータは無視
開発者
 余計な応答(Reply)はしない
 必要なときだけエラーを返す
効果的な対処

コードの質を高める






コードレビュー
テスト
システムのパフォーマンスをアップする
セキュリティを意識した適切な設計
攻撃を検出し、保護する機能
不正な要求への対処をチェック
完全な解決策はある?

DoS攻撃からシステムを保護


難しい・・・
DoS攻撃の問題を完全に解決する方法

ない!
多層防御

多層防御の基本

具体的には・・・




セキュリティを考慮したシステム開発
管理者はファイアフォール
ユーザーには教育
人や組織、技術、プロセス
DoS攻撃のまとめ

大きく分けると2種類



アプリケーションの欠陥を狙ったもの
各種リソースを使い果たすもの
攻撃への対処



攻撃の種類ごとの効果的な対処
基本的な対策との多層防御も大切
設計が重要
リファレンス

開発者のためのセキュリティサイト


MSDNデベロッパーセキュリティセンター
 http://www.microsoft.com/japan/msdn/security/
開発者向け セキュリティ オンライン セミナー
 http://www.microsoft.com/japan/msdn/security/seminars/
 アプリケーションセキュリティの基礎
 実践! セキュアなコード記述 Part 1
 実践! セキュアなコード記述 Part 2