:::info 110年資安職能課程上課筆記整理,僅供參考! 113年換證教材更版整理 ::: [toc] ## 先備知識:TCP/IP 協定堆疊 * [[ITHome]什麼是OSI的7層架構?和常聽到的Layer 7有關?](https://www.ithome.com.tw/node/47085) * [TCP/IP 協定堆疊](https://reurl.cc/px7emd) * [從傳紙條輕鬆學習基本網路概念](https://reurl.cc/WXjKE7) ![tcpip](https://miro.medium.com/max/2400/1*BFde4y9sPtLllTZ6OjoKEg.png) * [TCP三方交握](https://notfalse.net/7/three-way-handshake) ## 延伸學習 * 防火牆建置資安參考指引 * 入侵偵測與防禦系統建置資安參考指引 * 安全控制措施參考指引 * ISO27001資訊安全管理、ISO27005資安風險管理、ISO22301營運持續管理 ## 第一單元:通訊協定與拓樸 ### 路由協定:RIP、OSPF、IGRP、EIGRP、BGP ![image](https://hackmd.io/_uploads/HJWbSUNHR.png) * 路由器之間交換路由資訊的網路協定。 * [靜態路由](https://reurl.cc/95MmXx) (適合小規模網路) * 管理者手動配置、自定義路徑 * 計算能力或頻寬使用較少 * 任何路由發生故障,會干擾其他路由路徑 * 適合小型、架構不變的網路 * [動態路由](https://reurl.cc/35GqLO) (適合大規模網路) * 路由器自動更新路由,且依據網路變化自動進行路徑選擇 * 使用計算能力或頻寬較多 * 任何路由發生故障,不會影響其他路由路徑 * 適合大型、架構複雜的網路 * 閘道內部主流運作方式 ![image](https://hackmd.io/_uploads/SJ4Vv84HA.png) * 連結狀態(Link State)運作 > Link-State路由演算方式是,網路上每一個節點(也就是路由器)都會擁有自己一份的『網路地圖』,這份網路地圖顯示著從自己這個節點到網路上任何一個節點的最佳路線,而這些最佳路線都是計算出來的,所以每個節點的地圖不見得相同,也不彼此分享,這份網路地圖也就是Routing Table。 * 距離向量(Distance Vector)運作 > 和Distance Vector路由協定最大的不同點是,Distance Vector路由協定中的路由器會彼此分享Routing Table。 * 混合上述兩者 * ==路由收斂快慢==是衡量路由協定的一個關鍵指標 * IGP(Interior Gateway Protocols,也可稱為Interior Routing Protocols) > 允許單個自治系統內的路由器交換路由訊息 * RIP (Route Information Protocol, 路由資訊協定) * 最早出現的距離向量(Distance Vector)協定 * 主要應用於規模較小的、可靠性要求較低的網路 * ==距離向量(Distance Vector)運作== * 每隔30秒廣播一次路由表,維護相鄰路由器的位置關係 * 最大hop數為15 * 設定簡單,收斂速度較慢 * ==不支援VLSM== * IGRP (Interior Gateway Routing Protocol, 內部閘道路由協定) * Cisco專屬協定,針對RIP功能的增強 * ==距離向量(Distance Vector)運作== * 周期性廣播路由表 * 最大hop數為100 * 使用混合度量值,以5個方面計算路由的度量值 * 頻寬 * 延遲 * 負載 * 最大傳輸單元(MTU) * 可靠性 * 現在已少見:Cisco IOS v12.3及其以上,已不支援 ![image](https://hackmd.io/_uploads/BJ7-tIVHA.png) * OSPF (Open Shortest Path First, 開放式最短路徑優先) * 連結狀態(Link State)運作 * 提出「區域(area)」的概念,每個區域中所有路由器都有著一個相同的網路狀態資料庫(LSDB) * 透過SPF演算法計算得到路由表,收斂速度較快 * 廣泛使用 * RFC文件 * IPv4 (OSPFv2):RFC2328 * IPv6 (OSPFv3):RFC5340 * IS-IS (Intermediate system to intermediate system, 中間系統到中間系統協定) * ISO制定的標準IS-IS不適用於IP網路,因此IETF制定適用於IP網路的整合化IS-IS * 連結狀態(Link State)運作 * 與OSPF相同,使用「區域」的概念,透過SPF演算法計算出最佳路徑 * [[網管人]原生OSI網路層標準 IS-IS路由協定簡介](https://reurl.cc/px7eWr) ![image](https://hackmd.io/_uploads/S1fmtUNBR.png) * EIGRP (Enhanced Interior Gateway Routing Protocol, 加強型內部閘道路由協定) * Cisco專屬協定,取代IGRP,IGRP的加強版 * 高階距離向量路由協定(==混合型路由協定==) * 引入非等價負載均衡技術 * 有極快的收斂速度 ![image](https://hackmd.io/_uploads/SJKSc8NrA.png) * EGP(Exterior Gateway Protocols,也可稱為Exterior Routing Protocols) > 允許不同自治系統中的路由器交換路由訊息 * BGP (Border Gateway Protocol, 邊界閘道器協定) * 路徑向量路由協定(Path-Vector Routing Protocol) * 處理各ISP之間的路由傳遞 * RFC4271 ![image](https://hackmd.io/_uploads/r1729UNrA.png) * 企業應用以IGP為主,而EGP則通常是電信服務業者(ISP)在使用。 * [[ITHome]路由通訊協定這麼多,應選哪一種好?](https://www.ithome.com.tw/node/45046) * [RIP、EIGRP、OSPF 路由協定比較](https://reurl.cc/oxlEx3) * RIP、OSPF、IS-IS為標準協定,跨廠牌路由器皆可支援。 * 綜合整理 | | RIPv1 | RIPv2 | IGRP | OSPF | IS-IS | EIGRP | BGP | | --------- | ------ | --------------- | ------ | --------------------------------- | ------------------------ | --------- | --- | | 收斂快慢 | 慢 | 慢 | 慢 | 快 | 快 | 非常快 | 平均 | | IGP/EGP | IGP | IGP | IGP | IGP | IGP | IGP | EGP | | DV/LS/PV | DV | DV | DV | LS | LS | DV (混合) | PV | | 身分驗證 | 不支援 | 簡單密碼<br>MD5 | 不支援 | ==預設不認證==<br>簡單密碼<br>MD5 | 簡單密碼<br>==HMAC-MD5== | MD5 | MD5 | | CIDR/VLSM | 不支援 | | 不支援 | | | | | ### 網路管理協定 ![image](https://hackmd.io/_uploads/SJgPo84BR.png) * SNMP (Simple Network Management Protocol) * 可透過單個管理系統,監測/監控不同的網路設備裝置狀態 * 由一組標準組成 * ==應用層協定== * 主要分為管理端(manager)、代理者(agent)以及網路管理資料庫(management information base, MIB)三個元件 ![image](https://hackmd.io/_uploads/SkpniIESR.png) * 管理端(manager):向agent查詢所需的相關資訊,並進行統計分析 * 代理者(agent):(1)讀取被監控設備的資訊[Get Request、Get Next Request]。(2)接收到管理端指令時,回傳資訊[Get Response]。(3)在符合某些條件下,提供主動回報的機制[Trap]。 * 網路管理資料庫(MIB):(1)採用「樹狀結構」,是一種「階層式分類」。(2)受管理設備稱為SNMP Object,附有物件識別碼(object identifier, OID)。 * SNMP利用物件識別碼(OID)來識別被監控的設備,並用來取得被監控設備的狀態,或者利用設定OID來設定被監控設備的狀態。 * SNMPv1定義了五種溝通指令:管理端發送給代理者 ![image](https://hackmd.io/_uploads/S17FnI4H0.png) * Get Request (從MIB,請求一個或多個值) * Get Next Request (從MIB Tree中讀取下一個OID值) * Set Request (設置請求) * Get Response (讀取回應) * Trap (報告異常狀況):UDP port 162 * 版本 ![image](https://hackmd.io/_uploads/SJZpaLVHC.png) * SNMPv1 * 未定義管理者對管理者的關係 * 無法一次傳送大量資料(須花費較多時間重複下達命令以取得資訊) * 一個網路環境只能部署一個管理系統,<b>不適用於大型網路環境</b> * 僅提供簡單的身份認證機制(community名稱),安全性具有疑慮 * 採用pooling(輪詢)的管理方式(間隔時間長短影響效用) * SNMPv2 * 有SNMPv2p、SNMPv2u和SNMPv2c三種,其中==以SNMPv2c是最常用==。 * 增強管理端之間的溝通能力(==新增InformRequest指令==) * 管理端只要下達一次命令即可取得大量資料(==新增GetBulkRequest指令==),減少M和A之間的交談次數 * 擺脫一個網路環境只能部署一個管理系統的限制,<b>可適用於大型網路環境</b> * SNMPv3: * 由RFC3411~RFC3418定義 * 在安全性和遠端配置方面強化 (提供重要的安全性功能,包含資訊完整性,檢驗資訊來自正確的來源,封包加密) ### 網路拓樸 ![image](https://hackmd.io/_uploads/B1epWwEHC.png) * 構成網路的元件間特定的排列方式 * Bus 匯流排拓樸 ![image](https://hackmd.io/_uploads/BkjGyPVS0.png) * 以一條同軸電纜串接所有節點,線路兩端末處須以端電阻來結束 * 增刪任一節點不影響網路 * 網路流量大時,容易產生信號碰撞(collision) * 主線路中斷時,整個網路也跟著中斷;網路發生中斷時,很難找出問題點 * 各節點發送流量擁有平等的優先權 * Ring 環狀拓樸 (新教材增加) ![image](https://hackmd.io/_uploads/ByAsJPVB0.png) * 類似Bus,但具有連接的末端 * 單向傳輸,順時針方向 * 數據在一個循環中連續流動 (無限循環) * Star 星狀拓樸 ![image](https://hackmd.io/_uploads/rkOMxwNH0.png) * 以一個中央交換機(central switch)或集線器(Hub)來連線所有節點 * 採用無遮蔽的雙絞線 * 中央節點負擔重,一旦發生故障,則整個網路都受到影響 * 大量電纜的使用,成本高、單一線路利用率低 * 節點直接連到中央節點,容易檢測和隔離故障 * Tree 樹狀拓樸 ![image](https://hackmd.io/_uploads/HyeTjgPVHA.png) * 結合 Bus 和 Star 的特點 * 具有分層方式相互連接 * 兩個連接的節點僅共享一個相互連接 * 父子層次結構 * Mesh 網狀拓樸 ![image](https://hackmd.io/_uploads/r1mCgwVSR.png) * ==點到點有多個路徑,電纜數量=(n*(n-1))/2== * 可以保持節點間連線完整 * 在網路節點間透過動態路由的方式,來進行資料與控制指令的傳送 * 主要使用於無線網路 * Hybrid 混合式拓樸 * 結合了兩種或多種不同的拓樸結構 ### 網路查檢指令 ##### ipconfig * `ipconfig /?` * 清除DNS快取: `ipconfig /flushdns` * 顯示DNS快取內容: `ipconfig /displaydns` * [What is My IP Address](https://whatismyipaddress.com/) ##### netstat ![image](https://hackmd.io/_uploads/rJ27zDVSC.png) ![image](https://hackmd.io/_uploads/Bk7DfwErR.png) * `netstate /?` * [TCP 連線狀態機制與流程](https://reurl.cc/EZk5Xn) ![image](https://hackmd.io/_uploads/ByqK4DNrC.png) * Tcp state diagram ![](https://i.imgur.com/3ugNYUa.png) * 狀態 * ESTABLISED:已建立連線的狀態; * SYN_SENT:發出主動連線 (SYN 標誌) 的連線封包; * SYN_RECV:接收到一個要求連線的主動連線封包; * FIN_WAIT1:該插槽服務(socket)已中斷,該連線正在斷線當中,==等待遠端回應ACK==; * FIN_WAIT2:該連線已掛斷,但正在等待對方主機回應斷線確認的封包 (==等待遠端回應FIN==); * TIME_WAIT:該連線已掛斷,但 socket 還在網路上等待結束; * LISTENING:通常用在服務的監聽 port,被動等待連線 * 範例:`netstat -anob` > 工作管理員 >> 較多詳細 >> 「效能」分頁 >> 「開啟資源監視器」 * `-o`:這個參數通常和`-a`、`-n`和`-p`混合使用。 * `-b`:可以看到什麼程式在執行 (需要系統管理員權限)。 ![image](https://hackmd.io/_uploads/rJmoXwNrR.png) * 範例:`netstat -r` ![image](https://hackmd.io/_uploads/HJ3WSwNS0.png) ### 安全連線 * http與https * ==無狀態協定== * http * 80 port * 未加密,可透過wireshark截封包透過Fllow HTTP Stream的方式進行資訊分析內容 * https * 443 port * http + ssl/tls * 需要到CA申請憑證 * 新憑證為「政府伺服器數位憑證管理中心-G1」,舊憑證為「政府伺服器數位憑證管理中心」 * ssl vs tls * tls是更新、更安全的ssl版本。 * 現在以使用TLSv1.2以上為主。TLSv1.1以下建議禁用。 * 八種請求方法 * HTTP STATUS CODE * ftp與sftp * ftp * FTP 使用多個 ports, FTP 開始連接時使用 server port 21,連上後要傳送資料使用的 ports,要看使用的模式及設定。 * FTP 模式:Passive and Active modes * sftp * 是ssh的一部分 * telent與ssh * wireshark透過Fllow TCP Stream的方式可以找到未經加密連線telnet的帳號密碼資訊。 ## 第二單元:網路設備功能與應用 ![network device & osi model](https://d1dwq032kyr03c.cloudfront.net/upload/images/20161206/20103362hy0ryoELky.png) ### 網路傳輸設備 * 集線器 HUB * 傳送與接收資料不能同時 * 不管收到什麼封包,一律廣播 * 交換器 Switch * Hub和Switch的差異在MAC learning * Layer 2 Switch:利用MAC位址來進行資料交換 * Layer 3 Switch:利用硬體的方式來解析第三層表頭以達到傳送目的 * Layer 4 Switch:透過TCP或UDP埠號的辨識,判斷封包要送到哪一個連線主機處理 * Layer 7 Switch:識別和處理應用層資料轉換,可處理URL, Cookie或SSL Session ID * 路由器 Router * 最少會有兩個介面 * 為何要設定Default Gateway?為了要識別節點所在的網路 * [中繼器 (Repeater)、集線器 (Hub)、橋接器 (Bridge)、交換器 (Switch) 原理與介紹](https://notfalse.net/66/repeater-hub-bridge-switch) ### 防火牆 * 防火牆 Firewall * 確保資訊安全的裝置 * 基本功能:隔離網路 * 種類 * 硬體式 * 軟體式 * 防毒牆 Antivirus Wall * 又稱閘道防毒設備 * 位於網路入口處 * Windows Firewall 實作 * 執行輸入 `wf.msc` * Linux Firewall 實作 * iptables 是 Linux內建的防火牆,專門用來過濾網路封包 * iptables 的設計結構分為三層: * table: 防火牆規則群組 * chains: 防火牆規則鏈 * rules: 防火牆規則 * 包含多個table,一個table可以包含多個chain,而一個chain可以包含多個rule。 ![](https://i.imgur.com/vljTwPk.png) * 規則由上往下依序比對 * 指令說明 > iptables -A [chain] [-s 來源] [-d 目的地] [-p 協定] […..還有很多自己man] [-j 套用的rule] * -p 協定:協定可以是tcp, udp, icmp * -j rule,這裡的rule其實是「target of rule」,也就是你可以是一個chain_name,或是「ACCEPT, DROP, QUEUE, RETURN, REJECT, LOG, DNAT, SNAT」 * 指令參考 * 觀察目前設定: `iptables -L -n` * 禁止外部主機ping內部主機 > ping是使用icmp protocol實作的,其他的機器會對你發出echo-request,這時你要選擇無視他(Drop)。 ``` iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP ``` * 允許內部主機ping外部主機 ``` iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT ``` * [教防火牆認識HTTP協定 簡易實作第七層過濾控管](https://www.netadmin.com.tw/netadmin/zh-tw/technology/6D5356D9D56E4519AD97209957046381?page=1) ### 入侵偵測與防禦系統 * 入侵偵測系統 IDS * 監控網路流量以發現可疑活動並發出告警或留下紀錄的系統 * 只告警及留下紀錄 * 種類: * 網路端(NIDS) * 分析網路上的所有封包 * 網路設備設定成「混亂模式(promiscuous mode)」 * 無法對加密的資料進行分析 * 主機端(HIDS) * 主機上安裝偵測器(Sensor) * 通常透過稽核日誌檔 * HIDS的五種類型:應用程式行為分析器、記錄分析器、特徵型偵測器、檔案完整性檢查器、系統呼叫分析器 * 通常對DDoS有偵測上的困難 * 應用程式型(AIDS) * 針對輸入值的辨認來偵測攻擊行為 * 目標型(TIDS) * 透過Hash來偵測系統物件或特定檔案的修改 * 分析方式 * 特徵偵測(Signature Detection) * 異常偵測(Anomaly Detection) * 分析時機:批次vs==即時(系統效能需求高)== * 反應機制 * 被動 v.s. 主動 * 產生報表 * 入侵防禦系統 IPS * IDS + 防禦功能:可針對惡意封包做進一步的處置:刪除、重設或阻擋入侵的IP(==可阻絕惡意攻擊==) * 分成四種 * 網路(NIPS) * 無線網路(WIPS) * 主機(HIPS) * 網路行為分析(NBA) * 偵測方式 * 特徵偵測 * 統計異常行為偵測 * 狀態協定分析與偵測 * 部署方式 * 直路部署 * 情境1:保護內網客戶端 * 情境2:保護企業內部資訊系統 * 情境3:總部與分支機構之間,防止安全風險向其他網路蔓延 * 單臂部署 * 不需要改變網路拓樸 * 不支持流程Bypass * 旁路部署 * 透過交換機鏡像引流(Port Mirror) * 主要用來記錄各類攻擊事件和網路流量情況 * 一般不進行防禦回應 ### 網域名稱伺服器 * `nslookup /?` * https://ithelp.ithome.com.tw/articles/10214407 * 常見攻擊 * DDoS攻擊DNS [DNS放大(反射)攻擊] > 攻擊者(Attacker or Zombie)將DNS查詢封包中的Source IP偽造成Victim IP,向設定不良之Open DNS server送出大量查詢封包(small packet size),DNS server則會將大量查詢結果(big packet size)傳到Victim IP,以DDoS的方式癱瘓受害者的網路資源與主機資源。 > [DNS 放大攻擊簡介與防制](https://www.cc.ntu.edu.tw/chinese/epaper/0028/20140320_2808.html) > [如何緩解 DNS 放大攻擊?](https://www.cloudflare.com/zh-tw/learning/ddos/dns-amplification-ddos-attack/) > 知名的DNS: 1.1.1.1 (Cloudflare)、168.95.1.1 (中華電信)、8.8.8.8 (Google)、8.8.4.4 (Google) > [台灣常用 DNS 伺服器推薦與整理](https://officeguide.cc/recommend-public-dns-server-list/) ### 無線網路 * 標準:IEEE 802.11 * Wi-Fi 聯盟推動一項計畫並創造出「Wi-Fi 6」一詞,提倡以此詞指稱 IEEE 802.11ax 標準。 * [Wi-Fi 6 是什麼?有多快? 跟以前的 802.11 開頭的標準有什麼差? 解析給你聽!](https://agirls.aotter.net/post/56260) * 無線網路加密方式:建議選擇WPA3或更新版本 * 無線網路安全:隱藏SSID(禁用SSID廣播) ## 第三單元:網路標準框架及其安全性 * Email資料傳輸流程 ![image](https://hackmd.io/_uploads/BJeZKnFH0.png) ### 實體層 * RJ45接頭 * 接法有兩種:T568A、T568B * T568A 白綠、綠、白橙、藍、白藍、橙、白棕、棕 * T568B 白橙、橙、白綠、藍、白藍、綠、白棕、棕 * 正常 (兩端同為T568A或同為T568B) * 跳線 (一端接法是T568A,一端接法T568B,應用在相同設備間的連接,如在電腦——電腦,路由器——路由器等) * 網路線看起來是八蕊,實際只用到1236這四蕊 * 雙絞線 * 雙絞可降低訊號干擾 * 可分為UTP和STP兩種 * Cate.5~Cate.8 * 光纖 * 單模 vs. 多模 * 光纖要通,OM mode要支援,接孔要對 * 無線設備發射模型 (天線訊號強度) * 不要用金屬遮住天線 * db越小,近距離效果越好 * db越大,遠距離效果越好,但要注意發射方向 * 使用交換器代替集線器 * 更大的頻寬 * 更好的異常結果隔離處理機制 * 交換器 * 主要解決封包碰撞與重送的問題 * 當它記錄每個埠的位址後,就只把非廣播資料傳送到特定的目的埠 ### 資料鏈結層 * IEEE802.3 * 訊框格式 ![image](https://hackmd.io/_uploads/B1rD5hKHR.png) * CSMA/CD流程圖 ![image](https://hackmd.io/_uploads/rJEm5nYSA.png) * IEEE802.11的CSMA/CA流程圖 ![image](https://hackmd.io/_uploads/ry36rTYSR.png) * IEEE802.2 * 提供三種類型的服務 * 未確認的無連線服務-LLC1 * 連接導向服務-LLC2 * 確認的無連線服務-LLC3 * 點對點協定(Point-to-Point Protocal, PPP) * 高級數據鏈路控制(High-Level Data Link Control, HDLC) * 位址解析協定(Address Resolution Protocol, ARP) * 常見攻擊及防護 * MAC洪水攻擊 * 旨在破壞網路交換器的安全性。 * 攻擊者發送大量乙太網路訊框。 * 消耗用於儲存MAC地址表的交換器的記憶體。 * ARP欺騙(ARP Spoofing):又稱ARP毒化(ARP poisoning) * Ettercap攻擊工具 * 工具:WireShark ### 網路層 * 功能:Routing、Packetizing * IP Address * IPv4 * IPv6 * 主要的目的在於取代IPv4,並解決其缺點。 * IPv6具有128 bits長度的IP位址。 * IPv6位址分成Prefix(字首)及Interface ID兩部分,各佔64 bits。Prefix等同segment(網段)或subnet ID,Interface ID類似IPv4的host ID。 * IPv6廢除了使用broadcast address來傳送封包。 > 所有與broadcast相關的傳送功能都被multicast address取代,主要原因是broadcast封包會傳送到整個segment中所有的nodes,這種廣播式的傳送對同一segment上所有的nodes均造成影響。Multicast取代broadcast後,只有該multicast address的接收者才會加入對應的multicast group,不需要接收此multicast封包的nodes不再受到影響。 > http://hanteye01.blog.fc2.com/blog-entry-1.html * Cyber Killer Chain ![](https://hackmd.io/_uploads/HkNTkitS3.png) * [Cyber Kill Chain 資安阻殺鏈](https://medium.com/@cmjeng/cyber-kill-chain-%E8%B3%87%E5%AE%89%E9%98%BB%E6%AE%BA%E9%8F%88-ca737c335442) * [[從關鍵字認識資安 ] Cyber Kill Chain 網路殺傷鏈](https://medium.com/hannah-lin/%E5%BE%9E%E9%97%9C%E9%8D%B5%E5%AD%97%E8%AA%8D%E8%AD%98%E8%B3%87%E5%AE%89-3-cyber-kill-chain-%E7%B6%B2%E8%B7%AF%E6%AE%BA%E5%82%B7%E9%8F%88-da5bfe95271a) * 工具:Nmap ![image](https://hackmd.io/_uploads/HJCTi6YBC.png) * [Nmap 網路診斷工具基本使用技巧與教學](https://reurl.cc/MkrQMk) * [Nmap 官方網站](https://nmap.org/) * NSE指令碼引擎:進階掃描 * 常用指令參數 | 基本功能 | 指令簡介 | | -------------------------- | -------- | | [主機發現(Host Discovery)](https://minmin0625.medium.com/%E6%BB%B2%E9%80%8F%E6%B8%AC%E8%A9%A6lab-nmap-part2-%E4%B8%BB%E6%A9%9F%E6%8E%83%E6%8F%8F-host-discovery-21fdfeb6e504) | 不Ping掃描 (No ping scan):-Pn<br>ICMP ECHO Ping Scan:-PE<br>ARP掃描 (ARP Ping Scan):-PR<br>TCP Ping Scan:-PT<br>TCP SYN Ping Scan:-PS<br>TCP ACK Ping Scan:-PA<br>IP Protocol Ping Scan:-PO<br>UDP Ping Scan:-PU | | [端口掃描(Port Scanning)](https://minmin0625.medium.com/%E6%BB%B2%E9%80%8F%E6%B8%AC%E8%A9%A6lab-nmap-part3-%E7%AB%AF%E5%8F%A3%E6%8E%83%E6%8F%8F-port-scanning-2f51645f3323) | TCP Scan:-sT<br>TCP ACK Scan:-sA<br>TCP SYN Scan:-sS<br>UDP Scans:-sU<br>TCP XMAX Scan:-sX<br>Ping Scan:-sP | | [版本偵測(Version Detection)](https://minmin0625.medium.com/%E6%BB%B2%E9%80%8F%E6%B8%AC%E8%A9%A6lab-nmap-part4-%E6%9C%8D%E5%8B%99%E7%89%88%E6%9C%AC%E5%81%B5%E6%B8%AC-%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1%E5%81%B5%E6%B8%AC-service-and-version-detection-os-detection-b1954cf0eb8e) | 服務版本偵測:-sV<br>作業系統偵測:-O<br>服務版本及作業系統偵測:-A<br> | * IP Spoofing * 查看來源IP是否與連線白名單內 * 部署Firewall與IDS * 採用雙因子驗證 * 採用加密傳輸協定 ### 傳輸層 * 功能:負責應用程式之間的通訊 * 協定 * UDP * TCP * 比較 ![image](https://hackmd.io/_uploads/ByxX6TtrR.png) * 連接埠(Port):16Bits、0-65535 ![image](https://hackmd.io/_uploads/B1_AnTFH0.png) * 常見攻擊與防護 * DDoS * Syn Flood Attack * Syn-Ack Flood Attack * UDF Flood Attack * [UDP DDoS 攻擊分析報告](https://portal.cert.tanet.edu.tw/docs/pdf/2016072611075151998230181780575.pdf) * 防禦 ![image](https://hackmd.io/_uploads/ryds6atr0.png) ### 會議層 * 功能 ![image](https://hackmd.io/_uploads/Bklz0aFr0.png) * 常見攻擊與防護 * Session Hijacking * 攻擊方式 ![image](https://hackmd.io/_uploads/HkIuAptrA.png) * 可能原因 ![image](https://hackmd.io/_uploads/HycCA6FBA.png) * ==預防== * HTTP強制安全傳輸技術 (HTTP Strict Transport Security, HSTS) * Token綁定 (Token Binding) * HTTP公錀固定 (Http Public Key Pinning, HPKP) ### 表現層 ![image](https://hackmd.io/_uploads/rJ6EJ0KBC.png) ### 應用層 * 社交工程 * 定義:利用人性弱點來進行詐騙,是一種非全面技滿諭性的資安攻擊方式。 * 防護:四不、三問 * 不未經另外管道確認即提供資料 * 不開啟未確認寄件者之信件或附加檔 * 不開啟或登入未經確認的網站 * 不分享且不下載非法軟體或檔案 * 我為何會收到這個訊息? * 我是不是應該收到這個訊息? * 我是不是可以不要開啟附件或點選連結? * OWASP Top 10 * 名次下降:A3、A7 * 新進:A4、A8、A10 * 項目 * A01:無效的存取控管 * A02:加密機制缺失 * A03:注入式攻擊(Injection) * A04:不安全的設計 * A05:不當的安全組態設定 * A06:易受攻擊與過舊的元件 * A07:認證及身分驗證缺失 * A08:軟體與資料完整性缺失 * A09:安全日誌紀錄與監控缺失 * A10:伺服器端請求偽造(SSRF) * OWASP ZAP * 弱掃工具 * 弱掃報告 * WAF * 監控網站傳輸的封包,過濾可疑封包並拒絕惡意或未授權的存取。 * 防式SQL Injection、Botnet、XSS、DDoS等攻擊。 * 採用反向代理方式,避免後端伺服器直接暴露。 ## 第四單元:網路架構部署原則 ### 網路設備的組成 :::warning 網路區域(Zone)部署在防火牆,交換器僅提供VLAN部署 ::: * 外部線路設備 * ATU-R * 路由器 * 光數據機 * 負載平衡器 * 在多個伺服器之間高效率地分配用戶端請求或網路負載。 * 僅將請求發送至上線的伺服器,確保高可用性及可靠度。 * 提供靈活性,可視需求增加或減少伺服器。 * 單台伺服器出現故障,負載平衡器會將流量重新導向至其餘上線的伺服器。 * 外部防火牆 * 功能:主要控管服務器之間的存取 * 硬體式、軟體式 * 核心交換器 * 主要用資區分機關內各區域畫分VLAN * 特別重視熱備份、雙電源、雙數據通路 * 內部防火牆 * 專注於管控外部輸下單位使用者存取內部網路 * 保護內部伺服器不受網路攻擊 * 強化網路使用及存取原則 * 監視流量並且在偵測到可疑的模式時,發出告警 * 將具備機密資訊的內部伺服器放置於內部防火牆之後 * 核心交換器 * 主要用於部署機關內VLAN劃分,以建立路由 * 提供區域間連線 * 由於功能重要,==應重視硬體可靠性==:==熱備份==、==雙電源==、==雙數據通道== * 邊際交換器 * 負責收納端點電腦或設備,透過線路再連接至核心交換器 ### 網路區域畫分 * 目的(優點) * 清楚界定規劃不同屬性的區域 * 作為存取控制與安全規劃的基準群組 * 避免來自內部的攻擊,有效防範災害擴大 * 建議劃分 * 外部網路 * 機關對外網路 * 連接WAN * 此區對內部需經過Firewall的存取控制 * 非軍事區 (DMZ) * 主要放置對外服務的伺服器:==官方網站==、==民眾服務系統==、==報名系統== * 最容易被攻擊的區域 * 僅依實際需求開放特定服務(以應用程式管制最佳) * 需要嚴密控管此區對內部區域的進出存取 * 網路管理區:心臟地帶 * 放置網路管理設備:==網路管理系統==、==認證系統==、==監控系統== * 應明確標示網路的路徑及維運方式 * 網路設備維運應該與路由及服務的網段有所區隔 * 避免當服務網段或路由網段被攻擊,進而影響網路設備的管理 * 網路紀錄區 (備份):第二個心臟地帶 * 放置:==備份主機(Backup Server)==、==日誌主機(Log Server)== * 存放的網段應特別規劃 * 僅允許設備備份與日誌之發送及管理員管理連線行為 * 備份主機(Backup Server)多以封閉或實體隔離的網段部署 * 實體隔離區 * 機關依據特定需求可將部分區域執行實體隔離 * 實體隔離並非絕對安全 * 僅可將資料做單向的傳遞 * 注意其他感染途:擺渡攻擊(利用隨身碟)、實體侵入(破解門禁)、電力干擾、非網路連接設備(藍芽) * 內部網路 (LAN) * 機關內部人員與內部伺服器 * 利用VLAN,不同路由等方式切開 * 通常採用內部私有IP(Private IP),讓外部無法直接連線 * 可部署DHCP Server發送IP ### 路由與VLAN劃分 * 路由劃分 * 目的:了解==機關對外的路由==規劃 * 可能為靜態或動態路由 * 定期更新,將整理結果留存 * 路由表管理 * 內部VLAN與其對應IP的整理 * 內部預設路由與指定路由的確認 * 內部動態路由彙整確認 * 機關對外線路與其預設路由確認 * VLAN劃分 * 目的:將不同屬性的群體做分隔(依實際需求劃分) * VLAN * IEEE802.1Q標準協定 * 網路封包會多一層VLAN Tag * VLAN ID相同才會互通 * 有效處理Broadcast的傳播 * 不同VLAN間的存取控制 * 防火牆控管 * 核心交換器部署存取控制清單(ACL) * 網路架構圖 * 功用:有助於了解機關網路現況 * 機關網路架構、線路狀態、備援狀態 * 重要節點網路設備、重要伺服器、區域分隔 * 對應IP網段、樓層VLAN分隔、重要設備實體位置標註 * 協助管理者進行機關網路的維運 * 分類 * 邏輯網路架構圖:呈現目前網路邏輯 (區域、關係) * 實體網路架構圖:呈現目前實際狀態 (備援、容錯、實體連線方式) ## 第五單元:網路架構管理程序 ### PDCA > 規劃 - 執行 - 檢查 - 行動 > (可參考ISO27001核心方法論) * 規劃 Plan * IP、VLAN及路由規畫 * 網路區域間的存取控制 * 網路區域的訂定 * 進行存取控網規劃前,應先訂定機關之網路區域 * 管理規則規劃 * 條列不同區域間的存取規則 * 詳列管制存取控制規則 * 使用正面表列 * 檢測項目查檢表 * 執行 Do * 步驟 * 確認執行導入前置需求已完成 * 確認IP、VLAN與路由規劃 * 確認機關資料流程圖繪製 * 確認區域間的存取控制 * 執行查檢表比對機關資料 * 「IP的規劃與設定」需要標註「IP、子網路遮罩、閘道位置」、「樓層、部門、VLAN、對應的實體區域」,以便後續管理。 * 「存取控制」可能設定於防火牆或是核心交換器上,執行後應檢測確認其可用性與正確性。 * 檢查 Check * 檢測原則先檢查==架構==,再確認==區域==,接著檢查==存取控制==是否落實。 * 網路架構查檢應==定期審查==,並列為==內稽必要項目==。 * 安全控制措施查檢表 * 行動 Action * 矯正措施:依據檢核結果,進行細項分析,歸納機關中諸如架構誤植,設定錯誤或其他調整建議。 * 預防措施:針對檢核結果中未立即有風險或其他建議事項,提供建議,讓機關能夠進行預防措施防止可能衍生的問題。 * 應變措施:透過國家資通安全通報應變網站,進行事件情資的通報與分享。 ### 日常維運與檢查 ![image](https://hackmd.io/_uploads/BkQrhAYSC.png) * 漏洞 * CVE 通用弱點與漏洞 * 國際上公認的弱點漏洞編號標準 * 每個已知的漏洞皆有唯一的編號 * CVSS 通用弱點評估計分系統 * 建立一個中立的評估系統 * 建立診斷弱點嚴重性的標準 * 評分從0分到10分(0表示尚未發現弱點、10分表示為最高風險) * MSRC 微軟安全應變中心 * [安全性佈告欄](https://learn.microsoft.com/zh-tw/security-updates/securitybulletins/securitybulletins) * 事件日誌 * 常見日誌種類 ![image](https://hackmd.io/_uploads/HJtBoPBl1x.png) * 開啟Windows事件檢視器 * 「開始」> 「執行」 * 搜尋:`eventvwr` * Windows五種紀錄類型 * 應用程式 * 安全性 * Setup * 系統 * Forward Events * 事件識別碼 * 4624:登錄成功 * 4625:登錄失敗 * 4728、4732、4756:將成員新增至安全性的全域/本機/通用群組 * 1102:清除稽核記錄 * 4719:系統稽核原則變更 * 4740:帳戶鎖定 * 4663:嘗試存取物件 * Firewall日誌 * 識別程序故障 * 識別惡意活動 * 網路管理工具 * [LanTopoLog工具](https://www.lantopolog.com/) * 基於SNMP的網路識別工具 * 顯示網路中的每個設備及其連接的設備 ### 網路管理者能力 > FOR指令:對一組檔案中的每個檔案執行指定的命令。 > FOR %variable IN (set) DO 命令 [command-parameters] %variable 指定一個可以取代的參數。 (set) 指定由一或多個檔案組成的檔案組。您可使用通配字元。 command 指定命令來執行每一個檔案。 command-parameters 為所指定的命令指定變數或參數。 > FOR /L %variable IN (start,step,end) DO command [command-parameters] set 是從開頭到結尾一次跳一步的連續數字。所以 (1,1,5) 會產生連續值 (1 2 3 4 5) 而 (5,-1,1) 會產生連續值 (5 4 3 2 1) * 探查現存網路用戶 * [掃描區域網路設備 (搭配使用 ping 指令、arp 指令)](https://reurl.cc/mvamDM) 1. 首先刪除舊的 arp table,這一行需要用管理者權限執行: `arp -d` 2. 使用 for 迴圈將每一個 IP 位址都 ping 過一次: `for /L %i in (1,1,254) do ping 192.168.1.%i -n 1 -w 300 > NUL` 3. 執行 arp 指令,輸出 arp table: `arp -a | find "192.168" | find "動態"` * [那些關於Ping的一些事](https://reurl.cc/NZ3M49)