情報セキュリティの3要素*
攻撃手法の分類
脆弱性 ,脅威の種類,マルウェア
DoS, DDoS
相手認証(本人認証) ,パスワードに対する攻撃
HTTPと認証,セッションsession管理
XSS: クロスサイトスクリプティング *
SQLインジェクション*
Stream暗号,Block暗号
暗号化手法への「攻撃」
ECBモード,CBCモード
DES*,AES,RSA ,Feistel構造 (ファイステル構造) *
鍵配送問題の解決*,公開鍵暗号 *,DH鍵交換 *,中間者攻撃* ,電子署名*
認証プロトコル*,PKI *,PKIの具体例* ,パスワードを使う認証プロトコル* ,チャレンジ-アンド-レスポンス認証 *
SSL ,DMZ ,NAT*,static NAT* ,NAPT*,SSL-VPN
NIDS/NIPS ,Snort
HTTP,セッション管理,アクセス認可,CSRF ,XSS ,スクリプト インジェクション ,SQLインジェクション *
セキュリティの5大脅威 *
情報セキュリティの3要素
- Confidentiality(機密性)
• 情報には許された者だけがアクセスできるよう 保護すること
- Integrity(完全性)
• 情報の内容と処理を正しい状態に保つこと
- Availability(可用性)
• いつでも必要な時に必要な情報資産に アクセスできることを確実にすること
=肝心なときにシステムがとまらないようにする
脅威1 —インターネットの特異性と攻撃の分類
仮想空間 匿名性 開放性(openness) 無料(フリー)の文化
脅威・脆弱性=リスク
M × Prob
攻撃方法
- 直接的攻撃
- 間接的攻撃
マルウェア(Malware: Malicious Software)
ファイアウォール内のコンピュータへの侵入が目的
• 電子メール,Webなど,ファイアウォールに止められない方法
Virus • Worm • Spyware • Trojan horse
マルウェアの配布形態
- Web
- USBフラッシュメモリなどのリムーバブルメディア
フラッシュメモリ︓flash memory リムーバブルメディア︓removable media
- メール
脆弱性
弱点の有無・度合いを示す指標
ソーシャルアタックsocial engineering
会話を通じて,言葉巧みに相手の個人情報を聞き出す
バッファオーバーフロー︓ buffer overflow
C言語のライブラリlibrary関数scanfにより,配列の領域を 超えた部分に不正プログラムが書き込まれた
ドライブバイダウンロード︓ drive-by-download
Webを介し,ソフトウェアをダウンロード・実行させる
Webサイトwebsiteを閲覧したら,気付かぬうちにソフト ウェアがダウンロードdownloadされ,ウィルスに感染した
ポートスキャン︓ port scanning
TCP接続要求を通じて,攻撃対象のホストhostで起動さ れているサービスserviceを特定する
脅威2 具体的な攻撃⽅法
相手認証(本人認証)
相手に自分が「誰か」を伝えること
パスワードはどうやって システムに保存されてる?
ハッシュ︓ hash
パスワードに対する攻撃
- 総当たり攻撃・辞書攻撃 查表破解
さまざまなパスワードの「候補」からハッシュ値を求めて照合する
- 総当たり攻撃・Brute Force Attack 暴力破解
力ずく攻撃 ・・・ あらゆる文字列の組み合わせで挑戦!
- Rainbow Table
ハッシュ値の表を圧縮して持つ手法
脆弱な認証機構に対する攻撃
DoS(Denial of Service)攻撃 -- サービス提供を不能にする攻撃 メール爆弾
DDoS(Distributed DoS)攻撃 -- 複数のホストを協調させて攻撃をする手法
多数のホストを協調させて、大量のパケットを送りつけるなどする攻撃を何というか
ボットネット︓ botnet
ネットワークレベルnetwork level の攻撃
- ネットワークのフィルタリング(Filtering)回避
- DNSキャッシュポイズニングcache poisoning
無線LANに関する攻撃
暗号化の解読
MAC Address詐称
War Driving 通过无线网络定位汽车
偽APの構築 ・・・ Man In the Middle攻撃
P2P
脅威3 —Webシステムへの攻撃—
HTTP=HyperText Transfer Protocol
普通「プロトコル」は
「TCP接続」「認証」「いくつかのコマンド実行」「終了」「TCP切断」という流れ
HTTPは・・・・
「TCP接続」「ひとつのコマンド実行」「終了」「TCP切断」という流れ
HTTPと認証
• HTTPは1回のTCP接続では完結しないので TCP接続間に跨った認証をする必要があるが
CGIによる認証
(HTTPでの)セッションsession管理 •
複数のTCP接続に対し同一相手であることを保証するためセッションID利用
セッションIDはどこに記憶されるか
- URLへの埋め込み:http://www.test.jp/main.cgi?sid=a3fsdfa93 • サーバから返されるURLリンク中に埋め込んでお
- Hiddenフィールドへの埋め込み
- Cookieを用いる HTTPで唯一規格化された「状態保存」システム
Webアプリケーションに対する脅威
- パスワードなどが盗まれる可能性
- Cookieなどに保存されているセッションIDが盗まれる可能性
クロスサイトスクリプティング(XSS)
- セッションIDを盗まなくても同じ効果を得る方法あり
クロスサイトリクエストフォージェリ(CSRF)
クロスサイトスクリプティング(XSS) Cross-site scripting
サーバにJavaScriptのプログラムを送り込み、それをユーザのブラウザで実行させてCookieなどに書かれたセッションIDなどの情報を盗む攻撃
SQLインジェクション:SQL Injection
原理はXSSと同じようなもの,スクリプトのかわりにSQLを埋め込ん
で攻撃
クロスサイトリクエストフォージェリ(CSRF)
ドライブ・バイ・ダウンロードdrive by download
暗号(1)—Introduction—
暗号と認証:情報セキュリティの基礎技術
暗号とは
• 通信やデータ保存などにおいてデータが第三者に読まれない(読まれても内容がわからない)ようにする手法
換字式暗号
Stream暗号 Stream cipher 流加密
任意bit長の平文を暗号化 平文と同じ長さの鍵とXORする
擬似乱数列生成機 -- シードseed(種)を与えると、乱数列を生成する
Block暗号 Block cipher 块加密
平文Mをn bitsの塊ごとに暗号化するもの 有限长 分割
平文が同じなら暗号文も同じになってしまう
- ECB(Electronic CodeBook) 电子密码本模式 -- DES
- 每次加密的数据长度固定。
- 各个分组相互独立,可以并行加密和解密。
- 相同的明文使用相同的密钥总是产生相同的密文。
- 一个位的错误只对所在的明文块产生影响,但是增加或删除一个位会导致其后整个密文序列没有办法正确解密。
- CBC(Cipher Block Chaining) 加密分组链接模式
-
- 加密分组链接模式首先也是将明文分成固定长度的分组
- 然后将前面一个加密分组输出的密文与下一个要加密的明文分组进行异或操作计算,将计算结果再用密钥进行加密得到密文。
- 第一明文分组加密的时候,因为前面没有加密的密文,所以需要一个初始化向量 (IV)。
-
Block暗号を用いたStream暗号 -- OFB CTR
暗号(2) —共通鍵暗号—
暗号化手法への「攻撃」
- 暗号文単独攻撃
- 既知平文攻撃
- 選択平文攻撃
- 選択暗号文攻撃
唯密文攻击(COA)、已知明文攻击(KPA)、选择明文攻击(CPA),选择密文攻击(CCA) - 常给自己加个油 - 博客园 (cnblogs.com)
攻撃手法いろいろ
総当たり攻撃(Brute Force Attack)
辞書攻撃(Dictionary Attack)
差分解読法(選択平文攻撃の一つ)
信頼できる暗号化手法の評価: NIST / CRYPTREC
DES (Data Encryption Standard)
米国政府標準で定められていたblock暗号(1977年制定)
- Feistel 構造 (ファイステル構造)
- 初期転置 (Initial Permutation)
- (1)轮函数 f()
- E(R0)を求める 扩展32->48
- 与密钥k 异或
- S盒压缩
- P盒置换
f()迭代循环16次
(2)密钥 k 生成
- Initial Permutation
DESは解読が進み使われなくなってきた 破解DES
• 線形解読法(既知平文攻撃) 松井充
AES(Advanced Encryption Standard) 米国政府 替代DES
暗号(3)—公開鍵暗号—
共有鍵 共享密钥加密--对称密钥加密
鍵の配送が必要で、その際に漏洩の危険がある
鍵配送問題の解決
Diffie-Hellman鍵交換 (DH鍵交換) 在用对称密钥的情况下,只用于密钥的交换
利用離散対数問題: 正向计算简单,反向计算困难
gi mod p = z (p は大きな素数) のとき
•(g,i,p)からzを求めるのは簡単
•(g,z,p)からiを求めるのは難しい
p や g が大きくなると求めるのは難しい。この性質は暗号で広く用いられている
中間者攻撃MITM(Man-in-the-middle)攻撃 可以攻击DH算法
DH鍵交換で一応の解決をみた鍵配送問題が直面した難題
公開鍵暗号 非对称加密
秘密鍵は自分だけが持ち他人に教えない
公開鍵は広く他人に教える(誰にばれてもよい)
RSA暗号
制作公钥和私钥
電子署名
(暗号性)ハッシュ関数 (hash function)
任意の長さの入力データから、固定長のデータを作り出す関数
平文全体を秘密鍵で署名するのは時間がかかりすぎるので ハッシュ関数で平文ダイジェストを得て、それに署名する
暗号化+署名=「認証付き通信」
認証 —認証プロトコル、PKI—
認証プロトコル
パスワードを使う認証プロトコル
もっとも簡単な認証:パスワード
• 暗号化されていればパスワードは漏れない
• LANなど盗聴の危険が少ない場合も
• 単純なプロトコルはリピート攻撃に弱い!
チャレンジ-アンド-レスポンス認証 challenge-response
送信者と受信者がお互いにやり取りができる前提で行う認証
パスワードは覚えられないので・・・
- 別の「複製しにくいもの」に入れる
- コンピュータそのものに覚えこませる(一種の機器認証)
- 紙に書いてある
- ICカード/USBキー:「ハードウェアトークン」
- そもそも複製しにくい固有の情報を使う
- • 代表例がバイオメトリックス:生体情報
ゼロ知識対話認証
「秘密」を送信者から受信者に送らなくても
「秘密を持っている」ことを証明できる認証
PKI (Public Key Infrastructure)
PKI技术是一种遵循既定标准的密钥管理平台
公開鍵の確認が必要=PKIの出番
PKIの基本的考え方:公開鍵を「信用できる第三者」に署名してもらう
证书机构CA
证书机构CA是PKI的信任基础,它管理公钥的整个生命周期,其作用包括:发放证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书。
PKIの具体例
SSL: Secure Socket Layer 公開鍵暗号を用いた暗号化と認証
TCP通信をPKIを使って保護する仕組み 後継=TLS(Transport Layer Security)
http+SSL = https
—セキュリティプロトコル、アクセス制御—
Security Protocol, Access Control
Securityをどう実現するか?
• Layered Security (Defense in Depth)
• 外部から情報資産までを階層に分け,各階層で対策
---连接内外部
DMZ(Demilitarized Zone)
外部・DMZ間は一部許可
外部→内部間は不許可
内部・DMZ間は一部許可
NAT (Network Address Translation)
Private addressをglobal addressへ変換して,
privateaddressのコンピュータcomputerを外部と通信可能にする技術
Static NAT
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
NAPT
特に内から外向け(outbound)に着目した技術 動的な拡張NAT
• 送信元のIPアドレスとポートport番号の組も利用して自動的に変換しGlobal IPアドレスを共用
SSL-VPN
要はhttpsなどの通信路を経由する
• その先にあるアプリケーションApplicationや データDataにアクセスできる
—IDS、マルウェア対策—
IDS: Intrusion Detection System (侵入検知システム)
NIDS/NIPS (Network Intrusion Detection System,网络入侵检测系统)
网络入侵检测系统通常包括三个必要的功能组件:信息来源、分析引擎和响应组件。
信息来源:它负责收集被检测网络或系统的各种信息,并把这些信息作为资料提供给IDS分析引擎组件。
分析引擎:它利用统计或规则的方式找出可能的入侵行为,并将事件提供给下面的响应组件。
响应组件:它根据分析引擎的输出采取应有的行为,通常具有自动化机制,如主动通知系统管理员、中断入侵者的连接和搜集入侵信息等。
- 侵入検知機能
- 不正と思われる通信を検知する
- Anomaly通信検知機能
- 正常とは考えにくい通信を検知する
- 不正通信へのレスポンス機能
- 上記2つを検出したときの動作
不正な通信の検知手法(パターンマッチング)Pattern matching
攻撃に使われる文字列・バイナリパターン(シグネチャと呼ぶ) と,トラフィックを比較
• 最も基本的で確実な方法だが,既知の物のみ検出可
不正な通信の検知手法(anomaly検知)
- プロトコル·アノマリ検知 Protocol-Anomaly
• RFC違反の通信を検出
- トラフィック·アノマリ検知(Traffic)
事前に設定された値よりもトラフィックが多い
- アプリケーションアノマリ検知(application)
あるプロトコルにおいて異常なデータが送られることを検知
Snort
HIDS/HIPS (Host-based Intrusion Detection System,基于主机的入侵检测系统)
セキュアプログラミング(1) —総論と各論,Webを中心に—
HTTP
「TCP接続」「ひとつのコマンド実行」「終了」「TCP切断」という流れ
HTTPでのセッション管理
複数のTCP接続に対し同一相手であることを保証するためセッションID利用
CSRF: クロス サイト リクエスト フォージェリCross Site Request Forgery
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
スクリプトインジェクション
XSS(クロス サイト スクリプティング) Cross Site Scripting
スクリプト注入攻撃の一種
コマンド インジェクション
外部からデータに紛れさせたシェルコマンド文字列を送り込ま れてコンピュータを不正に操られてしまう問題
SQLインジェクション
外部から特殊な文字列が送り込まれることによってデータ ベースに不正にアクセスするSQL文が組み立てられてしまう
SQLインジェクション対策 —コーディングでの対策
入力値チェックの徹底
Prepared Statementの使用
セキュアプログラミング(2) —開発管理—
セキュリティの5大脅威
STRIDEモデル
• 脆弱性を有するソフトウェアが,どのような脅威を呼び寄せるか