Kiểm tra HSTS và HTTPS và các HTTP header hữu ích

Một phần của tài liệu Quy trình đánh giá an toàn và bảo mật website (Trang 29)

HTTPS – giao thức truyền tiếp văn bản an toàn, đảm bảo tất cả thông tin liên lạc giữa người dùng và một trang web nhất định đi qua kênh được mã hóa. HSTS, hay còn gọi là HTTP Strict Transport Security là một header của trình duyệt bắt buộc các kết nối sau nó phải được gửi thông qua giao thức HTTPS, về cơ bản là một chính sách bảo mật được máy chủ uỷ quyền cho website khi phát sinh giao tiếp thường xuyên với người dùng HTTP.

Mỗi khi sử dụng giao thức HTTPS, thanh địa chỉ của trình duyệt sẽ xuất hiện biểu tượng hình khóa .Bằng cách nhấp vào ổ khóa xuất hiện trong cửa sổ trình duyệt khi truy cập vào một trang Web https, có thể xem thông tin liên quan đến chứng nhận

Các website dùng cơ chế HSTS để đảm bảo rằng người dùng chỉ giao tiếp với máy chủ thông qua kết nối HTTPS an toàn. Bằng cách thêm một cờ vào phần header mà một trình duyệt web nhận được khi gửi yêu cầu tới máy chủ, HSTS đảm bảo rằng tất cả kết nối sau đó tới một website được mã hóa bằng giao thức HTTPS. Nhờ việc yêu cầu tất cả kết nối kế tiếp được mã hóa, HSTS bảo vệ người dùng khỏi các thủ đoạn chuyển kết nối về dạng HTTP trần. ngăn chặn tin tặc sử dụng chứng chỉ số không hợp lệ. HSTS cũng bảo vệ người dùng với những trang HTTPS nhưng có đường dẫn HTTP hay nội dung không mã hóa .

Các HTTP header nghiêm ngặt an toàn lưu lượng sử dụng hai chỉ thị:

• max-age: để chỉ ra số giây mà trình duyệt sẽ tự động chuyển đổi tất cả các yêu cầu HTTP tới HTTPS.

• includeSubDomains: để chỉ ra rằng các tên miền phụ tất cả ứng dụng web của phải sử dụng HTTPS.

mật an toàn ứng dụng web Strict-Transport-Security: max-age=60000; includeSubDomains

Kiểm tra HSTS header bằng cách kiểm tra sự tồn tại của tiêu đề HSTS trong server response trong một intercepting proxy.

Ngoài HSTS header còn có một số HTTP header hữu ích khác cho việc bảo mật :

• X-Frame-Options, Frame-Options:Cung cấp bảo vệ Clickjacking , Header này cho biết trang web có thể được tải vào trong một frame hay không. Header X- FRAME-OPTIONS có hai chế đô:DENY – cấm hoàn toàn việc tải trang web vào trong frame; SAMEORIGIN – cho phép tải trang web vào trong frame nếu trang chứa frame thuộc cùng domain với trang web được tải vào trong frame.

• X-XSS-Protection :Cung cấp bộ lọc chống XSS được xây dựng vào hầu hết các trình duyệt web gần đây. Nó thường được kích hoạt theo mặc định anyway, nên vai trò của header này là để tái kích hoạt bộ lọc cho trang web cụ thể .

• X-Content-Type- Options nếu không được thiết lập để 'nosniff'. Điều này cho phép các phiên bản cũ của Internet Explorer và Chrome để thực hiện MIME-sniffing từ các tuyên bố content-type.

Trong hầu hết các kiến trúc các header có thể được thiết lập trong cấu hình máy chủ web ( Apache , IIS , nginx ), mà không thay đổi code thực tế của ứng dụng. Điều này cung cấp phương pháp nhanh hơn và rẻ hơn đáng kể ít nhất giảm thiểu một phần các vấn đề tồn tại, và thêm một lớp bảo vệ cho các ứng dụng mới.

II.4.3 QUY TRÌNH KIỂM TRA QUẢN LÝ DANH TÍNH CỦA ỨNG DỤNG WEB. DỤNG WEB.

a) Kiểm tra quy trình đăng ký user

Cách kiểm tra:

Xác minh rằng các yêu cầu nhận dạng cho đăng ký sử dụng phải phù hợp với yêu cầu kinh doanh và bảo mật:

• Bất cứ ai có thể đăng ký để truy cập? • Đăng kí bởi con người hay robot tự động?

• Cùng một người hoặc danh tính có thể đăng ký nhiều lần?

mật an toàn ứng dụng web

• Có gì chứng minh danh tính là cần thiết cho một đăng ký để có thể thành công?

• Được đăng ký bản sắc xác minh? Xác nhận quá trình đăng ký:

• Có thể nhận dạng thông tin được dễ dàng giả mạo hoặc làm giả?

• Việc trao đổi thông tin nhận dạng có thể được thao tác trong quá trình đăng ký?

Một proxy HTTP có thể là một công cụ hữu ích để kiểm tra quy trình đăng ký user.

b) Kiểm tra liệt kê tài khoản và đoán tài khoản user

Phạm vi của thử nghiệm này là để xác minh có thể thu thập một tập hợp các tên người dùng hợp lệ bằng cách tương tác với các cơ chế xác thực của ứng dụng .

Một vài ứng dụng cho phép bạn đoán, hay lấy được usernames từ các ứng dụng web của bạn. Nếu một kẻ tấn công có thể tổng hợp được danh sách của usernames, anh ta có thể sử dụng tấn công brute-force để tìm kiếm mật khẩu. Việc dễ dàng bị phát hiện ra usernames cũng là một vấn đề. Ví dụ, một forums tại trang web msn.com mà có thể sử dụng một phần mềm lấy được toàn bộ các username của nó. Có nghĩa khi đó người dùng sẽ phải gánh chịu những bức thư quảng cáo, các bức thư chứa virus...Với số user được quản lý lên tới hàng triệu, việc khai thác được số user này cũng là mục tiêu của các kẻ tấn công. Cách kiểm tra :

• Xác định cấu trúc của tên tài khoản.

• Đánh giá sự đáp ứng của ứng dụng với tên tài khoản hợp lệ và không hợp lệ.

• Sử dụng phản ứng khác nhau đối với tên tài khoản hợp lệ và không hợp lệ để liệt kê tên tài khoản hợp lệ. (adsbygoogle = window.adsbygoogle || []).push({});

• Sử dụng từ điển tên tài khoản để liệt kê danh sách tài khoản hợp lệ. Ví dụ :Sử dụng HTTP Response message

• Kiểm tra với tài khoản đúng/mật khẩu đúng • Kiểm tra với tài khoản đúng/mật khẩu sai • Kiểm tra với tài khoản không tồn tại

mật an toàn ứng dụng web Ghi lại các thông báo từ ứng dụng .

Sử dụng Burp Suite ,Lấy các thông tin (HTTP 200 Response, chiều dài của phản ứng).

II.4.4 QUY TRÌNH KIỂM TRA CÁC VẤN ĐỀ XÁC THỰC CỦA ỨNG DỤNG WEB. DỤNG WEB.

Một phần của tài liệu Quy trình đánh giá an toàn và bảo mật website (Trang 29)