1. Các hình thức tấn công
1.1. Tấn công thăm dò
Đối với loại tấn công này, hacker chủ yếu chỉ muốn thăm dò hệ thống, và tập hợp
các thông tin cần thiết xoay quanh tổ chức của hệ thống. Trong hầu hết trường hợp, thông tin này sẽ được hacker dùng để tổ chức một cuộc đột nhập trái phép hoặc một cuộc tấn công từ chối dịch vụ (DoS).
Các hình thức tấn công kiểu thăm dò bao gồm: 1.1.1. In dấu chân (footprinting):
In dấu chân là việc dùng các công cụ và kỹ thuật để lấy thông tin cơ bản đầu tiên về một tổ chức hoặc một chuyên khu web muốn tấn công. In dấu chân một cách có hệ thống sẽ cho phép kẻ tấn công lưu trữ đầy đủ về bố trí bảo mật tổ chức. Thông qua kết hợp các công cụ và kỹ thuật, kẻ tấn công có thể lấy số lượng không rõ rồi rút thành dãy tên vùng cụ thể, khối mạng, địa chỉ IP của hệ thống nối thẳng Internet. Tuy có nhiều loại kỹ thuật in dấu chân song chủ yếu nhằm vào khám phá thông tin liên quan đến những công nghệ như: Internet, intranet, truy nhập từ xa và extranet.
Các bước thông thường trong quá trình in dấu chân gồm có: - Xác định phạm vi hoạt động. - Đếm mạng.
- Thẩm vấn DNS. - Dò thám mạng.
1.1.2. Quét (scanning):
Nếu như in dấu chân tương đương với thăm dò thông tin ở một nơi thì quét tương đương với gõ cửa tường tìm cửa. Ở giai đoạn in dấu chân, danh sách mạng và địa chỉ IP được lấy thông qua kỹ thuật truy vấn tin kiểu như whois hay tìm kiếm. Những kỹ thuật này cung cấp nhiều thông tin quý giá cho kẻ tấn công bao gồm tên nhân viên, số điện thoại, dãy địa chỉ IP, máy phục vụ DNS, và máy phục vụ thư tín Qua đó có thể xác định hệ thống nào đang hoạt động và phương thức truy cập Internet bằng những công cụ
kỹ thuật như:
- Quét Ping mạng.
- Truy vấn bản tin ICMP. - Quét cổng.
1.1.3. Liệt kê (Enumerationning):
Giả sử việc thực hiện các bước in dấu chân và quét đều không thành công hoặc những thông tin thu được không thể đủ để phát động một cuộc tấn công tức thời nào, hacker sẽ chuyển sang phương pháp định danh tài khoản người dùng hợp lệ hoặc các tài nguyên dùng chung không được bảo vệ kỹ. Liệt kê (enumeration) là một cách để trích các tài khoản hợp lệ hoặc các tài nguyên từ hệ thống. Sự khác biệt chính giữa các kỹ thuật thu thập thông tin bằng footprinting và scanning và kỹ thuật enumerationning nằm ở cấp xâm nhập của hacker. Liệt kê liên quan đến các tuyến nối tích cực với các hệ thống và các truy vấn có định hướng.
Phần lớn thông tin thu thập qua kỹ thuật liệt kê thoạt nhìn có vẻ như vô hại. Tuy nhiên những thông tin rò rỉ từ lỗ thủng theo sau có thể gây tai hại. Nói chung, sau khi liệt kê một tên người dùng hoặc một phần dùng chung hợp lệ, vấn đề còn lại là thời gian trước khi hacker đoán được mật hiệu tương ứng hoặc tìm ra các điểm yếu kết hợp với các giao thức chia sẻ tài nguyên. Có thể nhóm tạm thông tin liệt kê thành những thể
loại sau:
- Dùng chung và tài nguyên mạng. - Người dùng và nhóm. - Ứng dụng và banner. 1.2. Tấn công thâm nhập
Đây là hình thức tấn công mà trong đó hacker cố gắng thực hiện việc xâm nhập trái phép vào hệ thống để moi ra các thông tin quản trị nhạy cảm.
1.3. Tấn công từ chối dịch vụ (DoS - Deny of Service)
Với loại tấn công này, hacker cố gắng vô hiệu hóa hoặc ngắt các truy nhập mạng, khai thác tài nguyên mạng, các dịch vụ và cả hệ thống. Mục đích của hacker là gây ảnh hưởng, thậm chí ngăn chặn quá trình đăng nhập vào các nguồn tài nguyên mạng của những user hợp lệ.
Các cách thức tấn công DoS bao gồm:
1.3.1. Thông qua kết nối phá hoại giới hạn tài nguyên mạng: + Tấn công kiểu SYN flood (xem hình 3): + Tấn công kiểu SYN flood (xem hình 3):
Lợi dụng cách thức hoạt động của kết nối TCP/IP, hacker bắt đầu quá trình thiết lập một kết nối TPC/IP tới mục tiêu muốn tấn công mà không gửi trả gói tin ACK, khiến cho mục tiêu luôn rơi vào trạng thái chờ (đợi gói tin ACK từ phía yêu cầu thiết lập kết nối) và liên tục gửi gói tin SYN ACK để thiết lập kết nối. Một cách khác là giả mạo địa chỉ IP nguồn của gói tin yêu cầu thiết lập kết nối SYN và cũng như trường hợp trên, máy tính đích cũng rơi vào trạng thái chờ vì các gói tin SYN ACK không thể đi đến đích do địa chỉ IP nguồn là không có thật. Kiểu tấn công SYN flood được các hacker áp dụng để tấn công một hệ thống mạng có băng thông lớn hơn hệ thống của hacker.
Hình 3. Tấn công SYNflood 1.3.2. Lợi dụng nguồn tài nguyên của chính nạn nhân để tấn công + Kiểu tấn công Land Attack
Kiểu tấn công Land Attack cũng tương tự như SYN flood, nhưng hacker sử dụng chính IP của mục tiêu cần tấn công để dùng làm địa chỉ IP nguồn trong gói tin, đẩy mục tiêu vào một vòng lặp vô tận khi cố gắng thiết lập kết nối với chính nó.
+ Kiểu tấn công UDP flood
Hacker gửi gói tin UDP echo với địa chỉ IP nguồn là cổng loopback của chính mục tiêu cần tấn công hoặc của một máy tính trong cùng mạng. Với mục tiêu sử dụng cổng UDP echo (port 7) để thiết lập việc gửi và nhận các gói tin echo trên 2 máy tính (hoặc giữa mục tiêu với chính nó nếu mục tiêu có cấu hình cổng loopback), khiến cho 2 máy tính này dần dần sử dụng hết băng thông của chúng, và cản trở hoạt động chia sẻ tài nguyên mạng của các máy tính khác trong mạng.
1.3.3. Sử dụng băng thông:
+ Tấn công kiểu DDoS (Distributed Denial of Service)
Đây là cách thức tấn công rất nguy hiểm. Hacker xâm nhập vào các hệ thống máy tính, cài đặt các chương trình điều khiển từ xa, và sẽ kích hoạt đồng thời các chương trình này vào cùng một thời điểm để đồng loạt tấn công vào một mục tiêu. Với DDoS, các hacker có thể huy động tới hàng trăm thậm chí hàng ngàn máy tính cùng tham gia tấn công cùng một thời điểm (tùy vào sự chuẩn bị trước đó của hacker) và có thể "ngốn" hết băng thông của mục tiêu trong nháy mắt.
+ Tấn công kiểu DRDoS (Distributed Reflection Denial of Service Attack)
Hình 5. Tấn công DRDOS
Đây là kiểu tấn công lợi hại nhất và làm boot máy tính của đối phương nhanh gọn nhất. Cách làm thì cũng tương tự như DDos nhưng thay vì tấn công bằng nhiều máy tính thì người tấn công chỉ cần dùng một máy tấn công thông qua các server lớn trên thế giới. Vẫn với phương pháp giả mạo địa chỉ IP của mục tiêu cần tấn công (victim), kẻ tấn công sẽ gởi các gói tin đến các server mạnh nhất, nhanh nhất và có đường truyền rộng nhất như Yahoo , các server này sẽ phản hồi các gói tin đó đến địa chỉ của victim. Việc cùng một lúc nhận được nhiều gói tin thông qua các server lớn này sẽ nhanh chóng làm nghẽn đường truyền của máy tính nạn nhân và làm crash, reboot máy tính đó. Cách tấn công này lợi hại ở chỗ chỉ cần một máy có kết nối Internet đơn giản với đường truyền bình thường cũng có thể đánh bật được hệ thống có đường truyền tốt nhất thế giới nếu như ta không kịp ngăn chặn.
1.3.4. Sử dụng các nguồn tài nguyên khác
Kẻ tấn công lợi dụng các nguồn tài nguyên mà nạn nhân cần sử dụng để tấn công. Những kẻ tấn công có thể thay đổi dữ liệu và tự sao chép dữ liệu mà nạn nhân cần lên nhiều lần, làm CPU bị quá tải và các quá trình xử lý dữ liệu bị đình trệ.
+ Tấn công kiểu Smurf Attack:
Kiểu tấn công này cần một hệ thống rất quan trọng, đó là mạng khuyếch đại. Hacker dùng địa chỉ của máy tính cần tấn công bằng cách gửi gói tin ICMP echo cho toàn bộ mạng (broadcast). Các máy tính trong mạng sẽ đồng loạt gửi gói tin ICMP reply cho máy tính mà hacker muốn tấn công. Kết quả là máy tính này sẽ không thể xử lý kịp thời một lượng lớn thông tin và dẫn tới bị treo máy.
Hình 6. Tấn công Smurf Attack + Tấn công kiểu Tear Drop:
Trong mạng chuyển mạch gói, dữ liệu được chia thành nhiều gói tin nhỏ, mỗi gói tin có một giá trị offset riêng và có thể truyền đi theo nhiều con đường khác nhau để tới đích. Tại đích, nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được kết hợp lại như ban đầu. Lợi dụng điều này, hacker có thể tạo ra nhiều gói tin có giá trị offset trùng lặp nhau gửi đến mục tiêu muốn tấn công. Kết quả là máy tính đích không thể sắp xếp được những gói tin này và dẫn tới bị treo máy vì bị "vắt kiệt" khả năng xử lý.
- Phá hoại hoặc chỉnh sửa thông tin cấu hình
Lợi dụng việc cấu hình thiếu an toàn như việc không xác thực thông tin trong việc gửi/nhận bản tin cập nhật (update) của router... mà kẻ tấn công sẽ thay đổi trực tiếp hoặc từ xa các thông tin quan trọng này, khiến cho những người dùng hợp pháp không thể sử dụng dịch vụ.
- Phá hoại hoặc chỉnh sửa phần cứng
Lợi dụng quyền hạn của chính bản thân kẻ tấn công đối với các thiết bị trong hệ thống mạng để tiếp cận phá hoại các thiết bị phần cứng như router, switch.
1.4. Tấn công ứng dụng web:
Tấn công các ứng dụng web (Web Attack) ngày nay rất phổ biến như: + Thâm nhập hệ thống qua cửa sau (Backdoor):
Các kỹ thuật cổng sau rất phong phú, phụ thuộc vào sở trường, trình độ của từng người. Chúng ta có thể liệt kê một số kỹ thuật như sau:
• Backdoor qua inetd: Khi đó, intruder sẽ ghi thêm một vài dòng vào các tập tin
/etc/services và /etc/inetd.conf. Thường các chương trình của kẻ xâm nhập (shell chẳng hạn) sẽ mang một tên giống như service chuẩn của Unix.
• Backdoor dạng daemon: Là tiến trình luôn chạy trên bộ nhớ với một cái tên giống như chương trình bình thường.
• Trojaned backdoor: Một số chương trình tiện ích như sshd đã được viết sẵn với backdoor cài trong. Kẻ xâm nhập có thể download về và thay sshd gốc bằng trojaned sshd cho phép kết nối vào máy qua cổng này.
• Backdoor hoặc sniffer qua cron. Hoàn toàn có thể kẻ xâm nhập cài chương trình cổng sau hoặc nghe lén theo giờ định sẵn.
• Các kiểu kết nối của backdoor ngược về máy của kẻ xâm nhập rất phong phú để khắc phục firewall. Có những backdoor active mở kết nối từ trong ra, có backdoor chạy trên UDP, có backdoor mở kết nối dạng raw socket và liên lạc với máy của intruder qua các gói icmp. Với netstat còn nguyên vẹn và hiểu biết tốt về máy của mình, chúng ta có thể phát hiện được các backdoor kiểu này.
+ Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Side Scripting):
Đây là kĩ thuật tấn công chủ yếu nhằm vào thông tin trên máy tính của người dùng hơn là vào hệ thống máy chủ. Bằng cách thêm một đoạn mã bất kì ( thường được lập trình bằng ngôn ngữ kịch bản như JavaScript, VBScript), hacker có thể thực hiện việc đánh cắp thông tin quan trọng như cookies để từ đó trở thành người dùng hợp lệ của ứng dụngdựa trên những thông tin đánh cắp này. Cross-Site scripting cũng là một kiểu tấn công "session hijacking".
Quá trình thực hiện XSS có thể được mô tả qua hình dưới đây:
Hình 7. Quá trình thực hiện XSS
• Bước 2: Người dùng nhận được 1 liên kết thông qua email hay trên chính trang Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo ra). Thông thường hacker khiến người dùng chú ý bằng những câu kích thích sự tò mò của người
dùng như " Kiểm tra tài khoản", "Một phần thưởng hấp dẫn đang chờ bạn"
• Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu) về máy chủ của hacker. • Bước 4: Hacker tạo một chương trình cgi (ví dụ: steal.cgi) hoặc một trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin.
• Bước 5: Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để thâm nhập vào tài khoản của người dùng.
Ngoài cách tấn công truyền thống trên, XSS ngày nay còn có một biến thể, đó là tấn công XSS bằng Flash. Macromedia Flash cho phép lập trình bằng một ngôn ngữ kịch bản đã được xây dụng sẵn trong Flash là ActionScript. ActionScript có cú pháp đơn giản và tương tự như JavaScript, C hay PERL.
+ Chèn câu truy vấn SQL (SQL Injection)
Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểm tra giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những giá trị không hợp lệ để dễ dàng đăng nhập vào hệ thống. SQL Injection là cách lợi dụng những lỗ hổng trong quá trình lập trình Web về phần truy xuất cơ sở dữ liệu. Đây không chỉ là khuyết điểm của riêng SQL Server mà nó còn là vấn đề chung cho toàn bộ các cơ sở dữ liệu khác như Oracle, MS Access hay IBM DB2. Khi hacker gửi những dữ liệu (thông qua các form), ứng dụng Web sẽ thực hiện và trả về cho trình duyệt kết quả câu truy vấn hay những thông báo lỗi có liên quan đến cơ sở dữ liệu. Và nhờ những thông tin này mà hacker biết được nội dung cơ sở dữ liệu và từ đó có thể điều khiển toàn bộ hệ thống ứng dụng.
+ Đánh cắp phiên làm việc (Session Hijacking)
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ sau khi nạn nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữ trong cookie hay tham số URL, biến ẩn của form.
Quá trình tấn công được tóm tắt như sau: • Bước 1: Thiết lập session ID.
Hệ thống quản lí session theo 2 hướng:
+ Hướng tự do: chấp nhận bất kì một session ID, nếu chưa tồn tại session thì tạo mới một session ID
+ Hướng giới hạn: chỉ chấp nhận session ID nào đã đăng kí trước đó. Với hệ thống hướng tự do hacker chỉ cần thiết lập một session ID bất kì, nhớ và sau đó sử dụng lại session ID này. Ở hướng giới hạn, hacker phải đăng kí một session ID với ứng dụng.
Phụ thuộc vào qui trình quản lí phiên làm việc mà hacker lưu trữ thời gian sống của phiên làm việc cho đến khi nạn nhân đăng nhập vào hệ thống. Thông thường một phiên làm việc không tồn tại vô hạn định. Hệ thống sẽ tự động hủy bỏ phiên làm việc nếu nó không thực hiện một thao tác nào (thời gian nhàn rỗi ) hoặc hết hạn định. Do đó bước 1a là kẻ tấn công sẽ bảo trì phiên làm việc bằng cách gửi yêu cầu đến server. • Bước 2: Gởi ID này đến trình duyệt nạn nhân.
Hacker gửi session ID vừa tạo đến người dùng và việc trao đổi ID session còn tùy vào ứng dụng mà có thể qua URL, biến ẩn form hay cookie. Các cách tấn công thông
dụng gồm:
o Tấn công session ID trên tham số URL. o Tấn công session ID bằng biến ẩn form. o Tấn công session ID trong cookie.
• Bước 3: Đột nhập vào phiên làm việc của nạn nhân.
Sau khi nạn nhân đăng nhập vào hệ thống qua session ID đã được chỉ định sẵn và chưa thoát khỏi ứng dụng, hacker lúc này bắt đầu dùng session ID đó để bước vào phiên làm việc của nạn nhân.
Hình 9. Chi tiết quá trình tấn công người dùng sử dụng Session Hijacking + Tràn bộ đệm (Buffer Overflow)
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được cấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay vào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống. Nghiêm trọng hơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ thống.