日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

软件漏洞的主要来源

發(fā)布時間:2024/1/4 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 软件漏洞的主要来源 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

沒有一款軟件或平臺敢說自己是絕對安全的。

軟件漏洞永遠存在,我們的目的是通過細致的軟件設(shè)計,良好的編碼,發(fā)現(xiàn)漏洞后快速的響應(yīng)來盡量減少軟件漏洞的產(chǎn)生,以及降低漏洞被利用后所帶來的危害。

下面介紹一下iOS中(當(dāng)然也適用于其他平臺)中幾種常見的漏洞的來源。

一:緩沖區(qū)溢出(buffer overflows)

緩沖區(qū)溢出是軟件安全漏洞的主要來源。所謂緩沖區(qū)溢出,指的就是代碼寫入的數(shù)據(jù)超過了緩沖區(qū)的邊界,比如向大小10KB的緩沖區(qū)寫如12KB的數(shù)據(jù),那么這個緩沖就溢出了。當(dāng)然,前向溢出也算溢出,也就是寫入的數(shù)據(jù)寫入到了緩沖區(qū)的起始邊界之前。

緩沖區(qū)溢出是一種比較常見的編碼錯誤,特別是在字符串處理過程中。緩沖區(qū)造成的危害也是比較多樣的。比較輕微的就是程序直接崩潰,除了用戶體驗也沒什么大損失;比較嚴重的就是錯誤的寫入覆蓋了其他敏感數(shù)據(jù),造成數(shù)據(jù)的丟失;最嚴重的莫過于執(zhí)行惡意代碼,因為數(shù)據(jù)寫入越界,惡意代碼可以將原先正常的函數(shù)返回地址修改為自己的代碼,從而獲得整個軟件的執(zhí)行權(quán)。

緩沖區(qū)溢出根據(jù)溢出的內(nèi)存類型分為:

棧溢出(stackoverflow)

棧內(nèi)的數(shù)據(jù)溢出。

堆溢出(heap overflow)

堆內(nèi)的數(shù)據(jù)溢出,

根據(jù)溢出的類型可分為overflow及underflow

overflow,寫入的數(shù)據(jù)超過了緩沖的邊界
underflow, 緩沖中有用數(shù)據(jù)的大小小于緩沖區(qū)長度,這有可能造成臟數(shù)據(jù)的問題

二:未驗證輸入(Unvalidated Input)

一款應(yīng)用往往需要接收各種各樣的輸入,針對一款iOS應(yīng)用,主要的輸入有讀取文件,讀取用戶輸入,讀取網(wǎng)絡(luò)傳輸數(shù)據(jù),或通過URL被啟動(URL Schema)。各種類型的輸入都有可能是非法的,甚至是惡意的,所以針對所有類型的輸入,應(yīng)用都要進行檢驗,確保輸入的數(shù)據(jù)是符合程序要求的,合理的,合法的數(shù)據(jù)。
非法輸入可能造成的危害主要有:

輸入的數(shù)據(jù)大于接收緩沖,會造成緩沖溢出
格式化字符串注入,對這些字符串進行處理時,如果不小心會造成程序的崩潰,或某些敏感數(shù)據(jù)被篡改
URLSchema中的命令為惡意命令,執(zhí)行了惡意的命令
代碼注入,輸入的URL或命令中帶有腳本、代碼等惡意片段

三:競爭條件(Race Condtions)


如果一個任務(wù)的完成需要幾個特定的子任務(wù)以特定的順序完成來完成,那么這個任務(wù)就是存在競爭條件這個漏洞的。黑客可以通過修改事件完成的順序來改變應(yīng)用的行為。
競爭條件類型的漏洞主要有以下兩種:

Time of Check Versus Time of Use (TOCTOU)

應(yīng)用運行的過程中,在某個操作之前,比如寫文件,都會檢查一下文件是否存在,在檢查與真正的寫入之間的間隔就是一個可以被利用的Race Condition,惡意軟件可以將用戶檢查的文件替換成自己的文件,這樣數(shù)據(jù)就泄露了。

