javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第1頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第2頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第3頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第4頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)2011年5月中國電信EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)中國電信EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)-ii-i-目錄TOC o 1-5 h z HYPERLINK l bookmark2 WEB安全介紹1SQL注入、盲注12.1SQL注入、盲注概述1 HYPERLINK l bookmark14 安全風(fēng)險及原因2 HYPERLINK l bookmark4 AppScan掃描建議2 HYPERLINK l bookmark6 應(yīng)用程序解決方案4 HYPERLINK l bookmark10 3會話標(biāo)識未更新7會話標(biāo)識未更新概述

2、7 HYPERLINK l bookmark22 安全風(fēng)險及原因分析8 HYPERLINK l bookmark16 AppScAN掃描建議8 HYPERLINK l bookmark18 應(yīng)用程序解決方案8 HYPERLINK l bookmark20 4已解密登錄請求94.1已解密登錄請求概述9 HYPERLINK l bookmark30 安全風(fēng)險及原因分析9 HYPERLINK l bookmark24 AppScAN掃描建議9 HYPERLINK l bookmark26 應(yīng)用程序解決方案9 HYPERLINK l bookmark28 5跨站點(diǎn)請求偽造115.1跨站點(diǎn)請求偽造概述1

3、1 HYPERLINK l bookmark40 安全風(fēng)險及原因分析12 HYPERLINK l bookmark32 AppScAN掃描建議13 HYPERLINK l bookmark34 應(yīng)用程序解決方案13 HYPERLINK l bookmark36 6不充分賬戶封鎖13 HYPERLINK l bookmark38 不充分賬戶封鎖概述13 HYPERLINK l bookmark46 安全風(fēng)險及原因分析13 HYPERLINK l bookmark42 AppScAN掃描建議14 HYPERLINK l bookmark44 應(yīng)用程序解決方案14啟用不安全HTTP方法14啟用不安全

4、HTTP方法概述14 HYPERLINK l bookmark52 安全風(fēng)險及原因分析15 HYPERLINK l bookmark48 AppScAN掃描建議15 HYPERLINK l bookmark50 應(yīng)用程序解決方案15HTTP注釋敏感信息16HTTP注釋敏感信息概述16 HYPERLINK l bookmark62 安全風(fēng)險及原因分析16 HYPERLINK l bookmark54 APPScAN掃描建議16 HYPERLINK l bookmark56 應(yīng)用程序解決方案17 HYPERLINK l bookmark58 發(fā)現(xiàn)電子郵件地址模式17 HYPERLINK l boo

5、kmark60 發(fā)現(xiàn)電子郵件地址模式概述17 HYPERLINK l bookmark72 安全風(fēng)險及原因分析17 HYPERLINK l bookmark64 AppScan掃描建議17 HYPERLINK l bookmark66 應(yīng)用程序解決方案17 HYPERLINK l bookmark68 10通過框架釣魚20 HYPERLINK l bookmark70 10.1通過框架釣魚概述20安全風(fēng)險及原因分析20 HYPERLINK l bookmark74 AppScAN掃描建議21應(yīng)用程序解決方案23 HYPERLINK l bookmark78 11檢查到文件替代版本2511.1檢

6、查到文件替代版本概述25安全風(fēng)險及原因分析26 HYPERLINK l bookmark80 AppScAN掃描建議26應(yīng)用程序解決方案26中國電信EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) Web安全介紹目前很多業(yè)務(wù)都依賴于互聯(lián)網(wǎng),例如說網(wǎng)上銀行、網(wǎng)絡(luò)購物、網(wǎng)游等,很多惡意攻擊者出于不良的目的對Web服務(wù)器進(jìn)行攻擊,想方設(shè)法通過各種手段獲取他人的個人賬戶信息謀取利益。正是因?yàn)檫@樣,Web業(yè)務(wù)平臺最容易遭受攻擊。同時,對Web服務(wù)器的攻擊也可以說是形形色色、種類繁多,常見的有掛馬、SQL注入、緩沖區(qū)溢出、嗅探、利用IIS等針對Webserver漏洞進(jìn)行攻擊。一方面,由于TCP/IP的設(shè)計(jì)是

7、沒有考慮安全問題的,這使得在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是沒有任何安全防護(hù)的。攻擊者可以利用系統(tǒng)漏洞造成系統(tǒng)進(jìn)程緩沖區(qū)溢出,攻擊者可能獲得或者提升自己在有漏洞的系統(tǒng)上的用戶權(quán)限來運(yùn)行任意程序,甚至安裝和運(yùn)行惡意代碼,竊取機(jī)密數(shù)據(jù)。而應(yīng)用層面的軟件在開發(fā)過程中也沒有過多考慮到安全的問題,這使得程序本身存在很多漏洞,諸如緩沖區(qū)溢出、SQL注入等等流行的應(yīng)用層攻擊,這些均屬于在軟件研發(fā)過程中疏忽了對安全的考慮所致。另一方面,用戶對某些隱秘的東西帶有強(qiáng)烈的好奇心,一些利用木馬或病毒程序進(jìn)行攻擊的攻擊者,往往就利用了用戶的這種好奇心理,將木馬或病毒程序捆綁在一些艷麗的圖片、音視頻及免費(fèi)軟件等文件中,然后把這些文件置

