セキュリティ - Ubiquitous Computing and Networking Lab

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は基本的に安全ではない
• より安全な機構を作り上げること、安全な
プロトコルを「選ぶこと」は出来る
利用・構築する人間がセキュリティを
強く意識しているかことが最大の防壁