💡 先搞懂問題
網路問題五花八門:連不上、被竊聽、被灌爆。麻煩的是,如果不知道一個協定、一台設備或一種攻擊「落在哪一層」,就很難判斷該由誰來處理——是路由器、防火牆,還是應用程式?看不懂通訊埠,也就看不懂防火牆規則和掃描結果。分層模型就是為了把這團亂線理成一疊清楚的樓層。
一個生活比喻:寄一件公司包裹。你要寄東西給某棟大樓某個房間的某個人。你先把物品裝箱(資料),寫上收件人(應用內容),交給物流。物流中心決定要走哪條路把包裹送到那棟大樓(這是路由器依 IP 找路);到了大樓,警衛依門牌把包裹送進正確房間(這是交換器依 MAC 位址轉送);房間號碼就像通訊埠,同一台主機上用它區分「這是要給網頁服務、還是給郵件服務」。要對方簽收回條的掛號,對應 TCP 的三向交握;丟進信箱就不管的平信,對應 UDP。
回到資安,包裹一層層的包裝,對應的就是封包「逐層封裝」:上層的資料交給下層時,下層會在外面再加一層自己的標頭。這正是防火牆能用「IP+通訊埠」決定放不放行的原因——因為這些資訊就寫在不同層的標頭裡。這個比喻要小心一個地方:真實的包裹只包一次,網路封包卻是每經過一層就多包一層、抵達後再一層層拆開,而且每一層只看得懂自己那一層的標頭。
圖1:OSI 由下而上七層;TCP/IP 把上三層合成「應用層」、下兩層合成「連結層」,剩下傳輸層與網際網路層一對一。考試最常混淆的是「TCP/IP 沒有獨立的會議層」。
🎮 互動實驗室
五個動手玩的實驗(第六個「易混淆快問快答」放在後面的考點補強)。攻擊部分都只是教學模擬,畫面上的輸入不會連到任何真實系統,重點放在「原理」與「怎麼防」。
應用層(L7)
傳輸層(L4)
網路層(L3)
資料連結層(L2)
服務
預設通訊埠
攻擊者送出的是一小段查詢,受害者收到的卻是被放大數十倍的回應。防禦重點是伺服器不要對偽造來源大方回應(關閉開放遞迴、來源位址驗證 BCP38),以及上游流量清洗。
📘 原理補完
把比喻接回技術細節。分層的核心規則是:每一層只和對方的同一層對話,中間層只負責把資料往下交、往上遞。交換器工作在第 2 層,只看 MAC 位址在同一網段內轉送;路由器工作在第 3 層,依 IP 位址在不同網段之間選路。到了第 4 層,TCP 用三向交握(SYN → SYN/ACK → ACK)先確認雙方都在線、可靠但較慢;UDP 不握手、較快但不保證送達,DNS 查詢兩者都會用到 53 埠。
圖:TCP 三向交握。SYN Flood 就是攻擊者停在第 ① 步、永遠不做第 ③ 步,讓伺服器一直留著「半開」狀態的格子。
攻擊落在哪一層,決定了誰能擋
區網(同一個 LAN 網段)裡的攻擊多半在第 2、3 層。ARP 欺騙是攻擊者發出假的 ARP 回應,讓受害者把「某個 IP 對應的 MAC」記成攻擊者自己,流量就先繞到攻擊者手上被竊聽或竄改,這是典型的中間人攻擊(MITM)。MAC 洪水(MAC flooding)則是塞爆交換器用來記 MAC 的位址表,交換器一旦記不住,就退化成像集線器一樣把封包廣播到每個埠,攻擊者便能收到不該給他的流量。這兩種都靠「同一網段預設互相信任、協定沒驗證回應者是誰」這個弱點。
防護對應每一層:第 2 層用交換器的 Port Security(限制每個埠學到的 MAC 數量)擋 MAC 洪水,用 DHCP snooping 搭配 動態 ARP 檢查(DAI) 擋假的 ARP 回應;用 VLAN 與網路分段 把不同部門、伺服器與設備隔開,縮小廣播範圍與橫向移動空間。要注意 VLAN 是同一台交換器上的邏輯切分,設定錯誤(例如原生 VLAN 沒設好)仍可能被「雙重標籤」跳越,並不等於實體分開。
DoS 與 DDoS:把服務忙到癱瘓
阻斷服務攻擊不偷資料,破壞的是 CIA 裡的可用性。DoS 來自單一來源,DDoS 則由大量受控主機(殭屍網路)一起發動,難以靠封鎖單一 IP 解決。依打在哪一層,可分三型,各有各的解法——選錯層級等於沒防:
| 類型 | 手法舉例 | 主要層級 | 對症的防護 |
|---|---|---|---|
| 流量型(塞頻寬) | UDP 洪水、DNS/NTP 反射放大 | L3/L4 | 上游 ISP 或清洗中心分流、來源驗證 |
| 協定型(耗連線) | SYN Flood(半開連線塞滿) | L4 | SYN Cookie、縮短半開逾時、加大等待佇列、回收最舊的半開連線、速率限制 |
| 應用層型(耗運算) | HTTP 洪水、慢速請求(Slowloris、慢速 POST) | L7 | CDN 分散、負載平衡、WAF 速率限制、人機驗證、請求逾時限制 |
常見陷阱:SYN Flood 是第 4 層的問題,想「在 DNS 層限制查詢」或「用防火牆擋掉所有 TCP」都打不到重點,後者還會連正常連線一起擋死。反過來,應用層的 HTTP 洪水靠封鎖 UDP 也沒有用。DNS 本身遭遇大量惡意查詢時,粗暴地限制查詢次數會把正常遞迴查詢一起擋掉,反而幫攻擊者達成阻斷;比較精準的做法是 DNS Sinkhole,只把可疑網域導到無效位址、不影響其他解析。
📌 考點補強
主線講完後,這一節補上考試常出現、但前面只帶過的細節:每一層的工作與設備、IP 位址的幾個常識、TCP 連線怎麼建立又怎麼結束、第二批常見埠號、中間人攻擊的全貌,以及一整排經典的阻斷服務手法。最後有一組易混淆快問快答,讓你練習判斷。
每一層在做什麼、誰在那一層工作
只背層名不夠,考題常把「功能」或「設備」丟出來,要你反推是哪一層。延續寄包裹的比喻:實體層是運送的道路本身,只管把東西搬過去;資料連結層處理同一棟大樓裡的交接;網路層決定跨城市的路線;傳輸層負責確認包裹有沒有完整送達、要不要補寄;上面三層則處理雙方的對話怎麼進行、內容用什麼格式包裝,以及收件人拿到後怎麼使用。
| 層 | 主要工作 | 代表設備或元件 | 常見考法 |
|---|---|---|---|
| 7 應用 | 直接面對應用程式,替它們提供網路功能(瀏覽網頁、收發信、解析網域) | 瀏覽器、Web 伺服器、WAF | HTTP、DNS、SMTP;SQL 注入、XSS、指令注入、HTTP 洪水、DNS 快取污染都算這層 |
| 6 表現 | 資料格式與編碼轉換、壓縮與解壓縮、加解密 | (軟體功能) | 「把資料壓縮、轉換字元編碼」指的是表現層 |
| 5 會議 | 建立、管理與結束應用程式之間的對話(session) | (軟體功能) | 「控制雙方對話的開始與結束」是會議層;TCP/IP 沒有獨立的這一層 |
| 4 傳輸 | 端到端傳送、切段、流量控制,TCP 還負責確認與錯誤重送 | 依埠號判斷的防火牆規則 | TCP、UDP;SYN Flood |
| 3 網路 | 邏輯定址(IP)與跨網段選路 | 路由器、第 3 層交換器 | IP、ICMP;依來源 IP 或來源國家(GeoIP)過濾屬這層;死亡之 Ping、Smurf |
| 2 資料連結 | 同網段內以 MAC 位址傳送訊框、偵測傳輸錯誤 | 交換器、橋接器、網路卡 | ARP 欺騙、MAC 洪水、VLAN;PPP 等點對點連線協定也在這層 |
| 1 實體 | 把位元變成電、光或無線訊號 | 集線器、中繼器、線材 | 集線器把訊號複製到所有埠;無線訊號被干擾 |
有兩個名詞特別容易選錯。第一是「閘道器」(Gateway):在分層題裡,它指的是負責不同協定之間轉換的設備,教科書通常把它放在高層(可能涵蓋第 4~7 層),而不是只看 IP 的第 3 層;日常所說的「預設閘道」其實是一台路由器,別被名字帶走。第二是 TLS/SSL 的位置:它夾在傳輸層與應用層之間,教材常把它歸在表現層,或乾脆稱為「第 4.5 層」,所以針對加密連線本身的劫持,和 SQL 注入、XSS 這類攻擊應用程式邏輯的第 7 層攻擊,常被分開看待。
交換器平常會「學習」:看到某個 MAC 位址從哪個埠進來,就記進 MAC 位址表。之後要送給某個 MAC 時,查得到就只送往那一埠;查不到目的 MAC(或目的本來就是廣播位址)時,只好把訊框複製到其他所有埠,這叫泛洪(flooding)。MAC 洪水攻擊就是故意讓表格裝不下,逼交換器一直泛洪。集線器(Hub)更原始,它在第 1 層、完全不看位址,從任何一埠進來的訊號都往全部埠送,所以接在集線器上的人都能側錄別人的封包;它也無法切分廣播網域,能把廣播網域切小的是路由器與 VLAN。
為了可用性,企業常在交換器之間多拉一條備援線,結果形成迴圈。第 2 層的訊框不像 IP 封包有存活時間(TTL)欄位可以自然消失,一個廣播訊框會在迴圈裡無限繞行、不斷複製,幾秒內就把頻寬和交換器的處理能力吃光,這叫廣播風暴。生成樹協定(STP)讓交換器彼此交換資訊、算出一棵沒有迴圈的樹,把多餘的那條線暫時擋住,等主線斷掉再自動啟用。
三條線同時開著,廣播訊框會在 A→B→C→A 之間無限繞圈。STP 暫停一條後,拓撲變成樹狀,沒有迴圈也保留了備援。
IP 位址的三個常識:私有位址、169.254 與 NAT
私有 IP 是保留給內部網路自由使用、不會在網際網路上被路由的三段位址:10.0.0.0/8、172.16.0.0/12(也就是 172.16~172.31 開頭)、192.168.0.0/16,定義在 RFC 1918。常見陷阱有兩個:172.32 開頭已經超出範圍,不算私有位址;169.254 開頭也不算,它是「連結本地位址」(link-local,Windows 稱為 APIPA),是電腦向 DHCP 要不到位址時自己挑的臨時位址。排除故障時看到電腦拿到 169.254,第一個該懷疑的是 DHCP 伺服器或線路。
內部用私有 IP,要上網就得靠網路位址轉換(NAT):邊界路由器把內部許多私有 IP 換成少數公有 IP 送出去,並記住對應關係,回應回來時再換回去。它的好處是節省公有 IP、外面看不到內部真實位址;但 NAT 不是驗證機制。假設你把某台內部主機的遠端桌面轉埠到外面,攻擊者照樣可以對它反覆猜密碼,NAT 擋不住暴力破解,這要靠帳號鎖定、多因子驗證與防火牆規則。順帶一提,防火牆若依來源 IP 所屬國家(GeoIP)封鎖連線,判斷依據是 IP 標頭,屬於第 3 層的過濾。
NAT 省下公有 IP、藏起內部位址,但它只是「換地址」,不會驗證來的人是誰。示意中的 203.0.113.5 是文件範例用的位址。
TCP 連線的一生:建立、傳輸、關閉
三向交握只是開頭。TCP 連線的兩端在不同時間點處於不同的「狀態」,考題會拿狀態名稱去配對行為。關閉連線需要四個步驟,因為雙方各自都要說一次「我這邊送完了」(FIN),也各自要確認對方的 FIN(ACK)。按 ▶ 下一步,看雙方的狀態怎麼變。
記兩個容易被改錯的地方。SYN 只出現在建立連線的階段,關閉時用的是 FIN 與 ACK;被動關閉的一方收到 FIN 後回的是 ACK,進入 CLOSE-WAIT,這時它還可以把手上沒送完的資料送完,準備好了才送出自己的 FIN。前面實驗室裡的 SYN Flood,卡住的正是伺服器停在 SYN-RECEIVED、等最後一個 ACK 的那一步。
第二批常見埠號
第一批(22、25、53、80、443、3389)在實驗室練過了,下面是考題也會出現、而且常拿「傳輸協定寫錯」或「用途張冠李戴」來設陷阱的一批。
| 埠號 | 服務 | 用途 | 容易錯的地方 |
|---|---|---|---|
| 20/21 TCP | FTP | 傳統檔案傳輸(21 控制、20 資料) | SFTP 不走這裡,走 SSH 的 22 |
| 53 UDP/TCP | DNS | 一般查詢多用 UDP;區域傳送與過大的回應改用 TCP | 兩種都會用到,不是只有 UDP |
| 123 UDP | NTP | 網路校時 | 不是目錄服務 LDAP |
| 137~139 | NetBIOS | 舊式 Windows 網路芳鄰:137 名稱服務、138 資料包、139 工作階段 | 「網芳」題目通常指這組 |
| 161/162 UDP | SNMP | 網管監控與告警 | 舊版本以明文社群字串驗證 |
| 389/636 | LDAP/LDAPS | 目錄服務查詢,636 是加密版 | 123 不是 LDAP |
| 445 TCP | SMB | Windows 檔案與印表機分享 | 走 TCP,寫成 UDP 就錯 |
| 993/995 TCP | IMAPS/POP3S | 加密的收信 | 對應明文版的 143 與 110 |
| 443 UDP | HTTP/3 | 新一代網頁傳輸 | 跑在 UDP 上的 QUIC,不是 TCP |
HTTP/3 值得多說一句:它把傳輸改成跑在 UDP 上的 QUIC 協定,QUIC 由 Google 率先提出、後來由 IETF 標準化,並把 TLS 1.3 加密直接內建。因為走的是 UDP,有些企業的代理伺服器或防火牆會刻意擋掉 UDP 443,讓瀏覽器退回 TCP 上的 HTTP/2,方便檢查與過濾。加密做得更完整,不代表可以省略憑證驗證,下一段會說明原因。
中間人攻擊的全貌
回到包裹的比喻,中間人(MITM)就是在物流途中攔下包裹、拆開看、甚至換掉內容再原樣封好送出的人,寄件和收件雙方都以為一切正常。所以它的目的是竊聽或竄改通訊內容,而不是讓服務癱瘓;相反地,中間人希望通訊照常順暢,才不會被察覺,因此它通常不會拖慢系統,也不需要先把哪一方打掛。攻擊分兩步:先想辦法把自己插進通訊路徑,再做事,例如側錄封包(sniffing)、在連線中注入封包、劫持已登入的工作階段(session)。點擊劫持是在網頁上疊一層透明按鈕騙使用者點擊,並沒有插進通訊路徑,不屬於中間人手法。
| 插進路徑的方法 | 弱點在哪 | 對策 |
|---|---|---|
| ARP 欺騙(L2) | ARP 回應不驗證是誰發的 | 重要主機設定靜態 ARP(IP 與 MAC 固定綁定)、交換器啟用 DAI |
| 惡意 DHCP 伺服器 | 用戶端相信第一個回應的 DHCP | DHCP snooping 只信任指定埠。後果是受害者拿到錯誤的閘道或 DNS 設定,被導向假網站 |
| DNS 快取污染(L7) | DNS 回應預設沒有簽章 | DNSSEC 驗證回應的數位簽章 |
| 假 Wi-Fi 熱點、公共網路 | 無法確認網路是誰架的 | 全程使用加密 VPN、只連 HTTPS、不連無驗證的熱點 |
| BGP 路由劫持 | 網路業者之間宣告的路由沒被驗證 | RPKI 驗證「這段位址是否真的由該業者宣告」 |
「有加密就不會被中間人」是錯的。加密要能擋住中間人,前提是確認對方的身分,也就是驗證憑證。攻擊者可以把使用者從 HTTPS 降級成 HTTP(SSL Strip,網站啟用 HSTS 可防);也可以拿自己的憑證冒充網站,只要使用者無視瀏覽器警告,或裝置被植入惡意的根憑證就會成功;如果 App 程式碼根本沒有檢查憑證,等於直接放行,這是原始碼檢測常抓到的中間人漏洞。另外,已被證實有嚴重弱點的舊協定(SSL 2.0、SSL 3.0,連 TLS 1.0/1.1 也已被建議停用)不該再用來保護傳輸。
兩個與區網相關的調查與設定也常一起出現。若想知道「某個時間點是哪張網卡(MAC)拿著某個 IP」,要查 DHCP 伺服器的租約紀錄;電腦上的 ARP 快取只記得最近一小段時間,過期或重開機就沒了。DNS 伺服器之間同步紀錄的「區域傳送」(AXFR,走 TCP 53)如果沒有限定只給指定的次要 DNS,任何人都能把整份內部網域清單要走,等於替攻擊者做好偵察。
阻斷服務手法圖鑑
經典手法的名字很多,考題愛問「屬於哪一層」和「哪兩個長得很像」。下表依層級由下往上排列:
| 手法 | 怎麼做 | 層級 | 重點防護 |
|---|---|---|---|
| 無線干擾 | 用強力雜訊把無線訊號蓋掉 | L1 | 頻譜監測、改用有線或抗干擾設計 |
| 死亡之 Ping | 送出重組後超過 IP 封包上限(65,535 位元組)的畸形 ICMP 封包,讓舊系統重組時崩潰 | L3 | 修補系統、過濾異常分段 |
| Teardrop | 送出位移互相重疊的 IP 分段,讓重組出錯 | L3 | 修補系統 |
| Land | 偽造封包,使來源 IP 與埠號和目的完全相同,主機對自己回應陷入迴圈 | L3(以 TCP SYN 送出) | 邊界丟棄來源位址是自己的封包 |
| Smurf | 冒用受害者 IP,對整個網段的廣播位址送 ICMP Echo,全網段一起回應受害者 | L3(ICMP) | 路由器關閉導向廣播、主機不回應廣播 ping |
| Fraggle | 同 Smurf 的借力手法,但改用 UDP 的 Echo(7)與 Chargen(19) | UDP | 關閉導向廣播、停用 7、19 等老舊服務 |
| SYN Flood | 大量 SYN 不回 ACK,塞滿半開佇列 | L4 | SYN Cookie、加大佇列、回收最舊半開連線、縮短逾時 |
| UDP 洪水/反射放大 | UDP 無需握手、來源好偽造,最適合灌爆頻寬 | L3/L4 | 上游清洗、來源位址驗證、關閉開放服務 |
| HTTP 洪水 | 大量看起來正常的網頁請求 | L7 | CDN、負載平衡、WAF 速率限制、人機驗證 |
| Slowloris | 開很多連線,HTTP 標頭一直送不完 | L7 | 限制標頭接收時間與每個 IP 的連線數 |
| 慢速 POST | 標頭聲明本文很長,再把本文一點一點慢慢送 | L7 | 限制本文接收時間與最低傳輸速率 |
| 郵件炸彈 | 對同一信箱灌進成千上萬封信 | L7 | 郵件閘道限速與過濾 |
什麼算阻斷服務?判斷標準只有一個:目的是不是讓合法使用者用不到服務。對某個信箱灌進成千上萬封信讓它塞爆,是 DoS;寄一封夾帶惡意連結的信給全公司,則是釣魚,目的是騙人點擊,不是癱瘓服務。無線網路被強力雜訊「蓋台」干擾也是 DoS,只是發生在實體層。DDoS 的目的在於耗盡資源(頻寬、連線、運算),它不會去側錄封包內容,也不是去修改服務程式本身。
遭受 DoS/DDoS 時,徵兆通常是整體性的:對外頻寬滿載、防火牆或網通設備撐不住負載、伺服器的作業系統或服務資源被吃光,所有使用者都變慢或連不上。如果只有某一項內容出問題、其他功能都正常,比較像單一功能故障,不是典型的阻斷服務徵兆。
選防護要看來源與層級。單一來源的 DoS,最直接有效的是針對每個來源 IP 做請求速率限制;分散來源的 DDoS 封不完 IP,要靠上游清洗、CDN 與負載平衡把流量攤開。至於為什麼大流量攻擊特別愛用 UDP,原因是它不必握手、來源 IP 容易偽造,最適合拿來做反射放大。
網路分段怎麼規劃才算數
分段不只是「多切幾個 VLAN」。規劃時要依安全等級與用途分區,例如辦公區、伺服器區、DMZ、生產線的控制系統各自一段;伺服器和資料庫最好也分開放,不要擠在同一台或同一段。區隔可以用實體網路,也可以用邏輯的 VLAN,而各區之間的出入口要有閘道把關,例如防火牆,或具備封包過濾功能的路由器。無線網路比較特別:電波會穿牆、飄到停車場,很難像有線網路那樣明確畫出邊界,所以實務上把無線網段當成不可信的獨立區域,放在防火牆後面,再加上強驗證。VLAN 本身也要設對:主幹埠的原生 VLAN 應改成一個沒人使用的 VLAN(不要沿用預設的 VLAN 1),並關閉存取埠自動協商成主幹,才能擋住雙重標籤跳越。最後,任何單一設備都可能失手,分段、防火牆、偵測與端點防護要一層一層疊上去,這就是縱深防禦(Defense in Depth);只靠一層防護的設計是不夠的。
✅ 自我檢測
十題原創情境題,作答後立即顯示對錯與解析。目前 0 / 10
🎯 重點整理(考前 30 秒)
- OSI 由下而上七層;TCP/IP 四層把 OSI 上三層併成應用層、下兩層併成連結層,沒有獨立會議層。
- 設備定位:交換器=第 2 層看 MAC、路由器=第 3 層看 IP;TCP/UDP 在第 4 層,TCP 三向交握是 SYN → SYN/ACK → ACK。
- 常見埠:21 FTP、22 SSH/SFTP、23 Telnet、25 SMTP、53 DNS、80 HTTP、110 POP3、143 IMAP、443 HTTPS、3389 RDP。SFTP 走 22 不是 21 是常見陷阱。
- 區網攻擊多在 L2/L3:ARP 欺騙=竄改 IP↔MAC 對應做中間人;MAC 洪水=塞爆位址表逼交換器廣播。對策是 DAI、DHCP snooping、Port Security、VLAN 分段。
- DoS 破壞可用性;DDoS 來源分散更難擋。三型分別是流量型、協定型(SYN Flood)、應用層型,要對層下藥。
- SYN Flood 的解法是 SYN Cookie、縮短半開逾時、速率限制;反射放大靠關閉開放遞迴、來源驗證與流量清洗;DNS 惡意查詢用 Sinkhole 精準攔而不是全部限速。
- VLAN 是邏輯切分、設定錯仍可能被雙重標籤跳越,不等於實體隔離;原生 VLAN 要改成沒人用的 VLAN。
- 設備分層:集線器、中繼器在 L1,交換器、橋接器在 L2,路由器在 L3。交換器查不到目的 MAC 會泛洪;L2 迴圈造成廣播風暴,用 STP 解。
- 私有 IP 只有 10/8、172.16/12、192.168/16,169.254 不算;NAT 省 IP、藏內部位址,但擋不了暴力破解;依 GeoIP 過濾是 L3。
- TCP 關閉用 FIN 與 ACK,被動方收到 FIN 回 ACK、進入 CLOSE-WAIT;延伸埠記 123 NTP、137~139 NetBIOS、445 SMB(TCP)、389 LDAP、995 POP3S,HTTP/3 走 UDP。
- 中間人的目的是竊聽、竄改而非癱瘓;有加密但不驗證憑證仍會被中間人。公共 Wi-Fi 用 VPN,想查某時段哪張網卡拿著哪個 IP 要看 DHCP 紀錄,BGP 劫持靠 RPKI。
- 經典 DoS:死亡之 Ping、Teardrop、Land、Smurf 在 L3,Fraggle 是 UDP 版 Smurf;Slowloris 拖標頭、慢速 POST 拖本文;郵件炸彈與無線干擾也算 DoS。