Giả thiết: Kẻ tấn công truy cập đến một web proxy trong suốt hay
được cấu hình cho web máy khách.
Kết quả tấn công: Kẻ tấn công có khả năng chèn, xóa hay thay đổi
password trên bất kỳ trang nào có các kết nối HTTP (thậm trí nếu SSL submit được sử dụng tại thời điểm sau đó).
Thiệt hại khác: Cho phép sử dụng cùng một đăng nhập để truy cập
vào hệ thống máy tính, các ứng dụng khác và các trang sử dụng cùng username và password.
Trong vấn đề được trình bày trong hình 4 dưới đây, chúng ta có một người dùng đang mở một trình duyệt web và muốn truy cập vào thông tin ngân hàng của anh ấy trên một máy chủ từ xa. Máy khách yêu cầu trang web chính của nhà cung cấp (như American Express). Mặc dù vậy, những thông tin trong câu trả lời đã bị thay đổi thông qua một proxy server. Các proxy server thường được đặt để bảo vệ nhận dạng các địa chỉ IP, lọc; chúng thực hiện như một trung gian truyền thông giữa máy khách và máy chủ.
Hình 4: Việc lấy password bằng Ajax
Khi kẻ tấn công kiểm soát được proxy thì chúng có thể nhúng JavaScript để lấy và gửi username và password thông qua một yêu cầu đồng bộ đến máy chủ (XMLHttpRequest). Username và
password có thể đạt được thông qua JavaScript (bộ quản lý
password tự động điền vào đăng nhập) hay thông qua kỹ thuật định thời để đợi tới một thời điểm hợp lý (ví dụ 5 giây) cho phép người dùng nhập vào thông tin và sau đó JavaScript chạy và gửi các dữ liệu đăng nhập cho kẻ tấn công. Hình 4 đã thể hiện trình duyệt đang yêu cầu một file XML gồm có các thông tin đăng nhập
(bobpassword). Máy chủ sẽ bỏ qua yêu cầu bởi vì nó không hợp lệ nhưng kẻ tấn công lại tăng mức đăng nhập tại điểm này.
Việc phân định ra các quá trình là rất quan trọng, quá trình này sẽ thẩm định người dùng đến máy chủ và phân chia mã độc hại có thể gửi username và password đến kẻ tấn công. Trên một trang nào đó, các thông tin đăng nhập được nhập vào trước khi kết nối SSL được thành lập. Điều này là điểm chính của tấn công, nếu có một kết nối SSL được thiết lập trước việc đăng nhập dữ liệu thì proxy server không thể thấy được lưu lượng được mã hóa. Tuy nhiên một vài trang sử dụng SSL submit (như Yahoo, AMEX,…) hình thành nên các kết nối thẩm định mã hóa sau trang gốc được tải thì chúng sẽ có các lỗ hổng với các loại tấn công về vấn đề này.
Bạn sẽ nhận thấy rất nhiều điều quan trọng khi so sánh sự khác nhau trong các đặc tính quản lý password của hai trình duyệt lớn:
Đặc tính Internet Explorer 7 Firefox 2.0 Lưu username, password và URL yes yes Password truy cập thông qua JavaScript yes yes Password truy cập thông qua phần mềm truy cập yes yes Bảo vệ password (không chói buộc
tài khoản người
dùng)
Password Prompt khi bắt đầu session để lưu các password yes Dễ dàng xuất dữ liệu username/password yes
Mã hóa yes yes
Giải mã yes
Password Manager
chọn "Show
Passwords"
yes
đến các vấn đề tranh luận dù đó là một đặc trưng tin tưởng hay một lỗ hổng bảo mật, mặc dù vậy, thỉng thoảng cũng không có phương pháp nào cho việc lấy lại password khi bị quên.
Kết luận của phần 1
Phần 1 của bài viết này đưa ra một công việc nền tảng cho việc định địa chỉ các vấn đề liên quan đến quản lý password, nhưng thực tế được định địa chỉ hai điểm đầu tiên đưa ra tại phần đầu của bài viết, nó đã giải thích kỹ thuật lưu password của cả Internet Explorer và Firefox, và sau đó đã trình bày hai tấn công JavaScript có thể sử dụng để phá hoại các trình duyệt.