程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞

zktq2021發表於2021-06-15

一、什麼是用不安全的授權建立臨時檔案?

在沒有適當措施或控制的情況下開啟臨時檔案可能會使檔案、其內容和任何受它影響的函式容易受到攻擊。

二、用不安全的授權建立臨時檔案漏洞構成條件有哪些?

滿足以下條件,就構成了一個該型別的安全漏洞:

1、使用建立臨時檔案的方法建立了一個可供所有使用者讀寫的臨時檔案;

2、臨時檔案沒有設定讀、寫、執行許可權。

三、用不安全的授權建立臨時檔案漏洞會造成哪些後果?

關鍵詞:讀取應用程式資料;其他;

1、如果攻擊者可以讀取臨時檔案,則該檔案中可能包含敏感資訊,這些資訊可能會被洩露;

2、如果攻擊者可以寫入該檔案,則該檔案可能會移動到攻擊者無法訪問的位置。這將使攻擊者可以獲得選擇性的資源訪問控制特權;

3、根據臨時檔案中儲存的資料,攻擊者可能會獲得一個被信任為非惡意的額外輸入向量。可以對資料結構、使用者資訊甚至程式所有權進行任意更改。

四、用不安全的授權建立臨時檔案漏洞的防範和修補方法有哪些?

1、建立檔案後設定適當的檔案許可權,使用安全的臨時檔案。臨時檔案應該只能由擁有者程式寫入和讀取;

2、隨機化臨時檔名。這也可以透過使用安全的臨時檔案函式來實現,這將確保不會在可預測的位置建立臨時檔案。

五、用不安全的授權建立臨時檔案漏洞樣例:

用悟空 靜態程式碼檢測工具分析上述程式程式碼,則可以發現程式碼中存在著“用不安全的授權建立臨時檔案” 導致的 程式碼缺陷,如下圖:

Java程式碼中使用的createTempFile()方法建立了一個所有使用者都可讀和可寫的臨時檔案,這種方法會將檔案放在預設目錄中。在UNIX系統上,預設目錄通常是"/tmp"或"/var/tmp",在Windows系統上,預設目錄通常是"C:\\Windows\\Temp",攻擊者可能很容易訪問此檔案,從而可以讀取臨時檔案中包含的潛在敏感資訊或修改檔案的內容。

用不安全的授權建立臨時檔案在CWE中被編號為CWE-378: Creation of Temporary File With Insecure Permissions


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2776727/,如需轉載,請註明出處,否則將追究法律責任。

相關文章