官术网_书友最值得收藏!

(六)工業領域網絡攻擊分析

傳統IT系統中安全的三要素由高到低排列分別是保密性(Confidentiality,C)、完整性(Integrity,I)、可用性(Availability,A)。

① 保密性:是指保證信息不被非授權訪問,即使非授權用戶得到信息,也無法知曉信息內容,因而不能非法使用。保密性通常通過訪問控制阻止非授權用戶獲得機密信息,通過加密變換阻止非授權用戶獲知信息內容。

② 完整性:是指維護信息的一致性,即信息在生成、傳輸、存儲和使用過程中不應該發生人為或非人為的非授權篡改。信息的完整性包括兩個方面:一是數據完整性,主要指數據沒有被(未授權)篡改或損壞;二是系統完整性,主要指系統未被非法操縱,按既定的目標運行。

③ 可用性:是指保障信息資源隨時可提供服務的能力特性,即授權用戶可根據需要隨時訪問所需信息。可用性是信息資源服務功能和性能可靠性的度量,涵蓋物理、網絡、系統、數據、應用和用戶等多方面的因素,是對信息網絡總體可靠性的要求。其中,可用性也稱有效性,指信息資源可被授權實體按要求訪問、正常使用或在非正常情況下能恢復使用的特性。其保證系統在運行時能正確存取所需信息,當系統遭受意外攻擊或破壞時,可以迅速恢復并能投入使用。在工業領域,生產連續性一般是指不接受中斷,若需要中斷,則必須提前規劃,不允許生產系統隨意重新啟動。

企業開展工業信息安全防護的最終目標是免受網絡攻擊或減少網絡攻擊造成的損失,保障企業業務運營的連續性;對于行業和國家,做好工業信息安全工作則事關經濟良好運行、國家安全和社會穩定。如前所述,從傳統信息安全的角度出發,開展信息安全工作的目標就是保證信息資產的“CIA”三元組:保密性、完整性、可用性。但對于工業控制系統而言,系統可用性至關重要,應用于工業領域時,特別是生產環節,則需要調整為“AIC”(如圖1-16所示),即工業領域更關注可用性,其次是完整性,最后才是保密性。

圖1-16 工業信息安全“AIC”示意

完整性是指信息在傳輸、交換、存儲和處理過程中,保持信息不被破壞或修改、不丟失和信息未經授權不能改變的特性。同樣,從生產的角度看,完整性也是十分重要的,直接影響產品的“良品率”。隨著工業領域數字化轉型的深入,工業領域管理、運維、市場等數據的保密性也正在成為工業信息安全關注的焦點。保密性是指不將有用信息泄露給非授權用戶的特性,可以通過信息加密、身份認證、訪問控制、安全通信協議等技術實現。

隨著安全形勢的不斷演變和安全需求的發展,在“AIC”基本特性的基礎上,強調保證數據安全、共享安全,數據權屬等的可控性、不可否認性、可審計性、可鑒別性等特性也逐步被單獨地研究和應用。

1.常見的網絡攻擊類型

(1)中間人攻擊

中間人攻擊是“間接”的入侵攻擊方式。所謂“中間人”,是指通過各種技術手段將受攻擊者控制的一臺計算機虛擬放置在網絡連接中的兩臺通信計算機之間(如圖1-17所示),這臺受攻擊者控制的計算機就被稱為“中間人”。攻擊者控制的計算機與通信的兩端分別創建獨立的聯系。對下,篡改上位機的控制指令,使PLC脫離管理員的控制,破壞生產;對上,顯示系統正常運行,延遲管理員發現安全威脅的時間,從而造成更大的破壞。中間人攻擊可以概括為一種“欺上瞞下”的攻擊手段。

圖1-17 中間人攻擊原理

中間人攻擊的步驟可以簡要概括為以下4步。第一步,獲取PLC、上位機的設備型號、IP地址、常用端口號等信息,這是建立連接的必要前提。第二步,進行ARP地址欺騙,建立連接,捕獲流量數據。第三步,對捕獲的流量數據進行分析,查找用于控制的功能碼或其他關鍵參數,并進行篡改。第四步,發動攻擊,發送篡改或原來的數據包導致系統運行異常。

(2)模糊測試(Fuzz Testing)攻擊

