悟空云課堂丨代碼安全第十九期:用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞

中科天齊傾情打造《悟空云課堂》旨在科普軟件安全相關(guān)知識(shí),助力企業(yè)有效防范軟件安全漏洞,提升網(wǎng)絡(luò)安全防護(hù)能力。本期主題為用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞的相關(guān)介紹。
一、什么是用不安全的授權(quán)創(chuàng)建臨時(shí)文件?
在沒(méi)有適當(dāng)措施或控制的情況下打開(kāi)臨時(shí)文件可能會(huì)使文件、其內(nèi)容和任何受它影響的函數(shù)容易受到攻擊。
二、用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞構(gòu)成條件有哪些?
滿足以下條件,就構(gòu)成了一個(gè)該類型的安全漏洞:
1、使用創(chuàng)建臨時(shí)文件的方法創(chuàng)建了一個(gè)可供所有用戶讀寫(xiě)的臨時(shí)文件;
2、臨時(shí)文件沒(méi)有設(shè)置讀、寫(xiě)、執(zhí)行權(quán)限。
三、用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞會(huì)造成哪些后果?
關(guān)鍵詞:讀取應(yīng)用程序數(shù)據(jù);其他;
1、如果攻擊者可以讀取臨時(shí)文件,則該文件中可能包含敏感信息,這些信息可能會(huì)被泄露;
2、如果攻擊者可以寫(xiě)入該文件,則該文件可能會(huì)移動(dòng)到攻擊者無(wú)法訪問(wèn)的位置。這將使攻擊者可以獲得選擇性的資源訪問(wèn)控制特權(quán);
3、根據(jù)臨時(shí)文件中存儲(chǔ)的數(shù)據(jù),攻擊者可能會(huì)獲得一個(gè)被信任為非惡意的額外輸入向量??梢詫?duì)數(shù)據(jù)結(jié)構(gòu)、用戶信息甚至進(jìn)程所有權(quán)進(jìn)行任意更改。
四、用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞的防范和修補(bǔ)方法有哪些?
1、創(chuàng)建文件后設(shè)置適當(dāng)?shù)奈募?quán)限,使用安全的臨時(shí)文件。臨時(shí)文件應(yīng)該只能由擁有者進(jìn)程寫(xiě)入和讀取;
2、隨機(jī)化臨時(shí)文件名。這也可以通過(guò)使用安全的臨時(shí)文件函數(shù)來(lái)實(shí)現(xiàn),這將確保不會(huì)在可預(yù)測(cè)的位置創(chuàng)建臨時(shí)文件。
五、用不安全的授權(quán)創(chuàng)建臨時(shí)文件漏洞樣例:

用Wukong軟件源代碼靜態(tài)分析工具檢測(cè)上述程序代碼,則可以發(fā)現(xiàn)代碼中存在著“用不安全的授權(quán)創(chuàng)建臨時(shí)文件” 導(dǎo)致的代碼缺陷,如下圖:

Java代碼中使用的createTempFile()方法創(chuàng)建了一個(gè)所有用戶都可讀和可寫(xiě)的臨時(shí)文件,這種方法會(huì)將文件放在默認(rèn)目錄中。在UNIX系統(tǒng)上,默認(rèn)目錄通常是"/tmp"或"/var/tmp",在Windows系統(tǒng)上,默認(rèn)目錄通常是"C:\\Windows\\Temp",攻擊者可能很容易訪問(wèn)此文件,從而可以讀取臨時(shí)文件中包含的潛在敏感信息或修改文件的內(nèi)容。
用不安全的授權(quán)創(chuàng)建臨時(shí)文件在CWE中被編號(hào)為CWE-378: Creation of Temporary File With Insecure Permissions
參讀鏈接:https://www.woocoom.com/b021.html?id=9c97fae5cdbb4ff5bd41503bb8188c7d
