tong quan
BÀI I: TỔNG QUAN
I.1.BỘ GIAO THỨC TCP/IP
I.1.1. Cấu trúc phân tầng và phương thức hoạt động của họ giao thức TCP/IP
Họ giao thức TCP/IP trong mô hình Internet 4 tầng được mô tả như hình vẽ sau đây:
Trong cấu trúc bốn tầng của Internet, khi dữ liệu truyền từ tầng ứng dụng (Application) cho đến tầng truy nhập mạng (Network Access) thì mỗi tầng đều bổ sung thêm vào phần dữ liệu phần điều khiển của mình để đảm bảo cho việc truyền tin được chính xác. Mỗi thông tin điều khiển này được gọi là một header và được đặt ở trước phần dữ liệu được truyền. Mỗi tầng xem tất cả các thông tin mà nó nhận được từ tầng trên và đặt phần thông tin điều khiển header của nó vào trước phần thông tin này. Việc bổ sung thêm vào các header của mỗi tầng trong quá trình truyền tin được gọi là sự đóng gói (encapsulation). Quá trình nhận dữ liệu thực hiện theo chiều ngược lại trong đó mỗi tầng sẽ tách phần header của mình ra trước khi truyền phần dữ liệu lên tầng trên.
Mỗi tầng có một cấu trúc dữ liệu độc lập và mỗi tầng không cần biết đến cấu trúc dữ liệu được dùng ở tầng trên hay tầng dưới của nó. Trong thực tế, cấu trúc dữ liệu của một tầng được cấu tạo tương thích với cấu trúc dữ liệu ở các tầng liền kề để đảm bảo cho việc truyền dữ liệu được hiệu quả hơn. Tuy nhiên ở mỗi tầng vẫn có một cấu trúc dữ liệu riêng và có một thuật toán riêng để mô tả cấu trúc đó.
Hình vẽ sau mô tả quá trình bổ sung thêm thông tin điều khiển khi truyền dữ liệu giữa các tầng trong mô hình Internet:
Dữ liệu được truyền trong các ứng dụng dùng TCP được gọi là một dòng dữ liệu (data stream) trong khi trong các ứng dụng dùng UDP (User Datagram Protocol) thì được gọi là các thông báo (messages). Dữ liệu truyền trong tầng TCP được định nghĩa theo cấu trúc segment còn trong UDP là packet. Tầng Internet xem tất cả các dữ liệu như là các khối có tên gọi datagram. Bộ giao thức TCP/IP có thể dùng nhiều kiểu khác nhau của tầng mạng vật lý (Ethernet,Tokenring,FDDI,X25..) và mỗi loại có thể có một phương thức truyền dữ liệu khác nhau. Phần lớn các mạng đóng gói phần dữ liệu truyền đi dưới dạng các packets hay các frames. Ở đây ta thừa nhận dữ liệu mà tầng mạng vật lý truyền đi là các frames.
I.1.2. Tầng truy nhập mạng (Network Access Layer)
Tầng truy nhập mạng là tầng thấp nhất trong cấu trúc phân bậc của TCP/IP. Những giao thức ở tầng này cung cấp cho hệ thống phương thức để truyền dữ liệu trên các tầng vật lý khác nhau của mạng. Nó định nghĩa cách thức truyền các khối dữ liệu (datagram) IP. Các giao thức ở tầng này phải biết chi tiết các phần cấu trúc vật lý mạng (bao gồm cấu trúc gói, địa chỉ…) để định dạng được chính xác các dữ liệu sẽ được truyền tùy thuộc vào từng loại mạng cụ thể.
So sánh với cấu trúc OSI thì tầng này của TCP/IP tương đương với ba tầng Network, Datalink, và Physical trong cấu trúc OSI.
Chức năng định dạng dữ liệu sẽ được truyền ở tầng này bao gồm việc đóng gói các gói dữ liệu IP vào các frame sẽ được truyền trên mạng và việc ánh xạ các địa chỉ IP vào địa chỉ vật lý được dùng cho mạng trước khi truyền xuống kênh vật lý.
I.1.3. Tầng liên mạng (Internet Layer)
Tầng liên mạng là tầng ở ngay trên tầng truy nhập mạng trong cấu trúc phân tầng của TCP/IP. Internet Protocol (IP) là giao thức trung tâm của TCP/IP và là phần quan trọng nhất của tầng liên mạng (Internet) này. IP cung cấp dịch vụ lưu chuyển các gói IP trên mạng . Tất cả các giao thức ở tầng trên và tầng dưới của IP đều dùng IP để truyền dữ liệu, và tất cả các dữ liệu lưu truyền qua IP, vào và ra, đều không quan tâm đến đích cuối cùng của nó.
IP bao gồm một số chức năng sau:
· Định nghĩa các khối dữ liệu (datagram), là khối cơ bản của việc truyền tin.
· Định nghĩa hệ thống địa chỉ Internet (IP Address).
· Truyền dữ liệu giữa tầng vận chuyển (Transport) và tầng truy nhập mạng.
· Định tuyến đường để gửi các gói dữ liệu đến các trạm ở xa.
· Thực hiện việc phân mảnh và hợp nhất (fragmentation & reassembly) các khối dữ liệu.
Cấu trúc dữ liệu được truyền ở tầng IP là các datagram. Mỗi datagram có một header chứa các thông tin cần thiết để truyền dữ liệu đi. Trong phần header này có chứa địa chỉ đích và IP sẽ truyền dữ liệu bằng cách kiểm tra địa chỉ đích này. Địa chỉ đích bao gồm 32bit dùng để xác định mạng đích và trạm ở trên mạng đích đó. Nếu địa chỉ đích là địa chỉ của một trạm nằm trên cùng một mạng với máy nguồn thì các gói dữ liệu sẽ được truyền thẳng tới đích. Trong trường hợp nếu địa chỉ đích không nằm trên cùng một mạng với máy nguồn thì các gói dữ liệu phải được gửi đến một cổng truyền (gateway) để truyền đi (Khi đó gateway truyền các gói dữ liệu nằm giữa hai mạng vật lý khác nhau).
Hình vẽ sau đây minh họa khuôn dạng của một gói dữ liệu lưu truyền ở tầng IP
Trong đó
· Trường IP version dùng để chỉ phiên bản của IP được dùng.
· Trường Hdr len chỉ độ dài của header, độ dài của header đuợc đánh giá bởi các từ 32 bit. Nếu không có trường này thì độ dài ngầm định của header là 5 từ. Trường này gồm có 8 bit.
· Trường Total Length chứa độ dài của các gói, được đo dưới dạng các byte, bao gồm cả phần header lẫn phần dữ liệu của mỗi gói dữ liệu.
· Trường Identification dùng để xác định một fragment thuộc vào gói nào.
IP là giao thức cung cấp dịch vụ truyền thông theo kiểu “không liên kết” (connectionless) hay còn gọi là dịch vụ Datagram (tên gọi của đơn vị dữ liệu sử dụng giao thức IP). Phương thức không liên kết cho phép cặp đối tác không cần phải thực hiện việc thiết lập liên kết trước khi truyền dữ liệu và do vậy cũng không cần phải giải phóng liên kết khi không còn nhu cầu truyền dữ liệu nữa. Điều đó làm giảm nhẹ công sức cài đặt hệ thống nhưng tăng độ phức tạp kiểm soát luồng dữ liệu và tiếp nhận sự đúng đắn dữ liệu trong trường hợp nhiều người sử dụng đồng thời trên mạng.
I.1.4. Tầng vận chuyển (Transport Layer)
Tầng giao thức nằm ngay trên tầng IP là tầng vận chuyển (Transport). Hai giao thức quan trọng nhất trong tầng này là TCP (Transmission Control Protocol) và UDP (User Datagram Protocol). TCP cung cấp dịch vụ truyền dữ liệu được tin tưởng với khả năng phát hiện lỗi và sữa lỗi theo kiểu end-to-end. Còn UDP cung cấp các chương trình ứng dụng thâm nhập trực tiếp đến các dịch vụ lưu truyền datagram, điều này cho phép trao đổi các thông điệp ra ngoài mạng với một số lượng nhỏ các giao thức. Cả hai giao thức này đều truyền dữ liệu giữa tầng ứng dụng và tầng Internet.
Trong khi IP là giao thức thuộc loại “không liên kết” (connectionless) như đã nói ở trên thì TCP lại thuộc loại “có liên kết” (connection-oriented), nghĩa là phải có các thủ tục thiết lập liên kết và thủ tục giải phóng liên kết. Về chức năng TCP tương đương với tầng giao thức đầy đủ nhất của giao thức chuẩn Transport của ISO (tức là Class 4). Tuy nhiên, khác với mô hình OSI, TCP sử dụng phương thức trao đổi các dòng dữ liệu (Data Stream) giữa người sử dụng. Dữ liệu theo dòng cũng được phân đoạn thành các TPDU (Transport Protocol Data Unit) để truyền đi.
Giao thức UDP là một giao thức “không liên kết”. Trong hệ thống mạng UDP truyền dữ liệu một cách trực tiếp, UDP sử dụng 16 bít để ghi nhận cổng nguồn và cổng đích trong phần Header của dữ liệu. Cổng (port) ở đây có khái niệm như là một số với giá trị từ 0 đến 1023. Các cổng chuẩn là các cổng hay được dùng tới, ý nghĩa của từng cổng đươc qui định theo một chuẩn nhất định. UDP làm một công việc rất đơn giản, nó truyền từng thông điệp tới IP để yêu cầu truyền, do IP là loại giao thức không thực nên ở đó không có gì đảm bảo cho sự truyền. Khi tầng ứng dụng gửi một yêu cầu qua UDP Datagram và lời đáp không quay trở lại trong một số lần nào đó thì nó sẽ yêu cầu tầng ứng dụng gửi yêu cầu lại.
I.1.5. Tầng ứng dụng (Application Layer)
Tầng ứng dụng là tầng giao thức cao nhất nằm trong cấu trúc phân tầng của Internet. Tầng này bao gồm tất cả các tiến trình dùng các giao thức của tầng vận chuyển để truyền dữ liệu. Có nhiều giao thức ứng dụng ở tầng này, phần lớn là nhằm cung cấp cho người dùng các dịch vụ ứng dụng. Các dịch vụ thông dụng trên tầng này đều đã được đề cập đến trong phần giới thiệu về Internet như:
· Telnet : cung cấp khả năng truy cập từ xa thông qua mạng.
· FTP : dùng để truyền file trên mạng.
· SMTP (Simple Mail Transfer Protocol): truyền thư điện tử.
· RIP (Routing Infomation Protocol): dùng để trao đổi thông tin chọn đường.
I.1.6. Việc phân mảnh các gói dữ liệu
Trong quá trình truyền dữ liệu, một gói dữ liệu (datagram) có thể được truyền đi thông qua nhiều mạng khác nhau. Một gói dữ liệu nhận được từ một mạng nào đó có thể quá lớn để truyền đi so với ở trên một mạng khác, bởi vì mỗi loại cấu trúc mạng là cho phép một đơn vị truyền cực đại (maximum transmission unit), hay còn gọi là MTU, khác nhau. Đây chính là kích thước lớn nhất của một gói mà chúng có thể truyền. Nếu như một gói dữ liệu nhận được từ một mạng nào đó mà lớn hơn MTU của một mạng khác thì nó cần được phân mảnh ra thành các gói nhỏ hơn, gọi là fragment, để truyền đi, quá trình này gọi là quá trình phân mảnh. Dạng của một fragment cũng giống như dạng của một gói dữ liệu thông thường. Từ thứ hai trong phần header chứa các thông tin để xác định mỗi fragment và cung cấp các thông tin để hợp nhất các fragment này lại thành các gói như ban đầu. Trường identification dùng để xác định fragment này là thuộc vào gói dữ liệu nào.
I.2.CÁC PHƯƠNG PHÁP TẤN CÔNG TIÊU BIỂU
I.2.1. Các kiểu tấn công từ chối dịch vụ
DoS: Denial of Service
DDoS: Distributed Denial of Service
DRDoS: Distributed Reflection Denial of Service
· Botnet: Được hiểu là việc các hacker phân tán các công cụ, mã độc, virus, thường qua các crack, keygen hay các phần mềm trên mạng để khi người dùng Internet tải xuống và thực hiện (run) thì máy tính cũng như đường truyền Internet của người sử dụng sẽ trở thành công cụ tấn công của hacker. Botnet thường được hacker sử dụng để tấn công từ chối dịch vụ DoS.
· Zombie: chỉ hệ thống máy tính của người sử dụng đã bị hacker chiếm quyền điều khiển nhằm phục vụ mục đích cá nhân nào đó. Zombie thường được hacker sử dụng trong tấn công từ chối dịch vụ DDoS.
I.2.1.1.Các cách thức tấn công Dos/DDos
Định nghĩa đơn thuần của tấn công DoS : “Là một kiểu tấn công đưa một hệ thống cung cấp dịch vụ đến mức hoạt động tới hạn về tài nguyên hay gây nhầm lẫn logic dẫn đến hệ thống ngừng hoạt động”.
A. Kiểu tấn công kiểu SYN flood
Lợi dụng cách thức hoạt động của một phiên kết nối TCP/IP, hacker bắt đầu quá trình thiết lập một kết nối TCP/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.
B. 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ó.
C. 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 UDP 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), điều này 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.
D. 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.
E. Kiểu 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ý.
F. Kiểu tấn công DDoS cổ điển
Vấn đề then chốt của hacker tấn công bằng hình thái cổ điển là nắm quyền điều khiển càng nhiều máy tính càng tốt, sau đó anh ta sẽ trực tiếp phát động tấn công hàng loạt từ xa thông qua một kênh điều khiển.
Với quy mô mạng lưới tấn công bao gồm vài trăm nghìn máy, cách này có thể đánh gục ngay lập tức bất cứ hệ thống nào. Phối hợp với khả năng giả mạo địa chỉ IP, kiểu tấn công này sẽ rất khó lần theo dầu vết.
Mô hình này có một số nhược điểm:
· Mạng lưới tấn công là cố định và tấn công xảy ra đồng loạt nên rất dễ điều tra ngược tìm manh mối.
· Software cài lên các Infected Agent là giống nhau và có thể dùng làm bằng chứng kết tội hacker.
· Phía nạn nhân có thể điều chỉnh hệ thống phòng vệ để ngăn chặn vì mạng lưới tấn công là “khả kiến”.
· Hacker buộc phải trực tiếp kết nối đến mạng lưới các máy tấn công tại thời điểm tấn công để điều khiển nên rất dễ lần ra thủ phạm.
G. Kiểu tấn công Flash DDoS
Lợi dụng tính phổ biến và khả năng có thể thực hiện vai trò của Web client của Flash player (hầu như có trong mọi trình duyệt trên Internet hiện tại), hacker tiến hành “cải tiến” mô hình DDOS cổ điển. Hacker treo một file flash trên một website trung gian có nhiều người truy xuất, người dùng truy xuất website này file flash sẽ được tải về máy và được chương trình Flash thực thi. Từ đây vô số các yêu cầu truy xuất sẽ gởi đến Website mục tiêu.
Flash DDOS có một số đặc tính khiến cho việc ngăn chặn và phát hiện gần như là không thể
· Mạng lưới tấn công phức tạp và tự hình thành
o Không cần thiết phải nắm quyền điều khiển và cài DDOS software vào các infected agent. Thay vào đó mọi user với một trình duyệt có hỗ trợ nội dung Flash (có Flash player) sẽ trở thành công cụ tấn công.
o Số lượng attack agent tùy thuộc vào số lượng user truy xuất các 3rd party Website đã bị hacker “nhúng” nội dung flash, số lượng này thay đổi theo thời gian và hoàn toàn không thể nhận biết địa chỉ IP nguồn, vì đây là các user thông thường.
o Không hề có quá trình gởi lệnh và nhận báo cáo giữa hacker và mạng lưới tấn công, toàn bộ lệnh tấn công được “nhúng” trong nội dung flash và hacker không cần nhận báo cáo do đây là mô hình tấn công bất đồng bộ.
o Tấn công bất đồng bộ: việc tấn công diễn ra không cần có mệnh lệnh. User truy xuất 3rd party website, load nội dung flash về trình duyệt và Flash player thực thi nội dung flash thì ngay lập tức máy của họ trở thành một attack agent-liên tục gởi hàng trăm request đến webserver nạn nhân.
o Quy mô tấn công phụ thuộc vào số lượng 3rd party website bị lợi dụng và số lượng user thường xuyên truy xuất các website này. Chỉ tính trung bình hacker lợi dung được 10 3rd party website và mỗi website này có số lượng truy xuất khoảng 100 user tại một thời điểm thì tổng số request mà server nạn nhân phải hứng chịu tại một thời điểm lên đến con số vài chục ngàn!!! Đây là một số liệu kinh hoàng với bất kỳ ai làm quản tri hệ thống của bất cứ website nào và kết quả thường là hệ thống tê liệt ngay lập tức
· Khó khăn trong việc phòng chống Flash-DDOS
o Không thể phân biệt giữa request tấn công và request thông thường vào hệ thống. Khi số lượng request đến hệ thống rất lớn thì người quản trị sẽ cần “gạt bỏ” bớt các request tấn công, tuy nhiên anh ta sẽ gặp khó khăn trong việc “tìm và diệt” request tấn công.
o Tấn công đến từ mọi phía: có mạng lưới tấn công linh hoạt nên hầu như không thể nhận diện request tấn công từ địa chỉ IP nguồn
o Tất cả biện pháp kỹ thuật an toàn thông tin đều gặp phải một giới hạn thực tế, đó là tài nguyên của mọi hệ thống đều là hữu hạn. Khi xử lý các request thì các biện pháp này sẽ sử dụng tài nguyên của hệ thống, khi số lượng request là rất lớn thì chính việc xử lý “tìm và diệt” sẽ ngốn hết tài nguyên của hệ thống (CPU, RAM, ...)
o Truy lùng thủ phạm tấn công Flash-DDOS gặp nhiều khó khăn: hacker chỉ tiếp xúc các 3rd party website 1 lần duy nhất để upload flash và anh ta có quyền chọn lựa. Quá trình tấn công là tự xảy ra và bất đồng bộ, nên anh ta chỉ cần upload và sau đó mọi việc tự diễn ra. Hệ thống nạn nhân hầu như không thể biết các 3rd party website đang “treo” flash tử thần (trừ khi hacker không đủ trình độ và để lộ referer trong các flash request-trường hợp này ngày càng ít). Chỉ có chính user đang bị lợi dụng tấn công hoặc các ISP mới tiếp xúc trực tiếp các 3rd party website đang “treo” flash tử thần
I.2.1.2.Kiểu tấn công DRDoS (Distributed Reflection Denial of Service)
BGP (Border Gateway Protocol) được hỗ trợ bởi các router lõi Internet. Những router này dùng BGP để trao đổi bảng định tuyến với các router lõi khác mỗi khi thông tin trong bảng định tuyến bị thay đổi. Tuy nhiên đặc tính này là không quan trọng, điều quan trọng nhất ở đây là mọi kết nối giữa các router lõi được thực hiện trên cơ sở hạ tầng băng thông cực cao (high bandwidth) sẽ chấp nhận các connection TCP port 179. Với mỗi packet SYN gởi đến port 179 thì các internet router sẽ trả lời SYN/ACK
Hacker sẽ gởi SYN Flooding Internet Router với souce IP là IP của host cần tấn công (giả mạo IP). Các Internet router tin rằng những packet SYN này được gởi đi từ host Victim và nó sẽ gởi trả SYN/ACK đến Victim. Những SYN/ACK này được dùng để tấn công ngập lụt băng thông của Network Victim.
I.2.2. ARP spoofing và Attack Man in Midle
Trong mạng Ethernet/IP, khi host A muốn gởi packet cho host B nó cần phải biết MAC Address của host B để truyền thông. Host A sẽ gởi quảng bá 1 packet ARP request để hỏi. Chỉ máy tính nào có địa chỉ IP được nêu rõ trong ARP request mới trả lời request này với 1 packet ARP reply quay trở lại trực tiếp đến host A MAC Address. Lúc này IP packet sẽ được truyền thông giữa 2 host. Packet ARP request và reply chỉ được gởi nếu host gởi không biết được MAC Address của host đích.
ARP là giao thức không trạng thái, không yêu cầu xác thực, vì vậy mỗi ARP reply packet gởi đến mỗi host sẽ được update trong ARP cache. Poison packet ( Sniffer console giả mạo IP:10.0.0.1 giả mạo MAC:001122334455) phải sniffer MAC Address như Source address trong Ethernet frame. Poison packet nói với Host A nó có thể tìm thấy IP-B với MAC là 001122334455. Và cũng tại thời gian này nó cũng nói với Host B nó thể tìm thấy IP-A với MAC 001122334455. Sniffer Console sẽ phải re-route packets để 2 host truyền thông trực tiếp với nhau thông qua nó.
SNIFFER CONSOLE CHÍNH LÀ MAN IN MIDLE
Bạn đang đọc truyện trên: AzTruyen.Top