8、于某些網(wǎng)站當(dāng)中,再引誘用戶去單擊或下載運(yùn)行?;蛘咄ㄟ^電子郵件附件和QQ、MSN等即時聊天軟件,將這些捆綁了木馬或病毒的文件發(fā)送給用戶,利用用戶的好奇心理引誘用戶打開或運(yùn)行這些文件、SQL注入、盲注2.1SQL注入、盲注概述Web應(yīng)用程序通常在后端使用數(shù)據(jù)庫,以與企業(yè)數(shù)據(jù)倉庫交互。查詢數(shù)據(jù)庫事實(shí)上的標(biāo)準(zhǔn)語言是SQL(各大數(shù)據(jù)庫供應(yīng)商都有自己的不同版本)Web應(yīng)用程序通常會獲取用戶輸入(取自HTTP請求),將它并入SQL查詢中,然后發(fā)送到后端數(shù)據(jù)庫。接著應(yīng)用程序便處理查詢結(jié)果,有時會向用戶顯示結(jié)果。如果應(yīng)用程序?qū)τ脩簦ü粽撸┑妮斎胩幚聿粔蛐⌒?,攻擊者便可以利用這種操作方式。在此情況下,攻擊者可以

9、注入惡意的數(shù)據(jù),當(dāng)該數(shù)據(jù)并入SQL查詢中時,就將查詢的原始語法更改得面目全非。例如,如果應(yīng)用程序使用用戶的輸入(如用戶名和密碼)來查詢用戶帳戶的數(shù)據(jù)庫表,以認(rèn)證用戶,而攻擊者能夠?qū)阂鈹?shù)據(jù)注入查詢的用戶名部分(和/或密碼部分),查詢便可能更改成完全不同的數(shù)據(jù)復(fù)制查詢,可能是修改數(shù)據(jù)庫的查詢,或在數(shù)據(jù)庫服務(wù)器上運(yùn)行Shell命令的查詢。2.2安全風(fēng)險及原因高風(fēng)險漏洞,攻擊者可能會查看、修改或刪除數(shù)據(jù)庫條目和表原因:未對用戶輸入正確執(zhí)行危險字符清理AppScan掃描建議若干問題的補(bǔ)救方法在于對用戶輸入進(jìn)行清理。通過驗(yàn)證用戶輸入未包含危險字符,便可能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:

10、啟動任意SQL查詢、嵌入將在客戶端執(zhí)行的Javascript代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過濾出所有以下字符:|(豎線符號)&(&符號);(分號)$(美元符號)%(百分比符號)(at符號)(單引號)(引號)(反斜杠轉(zhuǎn)義單引號)(反斜杠轉(zhuǎn)義引號)(尖括號)()(括號)+(加號)CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a),(逗號)(反斜杠)以下部分描述各種問題、問題的修訂建議以及可能觸發(fā)這些問題的危險字符:SQL注入和SQL盲注:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖

11、。當(dāng)使用存儲過程時,請利用ADO命令對象來實(shí)施它們,以強(qiáng)化變量類型。清理輸入以排除上下文更改符號,例如:(單引號)(引號)(反斜線轉(zhuǎn)義單引號)(反斜杠轉(zhuǎn)義引號)(結(jié)束括號);(分號)跨站點(diǎn)腳本編制:清理用戶輸入,并過濾出JavaScript代碼。我們建議您過濾下列字符:(尖括號)(引號)(單引號)%(百分比符號);(分號)()(括號)&(&符號)+(加號)如果要修訂變體,請參閱MS文章821349對于UTF-7攻擊:-可能的話,建議您施行特定字符集編碼(使用Content-Type頭或標(biāo)記)。HTTP響應(yīng)分割:清理用戶輸入(至少是稍后嵌入在HTTP響應(yīng)中的輸入)。請確保輸入未包含惡意的字符,例

12、如:CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a)遠(yuǎn)程命令執(zhí)行:清理輸入以排除對執(zhí)行操作系統(tǒng)命令有意義的符號,例如:|(豎線符號)&(&符號);(分號)執(zhí)行shell命令:絕不將未檢查的用戶輸入傳遞給eval()、open()、sysopen()、system()之類的Perl命令。確保輸入未包含惡意的字符,例如:$(美元符號)%(百分比符號)(at符號)XPath注入:清理輸入以排除上下文更改符號,例如:(單引號)(引號)等LDAP注入:使用正面驗(yàn)證。字母數(shù)字過濾(A.Z,a.z,0.9)適合大部分LDAP查詢。應(yīng)該過濾出或進(jìn)行轉(zhuǎn)義的特殊LDAP字符:在字符串開頭的空格

