CHƯƠNG 1 GIỚI THIỆU VỀ AN NINH MẠNG Để nắm bắt được các vấn đề về an ninh mạng, chúng ta cần nắm rõ các kiến thức về mạng máy tính và an toàn thông tin. Mục tiêu của chương này là giúp người đọc khái quát lại các khái niệm và kiến thức cơ bản liên quan đến mạng máy tính và an toàn thông tin. Sau đó sẽ giới thiệu một số khái niệm và thuật ngữ về an ninh mạng. Khái quát về mạng máy tính Trong thời kỳ đầu về máy tính, các hệ thống hoạt động cô lập và không được kết nối với nhau.
Sự ra đời của các mạng máy tính đã làm thay đổi hoàn toàn quan điểm tính toán và cách làm việc. Nhờ có mạng máy tính, mọi thông tin có thể được trao đổi nhanh chóng và dễ dàng. Nhưng khi một hệ thống được kết nối với mạng, nó sẽ gặp nhiều mối đe dọa khác nhau và có nguy cơ bị xâm nhập cao. Do đó, để hiểu các kịch bản rủi ro liên quan đến hệ thống mạng khác nhau, điều cần thiết là phải hiểu những kiến thức cơ bản của mạng.
Mô hình kết nối hệ thống mở OSI và TCP/IP Giao tiếp cho người dùng truy nhập các thông tin và dữ liệu trên mạng thông qua chương trình ứng dụng Dịch dữ liệu được gửi từ tầng ứng dụng sang như định dạng, nén dữ liệu, mã hóa dữ liệu. Thiết lập, quản lý và kết thúc các phiên làm việc của các kết nối giữa trình ứng dụng địa phương và ở xa. Vận chuyển dữ liệu từ nguồn đến đích. Chia nhỏ dữ liệu bên gửi cho phù hợp với kênh truyền và tái lập ở bên nhận Định tuyến cho các gói tin; xử lý dữ liệu dạng gói (packet); liên quan đến địa chỉ luận lý Cung cấp phương tiện truyền dữ liệu giữa hai node kết nối trực tiếp với nhau, xử lý các kết nối bị lỗi từ tầng Physical.
Định nghĩa đặc tả về điện và vật lý cho các thiết bị của hệ thống. Xử lý dữ liệu dạng bit.1: Mô hình OSI và chức năng các tầng 21 Mô hình cơ bản nhất để hiểu cách dữ liệu truyền qua mạng là mô hình kết nối hệ thống mở (OSI – Open System Interconnection) được phát triển bởi ISO (International Organization for Standardization). Đây là một mô hình khái niệm giúp chúng ta hình dung và hiểu cách thức giao tiếp giữa hai hoặc nhiều hệ thống. Mô hình OSI chia hệ thống truyền thông thành bảy lớp trừu tượng như trong Hình 1.
Mỗi tầng của mô hình OSI xử lý một phần khác nhau của quy trình truyền thông, nó làm cho quá trình truyền thông được quản lý thuận tiện và khi xảy ra sự cố thì xử lý dễ dàng hơn. Các giao thức kết nối cũng được triển khai khác nhau ở mỗi lớp như Bảng 1.1: Các giao thức ở từng tầng của mô hình OSI Layer Các giao thức Application Layer Telnet, SSH, FTP, SMTP, HTTP, NFS, SNMP Presentation Layer JPG, PNG, GIF, MPEG, ASCII, CSS, HTML Session Layer RPC, SCP, TLS Transport Layer TCP, UDP Network Layer IPv4, IPv6, ICMP, IPsec Data Link Layer MAC, PPP, ATM, HDLC, Frame Relay Hình 1.2: So sánh mô hình OSI và TCP/IP Mô hình TCP/IP (Transmission Control Protocol/Internet Protocol) được phát triển bởi Cơ quan nghiên cứu dự án của Bộ Quốc phòng Hoa Kỳ (ARPA, sau này là DARPA) như một phần của dự án nghiên cứu về kết nối mạng để kết nối các máy tính từ xa. Mục tiêu là cho phép một ứng dụng trên một máy tính trao đổi các gói dữ liệu đến một ứng dụng khác chạy trên 22 một máy tính khác. Kiến trúc TCP/IP là một thiết kế đơn giản hơn nhiều so với mô hình OSI, được mô tả trong Hình 1.
Các lớp Application, Presentation, Session trên mô hình OSI tương ứng với lớp Application trong mô hình TCP/IP. Như vậy, tất cả các giao thức và chức năng của ba lớp ở đầu mô hình OSI được tìm thấy trong lớp Application của mô hình TCP/IP. Tầng Transport của cả hai mô hình OSI và TCP/IP tương ứng về chức năng và giao thức. Các giao thức và chức năng của lớp Network của mô hình OSI tương ứng với lớp Internet của mô hình TCP/IP.
Các chức năng và giao thức của Data link và các lớp Physical của Mô hình OSI gần tương ứng với Lớp Network Access của TCP/IP. Hiện nay, hầu hết các hệ thống trên mạng Internet đều truyền thông với nhau theo bộ giao thức của mô hình TCP/IP. Giao thức TCP và UDP Transmission Control Protocol (TCP) và User Datagram Protocol (UDP) là hai giao thức ở lớp vận chuyển được sử dụng phổ biến nhất. Hai giao thức này có một số điểm khác nhau, được mô tả trong Bảng 1.
Có rất nhiều dịch vụ mạng hoàn toàn phụ thuộc vào một hoặc hai giao thức tùy thuộc yêu cầu của việc sử dụng: nếu cần độ tin cậy và độ chính xác cao thì dùng TCP, nếu cần đảm bảo tốc độ hay kích thước dữ liệu lớn thì dùng UDP.2: Bảng so sánh TCP và UDP TCP là một giao thức hướng kết UDP là một giao thức không hướng nối; nghĩa là, một kết nối hợp lệ kết nối. Không có kết nối trước giữa các hệ thống được thiết lập được thiết lập trước khi bắt đầu trước khi dữ liệu được truyền đi. truyền dữ liệu. Các ứng dụng yêu cầu độ tin cậy Các ứng dụng có độ tin cậy của cao để truyền dữ liệu sử dụng TCP.
truyền dữ liệu không phải là sự cân nhắc quan trọng nhất sử dụng UDP. TCP mất nhiều thời gian hơn để UDP nhanh hơn TCP vì nó không truyền dữ liệu so với UDP. tiêu tốn thời gian trong việc thiết lập kết nối hoặc sửa lỗi. FTP, HTTP, HTTPS, Telnet và DNS, DHCP, TFTP, SNMP là một SMTP là một vài trong số các giao vài trong số các giao thức sử dụng thức sử dụng TCP.
Kích thước tiêu đề trong TCP là 20 Kích thước tiêu đề trong UDP là 8 byte - chứa nhiều thông tin hơn. TCP cung cấp khả năng phát hiện UDP không cung cấp phục hồi lỗi, và phục hồi lỗi và do đó đảm bảo nên không đảm bảo dữ liệu đến dữ liệu đến đích nguyên vẹn. đích nguyên vẹn. Thiết lập kết nối trong TCP Trong giao thức TCP, trước khi dữ liệu được truyền đi, cần có quá trình thiết lập kết nối bằng cách thực hiện bắt tay ba bước như Hình 1.3: Quá trình bắt tay ba bước của TCP Quá trình bắt tay ba bước giữa Host P và Host Q được thực hiện như sau: - Host P gửi gói TCP cho Host Q với cờ SYN được bật.
Host Q nhận được yêu cầu SYN được gửi bởi Host P. - Host Q trả lời với cờ SYN + ACK, nghĩa là các cờ SYN và ACK trong gói TCP được bật. Host P nhận được SYN + ACK của Host Q. - Host P gửi ACK cuối cho Host Q.
Host Q nhận được. Kết thúc quá trình bắt tay. Để biết quá trình bắt tay ba bước diễn ra như thế nào và xem lưu lượng truy cập mạng diễn ra trong quá trình bắt tay, chúng ta có thể sử dụng phần mềm Wireshark để bắt lưu lượng truy cập khi duyệt đến trang web nào đó. Thông tin chi tiết của quá trình bắt tay được thể hiện trong Hình 1.4: Các gói tin bắt được từ quá trình bắt tay ba bước Một gói tin TCP có sáu cờ được BẬT hoặc TẮT trong khi giao tiếp.
Các cờ này được sử dụng cho các mục đích khác nhau, chẳng hạn như bắt đầu một phiên, xác nhận, ưu tiên và kết thúc phiên. Điều quan trọng là phải hiểu những lá cờ này vì nhiều cuộc tấn công và kỹ thuật thám mã phụ thuộc vào thao tác của những cờ đó. Sau đây là ý nghĩa của 6 cờ trong gói tin TCP: - URG: được sử dụng để thông báo cho máy chủ nhận rằng dữ liệu nhất định trong segment là khẩn cấp và nên được ưu tiên. 24 - ACK: biểu thị xác nhận dữ liệu đã nhận.
- PSH: thông báo cho máy nhận rằng dữ liệu (trong bộ đệm) phải được đẩy lên ứng dụng nhận ngay lập tức. - RST: được sử dụng để hủy kết nối dưới dạng phản hồi lỗi. - SYN: được sử dụng để bắt đầu một kết nối mới. - vFIN: được sử dụng để đóng kết nối.
Giao thức IP, địa chỉ IP và cổng Giao thức IP (Internet Protocol) là giao thức hoạt động ở tầng Network trong mô hình TCP/IP, nó chịu trách nhiệm làm cho các gói dữ liệu có thể định tuyến tới các mạng khác nhau. IP là một giao thức liên kết đơn giản, không kết nối, nó dựa vào các giao thức trong các lớp khác để thiết lập kết nối nếu cần các dịch vụ hướng kết nối, cũng như để cung cấp phát hiện lỗi và khôi phục lỗi. Bởi vì nó không chứa kết nối, phát hiện lỗi hoặc mã khôi phục lỗi, IP đôi khi được gọi là giao thức không đáng tin cậy. IP dựa trên giao thức thông điệp điều khiển Internet (ICMP - Internet Control Message Protocol) để báo cáo lỗi trong quá trình xử lý một datagram và cung cấp thêm thông điệp quản trị và trạng thái.
Hai chức năng chính của IP là việc đánh địa chỉ và định tuyến. Một địa chỉ IP là một tên duy nhất mà các máy tính sử dụng để nhận dạng và liên lạc với nhau. Phiên bản IP được sử dụng rộng rãi đầu tiên là IPv4, sau đó là IPv6. Có hai dạng địa chỉ IP là Public và Private.
Khi ta nhận được kết nối Internet, ta thực sự có được một địa chỉ IP Public và địa chỉ IP Public này được chia sẻ giữa nhiều máy tính bằng cách sử dụng địa chỉ IP Private. Do đó, một công ty chỉ trả tiền cho một IP Public duy nhất và chia sẻ nó cho nhiều IP Private, miễn phí sử dụng. Cơ quan IANA (Internet Assigned Numbers Authority) đã quy định rõ ràng về địa chỉ IP nào có thể được sử dụng ở chế độ Public và địa chỉ nào là Private. Mỗi hệ thống luôn được xác định bởi một địa chỉ IP duy nhất, nó được sử dụng để nhận dạng duy nhất một máy tính.
Khái niệm quan trọng tiếp theo cần hiểu là số cổng (port) – xác định dịch vụ đang được chạy trên máy tính. Hãy xem xét một máy tính A đang chạy nhiều ứng dụng như trình duyệt, một ứng dụng trò chuyện, một ứng dụng email, v. Một người dùng trên máy tính B muốn gửi thông điệp trò chuyện tới người dùng trên máy tính A. Bằng cách biết địa chỉ IP, máy tính A và máy tính B có thể nhận dạng lẫn nhau.
Nhưng làm thế nào để máy tính B đảm bảo rằng dữ liệu trò chuyện được gửi chính xác đến ứng dụng trò chuyện chạy trên máy tính A? Điều này đạt được bằng cách sử dụng số cổng.