---
# System prepended metadata

title: 資安概論final

---



## Malware
Malicious software is a generic term that refers to hostile executable code.

### type
- 自我複製並寄生於主機代碼（病毒）。
Self-replicating and live in host code: virus.
- 獨立運行（蠕蟲）。
Freestanding: worm.
- 不自我複製（木馬）。
Non-self-replicating: Trojan.

Pretend to be good software or install itself without user knowing

![image](https://hackmd.io/_uploads/Sk_nA7Sr1g.png)

### Basic challenges
It’s hard or impossible to determine how a program will
behave. -> halting problem

### creeper vs reaper
![image](https://hackmd.io/_uploads/SkaEgNSSkg.png)
![image](https://hackmd.io/_uploads/S1jrxVBrke.png)

### virus
A computer virus infects other programs.
- Infected program must **be executed** to invoke virus
- Virus self-replicates (as opposed to Trojan)
- Installed without user agreement

#### Self-replication can exploit many different vectors
- 感染存儲的可執行文件
Infect stored executables.
- 感染操作系統例程以保持駐留內存中
Infect OS routines to remain in memory.
- 感染磁碟的啟動扇區
Infect disk boot sectors.w

### Anti-virus
identifies and attempts to purge malware of any type (not just viruses

- Simple anti-virus software looks for **signatures**(code fragment for a known virus).

### Polymorphic Viruses 
- 病毒的功能保持不變，但代碼會發生改變。
Code changes while virus functionality doesn’t.
- 由短頭部 (Short Head) 和加密的主體或負載 (Encrypted Body or Payload) 組成。
The virus contains a short head and an encrypted body or payload.

- 當病毒被執行時，頭部負責解密主體。
When the virus is executed, the head decrypts the payload.

- 加密密鑰可以變化：
Encryption key can change.
- 頭部簡短，易於更改：
Head is short, so it can be easily changed too.
- Defeats basic signature checking.
![image](https://hackmd.io/_uploads/B1utm4SS1l.png)

### Anti-virus defense: emulation

- 模擬可能受感染代碼的執行：
Emulate execution of potentially infected code.

- 檢查解密後的負載的特徵碼：
Look for signature of decrypted payload.

- 可以有效對抗多態性病毒：
Defeats polymorphism!

- 如果病毒深度嵌入到主機可執行文件中，模擬過程可能需要過長時間。
Doesn’t work if the virus is deeply embedded in the host executable; emulation takes too long.

### Metamorphic Viruses
Mutate the payload(變異payload)
#### HOW
![image](https://hackmd.io/_uploads/r1viI4BHkl.png)
![image](https://hackmd.io/_uploads/SJ_laBBH1g.png)
![image](https://hackmd.io/_uploads/BkZZpBHBkl.png)

#### Anti-virus defense?
1.尋找共同的子序列 (Common Subsequences)
- 對變形病毒的不同版本，嘗試找到它們代碼中的共同特徵（以粗體標記）。
Attempt to identify shared subsequences in different variants of the metamorphic virus, marked in bold.

2.行為檢測 (Behavioral Detection)
- 基於病毒行為進行檢測，而不是僅依賴靜態特徵。
Detect based on the virus's behavior rather than static characteristics.

- 行為檢測可以識別變形病毒的運行模式，但有誤報風險。
Behavioral detection identifies the virus's runtime patterns but incurs false positives.

- 誤報問題 (False Positives)
對於消費者而言，誤報率過高是不可接受的，可能導致正常程序被錯誤標記為病毒。
False positives are unacceptable for consumers as they may flag legitimate programs incorrectly.

### Drive-by downloads/installations
- 驅動式下載網站專門針對瀏覽器和瀏覽器插件的漏洞。
A drive-by download site targets vulnerabilities in web browsers and browser add-ons

- 具有漏洞的計算機用戶僅需訪問該網站，即可自動感染惡意軟件，無需主動下載任何內容。
Users with vulnerable computers can be infected with malware automatically by visiting such a website; they don’t need to attempt to download anything.

- 通常寄宿於被入侵的合法網站 (Usually Hosted on Legitimate Websites)：
     - 通過入侵（Intrusion）或用戶貢獻內容（例如跨站腳本 (XSS)）進行攻擊。
Compromised by intrusion or user-contributed content (e.g., cross-site scripting, XSS).


- Exploit code is usually hosted on a different website and exposed through a compromised webpage using a technique like a URL embedded in malicious script code or an iFrame.

![image](https://hackmd.io/_uploads/HyzIYUSSkg.png)

### Mobile malware
與 PC 惡意軟件相比，行動惡意軟件的普及率和複雜度仍然較低
大部分都是安卓被搞

- 在前十大威脅中，有四個與間諜軟件有關。
Four of the top ten threats are spyware.

## Privacy
### Anonymization and pseudonymization
- Anonymization (匿名化)
Remove name and any real-world ID

- Pseudonymization (假名化)
Replace real ID with a consistent random ID

#### problem
- Linkage attacks
  - An adversary with a little bit of knowledge (e.g., age, gender, postcode) can match to the database and identify people.
擁有少量信息（如年齡、性別、郵編）的攻擊者可以匹配數據庫並識別個人。

- Exploitation without real-world identification
  - information can be exploited without real-world identification (e.g., tracking cookies on websites).
 
### K-anonymity

- Replace an attribute by ranges of values (or representative values)
將屬性替換為值的範圍（或代表值）

- In groups of at least k
每組至少包含 k 個成員

![image](https://hackmd.io/_uploads/BykkewHS1e.png)
使得每位個體至少與 k-1 名其他成員共享相同的非敏感屬性值，以增加隱私保護。

![image](https://hackmd.io/_uploads/SylnzZPBrye.png)

### Privacy vs Security
- Security (安全)：
Prevent unauthorized users from reading data
防止未授權用戶訪問數據

- Privacy (隱私)：
Prevent authorized users from learning more than they should
防止授權用戶了解超出其權限的信息
  - Data should still be useful for intended tasks
   數據應該仍然對預定的任務有用
   
### Aggregate functions
did not release the dataset with individual values
only released  an aggregate value

- e.g., average, sum, high-d average, count…
例如：平均值、總和、高維平均值、計數等

A function 𝑓(𝐷) computed on a dataset 𝐷

#### Differencing attack
- Datasets with and without an individual. E.g., average before and after employee joins
比較包含和不包含某個個體的數據集。例如，員工加入前後的平均值變化。


#### Membership inference attacks
- Find if a known person was present in the dataset
判斷某個已知個體是否存在於數據集中。

#### Data reconstruction attack
- Deduce part of the dataset from aggregate
從聚合值去反推未公開的部分數據


### ML
machine learning models is also a kind of Aggregate function

$w = f(D)$

模型參數 𝑤 是基於數據集 𝐷 
會受到上述的攻擊
#### IDEA
![image](https://hackmd.io/_uploads/rkW2dPBryx.png)

---
### knowledge 
攻擊者可能擁有的輔助信息：

例如，攻擊者可能擁有與目標數據集相關的其他數據集，或者已經掌握了一部分數據點的信息。
通過將已知數據與目標數據集的輸出結果進行關聯（Linkage Attack），攻擊者可能推斷出隱藏的個體數據。

Knowledge can be tricky

身高例子

- Knowledge can be seen as probabilistic (知識可以被視為概率性的)：
- Looking at the data, you can make a better guess than before
通過查看數據，你可能比以前做出更好的猜測。

#### Idea 2
![image](https://hackmd.io/_uploads/ry_hcvrHkx.png)
**prvent Membership inference attacks**


### Differential privacy
![image](https://hackmd.io/_uploads/BkdLnwHH1e.png)
![image](https://hackmd.io/_uploads/By2jhwrB1e.png)
![image](https://hackmd.io/_uploads/BJ6RTDSr1g.png)
![image](https://hackmd.io/_uploads/ryBoxOBSkx.png)
ϵ 衡量了由於公開算法 𝐴 的輸出而導致的隱私損失。

更小的 𝜖 表示：
輸出結果更難被攻擊者利用來推斷個體數據的存在。
算法對輸入數據的「不敏感性」更高

#### subset version
![image](https://hackmd.io/_uploads/HkbqW_Hryg.png)

### example
假設有一場會議。我們希望公佈會議中的人數統計，公佈的人數統計必須滿足 𝜖-差分隱私的要求，通過觀察統計結果，攻擊者不應該容易推斷某個特定的人是否參加了會議。

real count=n
Publish $n+y$, where y is noise (a random number)

使用拉普拉斯分佈生成y
$\Pr[y] = \frac{1}{2b} e^{-\frac{|y - \mu|}{b}}$
$\mu$ is the mean, $2b^2$ is variance 

$Lap(b)$ is Laplace distribution when mean=0 and variance=$2b^2$


![image](https://hackmd.io/_uploads/SyGAXorSkl.png)
![image](https://hackmd.io/_uploads/SkwXBorSyl.png)

#### publish n+y
- where $y$ ~~ $Lap(\frac{1}{ϵ})$
This is the ϵ-Differential privacy

### Adversarial model
Adversary
- Knows the algorithm
- Knows the distribution
- Does not know the noise y

DP assume the adversary know the entire data set,
but does not know if individual x’s data is in the computation
since the definition says nothing about its value


#### replacement version 
if even the presence of x is protected, its value is also protected

**if x has v**
- removing x cannot be detected in the
output (has ϵ-differential privacy)
- can also make two undetectable moves
  - remove v and insert $\mu$
  - Has 2ϵ-DP


DP is often defined with the value replacement version instead of the removal version
- Easier to see how DP protects values

### Sensitivity 
當單一輸入會很大程度導致輸出中的重大變化 -> privacy is hard
:::info
敏感度
$\Delta f = \max \left| f(D) - f(D') \right|$
for all possible neighboring datasets
:::


噪聲的幅度與$\Delta f$成正比，與$𝜖$成反比
![image](https://hackmd.io/_uploads/Sy7QojBS1g.png)




![image](https://hackmd.io/_uploads/BJegnjSHJx.png)


## Software-vulnerability
### determine the quality of a program
just testing
- software with more faults is likely to
have even more

### Penetrate and Patch
- 特殊團隊測試程式，尋找錯誤。（Special teams test programs and find faults）
- 如果未發現攻擊，程式被認為是安全的。（If no attack found, the program was OK）
- 如果發現攻擊，進一步頻繁測試。（Otherwise, not – More frequently）
- 然後修補漏洞。（Then fix faults）

#### Issue
become less secure 
- 只關注修復漏洞本身，而忽略其上下文
- 漏洞修復可能引發其他地方的副作用
- 修復一個漏洞可能導致新的漏洞
- 修復漏洞可能影響系統的功能或性能


###  5% bug per line of code

### Memory Exploits
Buffer is a data storage area inside computer memory (stack or heap)
- hold pre defined amount of data

if executable code is **offered as data**, it may be excuted by fooling the machine and attacker can get access of the machine

### stack buffer
![image](https://hackmd.io/_uploads/HJYtYhrrJl.png)
當函數 func 返回時（When func returns）：
- 局部變數從堆疊中彈出。
- 堆疊框架指針（sfp）的舊值被恢復。
- 返回地址（ret addr）被取回。
- 堆疊框架(stack frame)被彈出。
- 程式執行繼續從返回地址（調用函數的下一行）開始。

### buffer Over-stuffed
![image](https://hackmd.io/_uploads/B1O29nBHke.png)
#### Stack Smashing
- 假設緩衝區包含attacker-created string
- 攻擊者將實際的組合指令嵌入其輸入字符串中
- 在溢位中，緩衝區中的指針出現在系統期望的返回地址位置
- 當函數結束時，緩衝區中的代碼將被執行
![image](https://hackmd.io/_uploads/ByCRinHByx.png)
- Stack memory is supposed to contain only data, but excutable code is dealed as data
- attacker must guess stack position correctly 
  - 溢位部分必須在返回地址（RET）的存儲位置包含攻擊代碼的正確地址
  - 返回地址（RET）的值必須指向緩衝區中攻擊代碼的起始位置
  - otherwise segmentation violation

##### No Range Checks
沒檢查範圍
- strcpy(char *dest, const char *src)
- strcat(char *dest, const char *src)
- gets(char *s)
- scanf(const char *format, …)
- printf(const char *format, …) 

##### check range
```
strncpy(char *dest, const char *src, size_t n)
```
Change from
```
strcpy(record, user);
strcat(record, ":");
strcat(record, cpw);
```
To
```
strncpy(record, user, MAX_STRING_LEN-1);
strcat(record, ":");
strncat(record, cpw, MAX_STRING_LEN-1);

```
但是
strncpy 和 strncat 只限制單次操作的大小，但不追踪整個緩衝區的總大小。
如果 record 的大小小於 user + : + cpw 的總長度，仍可能導致溢位。

### Variable Overflow
用BUF OVERFLOW去改變SENTATIVE的變數內容
![image](https://hackmd.io/_uploads/B1PUE6BrJe.png)

### Alter Pointer Variables
![image](https://hackmd.io/_uploads/ByFANaBS1x.png)
- 在輸入參數 s 中注入惡意代碼：
Send malicious code in s
- 通過 gets 提供超過 80 字節的輸入：
Pass more than 80 bytes in gets.
- 覆蓋函數指標 fnptr 的值：
Overflow fnptr.
- fnptr 現在指向惡意代碼：
fnptr now points to malicious code.
- 當 fnptr 被執行時，惡意代碼也將被執行：
When fnptr is executed, malicious code is executed

### Frame Pointer 
![image](https://hackmd.io/_uploads/SJVWLaSrJx.png)
![image](https://hackmd.io/_uploads/ryhqupHSJg.png)
![image](https://hackmd.io/_uploads/S1EnuTrSyg.png)

### Integer Overflow
```
static int getpeername1(p, uap, compat) {

    struct sockaddr *sa;            // socket 地址結構
    
    len = MIN(len, sa->sa_len);     // 確保 len 不會超出範圍
    
    copyout(sa, (caddr_t)uap->asa, (u_int)len); // 將 len 字節複製到用戶空間
   
}

```
如果LEN是負數(SIGNED)，負數 len 會通過這個檢查，copyout會把其解釋成很大的數，結果最多可複製 4GB 的核心內存到用戶空間

### Time of Check to Time of Use
Concurrency issue
- 連續指令可能不會順序執行。
Successive instructions may not execute serially.
- 其他進程可能會在此期間獲得控制權。
Other processes may be given control

TOCTTOU
- 在存取控制檢查與實際存取操作之間，控制權被交給了其他進程。
Control is given to other process between access control check and access operation.
---
正常檔案的path通過檢查後，利用Concurrency issue趁還沒有開啟時把path代表的檔案換成惡意的
![image](https://hackmd.io/_uploads/BJUn5pBH1l.png)
#### Defense
- 確保關鍵參數在進程切換期間不被暴露
Ensure critical parameters are not exposed during pre-emption.
- 確保操作的順序完整性
Ensure serial integrity
  - ```openfile``` is **atomic**
  - No pre-emption during its execution(不允許進程切換)
- 驗證關鍵參數的完整性
Validate critical parameters.
  - 在進程切換之間驗證路徑的checksum

### Incomplete Mediation
程式或系統未對用戶輸入進行充分的檢查與過濾時，可能導致錯誤或漏洞。


FIX
- 在客戶端編寫代碼檢查輸入的正確性
- 限制用戶的選擇，只能選擇有效的選項（例如，使用下拉選單）。

BUT STILL vulnerable
前端驗證結果可通過 URL 獲取
惡意用戶可以訪問並修改這些字段
只有當修改完成後才會發送給服務器
服務器無法區分 URL 是來自用戶瀏覽器還是惡意用戶

### COMBINATION
Use in Combination, can be used 

Example: Attacker can
- Use buffer overflow to disrupt code execution
- Use TOCTTOU to add a new user to system
- Use incomplete mediation to achieve privileged
status

## NetWork
![image](https://hackmd.io/_uploads/HkSfXFUrJl.png)

---
![image](https://hackmd.io/_uploads/HJImXFUHJe.png)

![image](https://hackmd.io/_uploads/B1-ZVKLB1x.png)
![image](https://hackmd.io/_uploads/H1AM4tUSkx.png)

---
![image](https://hackmd.io/_uploads/r1ls7KIBkx.png)


### Promiscuous Mode
在Promiscuous Mode下，網卡（Network Interface Card，NIC）會接收網絡中所有的封包，而不僅僅是那些發送給自己的封包。
可以用作網路監聽，分析封包，攔截密碼

#### Wireless
easy to sniff
- 訊號散播 不受物理線材的限制

Wardriving（尋找開放式網絡）指駕車或步行通過移動設備尋找開放式無線網絡的行為

#### defense
很難遠程檢測
- Baiting（誘餌）： 發送具有誘餌特性的封包，測試是否被攻擊者捕獲。
- Ping Delay（延遲測試）： 觀察回應延遲，判斷網卡是否處於異常狀態（如可能沒有傳輸線纜的情況）
- 主機檢測
    - ifconfig or cpm.c
    - big log file or CPU load
- Routing and Bridging 限制傳輸範圍
- Switches/VLANs instead of Hubs
  - 交換機（Switches）：與集線器（Hubs）不同，交換機只將數據轉發給目標設備，大幅降低被嗅探的可能性。
  - VLAN： 將網絡劃分為不同的邏輯子網，限制封包的傳播範圍。
- 加密


#### Sniffer Baiting（誘餌策略）
在網絡中傳輸「誘人的」封包，例如帶有明文密碼的登錄信息。
將誘餌數據編碼在特定字段中，例如 password。
等待攻擊者使用這些數據登錄到蜜罐（Honeypot），然後進行分析。

![image](https://hackmd.io/_uploads/rJZzKY8r1g.png)
![image](https://hackmd.io/_uploads/Hk0ItKIByg.png)

### ARP Poisoning

ARP（Address Resolution Protocol）

ARP 用於將 IP 地址映射到 MAC 地址。
當某設備需要發送封包給同一局域網內的其他設備時，若沒有對應的 MAC 地址，會廣播一個 ARP 請求來獲取。


![image](https://hackmd.io/_uploads/Skkt5FLSyg.png)

**Man-in-the-Middle Attack**
攔截流量後修改通信內容，例如網頁內容


### tcpdump
- 一個命令行工具，用於分析網絡或協議問題。
- 通過捕獲和顯示網絡數據包的信息，幫助診斷網絡問題或監控網絡流量。
- 適合進行輕量級的網絡監控和數據分析。

#### 特性
- 可以通過命令行選項選擇需要監控的特定協議，例如 TCP、UDP、ICMP 等
- 數據包都可以以 十六進制格式（Hex） 顯示

### IP impersonation on a LAN
- 本地 IP 地址要求：
攻擊者需要在局域網內使用一個本地的 IP 地址進行偽裝。
這樣可以欺騙其他主機，使它們的流量被重定向到攻擊者。
IP 地址的配置：
- 通過手動配置，可以輕鬆更改自己的 IP 地址以匹配目標設備的 IP 地址。
- 攻擊方式：
拒絕服務攻擊（DoS）： 創建一個虛假的 IP 包，偽造源地址並直接寫入乙太網驅動程序，干擾目標通信。

### IP Vulnerabilities
![image](https://hackmd.io/_uploads/Bype45ISyl.png)
![image](https://hackmd.io/_uploads/SkL-45IHkx.png)

### IP Fragmentation Attacks
當數據包的大小超過 MTU（最大傳輸單元）時，IP 協議會將其分片，以便通過支持較小數據包的網絡鏈路。

Fragment Offset（分片偏移量）：
- 指示該分片在原始數據中的位置。

Flags（標誌位）：
- 包括 MF（More Fragments，還有更多分片）和 DF（Don't Fragment，不進行分片）標誌。

![image](https://hackmd.io/_uploads/BkB6E5UHye.png)


![image](https://hackmd.io/_uploads/HJj-Sq8BJg.png)
![image](https://hackmd.io/_uploads/HyJQH5UrJe.png)

### IP Source Routing
允許發送方在數據包中指定其傳輸路徑（經由哪些路由器和網絡到達目標）(TO/FROM HOST)
#### Source Address Spoofing
- remote hacker spoofs source address to that of trusted internal host
- internal hosts thinks it's a local (trusted) host, but source routing routes packet back to hacker's machine

1.攻擊者冒充受信任的主機，與目標設備進行通信
2.攻擊者指定數據包的源路由
3.回傳數據流量按照指定的路徑返回攻擊者設備，而不是正確的受信任主機
![image](https://hackmd.io/_uploads/BkyJw5IB1x.png)

#### Counter method
- routers can (should) be configured to drop source routed packets
- tcpwrappers (host-based network ACLs) also drop such packets(網絡訪問控制列表)

### TCP
Three way handshake
- SYN flooding -- denial of service
consumes server resources
- Land.c attack SYN with src and dst IP
the same
- Send FIN or RST to break a connection
    - need to get sequence number right
- Do port scans to find services (nmap)

### Sequence number guessing (TCP)
- TCP 協議使用序列號來跟踪數據包的順序，確保數據的可靠傳輸。
- 每次建立新連接時，通信雙方會交換初始序列號（ISN，Initial Sequence Number），並隨後根據數據包的大小遞增。
![image](https://hackmd.io/_uploads/S10MFqLBkl.png)
![image](https://hackmd.io/_uploads/ByBXYqIS1l.png)
![image](https://hackmd.io/_uploads/r197t5USkl.png)
- 探測目標（Probe Target）：
    - 攻擊者向目標發送多個 TCP SYN 請求，記錄返回的 SYN-ACK 中的初始序列號。
- 推測序列號（Guess Sequence Number）：
    - 通過分析序列號的增量規律，推測下一個序列號。
- 偽裝受信任主機（Spoof Trusted Host）：
    - 攻擊者偽造受信任主機的 IP 地址，向目標主機發送帶有正確序列號的 TCP 包。
- 建立偽裝連接：
    - 如果序列號正確，目標主機會接受連接，攻擊者即可進行未授權操作。
- 會話預測（Session Flow Prediction）：
    - 攻擊者需要預測會話的完整數據流，因為其無法直接接收服務器的回應包。

#### Counter method
- new OS's, random seq. number
- router blocks local from external

### Session Hijacking(TCP)
- 攻擊者位於通信路徑中（Man-in-the-Middle，MITM）：
    - 攻擊者監視初始的會話建立過程（例如 TCP 三次握手）。
- 嗅探初始數據（Sniff Initial Session Establishment）：
    - 攻擊者捕獲用戶和服務器之間交換的序列號和其他通信參數。
- 重置客戶端（Reset Client）：
    - 攻擊者向客戶端發送 TCP RST（重置包），使其與服務器斷開連接。
- 接管會話（Take Over Session）：
    - 攻擊者通過模擬客戶端的身份與服務器通信，並完全接管會話。


即使是基於strong-authenticated session（如 SKey、SecureID）的會話，攻擊者也可以在認證完成後劫持會話。

#### counter method
使用加密的通信協議（如 SSH），防止攻擊者嗅探數據

### UDP
- fraggle (brother of smurf) attack
    - 原理：
        - 利用 UDP 廣播，將數據包發送到端口 7（echo）、19（chargen）或 135（Windows RPC）。
        - 數據包的源地址偽裝為受害者 IP 地址。
    - 影響：
        - 廣播引發大量回應，淹沒受害者的網絡（類似於 DDoS
        
- UDP Bomb
    - 創建非法的 UDP 數據包（如數據包長度小於 IP 頭部長度）
    - 某些舊操作系統無法處理這種非法數據包，導致 IP STACK 崩潰。

### DNS
域名轉換IP地址

- DNS 中毒（DNS Poisoning）：
    - 攻擊者向 DNS 緩存注入惡意數據，使用戶訪問錯誤的 IP 地址。
- 攔截與回應（First Responder）：
    - 攔截 DNS 請求並提供偽造的響應，將用戶引導至惡意網站。
- 冒充可信主機（Impersonation）：
    - 假冒合法的 DNS 伺服器或域名，竊取用戶敏感數據。
- 拒絕服務攻擊（Denial of Service, DoS）：
    - 向 DNS 伺服器發送大量請求，導致其無法處理正常流量

#### DNS poisoning
![image](https://hackmd.io/_uploads/B1ULAj8S1l.png)
![image](https://hackmd.io/_uploads/B1k_CsUr1e.png)

![image](https://hackmd.io/_uploads/H1OZg3ISJl.png)
![image](https://hackmd.io/_uploads/rk1fx3Ir1g.png)

### Denial of Service (DoS) Attacks
- Flooding or “poison packet”
- overload service/net, e.g. SYN attack
- crash server or your machine
- overload DNS, routers, servers
- usually done with bogus(偽造) source IP address(es)
- difficult to block/filter

#### 2nd order denial of service
- 攻擊者設計惡意流量，觸發目標系統的自動防禦機制（如自動阻止 IP 或關閉服務），將這些合法 IP 加入黑名單。
- 防禦系統誤判，將合法用戶的訪問也阻止，進而對合法用戶產生拒絕服務的效果

### Distributed denial of service attacks (DDoS)
Botnets(殭屍網路)
![image](https://hackmd.io/_uploads/SJzk73Uryx.png)
![image](https://hackmd.io/_uploads/HJ6oQhLHyg.png)
#### counter method
hard:
流量必須是活躍狀態，才能進行追踪。
必須進入目標網絡路由器，並逐層回溯到來源。
需要跨越管理邊界與國家邊界
![image](https://hackmd.io/_uploads/S1_7Vn8ryg.png)