13、或“#”字符在字符串結(jié)尾的空格字符,(逗號)+(加號)(引號)(反斜杠)(尖括號);(分號)()(括號)MX注入:應(yīng)該過濾出特殊MX字符:CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a)記錄偽造:應(yīng)該過濾出特殊記錄字符:CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a)BS(退格,ASCII0 x08)ORM注入:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。使用參數(shù)化查詢API清理輸入以排除上下文更改符號,例如:(*):1(單引號)2(引號)(反斜線轉(zhuǎn)義單引號)(

14、反斜杠轉(zhuǎn)義引號)(結(jié)束括號);(分號)2.4應(yīng)用程序解決方案1、我們?yōu)榱苏{(diào)試方便,在頁面上會拋出數(shù)據(jù)庫異常信息,如果入侵工具獲取了這些信息,就可以獲取系統(tǒng)的一些配置信息,如web系統(tǒng)框架、采用的數(shù)據(jù)庫等,從而找出系統(tǒng)漏洞。所以不要在頁面上拋出異常的詳細(xì)信息,這些信息對客戶并沒有用,只是方便技術(shù)人員調(diào)試罷了,處理方法是在異常處理頁面把打印異常代碼刪除即可;2、新建一個過濾器,通過過濾器過濾SQL注入特殊字符,配置成功后,重啟服務(wù),用Appsan工具掃描,漏洞得到解決,通過過濾器可以解決SQL注入、跨站點(diǎn)腳本編制及通過框架釣魚等問題,具體實(shí)現(xiàn)方式如下:1、在web.xml文件中配置過濾器reque

15、stEncodingFilter/*InjectFiltercom.sitech.ismp.util.context.InjectFilter2、過濾器過濾代碼publicclassInjectFilterextendsIsmpServletFilterprivateStringfailPage=/loginout.jsp;/發(fā)生注入時,跳轉(zhuǎn)頁面publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainfilterchain)throwsIOException,ServletException/判斷是

16、否有注入攻擊字符HttpServletRequestreq=(HttpServletRequest)request;Stringinj=injectInput(req);if(!inj.equals()request.getRequestDispatcher(failPage).forward(request,response);return;else/傳遞控制到下一個過濾器filterchain.doFilter(request,response);/*判斷request中是否含有注入攻擊字符paramrequestreturn*/publicStringinjectInput(Servle

17、tRequestrequest)Enumeratione=request.getParameterNames();StringattributeName;StringattributeValues;Stringinj=;while(e.hasMoreElements()attributeName=(String)e.nextElement();/不對密碼信息進(jìn)行過濾,一般密碼中可以包含特殊字符if(attributeName.equals(userPassword)|attributeName.equals(confirmPassword)|attributeName.equals(PASSW

18、ORD)|attributeName.equals(password)|attributeName.equals(PASSWORD2)|attributeName.equals(valiPassword)continue;attributeValues=request.getParameterValues(attributeName);for(inti=0;iattributeValues.length;i+)if(attributeValuesi=null|attributeValuesi.equals()continue;inj=injectChar(attributeValuesi);i

19、f(!inj.equals()returninj;returninj;/*判斷字符串中是否含有注入攻擊字符paramstr*return*/publicStringinjectChar(Stringstr)Stringinj_str=)*%;Stringinj_stra=inj_str.split();for(inti=0;i=0)returninj_strai;return;會話標(biāo)識未更新會話標(biāo)識未更新概述“會話固定”是一種攻擊技術(shù),會強(qiáng)制用戶的會話標(biāo)識變成顯式值。固定會話標(biāo)識值的技術(shù)有許多種,會隨著目標(biāo)Web站點(diǎn)的功能而不同。從利用“跨站點(diǎn)腳本編制”到向Web站點(diǎn)密集發(fā)出先前生成的HTTP

20、請求,都在這些技術(shù)范圍內(nèi)。用戶的會話標(biāo)識固定之后,攻擊者會等待用戶登錄,然后利用預(yù)定義的會話標(biāo)識值來假定用戶的聯(lián)機(jī)身份。一般而言,對于標(biāo)識值的會話管理系統(tǒng)有兩種類型。第一種類型是“寬容”系統(tǒng),可讓W(xué)eb瀏覽器指定任何標(biāo)識。第二種類型是“嚴(yán)格”系統(tǒng),只接受服務(wù)器端生成的值。當(dāng)使用寬容系統(tǒng)時,不需要聯(lián)系Web站點(diǎn),便可以維護(hù)任何會話標(biāo)識。在嚴(yán)格系統(tǒng)中,攻擊者需要維護(hù)“陷阱會話”并且必須定期聯(lián)系Web站點(diǎn),才能防止閑置超時。對于會話固定,倘若沒有活動保護(hù),使用會話來識別已認(rèn)證的用戶的任何Web站點(diǎn)都可能受到攻擊。使用會話標(biāo)識的Web站點(diǎn)通常都是基于cookie的站點(diǎn),但也會使用URL和隱藏的表單字段

21、。不幸的是,基于cookie的會話最容易受到攻擊。目前已識別的大多數(shù)攻擊方法都是針對cookie的固定。相對于在用戶登錄Web站點(diǎn)之后,再竊取用戶的會話標(biāo)識,會話固定提供的機(jī)會多得多。在用戶登錄之前,攻擊的活動部分便已啟動。會話固定攻擊過程通常由三個步驟組成:安裝會話攻擊者針對目標(biāo)Web站點(diǎn)設(shè)下“陷阱會話”,并獲取這個會話的標(biāo)識,攻擊者也可以選擇攻擊中所用的任意會話標(biāo)識。在某些情況下,必須反復(fù)聯(lián)系Web站點(diǎn),才能維護(hù)確定好的陷阱會話值。固定會話攻擊者將陷阱會話值引進(jìn)用戶的瀏覽器中,固定用戶的會話標(biāo)識。3)進(jìn)入會話用戶登錄目標(biāo)Web站點(diǎn)之后,當(dāng)使用固定會話標(biāo)識值時,攻擊者便可加以接修改對于這類問

22、題解決方案為在用戶進(jìn)入登錄頁面時清空session讓cookie過期request.getSession(true).invalidate();/清空sessionCookiecookie=request.getCookies()0;/獲取cookiecookie.setMaxAge(O);/讓cookie過期另外一種方式利用JSP的一些特性,不讓登錄頁面產(chǎn)生Session安全風(fēng)險及原因分析高風(fēng)險漏洞,可能會竊取或操縱客戶會話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議始終生成新的會

23、話,供用戶成功認(rèn)證時登錄。防止用戶操縱會話標(biāo)識。請勿接受用戶瀏覽器登錄時所提供的會話標(biāo)識應(yīng)用程序解決方案會話標(biāo)識未更新,Appscan給出的描述是建議用戶每次登錄時需使用新的會話標(biāo)識。應(yīng)用程序?qū)崿F(xiàn)上就是在登錄模塊,添加以下代碼,即用戶登錄后,重新生成會話。HttpSessionsession=request.getSession(false);if(session!二null)/讓cookie過期session.invalidate();Cookiecookie=request.getCookies()0;/獲取cookiecookie.setMaxAge(O);/讓cookie過期reque

24、st.getSession(true);/生成新會話經(jīng)過測試,這段代碼只在weblogic和tomcat下才有效,在公司中間件webspeed及jboss6.0下問題都依然存在,但從掃描的結(jié)果信息分析看,漏洞已經(jīng)解決,分析判斷應(yīng)該只是session處理機(jī)制不同,AppScan工具仍認(rèn)為存在漏洞風(fēng)險。在與電信溝通中我們存在一個經(jīng)驗(yàn)教訓(xùn)大家一定要吸取,不能過渡迷信流行的自動化測試工具,尤其是對于Appscan這種判斷防御行為的復(fù)雜軟件,僅靠有限的規(guī)則設(shè)置就當(dāng)做是web安全的唯一標(biāo)準(zhǔn)這顯然不太合理,這種情況一定要與測試方溝通解釋。另一方面,對于公司的產(chǎn)品webspeed,也想提點(diǎn)建議,商務(wù)項(xiàng)目采用公

25、司的產(chǎn)品為公司節(jié)約了不少成本,但是我們產(chǎn)品后續(xù)升級維護(hù)也必須重視起來,當(dāng)確認(rèn)出是webspeed本身問題后,聯(lián)系vasg相關(guān)人員進(jìn)行協(xié)調(diào)解決,根本沒有非常了解該產(chǎn)品技術(shù)人員支持,只是一個剛?cè)肼毜耐略谂浜蠝y試。調(diào)試了一周時間仍不能解決,最后只能作為一個遺留問題擱置。公司一直在向產(chǎn)品化轉(zhuǎn)變,但是自身的產(chǎn)品維護(hù)、升級、管理仍然需要改進(jìn)。已解密登錄請求已解密登錄請求概述在應(yīng)用程序測試過程中,檢測到將未加密的登錄請求發(fā)送到服務(wù)器。由于登錄過程所用的部分輸入字段(例如:用戶名、密碼、電子郵件地址、社會保險號碼,等等)是個人敏感信息,建議通過加密連接(如SSL)將其發(fā)送到服務(wù)器。任何以明文傳給服務(wù)器的信息

26、都可能被竊,稍后可用來電子欺騙身份或偽裝用戶。此外,若干隱私權(quán)法規(guī)指出,用戶憑證之類的敏感信息一律以加密方式傳給網(wǎng)站。安全風(fēng)險及原因分析安全風(fēng)險中,可能會竊取諸如用戶名和密碼等未經(jīng)加密即發(fā)送了的用戶登錄信息原因:諸如用戶名、密碼和信用卡號之類的敏感輸入字段未經(jīng)加密即進(jìn)行了傳遞AppScan掃描建議確保所有登錄請求都以加密方式發(fā)送到服務(wù)器。請確保敏感信息,例如:-用戶名密碼社會保險號碼信用卡號碼駕照號碼電子郵件地址電話號碼郵政編碼一律以加密方式傳給服務(wù)器。應(yīng)用程序解決方案已解密的登錄請求,要求就是數(shù)據(jù)要加密傳輸。最簡單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺業(yè)務(wù)的特殊性,

27、采用SSL加密方式對現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒有采用此種方式解決該問題,但個人在進(jìn)行測試過程中也嘗試在tomcat和jboss下SSL方式配置,寫下來供參考。中國電信EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)20 Jboss內(nèi)核也是tomcat,所以兩者配置基本都是一樣,都是在生成證書文件后,在service.xml進(jìn)行配置:進(jìn)入到cmd進(jìn)入到j(luò)dkbin目錄下執(zhí)行keytool-genkey-aliastomcat-keyalgRSA-keystorewebspeed.keystore生成證書在service.xml配置SSL這樣配置后雖然可以通過https訪問,但仍然還可以通過80

