偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

避免十大常見(jiàn)網(wǎng)絡(luò)應(yīng)用程序安全錯(cuò)誤

安全 數(shù)據(jù)安全
如果測(cè)試網(wǎng)絡(luò)應(yīng)用程序的安全問(wèn)題就像寫(xiě)文章那樣簡(jiǎn)單,那么世界會(huì)變得多么美好。最近,有人要求我給出一個(gè)網(wǎng)絡(luò)應(yīng)用程序常見(jiàn)安全錯(cuò)誤的清單。這項(xiàng)工作很簡(jiǎn)單,下面是我常見(jiàn)到的“陷阱(gotchas)”......

如果測(cè)試網(wǎng)絡(luò)應(yīng)用程序的安全問(wèn)題就像寫(xiě)文章那樣簡(jiǎn)單,那么世界會(huì)變得多么美好。最近,有人要求我給出一個(gè)網(wǎng)絡(luò)應(yīng)用程序常見(jiàn)安全錯(cuò)誤的清單。這項(xiàng)工作很簡(jiǎn)單,下面是我常見(jiàn)到的“陷阱(gotchas)”:

1. 盲目信任通過(guò)cookie傳遞的信息以及通過(guò)URL傳遞的參數(shù)

2. 不檢查屏幕輸入

3. 預(yù)驗(yàn)證(Pre-validation)帳號(hào)

4. 無(wú)約束的用戶登錄

5. 網(wǎng)絡(luò)文件夾訪問(wèn)權(quán)限設(shè)置錯(cuò)誤

6. 緩沖敏感信息

7. 安裝Web server demo

8. 忘記修改后端數(shù)據(jù)庫(kù)的默認(rèn)口令

9. 忘記安裝安全補(bǔ)丁

10. 開(kāi)放網(wǎng)絡(luò)管理端口

下面是前五個(gè)常見(jiàn)錯(cuò)誤的簡(jiǎn)要介紹:

信任,但也要驗(yàn)證

“信任,但也要驗(yàn)證(Trust but verify)”是我最喜歡的座右銘之一。網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)師和程序員應(yīng)該很好的實(shí)踐這句座右銘。盡管cookie和URL參數(shù)大大簡(jiǎn)化了開(kāi)發(fā)者的工作,但我們不應(yīng)該忘記驗(yàn)證它們所傳遞數(shù)據(jù)的有效性。

許多網(wǎng)絡(luò)商務(wù)平臺(tái)從臭名昭著的“購(gòu)物車漏洞(shopping cart vulnerability)”學(xué)會(huì)了這個(gè),網(wǎng)上小偷可以通過(guò)這個(gè)漏洞來(lái)修改購(gòu)物車中的商品價(jià)格。而購(gòu)物車本身不過(guò)是一個(gè)基于文本的cookie而已。服務(wù)器在檢驗(yàn)之后,會(huì)合計(jì)保存在cookie中的條目?jī)r(jià)格。設(shè)想一下:客戶完全控制了價(jià)格,這種情況會(huì)有多可怕。更糟糕的是,服務(wù)器沒(méi)有驗(yàn)證數(shù)據(jù)的手段。我敢肯定,許多網(wǎng)絡(luò)商務(wù)經(jīng)歷了更嚴(yán)重的沖擊。

檢查這個(gè)問(wèn)題的最好方法就是清除所有的cookie,運(yùn)行應(yīng)用程序,并看看寫(xiě)到磁盤(pán)中的cookie。我總是看看cookie的內(nèi)容,這樣可以避免敏感的信息(例如任務(wù)(role)甚至用戶id和口令)沒(méi)有保存到cookie中。

命令可以等同于控制

我曾經(jīng)看到過(guò)這樣一個(gè)系統(tǒng),它通過(guò)URL傳遞的參數(shù)來(lái)進(jìn)行程序控制。當(dāng)我查看它的源代碼后,我注意到了一個(gè)普通線程,系統(tǒng)級(jí)的命令用如下形式嵌入到URL中:“action=’do something’”。

在測(cè)試過(guò)程中,我編寫(xiě)了一對(duì)自定義URL來(lái)看看系統(tǒng)是如何處理它們的。不出所料,通過(guò)我在URL中嵌入的命令(“action=’cat xxx>>/etc/passwd’”)我獲得了系統(tǒng)的控制權(quán)。

概括的說(shuō):如果你通過(guò)URL欄來(lái)傳遞參數(shù),那么你至少應(yīng)當(dāng)解析它的無(wú)效內(nèi)容和惡意內(nèi)容。你最好對(duì)URL參數(shù)設(shè)置約束,這樣當(dāng)傳遞來(lái)的參數(shù)值在意料之外時(shí),你的程序依然可以處理它。測(cè)試你的程序是否存在這個(gè)問(wèn)題也很容易——修改URL欄中的地址,然后看看你的應(yīng)用程序是如何處理這個(gè)數(shù)據(jù)的。

千萬(wàn)不要忘了驗(yàn)證數(shù)據(jù)有效性