工業控制系統的模糊測試原本是一種測試方法,指自動化生成可用于輸入被測試工業控制系統或設備的測試數據,進而檢驗工業控制系統或設備的安全性。而模糊測試攻擊則利用相同的手段達到破壞系統運行的目的。模糊測試攻擊的原理如圖 1-18所示。

圖1-18 模糊測試攻擊原理

(3)口令爆破攻擊

口令爆破攻擊基于身份驗證漏洞。身份驗證是網絡互聯條件下授予指定用戶控制權限前,證明網絡或系統上用戶身份的過程。若用戶身份驗證系統存在使用簡易密碼等漏洞,則很容易被非授權用戶猜解,或攻擊者從其他渠道獲取了某系統存儲的大量的用戶密碼對,由于用戶常常在不同的系統中使用相同的身份驗證信息,因此攻擊者可發動撞庫攻擊,爆破登錄口令。這兩種方式都可能導致攻擊者打穿或繞過身份驗證過程,非法獲取系統控制權限。因此,若使用者的密碼設置簡單或在多個系統中使用相同的密碼,則可成為攻擊者的攻擊切入點。

(4)勒索軟件攻擊

勒索軟件(Ransomware)是一種流行的木馬病毒,通過騷擾、恐嚇甚至采用綁架用戶文件等方式,使用戶數據資產或計算資源無法正常使用,并以此為條件向用戶勒索錢財。用戶數據資產包括文檔、郵件、數據庫、源代碼、圖片、壓縮文件等多種文件。贖金形式包括真實貨幣、等價的比特幣或其他虛擬貨幣。

當前勒索軟件攻擊肆虐,甚至已形成了“三重勒索”的攻擊模式。據國家工業信息安全發展研究中心統計,2020年工業領域的勒索軟件攻擊事件共33起,遠超2016—2019年的事件數量總和;近些年針對工業實體的勒索軟件攻擊暴增500%以上,其中,制造業是發生勒索軟件攻擊事件最多的行業,攻擊數量占比高達36%。

2.常見的網絡攻擊過程

攻擊者在掌握對應漏洞的條件下可以發起上述攻擊,但在實際過程中,攻擊者會先實施攻擊目標確認、位置隱藏、威脅信息收集、漏洞掃描、漏洞利用等步驟,為發動攻擊打好基礎,便于其后續實施惡意操作并放大破壞效果。

(1)攻擊目標確認

攻擊者在發起攻擊前,需要先明確攻擊的目標。攻擊的目標主要由中斷、拒絕和操縱組成。

① 中斷:包括畫面中斷和控制中斷。

② 拒絕:包括拒絕接收畫面、拒絕接收控制指令、拒絕接收功能安全指令。

③ 操縱:包括畫面操縱、控制操縱、傳感器與儀器儀表操縱、功能安全操縱。

(2)位置隱藏

發起攻擊前,攻擊者通常會使用如下技術隱藏真實的IP地址,從而規避法律懲罰。

利用被侵入的主機作為跳板。

在安裝Windows的計算機內利用WinGate軟件作為跳板。

利用配置不當的Proxy作為跳板。

更老練的黑客會使用電話轉接技術隱蔽自己。常用的手法包括:利用800號電話的私人轉接服務連接因特網服務提供商(Internet Service Provider,ISP),然后盜用他人的賬號上網;通過電話連接一臺主機,再經由主機連接互聯網。

(3)威脅信息收集

在信息收集階段,攻擊者會從技術上制定滲透計劃,使攻擊行動更具可行性。信息收集的方式主要分為3種。

① 被動收集信息:通過第三方渠道收集信息,完全不與被攻擊對象產生交互,這種信息收集方式安全,但信息不一定完全準確。

② 半主動收集信息:和被攻擊對象交互,但流量是正常的訪問流量,比如正常使用瀏覽器打開被攻擊對象的網頁,這種正常的用戶行為是很難被提前甄別的。

③ 主動收集信息:直接和被攻擊對象交互,如端口掃描、子域名窮舉等,這種行為通常會被入侵檢測系統(Intrusion Detection System,IDS)和防火墻攔截,所以在主動收集信息時最好不要觸發任何報警機制。

通過應用Nmap、Shodan、Burp Suite、sqlmap等收集的信息一般包括如下內容。

通過DNS和IP地址收集目標網絡信息。

Google Hacking查詢子域名、子目錄、敏感文件、通信信息、注入點。

子域名獲取。