28、80使用普通的http訪問,所以還必須禁止普通模式登錄。所以還得在web.xml添加配置。01020304050607SSL0809*.jsp1011*.action121314151617CONFIDENTIAL1819中國電信EMA服務(wù)管理平臺二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) 21222324252627CLIENT-CERT2829ClientCertUsers-onlyArea3031應(yīng)注意,由于項(xiàng)目的一些組件無法通過https,因此url-pattern字段只對.jsp和.action進(jìn)行了限制,如果不做特定限制,則系統(tǒng)默認(rèn)是全部使用https傳輸。而且上述設(shè)置一旦在某個工程中出現(xiàn),那么

29、當(dāng)前tomcat將全局采用這一配置??缯军c(diǎn)請求偽造跨站點(diǎn)請求偽造概述“跨站點(diǎn)偽造請求(CSRF)攻擊可讓黑客以受害者的名義在易受攻擊的站點(diǎn)上運(yùn)行操作。當(dāng)易受攻擊的站點(diǎn)未適當(dāng)驗(yàn)證請求來源時,便可能出現(xiàn)這個攻擊。這個漏洞的嚴(yán)重性取決于受影響的應(yīng)用程序的功能,例如,對搜索頁面的CSRF攻擊,嚴(yán)重性低于對轉(zhuǎn)帳頁面或概要更新頁面的CSRF攻擊。這項(xiàng)攻擊的執(zhí)行方式,是強(qiáng)迫受害者的瀏覽器向易受攻擊的站點(diǎn)發(fā)出HTTP請求。如果用戶目前已登錄受害者站點(diǎn),請求會自動使用用戶的憑證(如會話Cookie、用戶的IP地址,以及其他瀏覽器認(rèn)證方法)。攻擊者利用這個方法來偽造受害者的身份,再代替他來提交操作。換句話來說,易

