ISC2-CC-Domain 4-Network Security
本文是整個CC考試的重點。涵蓋的範圍如下:
- Network Basics and Definitions
- The OSI and TCP/IP model
- IP Addresses, Port Numbers, and MAC Addresses
- Wi-Fi and other wireless networks
- Virtualization, Cloud, and Distributed Computing
- Fault tolerance and resiliency
- Data centers
- Attacks and Attackers
Network Basics and Definitions
什麼是Networking?
“A computer network is a set of computers sharing resources or data”
當資料穿過Internet時,我們在內部網路上使用縱深防禦(defense-in-depth)。這是透過確保所有網路設備、協定和流量盡可能安全來做到這一點。
名詞解釋
- Simplex:
單行道,一邊送另一邊只能收。 - Half-duplex:
單線雙向通行,同時間時能有一邊送。 - Full-duplex:
雙線道,收與發同時運作。 - Baseband只有一個channel,一次只能發送一個訊號:
Ethernet是Baseband — 「1000base-T」STP cable 是1000 MG baseband屏蔽雙絞線電纜(Shielded Twisted Pair cable)。 - Broadband:
具有多個通道,可以一次發送和接收多個訊號。 - Internet是全球Peered WAN 網路的集合,它實際上是各家 ISP 的組合而成。
- Intranet是組織的私有網絡,一般的企業都會有。
- Extrnet是私有內部網路之間的連接,通常連接業務合作夥伴的內部網路。
- Circuit Switching(專線)-價格昂貴,但永遠是available,但使用率較低。通過網路的communications channel。這個電路是頻寬保證的,其功能就像節點透過電纜物理連接一樣。
- Packet Switching-價格便宜,但不保證頻寬,企業最常使用的。資料以packets形式發送,但透過多個不同的路徑到達目的地。 packets在目的地重新組合。 另外QoS(Quality of Service) 賦予特定流量高於其他流量的優先順序。 最常見的是 VOIP(Voice over IP) 或其他需要接近即時通訊的 UDP 流量(如streaming)。 其他非即時流量優等級下降,因為0.25秒的延遲人類的感官不會注意到。
- PAN(Personal Area Network):
是一種電腦網絡,用於個人附近的電腦和其他資訊科技設備(個人電腦、印表機、掃描器、控制台…)之間的通訊。 可以包括有線(USB 和 FireWire)和無線設備(藍牙和紅外線)。 - LAN(Local Area Network):
有限地理區域(例如家庭、學校、辦公大樓或校園)內的電腦和裝置的網路。 網路上的每台電腦或設備都是一個節點,有線區域網路很可能基於乙太網路技術。 - MAN(Metropolitan Area Network):
通常跨越城市或大型校園的大型電腦網路。 - WAN (Wide Area Network):
涵蓋較大地理區域(例如城市、國家)甚至跨越洲際距離的電腦網路。 結合了多種類型的媒介,例如電話線、電纜和無線電波。 - GAN (Global Area Network):
一種用於支援跨多個無線區域網路、衛星覆蓋區域的行動用戶的網路等。從一個網路到下一個網路的過渡可以是無縫接軌的。 - VPN (Virtual Private Network):
VPN 網路透過不安全的網路(通常是 Internet)傳送私人資料。 資料透過public network發送,但看起來和感覺起來都是private的。
OSI Model
一種分層網路模型(layered network model),可標準化電信或電腦系統的通訊功能,無論其底層內部結構和技術如何。 該模型將通訊系統劃分為抽象層,該模型有 7 層。
- Physical
- Data Link
- Network
- Transport
- Session
- Presentation
- Application
從L7到L1,我們要理解 Data →Segments →Packets →Frame →Bits。
Layer 1 — Physical Layer
電線、光纖、無線電波、Hub、NIC 的一部分、connectors(wireless)。Cable的型態有:
- Copper TP (Twisted Pair)最不安全,容易竊聽、干擾,但也便宜
- 光纖較安全,不易被竊聽,較難使用,容易損壞,成本較高
拓樸結構(Topologies):
Bus, Star, Ring, partial/full mesh
威脅(Threats):
資料外洩(Data emanation)、竊盜(theft)、竊聽(eavesdropping)、sniffing、干擾(interference)。
Layer 2 — Data Link Layer
這是指在連接到相同網路的 2 個節點之間傳輸資料。
- LLC(Logical Link Control) –error detection
- MAC address (BIA) — a unique identifier on the network card
MAC address很容易欺騙。有兩種格式:
- 48 bit hexadecimal,前24 bit是製造商 identifier,後 24 bit 是 unique的。
- 64 bit hexadecimal,前24 bit是製造商 identifier,後 24 bit 是 unique的。
可能的威脅 —MAC Spoofing, MAC Flooding。另外使用到的技術有:
- ARP (Address Resolution Protocol) Layer 2/3
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection) —
以太網路 — 透過switch與hub將Collision最小化 - CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)-Wireless
Layer 3 — Network Layer
擴展到許多不同的節點 (IP) — Internet是 IP based的。將流量隔離在一個broadcast domains。協定(Protocols)有:IP, ICMP, IPSEC, IGMP, IGRP, IKE, ISAKMP, IPX。
威脅有:
Ping of Death, Ping Floods, Smurf(spoof source and directed broadcast), IP modifications, DHCP attacks等
Layer 4 — Transport Layer
SSL/TLS L4 to L7。協定有:
UDP(User Datagram Protocol)"重要":
Connectionless protocol、不可靠、VOIP、即時視訊、遊戲、「即時」。 時間比交付確認(射後不理)更重要。
可能的攻擊 — Fraggle attack(DoS攻擊):
作業方式與 smurf 相同,但可能更成功,因為它使用 UDP 而不是 ICMP。
TCP (Transmission Control Protocol)"重要":
可靠、連結導向(Connection orientated)、保證交付、3-way handshake更慢/更多 overhead、資料重組。
可能攻擊:SYN floods— 做一半的TCP sessions,客戶端發送 1,000 個 SYN request,但從未發送 ACK。
Layer 5 — Session Layer
在 2 個應用程式之間建立連接:Setup →Maintenance →Tear Down
Layer 6 — Presentation Layer
只有沒有協定的層。 Formatting, compressing, encryption (file level)。
Layer 7 — Application Layer
- 向使用者(應用程式/網站)呈現資料。
- HTTP、HTTPS、FTP、SNMP、IMAP、POP 等等。
- Non-Repudiation, certificates, application proxies, deep packet inspection, content inspection, AD integration。
越往上層,速度就越慢。 速度是為了換取讓人類看懂。 L5–L7 的威脅有:Virus, worms, trojans, buffer overflow, application, or OS vulnerabilities。
TCP/IP Model(DOD Model)”重要”
Internet Protocol Suite
提供end-to-end data communication的概念模型。 指定資料應如何打包、定址、傳輸、路由和接收(packetized/addressed/transmitted/routed/received)。 從最低層到最高層,分別是:
- Link:
包含保留在單一網段內的資料通訊方法。link and physical layer具有主機所連接的本地網路連接的網路範圍。 用於在同一網路上兩個不同主機的網際網路層介面之間移動packets。 在給特定Link上發送和接收packets的過程可以在網卡的軟體設備驅動程式以及韌體或專用晶片組中進行控制。 它們執行諸如加上packet header以準備傳輸等功能,然後透過實體媒介傳輸訊框。 TCP/IP 模型包括將網際網路協定中使用的Internet Protocol 轉換成link layer addresses(例如MAC address)的規格。 - Internet/Internetwork:
連接獨立的網絡,從而提供網路互聯。Internet/Internetwork Layer負責跨潛在的多個網路發送packets。 需要將資料從來源網路傳送到目標網路(也就是routing)。
Internet Protocol執行兩項基本功能: Host addressing and identification:這是透過分層 IP 位址完成的。Packet routing:透過將封包(datagrams)轉送到更接近最終目的地的下一個網路路由器,將封包從來源傳送到目的地。 - Transport:
處理Host to Host通訊的傳輸層。transport layer建立應用程式用於特定任務資料交換的基本資料通道。 其職責包括獨立於底層網路的端到端訊息傳輸,以及error control, segmentation, flow control, congestion control, application addressing。 資料以connection-oriented (TCP) 或connectionless (UDP) 方式傳送。 - Application:
為應用程式提供process-to-process data exchange。 Application layer包括應用程式用於透過網路提供使用者服務或交換應用程式資料的協定(HTTP、FTP、SMTP、DHCP、IMAP)。 根據application layer protocols編碼的資料被封裝成transport layer protocol units,然後使用下層協定進行資料傳輸。 transport layer和較低層不care application layer protocols的細節。 Router和switch通常不會檢查封裝的流量,而只是為其提供管道。 然而,某些防火牆和頻寬限制應用程式必須檢查應用程式資料。 TCP/IP 參考模型區分成user protocols與support protocols.。
模型的每一層都會新增或刪除封裝(封裝/解封裝)。 越往上走,堆疊就越慢、越具智慧,就像 OSI 模型一樣(如下圖所示)。
MAC Addresses/IP Addresses/Port Numbers
Mac address
網路卡上的唯一識別碼。 很容易被欺騙。 EUI/MAC-48 是 48 bits(原始設計)。 前 24 位是製造商識別碼。 後 24 個是給Host用的。 EUI-64 Mac 的24 bits 為製造商識別碼,後40 bit給Host用的。 兩者如今都被廣泛使用,並且被 IPv4 和 IPv6 使用。 對於 48 bits MAC,IPv6 透過在裝置識別碼中會加上 FF:FE 將其修改為 64 bit 的MAC address。
IP Addresses
ARPANet 於 1983 年首次在 ARPANet 中進行生產部署,後來成為互聯網。 IP 於 20 世紀 70 年代開發,用於安全封閉網路(DARPA — 國防先進研究計劃局)。 安全性不是內建的,而是後來增加的。 IPv4 是一種用於分組交換網路的connectionless protocol。 它是一種best effort delivery model,它不保證交付,也不保證正確的排序或避免重複交付。 後來才在 IP 之上加上了協定來確保這些保證與交付。 IPv4 是當今 IT 路線上最大的網路流量,但我們慢慢轉向 IPv6。 向 IPv6 的發展主要是由於 IPv4 位址多年前就已耗盡。
IPv4 有約 42 億個 IP 位址,其中約 40 億是可用的網路位址。 目前網路上有超過 350 億台行動設備,預計到 2025 年將達到 750 億台。美國所有主要手機業者的所有手機均使用 IPv6。 IPv4 有 4,294,967,296 個位址,而 IPv6 有 340,282,366,920,938,463,463,374,607,431,768,211,456 個位址。
更多的IPv6介紹與設計,可參閱本部落格AWS的IPv6實踐一文。
IP Addresses and Ports
當我們發送流量時,我們使用source IP 和port 以及目標 IP 和prot。 這確保知道流量要送去哪裡,並且當流量返回時它知道返回哪裡。 IP位址可以看作是公寓大樓的門牌號碼。 Port Number可以看成門牌號碼之幾。 如果我們開啟了 50 個瀏覽器 tabs,則每個tab都有自己的port number。
- Well-known Ports: 0–1023(通用的)
- Registered Ports:1024 — 49151(廠商註冊的)
- Dynamic, Private or Ephemeral Ports: 49152–65535
IPv4 (Internet Protocol version 4) addresses
IPv4 由 4 個8 Bits(十進位表示法)組成,並進一步分解為 32 bit 整數二進位。 我們使用IP位址來使其對普通人來說是可讀的,讀取4組數字比讀取32位元0和1的字串更容易。 同樣,網站實際上只是使用 DNS 轉換的 IP 位址,然後將其轉換為二進位。 記住 google.com 比記住 66.102.12.231 或 2607:f8b0:4007:80b::200e 更容易。 Public IP 位址(Internet 可路由位址):用於透過 Internet 在主機之間進行通訊。
Private Addresses (RFC 1918 — 在Internet 上ISP不會幫你路由的):
- 10.0.0.0 10.255.255.255 16777216 127.0.0.0/8 Loopback IPs
- 172.16.0.0 172.31.255.255 1048576 169.254.0.0/16 Link-Local
- 192.168.0.0 192.168.255.255 65536 255.255.255.255 Broadcast
IPv6
IPv6 的十六進位數為 128 位元(使用 0–9 和 a-f)。 8 組 4 個十六進制,讓位址看起來像這樣:
fd01:fe91:aa32:342d:74bb:234c:ce19:123b
IPSec 是內建的,而不是像 IPv4 那樣外加的。 有些企業會使用Dual Stack網路設備進行IPv6的切換。 為了讓Ipv6位址更易於管理,可以使用 :: 來縮短 1 組 0,上面的範例就可以把 16 個 0 被縮短為 2001:0DB8:AC10:FE01::
IP Support Protocols
ARP (Address Resolution Protocol)
將 IP 位址轉換為 MAC addresses(OSI Data/Network Layer or Network/Internet Layer)。 ARP 是一種簡單且值得信賴的協議,任何人都可以回應 ARP 請求。
ARP (cache) Poisoning:
攻擊者向 ARP 請求發送虛假回應,通常針對critical ARP entries (Default Gateway)重複執行。 對策可以是對 ARP entry進行Hardcode。 無碟工作站使用 RARP(Reverse ARP)來取得 IP。
ICMP (Internet Control Message Protocol)
用於協助 IP、Traceroute 中的 Ping(Echo request/reply)和 TTL Exceeds。 常用於故障排除。 ICMP Echo Request會傳送到 IP,然後 IP 傳回(或不發送)ICMP reply。 最初用於(並且仍然)查看主機是否啟動或關閉。 如果我們收到 Echo reply,我們就知道主機已啟動,但沒有回應並不意味著主機已關閉。 防火牆和路由器可以阻止 ICMP reply。
Traceroute
使用 ICMP 追蹤網路路由。Traceroute 以某種相反的方式使用 TTL value。
我們發送一條訊息的話,它的 TTL 從我們的節點開始算vlaue就是1。
HTTP and HTTPS — Transport HTML data(“重要”)
- HTTP (Hypertext Transfer Protocol):
使用 TCP port 80(8008 和 8080),透過網際網路傳送未加密的網站資料。 - HTTPS(HTTP Secure):
使用 TCP port 443(8443)傳送加密資料。 - HTML (Hypertext Markup Language): 網頁實際實行的語言
DHCP (Dynamic Host Configuration Protocol)
用來分配 IP 的通用協定,通常由 DHCP server控制。 BOOTP 和 DHCP 都使用 UDP port 67 用在BOOTP/DHCP server,使用 UDP port 68用在client。
Cables
Networking Cables
大多數人都會想到 RJ45 Copper Ethernet cables,但實際上還有更多類型。
Networking cables各有利弊,有些便宜,有些更安全,有些更快等。根據cable類型和環境,它們也可能造成不同的安全漏洞。例如:
- EMI(Electromagnetic Interference電磁干擾):
磁性會破壞資料的可用性和完整性。 - Crosstalk:
一條電纜到另一條電纜的訊號交叉,這可能會有confidentiality問題。 - 衰減(Attenuation):
指訊號傳播得越遠越弱。銅線會有衰減,例如xDSL。距離越遠,速度就越低。
Twisted Pair Cables
扭轉它們可以減少電磁干擾的影響。 1 條cable發送資料,1 條cable接收資料。 cable絞合越緊,就越不易受到 EMI 的影響。 例如,CAT3 對(絞合不太緊)比 CAT6(絞合更緊)更容易受到 EMI 的影響。
每對電纜周圍都有額外的金屬網屏蔽,使其不易受到 EMI 影響,但也使電纜更粗、更硬、更昂貴。
Fiber Optic Cables
使用光線來傳輸資料(相對於cable用的是電力):
優點:
速度為每秒 1 個Petabit,透過單一光纖(single fiber)傳輸 35 英里/50 公里
- 傳輸距離長,它沒有像銅纜那樣的衰減,Single uninterrupted cable可以長達150英里+(240公里+)。
- 不易受 EMI 影響。
- 比銅更安全,因為它不像銅那麼容易被嗅探(sniff)。
缺點:
價格昂貴,使用起來比較困難,一不小心可能會打破cable中的玻璃。
Fibler還分文以下兩種模式:
- Single-Mode fiber:
單股(Single strand)光纖承載單一模式的光(沿著中心),用於長距離電纜(通常用於 IP IP-Backbones)。 - Multi-Mode fiber:
使用多種模式(light colors)同時傳輸多個資料流,這是透過 WDM(Wavelength Division Multiplexing)完成的。
所有cable測量均採用公制 (m/km)。 世界上只有3個國家不使用公制(緬甸、賴比瑞亞和美國)。
LAN Topologies
網路拓撲描述了設備和網段之間互連的佈局(layout)和拓撲(topologies)。 乙太網路和 Wi-Fi 是區域網路中最常用的兩種傳輸技術。 在data link layer 與physical layer,使用了多種LAN拓撲結構,包括ring、 bus、mesh、star。 在較高layers,NetBEUI、IPX/SPX 和 AppleTalk 曾經很常見,但 TCP/IP 現在已成為事實上的標準。
Bus
所有節點都連接在一條線上,每個節點檢查流量並傳遞它。 它是不太穩定的,Bus只要中間斷掉,該斷點之後所有節點的訊號都會有問題,包括經過斷點的節點之間的通訊。 故障的 NIC(網路介面卡)也可能會破壞鏈條(Chain)。
Tree (Hierarchical)
樹狀拓樸的基礎控制流量,這通常是大型主機。
Ring
Star(Hub and Spoken)
所有節點都連接到中央設備。 這就是我們一般使用的以太網路,節點連接到交換器。 提供更好的容錯能力,cable斷掉或 NIC 故障只會影響一個節點。 如果我們使用switch,則不需要token passing或collision detection,因為每個節點都位於自己的網段上。 如果我們使用Hub,collisions仍然會發生; 使用Hub不僅僅是是慢,而且更多的是非常不安全。
Mesh
節點以partial mesh 或 full mesh形式相互連接。
Full mesh是所有節點都直接連接到所有其他節點。 更多redundant,但需要更多cable和網卡。 通常用於 HA環境,透過叢集伺服器進行keepalives。
Wi-Fi
在有限區域(家庭、學校或辦公大樓)內使用無線分佈方法連接兩個或多個裝置的無線電腦網路。 讓使用者能夠在本地覆蓋區域內移動並連接到網路。 通常,整個辦公大樓會設置多個 AP(Access Points),為員工提供seamless roaming coverage。 大多數現代 WLAN 均基於 IEEE 802.11 標準。 Wi-Fi 使我們的行動性更強,連接更加無縫,但它比有線網路連線更容易受到攻擊。
Wi-Fi Attacks
Rogue Access Points
通常是在我們不知情的情況下,未經授權的接入點已添加到我們的網路中(不過這是有解方的)。 這可能是攻擊者惡意發動的,也可能只是想要在覆蓋範圍較差的地方使用 Wi-Fi 的員工發起的。 如果我們沒有一個良好的安全態勢(security posture),它們將成為一個非常大的問題。 透過交換器上的連接埠安全性和掃描惡意存取點可以在一定程度上緩解這種情況。 攻擊可能會損害機密性(confidentiality)和完整性(integrity)。
Jamming/Interference
這可能是 Wi-Fi 頻率上的大量流量,或是攻擊者為了破壞我們的網路 (DOS攻擊) 而進行的。 如果存在干擾問題,我們可以更改為其他頻道,或者如果我們的設備支持,則可以更改為不同的頻率。 2.4 GHz 頻段(band)用於藍牙、微波爐、無線電話、監視器、Wi-Fi 。2.4G不受干擾的的頻段非常少。這個攻擊可能會損害完整性(integrity)和可用性(availability)。
Evil Twin
當攻擊者試圖建立Rouge AP以便存取網路或存取透過網路傳輸的資訊時,就會使用evil twin。 無論是否在我們的網路上進行,攻擊者只需將其AP的命名為與我們的相同,但沒有安全性,使用者裝置會自動連接到它們。攻擊可能會損害機密性(confidentiality)和完整性(integrity)。
Wireless Networks
藍芽(Bluetooth)
一種無線技術標準,用於使用 2.4 GHz 從固定和行動裝置短距離(最遠可達 100 公尺)交換資料以及建置PAN(personal area networks)。 藍牙分為三個等級;
- Class 1: 100米
- Class 2 : 10米
- Class 3 : 10米以下
藍牙透過基於 SAFER+ block cipher的自訂演算法實現confidentiality, authentication與key derivation。E0 stream cipher用於加密資料包、授予機密性(confidentiality,),並且基於shared cryptographic secret,即先前產生的link key或master key。
E0的密碼分析已經證明它的防護很弱,攻擊顯示低於38 bits都是危險的。 藍牙金鑰產生通常基於必須在一台或兩台裝置上輸入的藍牙 PIN。 藍牙安全在某種程度上是透過隱匿性(obscurity)實現的安全,它假設藍牙adapter的 48-bit MAC 位址未知。 即使停用時,藍牙裝置也可以透過猜測 MAC address 來探索。 前24位是OUI,很容易被猜到,後24位可以透過暴力破解發現。
藍芽攻擊有以下三種
- Blue jacking:
透過藍牙發送未經請求的訊息,通常無害但是煩人。 - Blue snarfing:
未經授權存取藍牙設備中的資訊:手機、桌上型電腦、筆記型電腦… - Blue bugging:
攻擊者獲得對設備的完全存取和控制; 當裝置處於可探索狀態時,可能會發生這種情況。
以上這些大都發生在比較舊的手機,新型的智慧手機因為會一直update所以比較不會有這一類問題。
應對措施:
- 只在需要時啟用藍牙。
- 只在必要時啟用藍牙探索,並在裝置配對時停用探索。
- 當非預期的提示時,不要輸入link key或 PIN。
- 不使用配對裝置時將其移除。
- 定期更新所有支援藍牙的裝置上的韌體。
Li-Fi
- 使用光線在設備之間傳輸資料和位置。
- 可利用可見光、紫外線和紅外線光譜發送高速資料。
- 可用於容易產生EMI(電磁干擾)的區域,如飛機機艙、醫院、核電廠等。
- 速度(目前)高達 100 Gbit。
- 光線可以從牆壁反射,並且無需直接視線即可達到 70 Mbit。
- 優點:與Wi-Fi量能不同(radio frequency exhaustion),可以在禁止Wi-Fi的地方使用。
- 缺點:範圍短,並不是永遠可靠,且實施成本高。
Zigbee
- 具有低功耗、低資料速率和近距離的Mesh wireless network。
- 與藍牙或 Wi-Fi 等其他 WPAN(Wireless Personal Area Networks)相比,簡單且複雜性較低。
- 它的距離為10到100米。 資料速率在 20 kbit/s(868 MHz 頻段)和 250 kbit/s(2.4 GHz 頻段)之間變化。
Satellite
多年來,衛星互網路是一種相對緩慢且昂貴的選擇。通常我們會有一個數據機,與任何其他網路連線一樣,以及一個衛星天線(2–3 英尺或60–90 公分)。典型的衛星連線延遲為 500 毫秒,速度為 10 至 50 Mbps。而Starlink 目前正在測試從 20–200 Mbps 下行到 15–50 Mbps 上行的速度,延遲範圍為 15–40 毫秒。
Cellular networks/mobile networks
這一類的網路分為多個Cells並分佈在各個區域,每個Cells至少包含一個固定位置基地台。這些基地台為Cells提供網路覆蓋,使其能夠傳輸語音、資料和其他類型的內容。為了避免干擾並在每個Cell內提供保證的服務質量,Cell通常使用與相鄰Cell不同的頻率集(frequencies set)。
蜂槽網路有:
- 3G — Bandwidth: 2 Mbps, latency: 100–500 ms, average speed 144 kbps
- 4G — Bandwidth: 200 Mbps, latency: 20–30 ms, average speed 25 Mbps, 16km (10 miles)
- 5G — Bandwidth: 5–20 Gbps, latency: <10 ms, average speed 200–400 Mbps, 500m (1500 ft)。頻率高、射程短,可以被任何金屬甚至固體物體阻擋。 需要更多 5G 基地台才能覆蓋。
更多的5G介紹請參閱本部落格5G網路的技術架構與協定 — Part 1一文。
VLANs and Routers
VLAN(Virtual LAN)是一個L2劃分和隔離的broadcast domain。我們在switch將特定的port指派給特定的VLAN。例如下圖中 Payroll VLAN 位於2 個不同的建築物中並跨越多個switch。VLAN 使用網路封包中的tag以及網路系統中的tag handling,複製物理上位於單一網路上的網路流量的外觀和功能,但其行為就像在不同的網路之間分割一樣。它允許必須保持分離的網路和設備共享相同的實體設備而無需交互,以實現簡單性、安全性、流量管理和/或降低成本。
VLAN Trunk- 連接兩個switch以處理所帶tag的VLAN流量。VLAN 共享頻寬,VLAN trunk 可以使用link aggregation、QoS(quality-of-service) prioritization來有效地路由資料。
Virtual eXtensible Local Area Network (VXLAN)
廣泛用於雲端運算(因為有大量的租戶), 如 AWS、Azure與GCP。 解決了最多只有 4094 個 VLAN 的問題。
L3 Devices
Routers:
Switch上通常有一堆Port,但是Router只有少數幾個可以使用。並且根據來源和目標 IP 和ports轉送流量。是將 LAN 連接到 WAN設備。流量轉送是根據設備內的routing table。
- Static route是人為預先配置的路由,始終將特定子網路的流量傳送到某個地方。
- Default Gateway將所有非本地流量傳送到 ISP。
- Dynamic route是透過路由協定(OSPF、EIGRP、BGP、IS-IS)從另一個路由中獲知的
- Metric是用於確定到達目的地的最佳路線(基本上是計算經過幾個Router)。
VPNs, NAC, 與Third-party Connectivity
Authentication Protocols
VPN (Virtual Private Network)將內部網路(一種加密道)擴展到Internet,就像在內部網路上一樣。VPN 可以允許員工和分公司辦公室安全地存取組織的內部網路,所以它們用於安全連接。VPN也可以用於繞過地理限制和審查制度(大陸的翻牆)或連接到代理伺服器以保護個人身分和位置。透過使用專用連線、虛擬隧道協定或流量加密建立虛擬點對點連線。
Third-party Connectivity(供應鏈風險)
中小型企業通常有很多Partner一起合作。 而我們如何確保這些Partner足夠安全並符合我們的政策和程序?我們必須進行徹底的風險評估,以確保他們提供的任何內容都不會危及我們的安全態勢,否則我們必須接受風險。通常會需要有 MOU/MOA 和 ISA(Interconnection Security Agreement)。
Network Access Control (NAC)
最好能自動偵測和回應,以確保我們的系統符合我們的安全政策。可以幫助我們預防或減少 0 day 攻擊和已知攻擊,同時確保始終遵守安全政策。
SDN, SD-WAN, 與SDX
SDN (Software-Defined Networking)
讓網路管理員透過軟體動態的"初始化、控制、變更和管理"網路行為。解決傳統網路的靜態架構不支援資料中心等更現代運算環境的動態、可擴展運算和儲存需求的問題。這是透過將路由器的Control plane與data plane分離來完成的,Control plane做出路由決策,data plane轉送資料。這種技術讓我們不會被某些硬體廠商綁住。但這很難推,大多只用在雲端運算的資料中心內。
Software-Defined Wide Area Network (SD-WAN)
為什麼很多人都在用SD-WAN(說白了就是資源使用效率最大化):
- 更便宜的頻寬、頻寬分配和流量工程的靈活性和可擴展性。
- 能夠利用多種不同的連接類型(xDSL, cable, fiber, satellite, 4G/5G, …)。
- 連線類型之間Near real-time failover。
- 集中管理、更輕鬆的管理、更好的洞察、報告和統計。
- 透過智慧路由(intelligent routing)獲得更好的效能,它可以為特定的應用程式或流量類型選擇最佳的網路線路。
- 使用預先配置的設備或虛擬設備進行快速部署。
- 安全連線 — IPSec 和新一代防火牆。
SDx(Software-Defined Everything):
任何可以由軟體執行或自動化的功能。 這包括網路、儲存、資料中心、運算、安全性、WAN等等。
Attacks and Attackers
Hacker
現今任何人都可以破壞C.I.A(Confidentiality, Integrity, Availability)三角的任何一環。最初只是一些愛炫的技術人員以以非預期方式使用某些技術找到漏洞。演變到現在Hacker分為以下類別:
- White Hat hackers:
專業滲透測試人員試圖發現缺陷以便我們修復它(道德駭客)。 - Black Hat hackers:
惡意駭客,試圖找到漏洞來利用它們(破解程式碼)。 - Grey Hat hackers:
介於白帽和黑帽之間,他們尋找易受攻擊的代碼、系統或產品。 - Script Kiddies:
幾乎沒有寫程式的知識,但有許多複雜的駭客工具可用且易於使用。 - Outsider:
未經授權的個人 — 試圖取得存取權限; 大部分攻擊是由outsider發動的,但如果組織擁有良好的縱深防禦,通常會被緩解。Outsider通常會使用的方式與動機通常是:攔截、惡意程式碼(例如病毒、邏輯炸彈、特洛伊木馬)、出售個人資訊、系統錯誤、系統入侵、系統破壞或未經授權的系統存取。企業的資訊安全風險有48–62%來自外部。 - Insider:
有權限的人員 — 不一定是受感染的系統,他們有意或無意地危害系統或資料。這可能是對員工的攻擊、勒索、取得專有資料、電腦濫用、詐欺和盜竊、資訊賄賂、輸入偽造或損壞的資料。企業的資訊安全風險38–52% 的風險來自內部人員,這是需要良好的身份驗證和授權控制的另一個原因。
由上圖我們可以看到,企業最大的風險除了來自外部(釣魚/駭客/惡意軟體)之外,內部最大威脅就屬員工的行為(錯誤的操作)。如何防止這一類的風險,就是能精準控制員工的電腦行為 — "Teramind- 員工風險控管與生產力"。
- Hacktivism/Hacktivist (hacker activist):
出於政治或社會動機的目的進行駭客攻擊。藉口通常旨在確保言論自由、人權、資訊流動自由(例如匿名者)。 - Governments:
國家級資助的駭客攻擊很常見; 經常會看到攻擊發生在該時區的 9 點到 5 點之間; 這是一份日常工作。大約 有120 個國家一直在開發利用網路作為攻擊金融市場、政府電腦系統和公用事業的武器的方法。著名攻擊:美國大選(俄羅斯)、索尼網站(北韓)、Stuxnet(美國/以色列)、美國人事管理局(中國)…
所以可以總結這些駭客的種類與動機如下圖:
- Bots and botnets:
殭屍程式是由殭屍網路控制的帶有惡意軟體的系統。系統受到攻擊或使用者安裝遠端存取木馬(具有隱藏程式的遊戲或應用程式)的危害。通常使用 IRC、HTTP 或 HTTPS來控制機器人與傳送資料。有些在啟動之前處於休眠狀態。其他則主動從系統發送資料(例如信用卡/銀行資訊)。主動型機器人也可用於發送垃圾郵件。
殭屍網路是一個 C&C((Command and Control)網路,由人類(牧民)控制。 殭屍網路中通常有 1,000 個甚至 100,000 個機器人。
Malware
惡意軟體(Malicious Code)- 這是用於破壞系統或資料的任何惡意軟體的總稱。病毒 — 需要某種人機交互,通常透過 USB driver或其他可攜式設備傳播。 當程式執行時,它會透過將自己的程式碼插入其他程式來複製自身。
惡意軟體分為以下幾類:
- Macro(文件)病毒:
以巨集語言編寫,嵌入其他文件(Word、Outlook)。 - Boot Sector Viruses(開機磁區病毒):
感染開機磁區或主開機記錄,確保它們在每次電腦開機就執行。 - Stealth Viruses(隱形病毒):
嘗試隱藏自己以避開作業系統和防毒軟體。 - 多型態病毒(Polymorphic Viruses):
改變自己在防毒軟體中的signature以避免防毒軟偵測到。 - Multipartite病毒:
透過多個載體傳播。 它們通常很難清除,因為即使清除了檔案感染,病毒也可能仍然存在於開機磁區中,反之亦然。
Worms:
透過自我繁殖(self-propagation)進行傳播-它們不需要與人類互動; 它們會造成有效負載損壞(payload damage)並透過積極的網路使用進行複製(也使它們更容易被發現)。
Trojans:
惡意程式碼嵌入(embedded)到正常的程式中。 這可以是遊戲、附件、網站點擊等。RAT (Remote Access Trojan)能使攻擊者能夠對目標系統進行管理控制。
而保護我們免受Malware的威脅則是防毒軟體的使用,通常分為兩類。但大多數的防毒已經混合了兩種模式:
- Signature based:
尋找已知的惡意軟體的signatures — 這個必須不斷有更新。 - Heuristic (Behavioral) based:
尋找異常行為 — 可能會導致大量誤報(false positives)。
Intrusion Detection and Prevention Systems (IDS/IPS)
企業通常在網路上使用 IDS(入侵偵測系統)和 IPS(入侵防禦系統)來捕獲和告警或阻止被視為惡意的流量。 它們可分為 2 種類型,並採用 2 種不同的方法來識別惡意流量。現在更多地使用結合兩者的系統來檢查signatures和異常(abnormalities)。它們的型態有("重要"):
- Network-Based:
放置在一個網段上(Switch上有一個port是promiscuous mode)。查看我們網路的一個區段(Segment),通常是一個switch,但可以aggregate多個swirch。檢查主機/目標 port、IP、protocol、流量內容,但不能查看加密流量(所以需要Host-Based)。可以防止 DDOS(書上講的,我沒說)、Port scans 、brute force attacks、policy violations。部署在一台交換器上, switch port和NIC必須是promiscuous,且port的型態必須是span port。 - Host-Based:
安裝在機器上(PC/Server)。只關注單一系統。 誰在使用系統、資源使用情況、流量等。它可以檢查特定應用程式,不一定要監控整個系統。 如果選擇進行流量分析,它會減慢主機速度來影響主機。 某些攻擊可以關閉 HIDS/HIPS。 可檢查實際資料(在終端設備上解密)。 - Signature (Pattern) Matching:
與防毒類似,它將流量與一長串已知惡意流量模式進行比對。尋找已知的惡意軟體的signatures。速度快,因為它們比對signatures。更容易設定和管理,因為廠商會update signatures。它們完全容易受到 0day 攻擊,必須不斷更新才能跟上新的漏洞模式。 - Heuristic-Based (Behavioral):
使用正常流量模式基準來監控異常流量。尋找異常行為(但可能會產生大量誤報false positives)。 我們建立正常網路流量的基線(baseline),所有流量都與該基線匹配。不匹配基線的流量根據Configuration進行處理,它們可能需要進行大量調整。可以偵測「異常(但定義是甚麼?)」活動,而不是只是攻擊。這須要需要更多的作業和技能。
就像firewalls、routers、servers、switches和我們環境中的其他所有東西一樣,它們只是看到更大全局的一部分,為了獲得全局視圖和資料關聯,我們使用SIEM(Security Information and Event Management)系統,甚至更好的是SOAR(Security Orchestration, Automation, and Response)系統。
IDS (Intrusion Detection System)是被動的,只能進行監控,但除了發出告警之外不採取任何行動。 Events trigger alerts:向管理員發送電子郵件/簡訊或監控工具上的告警,但如果監控不當,可能需要幾個小時才能注意到。
IPS (Intrusion Prevention System)與 IDS 類似,但IPS會對惡意流量採取行動,它們對流量的處理由Configuration決定。 Event會觸發action、drop/redirect traffic,通常與觸發監控/管理員告警、電子郵件或簡訊結合使用。
IDS與IPS是我們分層防禦(layered defense)的一部分。 基本上,它們是帶有分析引擎的packet sniffers。
Intrusion Events and Masking
IDS/IPS 顯然會促使攻擊者發展試圖逃避偵測的攻擊。可能使用以下方式:
- Fragmentation:
將packets切得更小,這可以逃避偵測系統偵測攻擊特徵(signature)的能力。 - Avoiding Defaults:
用規定的 TCP port 不會永遠是一個正確的指標。 攻擊者可以透過其他port發送惡意軟體。 - Low-Bandwidth Coordinated Attacks:
許多攻擊者(或agents)將不同的port或host分配給不同的攻擊者,這使得 IDS 難以關聯擷取到的packets並推斷網路掃描正在進行中。
IDS/IPS的告警分類(如同生物特徵辨識):
- True Positive:攻擊正在發生,系統偵測到攻擊並採取行動
- True Negative:網路上的正常流量,系統偵測到它但不執行任何操作
- False Positive:正常流量,系統偵測有問題到並採取行動
- False Negative:正在發生攻擊,系統沒有偵測到它並且不採取任何行動
我們很少談論「True」states,因為我們老是想著事情會按照預期發生,我們感興趣的是何時沒有發生,所以經常阻止授權流量或允許惡意流量。
這一類的告警分類實際上是機器學習中在評估模型訓練的得如何。更多這一類的資訊可參閱本部落格"部署Google Cloud的機器學習 Pipeline"一文中的Model Evaluation — Confusion matrices。
SIEM and SOAR systems
SIEM (Security information and event management)
- 提供組織的事件和事故的整體視圖。
- 從所有的系統中收集並查看一切。
SOAR (Security Orchestration, Automation, and Response)
- 一種使用人工智慧的軟體解決方案,使我們能夠自動回應一些安全事故。
- SOAR 也會對一些事件做出反應。
Honeypots and Honeynets
Honeypots
- 虛假系統但看起來像一個真實系統,但其唯一目的是吸引攻擊者。
- 它們用於了解我們系統的漏洞以及攻擊者如何規避我們的安全措施。
Honeynets
- honeypots網路(真實的或模擬的)通常是模擬的應用程式、OS和假資料的full server farm。
- 最佳實踐透過 DMZ將honeynet與我們的實際網路分開。
- SIEM/SOAR 系統從內部系統以及honeynet收集資料。
Firewalls
通常在可信任、安全的內部網路(inside)和另一個外部網路(outside,例如網際網路)之間建立屏障。Firewall分為以下幾種類型:
1.Packet filtering (OSI L1–3)
Packet filters是透過檢查在clients之間傳輸的「packets」來運作。如果packet與packet filter的規則集不匹配,則packet filter將丟棄(drop)該封包或拒絕(reject)它,並向來源端發送錯誤回應(error responses)。任何與其中一項permit 有match到的packet會被允許(allow)通過。而Firewall的規則是按順序檢查(如下圖)。
2.Stateful filtering(OSI L1–3)
記錄經過的所有connections,並確定packets是否是”new connection的開始”、現有connection的一部分或不是任何connection的一部分。仍然使用靜態規則(Static rules),這些規則現在可以包含connection state作為其標準之一。 一些 DOS 攻擊用數千個fake connection packets來轟炸防火牆,試圖透過塞爆其connection state memory來壓垮防火牆。
3. proxy server
Proxy server 可以充當防火牆,以應用程式的方式回應input packets,同時阻止其他packets。 Proxy server是特定網路應用程式從一個網路到另一個網路的gateway,它代表網路使用者充當代理。
4. Application layer firewalls(OSI L7)
Application layer firewalls的主要優點是它們可以理解某些應用程式和協定。 它們看到整個packet,packet直到L6才解密,任何其他防火牆只能檢查部分packet,但不能檢查payload。 它們可以檢測不需要的應用程式或服務是否試圖在allowed port上使用協定繞過防火牆,或者檢測協定是否以任何惡意方式被使用。
以上的Firewall可以分為Network-based與Host-based。Network是過濾兩個或多個網路之間的流量,無論是在硬體或軟體。Host是在一台主機上提供一層軟體安全性,控制進出該單一電腦的網路流量。
Next-generation firewall (NGFW)
- NGFW 將傳統防火牆技術與DPI(deep packet inspection)和網路安全系統(IDS/IPS、惡意軟體過濾和防毒)結合(就是大鍋炒)。
- 傳統防火牆中的封包檢查只查看protocol header ,DPI 也會查看封包攜帶的實際資料。
- NGFW試圖包含更多的 OSI model,改善依賴封包內容的網路流量過濾。
- DPI 防火牆追蹤web browsing sessions的進度,並且可以判斷packet payload與 HTTP server reply中的其他封包組裝時是否實際上是合法的 HTML 格式的回應。
Firewalls Design: DMZ
普通 DMZ 在受保護的subnet中使用 2 個防火牆,但它們也可以是只使用 1 個防火牆的三腳 DMZ。 實體或邏輯subnet,包含組織的對外服務並將其公開給不受信任的網路(例如 Internet)。 它為組織的 LAN 加上了額外的security layer,外部網路節點只能存取 DMZ 中的內容,而組織網路的其餘部分則受到防火牆保護。 防火牆被設計為fail closed,如果它們掛了、流量氾濫或關閉,它們會block所有流量。 為了取得redundancy,我們經常使用防火牆對並將防火牆置於網狀拓撲中,這樣一個防火牆故障只會改變流量路徑。
firewall pair 會產生HA 並且提高被入侵的成功率(使用兩種牌子以上的FW)。通常金融業喜歡這樣搞,但這要搞的代價 administrator overhead太重而且rule會變得太複雜。
0-day Attacks and Exploits
0-day Vulnerabilities
通常不為人所知或未發現的漏洞,第一次發現攻擊被視為第 0 天,因此得名。從發現漏洞開始,現今只需很短的時間就會在主要軟體上發布修補程式或signatures。
由於許多軟體中有數百萬行程式碼以及我們談到的 1% 錯誤,因此總會有新的攻擊面和漏洞需要探索。 針對 0day 漏洞的唯一真正防禦是縱深防禦(defense in depth),漏洞一旦發現就立即修補,因為我們已經在測試環境中對其進行了測試。 一旦有新的signatures可用,IDS/IPS 和防毒軟體中的大多數signatures都會自動更新。O-day攻擊分為三個階段:
- 0-day Vulnerability:該漏洞尚未被廣泛發現和發布。
- 0-day Exploit:利用0day漏洞的程式碼
- 0-day Attack:使用程式碼的實際攻擊
最有名的案例,應該是Stuxnet(震網)。它有三個module(worm/link/rootkit)。執行與攻擊主要payload相關的所有例程的worm。 自動執行work傳播副本的link file。 Rootkit 負責隱藏所有惡意檔案和流程,防止震網病毒被偵測到。
它透過受感染的 USB 隨身碟引入目標環境。 然後該蠕蟲病毒會在網路中傳播,掃描控制 PLC 的電腦上的西門子 Step7 軟體,如果兩者都不存在,Stuxnet 將在電腦內休眠,但仍會複製該蠕蟲病毒。 如果兩者都存在,Stuxnet 會將受感染的 Rootkit 引入 PLC 和 Step7 軟體中,修改程式碼並向 PLC 發出意外命令,同時將正常作業系統值回饋回循環。
該案例的目標是破壞資安三角C.I.A中的I-完整性。
Vulnerability Scanning/Testing
漏洞掃描工具用於掃描網路或系統,尋找一系列預先定義的漏洞,例如系統配置錯誤、過時的軟體或缺少修補程式。 理解漏洞掃描的output非常重要,對於某些系統,它們可能是數百頁報告,以及漏洞如何對應到威脅和風險(Risk = Threat x Vulnerability)。 當我們理解真正的風險時,我們就可以規劃緩解措施。
這類的行動通常不是全面性的而是是針對某些或特定系統的。使用上要非常小心,因為這類的工具其實就是模擬真的攻擊(如偵察recon)。所以做這個需要很多的協調與長官的同意。
Virtualization, Cloud, and Distributed Computing
Virtualization(“重要”)
虛擬化帶來了一套全新的標準、最佳實務和安全性問題。 透過虛擬化,我們在同一硬體平台(主機)上擁有許多伺服器(guest OS)。 虛擬化是在作業系統下和硬體之上運行的軟體(Ring-1)。
主機上的guest OS之間的流量不必經過我們的網路。 常見的虛擬化軟體有VMWare、Hyper-V 或 Xen。 透過分散式運算,我們使用多個本地或遠端客戶端來滿足我們的需求,最常見的是雲端運算。 但我們如何確保雲端資料中心滿足我們的安全態勢,他們如何分段網路?
虛擬化環境的成本比所有實體伺服器低得多。 建立guest OS要容易得多(不需要購買硬件,等待好幾週,安裝機架,準備電源/網路)。 我們可以輕易地用快照備份guest OS; guest OS建置可以使用圖image來完成。 我們可以立即重新分配資源。 它們的電力和冷卻成本較低,機架佔用空間也小得多。
Hypervisor 是控制guest OS與主機硬體之間的存取,並且分為2個型態:
- Type 1 hypervisor (Bare Metal)是在主機硬體之上運行的虛擬化作業系統的一部分
- Type 2 hypervisor在 Windows 10 等常規作業系統之上運作
虛擬化也帶來了新的漏洞,因為該技術較新且非常複雜。同一Host上的guest OS應位於同一網段(內部/DMZ),Host不應該容納兩個區域。guest OS應在網路上邏輯分離,就像實體伺服器一樣(HR、會計、IT VLAN)。常見的攻擊有:
- VM Escape (Virtualization escape) —
是指攻擊者可以從Host或guest OS跳到另一個guest OS,如果同一台Host上有不同的信任等級guest OS,這可能會更加令人擔憂。 理想情況下,它們應該位於不同的Host上。 - Hypervisor Security —
如果攻擊者能夠存取hypervisor,他們就可能能夠存取guest OS。 - Resource Exhaustion —
管理員oversubscribe CPU/Memory,但沒有意識到需要更多資源(可用性)。
Cloud Computing
There is no ‘Cloud’, it is just somewhere else’s computer。哪麼雲端運算的定義是甚麼呢?NIST 800–145與ISO/IEC 17788:2014都有其定義。
當我們使用雲端運算時,我們會建置或外包部分 IT 基礎架構、儲存、應用程式。這樣做的原因有很多,但大多數都與成本有關。 雲端運算可分為4種主要類型("重要"):
- Private
- Public
- Hybrid
- Community
與其他任何IT外包一樣,確保我們有權進行審核、滲透測試(明確商定標準)、進行漏洞評估,並檢查供應商是否符合我們的產業和您遵守的標準(這是理想上的)。但是最重要的是我們如何在雲端上進行風險評估與資安架構,請參考本部落格"雲端運算的風險"與"企業架構師的雲端資安架構視圖"一文。
Public Cloud Computing("重要")
Distributed Systems
也可以稱為:
DCE(Distributed computing environment)、concurrent computing、parallel computing與distributed computing。這是一種協同作業來支援資源或提供服務的各個系統的集合。大多數最終使用者將 DCE 視為單一實體,而不是多個系統。有關於更多distributed-computing的資訊,可以參閱AWS的網頁介紹。
我們為什麼要使用DCE呢(又快、又好、又便宜)?
因為它們可以為我們提供水平擴展(規模、地理位置和管理)、模組化成長、容錯、成本效益、低延遲(使用連接到最近的節點)。
那些方面可以使用DCE呢?
無所不在(Internet、網站、行動網路、搜尋、P2P 網路、區塊鏈…)。
High-Performance Computing (HPC) Systems
- 最常見的是系統中運算節點的聚合(aggregate),旨在解決複雜的計算或以非常高的速度操作資料。
- HPC 有 3 個組件: 運算、網路和儲存。這三者都必須有足夠的資源才不會成為瓶頸。
- 最知名的版本是超級電腦。
Edge Computing Systems
資料處理盡可能靠近需要的地方完成,我們透過移動資料和運算資源來做到這一點。這將會優化頻寬使用並降低延遲(latency)。CDN 是最常見的邊緣運算類型之一。
The Internet of Things (IoT)
它實際上是任何「Smart」的東西:智慧電視、恆溫器、燈泡、汽車,以及任何以某種方式連接到網路的東西。它們可以成為進入您的智慧型裝置的簡單方法,因為大多數都從未打過補丁(許多人甚至沒有選擇)。
更多的IoT介紹,可參閱本部落格"雲端時代的IoT(物聯網)"與"AWS 的 IoT解決方案 — Part 1"一文。
Asset Tracking and Hardware Hardening
Asset Tracking
準確記錄我們所有的資產非常重要; 我們無法保護我們不知道自己擁有的東西。我們在風險分析部分對此進行了一些介紹,但除了識別資產之外,我們還應該將其作為技術更新周期的一部分來記錄資產序號、型號,通常還記錄內部資產 ID。
Hardware Hardening
通常強化(有人翻強固)伺服器。 應用所有補丁、關掉不需要的port、刪除預設用戶……大多數地方對此都很好,但workstation/PC經常被忽略。
停用 USB port、CD 磁碟機和任何其他可能將惡意軟體引入我們網路的連接埠:
- 物理上:拿一些物品把port塞起來,如果可以靠近裝置這就容易破解 — 不太安全。
- 邏輯上:鎖定在 Windows 服務或透過 AD(Active Directory)這不容易被破解(如果做得正確)-更安全。
電力(Electricity)
為伺服器、磁碟陣列、網路設備提供乾淨、可靠的電力非常重要。 斷電會影響我們系統的可用性(availability)和資料的完整性(Integrity)。 無法存取任何內容,且電源變動可能會損壞硬體與資料。電源波動(Power Fluctuation)的術語有:
- Blackout — 長時間斷電
- Fault — 短暫斷電
- Brownout — 長時間低電壓
- Sag(電壓驟降) — 短時低電壓
- Surge(突波) — 長時間高電壓
- Spike(尖峰) — 短時高電壓
Surge Protectors、UPS 和發電機是給設備有乾淨的電力
Surge Protectors — 保護設備免受高電壓影響。
UPS(Uninterruptible Power Supplies):
- 確保系統持續獲得乾淨電力。
- 擁有大型電池組,可以在發生故障時接管
- 停電或電力不穩時,它們也充當surge protectors。
發電機:
燃游發電機被設定為在停電事件期間手動或自動(首選)啟動。只要有燃料就會運行,就必須維護。
PDU (Power Distribution Unit) 可以在rack內或外。
Backups(“重要”)
當我們談到容錯(fault tolerance)時,首先想到的事情之一就是資料的備份,雖然它非常重要,但它通常就像log review一樣是事後才想到的(因為沒出事備分就不重要),並以「Set it and forget it」的心態來對待。
對於備份,我們通常使用Full/Incremental/Differential/Copy backups這幾種方式,我們如何使用它們取決於我們對備份的需求,這通常是我們可以忍受丟失多少資料以及我們希望備份和復原過程有多快。在備份解決方案中,我們制定了備份政策,包括備份什麼、排除什麼、完整備份、增量備份和差異備份的資料保留多長時間。
所有這些參數值都是根據我們備份的內容來分配的,正常組織會有不同的備份政策並將其應用於適當的資料。例如這可能是完整備分的 3、6、12、36、84 個月和無限期,保留通常是我們業務領域的政策和法規所規定的(備分生命週期管理)。
最好在上班時間之外進行備份,但如果備份解決方案有點舊,則可能需要全天候運作,在這種情況下,我們將較小且不太重要的備份放在白天,而重要的較大備份則放在下班後。24小時運作的系統則須另外的解決方案。我們經常希望排除正在備份的系統部分,這可能是作業系統、垃圾桶、某些程式資料夾…我們只備份重要的內容,很少備份所有內容。
如果系統被駭並且問題是 Rootkit,如果進行完整還原,Rootkit 會是保留在備份中,透過消除一些系統資料,我們不僅要備份的數資料少了很多,還可以避免再次感染。對於非常重要的資料,我們可以每小時增量或使用另一種形式的資料遺失預防(後面會介紹)。
Full Backup
這可以備份所有內容,整個資料庫(最常見的是)或系統。 完整備份會清除所有archive bits。 根據資料的大小,我們可能很少進行完整備份,對於大型資料集,完整備份可能需要幾個小時甚至一天以上。
例如:我們在周一要做restore。哪我們只需要週日的full back。通常是單一個file/image/tape。
Notes:
在 Windows的NTFS 在檔案上有一個archive bit,它是一個flag,標示自上次full或Incremental backup以來檔案是否已變更。
Incremental Backup
備份自上次備份以來變更的所有內容(Clears the archive bits)。 增量通常執行速度很快,它們只備份自上次增量或完整備分以來更改的內容。 它們的缺點是,如果我們進行每月完整備份和每日增量備份,則必須進行完整恢復,並且可能需要使用最多30 個file/image/tape,這比1 個完整備份和1 個差異備份花費的時間要長得多。
假如我們如果是周一執行full back,其他時間執行Incremental backup。哪在週五要restore週四的資料。就需要周一的full back與週二/三/四的Incremental backup。
Differential Backup
備份自上次完整備份以來的所有內容(不清除archive bit)。 restore速度更快,因為我們只需要 2 個file/image/tape即可進行full restore,即full 跟differential。 differential比incremental需要更長的時間,因為我們正在備份自上次完整備份以來的所有內容。 切勿對相同資料同時使用incremental 與differential,但在同一個備份解決方案上可以,不同的資料有不同的需求。
Copy Backup
這是完整備份,但有一個重要區別,它不會清除archive bit。 通常在我們進行系統更新、修補程式和類似升級之前使用。 我們通常不想搞亂備份週期,但我們希望在出現問題時能夠恢復到上一個的良好副本。
Fault Tolerance, Redundancy, and Resiliency
為了確保我們的內部 SLA 並提供盡可能高的可用性,我們使用對特定系統和資料集有意義的盡可能高的redundancy和resiliency。
RAID (Redundant Array of Independent/Inexpensive Disks)”重要”
有兩種基本型態:
- Disk Mirroring —
跨多個硬碟寫入相同的資料,速度較慢,RAID controller必須將所有資料寫入兩次。 對於相同的資料存儲,至少使用 2 倍數量的磁碟,最少至少需要 2 個磁碟才能Mirror。 - Disk Striping —
將資料分散寫在在多個磁碟上,可以提供更高的寫入速度。 至少要使用 2 個磁碟,且本身不提供redundancy。 使用parity 與striping來實現redundancy(通常至少需要3個磁碟),通常透過XOR(一種邏輯分析類型)。
RAID 有許多不同類型,以考試為目的我們只會解釋一些術語以及 RAID 0、1 和 5 的工作原理。
- RAID 0 —
沒有mirror或parity,也沒有fault tolerance,唯一的優點是更快的讀寫速度,需要至少 2 個磁碟 - RAID 1 —
Mirror set,2個磁碟資料相同,寫入功能同時寫入兩個磁碟
- RAID 5 —
Block level striping with distributed parity,需要至少 3 個磁碟。 速度與redundancy相結合。
如果使用容錯 RAID type,當單一磁碟發生故障時,RAID 將有助於防止資料遺失,如果在更換和重建第一個磁碟之前多個磁碟發生故障,將需要從磁帶進行復原(因為資料不見了)。 大多數伺服器具有相同製造商日期的相同磁碟,它們大約會在同一時間達到 MTBF(Mean time between failures)。 較大的資料中心通常與硬碟/伺服器供應商簽訂 SLA,其中還包括 MTTR(Mean time to repair)。 供應商可能需要在 4 或 8 小時內到達現場並更換磁碟。
System Redundancy
除了 RAID 和備份之外,我們還嘗試提供system redundancy以及系統上的redundant parts。 最常見的系統故障來自移動部件,可能是磁碟、風扇或 PSU(power supplies)。 大多數伺服器都有兩個的電源、多個風扇、多個網卡。 NIC 和 PSU 有雙重用途,既用於內部冗餘,也用於外部冗餘。 如果 UPS 發生故障,伺服器仍可運行,因為只有 1 個 PSU 通電。
Redundant disk controllers也相當常見,我們設計和購買系統以匹配該應用程式所需的redundancy。 通常,我們手邊有備用硬體,以應對故障的情況,其中可能包括硬碟、PSU、風扇、記憶體、NIC。 許多系統都是為某些可熱插拔(hot-swappable)的硬體而建構的,最常見的是 HDD、PSU 和風扇。
如果應用程式或系統很重要,我們通常也會在cluster中有多個系統。 多個伺服器通常具有Virtual IP,對使用者來說它被視為單一伺服器。 Cluster是為fault tolerance而設計的,通常與load balancing相結合,但不是一綁在一起的。 Cluster可以是active/active的,這就是load balancing,有 2 台伺服器,兩台伺服器都會主動處理流量。 在設計良好的環境中,伺服器在地理上是分散的。
另外我們也會有其他的Redundancy:
- Database Shadowing —
將資料庫或檔案精確地即時複製到另一個位置。(snapshot/data replication) - Electronic Vaulting (E-vaulting) —
使用遠端備份服務,備份會以一定的時間間隔或在檔案發生變更時以電子方式傳送到異地。 - Remote Journaling —
將”transaction log files”傳送到遠端位置,而不是檔案本身。
Fire Suppression
滅火是透過消除火災的 3 個要素之一來完成的。在一般企業這通常不歸IT或資安人員來管。而是行政單位的防火管理人。
火需要氧氣、熱和燃料才能燃燒。 移除 3 個中的任何一個即可將火撲滅。 透過用其他東西替換一個空間中的氧氣或覆蓋火來去除氧氣,這樣燃燒的材料就無法接觸到氧氣(Halon, FM200, Argon)。 透過向火中添加化學物質或水並使其冷卻來消除熱量。 由於燃料是我們的設備,因此很少進行燃料去除。
火災分類(Fire Classes)
Automatic Fire Suppression Systems
Water:
透過降低溫度來消除火災三元素的「熱」。 是最安全的抑制劑,但對於資料中心:
- 水+硬體=全毀
- 但在使用水之前總是可以切斷電力
自動灑水系統(Sprinkler Systems):
- 灑水器有不同類型的內含化學物的玻璃容器,適用於不同的溫度。
- 應連接至警報器和警報燈。
- 每個噴頭都是獨立的; 如果達到該玻璃容器的溫度,它就會破掉灑水。
- 濕管(Wet Pipe):噴頭關閉。 灑水系統的管道有水。
- 乾管(Dry Pipe:):噴頭關閉。此管道包含壓縮空氣和一個只要空氣存在就保持關閉的閥門
其他的滅火方式還有:
滅火器(Fire Extinguishers)
滅火器是一種主動式消防設備(因為要人為操作),通常在緊急情況下用於撲滅或控制小火。 所有攜帶式滅火器應標示其設計用於撲滅的火災類型。 切勿使用滅火器來撲滅非預期的火災。 使用 PASS 方法使用手提式滅火器滅火:
- 拉動(Pull)手柄中的銷釘。
- 瞄準(Aim)火的底部。
- 慢慢擠壓(Squeeze)控制桿。
- 從一邊掃(Sweep)到另一邊。
Secure Design Principles
Least Privilege
我們為員工提供他們所需的最低限度的必要存取權限,不多也不少。
Need to Know
即使有權訪問,如果不需要知道,那麼就不應該訪問該資料
Separation of Duties
- 一項任務中超過一個人是一種內部控制,旨在防止詐欺和錯誤(fraud and error)。
- 不允許同一個人輸入採購訂單並開支票。
- 對於考試,假設公司足夠大,可以使用separation of duties。在小公司這是不切實際的作法,應該採取補償控制措施(compensating controls)。
Defense in Depth — 也稱為Layered Defense或Onion Defense
實施多個重疊的安全控制來保護資產。 這適用於physical、administrative與logical controls。
Secure Defaults
- 程序或系統在實施時盡可能安全。
- 可以為了可用性(usability)而移除安全性。
- 什麼是安全性和可用性是由風險分析(risk analysis)和可用性測試(usability tests)決定的。也就是Least Privilege
Fail Securely
系統旨在防止或減輕系統故障時的不安全後果。 如果系統發生故障,它至少會保持與故障之前相同的安全(如Firewall)。
Open/safe — 邏輯性的:可用性已保留,但資料可能不安全。實體性的:系統關閉/入口解鎖 — 人員是安全的
vs.
closed/secure — 邏輯性的:資料是安全的,但可用性無法維持。實體性的:入口被鎖定
Keep It Simple(Kiss原則)
保持我們的安全性簡單,可以使其更好地被理解和接受。 我們的安全性越複雜,控制、故障排除與管理就越困難。
Trust but Verify
隱含性的信任(Implicit trust),但要驗證。 大多數嚴重的危害來自特權使用者(管理員帳號)。
Zero Trust (never trust, always verify)
NIST SP 800–207 — Zero Trust Architecture。
- 預設情況下,我們不信任網路上的任何設備,即使它們已經過驗證。
- 我們將防禦從靜態的、基於網路的邊界改為關注使用者、資產和資源。
- 使用 ZT,不會根據資產或使用者的實體或邏輯位置給予其隱含性的信任。
- 我們使用Subject和Device的authentication與authorization,這是在建立與企業資源的session之前完成的。
更多的Zero Trust資訊請參閱本部落格零信任的IT環境架構與零信任成熟度模型一文。
Privacy by Design
主動而非被動、隱私是預設設定、隱私嵌入設計、完整功能、端對端安全性、可見度和透明度、尊重用戶隱私。