2.5.1. Khái niệm
Tấn công kiểu DoS là kiểu tấn công làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu cầu nữa. Loại tấn công này ảnh hưởng đến nhiều hệ thống, rất dễ thực hiện và lại rất khó bảo vệ hệ thống khỏi kiểu tấn công DoS. [3], [13].
Thông thường, kiểu tấn công DoS dựa trên những giao thức (protocol). Ví dụ với giao thức là ICMP, hacker có thể sử dụng bomb e-mail để gửi hàng ngàn thông
điệp email với mục đích tiêu thụ băng thông để làm hao hụt tài nguyên hệ thống trên mail server. Hoặc có thể dùng phần mềm gửi hàng loạt yêu cầu đến máy chủ khiến cho máy chủ không thể đáp ứng những yêu cầu chính xác khác.
2.5.2. Những khả năng bị tấn công bằng DoS
Tấn công trên Swap Space
Hầu hết các hệ thống đều có vài trăm MB không gian chuyển đổi (Swap Space) để phục vụ cho những yêu cầu từ máy khách. Swap Space thường dùng cho các tiến trình con có thời gian ngắn nên DoS có thể được lựa chọn dựa trên phương thức làm tràn đầy Swap Space.
Tấn công trên Bandwidth
Phần băng thông dành cho mỗi hệ thống là giới hạn, vì thế nếu hacker cùng lúc gửi nhiều yêu cầu đến hệ thống thì phần băng thông không đủ đáp ứng cho một khối lượng dữ liệu lớn đó và dẫn đến hệ thống bị phá vỡ.
Tấn công vào RAM
Tấn công DoS chiếm một khoảng lớn RAM cũng có thể gây ra các vấn đề phá hủy hệ thống. Kiểu tấn công BufferOverflow là một ví dụ cho cách phá hủy này.
Tấn công vào Disks
Một kiểu tấn công cổ điển là làm đầy đĩa cứng. Đĩa cứng có thể bị tràn và không thể được sử dụng nữa.
2.5.3. Các kỹ thuật tấn công
2.5.3.1. Khái niệm về TCP bắt tay ba chiều
Đầu tiên, để tìm hiểu phương pháp tấn công DoS, luận văn sẽ trình bày cơ chế làm việc “TCP bắt tay ba chiều”.
Gói dữ liệu TCP chứa flag bits (cờ) để mô tả nội dung và mục đích của gói dữ liệu.
Ví dụ:
- Gói dữ liệu TCP với cờ SYN (synchoronize) dùng để bắt đầu một kết nối - ACK (acknowledgement)
- FIN (finish) dùng để ngắt một kết nối Cách hoạt động của gói TCP:
Hình 2.3. Cơ chế thiết lập kết nối trước khi truyền số liệu
Bước 1: Máy con gửi gói tin SYN yêu cầu kết nối
Bước 2: Nếu máy chủ chấp nhận kết nối, máy chủ sẽ gửi gói tin SYN/ACK
Server bắt buộc phải gửi thông báo lại bởi vì TCP là chuẩn tin cậy nên nếu máy con không nhận được thông báo thì sẽ nghĩ rằng packet đã bị lạc và gửi lại một packet mới.
Bước 3: Máy con gửi hồi đáp bằng gói tin ACK
Báo cho máy chủ biết rằng máy con đã nhận được SYN/ACK packet và lúc này kết nối đã được thiết lập.
2.5.3.2. Lợi dụng TCP thực hiện phương ph p YN f ood truyền thống
Hình 2.4. Tấn công DoS truyền thống
Như đã đề cập về vấn đề thiết lập kết nối ở mục trên, bất cứ gói tin SYN, máy chủ cũng phải để 1 phần tài nguyên của hệ thống như bộ nhớ đệm để nhận và truyền
dữ liệu cho đường truyền đó. Tuy nhiên, tài nguyên của hệ thống là có hạn và hacker sẽ tìm mọi cách để hệ thống tràn qua giới hạn đó.
Theo hình 2.4: Nếu máy chủ sau khi gửi và trả một gói tin SYN/ACK để thông báo chấp nhận kết nối cho máy yêu cầu nhưng nếu địa chỉ IP của máy yêu cầu này là giả mạo thì gói tin không thể đến được đích, nên máy chủ vẫn phải dành tài nguyên cho yêu cầu đó. Sau một thời gian không nhận được phản hồi từ máy khách, máy chủ lại tiếp tục gửi một gói tin SYN/ACK để xác nhận lần nữa và cứ như vậy, kết nối vẫn tiếp tục mở.
Nếu như hacker gửi nhiều gói tin SYN đến máy chủ đến khi máy chủ không thể tiếp nhận thêm 1 kết nối nào nữa thì lúc này hệ thống đã bị phá vỡ.
2.5.3.3. Tấn công vào băng thông
a. Kiểu tấn công thứ 1
Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớn hơn băng thông của máy đích. Kiểu tấn công này không bị hạn chế bởi tốc độ truyền mạng.
b. Kiểu tấn công thứ 2
Kiểu tấn công này được sử dụng khi đường truyền mạng của hacker là quá thấp so với đường truyền của máy đích.
Không giống như kiểu tấn công DoS truyền thống, kiểu tấn công vào băng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùng một lúc tiến đến hệ thống đích khiến cho đường truyền của hệ thống đích không còn khả năng đáp ứng, máy chủ không còn khả năng nhận một gói tin nào nữa.
Theo hình 2.5, tất cả các gói tin vào một mạng máy tính qua “Big-Pipe” (ống dẫn lớn), sau đó được router chia ra những “Small Pipe” (ống dẫn nhỏ) cho nhiều máy tính con tùy theo địa chỉ IP của gói tin.
Nhưng nếu toàn bộ “Big-Pipe” bị làm ngập bằng những gói tin chỉ hướng đến 1 máy nhất định trong mạng máy tính con này, router đành phải chấp nhận loại bỏ phần lớn các packet để chỉ còn lại số lượng vừa đủ đi qua “Small Pipe” của máy tính đó. Kiểu tấn công này sẽ loại máy đích ra khỏi internet.
Đây là phương pháp tấn công kiểu từ chối dịch vụ nhưng không là DoS mà gọi là DDoS (kiểu từ chối phân tán), nghĩa là cùng một lúc nhiều máy sẽ được phát động để gửi gói tin đến máy đích (mặc dù đường truyền của mỗi máy không cao nhưng nhiều đường truyền lại hợp thành một ống dẫn “Big-Pipe”), làm cho máy đích không còn khả năng tiếp nhận gói tin và bị loại khỏi mạng Internet, như sơ đồ minh họa sau:
DRDoS (Distributed Reflection Denial of Service) – Thế hệ tiếp theo của DDoS:
Hình sau sẽ minh họa kiểu tấn công DRDoS này.
Hình 2.7. Tấn công kiểu DRDoS
Bằng cách giả địa chỉ IP của máy đích, hacker sẽ cùng lúc gửi nhiều gói tin đến các hệ thống máy mạnh trên mạng, các hệ thống này khi nhận gói tin SYN giả này, chấp nhận kết nối và gửi trả một gói tin SYN/ACK để thông báo. Vì địa chỉ IP của gói tin SYN bị hacker sửa đổi thành địa chỉ IP máy đích nên những gói tin SYN/ACK sẽ được gửi về cho máy đích. Cùng một lúc nhận được nhiều gói tin, đường truyền của máy đích không đủ khả năng đáp ứng, hệ thống máy đích từ chối nhận bất kỳ gói tin nào và lúc này hệ thống máy đích đã bị sụp đổ.
2.5.3.4. Kiểu tấn công vào tài nguyên hệ thống
Đây là kiểu tấn công nhằm vào tài nguyên hệ thống hơn là tài nguyên mạng như CPU, bộ nhớ, file hệ thống, tiến trình … Hacker là một người dùng hợp lệ của hệ thống, và được một lượng tài nguyên giới hạn trên hệ thống. Tuy nhiên, hacker sẽ lạm dụng quyền truy cập này để yêu cầu thêm tài nguyên. Như vậy, hệ thống hay những người dùng hợp lệ sẽ bị từ chối sử dụng tài nguyên chia sẻ.
Kiểu tấn công sẽ khiến cho hệ thống không thể sử dụng được vì tài nguyên đã bị sử dụng hết, không còn tiến trình để thực thi nữa.
2.5.4. Biện pháp phòng chống
Kiểu tấn công từ chối dịch vụ là kiểu tấn công gây nhiều khó khăn trong vấn đề bảo vệ cũng như điều tra tìm ra thủ phạm nhất, bởi vì hầu hết hacker đã thay đổi địa chỉ IP của máy mình nên rất khó xác định ai là thủ phạm.
Để phòng chống khả năng khuyếch đại đường truyền, cần:
Hủy khả năng broadcast tại router biên
Tăng kích thước hàng đợi kết nối
Giảm thời gian thiết lập kết nối
Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS: Hầu hết những hệ điều hành hiện nay đều hỗ trợ khả năng phát hiện và phòng chống kiểu tấn công lụt SYN.
Tuy nhiên cũng đã có những phần mềm được có khả năng tránh kiểu tấn công này. Ví dụ như với Linux kernels 2.0.30 và về sau cài đặt một tùy chọn gọi là SYN Cookie, kernel có nhiệm vụ truy tìm và lưu vết những khả năng có thể xảy ra kỹ thuật SYN. Sau đó, kernel sẽ sử dụng một giao thức mã hóa như SYN cookie cho phép người dùng hợp lệ của hệ thống tiếp tục kết nối đến hệ thống.
Với WindowNT 4.0 trở về sau, sử dụng kỹ thuật backlog, mỗi khi hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, vì thế hàng đợi sẽ không bị phá vỡ.
Ứng dụng chỉ cho phép mỗi một máy con chỉ được thiết lập số kết nối tối đa theo quy định tránh trường hợp hacker gửi cùng lúc nhiều yêu cầu gây nghẽn. Kiểu tấn công từ chối dịch vụ tuy chỉ khiến cho hệ thống bị phá vỡ trong vài phút nhưng hậu quả thì khá to lớn (ảnh hưởng trên phạm vi tiền và uy tín). Đây là kỹ thuật thường được hacker sử dụng trong trường hợp không thể chiếm quyền quản trị trên hệ thống hoặc thông tin, hoặc muốn phá hủy uy tín của cơ quan đó. Thêm vào đó việc giả mạo địa chỉ khiến cho hacker càng dễ dàng thực hiện việc tấn công mà không sợ bị phát hiện.
2.6. Chiếm hữu phiên làm việc (Session Management) 2.6.1. Tổng quan về Session ID 2.6.1. Tổng quan về Session ID
Session ID có thể được lưu trữ trong cookie hay được nhúng vào địa chỉ URL hay trong biến ẩn form. Thông thường, sau khi người dùng được chứng thực dựa trên những thông tin cá nhân như tên/mật khẩu, session ID được xem như một mật khẩu tĩnh tạm thời cho những lần yêu cầu tiếp theo. Điều này đã khiến cho session ID là mục tiêu lớn cho những hacker.Trong nhiều trường hợp, hacker giành được sesion ID hợp lệ của người dùng để từ đó đột nhập vào phiên làm việc của họ.
Tấn công vào một phiên làm việc thường được thực hiện theo 2 kiểu chính sau: Ấn định phiên làm việc
Đánh cắp phiên làm việc
2.6.2. Ấn định phiên làm việc
Trong kiểu tấn công ấn định một phiên làm việc, hacker ấn định sẵn session ID cho nạn nhân trước khi họ đăng nhập vào hệ thống. Sau đó, hacker sẽ sử dụng session ID này để bước vào phiên làm việc của nạn nhân đó.
Một số cách tấn công session ID:
Tấn công session ID trên tham số URL
Hacker gửi một liên kết yêu cầu người dùng đăng nhập vào hệ thống máy đích với session ID đã được ấn định sẵn trên URL.
Cách tấn công này đòi hỏi ứng dụng phải tạo session ID ngay khi người dùng sử dụng ứng dụng. Dễ bị phát hiện bởi người dùng.
Tấn công session ID trong biến ẩn form
Kỹ thuật này cũng tương tự kỹ thuật biến ẩn form, nghĩa là sau khi hacker xem mã HTML của trang web, nhận thấy sesion ID được đặt trong biến ần form, hacker sẽ gửi một session ID cũng trên URL đến người dùng hoặc một trang web giống trang đích nhưng với biến ẩn form mang giá trị ấn định sẵn.
Tấn công session ID trong cookie
Bằng việc lợi dụng cookie, hacker có ba cách để đưa một sesion ID đến trình duyệt của nạn nhân:
- Sử dụng ngôn ngữ kịch bản (Javascrip, Vbscrip…) để thiết lập một cookie trong trình duyệt của nạn nhân.
- Sử dụng thẻ <META> để thiết lập thuộc tính Set-Cookie - Sử dụng Set-Cookie của HTTP header trả lời
Cách phòng chống:
Trước hết cũng cần nói rằng việc phòng chống kiểu tấn công ấn định session ID này không thuộc trách nhiệm của trình chủ web server, vì trình chủ chỉ cung cấp API quản lý phiên làm việc cho ứng dụng. Vì thế, chỉ ứng dụng mới cần có những biện pháp phòng chống lại kiểu tấn công này.
Biện pháp 1: Chống việc đăng nhập với một session ID có sẵn
Theo kiểu tấn công này, người dùng đăng nhập vào hệ thống thông qua một session ID do hacker tạo sẵn thay vì cho trình chủ tạo mới, do đó để có thể phòng chống, ứng dụng phải hủy bỏ session ID được cung cấp bởi trình duyệt của người dùng khi đăng nhập và luôn tạo một session ID mới khi người dùng đăng nhập thành công.
Biện pháp 2: Phòng chống những hacker bên ngoài hệ thống
Việc tạo ứng dụng trên hệ thống theo hướng giới hạn (chỉ tạo một session ID mới cho người dùng sau khi họ thành công) sẽ khi cho những hacker không phải là người dùng hợp lệ của hệ thống không thể sử dụng phương pháp tấn công này.
Biện pháp 3: Giới hạn phạm vi ứng dụng của session ID + Kết hợp session ID với địa chỉ của trình duyệt
+ Kết hợp session ID với thông tin chứng thực được mã hóa SSL của người dùng.
+ Xóa bỏ sesion khi người dùng thoát khỏi hệ thống hay hết hiệu lực, có thể thực hiện trên trình chủ hoặc trình duyệt (cookie).
+ Người sử dụng phải dùng chế độ thoát khỏi hệ thống để xóa bỏ session hiện thời và có thể những session ID còn lưu lại trên hệ thống khi họ quên thoát ra ngoài những lần trước.
+ Thiết lập thời gian hết hiệu lực cho session, tránh trường hợp hacker có thể duy trì session và sử dụng nó lâu dài.
2.6.3. Đánh cắp phiên làm việc
Khác với kiểu tấn công ấn định phiên làm việc, hacker đánh cắp một sesion ID của người dùng khi họ đang trong phiên làm việc của mình. Và có thể đánh cắp session ID của người dùng, hacker có thể dùng những phương pháp sau:
Dự đoán phiên làm việc (Prediction session ID)
Hacker phải là người dùng hợp lệ của hệ thống, sau vài lần đăng nhập vào hệ thống, hacker xem xét các giá trị session ID nhận được, tìm ra quy luật phát sinh và từ đó có thể đoán được giá trị của một phiên làm việc của người dùng kế tiếp.
Vét cạn phiên làm việc (Brute force ID)
Hacker có thể tự tạo ra một chương trình gửi nhiều yêu cầu trong một khoảng thời gian đến trình chủ. Mỗi một yêu cầu kèm theo một session ID để tìm các session ID đang tồn tại. Hacker dựa vào thói quen của những nhà phát triển ứng dụng lấy thời gian hay địa chỉ IP của người dùng để tạo session ID để hạn chế vùng vét cạn.
Dùng đoạn mã đánh cắp phiên làm việc
Bằng cách chèn vào một đoạn mã thực thi trên chính trình duyệt của nạn nhân, hacker có thể lừa người dùng theo vết một liên kết để từ đó thực hiện đánh cắp cookie của người dùng và cách này được thực hiện thông qua lỗi Cross-Site Scripting. Sau khi có được phiên làm việc của người dùng, hacker vào phiên làm việc của họ.
Biện pháp phòng chống:
Nội dung cách phòng chống tương tự cách phòng chống trong kỹ thuật “Ấn định phiên làm việc” và cách tấn công Cross-Site Scripting.
Một số ưu ý:
+ Không được chủ quan khi nghĩ rằng thuật toán tạo session của ứng dụng là bảo mật, không ai có thể đoán được.
+ Với session ID quá ngắn, hacker có thể dùng kỹ thuật “Vét cạn”. Nhưng không vì thế mà cho rằng ứng dụng sẽ bảo mật với session ID dài và phức tạp vì kích thước session ID sẽ là một vấn đề nếu thuật toán không tốt.
CHƢƠNG III. TRIỂN KHAI PHƢƠNG PHÁP TẤN CÔNG TỪ CHỐI DỊCH V VÀ GIẢI PHÁP BẢO MẬT WEBSITE TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ
THUẬT VINH
3.1. Tình hình ứng dụng công nghệ thông tin giai đoạn 2011-2015 3.1.1. Hạ tầng kỹ thuật 3.1.1. Hạ tầng kỹ thuật
Trong những năm qua được sự quan tâm của Bộ Lao động Thương binh và Xã hội với nỗ lực của Nhà trường, Trường Đại học Sư phạm Kỹ thuật Vinh đã từng bước đầu tư nâng cấp hạ tầng thiết bị công nghệ thông tin nhằm phục vụ đào tạo có hiệu quả đưa chất lượng đào tạo trong Nhà trường từng bước hội nhập và phát triển mạnh. Cụ thể gia đoạn từ năm 2011 – 2015 Nhà trường đã đầu tư mua sắm và đã đưa vào sử dụng có hiệu quả các thiết bị như sau:
Số ượng máy chủ: 5 bộ. Trong đó 3 bộ máy sử dụng cho dịch vụ Web server, Data
server và DHCP server; 1 bộ phục vụ Thư viện điện tử; 1 bộ phục vụ công tác đào tạo