Web12: HTTP Cookie và một số vấn đề bảo mật - Phần 2

Kaito KID

VIP Members
02/07/2013
23
41 bài viết
Web12: HTTP Cookie và một số vấn đề bảo mật - Phần 2
3. Một số vấn đề bảo mật khi sử dụng cookie
Nếu một website sử dụng session ID để xác định phiên làm việc của người dùng, kẻ tấn công có thể có thể đánh cắp cookie để giả mạo người dùng. Sau đây là một số kịch bản đánh cắp cookie thường gặp:

Nghe lén (eavesdropping)
1489939936image1.png

Traffic trong một hệ thống mạng có thể bị chặn và đọc bởi một người thứ ba (không phải người nhận và người gửi). Traffic này bao gồm cả cookie. Nếu đường truyền không được mã hóa, kẻ tấn công có thể đọc được những thông tin nhạy cảm chứa trong cookie. Và lợi dụng những thông tin này, kẻ tấn công sẽ mạo danh người dùng thực hiện những hành động nguy hiểm, chẳng hạn như các giao dịch ngân hàng.
Vấn đề này có thể được giải quyết bằng cách sử dụng một giao thức bảo mật giữa máy tính của người dùng và server – giao thức HTTPS. Server có thể sử dụng cờ Secure khi thiết lập cookie. Khi đó, cookie sẽ chỉ được gửi đi thông qua một kênh truyền mã hóa, chẳng hạn một kết nối SSL.

Cross-site scripting
1489939936image2.png


Các ngôn ngữ script, chẳng hạn Javascript, được cho phép đọc các giá trị của cookie và gửi chúng đến các server tùy ý.
Giả sử một website bị dính lỗi Cross-site scripting, hacker có thể chèn vào các đoạn mã độc hại, chẳng hạn như sau:
1489939936image3.png

Khi nạn nhân click vào link trên, trình duyệt sẽ thực thi đoạn script nằm trong thuộc tính onclick: gửi cookie của nạn nhân đến server attacker.com.
Cross-site scripting là một trong những lỗ hổng phổ biến của các website (đứng thức ba trong top 10 lỗ hổng phổ biến nhất năm 2013 – theo OWASP).
Có thể hạn chế nguy cơ của lỗ hổng này bằng cách thiết lập cờ HttpOnly cho cookie. Khi đó, cookie sẽ không bị truy cập bởi các ngôn ngữ script.

Cross-site request forgery

CSRF (Cross-site request forgery) hay one-click attack, là một phương thức khai thác lỗ hổng của website theo đó những lệnh không được phép được thực hiện bởi nạn nhân – những user được website cấp quyền mà họ không hề hay biết.
CSRF sẽ lừa trình duyệt của nạn nhân gửi đi các request http đến các ứng dụng web. Trong trường hợp phiên làm việc của nạn nhân chưa hết hiệu lực thì các request trên sẽ được thực hiện với quyền chứng thực của nạn nhân.
Ví dụ, nạn nhân Bob đang giao dịch ở trang web của ngân hàng X nào đó. Fred là người tấn công, tên này biết được cách thức hoạt động của website ngân hàng X khi muốn chuyển tiền từ account A này sang account B kia như sau:
http://bank.example.com/withdraw?account=accountA&amount=100&for=accountB
Hắn sẽ gửi đến Bob một đường link sau:
Hot news
Nếu ngân hàng X lưu thông tin xác thực người dùng trong cookie, và Bob click vào đường link trên, tiền của Bob sẽ được chuyển đến cho Fred.
Để hạn chế nguy cơ này, có thể thiết lập thông số Expires (hạn sử dụng) cho cookie.

4. Kết luận
Cookie được sử dụng ở hầu hết các ứng dụng web hiện nay. Nó cũng chứa những nguy cơ tiềm tàng, ảnh hưởng không nhỏ đến người sử dụng. Do đó, đứng về phía người phát triển, chúng ta cần hiểu rõ về cookie và biết cách thiết lập các thông số cần thiết để ứng dụng có thể an toàn hơn trước các cuộc tấn công của hacker.
 
Re: Web12: HTTP Cookie và một số vấn đề bảo mật - Phần 2

Bạn có thể hướng dẫn mọi người xem và quản lý cookie trên trình duyệt một cách từ cơ bản đến nâng cao được k?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên