# 資安筆記-2
---
# 防火牆
管制進出流量的網陸安全工具 檢查所有通過的 IP 封包
比喻: 在企業內部網路(Intranet)及網際網路(Internet)之間架設一道可監控管理的緩衝界面(Gateway)
●機制
1. 封包過濾器
2. 代理器
3. 網路位址轉譯
●功能層面
1. 隔離內部網路(私有網路)與網際網路的流量,以保護內網的安全。
2. 控管內部網路傳入和傳出的封包,避免未經授權存取內部網路的資源。
3. 紀錄與監控內部網路的活動
●運作模式
防火牆會根據事先定義的安全性規則(存取控制清單,或稱為 ACL),有效控制對內與對外流量
●類型
1. 軟體防火牆(個人)
只能保護單一設備
2. 硬體防火牆
企業使用 路由器的實體設備
3. 雲端防火牆(代理防火牆)
使用雲端伺服器 不需在本地端建置防火牆
# NAT
1. 靜態NAT(Static NAT)
一對一 內部資源看放給外部使用

![Uploading file..._4k3sd4sge]()
2. 動態NAT(Dynamic NAT)
多對多 輪流使用合法IP

# IPS (入侵防護)
#### IDS入侵偵測系統的加強版
立即主動地將攻擊封包給阻隔
發現網路異常 封包或行為時,系統除發送警訊通報給網管人員,並立即採取必要的處置措施,例如阻斷來源IP
# IDS(入侵偵測)
發出警戒 並且採取安全策略(Security Policy)
# 異常偵測 v.s 特徵型偵測
1. 異常偵測(Anomaly-based Detection):
把觀察到的事件與正常的行為相比對的過程,來識別出行為是否有重大偏離
2. 特徵型偵測(Signature-based Detection):
用已知攻擊手法及系統漏洞的資訊為基礎,將網路攻擊或試圖利用系統安全漏洞入侵的過程中,
將所可能產生的『特徵』集合成一個知識庫
ex:
1. 封包分割
2. 警報誤導
3. 淹沒攻擊
4. 規避手法
5. 編碼問題
* 緩衝器溢位:
攻擊者每一個可以輸入參數的地方,輸入超過長度的參數,讓預留的變數長度不足而產生緩衝器溢位的問題
# 封包過濾
# 密碼學
### ●密碼系統(Cryptosystem)

### ●加密解密

### 加密:C = Ek1(M)
### 解密:M = Dk2(C) = Dk2 (Ek1(M))
M = 明文
C = 密文
K1 = 加密鑰匙(key)、K2 = 解密鑰匙
E = 加密演算法
D = 解密演算法
### ●傳統密碼學原理
#### * 換位加密法
= Transposition Cipher
明文字元位置重新排列
#### * 取代加密法
= Substitution Cipher
明文字元以另一個字元取代
#### * 區塊加密法
針對數位資料

### ●對稱式加密 v.s. 非對稱式加密
#### * 對稱式加密:
=秘密鑰匙密碼系統
較迅速 (且為現代密碼學)
加密解密同一把鑰匙
1. 訊息隱秘性
2. 鑰匙隱秘性
3. 鑰匙分配難
4. 鑰匙長度短
5. 無法確認訊息的不可否認性和完整性
困難點:
7. 要秘密鑰匙傳送給通訊的對方
8. 即使收到資訊 無法肯定訊息正確性(可能有中間人攻擊)
#### * 非對稱式加密:
=公開鑰匙密碼系統
公鑰加密 且大家都知道
私鑰解密 有人保管
兩把鑰匙互為加/解密功能
1. 訊息隱秘性
2. 公鑰公開
3. 鑰匙分配易
4. 鑰匙長度長
5. 可以確認訊息的不可否認性
(和上述對稱是加密做對比)
較安全(還分成公鑰與私鑰),但較慢
結論: 實際生活中 會兩者並用 --> 混合密碼系統
### ●hash
hash != 加密
若 H(M1)=H(M2),則 M1=M2
若 H(M1)≠H(M2),則 M1≠M2
1. 無法解密 (具有不可逆性)(單向雜湊)
3. 不管原文內容長度 輸出完都是固定長度
4. 用brute-force 輸入+輸出+雜湊演算法 =》 彩虹表(rainbow table)
5. 具有唯一性
6. hash碰撞
(機率很低)
兩份不同的原始數據 -> 經過hash映射 -> 得到相同的MD5值
* 低層次的通訊協定(如 Ethernet
用CRC(Cyclic Redundancy Check)除法器產生FCS
FCS = Frame Check Sequence (檢查資料用)
* 高層次(ex: TCP/IP 層)
用檢查集Checksum
* 亂數產生
要不可預測性且具有隨機性
### ●md5
= Message Digest Algorithm 5
目的: 確保信息的一致性
1. 廣泛使用的hash 算法
2. 128bit的數據
#### * 訊息摘要(Message Digest)
* 雜湊碼是由訊息的內容演算而來的
h = H(M)
雜湊碼 = 訊息hash完
### ●DES 演算法
區塊長度:64 bits
16 把子鑰匙 經過加密器計算 16 次
作法: 初始排列 -> 加密16 -> 終止排列(換位)
### ●Triple DES 演算法
#### 明文 -> 密文:
(加密)*3
#### 密文 -> 明文:
(加密、解密、加密)*3
### ●AES演算法
= Advanced Encryption Standard(進階加密標準)
取代DES演算法
1. 即為Rijndael演算法
2. 美國聯邦政府採用的一種區塊加密標準
3. 反覆區段編碼
### ●DSA
### ●RSA
### ●RSA v.s. DSA加密演算法
●RSA: 用 4096 bits 的鑰匙長度來加密
●DSA: 用 1024 bits 的鑰匙長度來加密
### ●SHA演算法
= 安全雜湊演算法
= Secure Hash Algorithm
(ex: 比特幣是採用 SHA-256)
* SHA-256
hash完,壓縮成雜湊值,使得資料量變小
### ●MAC
### ●HMAC演算法
使用單向雜湊函式來構造訊息認證碼的演算法
# SSL
資訊傳輸的加密技術,能夠加密兩個網站之間互相傳輸的資料,讓他人無法取得您的網站與客戶之間的隱私訊息。經過SSL憑證加密成功的網站,網址會由http變成https
結論: http --> https
作法: PK crypto作加密
SSL憑證 != 網站100%安全
SSH and SSL 很容易搞混
●TLS協定
1. SSL協定的延伸
2. 實際上目前所說的SSL憑證所使用的就是TLS協定
# SSH
一個連線機加密機制
SSH 它讓我們在與遠端電腦(遠端伺服器)連線時,
能夠先將訊息加密過後再傳送,並且確保只有「被認可的人」才能夠解密訊息
私鑰: 電子簽名與解密
公鑰: 確認簽名的正確性

(來源: https://reurl.cc/D3VOzR)
#### ●中間的人攻擊(man-in-the-middle-attack)
若擁有公私鑰組合的人是駭客
則為中間人攻擊
用 PKI 來抵擋
#### ●PKI (Public Key Infrastructure)
= 公開金鑰基礎建設
驗證用戶和維護資安的框架技術
# IPSec
= IP 安全協定
把不安全的IP傳輸經過安全性機制處理
#### 1. 識別感興趣流
感興趣流 = 通過IPsec隧道傳輸的流量
#### 2. 協商安全聯(SA)
通信雙方對某些協商要素的約定
#### 3. 數據傳輸
通過IPsec隧道傳輸數據
(會受到AH或ESP協議進行加密、驗證)
#### 4. 隧道拆除
通信完成後 為節省資源
隧道會自動刪除
* VPN常用的一種技術
#### ●安全性: 加密+認證
# 橢圓曲線加密演算法(ECC)
= Elliptic Curve Cryptography


安全強度: 160bit ECC = 1024位bit RSA
#### ●優勢:
1. 安全性能更高
2. 速度更快
3. 頻寬要求更低
4. 儲存空間更小


---
# Diffie-Hellman Key Exchange(DH)

### ▲簡易版(影片: https://www.bilibili.com/video/BV1sY4y1p78s/)

# Kerberos通訊協定
client與server相互認證的一個機制
使用秘密金鑰加密法
(client客戶端;伺服器端)

#### ●認證機制:
* 認證伺服器(AS)
* 門票核准伺服器(TGS)
#### ●主密鑰分配:
AS 伺服器除了必須擁有客戶的主密鑰之外,還必須擁有 TGS 的主密鑰;
另外,TGS 伺服器也需要擁有所有伺服器的主密鑰
#### ●客戶密碼只要輸入一次:
客戶端取得通往 TGS 的門票(TicketTGS)之後,在該票的有效期限之內,都可以請求服務,
而不需要再輸入密碼來索取門票。
#### ●防禦偽裝攻擊:
門票(TicketTGS與 TicketB)上有登錄該票的使用者識別(ID)、工作站位址(AD)、
時間戳記(TS)與有效期間(Lifetime)。
攻擊者攔截到門票之後,不易在在有效期內偽裝成合法客戶
#### ● 防止重播攻擊:
門票有註明時間戳記(T),當攻擊者重播門票時,接收端可以利用時間戳記辨別門票的新舊
# Injection
1. 盲注攻擊( Blindfolded Injection)
2. 預謀性的攻擊
#### 攻擊者採取綜合式的攻擊 ➜ 掃描(Open Source弱點掃描工具)➜ 盲注攻擊(針對不完整的網站)
# SQL注入
(更多細節: https://reurl.cc/V1dANA)
SQL = SQL injection
比喻: 走在路上突然被別人拿針筒注射
* 透過修改 SQL 語句,改變他的語意,達成竊取資料/破壞資料的行為
* 資料庫資料表中的資料外洩

### ⬇
### ⬇ 駭客改寫
### ⬇

#### ●如何防範:
1. 限制輸入的字元格式
2. 使用正則表達式過濾使用者的輸入值
(確保資料輸入不會被網站視為程式輸入)
3. 把使用者帳號的權限最小權限化
4. 不要將系統或資料庫錯誤顯示於網頁之上
#### ●正則表達式
確認字串是否符合所定義的規則
URL 網址Command Injection
攻擊者的惡意輸入被誤認為作業系統指令時就會發生指令注入
URL 網址SQL
網站常用來取得資料的程式語法
# CSRF
CSRF = Cross-site request forgery(跨站請求偽造)


(來源: Cymetrics Tech Blog)
#### ●比喻:
陌生人拿了一張有你桌號的菜單點餐之後給老闆,
結果老闆問也不問便收了菜單並將帳記到了你的身上
#### ●實際情況:
Hacker 用帶著你 cookie 的 Request 送給 web server
#### ●概念:
攻擊者透過盜用使用者的身份,悄悄發送一個請求或是執行一些惡意行為
#### ●如何防範:
增加驗證方式
#### ●Cookie:
Cookie是指某些網站為了辨別使用者的身分而在用戶端瀏覽器上存儲的一些小型文本檔案
目的: 讓伺服器端快速的識別用戶
# XSS
XXS = Cross-site scripting (跨網站指令碼)
(比喻: 點餐的時候 陌生人在不經意間在菜單上點了要價999999的龍蝦餐
但自己沒有發現 後來把菜單拿給老闆 老闆便真的送上了龍蝦餐來)
屬於注入攻擊的一種
#### 利用網頁開發時留下的漏洞,攻擊者將惡意程式碼注入到網頁上,
#### 並將網頁使用釣魚郵件或用社群網站等媒介散佈,點擊連結的使用者在觀看網頁時就會受到攻擊

1. Hacker 在受害網站注入 XSS 漏洞
2. 透過社交工程手法傳送惡意 URL 給 User
3. 當 User 點擊 URL 便會把自己的資料(cookie)藉由受害網站傳回給 Hacker
#### ●如何防範:
1. 不要將使用者的輸入放入 註解、屬性名稱、標籤名稱
2. 且所有輸入都要編碼成為純字符串來處理
3. 確認輸入為合理的資料類型與內容
4. 前後端都要欄位輸入的驗證與檢查
### ⭐⭐⭐以防變成程式碼⭐⭐⭐
### ●URL
網域名稱 (Domain name)
#### 組成: 安全協定+域名+文件路徑
[安全協定 (https, ftp), 域名 (www.domain.com), 文件路徑 (/directory/file.html)]

### ●DNS
= Domain Name Server(網域名稱伺服器)
### 網域名稱 ➜ IP
---
# iptables 指令
限制遠端連入的 ip 或 port
內建的規則表有三個,分別是:nat、mangle 和 filter(預設)
### ●nat
➜ 轉譯工作
Prerouting
postrouting
### ●mangle 此規則
➜ 封包改寫
Prerouting
FORWARD
postrouting
### ●filiter
➜ 封包過濾
INPUT
FORWARD
OUTPUT
# ICMP 協定
= Internet Control Message Protocol
網路協定中的第三層
### ●Ping指令
測試網路的連線能力是否正常
# Net 命令作業系統
顯示域列表、計算機列表或指定計算機的共享資源列表
# Sniffing嗅探
第二層
即為「資料攔截」技術
擷取網路上傳輸封包資訊的一種程式或者設備
# wifi sniffing(嗅探)
偽造WiFi就是在某個地方連接成功一個WiFi,在其他地方也有相同名稱的WiFi,通過自動連接直接連接上偽造WiFi,從而導致手機被竊聽
# AP
= 無線基地台
連接無線網路至有線網路的裝置,
無線AP需要通過有線網路連接到交換器或路由器
### ●路由器(Router)
LAN和WAN的端口 [對外(WAN)一個 對內(LAN)很多個]
連接網路並在它們之間傳遞數據是路由器的工作
路由是賦予數據跨網絡傳輸的過程的標籤。路由涉及在網絡之間創建路徑,以便可以成功傳遞此數據
### ●無線路由器(Wi-Fi分享器)
= Wireless Router(AP+Router)
兼具AP與Router的功能
### ●Gateway(閘道器)
和路由器差在要外接集成數據機
都是 tcp/ip協議下的閘道器
一個網路通向其他網路的ip地址
### ●IP分享器(NAT)
將設備的私有IP位址轉換成一個外網的公共IP位址
### ●交換器(Switch)
家裏有很多的設備才需要用到Switch
不然Router就夠了
# VPN客戶端
### ●原理:
利用加密技術在公網上封裝一個數據通訊隧道
在路由器上安裝 VPN(Virtual Private Network)
### ●作用:
1. 加入網路流量
2. 隱藏IP和虛擬位置(透過安全隧道)
網際網路服務提供者(ISP)也無法監控上網內容
加密隧道連上遠端的 VPN 伺服器,VPN伺服器會將透過安全隧道發送的資料解密
資料將被安全送達最終目的地。
這種加密技術可以確保客戶端不被監控和追蹤
# Qos
= Quality of Service(服務質量)
* 解決網路延遲和阻塞等問題的一種技術
* 網路總頻寬固定 某類占越多頻寬 其他則占越少
* 根據各種業務的特點來對網路資源進行合理的規劃和分配,
從而使網路資源得到高效利用