1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng An ninh mạng: Bài 9 - Bùi Trọng Tùng

16 10 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

Bài giảng An ninh mạng - Bài 9: An toàn dịch vụ web - Quản lý phiên. Sau khi học xong chương này, người học có thể hiểu được một số kiến thức cơ bản về: HTTP Cookie, chính sách SOP cho cookie, SOP cho cookie, Cookie của bên thứ 3 (third-party), đọc ghi cookie tại trình duyệt,…

BÀI AN TOÀN DỊCH VỤ WEB QUẢN LÝ PHIÊN 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 1 COOKIE 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt HTTP giao thức stateless • Một phiên hoạt động HTTP:  Trình duyệt kết nối với Web server  Trình duyệt gửi thơng điệp u cầu HTTP Request  Web server đáp ứng với thông điệp HTTP Response  …lặp lại…  Trình duyệt ngắt kết nối • Các thơng điệp HTTP Request xử lý độc lập • Web server khơng ghi nhớ trạng thái phiên HTTP HTTP Cookie HTTP Request HTTP Response Cookie Trình duyệt Cookie Web server Cookie HTTP Request Cookie • Cookie: liệu Web server tạo ra, chứa thông tin trạng thái phiên làm việc  Server lưu lại cookie(một phần tồn bộ) • Sau xử lý yêu cầu, Web server trả lại thơng điệp HTTP Response với coookie đính kèm  Set-Cookie: key = value; options; • Trình duyệt lưu cookie • Trình duyệt gửi HTTP Request với cookie đính kèm CuuDuongThanCong.com https://fb.com/tailieudientucntt HTTP Cookie - Ví dụ HTTP Response HTTP Cookie - Ví dụ • HTTP Request CuuDuongThanCong.com https://fb.com/tailieudientucntt HTTP Cookie HTTP Request Trình duyệt HTTP Response Web server Set-cookie: NAME=VALUE ; Cookie scope domain = (where to send) ; path = (where to send) secure = (only send over SSL); expires = (when expires) ; HttpOnly • Cookie scope: định trang web gửi cookie tới • HttpOnly: khơng gửi cookie kèm theo HTTP Requets sinh Javascript Chính sách SOP cho cookie • Địa URL: scheme://domain:port/path?params • Nguồn(origin) cookie xác định bởi: domain, path scheme(khơng bắt buộc) • Thiết lập cookie: trang web thiết lập cookie cho trang có tên miền, mang tên miền cấp trên(trừ tên miền cấp 1) • Ví dụ: trang Web có domain login.site.com:  Thiết lập cookie với domain = login.site.com, site.com  Không thiết lập với domain = othersite.com, other.site.com, com  path: giá trị CuuDuongThanCong.com https://fb.com/tailieudientucntt Chính sách SOP cho cookie • Đọc cookie: Server đọc tất cookie scope Trình duyệt gửi tất cookie scope(domain path) tới server:  Nếu giá trị secure thiết lập cookie gửi giao thức HTTPS • Ví dụ: cookie với domain = example.com path = /some/path/ đính kèm vào thông điệp HTTP Request tới địa http://foo.example.com/some/path/subdirectory/hello.html SOP cho cookie – Ví dụ khác • Hai cookie thiết lập login.site.com cookie userid = u1 domain = login.site.com path = / secure cookie userid = u2 domain = site.com path = / non-secure • Cookie đặt HTTP Request sau: http://checkout.site.com/ http://login.site.com/ https://login.site.com/ cookie: userid=u2 cookie: userid=u2 cookie: userid=u1; userid=u2 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Cookie bên thứ 3(third-party) • Giả sử trình duyệt (1st party) truy cập vào site A (2nd party) • Nếu site A có địa URL tài nguyên nằm site B (3rd party), thông điệp HTTP Request cho địa URL phát với cookie site B (nếu có)  sở để cơng CSRF • Phịng chống: sử dụng thuộc tính SameSite = lax | strict  strict: không gửi kèm cookie HTTP Request  Lax: gửi kèm cookie với thông điệp HTTP Requets có phương thức GET phát sinh việc chuyển hướng truy cập(thay đổi địa địa trình duyệt)  Hỗ trợ Chrome 51 Opera 39 trở 11 SameSite cookie – Ví dụ request type example code cookies sent link normal, lax prerender normal, lax form get normal, lax form post normal iframe normal ajax $.get('…') normal image normal https://www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesitecookie-attribute/ 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đọc ghi cookie trình duyệt • Truy cập qua đối tượng DOM: document.cookie • Thiết lập giá trị: document.cookie = “name=value; expires=…; ” • Hiển trị cookie: alert(document.cookie)  Hiển thị dạng chuỗi gồm giá trị thuộc tính tất cookie lưu cho tài ngun • Xóa cookie: document.cookie = “name=; expires= [Ngày khứ] ” 13 CÁC LỖ HỔNG CỦA COOKIE 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 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các lỗ hổng sử dụng cookie • Server  Khơng đọc số thuộc tính cookie  Không “nhớ” cookie thiết lập cho scope  Khơng kiểm tra tính tồn vẹn cookie • Client: đọc, thiết lập tùy ý  Firefox: cookies.sqlite • Cookie bị thay đổi truyền:  Firefox add-on: TamperData  Web proxy: Burp suite, ZAP… • Cookie bị phát lại 15 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ơ? • Ngun nhân? 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 đè 17 Giải pháp • Server sử dụng khóa bí mật K, khơng chia sẻ Sinh tag: T Browser HMACsign (K, SID ll name ll value ) Set-Cookie: NAME = Cookie: NAME = value value T k Server T Verify tag: HMACverify (k, SID ll name ll value, T) • Để chống cơng phát lại: sử dụng session-id • Chống tráo đổi với cookie phiên làm việc khác: sử dụng địa IP 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ: ASP Net • Thiết lập khóa bí mật: System.Web.Configuration.MachineKey • Tạo mã hóa-xác thực cookie HttpCookie cookie = new HttpCookie(name, val); HttpCookie encodedCookie = HttpSecureCookie.Encode (cookie); • Giải mã kiểm tra HttpSecureCookie.Decode (cookie); 19 QUẢN LÝ PHIÊN 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 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Phiên(session) gì? • Một chuỗi thông điệp HTTP Request HTTP Response trao đổi trình duyệt Web server • Thường kéo dài khoảng thời gian • Quản lý phiên:  Người dùng đăng nhập lần  Các thông điệp HTTP Request gửi gắn liền với định danh người dùng xác thực trạng thái phiên cần lưu trữ client server  ứng dụng điển hình cookie 21 Sử dụng HTTP auth • 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= 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 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 cookie, mã băm mật cách lợi dụng HTTP TRACE Request  Hãy đọc thêm lỗi cross-site tracing 23 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 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12 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 • Hạn chế phương pháp? 25 Lưu thẻ đâu? • Trong cookie: Mọi thơng điệp HTTP Request gửi có giá trị thẻ  Dễ bị đánh cắp cơng CSRF • Nhúng vào URL Lộ giá trị thẻ qua trường HTTP Referer • Đặt thuộc tính ẩn Chỉ áp dụng cho phiên ngắn • Đặt thuộc tính DOM: Lộ giá trị, áp dụng cho phiên ngắn, khơng có tác dụng cửa sổ mở 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt 13 HTTP Referer • Trường Referer làm lộ cookie cho bên thứ • Che giấu cookie:  HTML5: 27 Xử lý đăng xuất • Ứng dụng phải cung cấp chức đăng xuất:  Kết thúc phiên  Cho phép người dùng đăng nhập với tài khoản khác  Ngăn cản người dùng khác sử dụng phiên trái phép • Xử lý đăng xuất: Xóa Session Token client Xóa/đánh dấu Session Token hết hạn server Nhiều website không thực (2) Nguy cơ? 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14 Session Hijacking • Kẻ công đánh cắp Session Token người dùng đánh cắp (hijack) phiên làm việc gửi yêu cầu mạo danh người dùng • Ví dụ: FireSheep  Add-on Firefox cho phép đánh cắp Session Token Facebook qua mạng WiFi  Giải pháp: sử dụng HTTPS • Các kỹ thuật khác:  XSS  Lợi dụng giá trị thẻ khơng sinh ngẫu nhiên 29 Phịng chống • Sinh thẻ ngẫu nhiên: sử dụng API cung cấp framework Rails: token = MD5( current time, random nonce ) • Sử dụng địa IP để sinh thẻ • Sử dụng thơng tin khác client: trình duyệt, thiết bị… • Sử dụng SSL session ID 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt 15 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 • Phòng chống:  Xác thực đa yếu tố  Sử dụng session token cho yêu cầu 31 Bài giảng sử dụng số hình vẽ ví dụ từ giảng: • Computer and Network Security, Stanford University • Computer Security, Berkeley University 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16 ... normal image normal https://www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesitecookie-attribute/ 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đọc ghi cookie... token cho yêu cầu 31 Bài giảng sử dụng số hình vẽ ví dụ từ giảng: • Computer and Network Security, Stanford University • Computer Security, Berkeley University 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt... 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

Ngày đăng: 28/05/2021, 10:49

Xem thêm:

TỪ KHÓA LIÊN QUAN