30、受攻擊的站點(diǎn)未采取適當(dāng)措施來驗(yàn)證用戶實(shí)際是否想執(zhí)行特定操作。強(qiáng)迫受害者發(fā)送非預(yù)期的請求,方法有許多種:-通過電子郵件向受害者發(fā)送易受攻擊應(yīng)用程序的惡意鏈接。-在黑客的Web頁面上,放置一個易受攻擊的Web站點(diǎn)的熱鏈接(如圖像或幀)。-在公共論壇中,張貼易受攻擊站點(diǎn)的鏈接。-利用站點(diǎn)(或另一個站點(diǎn))的“跨站點(diǎn)腳本編制”或“鏈接注入”漏洞,將瀏覽器自動重定向到易受攻擊的站點(diǎn)。如果攻擊者利用易受攻擊的站點(diǎn)本身的“鏈接注入”漏洞,可以增加用戶通過站點(diǎn)認(rèn)證的可能性,進(jìn)而增加攻擊成功的可能性。例如,攻擊者可以利用上述任何選項(xiàng)來誘惑受害者查看含有下列條目的頁面:這會使受害者的瀏覽器自動請求URL及瀏覽器的當(dāng)

31、前憑證。如果這個銀行業(yè)站點(diǎn)易受到CSRF攻擊,它會根據(jù)應(yīng)用程序邏輯,從受害者的帳戶中,將1000美元轉(zhuǎn)賬到John的銀行帳戶?!翱缯军c(diǎn)偽造請求”攻擊也稱為CSRF(發(fā)音為C-Serf)、XSRF、“跨站點(diǎn)偽造引用”、“單鍵攻擊”以及“會話騎乘”。您可以利用下列方式來驗(yàn)證您的應(yīng)用程序是否易受到CSRF攻擊:檢查易受攻擊的鏈接/請求是否未包括攻擊者難以猜中的參數(shù)檢查易受攻擊的鏈接/請求是否會執(zhí)行只應(yīng)自愿執(zhí)行的操作含有用戶在不知不覺中提交的請求所能直接訪問的敏感操作的應(yīng)用程序,被視為很容易遭受CSRF攻擊。CSRF也可能出現(xiàn)在登錄頁面和注銷頁面上。由于攻擊者可以偽造來自受害者的連續(xù)注銷請求,因此CS