在測(cè)試網(wǎng)絡(luò)應(yīng)用程序的過(guò)程中,我經(jīng)常會(huì)發(fā)現(xiàn)不驗(yàn)證輸入數(shù)據(jù)有效性的字段,它們簡(jiǎn)直就是緩沖區(qū)溢出和SQL injection攻擊者的金礦。測(cè)試時(shí),我會(huì)打開(kāi)記事本并創(chuàng)建一個(gè)長(zhǎng)度超過(guò)500的字符串,然后把它剪切拷貝到口令輸入框中。如果系統(tǒng)沒(méi)有限制輸入字符串的長(zhǎng)度,那么它往往會(huì)掛起或者崩潰。

然后我將測(cè)試驗(yàn)證規(guī)則,我會(huì)把一個(gè)總是等于“真”(例如“OR ‘x’=’x’”)的條件語(yǔ)句附加到口令輸入框中。由于通過(guò)這種方法,SQL語(yǔ)句已經(jīng)建立,因此許多系統(tǒng)都會(huì)被操控,從而允許未授權(quán)的訪問(wèn)——許多系統(tǒng)都會(huì)被這種“OR TRUE”語(yǔ)句所欺騙。下面是可以用來(lái)控制系統(tǒng)的SQL語(yǔ)句的例子:

Select userid, passwd from USERS where userid = :uid_entered and passwd = pwd_entered

假設(shè)用戶在useid字段中鍵入“admin”,在口令欄中鍵入“OR ‘x’=’x’”,那么這個(gè)SQL語(yǔ)句就會(huì)解釋為“select userid, passwd from USERS where userid=admin and passwd=password OR 'x'='x'”,設(shè)計(jì)者可能會(huì)沒(méi)有預(yù)料到這種情況的出現(xiàn)。

歡迎毯下的鑰匙

另一個(gè)常見(jiàn)的錯(cuò)誤就是把系統(tǒng)帳號(hào)作為應(yīng)用程序數(shù)據(jù)庫(kù)的預(yù)驗(yàn)證帳號(hào),我常常對(duì)這中錯(cuò)誤出現(xiàn)的頻率之高感到吃驚。許多網(wǎng)絡(luò)應(yīng)用程序把用戶憑證(也就是用戶名和口令)保存到自己的數(shù)據(jù)庫(kù)中。在驗(yàn)證用戶憑證的有效性之前,你必須登錄到數(shù)據(jù)庫(kù),因此,系統(tǒng)一般用一種我稱之為“預(yù)驗(yàn)證登錄帳號(hào)”的方法來(lái)處理驗(yàn)證;例如,當(dāng)以“admin/admin”登錄系統(tǒng)時(shí),就會(huì)驗(yàn)證屏幕輸入與數(shù)據(jù)庫(kù)中保存的用戶名和口令是否相匹配。

#p#

值得注意的是,我發(fā)現(xiàn)每個(gè)預(yù)驗(yàn)證登錄帳號(hào)總是管理員類型的帳號(hào),這些帳號(hào)具有最大權(quán)限。使得情況更具有風(fēng)險(xiǎn)性的是:為了讓網(wǎng)絡(luò)應(yīng)用程序可以訪問(wèn)帳號(hào)和口令,數(shù)據(jù)庫(kù)一般保存到Webroot目錄中或者起始頁(yè)(start page)下的目錄中。無(wú)論是上述兩種情況下的哪一種,惡意用戶都能很容易獲得口令。這種情況非常像把房門(mén)鑰匙藏在歡迎毯下,或者把備用的車鑰匙放在汽車的遮陽(yáng)板上。這個(gè)錯(cuò)誤很嚴(yán)重,它的存在有利于惡意用戶闖入網(wǎng)絡(luò)程序。

右拐還是左拐

我還喜歡做這樣一種測(cè)試:以管理員的身份合法登錄,打開(kāi)任何管理頁(yè)面(例如,“添加新用戶頁(yè)”),然后注銷登錄。當(dāng)會(huì)話終止(通過(guò)打開(kāi)一個(gè)瀏覽器來(lái)確認(rèn))后,點(diǎn)擊這個(gè)書(shū)簽。令人吃驚的是,應(yīng)用程序往往自動(dòng)授以我管理員權(quán)限。

另一個(gè)技術(shù)就是查看以及被注釋掉但還沒(méi)有從基線(baseline)中刪除的死代碼。在這種情況下,我會(huì)以客戶(或者任何權(quán)力有限的用戶)身份登錄,并嘗試瀏覽死代碼。重復(fù)一次,許多死代碼依然保存在基線中。

開(kāi)發(fā)者常常會(huì)在開(kāi)發(fā)階段建立一個(gè)起始頁(yè)面(這個(gè)頁(yè)面不會(huì)被配置)——它略去了登錄過(guò)程并建立起一個(gè)測(cè)試環(huán)境。在發(fā)布系統(tǒng)的時(shí)候,網(wǎng)絡(luò)程序員一般會(huì)把注釋掉這個(gè)初始調(diào)用,或者把這個(gè)測(cè)試頁(yè)面重命名后依然把它留在Webroot目錄下。

