漏洞演算法
1. 安全漏洞的分類
大眾類軟體的漏洞。如Windows的漏洞、IE的漏洞等等。
專用軟體的漏洞。如Oracle漏洞、Apache漏洞等等。 能讀按理不能讀的數據,包括內存中的數據、文件中的數據、用戶輸入的數據、資料庫中的數據、網路上傳輸的數據等等。
能把指定的內容寫入指定的地方(這個地方包括文件、內存、資料庫等)
輸入的數據能被執行(包括按機器碼執行、按Shell代碼執行、按SQL代碼執行等等) 遠程漏洞,攻擊者可以利用並直接通過網路發起攻擊的漏洞。這類漏洞危害極大,攻擊者能隨心所欲的通過此漏洞操作他人的電腦。並且此類漏洞很容易導致蠕蟲攻擊,在Windows。
本地漏洞,攻擊者必須在本機擁有訪問許可權前提下才能發起攻擊的漏洞。比較典型的是本地許可權提升漏洞,這類漏洞在Unix系統中廣泛存在,能讓普通用戶獲得最高管理員許可權。
觸發條件上看可以分為:
主動觸發漏洞,攻擊者可以主動利用該漏洞進行攻擊,如直接訪問他人計算機。
被動觸發漏洞,必須要計算機的操作人員配合才能進行攻擊利用的漏洞。比如攻擊者給管理員發一封郵件,帶了一個特殊的jpg圖片文件,如果管理員打開圖片文件就會導致看圖軟體的某個漏洞被觸發,從而系統被攻擊,但如果管理員不看這個圖片則不會受攻擊。 文件操作類型,主要為操作的目標文件路徑可被控制(如通過參數、配置文件、環境變數、符號鏈接燈),這樣就可能導致下面兩個問題:
寫入內容可被控制,從而可偽造文件內容,導致許可權提升或直接修改重要數據(如修改存貸數據),這類漏洞有很多,如歷史上Oracle TNS LOG文件可指定漏洞,可導致任何人可控制運行Oracle服務的計算機;
內容信息可被輸出,包含內容被列印到屏幕、記錄到可讀的日誌文件、產生可被用戶讀的core文件等等,這類漏洞在歷史上Unix系統中的crontab子系統中出現過很多次,普通用戶能讀受保護的shadow文件;
內存覆蓋,主要為內存單元可指定,寫入內容可指定,這樣就能執行攻擊者想執行的代碼(緩沖區溢出、格式串漏洞、PTrace漏洞、歷史上Windows2000的硬體調試寄存器用戶可寫漏洞)或直接修改內存中的機密數據。
邏輯錯誤,這類漏洞廣泛存在,但很少有範式,所以難以查覺,可細分為:
條件競爭漏洞(通常為設計問題,典型的有Ptrace漏洞、廣泛存在的文件操作時序競爭)
策略錯誤,通常為設計問題,如歷史上FreeBSD的Smart IO漏洞。
演算法問題(通常為設計問題或代碼實現問題),如歷史上微軟的Windows 95/98的共享口令可輕易獲取漏洞。
設計的不完善,如TCP/IP協議中的3步握手導致了SYN FLOOD拒絕服務攻擊。
實現中的錯誤(通常為設計沒有問題,但編碼人員出現了邏輯錯誤,如歷史上博彩系統的偽隨機演算法實現問題)
外部命令執行問題,典型的有外部命令可被控制(通過PATH變數,輸入中的SHELL特殊字元等等)和SQL注入問題。 已發現很久的漏洞:廠商已經發布補丁或修補方法,很多人都已經知道。這類漏洞通常很多人已經進行了修補,宏觀上看危害比較小。
剛發現的漏洞:廠商剛發補丁或修補方法,知道的人還不多。相對於上一種漏洞其危害性較大,如果此時出現了蠕蟲或傻瓜化的利用程序,那麼會導致大批系統受到攻擊。
0day:還沒有公開的漏洞,在私下交易中的。這類漏洞通常對大眾不會有什麼影響,但會導致攻擊者瞄準的目標受到精確攻擊,危害也是非常之大。
2. 最新的後一漏洞計算方法都有哪些
關於子女的撫養教育權,法律明確規定,這是父母的權利和義務,公婆是沒有權力干涉的,但是畢竟都是一家人,公婆也許是為了家庭考慮,好好溝通,沒必要上升到法律高度,如果擔心公婆照顧不好孩子,還是自己帶吧。
13+20=手動輸入:手動輸入:Ⅹ h ⒎、 P Щ!
串並聯電路的電壓規律是電路連接的一種理論知識,分為串聯電路和並聯電路,其中串聯電路的總電壓等於各部分電路兩端電壓之和,在並聯電路中各支路用電器兩端的電壓相等,且等於總電壓。
3. 安全漏洞的常見方法
常見攻擊方法與攻擊過程的簡單描述
系統攻擊是指某人非法使用或破壞某一信息系統中的資源,以及非授權使系統喪失部分或全部服務功能的行為。
通常可以把攻擊活動大致分為遠程攻擊和內部攻擊兩種。隨著互聯網路的進步,其中的遠程攻擊技術得到很大發展,威脅也越來越大,而其中涉及的系統漏洞以及相關的知識也較多,因此有重要的研究價值。
尋找客戶端漏洞
目標:客戶端的漏洞?
客戶端易受攻擊:IE,Outlook,Firefox,MSN,Yahoo etc.
黑客利益的驅使:Botnet,Visa,CD-Key,DDOS etc.
發現漏洞較容易(More 0day?):較容易發現,新的領域
為什麼挖掘圖像格式中的漏洞?
Windows,Linux等操作系統支持多種圖像格式:Bmp, GIF, JPG, ANI, PNG etc.文件格式眾多,代碼復雜易找到漏洞
Windows中很多圖像格式解析的實現方式與開源代碼及其相似,經常發現同一bug;(Why?)
黑客們並沒有在每種格式中發現漏洞,沒有足夠的「eyes」關注
從安全人員的角度:
格式眾多,演算法復雜容易出現漏洞
影響范圍極廣跨應用跨平台,例如:
Windows 平台上任何解析jpg 的應用,office,outlook,IE...GDIPLUS.dll
Windows 內核實現對Ani 的支持,通過ie 不需要用戶互動操作。誰會懷疑網頁上的指針文件?
PNG Msn, libpng 很多開源軟體
隱蔽性嚴重威脅用戶安全
從黑客的角度:
如果利用圖像格式觸發的漏洞,會降低了受害者的警覺性,易利用社會工程學。蠕蟲傳播可能利用一些非常容易讓人警惕的文件格式,但我們討論的是圖片格式jgp, png, ani...不容易讓人引起懷疑
多種攻擊媒介,利於黑客攻擊:通過網頁,郵件可以穿越防火牆的保護,IDS不易檢查,需要對各種格式,協議進行解析才能檢查出漏洞攻擊。
圖像的基本格式
流格式由很多段構成,段裡面又由標記,參數(漏洞點),數據段構成
還可能有段裡面再嵌套段(漏洞點)
Gif,Ani可能包含很多幀,刷新率,幀的索引(漏洞點)
可能會有標記圖形模式的bit-map,可能會有邏輯上的錯誤png
JPG格式中的漏洞
先來一個實際的例子:
GDIPlus.DLL漏洞MS04-028 Nick DeBaggis
影響巨大,攻擊很多
漏洞產生原因:
JPEG格式中的注釋段(COM)由0xFFFE開始(標記)+2位元組得注釋段位元組數(參數) +注釋(數據)構成。因為位元組數這個參數值包含了本身所佔的2位元組,所以GDIPLUS.dll在解析jpg格式文件中的注釋段時會把這個值減去2,如果這個值設置成0,1就會產生整數溢出。
JPG格式中的漏洞
是不是覺得很相似?
2000 Solar Designer 發現了Netscape 瀏覽器的JPEG 解析漏洞,與Nick DeBaggis 發現的漏洞原理是相同的。
另一個相似的例子
Stefan Esser發現的XBOX Dashboard local vulnerability,該漏洞存在於XBOX Dashboard對.wav格式和.xtf格式文件的解析上,雖然說不是圖形格式但漏洞原理卻相同。
細節:同樣存在一個size參數這次是它本身的大小是4位元組,所以當size值為0-3時就會發生整數溢出。
疑問:為什麼有些人從偶blog轉文章就不寫出處呢 也算是我翻來搜去搞來的文章呀bY FIRef0x
疑問:為什麼會一再出現同類型的漏洞?
是否程序員們從概念上忽略了某些問題?
為什麼都是整數溢出漏洞?
此類漏洞的本質是什麼?
是否還有這種漏洞?
問題的本質
這些文件格式是由很多「段」構成的數據流,而每個段由:標記,參數,數據等結構構成,在程序解析這些文件格式的時候會依據「標記」來確認段,並讀勸參數」 進行一定的運算,再依據這些參數來處理隨後緊跟的「數據」。以上提到的幾個漏洞的產生原因就是在對參數進行運算的時候相信了文件輸入的參數沒有進行確認而導致的。
思維擴展
不要相信用戶的輸入,同樣不要相信文件的輸入;
包括標記,錯誤的標記也會導致問題
包括參數,詳細檢查輸入參數
包括數據,數據裡面可能還嵌套著另一個「段」
思維擴展的結果
Venustech AD-Lab:Windows LoadImage API Integer Buffer overflow
影響極為廣泛: bmp,cur,ico,ani格式的文件都受影響。
描述:
WINDOWS的USER32庫的LoadImage系統API 存在著整數溢出觸發的緩沖區溢出漏洞,這個API允許載入一個bmp,cur,ico,ani格式的圖標來進行顯示,並根據圖片格式里說明的大小加4來進行數據的拷貝,如果將圖片格式里說明的大小設置為0xfffffffc-0xffffffff,則將觸發整數溢出導致堆緩沖區被覆蓋。攻擊者可以構造惡意的bmp,cur,ico,ani格式的文件,嵌入到HTML頁面,郵件中,發送給被攻擊者,成功利用該漏洞則可以獲得系統的許可權。
LoadImage API 整數溢出漏洞分析
代碼:
.text:77D56178 mov eax, [ebx+8] //Direct read our size here:P
.text:77D5617B mov [ebp+dwResSize], eax
.text:77D5617E jnz short loc_77D56184
.text:77D56180 add [ebp+dwResSize], 4 //add 4 int overflow...
.text:77D56184
.text:77D56184 loc_77D56184: ; CODE XREF: sub_77D5608F+EF_j
.text:77D56184 push [ebp+dwResSize] //allocate a wrong size
.text:77D56187 push 0
.text:77D56189 push dword_77D5F1A0
.text:77D5618F call ds:RtlAllocateHeap
總結:轉換思路後找到這個加4的漏洞,同樣的類型,信任「文件」輸入。
思維擴展的結果
EEYE 2004:Windows ANI File Parsing Buffer Overflow
堆棧漏洞極易利用,攻擊方法隱蔽。
原理:
相信「 文件」 輸入參數,沒做檢查直接用作memcpy 的參數。
PNG漏洞,不同的模式
邏輯問題1:
EEYE PNG (Portable Network Graphics) Deflate Heap Corruption Vulnerability
原因:對 Length 碼 #286 and #287沒有做正確的處理,導致解壓程序認為長度是0
do { *dest = *src; ++dest; ++src; } while (--len);
邏輯問題2:libPNG 1.2.5堆棧溢出
代碼:
if (!(png_ptr->mode & PNG_HAVE_PLTE)) {
/* Should be an error, but we can cope with it */
g_warning(png_ptr, Missing PLTE before tRNS); }
else if (length > (png_uint_32)png_ptr->num_palette) {
g_warning(png_ptr, Incorrect tRNS chunk length);
g_crc_finish(png_ptr, length);
return;
}
分析:代碼編寫的邏輯錯誤,錯誤的使用了else if.
相似漏洞:MSN png 漏洞,Media player png 漏洞
邏輯問題的總結
非常容易出現在復雜的文件格式處理中
容易出現在壓縮,解壓代碼中:需要處理很多長度,大小相關的參數。
這種漏洞不一定是緩沖區溢出,也可能是越界訪問等等
想像漏洞
發現漏洞有時候是一種想像的過程
例子1:
Venustech ADLab:Microsoft Windows Kernel ANI File Parsing Crash Vulnerability
介紹:ANI是WINDOWS 支持的動畫游標格式,在ANI是由多個普通的游標文件組成一個動畫,其中ANI文件的頭處會標記是幾個圖標frame,WINDOWS 的內核在顯示游標的時候並未對該值進行檢查,如果將這個數字設置為0,會導致受影響的WINDOWS系統計算出錯誤的游標的地址並加以訪問,觸發了內核的藍屏崩潰。不僅僅是應用使用ANI文件時會觸發,只要在EXPLORER下打開ANI文件存在的目錄就會觸發。攻擊者也可以發送游標的文件,引誘用戶訪問含有惡意游標顯示的頁面,以及發送嵌入游標的HTML郵件,導致被攻擊者系統藍屏崩潰。
原理:在計算frame地址的時候失敗。
例子2:
Venustech ADLab:Microsoft Windows Kernel ANI File Parsing DOS Vulnerability
介紹:ANI是WINDOWS 2000支持的動畫游標格式,在ANI是由多個普通的游標件組成一個動畫,其中ANI文件的頭處會標記每FRAME切換的頻率,該值越小切換的速度越快,WINDOWS 的內核在切換游標FRAME的時候並未對該值進行檢查,如果將這個數字設置為0,受影響的WINDOWS的內核會陷入內核的死鎖,不再響應任何用戶界面的操作。該漏洞觸發必須要在使用ANI文件的應用中才能觸發,攻擊者引誘用戶訪問含有惡意游標顯示的頁面,以及發送嵌入游標的HTML郵件,導致被攻擊者系統內核死瑣。
原因:沒有考慮刷新頻率是0的情況。
總結
下溢:Size參數小於自身所佔大小
上溢:Size加上一個正整數值產生上溢
直接作為參數輸入memcpy類函數
非法參數導致地址訪問越界
多種邏輯上的錯誤
充分發揮想像:刷新率?
總結
安全提示:
文件格式是攻擊者的另一種輸入渠道,同樣不要信任從文件讀取的數據
解析文件格式時應該對參數進行充分的檢查
同樣需要想像力,需要考慮到每種可能的情況
4. 什麼是代碼漏洞
這都是緩沖區溢出攻擊,是由於程序代碼的漏洞引起得,緩沖區溢出是指當計算機向緩沖區內填充數據位數時超過了緩沖區本身的容量溢出的數據覆蓋在合法數據上,理想的情況是程序檢查數據長度並不允許輸入超過緩沖區長度的字元,但是絕大多數程序都會假設數據長度總是與所分配的儲存空間相匹配,這就為緩沖區溢出埋下隱患.
如ms08004就是遠程執行漏洞,ms就是microsoft,08年4日的補丁,黑客通過快速的反匯編手段,知道漏洞的地方,然後製作針對的工具,用來抓肉雞。通常方法有掛馬個掃雞。
而本地溢出攻擊一般用在入侵伺服器中的提權,也就是本地提升伺服器許可權。如ms08025,就可以通過黑客精心構造的代碼,執行cmd命令,添加超級管理員!
5. android惡意代碼和漏洞檢測有什麼演算法
初始化向量(IV,Initialization Vector)是許多工作模式中用於隨機化加密的一塊數據,因此可以由相同的明文,相同的密鑰產生不同的密文,而無需重新產生密鑰,避免了通常相當復雜的這一過程。
密碼塊鏈接(CBC,Cipher-block chaining)模式。在CBC模式中,每個明文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條消息的唯一性,在第一個塊中需要使用初始化向量。
6. 常見的幾種SSL/TLS漏洞及攻擊方式
SSL/TLS漏洞目前還是比較普遍的,首先關閉協議:SSL2、SSL3(比較老的SSL協議)配置完成ATS安全標准就可以避免以下的攻擊了,最新的伺服器環境都不會有一下問題,當然這種漏洞都是自己部署證書沒有配置好導致的。
Export 加密演算法
Export是一種老舊的弱加密演算法,是被美國法律標示為可出口的加密演算法,其限制對稱加密最大強度位數為40位,限制密鑰交換強度為最大512位。這是一個現今被強制丟棄的演算法。
Downgrade(降級攻擊)
降級攻擊是一種對計算機系統或者通信協議的攻擊,在降級攻擊中,攻擊者故意使系統放棄新式、安全性高的工作方式,反而使用為向下兼容而准備的老式、安全性差的工作方式,降級攻擊常被用於中間人攻擊,講加密的通信協議安全性大幅削弱,得以進行原本不可能做到的攻擊。 在現代的回退防禦中,使用單獨的信號套件來指示自願降級行為,需要理解該信號並支持更高協議版本的伺服器來終止協商,該套件是TLS_FALLBACK_SCSV(0x5600)
MITM(中間人攻擊)
MITM(Man-in-the-MiddleAttack) ,是指攻擊者與通訊的兩端分別創建獨立的聯系,並交換其所有收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個對話都被攻擊者完全控制,在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。一個中間人攻擊能成功的前提條件是攻擊者能夠將自己偽裝成每個參與會話的終端,並且不被其他終端識破。
BEAST(野獸攻擊)
BEAST(CVE-2011-3389) BEAST是一種明文攻擊,通過從SSL/TLS加密的會話中獲取受害者的COOKIE值(通過進行一次會話劫持攻擊),進而篡改一個加密演算法的 CBC(密碼塊鏈)的模式以實現攻擊目錄,其主要針對TLS1.0和更早版本的協議中的對稱加密演算法CBC模式。
RC4 加密演算法
由於早期的BEAST野獸攻擊而採用的加密演算法,RC4演算法能減輕野獸攻擊的危害,後來隨著客戶端版本升級,有了客戶端緩解方案(Chrome 和 Firefox 提供了緩解方案),野獸攻擊就不是什麼大問題了。同樣這是一個現今被強制丟棄的演算法。
CRIME(罪惡攻擊)
CRIME(CVE-2012-4929),全稱Compression Ratio Info-leak Made Easy,這是一種因SSL壓縮造成的安全隱患,通過它可竊取啟用數據壓縮特性的HTTPS或SPDY協議傳輸的私密Web Cookie。在成功讀取身份驗證Cookie後,攻擊者可以實行會話劫持和發動進一步攻擊。
SSL 壓縮在下述版本是默認關閉的: nginx 1.1.6及更高/1.0.9及更高(如果使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(如果使用較舊版本的 OpenSSL)。
如果你使用一個早期版本的 nginx 或 OpenSSL,而且你的發行版沒有向後移植該選項,那麼你需要重新編譯沒有一個 ZLIB 支持的 OpenSSL。這會禁止 OpenSSL 使用 DEFLATE 壓縮方式。如果你禁用了這個,你仍然可以使用常規的 HTML DEFLATE 壓縮。
Heartbleed(心血漏洞)
Heartbleed(CVE-2014-0160) 是一個於2014年4月公布的 OpenSSL 加密庫的漏洞,它是一個被廣泛使用的傳輸層安全(TLS)協議的實現。無論是伺服器端還是客戶端在 TLS 中使用了有缺陷的 OpenSSL,都可以被利用該缺陷。由於它是因 DTLS 心跳擴展(RFC 6520)中的輸入驗證不正確(缺少了邊界檢查)而導致的,所以該漏洞根據「心跳」而命名。這個漏洞是一種緩存區超讀漏洞,它可以讀取到本不應該讀取的數據。如果使用帶缺陷的Openssl版本,無論是伺服器還是客戶端,都可能因此受到攻擊。
POODLE漏洞(捲毛狗攻擊)
2014年10月14號由Google發現的POODLE漏洞,全稱是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被稱為「貴賓犬攻擊」(CVE-2014-3566),POODLE漏洞只對CBC模式的明文進行了身份驗證,但是沒有對填充位元組進行完整性驗證,攻擊者竊取採用SSL3.0版加密通信過程中的內容,對填充位元組修改並且利用預置填充來恢復加密內容,以達到攻擊目的。
TLS POODLE(TLS捲毛狗攻擊)
TLS POODLE(CVE-2014-8730) 該漏洞的原理和POODLE漏洞的原理一致,但不是SSL3協議。由於TLS填充是SSLv3的一個子集,因此可以重新使用針對TLS的POODLE攻擊。TLS對於它的填充格式是非常嚴格的,但是一些TLS實現在解密之後不執行填充結構的檢查。即使使用TLS也不會容易受到POODLE攻擊的影響。
CCS
CCS(CVE-2014-0224) 全稱openssl MITM CCS injection attack,Openssl 0.9.8za之前的版本、1.0.0m之前的以及1.0.1h之前的openssl沒有適當的限制ChangeCipherSpec信息的處理,這允許中間人攻擊者在通信之間使用0長度的主密鑰。
FREAK
FREAK(CVE-2015-0204) 客戶端會在一個全安全強度的RSA握手過程中接受使用弱安全強度的出口RSA密鑰,其中關鍵在於客戶端並沒有允許協商任何出口級別的RSA密碼套件。
Logjam
Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密鑰交換協議的 TLS 連接很容易受到攻擊,尤其是DH密鑰中的公鑰強度小於1024bits。中間人攻擊者可將有漏洞的 TLS 連接降級至使用 512 位元組導出級加密。這種攻擊會影響支持 DHE_EXPORT 密碼的所有伺服器。這個攻擊可通過為兩組弱 Diffie-Hellman 參數預先計算 512 位元組質數完成,特別是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。
DROWN(溺水攻擊/溺亡攻擊)
2016年3月發現的針對TLS的新漏洞攻擊——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用過時的、弱化的一種RSA加密演算法來解密破解TLS協議中被該演算法加密的會話密鑰。 具體說來,DROWN漏洞可以利用過時的SSLv2協議來解密與之共享相同RSA私鑰的TLS協議所保護的流量。 DROWN攻擊依賴於SSLv2協議的設計缺陷以及知名的Bleichenbacher攻擊。
通常檢查以下兩點伺服器的配置
伺服器允許SSL2連接,需要將其關閉。
私鑰同時用於允許SSL2連接的其他伺服器。例如,Web伺服器和郵件伺服器上使用相同的私鑰和證書,如果郵件伺服器支持SSL2,即使web伺服器不支持SSL2,攻擊者可以利用郵件伺服器來破壞與web伺服器的TLS連接。
aNULL 包含了非驗證的 Diffie-Hellman 密鑰交換,這會受到中間人(MITM)攻擊
eNULL 包含了無加密的演算法(明文)
EXPORT 是老舊的弱加密演算法,是被美國法律標示為可出口的
RC4 包含的加密演算法使用了已棄用的 ARCFOUR 演算法
DES 包含的加密演算法使用了棄用的數據加密標准(DES)
SSLv2 包含了定義在舊版本 SSL 標准中的所有演算法,現已棄用
MD5 包含了使用已棄用的 MD5 作為哈希演算法的所有演算法
Openssl Padding Oracle
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h之前沒有考慮某些填充檢查期間的內存分配,這允許遠程攻擊者通過針對AES CBC會話的padding-oracle攻擊來獲取敏感的明文信息。
強制丟棄的演算法
7. 漏洞檢測的幾種方法
漏洞掃描有以下四種檢測技術:
1.基於應用的檢測技術。它採用被動的、非破壞性的辦法檢查應用軟體包的設置,發現安全漏洞。
2.基於主機的檢測技術。它採用被動的、非破壞性的辦法對系統進行檢測。通常,它涉及到系統的內核、文件的屬性、操作系統的補丁等。這種技術還包括口令解密、把一些簡單的口令剔除。因此,這種技術可以非常准確地定位系統的問題,發現系統的漏洞。它的缺點是與平台相關,升級復雜。
3.基於目標的漏洞檢測技術。它採用被動的、非破壞性的辦法檢查系統屬性和文件屬性,如資料庫、注冊號等。通過消息文摘演算法,對文件的加密數進行檢驗。這種技術的實現是運行在一個閉環上,不斷地處理文件、系統目標、系統目標屬性,然後產生檢驗數,把這些檢驗數同原來的檢驗數相比較。一旦發現改變就通知管理員。
4.基於網路的檢測技術。它採用積極的、非破壞性的辦法來檢驗系統是否有可能被攻擊崩潰。它利用了一系列的腳本模擬對系統進行攻擊的行為,然後對結果進行分析。它還針對已知的網路漏洞進行檢驗。網路檢測技術常被用來進行穿透實驗和安全審記。這種技術可以發現一系列平台的漏洞,也容易安裝。但是,它可能會影響網路的性能。
網路漏洞掃描
在上述四種方式當中,網路漏洞掃描最為適合我們的Web信息系統的風險評估工作,其掃描原理和工作原理為:通過遠程檢測目標主機TCP/IP不同埠的服務,記錄目標的回答。通過這種方法,可以搜集到很多目標主機的各種信息(例如:是否能用匿名登錄,是否有可寫的FTP目錄,是否能用Telnet,httpd是否是用root在運行)。
在獲得目標主機TCP/IP埠和其對應的網路訪問服務的相關信息後,與網路漏洞掃描系統提供的漏洞庫進行匹配,如果滿足匹配條件,則視為漏洞存在。此外,通過模擬黑客的進攻手法,對目標主機系統進行攻擊性的安全漏洞掃描,如測試弱勢口令等,也是掃描模塊的實現方法之一。如果模擬攻擊成功,則視為漏洞存在。
在匹配原理上,網路漏洞掃描器採用的是基於規則的匹配技術,即根據安全專家對網路系統安全漏洞、黑客攻擊案例的分析和系統管理員關於網路系統安全配置的實際經驗,形成一套標準的系統漏洞庫,然後再在此基礎之上構成相應的匹配規則,由程序自動進行系統漏洞掃描的分析工作。
所謂基於規則是基於一套由專家經驗事先定義的規則的匹配系統。例如,在對TCP80埠的掃描中,如果發現/cgi-bin/phf/cgi-bin/Count.cgi,根據專家經驗以及CGI程序的共享性和標准化,可以推知該WWW服務存在兩個CGI漏洞。同時應當說明的是,基於規則的匹配系統有其局限性,因為作為這類系統的基礎的推理規則一般都是根據已知的安全漏洞進行安排和策劃的,而對網路系統的很多危險的威脅是來自未知的安全漏洞,這一點和PC殺毒很相似。
這種漏洞掃描器是基於瀏覽器/伺服器(B/S)結構。它的工作原理是:當用戶通過控制平台發出了掃描命令之後,控制平台即向掃描模塊發出相應的掃描請求,掃描模塊在接到請求之後立即啟動相應的子功能模塊,對被掃描主機進行掃描。通過分析被掃描主機返回的信息進行判斷,掃描模塊將掃描結果返回給控制平台,再由控制平台最終呈現給用戶。
另一種結構的掃描器是採用插件程序結構。可以針對某一具體漏洞,編寫對應的外部測試腳本。通過調用服務檢測插件,檢測目標主機TCP/IP不同埠的服務,並將結果保存在信息庫中,然後調用相應的插件程序,向遠程主機發送構造好的數據,檢測結果同樣保存於信息庫,以給其他的腳本運行提供所需的信息,這樣可提高檢測效率。如,在針對某FTP服務的攻擊中,可以首先查看服務檢測插件的返回結果,只有在確認目標主機伺服器開啟FTP服務時,對應的針對某FTP服務的攻擊腳本才能被執行。採用這種插件結構的掃描器,可以讓任何人構造自己的攻擊測試腳本,而不用去了解太多掃描器的原理。這種掃描器也可以用做模擬黑客攻擊的平台。採用這種結構的掃描器具有很強的生命力,如著名的Nessus就是採用這種結構。這種網路漏洞掃描器的結構如圖2所示,它是基於客戶端/伺服器(C/S)結構,其中客戶端主要設置伺服器端的掃描參數及收集掃描信息。具體掃描工作由伺服器來完成。
8. RC4的漏洞
由於RC4演算法加密是採用的xor,所以,一旦子密鑰序列出現了重復,密文就有可能被破解。關於如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節Simple XOR,在此我就不細說了。那麼,RC4演算法生成的子密鑰序列是否會出現重復呢?由於存在部分弱密鑰,使得子密鑰序列在不到100萬位元組內就發生了完全的重復,如果是部分重復,則可能在不到10萬位元組內就能發生重復,因此,推薦在使用RC4演算法時,必須對加密密鑰進行測試,判斷其是否為弱密鑰。其不足主要體現於,在無線網路中IV(初始化向量)不變性漏洞。
而且,根據目前的分析結果,沒有任何的分析對於密鑰長度達到128位的RC4有效,所以,RC4是目前最安全的加密演算法之一,大家可以放心使用!
分布式代碼管理網站Github從2015年1月5日將停止對RC4的支持,RC4作為一種老舊的驗證和加密演算法易於受到黑客攻擊。這意味著,用戶在使用Windows XP系統上的IE瀏覽器時將無法進入github.com網站
9. MD5演算法的漏洞誰知道
不是漏洞,而是能被破解。相關資料如下2004年8月17日的美國加州聖巴巴拉的國際密碼學會議(Crypto』2004)上,來自中國山東大學的王小雲教授做了破譯MD5、HAVAL-128、 MD4和RIPEMD演算法的報告,公布了MD系列演算法的破解結果。宣告了固若金湯的世界通行密碼標准MD5的堡壘轟然倒塌,引發了密碼學界的軒然大波。
令世界頂尖密碼學家想像不到的是,破解MD5之後,2005年2月,王小雲教授又破解了另一國際密碼SHA-1。因為SHA-1在美國等國際社會有更加廣泛的應用,密碼被破的消息一出,在國際社會的反響可謂石破天驚。換句話說,王小雲的研究成果表明了從理論上講電子簽名可以偽造,必須及時添加限制條件,或者重新選用更為安全的密碼標准,以保證電子商務的安全。
MD5破解工程權威網站是為了公開徵集專門針對MD5的攻擊而設立的,網站於2004年8月17日宣布:「中國研究人員發現了完整MD5演算法的碰撞;Wang, Feng, Lai與Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128幾個 Hash函數的碰撞。這是近年來密碼學領域最具實質性的研究進展。使用他們的技術,在數個小時內就可以找到MD5碰撞。……由於這個里程碑式的發現,MD5CRK項目將在隨後48小時內結束」。
在2004年8月之前,國際密碼學界對王小雲這個名字並不熟悉。2004年8月,在美國加州聖芭芭拉召開的國際密碼大會上,並沒有被安排發言的王小雲教授拿著自己的研究成果找到會議主席,沒想到慧眼識珠的會議主席破例給了她15分鍾時間來介紹自己的成果,而通常發言人只被允許有兩三分鍾的時間。王小雲及其研究同工展示了MD5、SHA-0及其他相關雜湊函數的雜湊沖撞。所謂雜湊沖撞指兩個完全不同的訊息經雜湊函數計算得出完全相同的雜湊值。根據鴿巢原理,以有長度限制的雜湊函數計算沒有長度限制的訊息是必然會有沖撞情況出現的。可是,一直以來,電腦保安專家都認為要任意製造出沖撞需時太長,在實際情況上不可能發生,而王小雲等的發現可能會打破這個必然性。就這樣,王小雲在國際會議上首次宣布了她及她的研究小組近年來的研究成果——對MD4、MD5、HAVAL-128和RIPEMD等四個著名密碼演算法的破譯結果。
在公布到第三個成果的時候,會場上已經是掌聲四起,報告不得不一度中斷。報告結束後,所有與會專家對他們的突出工作報以長時間的掌聲,有些學者甚至起立鼓掌以示他們的祝賀和敬佩。由於版本問題,作者在提交會議論文時使用的一組常數和先行標准不同,在發現這一問題之後,王小雲教授立即改變了那個常數,在很短的時間內就完成了新的數據分析,這段有驚無險的小插曲更證明了他們論文的信服力,攻擊方法的有效性,驗證了研究工作的成功。
令世界頂尖密碼學家想像不到的是,破解MD5之後,2005年2月,王小雲與其同事提出SHA-1雜湊函數的雜湊沖撞。因為SHA-1在美國等國際社會有更加廣泛的應用,密碼被破的消息一出,在國際社會的反響可謂石破天驚。換句話說,王小雲的研究成果表明了從理論上講電子簽名可以偽造,必須及時添加限制條件,或者重新選用更為安全的密碼標准,以保證電子商務的安全。
2005年8月,王小雲、姚期智,以及姚期智妻子姚儲楓(即為Knuth起名高德納的人)聯手於國際密碼討論年會尾聲部份提出SHA-1雜湊函數雜湊沖撞演演算法的改良版。此改良版使破解SHA-1時間縮短。
2006年6月8日,王小雲教授於中國科學院第13次院士大會和中國工程院第8次院士大會上以「國際通用Hash函數的破解」獲頒陳嘉庚科學獎信息技術科學獎。 能破解這個的沒多少人.....何況這等工程是有多麻煩