32、RF可能導(dǎo)致服務(wù)拒絕。在登錄頁面上,CSRF可以允許攻擊者使用包含攻擊者用戶名和密碼的偽造請求來將客戶機(jī)登錄到攻擊者的賬戶中。登錄CSRF攻擊會帶有嚴(yán)重的后果,這取決于其他站點(diǎn)行為。例如,如果站點(diǎn)保留了用戶操作的歷史記錄(例如搜索歷史記錄),那么攻擊者將能夠在易受攻擊的站點(diǎn)上查看受害者之前執(zhí)行的操作。安全風(fēng)險及原因分析安全風(fēng)險中,可能會竊取或操縱客戶會話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)原因:應(yīng)用程序使用的認(rèn)證方法不充分AppScan掃描建議如果要避免CSRF攻擊,每個請求都應(yīng)該包含唯一標(biāo)識,它是攻擊者所無法猜測的參數(shù)。建議的選項(xiàng)

33、之一是添加取自會話cookie的會話標(biāo)識,使它成為一個參數(shù)。服務(wù)器必須檢查這個參數(shù)是否符合會話cookie,若不符合,便廢棄請求。攻擊者無法猜測這個參數(shù)的原因是應(yīng)用于cookie的“同源策略”,因此,攻擊者無法偽造一個虛假的請求,讓服務(wù)器誤以為真。攻擊者難以猜測且無法訪問的任何秘密(也就是無法從其他域訪問),都可用來替換會話標(biāo)識。這可以防止攻擊者設(shè)計(jì)看似有效的請求。應(yīng)用程序解決方案已解密的登錄請求,要求就是數(shù)據(jù)要加密傳輸。最簡單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺業(yè)務(wù)的特殊性,采用SSL加密方式對現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒有采用此種方式解決該問題,但個人在進(jìn)行測

34、試過程中也嘗試在tomcat和jboss下SSL方式配置,寫下來供參考。不充分賬戶封鎖不充分賬戶封鎖概述蠻力攻擊是指惡意用戶發(fā)送大量可能的密碼和/或用戶名以訪問應(yīng)用程序的嘗試。由于該技術(shù)包含大量登錄嘗試,未限制允許的錯誤登錄請求次數(shù)的應(yīng)用程序很容易遭到這類攻擊。因此,強(qiáng)烈建議您對帳戶限制允許的錯誤登錄嘗試次數(shù),超過該次數(shù),便鎖定該帳戶。樣本利用:下列請求說明密碼猜測請求: HYPERLINK http:/site/login.asp?username=EXISTING_USERNAME&password=GUESSED http:/site/login.asp?username=EXISTIN

35、G_USERNAME&password=GUESSED_PASSWORD如果站點(diǎn)在若干次錯誤嘗試之后并不鎖定測試的帳戶,攻擊者最終可能會發(fā)現(xiàn)帳戶密碼,并使用它來假冒帳戶的合法用戶。安全風(fēng)險及原因分析安全風(fēng)險高,可能會升級用戶特權(quán)并通過Web應(yīng)用程序獲取管理許可權(quán)原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議請確定允許的登錄嘗試次數(shù)(通常是3-5次),確保超出允許的嘗試次數(shù)之后,便鎖定帳戶。為了避免真正的用戶因帳戶被鎖定而致電支持人員的麻煩,可以僅臨時性暫掛帳戶活動,并在特定時間段之后啟用帳戶。帳戶鎖定大約10分鐘,通常便足以阻止蠻力攻擊。應(yīng)用程序解決方案根據(jù)掃描建議,web應(yīng)用程序

