Bài giảng Session Hijacking

Trong chương trên chúng ta đã thảo luận về một hình thức tấn công thông dụng, dễ tiến hành và đặc biệt nguy hiểm trên các hệ thống mạng không dây đó là tấn công Session Hijacking. Các bạn đã nắm những công cụ mạnh hay được sử dụng hiện nay cũng như các hướng dẫn kèm theo, và trong vai trò CEH chúng ta cần biết rõ tác hại của Session Hijacking cũng như giải pháp phòng chống để có thể bảo vệ dữ liệu cho chính mình và hướng dẫn người dùng các thao tác nhằm bảo vệ tính riêng tư, phòng chống bị mất cắp dữ liệu. Trong phần tiếp theo chúng ta sẽ thảo luận về một chủ đề rất được quan tâm là “Tấn Công Web Server”.

pdf9 trang | Chia sẻ: huongthu9 | Lượt xem: 598 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Session Hijacking, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 Module 11 Session Hijacking Những Nội Dung Chính Trong Chương Này Giới Thiệu Về Session Hijacking Phân biệt Spoofing và Hijacking Các dạng tấn công Session Hijacking Dự Đoán Các Số Hiệu Tuần Tự Quy Trình Session Hijacking Công Cụ Tấn Công Session Hijacking Phòng Chống Session Hijacking 2 Session Hijacking Là Gì ? Tiếp theo, chúng ta sẽ tìm hiểu về chủ đề Session Hijacking, một hình thức tấn công phổ biến nhắm vào các người dùng mạng xã hội như Facebook hay những hộp thư Gmail, Yahoo. Session Hijacking là hình thức tấn công vào phiên làm việc giữa client và server cách đánh cắp cookie của người sử dụng sau khi họ đã qua bước xác thực với máy chủ, sau đó sẽ chiếm quyền điều khiển của phiên làm việc này. Session là thuật ngữ nói đến một phiên kết nối giữa hai máy tính trên hệ thống mạng thường được duy trì bởi các giá trị như thời gian tồn tại của session, thông tin cookie của trình duyệt hay các thẻ bài thích hợp. Các bạn có thể xem lại phần giới thiệu về phiên làm việc và quá trình three-way handshake ở những chương trước. Trong đại hội Blackhat năm 2009 một hacker đã làm ngỡ ngàng khán thính giả vì đã trình diễn trực tiếp một phương pháp đột nhập vào hộp thư của phóng viên BBC đang tham dự hội thảo và gởi thư trước mặt cử tọa trong hội trường. Phương pháp tấn công này được chuyên gia bảo mật trên đặt tên là Side jacking, một thuật ngữ không thấy xuất hiện trong CEH nhưng cũng thuộc dạng tấn công Session Hijacking. Phân biệt Spoofing và Hijacking Tấn công spoofing khác với dạng tấn công hijacking. Vi trong tình huống tấn công spoofing các hacker sẽ nghe lén dữ liệu truyền trên mạng từ người gởi đến nơi nhận sau đó sử dụng các thông tin thu thập được giả mạo địa chỉ (hoặc sử dụng ngay các địa chỉ đã lấy trộm) nhằm qua mặt các hệ thống kiểm tra. Trong khi đó hình thức tấn công hijacking sẽ làm cho kết nối của nạn nhân đến máy chủ bị ngắt khi đã xác thực thành công sau đó cướp lấy phiên làm việc này của người dùng nhằm vượt qua bước kiểm tra của máy chủ. Quá trình tấn công Session Hijacking gồm có ba bước như sau : - Dò Tìm Session : Hacker sẽ dò tìm các session đang mở và tính toán giá trị tuần tự của gói tin tiếp theo. - Tái Đồng Bộ Kết Nối : Hacker gởi các tín hiệu TCP reset (RST) hay FIN để yêu cầu khởi động lại quá trình kết nối đồng thời đóng phiên làm việc cũ. - Chèn Các Packet Tấn Công : lúc này hacker sẽ gởi đến máy chủ những gói tin TCP với số hiệu tuần tự đã được tính toán thích hợp với phiên làm việc do đó máy chủ sẽ chấp nhận những thông tin này giống như là các dữ liệu hợp lệ tiếp theo của người dùng bị tấn công. Nghĩa là, khi này các hacker có thể gởi đi một thông điệp trên chính Wall của nạn nhân bằng tài khoản Facebook của người bị tấn công như Hình 11.1 3 Hình 11.1 – Tình huống tấn công Hijacking bằng Add-on Firesheep cài trên Firefox, truy cập vào session Facebook của một người dùng khác trên cùng mạng, sau đó gởi thông điệp Post By FireSheep. Các dạng tấn công Session Hijacking Có hai dạng Session Hijacking đó là chủ động và bị động. Khác biệt chính giữa hai hình thức hijacking này phụ thuộc vào sự tác động của hacker lên phiên làm việc của người sử dụng trong môi trường mạng. Ở trạng thái chủ động hacker sẽ tìm các phiên làm việc đang hoạt động và chiếm đoạt nó thông qua các công cụ và tính toán các giá trị tuần tự của gói tin trong TCP session. Ngược lại, ở tình huống tấn công hijacking thụ động thì các kẻ tấn công chỉ theo dõi và ghi lại tất cả những truyền thông được gởi bởi người sử dụng hợp lệ, các bạn có thể thấy tình huống này rất giống với nghe lén vì nó sẽ thu thập các thông tin quan trọng của người dùng như mật khẩu đăng nhập để tiến hành xác thực cho các lần xâm nhập trái phép sau này trên một session khác. Three-Way Handshake Chức năng chính của TCP trong mô hình OSI là vận chuyển các gói tin giống như tên gọi của nó là Transmission Control Protocol. Để thực điều này TCP sử dụng các gói tin báo nhận (ACK) cùng với số hiệu tuần tự (sequence number). Tận dụng các số hiệu này là một trong những điểm then chốt của TCP Session Hijacking, do đó để hiểu rõ về dạng tấn công này các bạn cần xem lại các khái niệm cơ bản của quá trình bắt tay ba bước đã trình bày trong phần đầu của giáo trình : 4 1. Khi người dùng hợp lệ khởi tạo một kết nối đến máy chủ ví dụ kết nối đến trang Facebook để liên lạc với bạn bè hay Flickr để chia sẽ hình ảnh với người thân thì máy tính của anh ta sẽ gởi một gói tin có chứa tín hiệu SYN yêu cầu đồng bộ và một giá trị ISN (Initial Sequence Number) ban đầu . 2. Máy chủ Facebook hay Flickr tiếp nhận gói tin này và phản hồi bằng một thông điệp được thiết lập bằng cờ SYN cùng với ISBN của máy chủ, kèm theo đó là cờ ACK được xác định với số hiệu được khởi tạo của người gởi cộng thêm 1. 3. Tiếp theo máy tính của người dùng hợp lệ sẽ thông báo bằng gói tin với cờ Ack được thiết lập cùng với giá trị ISN của máy chủ cộng thêm 1 để bắt đầu phiên làm việc. Kết nối này có khả năng bị đóng khi hết thời gian do mạng bị lag (bị trễ) hay kết nối có thể bị kết thúc khi nhận được các yêu cầu là những gói tin với cờ FIN hay RST được đặt. Khi nhận được tín hiệu RST thì kết nối sẽ bị đóng và tất cả các gói tin tiếp theo bị từ chối, còn khi nhận được tín hiệu đóng bằng cờ FIN thì các gói tin đang xử lý vẫn được tiếp nhận cho đến khi hoàn tất thì kết nối mới kết thúc. Và việc gởi những tín hiệu với cờ FIN hay RST là phương pháp chính mà các hijacker (những hacker tấn công hijacking) sử dụng để đóng các session của client với server và sau đó chiếm quyền điều khiển, hoạt động như là client hợp lệ. Hacker Dự Đoán Các Số Hiệu Tuần Tự Như Thế Nào ? TCP là một giao thức hướng liên kết có nhiệm vụ tổng hợp các gói tin (packet) bị phân mãnh khi truyền thành dữ liệu gốc. Vì vậy mỗi packet cần được cấp một giá trị duy nhất theo thứ tự gọi là sequence nember (SN), ngoài ra mỗi packet còn được gán giá trị session để máy nhận có thể hợp nhất các luồng packet thành dữ liệu gốc ban đầu. Nếu các packet không đến đích theo một trật tự như ban đầu thì sequence number sẽ giúp cho việc sắp xếp chúng theo đúng trình tự. Ngoài ra, một hệ thống khởi tạo TCP session bằng cách gởi gói tin với cờ SYN được thiết lập và gói tin này được gọi là synchronize packet có chứa các giá trị khởi tạo ISN (Initial Sequence Number) như Hình 11.2. 5 Hình 11.2 – Cấu trúc của gói tin Và khi các gói tin có chứa thông tin báo nhận ACK được gởi đi thì các máy tính sẽ sử dụng số SN của ACK này cộng thêm một đơn vị. Cũng lưu ý là việc cộng một này chỉ áp dụng trong quá trình three-way handshake, với các truyền thông khác thì giá trị cộng thêm bằng với kích thược của gói tin, ví dụ chúng ta truyền 45 byte dữ liệu thì ACK đáp ứng sẽ lấy số SN của ACK nhận cộng với 45. Hình 11.3 - Tiến trình bắt tay 3 bước three-way handshake Nắm được cơ chế này của quá trình bắt tay ba bước hacker đã tạo ra các công cụ có thể xác định giá trị SN của những gói tin, trước tiên hacker sẽ nghe lén truyền thông giữa hai máy tính để rồi xác định giá trị ISN và tính ra giá trị tiếp theo. Tuy nhiên đây không phải là một việc đơn giãn như khi chúng ta trình bày nguyên tắt hoạt động của chúng vì các gói tin di chuyển với tốc độ cực nhanh, nếu như hacker không sniff (nghe lén) được gói tin thì họ cũng không thể tiến hành tấn công Session Hijacking. Vì vậy hầu hết các công cụ tấn công Session Hijacking thông dụng đều kèm theo ứng dụng cho phép nghe lén các gói tin nhằm xác định ra giá trị SN. Vi dụ khi hacker tấn công Side jacking trong môi trường wifi sử dụng bộ công cụ gồm hai chương trình là ferret.exe và hamster.exe ( , trong đó ferret có nhiệm vụ nghe lén thông tin trên mạng wifi. 6 Hình 11.4 - Attacker nghe lén đường truyền khi tấn công Session Hijacking Sau khi nghe lén dữ liệu truyền và xác định được giá trị SN kế tiếp thì các chương trình tấn công sẽ tiến hành giả mạo địa chỉ IP (IP Spoofing) của hệ thống hợp lệ đã khởi tạo session với máy chủ rồi gởi các gói tin với giá trị SN thích hợp nhằm sử dụng session đã được tạo ra và vượt qua quá trình xác thực. Như vậy các bạn sẽ đặt câu hỏi là nếu như cả máy tấn công và nạn nhân cùng gởi các gói tin với giá trị SN thích hợp thì sao ? Thường thì hacker sẽ chạy các chương trình làm cho máy tính của nạn nhân bị reset lại kết nối bằng cách gởi các gói tin với cờ RST được đặt. Các Bước Trong Quá Trình Session Hijacking Để tiến hành tấn công Session Hijacking thì hacker cần thực hiện các bước sau : - Tracking Session : Trong bước này hacker cần xác định các session đang hoạt động và tính được giá trị SN kết tiếp của gói tin. - Desynchronizing : Hacker tiến hành đóng kết nối của nạn nhân để chiếm toàn bộ session của họ thông qua các công DoS hay gởi những tín hiệu reset đến máy tính người dùng. - Gỏi Các Gói Tin Đã Được Chèn Giá Trị SN Hợp Lệ Đến Máy Chủ : Kết nối như người dùng đã xác thực. Các Công Cụ Tấn Công Session Hijacking Có khá nhiều công cụ có thể tiến hành tấn công Session Hijacking đã được phát triển trước đây như Juggernaut chuyên sniff các TCP session trong môi trường mạng hoạt động với hub. Hoặc Hunt với chức năng giả mạo địa chỉ MAC với cơ chế ARP spoofing, reset và giám sát các kết nối, nghe lén đường truyền. 7 Hiện nay, nhiều công cụ mạnh mẽ khác được phát triển giúp cho hacker có thể tiến hành tấn công Session Hijacking dễ dàng hơn. Trong số đó phải kể đến Burp Suite, ứng dụng có mặt trong danh sách 125 công cụ bảo mật hàng đầu hiện nay có khả năng thay đổi dữ liệu trên quá trình truyền, đánh cướp session hay giả mạo cả các chứng chỉ điện tử dùng trong xác thực https Hình 11.5 - Giao diện Burp suite Trong môi trường mạng không dây thì Firesheep ( có lẽ là công cụ nổi tiếng nhất xuất hiện vào khoảng giữa năm 2011, một add-on mạnh mẽ của Firefox (các phiên bản Firefox từ 4 trở lên không cài đặt được Firesheep) cho phép kẻ tấn công dễ dàng nghe lén và đánh cắp session của người dùng khi truy cập Facebook, Flicker Để chống lại add-on này các bạn nên sử dụng một add-on khác có tên gọi là Blacksheep được hack5.org mô tả tại đây 8 Hình 11.6 – Tấn công bằng Firesheep Ngoài ra, trong quá trình đào tạo về an ninh mạng cho các tổ chức tôi cũng thường hay đề cập đến một ứng dụng thú vị là Tamper Data, thường được các hacker sử dụng để thay đổi các tham số truyền đến máy chủ, ví dụ khi người dùng chơi các game online như nông trại trên facebook, bắn chim họ có thể dễ dàng thay đổi điểm số của mình để đánh lừa máy chủ game. Các bạn có thể tham khảo bài hướng dẫn thực hành về Tamper Data tại Những Mối Nguy Hiểm Của Session Hijacking Có phóng viên của tạp chí nổi tiếng đã mất nhiều thời gian để sưu tâm và viết bài về một vụ án được nhiều người quan tâm, nhưng khi bài báo chuẩn bị lên khuôn thì trên mạng đã xuất hiện rất nhiều tin tức liên quan đến chủ đề này khiến cho chính tác giả phải ngạc nhiên, vì không biết tại sao thông tin đã bị lộ dù anh ta nói rằng mình đã cài đặt đầy đủ chương trình bảo vệ, phòng chống virus Nguyên nhân là phóng viên này đã sử dụng máy tính trong các quán ca phê Wifi thiếu cẩn trọng bị hacker tấn công Session Hijacking đột nhập vào hộp thư điện tử lấy đi các tin bài quan trọng. Do đó, trong vài trò của một chuyên gia bảo mật hay CEH chúng ta cần hướng dẫn người dùng tránh sử dụng máy tính trong môi trường công cộng (un-trusted) thiếu cẩn trọng, vì dạng tấn công Session Hijacking rất dễ tiến hành, đặc biệt là trong môi trường mạng không dây thì tỉ lệ thành công rất cao. Trong chương trình đào tạo về an toàn thông tin cho các cán bộ của Tổng Cục Hải Quan tôi có trình bày một tình huống Side Jacking để 9 minh họa tác động của nó và khi học viên thực hành trong môi trường thực tế thì hầu hết đều cho rằng đạt kết quả thành công. Vậy Làm Sao Phòng Chống Session Hijacking ? Để phòng chống không bị tấn công Session Hijacking thì chúng ta cần phòng tránh bị nghe lén, một khi hacker không thể nghe lén được thì cũng koh6ng thể tấn công vào session của người dùng. Một torng các giải pháp đế tránh các sniffer chính là mã hóa dữ liệu, mã hóa đường truyền với các kỹ thuật như dùng Secure Shell (SSH thay cho Telnet thông thường) khi quản trị từ xa hay áp dụng Secure Socket Layer (SSL dùng cho truyền thông qua HTTPS ). Ngoài ra chúng ta có thể ngăn không cho hacker tương tác vào đường truyền cũng giúp loại bỏ nguy cơ bị tấn công này, với những giải pháp hữu hiệu như dùng mạng riêng ảo (VPN), hay áp dụng IPSEC. Nhiều ý kiến còn cho rằng khi truy cập internet ở môi trường công cộng hãy dùng các thiết bị DCOM 3G cũng giảm đáng kể nguy cơ mất mát dữ liệu. Sau đây là một số khuyến nghị nhằm ngăn ngừa Session Hijacking : - Sử dụng mã hóa. - Ứng dụng các giao thức an toàn. - Hạn chế các kết nối đầu vào. - Giảm các truy cập từ xa. - Có chế độ xác thực mạnh mẽ. - Huấn luyện cho người dùng, nâng cao nhận thức an toàn thông tin. - Sử dụng các thông tin truy cập khác nhau cho các tài khoản khác nhau. Tổng Kết Trong chương trên chúng ta đã thảo luận về một hình thức tấn công thông dụng, dễ tiến hành và đặc biệt nguy hiểm trên các hệ thống mạng không dây đó là tấn công Session Hijacking. Các bạn đã nắm những công cụ mạnh hay được sử dụng hiện nay cũng như các hướng dẫn kèm theo, và trong vai trò CEH chúng ta cần biết rõ tác hại của Session Hijacking cũng như giải pháp phòng chống để có thể bảo vệ dữ liệu cho chính mình và hướng dẫn người dùng các thao tác nhằm bảo vệ tính riêng tư, phòng chống bị mất cắp dữ liệu. Trong phần tiếp theo chúng ta sẽ thảo luận về một chủ đề rất được quan tâm là “Tấn Công Web Server”.

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_session_hijacking.pdf