當前位置:
首頁 > 最新 > 從CNVD-2017-17486的發現談此類常見漏洞的原理及防護

從CNVD-2017-17486的發現談此類常見漏洞的原理及防護

日前由安華金和攻防實驗室發現並提交的國產資料庫漏洞,獲國家信息安全漏洞平台CNVD確認,編號CNVD-2017-17486。

CNVD-2017-17486

漏洞類型:緩衝區溢出漏洞

威脅程度:中危

漏洞描述:允許攻擊者利用漏洞,通過程序創建表空間文件時,指定路徑名過長導致資料庫崩潰。

漏洞危害:一旦被利用,將可能導致資料庫宕機,或被攻擊者取得資料庫操作系統的用戶許可權,從而對系統所在的網路發起攻擊。

CNVD-2017-17486是一個標準的堆棧溢出漏洞,屬於緩衝區溢出漏洞的重要分支,此類漏洞比較常見,影響範圍和危害也會比較廣泛,如果出現在資料庫等基礎應用中,導致資料庫服務中斷,將引發整個業務的癱瘓。

由於此類漏洞的出現範圍較廣,我們除了及時發現漏洞,更應該通過分析漏洞形成原理、作用機制及可能引發的風險,找到可行的防範手段。

緩衝區溢出有多大危害?

緩衝區溢出漏洞是一種古老、危害範圍大、常見於c代碼中的軟體漏洞,在各種操作系統、應用軟體中廣泛存在,資料庫系統中同樣常見。利用緩衝區溢出攻擊,可以導致程序運行失敗、系統宕機、重新啟動等後果。更為嚴重的是,攻擊者可以利用它執行非授權指令,甚至取得系統特權,進而實行攻擊行為。

緩衝區溢出漏洞最早在20世紀80年代初被發現,第一次重大事件是1988年爆發的Morris蠕蟲。該蠕蟲病毒利用fingerd的緩衝區溢出漏洞進行攻擊,最終導致6000多台機器被感染,造成直接經濟損失100萬美金。隨後,衍生而出的Ramen 蠕蟲、sircam蠕蟲、sql slammer蠕蟲等品種逐漸出現,每一類蠕蟲都對整個互聯網造成了嚴重的安全影響,造成高額的經濟損失。

堆棧溢出是如何形成的?

簡單來說,堆棧溢出就是把大緩衝區中的數據向小緩衝區中複製,由於沒有關注小緩衝區的邊界,「撐爆」了較小的緩衝區,從而衝掉了小緩衝區和鄰內區域的其他數據而引起的內存問題。在具體描述堆棧溢出之前我們先來了解一下Linux程序在內存中的結構:

其中共享區也稱為data區,用來存儲可執行代碼;.text和.bss均用來存儲程序的全局變數和初始化變數;堆則不隨函數消亡而消亡,而是直到程序消亡或手動釋放才會消亡;堆棧是隨著函數分配並消亡的,堆棧溢出就是出現在堆棧區中的緩衝區安全問題。

堆棧是一個後進先出(LIFO)數據結構,往低地址增長,它保存本地變數、函數調用等信息。隨著函數調用層數的增加,棧幀會向低地址方向延伸;隨著進程中函數調用層數的減少,即各函數的返回,棧幀會一塊一塊地被遺棄而向內存的高地址方向回縮。各函數的棧幀大小隨著函數的性質不同而不等。

堆棧這種數據結構,常見操作有壓棧(PUSH)、彈棧(POP);用於標識棧的屬性有:棧頂(TOP)、棧底(BASE)。

其中:

PUSH:為棧增加一個元素的操作叫做PUSH,相當於插入一塊;

POP:從棧中取出一個元素的操作叫做POP;

TOP:TOP標識棧頂的位置,且是動態變化的,每做一次PUSH操作,它會自+1;每做一次POP操作,它會自-1;

BASE:BASE標識棧底位置,用於防止棧空後繼續彈棧,一般來說BASE位置不發生改變。

下面以mian函數疊加A和B函數為例說明整個壓棧和彈棧過程:

Main函數調用A函數,把A函數中的變數添加到堆棧區內,開闢大小和變數指定大小相關。同樣B函數在被調用後也會把變數添加到堆棧區內,開闢指定大小空間給B區域變數使用。

如果其中任意一個變數存入的值超過設計的界定,就會導致值覆蓋其他變數的區域最終污染到函數返回地址區域。一旦函數的返回地址被污染,在進行彈棧的過程中會最終把跳轉的地址指向黑客所指定的區域,或根本不存在的區域。

如果覆蓋函數返回地址的是一組隨機值,則程序會跳轉到未知位置,這種情況往往最終會導致整個程序崩潰。

如果黑客構造足夠精細的shellcode,把跳轉地址指向黑客自己注入的代碼,則很可能會利用該漏洞獲得當前用戶的控制許可權。

幾個可行的防護建議

堆棧溢出漏洞是c 代碼的一種常見安全漏洞。防護的方法可以從多個角度來加強。

1

使用自動化工具進行掃描檢測,排查是否存在緩衝區溢出漏洞;但需要注意的是需要使用面向不同系統的掃描工具,沒有一個檢查工具可以支持所有基礎應用的掃描。

2

加強相關程序員的代碼能力,做好相應的長度限制工作,從代碼級別進行防範。

3

避免使用原C庫中那些可能存在緩衝區溢出隱患的函數,使用增強後的函數,這樣此漏洞出現的幾率會相對低一些。


點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 安華金和 的精彩文章:

TAG:安華金和 |

您可能感興趣

ESET工作站防護版 v6.6.2078.5 及激活工具
小米9推送MIUI 10.9.4.17內測版:新增WiFi探針防護
【每日說明書 , 第995期】SK-II 輕潤凈透空氣防護乳 30g
英國4架價值1億英鎊F-35戰機 僅由1.5米木柵欄防護
正面防護1000毫米以上!中國99A坦克的這項數據,霸氣了!
穿甲彈防護超800毫米,速度70公里每時,可越2.5米壕溝
小米一加看懵 首款國產驍龍845機型來了:支持IP68級防護
中國海洋腐蝕每年損失7000億 如防護到位可減損1/3
《F1 2018》新預告 「人字拖」Halo防護系統矚目
LG兩款三防機型K40s/K50s將至,防護級別極高
比利時CMI公司將於2019年底完成第2代「庫克里爾」防護武器站的測試
99A坦克防護力1000毫米,那麼炮塔正面裝甲真有1米厚嗎?
360 N7 Pro今日開售,專業定製安全防護讓用戶放心
俄羅斯SPM-2輕裝甲車VS中國CSK181防護突擊車
2018紅點設計概念獎--安全防護類獲獎作品
99A坦克防護能力超過1000毫米 當今沒有穿甲彈能打穿
16小時續航+安全防護:松下發布 Toughbook CF-20三防二合一筆記本
2021年奧迪和保時捷的個人防護裝備平台首次推出EV
SK-II 輕潤凈透空氣防護乳 30g
六大安全防護,航嘉安全插座滿39.9減5