36、設(shè)定允許登錄嘗試次數(shù),登錄連續(xù)失敗超過設(shè)定次數(shù),就鎖定用戶,失敗次數(shù)靈活配置。在用戶登錄時進(jìn)行驗(yàn)證:if(!encrypter.encrypt(userPassword).equalsIgnoreCase(user.getLOGIN_PASSWD()=null?:user.getLOGIN_PASSWD()/更新此用戶登錄失敗次數(shù)this.updateLoginFailTimes(userCode);/如果用戶連續(xù)登錄失敗次數(shù)超過配置值則將其鎖定intloginLockTimes=this.getLoginLockTimes();if(this.getLoginFailTimes(userCo

37、de)=loginLockTimes)this.lockUser(userCode);thrownewMySecurityException(密碼不正確!用戶:+userCode);7啟用不安全HTTP方法7.1啟用不安全HTTP方法概述似乎Web服務(wù)器配置成允許下列其中一個(或多個)HTTP方法(動詞):DELETESEARCHCOPYMOVE-PROPFIND-PROPPATCH-MKCOL-LOCK-UNLOCK這些方法可能表示在服務(wù)器上啟用了WebDAV,可能允許未授權(quán)的用戶對其進(jìn)行利用。安全風(fēng)險及原因分析安全風(fēng)險中,可能會在Web服務(wù)器上上載、修改或刪除Web頁面、腳本和文件原因:W

38、eb服務(wù)器或應(yīng)用程序服務(wù)器是以不安全的方式配置的AppScan掃描建議如果服務(wù)器不需要支持WebDAV,請務(wù)必禁用它,或禁止不必要的HTTP方法(動詞)。應(yīng)用程序解決方案修改web工程中web.xm1,增加安全配置信息,禁用不必要HTTP方法HtmlAdaptortest*.jsp*.doGETPOSTPUTDELETEHEADOPTIONSTRACE!-JBossAdmin-。8HTTP注釋敏感信息HTTP注釋敏感信息概述很多Web應(yīng)用程序程序員使用HTML注釋,以在需要時幫助調(diào)試應(yīng)用程序。盡管添加常規(guī)注釋有助于調(diào)試應(yīng)用程序,但一些程序員往往會遺留重要數(shù)據(jù)(例如:與Web應(yīng)用程序相關(guān)的文件名

39、、舊的鏈接或原非供用戶瀏覽的鏈接、舊的代碼片段等)。安全風(fēng)險及原因分析安全風(fēng)險低,能會收集有關(guān)Web應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置原因:程序員在Web頁面上留下調(diào)試信息AppScan掃描建議請勿在HTML注釋中遺留任何重要信息(如文件名或文件路徑)從生產(chǎn)站點(diǎn)注釋中除去以前(或未來)站點(diǎn)鏈接的跟蹤信息。避免在HTML注釋中放置敏感信息。確保HTML注釋不包括源代碼片段。5確保程序員沒有遺留重要信息。應(yīng)用程序解決方案雖然這個漏洞為低級別漏洞,但電信方也是要求必須修復(fù),要修改此漏洞需要檢查工程中的每一個jsp頁面,工作量還是挺大。所以在后續(xù)開發(fā)過程中注釋盡量寫英文注釋,

40、盡量不要遺留敏感注釋信息在jsp代碼中,養(yǎng)成良好的編碼習(xí)慣才是解決問題根本。9發(fā)現(xiàn)電子郵件地址模式發(fā)現(xiàn)電子郵件地址模式概述Spambot搜尋因特網(wǎng)站點(diǎn),開始查找電子郵件地址來構(gòu)建發(fā)送自發(fā)電子郵件(垃圾郵件)的郵件列表。AppScan檢測到含有一或多個電子郵件地址的響應(yīng),可供利用以發(fā)送垃圾郵件。而且,找到的電子郵件地址也可能是專用電子郵件地址,對于一般大眾應(yīng)是不可訪問的。安全風(fēng)險及原因分析安全風(fēng)險低,能會收集有關(guān)Web應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議從Web站點(diǎn)中除去任何電子郵件地址,使惡意的用戶無從利用。應(yīng)用

41、程序解決方案根據(jù)掃描建議刪除注釋中出現(xiàn)email地址信息,如果頁面中要顯示mail地址轉(zhuǎn)為圖片形式展示。如:ema服務(wù)管理平臺首頁需要展示客戶聯(lián)系方式,并且聯(lián)系方式、email等信息,這些信息用戶都是可以自行修改的,因?yàn)榘薳mail地址,所以聯(lián)系方式就轉(zhuǎn)為圖片形式:tdclass=tableheadbg運(yùn)營中心聯(lián)系方式%ListtypeList=(List)request.getAttribute(typeList);out.clear();out=pageContext.pushBody();response.setContentType(image/jpeg);response.add

42、Header(pragma,NO-cache);response.addHeader(Cache-Control,no-cache);response.addDateHeader(Expries,0);introwheight=20;intwidth=135,height=rowheight*typeList.size();TB_SYS_SUPPORT_STAFFDaodao=newTB_SYS_SUPPORT_STAFFDao();Stringty=;Stringmob=;for(inti=0;itypeList.size();i+)HashMaphm=(HashMap)typeList.g

43、et(i);ty=(String)hm.get(TYPE_ID);Liststa=(List)dao.findSupportStaffByTypeId(ty);for(intk=0;ksta.size();k+)HashMapmap=(HashMap)sta.get(k);mob=(String)map.get(MOBILE);height+=3*rowheight;if(mob!=null)height+=rowheight;BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Graphic

44、sg=image.getGraphics();g.setColor(Color.white);g.fillRect(0,0,width,height);g.setColor(Color.BLUE);Fontfont=newFont(宋體,Font.PLAIN,13);g.setFont(font);introw=0;Stringtypeid=;Stringtypename=;Stringname=;Stringtel=;Stringmail=;Stringmobile=;for(inti=0;itypeList.size();i+)HashMaphm=(HashMap)typeList.get

45、(i);typeid=(String)hm.get(TYPE_ID);typename=(String)hm.get(TYPE_NAME);row+;g.drawString(typename,0,(row-1)*rowheight+10);Liststaffs=(List)dao.findSupportStaffByTypeId(typeid);for(intk=0;k10通過框架釣魚10.1通過框架釣魚概述網(wǎng)絡(luò)釣魚是一個通稱,代表試圖欺騙用戶交出私人信息,以便電子欺騙身份。攻擊者有可能注入frame或iframe標(biāo)記,其中含有類似受攻擊之網(wǎng)站的惡意屬性。不小心的用戶有可能瀏覽它,但并不知道

46、他正在離開原始網(wǎng)站,沖浪到惡意的網(wǎng)站。之后,攻擊者便可以誘惑用戶重新登錄,然后獲取他的登錄憑證。偽造的網(wǎng)站嵌入在原始網(wǎng)站中,這個情況對攻擊者有幫助,因?yàn)樗木W(wǎng)絡(luò)釣魚企圖會披上更可信賴的外表。樣本利用:如果參數(shù)值未經(jīng)適當(dāng)清理,便反映在響應(yīng)中,下列請求:http:/SERVER/script.aspx?parameter=會使響應(yīng)含有通往這個邪惡站點(diǎn)的框架。10.2安全風(fēng)險及原因分析安全風(fēng)險中,可能會勸說初級用戶提供諸如用戶名、密碼、信用卡號、社會保險號等敏感信息原因:對用戶輸入正確執(zhí)行危險字符清理AppScan掃描建議若干問題的補(bǔ)救方法在于對用戶輸入進(jìn)行清理。通過驗(yàn)證用戶輸入未包含危險字符,便可

47、能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:啟動任意SQL查詢、嵌入將在客戶端執(zhí)行的Javascript代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過濾出所有以下字符:|(豎線符號)&(&符號);(分號)$(美元符號)%(百分比符號)(at符號)(單引號)(引號)(反斜杠轉(zhuǎn)義單引號)(反斜杠轉(zhuǎn)義引號)(尖括號)()(括號)+(加號)CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a),(逗號)(反斜杠)以下部分描述各種問題、問題的修訂建議以及可能觸發(fā)這些問題的危險字符:SQL注入和SQL盲注:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用