Signal Handling

處理信號的過程中,是隨時可以被另一個信號的處理打斷的,如果在處理一個信號的過程中另一個信號到來,那么這個過程會被馬上中斷,這樣,系統(tǒng)就會處于一種未知的狀態(tài)。


四:進程間通信(Interprocess Communication)
進程間通信采用的方法很多,共享內(nèi)存,管道,油槽等,由于通信管道兩端的應(yīng)用的不同,那么,有可能存在這鐘管道被惡意利用的肯能性,也就是說,進程間通信也是軟件漏洞的一個來源,當(dāng)與另一個應(yīng)用通信的時候,要默認此應(yīng)用是不安全的,要對通信的內(nèi)容進行安全方面的驗證。

五:不安全的文件操作(Insecure File Operation)
應(yīng)用對文件進行處理時,若果沒有進行進行有效的驗證,那么有可能處理的文件已經(jīng)是被惡意軟件修改過的,是不安全的。所以,進行有效的驗證是安全處理文件的重要保證。不安全文件操作類型有以幾種:

讀取或?qū)懭胍粋€位于其他應(yīng)用也擁有讀寫權(quán)限路徑下的文件。
對文件信息,例如權(quán)限等信息沒有進行有效驗證便進行處理。
對文件操作的返回結(jié)果沒有進行有效利用
假定一個擁有本地文件名的文件就是真正的本地文件。

六:權(quán)限控制問題(Access Control)

很多情況下,權(quán)限控制是安全機制保證的核心,同時也是漏洞的主要來源。每個應(yīng)用都有與其匹配的權(quán)限,應(yīng)用申請的權(quán)限應(yīng)該物盡其用,不能申請超過自身需求的權(quán)限,而很多的軟件漏洞就是因為應(yīng)用申請了超過自身需求的權(quán)限,比如root權(quán)限,然后被惡意軟件利用,也就有了對整個系統(tǒng)執(zhí)行所有操作的權(quán)限。
很多情況下,對權(quán)限的申請進行驗證是明智的選擇,例如輸入用戶名及密碼來提升權(quán)限。注意,在采用驗證機制時,最好使用系統(tǒng)內(nèi)置的權(quán)限驗證方法,而不是自己取實現(xiàn),這里需要額外提一下,權(quán)限控制是操作系統(tǒng)級別的,當(dāng)硬件設(shè)備被控制時,各種權(quán)限的控制也就顯得無力,這種情況下,數(shù)據(jù)的加密保護就顯現(xiàn)出了其價值。

七:文件的安全存儲與加密(Secure Storage and Encryption)
iOS系統(tǒng)提供了多種機制保證用戶的數(shù)據(jù)安全,具體細節(jié)在我的另一篇譯文:iOS安全機制概覽中有較詳細的描述,這里不在重復(fù),不過有一點需要額外說明,安全機制方面盡量使用系統(tǒng)自帶的機制,在安全性與可靠性上,系統(tǒng)提供機制往往比自身實現(xiàn)的加密保護機制要可靠的多。

八:社會工程(Social Engineering)
用戶往往是安全保證機制中那薄弱的一環(huán)。即使提供再強大的安全保全機制,如果用戶安全意識薄弱,同樣會出現(xiàn)問題。很簡單的例子,比如用戶將密碼設(shè)置的非常復(fù)雜,服務(wù)器端數(shù)據(jù)庫的安全保證也很周全,黑客完全無法通過技術(shù)手段竊取用戶密碼,可黑客一個偽裝客服的電話就完全有可能將用戶的密碼從用戶的口中騙取到。這就是所謂的“社會工程”. 在界面,使用習(xí)慣上教育,引導(dǎo)用戶進行安全的操作,也是軟件設(shè)計的重中之重

from:https://blog.csdn.net/hnjyzqq/article/details/43328427

總結(jié)

以上是生活随笔為你收集整理的软件漏洞的主要来源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。