這篇blog總結了博主大三下學期的《網絡安全》課程主要知識點,每一點仔細研究的話都有很多很深很精妙的內容。
0x00 網絡安全的目標
網絡安全的目標是保證信息的保密性、真實性、完整性、可靠性、可用性、不可否認性。了解網絡安全的定義可以幫助我們提高分析問題、解決問題的能力,可以有計劃、有方向的針對其目標來分析網絡安全。所以,了解這些是必要的。
- 保密性:指網絡信息不被泄漏給非授權的用戶、實體或過程,即信息只為授權用戶使用。通常使用的技術包括物理保密、防竊聽、防輻射(防止有用信息以各種途徑輻射出去)、信息加密。
- 真實性:指用戶的身份是真實的。涉及到認證問題。
- 完整性:指網絡信息未經授權不能進行改變的特性,即網絡信息在存儲或傳輸過程中保持不被偶然或者蓄意地添加、刪除、修改、偽造、亂序、重放等破環和丟失的特性。主要方法有:
- 良好的協議
- 密碼校驗和方法
- 數字簽名
- 公正
- 可靠性:指系統能夠在規定的條件和規定的時間內完成規定的功能的特性。衡量的角度有抗毀性、生存性和有效性。
- 可用性:指網絡信息服務在需要時,可被授權用戶或實體訪問并按需求使用的特性,或者是網絡部分受損或需要降級使用時,仍能為授權用戶提供有效服務的特性。可用性可通過如下手段來保證:
- 身份識別與確認
- 訪問控制
- 業務流控制
- 路由選擇控制
- 審計跟蹤
- 不可否認性(不可抵賴性):即在網絡信息系統的信息交互過程中,確信參與者的真實同一性。所有參與者都不能否認或抵賴曾經完成的操作和承諾。
- 可控性:指對網絡信息的傳播及內容具有控制能力的特性。
0x01 網絡威脅的來源有哪些?是什么?
-
協議本身的缺陷:比如網卡可以設置成混雜模式、socket跨層傳輸等問題。
明文傳輸
-
IP欺騙:IP地址沒有認證
- 使被信任主機失去工作能力
- 然后連接到目標機的某個端口來猜測ISN基值和增加規律
- 接下來把源址址偽裝成被信任主機,發送帶有SYN標志的數據段請求連接
- 然后等待目標機發送SYN+ACK包給已經癱瘓的主機
- 最后再次偽裝成被信任主機向目標機發送的ACK,此時發送的數據段帶有預測的目標機的ISN+1
- 連接建立,發送命令請求
碎片攻擊:IP首部有兩個字節表示整個IP數據包的長度,所以IP數據包最長只能為0xFFFF,就是65535字節。如果有意發送總長度超過65535 的IP碎片,一些老的系統內核在處理的時候就會出現問題,導致崩潰或者拒絕服務。另外,如果分片之間偏移量經過精心構造,一些系統就無法處理,導致死機。所以說,漏洞的起因是出在重組算法上。這里有一篇blog寫的很清楚, 碎片攻擊
-
TCP濫用:SYN flood講的是黑客利用TCP協議發送大量的半連接請求去攻擊目標服務器或者主機,致使目標服務器發生拒絕服務,或者藍屏。
DNS、FTP、TELNET等應用協議的安全問題
-
惡意攻擊
- 緩沖區溢出攻擊
- DDoS
- 特洛伊木馬
-
各種應用軟件的漏洞
- SQL注入、IIS的漏洞等
接下來從TCP/I參考模型的不同層次總結下各種攻擊方法
- 數據鏈路層攻擊技術
- MAC地址欺騙
- 直接修改網卡MAC地址:實現單機上網
- 利用MAC地址克隆:通過路由器的克隆MAC地址選項實現多機共享上網
- 電磁信息泄漏:指電子設備的雜散(寄生)電磁能量通過導線或空間向外擴散。只有強度和信噪比滿足一定條件的信號才能夠被截獲和還原。因此,可以通過屏蔽、濾波、隔離、合理的接地與良好的搭接、選用低泄漏設備、合理的布局和使用干擾器等防護措施避免電磁信息泄漏。
- 網絡監聽
- 以太網的工作機制:HUB相連的網絡,通過設置網卡為“混雜模式”達到監聽的目的。
- Snoop監聽工具:可以截獲網絡上傳輸的數據包,并顯示其內容,能方便的收集工作站的信息。
- Sniffit監聽工具:用戶可以選擇源、目標地址或地址集合,以及監聽的端口、協議和網絡接口等。eg:
sniffit -a -A . -p 23 -t 11.22.33.@
- Sniffer監聽工具:嗅探器,可以形象地理解為打入到敵人內部的特工,源源不斷地將地方的情報送出來。有很多現成的運行于不同平臺的嗅探工具,如:Linux tcpdump, The Gobbler, LanPatrol, LanWatch, Netmon, Netwatch, Netzhack等。Sniffer程序通常運行在路由器或有路由器功能的主機上,以便監控大量數據。
- 防止網絡監聽:
- 加密:TCP/IP協議并沒有加密的方法,都采用明文傳輸,因此,可以使用增強的TCP/IP協議,如IPv6協議中提供了內置的IPSec可選報頭,可以以密文方式傳輸數據。對于IPv4為主的網絡,基本采用打補丁的方式,如使用SSH協議。
- 采用安全拓撲結構
- MAC地址欺騙
- 網絡層攻擊技術
- 網絡層掃描:典型的被動攻擊方法
- ping
- tracert
- rusers、finger、host
- IP欺騙
- 信任關系:以IP為信任基礎
- IP欺騙的原理、目的
- 只想隱藏自身的IP地址或者偽造源IP和目的IP相同的不正常包而不關心是否能收到目標主機的應答。如IP包碎片攻擊、Land攻擊(Local Area Network Denial attack,源、目的IP相同)等
- 偽裝成被目標主機信任的友好主機,并希望得到非授權的服務。此時需要使用正確的TCP序列號。
- 碎片攻擊:上文已經提到過
- ICMP攻擊:
- IP地址掃描
- ping of death
- ping flooding 和 smurf:不停的ping,消耗目標主機資源,現代很多主機設置了不回應ping請求。smurf利用源地址是受害主機,目標地址是反彈網絡的廣播地址,以達到用ICMP回應應答數據包淹沒受害主機的目的。
- ICMP重定向報文
- ICMP主機不可達和TTL超時報文
- 路由欺騙
- RIP路由欺騙
- IP路由欺騙
- ARP欺騙:當攻擊者和目標主機在同一局域網內,攻擊者想要截獲和偵聽目標主機到網關之間的所有數據。如果由集線器HUB連接各個節點,只需要將網卡設置為混雜模式,就可用鏈路層的監聽獲得想要的信息。如果局域網采用交換機連接各個節點時,交換機會根據目標MAC地址查找端口映射表,確定轉發的某個具體端口,而不是向所有端口廣播。此時,攻擊者首先試探交換機是否存在失敗保護模式(Fail-safe mode),當網絡通信出現大量虛假MAC地址時,某些類型的交換機會出現過載情況,轉換到失敗保護模式,其工作方式和集線器HUB相同,可以使用“macof”工具完成這項攻擊。如果交換機不存在這種模式,就需要使用ARP欺騙技術來監聽了。 維基百科:ARP欺騙
- 網絡層掃描:典型的被動攻擊方法
- 傳輸層攻擊技術
- 端口掃描
- TCP connect掃描:入侵者不需要任何權限、速度快(打開多個套接字、使用非阻塞I/O、設置低連接時間),但容易被發覺并被過濾掉。
- TCP SYN掃描:半開掃描,發送SYN數據包,如果收到SYN/ACK,說明端口開放,這時再發送一個RST來關閉連接;如果收到RST,說明端口未處于偵聽狀態。但是必須具有root權限才能建立自己的SYN數據包。
- TCP FIN掃描:FIN掃描的基本思想是通常關閉的端口會用RST來回復FIN數據包,而打開的端口會忽略FIN數據包,不做回復。但并非所有系統都這樣做。
- Franmentation掃描:將將要發送的數據包大包成非常小的IP包,通過TCP包頭分成幾段,放入不同的IP包中,使得過濾程序難以過濾。
- UDP端口掃描:主機向未打開的UDP端口發送數據包是,會返回ICMP_PORT_UNREACH錯誤報文,從而判斷哪個端口時關閉的。但是這種掃描可靠性不高。
- 慢速掃描:放慢掃描速度來躲避檢查。
- TCP初始序號預測
- 64KB規則:當主機啟動后序列號初始化為1(由tcp_init確定),初始序列號ISN每秒增加128000,如果有連接出現,每次連接將把計數器的數值增加64000。用于表示ISN的32位計數器在沒有連接的惡情況下9.32小時復位一次。
- 與時間相關的生產規則
- 偽隨機數產生規則
- 第一、二種方法使得容易預測序列號,因為其與時間相關、變化不大。
- SYN flooding:當前最流行且最有效的DoS方式之一。攻擊主機需要保證偽造的數據包源IP地址是可路由、但不可達的主機地址。
- TCP欺騙:在IP地址欺騙和TCP初始序號預測的基礎上進行,目的是偽裝成其他主機與受害者通信,獲取更多信息和利益。
- 非盲攻擊:攻擊者和被欺騙的目標主機在同一個網絡上,攻擊者可以簡單地使用嗅探器捕獲TCP報文段,從而獲得需要的序列號。
- 盲攻擊:不在同一個網絡上,比較難以實現,但可以通過路由欺騙技術把盲攻擊轉換成非盲攻擊。
- 端口掃描
- 應用層攻擊技術
- 緩沖區溢出:指當計算機向緩沖區內填充數據位數時超過了緩沖區本身的容量,溢出的數據覆蓋了其他程序或系統的合法數據。
- 口令攻擊
- 猜測簡單口令
- 字典攻擊
- 強行攻擊:窮舉
- 電子郵件攻擊
- 電子郵件系統中的安全漏洞
- 電子郵件攻擊:欺騙、炸彈
- DNS欺騙
- SQL注入:動態構造了SQL語句,代碼與用戶的輸入結合,從而導致用戶執行期望之外的命令。
- 網絡病毒與木馬
- 病毒
- 危害:直接破環計算機數據信息、大量占用磁盤空間、運行時搶占系統資源,影響計算機的運行速度、計算機病毒的錯誤導致不可預見的危害。
- 特征:人為的特制程序、具有自我復制能力、很強的感染性】一定的潛伏性、特定的觸發性、很大的破壞性。
- 網絡病毒:蠕蟲
- 特洛伊木馬
- 病毒
- 拒絕服務式攻擊
- 原理:耗盡系統資源使得受害主機無法處理新的請求導致拒絕服務。
- 分布式拒絕服務攻擊
0x02 防范
- 身份認證
- 口令認證
- 靜態口令
- 動態口令:手機令牌、短信密碼、硬件令牌
- IC卡認證
- 基于生物特征的認證
- 指紋識別
- 掌紋識別
- 視網膜識別
- 虹膜識別
- 人臉識別
- 語音識別
- 擊鍵識別
- 筆跡識別
- DNA識別
- 網絡身份認證
- 對稱密碼:也稱私鑰密碼,常見的有DES、IDEA、3DES、AES
- 非對稱密碼:也稱公共密鑰密碼,常見的有RSA、EGamal、DSS、DiffieHellman
- 單點登錄:實質就是安全上下文或憑證在多個應用系統之間的傳遞或共享。
- 基于經紀人(Broker-based)的SSO模型
- 基于代理(Agent-based)的SSO模型
- 基于網關(Gateway-based)的SSO模型
- 基于令牌(Token-based)的SSO模型
- 口令認證
- 訪問控制:防止非法用戶進入系統和合法用戶對系統資源的非法使用。
- 自主訪問控制(Discretionary Access Control,DAC):基于對主體(用戶,進程)的識別來限制對客體(文件,數據)的訪問,而且是自主的。所謂自主是指具有授予某種訪問權限的主題能夠自主地將訪問權限或其子集授予其他主體,因此,DAC又稱基于主體的訪問控制。
- 缺點:訪問控制資源比較分散、用戶關系不易管理、訪問授權是可傳遞的、在大型系統中,主體、客體的數量龐大,造成系統開銷巨大。
- 應用:Windows Server、UNIX系統、防火墻(ACL)等
- 強制訪問控制(Mandatory Access Control,MAC):所有主體和客體都被分配了安全標簽,安全標簽標識一個安全等級,通過比較主體和客體的安全級別來決定是否允許主體訪問客體。其兩個關鍵原則是不向上讀和不向下寫,即信息流只能從低安全級向高安全級流動。
- 缺點:對用戶惡意泄漏信息無能為力、基于MAC的應用領域比較窄、完整性方面控制不夠、過于強調保密性,對系統的授權管理不便,u夠靈活。
- 應用:軍方系統
- 基于角色的訪問控制(Role-based Access Control):在用戶和訪問許可權之間引入角色(Role)的概念,用戶與特定的一個或多個角色相聯系,角色與一個或多個訪問許可權相聯系。
- 核心RBAC的基本元素集合有五類:用戶集、角色集、客體集、操作集、許可集。基本關系有:用戶指派(UA)和許可指派(PA)。
- 應用:操作系統、數據庫管理系統、公鑰基礎設施(PKI)、工作流管理系統、Web服務等
- 使用控制模型(UCON):可變屬性(Mutable Attribute,MA)的引入是UCON模型與其他模型的最大差別,可變屬性會根據訪問對象的結果而改變,而不可變屬性僅能通過管理行為改變。UCON不僅包含了DAC、MAC、RBAC,還包含了數字版權管理(DRM)、信任管理等,被稱作下一代訪問控制模型。
- 三個基本元素:主體、客體、權限
- 三個與授權有關的元素:授權規則、條件、義務
- 自主訪問控制(Discretionary Access Control,DAC):基于對主體(用戶,進程)的識別來限制對客體(文件,數據)的訪問,而且是自主的。所謂自主是指具有授予某種訪問權限的主題能夠自主地將訪問權限或其子集授予其他主體,因此,DAC又稱基于主體的訪問控制。
- Firewall:防火墻是設置在用戶網絡和外界之間的一道屏障,防止不可預料的、潛在的破壞侵入用戶網絡。基本功能有過濾、管理、日志、告警。
- 集中式防火墻:一般位于網絡的邊界。
- 優點:
- 允許網絡管理員定義一個中心“遏制點”來防治非法用戶進入內部網絡。
- 保護網絡中脆弱的服務
- 通過防火墻,用戶可以很方便的監視網絡的安全性,并產生報警信息
- 集中安全性
- 增強隱私性
- 防火墻是審計和記錄網絡流量的最佳地方
- 缺點:
- 限制有用的網絡服務
- 不能有效防護內部網絡用戶的攻擊
- 對網絡拓撲結構依賴大
- 防火墻不能完全阻止傳送已感染病毒的軟件或文件
- 防火墻無法防范數據驅動型的攻擊
- 不能防備新的網絡安全問題
- 不能解決信息保密性問題
- 體系結構
- 包過濾防火墻
- 雙宿網關防火墻:擁有兩個連接到不同網絡上的網絡接口的防火墻
- 用戶直接登錄到雙重宿主主機上來提供服務
- 一般采用代理方式提供服務,采用代理服務的雙宿主機稱為代理服務器
- 應用層代理
- 傳輸層代理
- SOCKS代理:MS Proxy、NS Proxy、WinGate等流行的代理服務器產品
- 屏蔽子網防火墻:對代理服務器的改進,在內網和外網之間建立一個子網以進行隔離。這個子網區域稱為邊界網絡(Perimeter Network)、非軍事區(De-Militarized Zone)。
- 內部路由器主要功能:
- 負責管理DMZ到內部網絡的訪問
- 僅接收來自堡壘主機的數據包
- 完成防火墻的大部分過濾工作
- 外部路由器主要功能:
- 防范通常的外部攻擊
- 管理Internet到DMZ的訪問
- 只允許外部系統訪問堡壘主機
- 堡壘主機
- 進行安全防護
- 運行各種代理服務,如WWW、FTP、Telnet等
- 內部路由器主要功能:
- 優點:
- 分布式防火墻:每個桌面計算機都通過安全策略機制進行控制,這些安全策略來自于策略服務器,系統管理員設置統一的安全管理策略,由各桌面計算機的通信模塊進行自動下載并更新本地策略。這里的分布式防火墻與個人防火墻不同,個人防火墻多為安裝在主機上的軟件防火墻,以及今年出現的主機版上整合的硬件防火墻,雖然也是由各主機實施策略,但是其策略是由主機用戶自行定義,缺乏集中統一的管理。
- 存在防火墻和操作系統的功能悖論,即純保護誰的問題。
- 嵌入式防火墻:硬件實現分布式防火墻的策略的執行模塊。
- 集中式防火墻:一般位于網絡的邊界。
- VPN:指在用戶計算機和VPN服務器之間點到點的連接,由于數據通過一條仿真專線傳輸,用戶感覺不到公共網絡的實際存在,卻能夠像在專線上一樣處理內部信息。
- VPN的功能:數據封裝、認證、數據完整性和合法性認證、數據加密
- 數據鏈路層VPN---L2TP(Layer 2 Tunneling Protocol)/PPTP(Point-to-Point Tunneling Protocol):IPSec出現前最主要的VPN類型,通常用于支持撥號用戶遠程接入企業或機構的內部VPN服務器。
- 優點:簡單易行
- PPTP/L2TP對使用微軟操作系統的用戶來說很方便,因為微軟已把它作為路由軟件的一部分
- 位于數據鏈路層,包括IPv4在內多種網絡協議都可以采用它們作為鏈路協議,支持流量控制
- 通過減少丟包來減少重傳,改善網絡性能
- 缺點:安全程度差
- 對PPP協議本身沒做修改,只是將用戶的PPP幀基于GRE封裝成IP報文
- 不對兩個節點間的信息傳輸進行監視或控制
- 限制同時最多只能連接255個用戶,可擴展性不強,不適合于向IPv6的轉移
- 端用戶需要在連接前手工建立加密信道
- 沒有提供內在的安全機制,認證和加密受到限制,沒有強加密和認證支持
- 不支持企業與外部客戶及供應商之間會話的保密性需求,不支持外聯網VPN
- 優點:簡單易行
- 網絡層VPN---IPSec:一個范圍廣泛、開放的虛擬專用網安全協議,是第三層VPN標準
- 傳輸模式:適合點到點的連接,即主機與主機之間的VPN可以用傳輸模式,其數據分組中原始IP報頭不動,在后面插入AH認證頭或ESP的頭部和尾部,僅對數據凈荷進行認證或加密。
- 隧道模式:適用于VPN安全網關之間的連接,即用于路由器、防火墻、VPN集中器等網絡設備之間,發送端的VPN安全網關對原始IP報文整體加密,再在前面加入一個新的IP包頭,用新的IP地址(接收端VPN地址)將數據分組路由到接收端。
- 傳輸層VPN—SSL:SSL VPN指采用SSL協議來實現遠程接入的VPN技術
- 優點:簡單、安全、可擴展、訪問控制、成本低
- 不足:必須依靠Internet進行訪問、依賴反代理技術訪問公司內部網絡,對復雜Web技術提供的支持有限、通常只基于Web瀏覽器工作、只對通信雙方的某個應用加密而非所有通信加密
- 會話層VPN—SOCKS
- IDS(Intrusion Detection System)/IPS(Intrusion Protection System)
- NIDS、HIDS
- 異常檢測、誤用檢測
- 誤報率、漏報率