常見(jiàn)的操作系統(tǒng)漏洞有哪些怎么解決
再?gòu)?qiáng)大再安全的操作系統(tǒng),也會(huì)出現(xiàn)一些漏洞從而被病毒攻擊。那么如何解決漏洞被攻擊的問(wèn)題呢?下面由小編整理了常見(jiàn)的操作系統(tǒng)漏洞及解決方法,希望對(duì)你有幫助。
常見(jiàn)的操作系統(tǒng)漏洞及解決方法
常見(jiàn)的操作系統(tǒng)漏洞一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡(jiǎn)稱注入攻擊、SQL注入,被廣泛用于非法獲取網(wǎng)站控制權(quán),是發(fā)生在應(yīng)用程序的數(shù)據(jù)庫(kù)層上的安全漏洞。在設(shè)計(jì)程序,忽略了對(duì)輸入字符串中夾帶的SQL指令的檢查,被數(shù)據(jù)庫(kù)誤認(rèn)為是正常的SQL指令而運(yùn)行,從而使數(shù)據(jù)庫(kù)受到攻擊,可能導(dǎo)致數(shù)據(jù)被竊取、更改、刪除,以及進(jìn)一步導(dǎo)致網(wǎng)站被嵌入惡意代碼、被植入后門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請(qǐng)求,也包括GET請(qǐng)求;
(2)URL參數(shù)提交,主要為GET請(qǐng)求參數(shù);
(3)Cookie參數(shù)提交;
(4)HTTP請(qǐng)求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點(diǎn),比如.mp3文件的一些文件信息等。
SQL注入的危害不僅體現(xiàn)在數(shù)據(jù)庫(kù)層面上,還有可能危及承載數(shù)據(jù)庫(kù)的操作系統(tǒng);如果SQL注入被用來(lái)掛馬,還可能用來(lái)傳播惡意軟件等,這些危害包括但不局限于:
(1)數(shù)據(jù)庫(kù)信息泄漏:數(shù)據(jù)庫(kù)中存放的用戶的隱私信息的泄露。作為數(shù)據(jù)的存儲(chǔ)中心,數(shù)據(jù)庫(kù)里往往保存著各類的隱私信息,SQL注入攻擊能導(dǎo)致這些隱私信息透明于攻擊者。
(2)網(wǎng)頁(yè)篡改:通過(guò)操作數(shù)據(jù)庫(kù)對(duì)特定網(wǎng)頁(yè)進(jìn)行篡改。
(3)網(wǎng)站被掛馬,傳播惡意軟件:修改數(shù)據(jù)庫(kù)一些字段的值,嵌入網(wǎng)馬鏈接,進(jìn)行掛馬攻擊。
(4)數(shù)據(jù)庫(kù)被惡意操作:數(shù)據(jù)庫(kù)服務(wù)器被攻擊,數(shù)據(jù)庫(kù)的系統(tǒng)管理員帳戶被篡改。
(5)服務(wù)器被遠(yuǎn)程控制,被安裝后門。經(jīng)由數(shù)據(jù)庫(kù)服務(wù)器提供的操作系統(tǒng)支持,讓黑客得以修改或控制操作系統(tǒng)。
(6)破壞硬盤數(shù)據(jù),癱瘓全系統(tǒng)。
解決SQL注入問(wèn)題的關(guān)鍵是對(duì)所有可能來(lái)自用戶輸入的數(shù)據(jù)進(jìn)行嚴(yán)格的檢查、對(duì)數(shù)據(jù)庫(kù)配置使用最小權(quán)限原則。 通常使用的方案有:
(1)所有的查詢語(yǔ)句都使用數(shù)據(jù)庫(kù)提供的參數(shù)化查詢接口,參數(shù)化的語(yǔ)句使用參數(shù)而不是將用戶輸入變量嵌入到SQL語(yǔ)句中。當(dāng)前幾乎所有的數(shù)據(jù)庫(kù)系統(tǒng)都提供了參數(shù)化SQL語(yǔ)句執(zhí)行接口,使用此接口可以非常有效的防止SQL注入攻擊。
(2)對(duì)進(jìn)入數(shù)據(jù)庫(kù)的特殊字符('"\<>&*;等)進(jìn)行轉(zhuǎn)義處理,或編碼轉(zhuǎn)換。
(3)確認(rèn)每種數(shù)據(jù)的類型,比如數(shù)字型的數(shù)據(jù)就必須是數(shù)字,數(shù)據(jù)庫(kù)中的存儲(chǔ)字段必須對(duì)應(yīng)為int型。
(4)數(shù)據(jù)長(zhǎng)度應(yīng)該嚴(yán)格規(guī)定,能在一定程度上防止比較長(zhǎng)的SQL注入語(yǔ)句無(wú)法正確執(zhí)行。
(5)網(wǎng)站每個(gè)數(shù)據(jù)層的編碼統(tǒng)一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導(dǎo)致一些過(guò)濾模型被繞過(guò)。
(6)嚴(yán)格限制網(wǎng)站用戶的數(shù)據(jù)庫(kù)的操作權(quán)限,給此用戶提供僅僅能夠滿足其工作的權(quán)限,從而最大限度的減少注入攻擊對(duì)數(shù)據(jù)庫(kù)的危害。
(7)避免網(wǎng)站顯示SQL錯(cuò)誤信息,比如類型錯(cuò)誤、字段不匹配等,防止攻擊者利用這些錯(cuò)誤信息進(jìn)行一些判斷。
(8)在網(wǎng)站發(fā)布之前建議使用一些專業(yè)的SQL注入檢測(cè)工具進(jìn)行檢測(cè),及時(shí)修補(bǔ)這些SQL注入漏洞。
常見(jiàn)的操作系統(tǒng)漏洞二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡(jiǎn)稱為XSS)發(fā)生在客戶端,可被用于進(jìn)行竊取隱私、釣魚(yú)欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術(shù)主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對(duì)WEB服務(wù)器雖無(wú)直接危害,但是它借助網(wǎng)站進(jìn)行傳播,使網(wǎng)站的使用用戶受到攻擊,導(dǎo)致網(wǎng)站用戶帳號(hào)被竊取,從而對(duì)網(wǎng)站也產(chǎn)生了較嚴(yán)重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型??缯敬a一般存在于鏈接中,請(qǐng)求這樣的鏈接時(shí),跨站代碼經(jīng)過(guò)服務(wù)端反射回來(lái),這類跨站的代碼不存儲(chǔ)到服務(wù)端(比如數(shù)據(jù)庫(kù)中)。上面章節(jié)所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲(chǔ)于服務(wù)端(比如數(shù)據(jù)庫(kù)中)。常見(jiàn)情況是某用戶在論壇發(fā)貼,如果論壇沒(méi)有過(guò)濾用戶輸入的Javascript代碼數(shù)據(jù),就會(huì)導(dǎo)致其他瀏覽此貼的用戶的瀏覽器會(huì)執(zhí)行發(fā)貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發(fā)生在客戶端DOM(Document Object Model文檔對(duì)象模型)中的跨站漏洞,很大原因是因?yàn)榭蛻舳四_本處理邏輯導(dǎo)致的安全問(wèn)題。
XSS的危害包括:
(1)釣魚(yú)欺騙:最典型的就是利用目標(biāo)網(wǎng)站的反射型跨站腳本漏洞將目標(biāo)網(wǎng)站重定向到釣魚(yú)網(wǎng)站,或者注入釣魚(yú)JavaScript以監(jiān)控目標(biāo)網(wǎng)站的表單輸入,甚至發(fā)起基于DHTML更高級(jí)的釣魚(yú)攻擊方式。
(2)網(wǎng)站掛馬:跨站時(shí)利用IFrame嵌入隱藏的惡意網(wǎng)站或者將被攻擊者定向到惡意網(wǎng)站上,或者彈出惡意網(wǎng)站窗口等方式都可以進(jìn)行掛馬攻擊。
(3)身份盜用:Cookie是用戶對(duì)于特定網(wǎng)站的身份驗(yàn)證標(biāo)志,XSS可以盜取到用戶的Cookie,從而利用該Cookie盜取用戶對(duì)該網(wǎng)站的操作權(quán)限。如果一個(gè)網(wǎng)站管理員用戶Cookie被竊取,將會(huì)對(duì)網(wǎng)站引發(fā)巨大的危害。
(4)盜取網(wǎng)站用戶信息:當(dāng)能夠竊取到用戶Cookie從而獲取到用戶身份使,攻擊者可以獲取到用戶對(duì)網(wǎng)站的操作權(quán)限,從而查看用戶隱私信息。
(5)垃圾信息發(fā)送:比如在SNS社區(qū)中,利用XSS漏洞借用被攻擊者的身份發(fā)送大量的垃圾信息給特定的目標(biāo)群。
(6)劫持用戶Web行為:一些高級(jí)的XSS攻擊甚至可以劫持用戶的Web行為,監(jiān)視用戶的瀏覽歷史,發(fā)送與接收的數(shù)據(jù)等等。
(7)XSS蠕蟲(chóng):XSS 蠕蟲(chóng)可以用來(lái)打廣告、刷流量、掛馬、惡作劇、破壞網(wǎng)上數(shù)據(jù)、實(shí)施DDoS攻擊等。
常用的防止XSS技術(shù)包括:
(1)與SQL注入防護(hù)的建議一樣,假定所有輸入都是可疑的,必須對(duì)所有輸入中的script、iframe等字樣進(jìn)行嚴(yán)格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請(qǐng)求中的Cookie中的變量,HTTP請(qǐng)求頭部中的變量等。
(2)不僅要驗(yàn)證數(shù)據(jù)的類型,還要驗(yàn)證其格式、長(zhǎng)度、范圍和內(nèi)容。
(3)不要僅僅在客戶端做數(shù)據(jù)的驗(yàn)證與過(guò)濾,關(guān)鍵的過(guò)濾步驟在服務(wù)端進(jìn)行。
(4)對(duì)輸出的數(shù)據(jù)也要檢查,數(shù)據(jù)庫(kù)里的值有可能會(huì)在一個(gè)大網(wǎng)站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點(diǎn)時(shí)也要進(jìn)行安全檢查。
(5)在發(fā)布應(yīng)用程序之前測(cè)試所有已知的威脅。
常見(jiàn)的操作系統(tǒng)漏洞三、弱口令漏洞
弱口令(weak password) 沒(méi)有嚴(yán)格和準(zhǔn)確的定義,通常認(rèn)為容易被別人(他們有可能對(duì)你很了解)猜測(cè)到或被解除工具解除的口令均為弱口令。設(shè)置密碼通常遵循以下原則:
(1)不使用空口令或系統(tǒng)缺省的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長(zhǎng)度不小于8個(gè)字符。
(3)口令不應(yīng)該為連續(xù)的某個(gè)字符(例如:AAAAAAAA)或重復(fù)某些字符的組合(例如:tzf.tzf.)。
(4)口令應(yīng)該為以下四類字符的組合,大寫字母(A-Z)、小寫字母(a-z)、數(shù)字(0-9)和特殊字符。每類字符至少包含一個(gè)。如果某類字符只包含一個(gè),那么該字符不應(yīng)為首字符或尾字符。
(5)口令中不應(yīng)包含本人、父母、子女和配偶的姓名和出生日期、紀(jì)念日期、登錄名、E-mail地址等等與本人有關(guān)的信息,以及字典中的單詞。
(6)口令不應(yīng)該為用數(shù)字或符號(hào)代替某些字母的單詞。
(7)口令應(yīng)該易記且可以快速輸入,防止他人從你身后很容易看到你的輸入。
(8)至少90天內(nèi)更換一次口令,防止未被發(fā)現(xiàn)的入侵者繼續(xù)使用該口令。
常見(jiàn)的操作系統(tǒng)漏洞四、HTTP報(bào)頭追蹤漏洞
HTTP/1.1(RFC2616)規(guī)范定義了HTTP TRACE方法,主要是用于客戶端通過(guò)向Web服務(wù)器提交TRACE請(qǐng)求來(lái)進(jìn)行測(cè)試或獲得診斷信息。當(dāng)Web服務(wù)器啟用TRACE時(shí),提交的請(qǐng)求頭會(huì)在服務(wù)器響應(yīng)的內(nèi)容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認(rèn)證信息。攻擊者可以利用此漏洞來(lái)欺騙合法用戶并得到他們的私人信息。該漏洞往往與其它方式配合來(lái)進(jìn)行有效攻擊,由于HTTP TRACE請(qǐng)求可以通過(guò)客戶瀏覽器腳本發(fā)起(如XMLHttpRequest),并可以通過(guò)DOM接口來(lái)訪問(wèn),因此很容易被攻擊者利用。
防御HTTP報(bào)頭追蹤漏洞的方法通常禁用HTTP TRACE方法。
常見(jiàn)的操作系統(tǒng)漏洞五、Struts2遠(yuǎn)程命令執(zhí)行漏洞
Apache Struts是一款建立Java web應(yīng)用程序的開(kāi)放源代碼架構(gòu)。Apache Struts存在一個(gè)輸入過(guò)濾錯(cuò)誤,如果遇到轉(zhuǎn)換錯(cuò)誤可被利用注入和執(zhí)行任意Java代碼。
網(wǎng)站存在遠(yuǎn)程代碼執(zhí)行漏洞的大部分原因是由于網(wǎng)站采用了Apache Struts Xwork作為網(wǎng)站應(yīng)用框架,由于該軟件存在遠(yuǎn)程代碼執(zhí)高危漏洞,導(dǎo)致網(wǎng)站面臨安全風(fēng)險(xiǎn)。CNVD處置過(guò)諸多此類漏洞,例如:“GPS車載衛(wèi)星定位系統(tǒng)”網(wǎng)站存在遠(yuǎn)程命令執(zhí)行漏洞(CNVD-2012-13934);Aspcms留言本遠(yuǎn)程代碼執(zhí)行漏洞(CNVD-2012-11590)等。
修復(fù)此類漏洞,只需到Apache官網(wǎng)升級(jí)Apache Struts到最新版本:http://struts.apache.org
常見(jiàn)的操作系統(tǒng)漏洞六、框架釣魚(yú)漏洞(框架注入漏洞)
框架注入攻擊是針對(duì)Internet Explorer 5、Internet Explorer 6、與 Internet Explorer 7攻擊的一種。這種攻擊導(dǎo)致Internet Explorer不檢查結(jié)果框架的目的網(wǎng)站,因而允許任意代碼像Javascript或者VBScript跨框架存取。這種攻擊也發(fā)生在代碼透過(guò)多框架注入,肇因于腳本并不確認(rèn)來(lái)自多框架的輸入。這種其他形式的框架注入會(huì)影響所有的不確認(rèn)不受信任輸入的各廠商瀏覽器和腳本。
如果應(yīng)用程序不要求不同的框架互相通信,就可以通過(guò)完全刪除框架名稱、使用匿名框架防止框架注入。但是,因?yàn)閼?yīng)用程序通常都要求框架之間相互通信,因此這種方法并不可行。 因此,通常使用命名框架,但在每個(gè)會(huì)話中使用不同的框架,并且使用無(wú)法預(yù)測(cè)的名稱。一種可行的方法是在每個(gè)基本的框架名稱后附加用戶的會(huì)話令牌,如main_display。
常見(jiàn)的操作系統(tǒng)漏洞七、文件上傳漏洞
文件上傳漏洞通常由于網(wǎng)頁(yè)代碼中的文件上傳路徑變量過(guò)濾不嚴(yán)造成的,如果文件上傳功能實(shí)現(xiàn)代碼沒(méi)有嚴(yán)格限制用戶上傳的文件后綴以及文件類型,攻擊者可通過(guò) Web 訪問(wèn)的目錄上傳任意文件,包括網(wǎng)站后門文件(webshell),進(jìn)而遠(yuǎn)程控制網(wǎng)站服務(wù)器。
因此,在開(kāi)發(fā)網(wǎng)站及應(yīng)用程序過(guò)程中,需嚴(yán)格限制和校驗(yàn)上傳的文件,禁止上傳惡意代碼的文件。同時(shí)限制相關(guān)目錄的執(zhí)行權(quán)限,防范webshell攻擊。
常見(jiàn)的操作系統(tǒng)漏洞八、應(yīng)用程序測(cè)試腳本泄露
由于測(cè)試腳本對(duì)提交的參數(shù)數(shù)據(jù)缺少充分過(guò)濾,遠(yuǎn)程攻擊者可以利用洞以WEB進(jìn)程權(quán)限在系統(tǒng)上查看任意文件內(nèi)容。防御此類漏洞通常需嚴(yán)格過(guò)濾提交的數(shù)據(jù),有效檢測(cè)攻擊。
常見(jiàn)的操作系統(tǒng)漏洞九、私有IP地址泄露漏洞
IP地址是網(wǎng)絡(luò)用戶的重要標(biāo)示,是攻擊者進(jìn)行攻擊前需要了解的。獲取的方法較多,攻擊者也會(huì)因不同的網(wǎng)絡(luò)情況采取不同的方法,如:在局域網(wǎng)內(nèi)使用Ping指令,Ping對(duì)方在網(wǎng)絡(luò)中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲并分析對(duì)方的網(wǎng)絡(luò)數(shù)據(jù)包。攻擊者可以找到并直接通過(guò)軟件解析截獲后的數(shù)據(jù)包的IP包頭信息,再根據(jù)這些信息了解具體的IP。
針對(duì)最有效的“數(shù)據(jù)包分析方法”而言,就可以安裝能夠自動(dòng)去掉發(fā)送數(shù)據(jù)包包頭IP信息的一些軟件。不過(guò)使用這些軟件有些缺點(diǎn),譬如:耗費(fèi)資源嚴(yán)重,降低計(jì)算機(jī)性能;訪問(wèn)一些論壇或者網(wǎng)站時(shí)會(huì)受影響;不適合網(wǎng)吧用戶使用等等?,F(xiàn)在的個(gè)人用戶采用最普及隱藏IP的方法應(yīng)該是使用代理,由于使用代理服務(wù)器后,“轉(zhuǎn)址服務(wù)”會(huì)對(duì)發(fā)送出去的數(shù)據(jù)包有所修改,致使“數(shù)據(jù)包分析”的方法失效。一些容易泄漏用戶IP的網(wǎng)絡(luò)軟件(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用“ezProxy”等代理軟件連接后,IP版的QQ都無(wú)法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過(guò)代理,查找到對(duì)方的真實(shí)IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
常見(jiàn)的操作系統(tǒng)漏洞十、未加密登錄請(qǐng)求
由于Web配置不安全,登陸請(qǐng)求把諸如用戶名和密碼等敏感字段未加密進(jìn)行傳輸,攻擊者可以竊聽(tīng)網(wǎng)絡(luò)以劫獲這些敏感信息。建議進(jìn)行例如SSH等的加密后再傳輸。
常見(jiàn)的操作系統(tǒng)漏洞十一、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導(dǎo)致敏感信息泄露,攻擊者可以通過(guò)漏洞獲得敏感信息。針對(duì)不同成因,防御方式不同。