48、存儲過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。當(dāng)使用存儲過程時,請利用ADO命令對象來實(shí)施它們,以強(qiáng)化變量類型。清理輸入以排除上下文更改符號,例如:(單引號)(引號)(反斜線轉(zhuǎn)義單引號)(反斜杠轉(zhuǎn)義引號)(結(jié)束括號);(分號)跨站點(diǎn)腳本編制:清理用戶輸入,并過濾出JavaScript代碼。我們建議您過濾下列字符:(尖括號)(引號)(單引號)%(百分比符號);(分號)()(括號)&(&符號)+(加號)如果要修訂變體,請參閱MS文章821349對于UTF-7攻擊:-可能的話,建議您施行特定字符集編碼(使用Content-Type頭或標(biāo)記)。HTTP響應(yīng)分割:清理用戶輸入(至少是稍后嵌入在H

49、TTP響應(yīng)中的輸入)。請確保輸入未包含惡意的字符,例如:CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a)遠(yuǎn)程命令執(zhí)行:清理輸入以排除對執(zhí)行操作系統(tǒng)命令有意義的符號,例如:|(豎線符號)&(&符號);(分號)執(zhí)行shell命令:絕不將未檢查的用戶輸入傳遞給eval()、open()、sysopen()、system()之類的Perl命令。確保輸入未包含惡意的字符,例如:$(美元符號)%(百分比符號)(at符號)XPath注入:清理輸入以排除上下文更改符號,例如:(單引號)(引號)等LDAP注入:使用正面驗(yàn)證。字母數(shù)字過濾(A.Z,a.z,0.9)適合大部分LDAP查詢。應(yīng)該過

50、濾出或進(jìn)行轉(zhuǎn)義的特殊LDAP字符:在字符串開頭的空格或“#”字符在字符串結(jié)尾的空格字符,(逗號)+(加號)(引號)(反斜杠)(尖括號);(分號)()(括號)MX注入:應(yīng)該過濾出特殊MX字符:CR(回車符,ASCII0 x0d)LF(換行,ASCII0 x0a)記錄偽造:應(yīng)該過濾出特殊記錄字符:CR(回車符,ASCIIOxOd)LF(換行,ASCII0 x0a)BS(退格,ASCII0 x08)ORM注入:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。使用參數(shù)化查詢API清理輸入以排除上下文更改符號,例如

51、:(*):1(單引號)2(引號)(反斜線轉(zhuǎn)義單引號)(反斜杠轉(zhuǎn)義引號)(結(jié)束括號);(分號)(*)這適用于SQL。高級查詢語言可能需要不同的清理機(jī)制。10.4應(yīng)用程序解決方案新建一個過濾器,通過過濾器過濾SQL注入特殊字符,配置成功后,重啟服務(wù),用Appsan工具掃描,漏洞得到解決,具體實(shí)現(xiàn)方式如下:1、在web.xml文件中配置過濾器requestEncodingFilter/*InjectFiltercom.sitech.ismp.util.context.InjectFilter2、過濾器過濾代碼publicclassInjectFilterextendsIsmpServletFilterprivateStringfailPage=/loginout.jsp;/發(fā)生注入時,跳轉(zhuǎn)頁面publicvoiddoFilter(ServletRequestrequest,ServletResponser

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論