收集目錄結構。

端口、服務、指紋識別。

安全漏洞信息等。

(4)漏洞掃描

漏洞是指系統存在的弱點或缺陷,系統對特定威脅攻擊或危險事件的敏感性,或進行攻擊的威脅作用的可能性。漏洞可能來自應用軟件或操作系統設計時的缺陷或編碼時產生的錯誤,也可能來自業務在交互處理過程中的設計缺陷或邏輯流程上的不合理之處。

漏洞掃描與漏洞挖掘是兩個概念,漏洞挖掘一般是指通過模糊測試的方法,構造一系列無規則的“壞”數據“插入”工業控制設備,觀察其運行狀態,以發現潛在的故障。如果故障可被重復利用并能導致控制設備的宕機、DoS等異常現象,則推斷這是一個漏洞,也就是我們常常聞之色變的“零日”漏洞。

但在工業控制系統中,漏洞挖掘會給正在運行的生產過程帶來威脅,因此一般采用漏洞掃描的方式。漏洞掃描能夠把已經公開的漏洞通過漏洞庫信息匹配等已知、確定的方法展現出來。

(5)漏洞利用

這里以經典的、廣泛存在的SQL漏洞利用為例進行介紹。SQL注入是指Web應用程序對用戶輸入數據的合法性沒有進行判斷或過濾不嚴,攻擊者可以在Web應用程序中事先定義好的查詢語句的結尾添加額外的SQL語句,在管理員不知情的情況下實現非法操作,以此欺騙數據庫服務器執行非授權的任意查詢,從而進一步得到相應的數據信息。SQL注入原理如圖1-19所示。

圖1-19 SQL注入原理

sqlmap是一款開源的滲透測試工具,可用于自動化的檢測,利用SQL注入漏洞獲取數據庫服務器的權限。它具有功能強大的檢測引擎,可提供針對各種不同類型數據庫的滲透測試的功能選項,包括獲取數據庫中存儲的數據、訪問操作系統文件,甚至可以通過外帶數據連接的方式執行操作系統的命令。其目前支持的常見的數據庫有MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access等。常用的爆破命令如圖1-20所示。

圖1-20 常用的爆破命令

sqlmap -u "url"結果如圖1-21所示,可以看到,數據庫管理系統的類型為Microsoft Access。sqlmap -u "url" --tables獲取數據庫中的表,如圖1-22所示。sqlmap -u "url" -T表名 --columns 獲取數據庫某個表中的字段,如圖1-23所示。sqlmap -u "url" -T 表名 -C字段名 --dump 獲取表中字段具體的值,如圖1-24所示。

圖1-21 獲取數據庫管理系統類型

圖1-22 獲取數據庫中的表

圖1-23 獲取admin表中的字段

圖1-24 獲取admin表中字段具體的值

防范SQL注入攻擊通常可以采取以下5種措施。

① 定制黑、白名單:將對數據庫的常用請求定制為白名單,一些攻擊頻繁的攻擊限制其為黑名單。

② 限制查詢長度和類型:由于SQL注入過程中需要構造較長的SQL語句,可對不常用的查詢類型進行限制。

③ 數據庫用戶的權限配置:根據程序要求為特定的表設置特定的權限,降低普通用戶的權限,使得攻擊者即便獲取了此賬號信息,也無法進行破壞性操作。

④ 限制目錄權限:管理員在互聯網信息服務中為每個網站設置好執行權限,Web目錄應至少遵循“可寫目錄不可執行,可執行目錄不可寫”的原則,在此基礎上,對各目錄進行必要的權限細化。

⑤ 輸入過濾:在網頁代碼中對用戶輸入的數據進行嚴格過濾,如危險字符過濾或語句過濾。

主站蜘蛛池模板: 贺兰县| 滁州市| 开江县| 葵青区| 汝城县| 广西| 响水县| 东莞市| 丘北县| 陆河县| 靖西县| 乐山市| 赞皇县| 河北区| 基隆市| 延庆县| 五家渠市| 浏阳市| 新丰县| 蒙阴县| 衡山县| 瑞安市| 佛学| 凤城市| 通海县| 涟源市| 建阳市| 河曲县| 阳西县| 精河县| 阿拉善左旗| 盐津县| 南华县| 新源县| 崇礼县| 安福县| 龙陵县| 泽州县| 德化县| 青岛市| 盘锦市|