2005年度 情報システム構成論 第5回 ネットワークセキュリティ基礎 西尾 信彦 [email protected] 立命館大学 情報理工学部 情報システム学科 ユビキタス環境研究室 具体的問題 • Ethernetの問題 – 盗聴・詐称・改ざん • TCP/IPの問題 – 盗聴・詐称・改ざん • 上位層での脆弱性 – プロトコル仕様 – プロトコル実装 – アプリケーション設計,実装 ネットワークは信用できない • LANはホストの追加が非常に簡単 – 無線LANは自由に接続が可能 – 正規のクライアントのみが接続している保証 がない 有線LANもコネクタを繋ぎ直せば、 誰でもネットワークに参加できる • インターネットはそもそも信用できない DHCPの問題 • DHCP (Dynamic Host Configuration Protocol) – IPアドレスを動的に配布する – 要求があり、空きがあれば自動的に配布さ れ、正規ユーザ、不正規ユーザを見分ける機 構をもっていない – MACアドレスを指定して限定することは可能 ネットワーク参加時に ユーザ認証をする方法 • MACアドレス詐称は可能 – DHCPの機構では、参加を防ぎきれない • IEEE802.1xを利用する – IDとパスワードを利用 – 正規のユーザの場合のみIPアドレスを配布 – ユーザ認証情報を保持するサーバを利用 RADIUS(Remote Access Dial In User Service) 盗聴・改ざん・詐称問題 • Ethernetの問題 – IEEE802.1xを利用しても、IPアドレスを 手動で取得、設定されれば意味がない • IPの問題 – インターネットでは、ルーティング経路が全て 悪意のないホストではない可能性がある – 途中で改ざんされても、それを知る機構が存 在しない Ethernet盗聴 • Ethernetの動き – 全パケットを一度受け取り、 自分宛てでないパケットを破棄する 正規の利用者の場合 不正な利用者の場合 破棄する前に 読んでしまえ IPパケット改ざん・詐称 ルータの所持者が悪意のある第三者の場 合、改ざん、盗聴される恐れがある 盗聴・改ざん・詐称の被害 • パスワードなどを平文で送信した場合に、 パスワードを見ることが出来る – パスワードアタックに利用される • もっとも原始的で、非常に有効な攻撃方法 • メールの内容や、見ているWebページなど の内容を全て取得することが出来る – プライバシーや機密の問題 盗聴・改ざん・詐称の被害 • システムを詐称して,パスワードを入力さ せる. • ユーザのリクエストを変更する. WEP (Wired Equivalent Privacy) • 無線LANでの通信路の暗号化 • RC4アルゴリズムを利用した秘密鍵暗号 方式 • 40bit 方式で制定されたが,近年では 128bit方式が採用されている • さらにWPAが制定されている Switching Hubによる盗聴防止 • 共有バスではないので盗聴されない • 近年のネットワークのほとんどがSwitching Hub方式 • さらにVLAN(仮想LAN)の構築も可能 • おかげでSniffingやtcpdump, etherealなど が利用できなく(Switchを越えられなく)なっ ている. IPSecを利用する • ESP(Encapsulation Security Payload)と AH(Authentication Header) • 主流はESP,以下ESPについて • IPレベルでパケットを暗号化 • IPSecで可能なこと – – – – データ部の暗号化 IPアドレスの隠蔽 パケット改ざんの検出 送信元成りすましの回避 IPSecの動き • 暗号化とIPアドレス隠蔽(トンネリング) IPSecの鍵の動き(IKE: Internet Key Exchange) IPSecがあれば大丈夫? • 特定ルート間の暗号化は可能だが、 不特定ルート間の暗号化は出来ない –例 メールは不特定多数のメールサーバと通信す るため、IPSecで暗号化することが出来ない (対象サーバが対応している保証が無いた め) • アプリケーション・プロトコルレベルでの セキュリティ対策も必要になる 上位層の問題 • アプリケーションバグ • コーティングミスや設計ミスによる物 – 例: 下記のようなコードを含むプログラムは 引数に『;』を含む文字列を与えることによって、自由に コマンドを実行可能 void exeMkdir(char * arg){ char *cmd = malloc(sizeof(char)*(strlen(arg)+strlen(“mkdir “))); sprintf(cmd,”mkdir %s”,arg); exec(cmd); } • 代表例:バッファオーバーフロー バッファオーバーフロー • バッファオーバーフロー – 事前に確保しておいたメモリ以上の書き込み を行うときに発生する。 – 古いプログラムや、設計が甘いプログラムな どで発生する – 代表的なものはC言語のstrcpyなどを利用し たときに発生するもの char to[10]; strcpy(to,”0123456789_over”); バッファオーバーフロー攻撃 任意のコード データ領域 データ領域を越えて書き込み 書き込み対象 データ領域 スタック情報を上書き システムスタック情報 攻撃用の コードを実行 アプリケーション OS本体 プロトコル仕様の脆弱性 • 身元確認機構がないHTTP – 詐称、改ざん • 身元確認機構がないDHCP – 不正アクセス • 身元確認機構がないSMTP – 違法メール送信の踏み台、差出人詐称 • パスワードなどを平文で流す POP, IMAP, telnet, etc… – パスワード・内容の盗聴の危険性 プロトコル問題例:HTTP • セッションが存在しない – Webページ上でのセッション維持はURLや Cookieで行われる • 例: http://xxxx.com/shopping?user=Akio&pass=PASS cookie: sessionid = 100000000 – これらはパケットの傍受・盗聴で取得可能 詐称するには上記のアドレスにアクセスする だけで事足りる 上位層・プロトコル問題対策 • 最新のバージョンにアップデートする • 安全なアプリケーション以外を使わせない • 必要ではないサービス・プロトコルを 安易に利用・開放しない(Rainbowでのアプ ローチ) ファイアウォールで制限をかける ファイアウォール • 不正アクセスを遮断する ファイアウォール方式 • パケットフィルタリング型ファイアウォール – 第3層のファイアウォール – アクセス元IPアドレス・アクセス先Portなどを判断基準と してパケットを制限する • ゲートウェイ・Proxy型ファイアウォール – 第7層のファイアウォール – ゲートウェイ型 • HTTPなどの要求の種類や送信元情報や送信先情報を利用し てアクセスを制限する • 細かい設定が可能、サービス内の特定機能のみ制限をかける ことも出来る – Proxy型 • 直接クライアントに対象サーバへアクセスさせるのではなく、代 理アクセスを行いその結果をクライアントに返す。 防御できない攻撃 • DoS(Denial of Service) – パケットなどを大量に送信し、ネットワークに負荷をか け、正常なサービスを妨害する • DDoS(Distributed Denial of Service) – DoSを複数のマシンから行うもの • ポートスキャン • パスワードチャレンジアタック – 回数制限をかける – 応答間隔を空ける – 程度の方法しかない DoS攻撃とは? • • • • • Denial of Services (サービス拒否) の略 ウィルスではない 正規手続によるサービスの妨害および拒否 専用のツールを使用 標的となるインターネットサーバに大量のリクエ ストパケットを送りつけ • サーバのリソースを使い尽くしてシステムを使用 不可能にする DoS攻撃の形態 • 発信元の偽り方で分類すると – ランダム攪乱 • 攻撃者はランダムに発信元アドレスを変更 – 反射攪乱 • 攻撃者は被害者アドレスを詐称して多数の第三者 (反射ホスト)に送信 • 多数の反射ホストは被害者に応答する • 反射ホストはクラックする必要もなく, インターネット上のあらゆるサーバが候補 ランダム攪乱攻撃 S1 M S2 V S3 クラックして リモートコントロール src=random dst=victim 反射攪乱攻撃 R1 R4 S1 M R2 R5 S2 S 3 クラックして リモートコントロール V R6 R3 Request: src=victim dst=reflector R7 Reply: src=reflector dst=victim DoS攻撃に対する関連研究分類 • 侵入検知システム (IDS) • フィルタリング • 逆探知 – リンクテスト,ログ,ICMP,パケットマーク 評価項目 逆探知 管理コスト ネットワーク負荷 ルータ負荷 事後処理性 反射攪乱対応 IDS × 高 低 低 × × フィルタ × 中 低 中 × × リンク ○ 中 高 高 × × ログ ○ 高 低 高 ○ × ICMP ○ 低 低 低 ○ × マーク ○ 低 低 低 ○ △ ※ IDSやフィルタリングとはむしろ共存関係にある まとめ • 現行のInternetは基本的に安全ではない • より安全な機構を作り上げること、安全な プロトコルを「選ぶこと」は出来る 利用・構築する人間がセキュリティを 強く意識しているかことが最大の防壁
© Copyright 2024 ExpyDoc