原文:race condition vulnerability譯者:飛龍
假設上面的程式執行的非常慢。執行程式中的每行語句需要一分鐘。請思考下列問題:
攻擊策略:
回到現實:這個程式執行得很快,並且我們沒有一分鐘時間間隔。我們可以做什麼?
競態條件攻擊
提高成功率:競態條件攻擊的最關鍵步驟,出現在 toctou 間隔中。由於我們不能修改漏洞程式,我們可以做的只有讓我們的攻擊程式和目標程式一起執行。並希望鏈結的時機正好就在間隔之內。不幸的是,我們不能完成完美的時間規劃。因此,攻擊是否成功是個概率。攻擊成功的概率可能很低,如果間隔很小。我們如何提公升概率呢?
另乙個例子(set-uid 程式):
file = "/tmp/x";
fileexist = check_file_existence(file);
if (fileexist == false)
為什麼存在漏洞?
使用原子操作
檢查-使用-再檢查方式
檢查-使用-重複方式:在幾個迭代內重複訪問和開啟。在下面的示例中,攻擊者需要贏得五個競態條件(1~2,2~3,3~4,4~5,5~6):
基於最小許可權原則:1: if (access("tmp/x", o_rdwr)) goto error handling
2: else f1 = open("/tmp/x", o_rdwr);
3: if (access("tmp/x", o_rdwr)) goto error handling
4: else f2 = open("/tmp/x", o_rdwr);
5: if (access("tmp/x", o_rdwr)) goto error handling
6: else f3 = open("/tmp/x", o_rdwr);
// check whether f1, f2, and f3 has the same i-node (using fstat)
雪城大學資訊保安講義 4 1 4 2
原文 buffer over ow vulnerabilities and attacks 譯者 飛龍 這個講義的 區域 area 和 段 segment 與多數教程正好相反,譯文中已更正。在 pc 架構中,程式中有四個基本讀寫段 棧 資料 bss 和堆。資料 bss 以及堆區可統稱為 資料區域 在...
雪城大學資訊保安講義 二 Unix 安全概覽
原文 unix security basics 譯者 飛龍 使用者需要使用密碼登入。加密的密碼儲存在 etc shadow。使用者資訊儲存在 etc passwd,之前 不再 用於儲存密碼的地方。下面是這個檔案的乙個條目的示例 john x 30000 40000 john doe home joh...
雪城大學資訊保安講義 一 引言
原文 overview of computer security 譯者 飛龍 優秀的安全專業人員擁有兩個重要的技能 1 安全的感知,以及 2 安全原則的知識。我希望完成這門課的學生可以擁有二者。擁有不意味著 知道 它意味著能夠應用這些技能。配置計算機系統時的風險 開發計算機系統時的風險 安全的感知 ...