我會(huì)檢查這些代碼來(lái)判定是否存在多個(gè)登錄也就是啟動(dòng)頁(yè)面,并看看其中是否有一個(gè)可以讓我以管理員身份訪問(wèn)系統(tǒng)而無(wú)需提供任何憑證。我還會(huì)嘗試在controls外圍登錄,特別是在開(kāi)發(fā)者提供導(dǎo)航指南的情況下。如果不清除Internet臨時(shí)文件的話,它們就提供了有用信息。如果應(yīng)用程序清楚的希望我往右走,我就試著往左走,看看它是否有防止用戶背道而馳的機(jī)制。

權(quán)限設(shè)置

總的來(lái)說(shuō),開(kāi)發(fā)者不需要為訪問(wèn)權(quán)限設(shè)置錯(cuò)誤負(fù)責(zé)——除非應(yīng)用程序構(gòu)建在訪問(wèn)權(quán)限基礎(chǔ)上。例如,如果一個(gè)網(wǎng)絡(luò)應(yīng)用程序要求有一個(gè)可以進(jìn)行全局可寫(xiě)的特定的目錄(更糟糕的情況是這個(gè)目錄的權(quán)限設(shè)置為所有人都是可讀、可寫(xiě)和可執(zhí)行),這樣應(yīng)用程序提供一個(gè)極好的可以隱藏(也有可能是觸發(fā))惡意邏輯的場(chǎng)所。

許多應(yīng)用程序都有存儲(chǔ)臨時(shí)報(bào)告的目錄。我常常會(huì)修改URL來(lái)瀏覽該目錄,這樣我就知道了該目錄的權(quán)限設(shè)置。如果應(yīng)用程序提供了ad hoc查詢功能(為了存儲(chǔ)查詢結(jié)果,這些目錄一般是全局可寫(xiě)的),我就會(huì)嘗試傳送一個(gè)可執(zhí)行文件到該目錄,然后通過(guò)瀏覽器來(lái)調(diào)用它,看看它是否執(zhí)行。

如果應(yīng)用程序提供了任何上載功能,我就會(huì)檢查執(zhí)行權(quán)限。應(yīng)該很少人有網(wǎng)絡(luò)目錄下文件的執(zhí)行權(quán)限;用戶也不應(yīng)該獲得服務(wù)器上可運(yùn)行程序的執(zhí)行權(quán)限。如果我能在應(yīng)用程序外shell(這種情況常常發(fā)生),那么任何產(chǎn)生的過(guò)程都屬于某個(gè)優(yōu)先帳號(hào)(例如“oracle”、“root”或者“system”)并擁有它所屬帳號(hào)的權(quán)限。如應(yīng)用程序應(yīng)當(dāng)適當(dāng)控制對(duì)上載數(shù)據(jù)的訪問(wèn),否則就會(huì)潛在產(chǎn)生問(wèn)題。另一個(gè)常見(jiàn)錯(cuò)誤就是對(duì)上載目錄的權(quán)限設(shè)置太弱。

避免漏洞

盡管我列舉的清單沒(méi)有包含所有情況,但它包含開(kāi)發(fā)者在構(gòu)建基于網(wǎng)絡(luò)的應(yīng)用程序的過(guò)程中的常見(jiàn)錯(cuò)誤。網(wǎng)絡(luò)上有許多非常棒的資源,開(kāi)發(fā)者和測(cè)試者可以從中獲得關(guān)于常見(jiàn)漏洞的更多信息。我強(qiáng)烈建議所有的開(kāi)發(fā)者都閱讀OWASP2004報(bào)告。你也應(yīng)該讀讀SANS的TOP20列表。盡管它并沒(méi)有針對(duì)網(wǎng)絡(luò)應(yīng)用,但它會(huì)教給開(kāi)發(fā)者防范漏洞的意識(shí)。在這些知識(shí)的武裝下,你應(yīng)該能夠避免絕大部分常見(jiàn)的陷阱。

【編輯推薦】

  1. 企業(yè)需要在應(yīng)用程序開(kāi)發(fā)時(shí)保證數(shù)據(jù)安全
  2. 應(yīng)用程序安全從開(kāi)發(fā)階段開(kāi)始
  3. Web應(yīng)用程序安全性問(wèn)題本質(zhì)解密
責(zé)任編輯:趙寧寧 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2023-11-06 13:56:20

2015-01-14 09:29:35

2020-09-15 09:54:13

云安全數(shù)據(jù)安全漏洞

2015-01-14 17:06:41

網(wǎng)絡(luò)·安全技術(shù)周刊

2023-06-08 00:16:58

2018-11-13 11:40:20

軟件定義廣域網(wǎng)SD-WAN安全

2011-07-28 09:42:14

IT安全虛擬化數(shù)據(jù)泄漏

2025-01-09 08:15:11

2013-09-13 14:43:16

2023-10-08 11:02:04

2010-01-13 10:31:17

2010-01-12 21:29:16

2020-05-19 10:14:01

容器容器安全

2016-10-18 10:22:21

測(cè)試移動(dòng)

2010-11-19 17:01:52

2023-10-16 11:09:24

2023-09-15 10:01:04

2023-03-13 16:25:28

2019-08-22 10:24:04

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全IoT

2023-10-09 00:14:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)