Với sự bùng nổ của khoa học và công nghệ hiện nay, tin học đã len lỏi vào mọi lĩnh vực của đồi sống nhân loại. Internet đã trở nên hết sức phổ biến trong cuộc sống.
Trang 1Mục lục
Lời nói đầu 5
Chương 1 7
Các kiến thức về mô hình mạng TCP/IP 7
1.Kiến thức chung về mạng máy tính 7
1.1 Mô hình OSI 7
1.1.1 Tầng vật lý 8
1.1.2 Tầng liên kết dữ liệu 8
1.1.3 Tầng mạng 9
1.1.4 Tầng giao vận 9
1.1.5 Tầng phiên 9
1.1.6 Tầng trình diễn 10
1.1.7 Tầng ứng dụng 10
1.2 Cấu trúc phân tầng trong giao thức TCP/IP 11
1.2.1 Tầng truy nhập mạng 13
1.2.2 Tầng liên mạng 13
1.2.3 Tầng giao vận 13
1.2.4 Tầng ứng dụng 14
2 Giao thức IP 14
2.1 Cấu trúc khối dữ liệu IP 15
2.2 Cấu trúc địa chỉ IP 17
2.3 Phân đoạn các khối dữ liệu 19
3 Giao thức TCP 19
3.1 Cấu trúc đoạn dữ liệu TCP 20
3.2 Mô hình hoạt động của TCP 22
4 Khuôn dạng dữ liệu của frame ethernet 23
Chương 2 25
Tổng quan về an ninh mạng, các nguy cơ bị tấn công, và một số biện pháp phòng tránh. 25
1 Tổng quan về an ninh mạng 25
1.1 Đặt vấn đề 25
1.2 Tình hình thực tế 25
1.3 Các hình thức xâm phạm an toàn mạng và nhu cầu bảo vệ dữ liệu 26
1.3.1 Bảo vệ dữ liệu 27
1.3.2 Bảo vệ các tài nguyên sử dụng trên mạng 27
1.3.3 Bảo vệ danh tiếng 27
2 Các mối đe dọa vào an ninh hệ thống: 27
Trang 22.1 Các tấn công vào phần cứng: 28
2.2 Tấn công trực tiếp 28
2.3 Các truy nhập không được phép 29
2.4 Quan hệ xã hội: 29
2.5 Lỗi hệ thống và các chương trình ẩn: 29
2.5.1 Lỗi của cơ chế xác thực 30
2.5.2 Lỗi trong các giao thức 30
2.5.4 Từ chối dịch vụ 30
3 Một số loại tấn công trên mạng 31
3.1 Ping of Death 31
3.2 Giả mạo IP (IP spoofing) 32
3.3 Giả mạo TCP (TCP spoofing) 32
3.4 Bắt cóc phiên (Session hijacking) 33
3.5 Tấn công bằng hàng loạt các gói SYN (SYN flood attack) 33
3.6 Tấn công bằng IP phân đoạn (IP frags attack) 33
3.7 LAND attack 34
4 Các mối đe dọa đối với dịch vụ thông tin 34
4.1 Tấn công từ chối dịch vụ (Denial of sevice) 34
4.2 Tấn công các giao thức dùng số tuần tự TCP 34
4.3 Tấn công các giao thức không xác thực 35
5 Một số các biện pháp phòng tránh 35
5.1 Các chiến lược bảo mật chung nhất 35
5.1.1 Quyền hạn tối thiểu 35
5.1.2 Bảo vệ theo chiều sâu 35
5.1.3 Điểm thắt 36
5.1.4 Điểm yếu nhất 36
5.1.5 Phối hợp chung 36
5.1.6 Phòng thủ đa dạng 36
5.1.7 Tính đơn giản 36
5.2 Một số biện pháp bảo mật bằng giao thức 37
NAT (Network Address Translation) 37
IPSec 38
5.3 Một số biện pháp bảo mật bằng hệ thống 38
5.3.1 Firewall 38
5.3.2 IDS (Intrusion Detection System) 39
5.3.3 VPN (Vitual Private Network) 40
Chương 3 45
Tổng quan về các hệ thống Intrusion Detection Systems 45
1 Phát hiện sự xâm phạm là gì 45
2 Tại sao phải sử dụng IDS 45
Trang 32.1 Phát hiện các cuộc tấn công và các hành vi vi phạm an ninh mà không
ngăn cản được bằng các biện pháp khác 45
2.2 Phát hiện sớm dấu hiệu các cuộc tấn công khi nó mới mới bắt đầu xảy ra, nhằm có biện pháp ngăn chặn kịp thời 46
2.3 Tăng độ mạo hiểm cho kẻ tấn công 46
2.4 Giúp cho việc thiết kế bảo mật và quản trị có chất lượng 46
2.5 Cung cấp các thông tin hiệu quả về sự xâm nhập 46
2.6 Lập tài liệu về các nguy cơ có thể xảy ra với hệ thống 47
2.Phân loại các hệ thống IDS chính 47
3.1 Network Based IDS (NIDS ) 47
3.1.1 Ưu điểm của hệ thống NIDS 47
3.1.2 Nhược điểm của hệ thống NIDS 48
3.2 Host based IDS (HIDS) 48
3.2.1 Ưu điểm của hệ thống HIDS 49
3.2.2 Nhược điểm của Hệ thống HIDS 49
3.3 Application Based IDS (AIDS) 49
3.3.1 Ưu điểm của hệ thống AIDS 50
3.3.2 Nhược điểm của hệ thống AIDS 50
3.4 Sử dụng kết hợp HIDS và NIDS 50
2.Các kỹ thuật phân tích của các hệ thống IDS 51
2.1 Phát hiện sự lạm dụng(Misuse detection) 51
2.1.1 Ưu điểm 51
2.1.2 Nhược điểm 51
2.2 Phát hiện sự bất thường(Anomaly Detection) 51
2.2.1 Ưu điểm 52
2.2.2 Nhược điểm 52
2.3 Giám sát (Target Monitoring ) 52
2.4 Thăm dò hành động lén lút 53
3 Hệ thống phát hiện xâm nhập dựa trên thống kê 53
3.1 Ưu điểm 53
3.2 Nhược điểm 53
Chương 4 55
Xây dựng 1 chương trình IDS 55
1 Mục đích : 55
1.1 Có khả năng ghi lại các hoạt động trên mạng 55
1.2 Dựng lại phiên làm việc giữa hai máy trên mạng 55
1.3 Phát hiện các hành vi bất thường để thông báo cho người quản trị 55
1.4 Cho phép cấu hình một cách đơn giản 55
2 Thiết kế chương trình 56
2.1 Cơ sở dữ liệu: 57
2.2 Module bắt các gói tin 57
2.3 Module phân tích các gói tin 58
Trang 42.4 So sánh với các cấu hình trong hệ thống 60
2.5 Module nhận các thông tin từ người sử dụng 61
3 Thiết kế chi tiết của chương trình 61
3.1 Cơ sở dữ liệu 61
3.2 Thu bắt các gói tin 62
3.3 Xây dựng lại phiên làm việc 63
3.4 So sánh với các cấu hình trong hệ thống 63
4 Cài đặt chương trình 63
4.1 Các sơ đồ thuật toán của chương trình 64
4.2 Các hàm sử dụng trong chương trình 66
4.2.1 Các hàm dùng để bắt gói tin 66
4.2.2 Các hàm dùng để xử lý gói tin 67
4.2.3 Hàm xây dựng lại phiên làm việc 67
4.2.4 Kiểm tra Phiên 67
5 Các Form trong chương trình 68
5.1 Form Config 68
5.2 Form Packet Detail Information 69
5.3 Form Alert 70
6 Một số kết quả đạt được 70
7 Phương hướng phát triển trong tương lai 71
8 Lời kết 72
Phụ lục A 73
Phụ lục B 74
Trang 5Lời nói đầu
Với sự bùng nổ của khoa học và công nghệ hiện nay, tin học đã len lỏi vàomọi lĩnh vực của đồi sống nhân loại Internet đã trở nên hết sức phổ biến trong cuộcsống Mọi thông tin cần thiết đều có thể được tìm thấy trên Internet Mọi thông tinđều được đăng tải trên đó, từ mục giao vặt đến cập nhập về các công nghệ mới nhấthoặc các thông tin thời sự nóng hổi Chính phủ điện tử và báo chí điện tử cũng đangphát triển rất mạnh để đáp ứng cho nhu cầu hiện tại Việc sở hữu 1 trang web khôngcần phải là các chính phủ, tổ chức lớn mà các công ty tổ chức vừa và nhỏ thậm chí
là các cá nhân cũng có thể sở hữu 1 trang web giới thiệu về mình hay để thuận tiệncho việc kinh doanh giao dịch Nhưng đi cùng với sự phát triển của công nghệthông tin và Internet thì yếu tố bảo mật các thông tin, dữ liệu nhạy cảm trên đó cũng
là 1 yếu tố hết sức quan trọng không thể tách rời
Trên thế giới trong các năm qua thường xuyên có những cuộc tấn công vàocác trang web của các tổ chức lớn như các trang của Microsoft, hoặc các hệ thốngngân hàng Mặc dù các tổ chức này cũng có đội ngũ các chuyên gia bảo mật nhưngđôi khi vẫn bị các hacker vượt mặt với các chiêu thức hack ngày càng tinh vi và thủđoạn hơn Điều này đặt các tổ chức đó phải tìm kiếm nhiều biện pháp để nhằm đảmbảo cho tính an toàn về thông tin, dữ liệu của họ
Bên cạnh các hệ thống firewall truyền thống thì hiện nay hệ thống phát hiện
sự xâm nhập trái phép trong mạng cũng là 1 biện pháp đựơc nhiều công ty và các tổchức quan tâm Các hệ thống này có thể phát hiện các dấu hiệu của 1 cuộc tấn côngtrước khi nó xảy ra và cảnh báo với nhà quản trị Từ đó giúp họ có thể đưa ra cácbiện pháp nhằm vô hiệu hoá các cuộc tấn công này Giảm thiệt hại đến mức tốithiểu cho công ty
Hệ thống phát hiện xâm nhập về cơ bản được chia làm hai loại: Hệ thốngphát hiện xâm nhập trên một máy (HIDS) và hệ thống phát hiện xâm nhập trênmạng (NIDS) Hệ thống HIDS là hệ thống dùng để phát hiện những xâm nhập tráiphép vào máy đó Mục đích của hệ thống này là bảo đảm tính toàn vẹn cho máytính Còn hệ thống NIDS dùng để phát hiện những xâm nhập trái phép vào mạng
Hệ thống này có tác dụng phát hiện những cuộc tấn công nhằm vào hệ thống mạngtrong thời gian thực Khi công ty, tổ chức cài đặt mạng nội bộ và có kết nối vàoInternet thì việc chống những loại xâm phạm như thế này có ý nghĩa rất lớn
Với đề tài " Tìm hiểu và xây dựng hệ thống phát hiện xâm nhập trên mạng
IP", mục tiêu của đồ án là nghiên cứu về an toàn mạng, các mô hình hệ thống phát
hiện xâm nhập, sau đó tìm hiểu các kỹ thuật để cài đặt một hệ thống phát hiện xâmnhập trên Windows dựa trên giao thức TCP/IP Trên cơ sở đó cài đặt một chươngtrình HIDS để giám sát các lưu thông trên mạng, cảnh báo cho người quản trị vềnhững bất thường trong mạng
Trang 6Đồ án của em gồm có 4 chương
Chương 1 Các kiến thức cơ bản về mô hình TCP/IP
Chương 2 Tổng quan về an ninh mạng , các nguy cơ bị tấn công và một số
biện pháp bảo mật Chương 3 Giới thiệu các hệ thống IDS
Chương 4 Xây dựng 1 ứng dụng IDS
Đề tài về IDS là 1 đề tài hay nhưng cũng rất khó và rộng vì vậy em chỉ xinthực hiện xây dựng một chương trình IDS nhỏ để minh hoạ cho các kiến thức đãđược nghiên cứu, đề cập trong đồ án Trong qua trình làm đồ án không khó tránhkhỏi những thiếu xót, em mong nhận được những ý kiến đóng góp của các bạn vàcác thầy cô giáo trong khoa
Trước hết em xin cảm ơn các thầy cô giáo trong khoa Công nghệ thông tintrường đại học Bách khoa Hà Nội đã dạy dỗ chỉ bảo tận tình trong những năm qua.Cuối cùng em xin gửi lời càm ơn chân thành đến thầy giáo Ngô Văn Dũng - giảngviên trường đại học Bách khoa Hà Nội, đã tận tình chỉ bảo, hướng đẫn em hoànthành đồ án này
Trang 7Chương 1 Các kiến thức về mô hình mạng TCP/IP
1.Kiến thức chung về mạng máy tính
Mạng máy tính đã và đang phát triển mạnh mẽ Chỉ khoảng 2 thập kỷ vềtrước, chỉ có 1 số ít người có khả năng truy nhập vào mạng Ngày nay thì sự truyềnthông bằng máy tính đã trở thành 1 phần tất yếu của cơ sở hạ tầng Mạng máy tínhdược sử dụng trong tất cả các lĩnh vực thương mại, bao gồm cả việc quảng cáo, sảnxuất hàng hoá, thanh toán hoá đơn, lập kế hoạch … Vì vậy hầu hết các công ty lớnđều có mạng máy tính Trong các trường đại học cũng vậy, mạng máy tính được sửdụng để nhằm cung cấp cho sinh viên và giáo viên có thể ngay lập tức truy nhậpvào các thư viện trực tuyến để khai thác các thông tin cần thiết phục vụ cho mụcđích học tập và giảng dạy của mình Các cơ quan nhà nước, các tổ chức quân sựcũng sử dụng mạng máy tính Nói tóm lại là đâu đâu chúng ta cũng thấy sự hiệndiện của mạng máy tính
Tiếp theo đó là sự phát triển của mạng Internet toàn cầu Đây là 1 hiện tượngthú vị và hấp dẫn nhất trong lĩnh vực mạng máy tính Khoảng 10 năm về trướcInternet chỉ là 1 dự án đang được nghiên cứu mà chỉ có 1 số ít trang web Ngày nayInternet đã phát triển trong các hệ thống thống thông tin liên lạc mà được hàng triệungười trên kháp thế giới sử dụng(ví dụ như dịch vụ Mail của Yahoo…) MạngInternet cũng được kết nối với hầu hết các công ty, các trường đại học, các tổ chứctrên toàn thế giới Việc kết nối với mạng internet lại hết sức đơn giản và thuận tiện,cùng với các dịch vụ sẵn sàng trên mạng giúp người dân có thể làm được rất nhiềđiều trong khi chỉ cần ở ngay tại nhà, nên số ngưới sử dụng Internet ngày càngnhiều Một bằng chứng về sự tác động của Internet trong xã hội hiện có thể đượcnhìn thấy được trong các quảng cáo của các tạp chí, vô tuyến thường có thêm cácthông tin tham khảo tại các website mà có thể cung cấp các thông tin chi tiết hơn vềcác sản phẩm và dịch vụ của họ
- Tầng giao vận : Transport layer
- Tầng phiên : Session layer
- Tầng trình bày : Presentation layer
- Tầng ứng dụng : Appication layer
Trang 8Mô hình tham chiếu 7 lớp OSI 1.1.1 Tầng vật lý.
Tầng này có chức năng truyền dòng bít không cấu trúc trên đường truyền vật
lý nhờ các phương tiện điện, cơ, các hàm và các thủ tục Tầng này thực hiện cácchức năng:
- Duy trì sự liên kết vật lý giữa các hệ thống
- Thiết lập và giải phóng sự đấu nối
- Truyền các bit qua kênh vật lý
Tầng này chỉ đơn giản là truyền dòng bít đi mà không cần biết dòng bít đóchứa nội dung gì Các bít được truyền đi dạng số hoặc tương tự Có rất nhiều giaothức trong tầng này tương ứng với các mạng khác nhau như Ethernet, TockenRing,FDDI… nhưng ở đây chỉ quan tâm đến mạng Ethernet
1.1.2 Tầng liên kết dữ liệu.
Tầng này có chức năng biến đổi các bit nhận được ở tầng vật lý thành cáckhung số liệu (frame), thông báo cho hệ phát biết kết quả thu được và truyền thôngtin không lỗi lên tầng mạng Khung dữ liệu bao gồm các trường:
- Trường địa chỉ (Address field): chứa địa chỉ của phía phát và phía nhận dữ liệu
- Trường điều khiển (Control field): được dùng để phân loại các khung dữ liệu
- Trường dữ liệu (Data field): chứa dữ liệu đang được phát
- Trường kiểm soát lỗi (Checksum field): được dùng để phát hiện lỗi trong khungliên kết dữ liệu
Tầng liên kết dữ liệu là tầng đầu tiên trong mô hình đề cập đến vấn đề kiểmsoát lỗi Nó cung cấp các phương tiện để truyền thông tin thông qua liên kết vật lý,đảm bảo tin cậy thông qua các cơ chế đồng bộ hóa, kiểm soát lỗi, kiểm soát luồng
dữ liệu
Các thông tin truyền ở tầng vật lý có thể làm hỏng các khung số liệu (frameerror), phần mềm lớp liên kết dữ liệu sẽ thông báo cho tầng vật lý truyền lại các
Trang 9thông tin bị mất hay bị lỗi, đồng bộ hệ có tốc độ xử lý khác nhau Phương pháp hay
sử dụng dùng bộ đệm trung gian lưu trữ số liệu nhận Ngoài ra, tầng vật lý còn đảmbảo việc quản lý các thông tin số liệu và các thông tin trạng thái
1.1.3 Tầng mạng
Tầng mạng là tầng có cấu trúc phức tạp nhất trong các tầng của mô hình OSI.Hai chức năng chủ yếu của tầng mạng là chọn đường (routing) và chuyển tiếp(relaying) Các thông số số liệu ở tầng mạng được tổ chức thành từng gói dữ liệu(packet) chứa đầy đủ địa chỉ nguồn và địa chỉ đích Tầng mạng đảm nhiệm chứcnăng chọn đường giữa các nút mạng cho các gói dữ liệu này
Tầng mạng còn giúp điều hòa lưu lượng bằng cách kiểm soát thông tin trongmạng để quyết định số gói vận chuyển hạn chế tình trạng tắc nghẽn dữ liệu Sốlượng các gói dữ liệu truyền trên các kênh khác nhau của mạng phụ thuộc vào lưulượng thông tin trên các đường truyền Tầng mạng đảm bảo việc tìm đường tối ưucho các gói dữ liệu bằng các giao thức chọn đường dựa trên các thiết bị chọnđường Đây là chức năng kiểm soát lưu lượng của tầng mạng
Ngoài ra, tầng mạng còn thực hiện một số chức năng khác như thiết lập, duytrì và giải phóng các liên kết logic, kiểm sát lỗi, dồn kênh và phân kênh, cắt và hợp
dữ liệu
Tầng mạng cung cấp phương tiện để truyền các đơn vị dữ liệu qua mạng, vìvậy các giao thức cho tầng mạng phải đáp ứng được với nhiều loại mạng và nhiềuloại dịch vụ cung cấp bởi các mạng khác nhau Giao thức chủ yếu được sử dụngtrong tầng mạng là giao thức X25PLP (X25 Packet Level Protocol)
1.1.4 Tầng giao vận
Tầng giao vận thực hiện các chức năng nhận thông tin từ tầng trên,chia thanhcác gói nhỏ hơn và chuyển xuống tầng dưới và nhận thông tin từ tầng dưới chuyểnlên phục hồi theo cách chia của hệ phát Tầng này đảm bảo sự vận chuyển dữ liệutin cậy và tính toàn vẹn của dữ liệu từ đầu cuối đến đầu cuối
Trong mô hình OSI, người ta phân biệt các tầng thấp và các tầng cao Cáctầng thấp là các tầng vật lý, liên kết dữ liệu,mạng và giao vận Các tầng thấp nàyquan tâm đến việc truyền dữ liệu giữa các hệ thống đầu cuối qua phương tiện truyềnthông Tầng giao vận là tầng cao nhất trong các tầng thấp, nó che phủ toàn bộ cáchoạt động của các tầng bên dưới nó đối với các tầng cao Nó có khả năng thích ứngvới nhiều đặc trưng của các loại mạng khác nhau như là mạng liên kết hay là khôngliên kết, mạng tin cậy hoặc chưa tin cậy Tầng giao vận phải biết được yêu cầu vềchất lượng dịch vụ của người sử dụng đồng thời cũng phải biết được khả năng cungcấp dịch vụ của mạng để có thể sử dụng các giao thức thích hợp trong truyền dữliệu
Trang 101.1.5 Tầng phiên
Phiên (Session) là sự kết nối giữa hai người dùng hoặc giữa người dùng vàmáy chủ qua mạng Tầng phiên cung cấp cho người sử dụng cuối các chức năng cầnthiết để quản trị các phiên ứng dụng của họ Tầng phiên thực hiện các chức năngsau:
- Quản lý đối thoại (Dialogues Control)
- Quản lý quyền truy nhập (Token Management)
- Quản lý hành vi (Activity Management)
Các liên kết tầng phiên có một sự tương ứng với các liên kết tầng giaovận.Tại một thời điểm cho trước có tồn tại một ánh xạ 1-1 giữa các liên kết phiên vàcác liên kết giao vận.Thời gian tồn tại các liên kết này có thể khác nhau Trong đó:
a)Một liên kết giao vận đảm nhiệm nhiều liên kết phiên liên tiếp
b)Một liên kết phiên sử dụng nhiều liên kết giao vận liên tiếp
1.1.6 Tầng trình diễn
Tầng trình diễn (Presentation Layer) quản lý phương pháp trình bày dữ liệu Cónhiều phương pháp trình bày dữ liệu như mã ASCII và EBCDIC cho các file vănbản Nếu hai bên dùng các phương pháp trình bày dữ liệu khác nhau thì sẽ khôngthể hiểu nhau Do đó, tầng trình diễn đảm bảo cho các hệ thống cuối có thể truyềnthông có kết quả ngay khi chúng sử dụng các biểu diễn các dữ liệu khác nhau Tầngtrình diễn dùng một biểu diễn chung đó
Có 3 dạng cú pháp thông tin được trao đổi giữa các thực thể ứng dụng: Cúpháp dược dùng bởi thực thể ứng dụng nguồn, cú pháp được dùng bởi thực thể ứngdụng đích và cú pháp dùng giữa các thực thể tầng trình diễn
Cú pháp dùng giữa các thực thể tầng trình diễn gọi là cú pháp truyền Các tầng trìnhdiễn đảm nhiệm việc chuyển đổi biểu diễn thông tin giữa cú pháp truyền và các cúpháp kia khi có yêu cầu
1.1.7 Tầng ứng dụng
Tầng ứng dụng chứa các giao thức và các hàm cần thiết cho các ứng dụngcủa người dùng để thực hiện các chức năng thông tin Là tầng cao nhất trong cấutrúc OSI, nó có một số đặc điểm khác với các tầng trước đó nó không có cung cấpcác dịch vụ cho tầng trên nên không có khái niệm điểm truy nhập dịch vụ tầng ứngdụng
Tầng ứng dụng bao gồm các thực thể ứng dụng dùng các giao thức ứng dụng
và các dịch vụ trình diễn để trao đổi thông tin
Tầng ứng dụng là ranh giới giữa môi trường kết nối các hệ thống mở OSI và cáctiến trình ứng dụng (Application Process) Tiến trình ứng dụng là một phần tử trongmột hệ thống mở thực hiện việc xử lý thông tin cho một ứng dụng cụ thể
Trang 11Trên đây chỉ mô tả sơ lược về nguyên lý phân tầng trong các mạng máy tính
để thấy dược sự tương ứng giữa mô hình OSI và giao thức quan trọng nhất trênInternet là giao thức TCP/IP
1.2 Cấu trúc phân tầng trong giao thức TCP/IP
Trong liên lạc Internet mô hình TCP/IP được sử dụng để truyền thông giữacác mạng máy tính Mô hình này rất phổ biến do tính mở và đơn giản của các giaothức
Mạng Internet có thể coi là cộng đồng các mạng LAN kết nối với nhau bằnggiao thức TCP/IP Giao thức TCP (Transmissions Control Protocol) và giao thức IP(Internet Protocol) là hai giao thức quan trọng nhất trên Internet Giao thức TCP làgiao thức ở tầng 4 trong mô hình 7 tầng OSI, nó là một giao thức hướngkết(conection - oriented) nối cung cấp một phương tiện truyền dữ liệu tin cậy chínhxác Khi truyền thông trên mạng nếu vì một lý do nào đó mà các gói dữ liệu bị mấtthì giao thức này cho phép truyền lại các khối dữ liệu bị mất trong quá trình truyền.Trước mỗi phiên giao dịch thì cả hai bên truyền và nhận tiến hành một thủ tục gọi làbắt tay ba bước nhằm xác định các thông số cho việc trao đổi dữ liệu Giao thứcnày cũng thực hiện việc kiểm tra lỗi nếu xảy ra trong quá trình truyền Giao thức IP
là giao thức thuộc tầng 3 trong mô hình 7 tầng OSI Đây là môt giao thức khônghướng nối kết(conectioness-oriented) Giao thức này không có cơ chế kiểm tra lỗihay việc mất các gói tin trong khi truyền vì vậy nó cung cấp một phương thứctruyền linh hoạt, nó tạo ra một liên kết ảo khi truyền các khối dữ liệu
Thực chất phải gọi giao thức TCP/IP là một họ các giao thức cùng làm việcvới nhau để cung cấp phương tiện truyền thông liên mạng Giao thức TCP/IP được
mô tả theo mô hình phân tầng như hình dưới
Mô hình phân tầng của giao thức TCP/IP
- Tầng ứng dụng (Application Layer): bao gồm các ứng dụng của người sử dụng vàcác tiến trình sử dụng trên mạng như: Telnet,FTP,SMTP
Trang 12- Tầng giao vận (Transport Layer): Cung cấp các dịch vụ truyền dữ liệu liên tục nhưcác giao thức TCP, UDP
- Tầng liên mạng (Internet Layer): Xác định đơn vị truyền và tìm đường đi từ đầucuối này đến đầu cuối khác bao gồm các giao thức như IP, ARP ICMP
- Tầng truy cập mạng (Network Access Layer): Làm nhiệm vụ truy nhập mạng vật
lý Internet không có bất kỳ chuẩn nào được định nghĩa cho tầng này Các chuẩnthường sử dụng là:X25, Ethernet(IEE802.3), Token bus(IEE802.4), Tokenring(IEE802.5) Tầng này tương ứng là hai tầng liên kế dữ liệu và tầng vật lý trong
mô hình OSI
Trong cấu trúc phân tầng này, khi truyền dữ liệu từ tầng ứng dụng đến tầng
vật lý thì mỗi tầng đều thêm phần header hoặc có thể là tailer của mình vào Các
header này chứa các thông tin điều khiển để cho việc truyền dữ liệu được chính
xác Mỗi tầng dưới xem tất cả các thông tin mà nó nhận được từ tầng trên là dữ liệu
và nó thêm phần header của nó vào trước dữ liệu này và truyền xuống tầng dưới.
Quá trình truyền dữ liệu từ tầng dưới lên tầng trên sẽ diễn ra chiều ngược lại, tức là
mỗi tầng sẽ phân tách phần header của nó ra trước khi truyền dữ liệu lên tầng trên.
Mô hình việc đóng gói lại dữ liệu khi đi qua các tầng của mô hình TCP/IP
Trang 13So sánh cấu trúc phân tầng của OSI và TCP/IP
Mỗi tầng có cấu trúc dữ liệu độc lập với tầng trên và tầng dưới nó Tức làmỗi tầng đều có một cấu trúc dữ liệu riêng và một thuật toán riêng để mô tả cấu trúc
đó Tuy nhiên, cấu trúc dữ liệu của một tầng được cấu tạo tương thích với tầng cạnh
nó để việc truyền dữ liệu có hiệu quả hơn Hình trên so sánh cấu trúc phân tầng củaOSI và TCP/IP
Các ứng dụng dùng TCP gọi cấu trúc dữ liệu của nó là stream, còn các ứng dụng dùng UDP gọi cấu trúc dữ liệu của nó là message Khi các stream hay
message này được truyền từ tầng TCP/UDP xuống tầng IP ở dưới chúng được thêm
vào header của tầng IP và đựoc gọi là các Packet Packet này đựoc truyền xuống
tầng Network Interface Tại đay chúng được thêm vào cả header và tailer tạo thành
Frame Frame này đựoc truuyền qua mạng Internet.
1.2.1 Tầng truy nhập mạng
Tầng truy nhập mạng (Network Access Layer) là tầng thấp nhất trong cấutrúc phân tầng của TCP/IP Các giao thức ở lớp này cung cấp cho hệ thống phươngthức để truyền sữ liệu trên các tầng vật lý khác nhau của mạng Nó định nghĩa cáchthức truyền các khối dữ liệu IP (IP datagram) Các giao thức ở tầng này phải biếtcấu trúc vật lý mạng ở dưới nó bao gồm cấu trúc gói, địa chỉ ) để định dạng đượcchính xác các dữ liệu sẽ được truyền tùy vào từng loại mạng cụ thể
Chức năng định dạng dữ liệu được truyền ở tầng này bao gồm việc đóng góicác khối dữ liệu IP datagram vào các frames sẽ được truyền trên mạng và sắp xếpcác địa chỉ IP vào phần địa chỉ vật lý được dùng cho mạng
Tầng này tương ứng với tầng 1, tầng 2 và một phần tầng 3 của mô hình OSI
1.2.2 Tầng liên mạng
Tầng liên mạng (Internet Layer) là tầng ngay trên tầng truy nhập mạng trong cấutrúc phân tầng của TCP/IP Internet Protocol (IP) là giao thức quan trọng nhất trong
Trang 14tầng này và là giao thức trung tâm của TCP/IP Nó thực hiện một số chức năngchính sau:
- Định nghĩa các khối dữ liệu (datagram)
- Định nghĩa hệ thống địa chỉ IP
- Truyền dữ liệu giữa tầng giao vận và tầng truy nhập trong cấu trúc phân tầng TCP/IP
- Tìm đường để gửi các khối dữ liệu đến các trạm xa
- Phân đoạn và hợp nhất các gói dữ liệu
1.2.3 Tầng giao vận
Hai giao thức quan trọng nhất trong tầng này là TCP (Transmission ControlProtocol) và UDP (User Datagram Protocol) Giao thức TCP cung cấp dịch vụtruyền dữ liệu tin cậy với khả năng phát hiện lỗi và sửa lỗi theo kiểu end-to-end.Giao thức UDP cung cấp các chương trình ứng dụng thâm nhập trực tiếp đến cácdịch vụ lưu chuyển datagram, cho phép trao đổi các thông điệp ra ngoài mạng với
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 ứngdụng và tầng Internet
IP là giao thức thuộc loại không liên kết (connectionless), còn TCP là giaothức 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à giải phóng liên kết Chức năng liên kết của TCP tương ứng với tầng giao vận(tầng 4) của mô hình OSI TCP dùng phương thức trao đổi các dòng dữ liệu (DataStream) giữa những người sử dụng,dữ liệu theo dòng cũng được phân đoạn thànhcác TPDU (Transport Protocol Data Unit) để truyền đi
UDP là giao thức thuộc loại không liên kết UDP truyền dữ liệu một cáchtrực tiếp, nó sử dụng 16 bit để ghi nhận cổng nguồn và cổng đích trong phần headercủa dữ liệu.Các cổng chuẩn là các cổng hay được dùng, ý nghĩa của từng cổng đượcquy định theo một chuẩn nhất định UDP truyền từng thông điệp tới IP để yêu cầutruyền Khi tầng ứng dụng gửi một yêu cầu qua UDP Datagram và không có phảnhồ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
1.2.4 Tầng ứng dụng
Đây là tầng trên cùng trong họ giao thức TCP/IP 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 giao vận để truyền dữ liệu Tầng ứngdụng chứa các giao thức và các hàm cần thiết cho các ứng dụng của người dùng đểthực hiện các chức năng thông tin như:
- Các giao thức cho việc truy nhập file từ xa: mở, đóng, đọc, ghi và truy nhập cácfile chia xẻ Như FTP, FTTP…
Trang 15- Các dịch vụ xử lý mẫu tin cho các ứng dụng e-mail.
- Và các dịch vụ khác như Gopher, Mosais, WWW
Như vậy họ giao thức TCP/IP được xây dựng dựa trên cơ sở phân tầng có sựtương ứng với mô hình tham chiếu OSI Các tầng trong họ giao thức TCP/IP đềuchứa một tập các giao thức cung cấp khả năng truyền dữ liệu tin cậy giữa các tầng
và giữa các mạng kết nối với Internet Họ giao thức TCP/IP là cơ sở quan trọng đểcác mạng liên kết với nhau trên Internet
2 Giao thức IP
Giao thức trên mạng IP (Internet Protocol) cung cấp chức năng liên kết cácmạng nội bộ thành liên mạng để truyền dữ liệu Giao thức IP có vai trò tương tựnhư giao thức tầng mạng của mô hình tham chiếu OSI
IP là giao thức không hướng kết nối (connectionless- oriented ) Giao thứckhông hướng kết nối này không đảm bảo chính xác cho việc giao vận Không cóbáo nhận, không có điều khiển luồng không truyền lại hoặc khôi phục lỗi Nó khôngcần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu và do đó không cần phảigiải phóng liên kết khi không có nhu cầu truyền Điều này làm giảm nhẹ các thủ tụckết nối mạng nhưng làm tăng độ phức tạp trong công việc kiểm soát luồng dữ liệu
và kiểm tra tính đúng đắn của dữ liệu, đặc biệt là trong trường hợp nhiều người sửdụng đồng thời
Đơn vị dữ liệu truyền trong IP là datagram Mỗi datagram có phần headerchứa thông tin cần thiết để truyền dữ liệu đi Trong header này có chứa địa chỉ đích,địa chỉ đích bao gồm địa chỉ mạng và địa chỉ trạm trên mạng đó Nếu địa chỉ đích làđịa chỉ của một trạm nằm trên mạng đó thì trạm nguồn sẽ truyền thẳng tới trạm đó,nếu không nằm trên cùng một mạng với trạm nguồn thì các khối dữ liệu đượctruyền đến Gateway để chuyển đi
2.1 Cấu trúc khối dữ liệu IP
Cấu trúc khối dữ liệu IP được mô tả trên hình, ý nghĩa các trường như sau:
- Trường VER (Version): 4 bit Chỉ báo version của IP đang sử dụng
- Trường IHL (Internet Header Length): 4 bit Chỉ độ dài header của datagram tínhtheo đơn vị từ (Word) 32 bits độ dài tối thiểu là 5 words, tức là không có optionnào được sử dụng
- Trường Type of service: 8 bits Chứa các thông số về dịch vụ, có vai trò quantrọng trong việc điều khiển các gói dữ liệu
0 1 2 3 4 5 6 7
Trang 16Khuôn dạng trường Type of service
Bit 0 3 4 7 8 15 16 18 19 31
Trang 17- Trường Total Lengh: 16 bit Chỉ độ dài toàn bộ khối dữ liệu datagram, kể cả phầnheader, tính theo đơn vị byte Trường này có 16 bit, vậy kích thước lớn nhất củakhối lên đến 216 = 65536 bytes, lớn hơn hầu hết các kích thước các khối dữ liệu củacác mạng vật lý trợ giúp khác Khi khối dữ liệu được phân đoạn thì giá trị này chỉ sốhiệu của khối ban đầu.
- Trường Identification:16 bit Dùng để nhận dạng khối dữ liệu, định danh duy nhấtcho một datagram trong thời gian nó còn trên liên mạng, nhận dạng các đoạn trongkhối giống như số hiệu tuần tự
- Trường Flags:3 bit Liên quan đến sự phân đoạn các datagram
Bit 0:không sử dụng, luôn lấy giá trị 0
Bit 1(DF): cho biết khối dữ liệu có phân đoạn được hay không
DF=0 : được phép phân đoạn
DF=1 : không được phân đoạn Nếu gói dữ liệu quá lớn thì sẽ bỏ góitin
Bit 2(MF):cho biết có phải là đoạn cuối cùng của khối dữ liệu haykhông
MF=0 : đoạn cuối cùng
MF=1 : không phải đoạn cuối cùng
- Trường Fragment Offset: 13 bit Chỉ vị trí của đoạn (fragment) trong datagram,tính theo đơn vị 64 bit, mỗi fragment phải chứa một vùng dữ liệu có độ dài là bội sốcủa 64 bit
- Trường Time to live: 8 bit Qui định thời gian tồn tại của datagram trong liênmạng (tính bằng giây) Thời gian này được cho bởi trạm gửi và được giảm đi mộtđơn vị khi đi qua một Router của liên mạng Khi thời gian này giảm đến 0,datagram bị loại bỏ để tránh tình trạng một datagram cứ chạy mãi trên mạng
- Trường Protocol: 8 bit Chỉ giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu này
Trang 18Trường Header Checksum:16 bit Mã kiểm soát lỗi CRC 16 bit cho header.
- Trường Source Address:32 bit Địa chỉ IP nguồn
- Trường Destination Address:32 bit Địa chỉ IP đích
- Trường Options: độ dài thay đổi Khai báo các options do người gửi yêu cầu
- Trường Padding: độ dài thay đổi Vùng đệm, dùng để đảm bảo cho phần headerluôn kết thúc ở một mốc 32 bit
- Trường Data: độ dài thay đổi Phần này gồm các header của các giao thức tầngcao hơn và dữ liệu của người sử dụng Có độ dài là bội số của 8 bit, tối đa là
Địa chỉ IP gồm hai phần Một phần dành cho việc đánh số mạng(NetId) ,phần còn lại dùng để đánh số trạm(HostId) trong mạng đó Tuỳ theo nhu cầu sốlượng các trạm trong các mạng mà địa chỉ IP lại được chia ra thành 5 lớp địa chỉriêng biệt là A, B, C, D, E
Cấu trúc các lớp địa chỉ IP
Trang 19- Lớp A: bit đầu tiên là 0, 7 bit kế tiếp là chỉ số hiệu mạng, 24 bit ccòn lại là chỉ sốhiệu của trạm trong mạng đó Lớp này định danh tối đa là 27 mạng, mỗi mạng có tối
đa 224 trạm làm việc nối vào Lớp này dùng cho các mạng có số trạm làm việc cựclớn
- Lớp B: 2 bit đầu tiên là 10, 14 bit kế tiếp dành cho số hiệu mạng, 16 bit cuối cùngdùng cho đánh số cá trạm Lớp này định danh tối đa 214 mạng mỗi mạng có tối đa
216 trạm nối vào
- Lớp C: 3 bit đầu tiên là 110, 21 bit kế tiếp dùng định số hiệu mạng, 8 bit cuối dùngđánh số cá trạm Lớp này định danh tối đa 221 mạng mỗi mạng có tối đa 28 trạm làmviệc nối vào
- Lớp D: 4 bit đầu tiên là 1110, 28 bit còn lại được dùng để gửi khối dữ liệu IP đếnnhóm người sử dụng trên mạng (usergroup) Địa chỉ tổng quát của lớp này là224.X.X.X
- Lớp E: 5 bit đầu tiên là 11110 Hiện nay chưa được dùng
Trong 5 lớp trên thì 3 lớp A, B, C là đựoc dùng bình thường còn dải địa chỉlớp D thì được dành riêng cho Multycast(tức là dùng 1 địa chỉ của dải này có thể đạidiện cho một nhóm các người dùng Khi thông tin được gửi đến địa chỉ này thì nóđược đồng thời gửi đến tất cả cá người dùng thuộc nhóm đấy) Dải địa chỉ lóp E thìđựơc dùng dự phòng cho nhu cầu về sau
2.3 Phân đoạn các khối dữ liệu
Trong quá trình truyền dữ liệu, một khối dữ liệu (datagram) có thể đượctruyền đi thông qua nhiều mạng khác nhau Một datagram nhận được từ một mạngnào đó có thể quá lớn đối với một đơn vị dữ liệu trên mạng khác, do mỗi loại cấutrúc mạng cho phép một đơn vị truyền cực đại (Maximum Transmission Unit MTU)khác nhau MTU là kích thước lớn nhất của một khối mà chúng có thể truyền Nếunhư một khối dữ kiệu nhận được từ một mạng nào đó mà lớn hơn MTU thì nó cầnphải được phân đoạn ra thành khối nhỏ hơn gọi là fragment để truyền đi, quá trìnhnày gọi là phân đoạn các khối dữ liệu
Trang 20Khuôn dạng của các fragment cũng giống như khuôn dạng của các khối dữliệu Trong phần header có chứa các thông tin để xác định mỗi fragment và cungcấp các thông tin để hợp nhất các fragment này lại thành khối dữ liệu như ban đầu.Trường Indentification để xác định fragment này thuộc khối dữ liệu nào Tất cả cácfragment đều có số hiệu nhận dạng của khối dữ liệu ban đầu trước khi phân đoạn.Điều này được sử dụng để nhận dạng các fragment của khối dữ liệu ban đầu khi rápnối chúng lại với nhau tại diểm đích Mỗi lần một khối dữ liệu được phân đoạnchúng sẽ không được ráp lại với nhau cho đến khi chúng đến được nút cuối cùng.
3 Giao thức TCP
Giao thức điều khiển truyền TCP (Transmission Control Protocol) là mộtgiao thức theo kiểu hướng kết nối (connection-oriented), nghĩa là cần phải thiết lậpmột liên kết logic giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu vớinhau
Giao thức TCP là một giao thức truyền tin cậy Điểm mạnh của TCP là nó rấtlinh hoạt Nó không chỉ rõ bất cứ một giao thức nào cho tầng trên hay tầng dưới nótrong mô hình phân cấp Trong Internet thì giao thức tầng dưới của TCP luôn là là
IP Dữ liệu của TCP là đoạn dữ liệu( Segment)
Một tư tưởng quan trọng trong TCP là một kết nối TCP cung cấp 1 tập cácđịa chỉ hay còn gọi là cổng dịch vụ(port) cho 1 máy tính Rất nhiều tiến trình có thểgắn với một cổng Địa chỉ IP và một cổng thì xác định một socket, một cặp socketchỉ ra một kết nối Trước khi truyền thông được thực hiện thì một kết nối phải đượcthiết lập trước giữa hai tiến trình Kết nối này còn có thể được xem là một mạchảo(virtual circuit) Nó tương tự với việc một kết nối điện thoại đựơc thiết lập trướckhi bắt đầu tiến hành hội thoại
Trong quá trình truyền thông trên một mạng thì các đoạn dữ liệu có thể bịmất vì một lý do nào đó thì TCP cho phép bên nhận có thể gửi báonhận(acknowledgment) để báo cho bên gửi truyền lại đoạn dữ liệu đó Khi bắt đầugửi dữ liệu thì bên gửi khởi động một bộ đếm thời gian, và gửi kèm một số thứ tựcủa đoạn dữ liệu Khi bên nhận nhận được thì lại gửi ngược lại một số báo nhận Sốbáo nhận này tham chiếu đến đoạn dữ liệu tiếp theo mà bên nhận đang mong nhậntiếp Nếu báo nhận không được nhận trước khi quá một thời gian nào đó thì đoạn dữliệu sẽ được gửi lại
Điều khiển luồng (flow control) đựơc thực hiện theo cách một biến cửa sổđựoc gửi đi với báo nhận của bên nhận Nếu bên nhận không đủ bộ đệm thì nó sẽgửi một biến cửa sổ với giá trị nhỏ hơn Cứ thế cho đến khi tốc độ truyền nhận phùhợp cho cả hai bên -Tức là bên gửi không gửi nhiều hơn khả năng bên nhận có thểnhận
3.1 Cấu trúc đoạn dữ liệu TCP
Khuôn dạng của đoạn dữ liệu TCP được mô tả trên hình
Mô tả các trường:
Trang 21 Source Port: 16 bit Số hiệu cổng của trạm nguồn.
Destination Port : 16 bit Số hiệu cổng của trạm đích
Sequense Number: 32 bit Số hiệu tuần tự của byte dữ liệu đầu tiên trongsegment, trừ trường hợp bit SYN được thiết lập Nếu bit SYN được thiết lậpthì Sequence Number là số hiệu tuần tự ban đầu Trường này được dùng đểthực hiện việc điều đình khi TCP mở một kết nối với một TCP ở xa
Sequence NumberAcknowledgment Number
Data
Offset Reserved
URC
ACK
PSH
RST
SYN
FIN
Data Offset: 4 bit Cho biết số lượng các word trong header của TCP Chỉ vị tríbắt đầu của vùng dữ liệu
Reserved: 6 bit Chưa sử dụng
Trang 22 Các cờ:
- URG: khi được thiết lập thì vùng Urgent Pointer có hiệu lực
- ACK: khi được thiết lập thì vùng Acknowledgment Number có hiệu lực
- PSH : chức năng PUSH được thiết lập
- RST : khởi động lại liên kết
- SYN: Dùng để đồng bộ hóa các số hiệu tuần tự lúc ban đầu khi thiết lậpliên kết
- FIN : không còn dữ liệu ở trạm nguồn để truyền tiếp
Window: 16 bit Chỉ số byte dữ liệu được chấp nhận, bắt đầu từ byte được chỉ ratrong vùng ACK Number Trường này được dùng để kiểm soát luồng truyềnquản lý buffer
Checksum: 16 bit Mã kiểm soát lỗi CRC cho toàn bộ segment (gồm cả header vàdata)
Urgent Pointer: 16 bit Có hiệu lực khi bit URG được thiết lập Chỉ số hiệu tuần
tự của byte đi theo sau dữ liệu khẩn, cho biết độ dài của dữ liệu khẩn
Options: có độ dài thay đổi được Khai báo các options của TCP, trong đó có độdài tối đa của vùng TCP data trong một segment
Padding: có độ dài thay đổi Phần chèn thêm vào header của TCP để header luônkết thúc ở cột mốc 32 bit, trường Padding chỉ gồm toàn số 0
TCP data: độ dài thay đổi Chứa dữ liệu của tầng trên Độ dài tối đa ngầm định là
556 byte, giá trị này có thể thay đổi được trong phần options
3.2 Mô hình hoạt động của TCP
Khi cờ SYN được thiết lập là 1 thì gói tin TCP là gói yêu cầu mở kết nối hoặc góixác nhận mở kết nối Cờ SYN là 1 thì cờ ACK có thể là 1 hoặc 0, các tổ hợp cờSYN và ACK mô tả trong bảng
Trang 231 1 Xác nhận mở kết nối
Ý nghĩa của các tổ hợp SYN và ACK
Khi một client trên Internet muốn mở kết nối với một server nào đó thì nó gửi gói
4 Khuôn dạng dữ liệu của frame ethernet.
Trên mô hình mạng TCP/IP tại tầng truy nhập mạng có thể dùng các chuẩnnhư Ethernet802.3, Tockenring hay FDDI Nhưng phổ biến là Ethernet802.3.Trong chương trình của em hỗ trợ bắt gói tin theo chuẩn Ethernet802.3 nên em xingiới thiệu khuôn dạng gói tin tại tầng này theo chuẩn Ethernet 802.3
Theo chuẩn này thì độ dài tối đa của gói tin Ethernet là 1518 byte Phầnheader cố định là 14 byte Phần dữ liệu bên trong có thể thay đổi từ 46 byte đến
1500 byte, và cuối cùng là phần checksum dài 4 byte Độ dài tối thiểu của góiEthernet là 64 byte, nếu không dủ 64 byte thì nó sẽ tự động thêm các byte rỗng vàocho đủ 64 byte
Trang 24Khuôn dạng gói tin tại tầng truy cập phương tiện theo chuẩn Ethernet 802.3
Một ví dụ cho việc phân tích một gói tin như sau:
Trang 26bộ hệ thống có thể bị tê liệt hoàn toàn.
Để việc bảo vệ an toàn thông tin được hiệu quả cao phải lường trước được càngnhiều càng tốt các khả năng xâm phạm, các sự cố rủi ro đối với các loại thiết bị và
dữ liệu trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng giải quyếttốt các giải pháp phù hợp để giảm thiểu các thiệt hại Mọi nguy cơ đều cần phảiquan tâm vì các vụ tấn công nhỏ thường có tần suất cao và các vụ việc ít xảy ra đôikhi gây nên những hậu quả khôn lường
1.2 Tình hình thực tế
Theo số liệu của CERT (Computer Emergency Response Team - "Đội cấp cứumáy tính"), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này
là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và
2241 vào năm 1994 Những vụ tấn công này nhằm vào tất cả các máy tính có mặttrên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trườngđại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng Một số vụ tấn công
có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công) Hơn nữa, những con sốnày chỉ là phần nổi của tảng băng Một phần rất lớn các vụ tấn công không đượcthông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giảnnhững người quản trị hệ thống không hề hay biết những cuộc tấn công nhằm vào hệthống của họ
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phươngpháp tấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viênquản trị hệ thống được kết nối với Internet ngày càng đề cao cảnh giác Cũng theoCERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu đoán tên người sử dụng-
Trang 27mật khẩu (UserID-password) hoặc sử dụng một số lỗi của các chương trình và hệđiều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn côngvào thời gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõithông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin).
1.3 Các hình thức xâm phạm an toàn mạng và nhu cầu bảo vệ dữ liệu.
Về bản chất có thể phân loại các tấn công thành hai loại : tấn công thụ động
và tấn công chủ động “Thụ động” và “chủ động” ở đây được hiểu theo nghĩa cócan thiệp vào nội dung và vào luồng thông tin trao đổi hay không? Tấn công “thụđộng” chỉ nhằm đặt mục tiêu cuối cùng là nắm bắt được thông tin, có thể không biếtđược nội dung nhưng cũng có thể dò ra được người gửi, người nhận nhờ vào thôngđiều khiển giao thức chứa trong phần đầu của các gói tin Hơn thế nữa, kẻ xấu còn
có thể kiểm tra được số lượng, độ dài và tần số trao đổi để biết được đặc tính của dữliệu
Như vậy các tấn công “thụ động” không làm sai lạc hoặc huỷ hoại nội dung
và luồng thông tin trao đổi trên mạng Trong khi đó các tấn công “chủ động” lại cóthể biến đổi, xoá bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại các gói tin ngay tạithời điểm đó hoặc sau đó một thời gian Hơn thế, một số thông tin ngoại lai còn cóthể được đẩy vào để làm sai lệch nội dung của thông tin gốc hoặc nhằm các mụcđích không bình thường khác Một hình thức tấn công “chủ động” khác đó là làm vôhiệu hoá các chức năng phục vụ người dùng một cách tạm thời hoặc lâu dài
Cũng cần lưu ý là việc tấn công thụ động thường khó có thể phát hiện nhưnglại có thể ngăn chặn một cách hiệu quả Trái lại tấn công chủ động rất dễ bị pháthiện nhưng lại rất khó ngăn chặn
Kẻ tấn công trong thực tế có thể thâm nhập vào bất cứ điểm nào mà thông tinanh ta quan tâm đi qua hoặc được cất giữ Điểm đó có thể ở trên đường truyền, ởmáy chủ nhiều người dùng hoặc tại các giao diện kết nối liên mạng (bridge, router,gateway ) Trong quan hệ tương tác ngưòi máy, các thiết bị ngoại vi, đặc biệt làcác terminal (tổ hợp bàn phím và màn hình) chính là cửa ngõ thuận lợi nhất cho cácloại thâm nhập Ngoài ra cũng cần kể đến khả năng phát xạ điện từ của máy tínhlàm cho nó trở thành vật chuyển giao thông tin Bằng các thiết bị chuyên dụngngười ta có thể đón bắt các tia phát xạ này và giải mã chúng Người ta cũng có thể
sử dụng các tia bức xạ được điều khiển từ bên ngoài để tác động lên máy tính gâylỗi và sự cố đối với thiết bị và dữ liệu Tất cả những điều tệ hại đó đều có thể xảy rađối với đường truyền
Nói chung trong hầu hết các trường hợp đều có thể đánh giá được thiệt hạicủa các vụ tấn công, nhưng công việc rất cần thiết đó lại thường hay bị bỏ qua.Trước khi quyết định đầu tư cho các giải pháp bảo vệ thông tin, cần phải đánh giáđược chi phí để khôi phục dữ liệu và các tổn thất khác nếu những kẻ tấn công (cóthể là đối thủ cạnh tranh) tìm được cách thâm nhập vào mạng
Trước khi đi vào các giải pháp an toàn mạng cụ thể, cần nhấn mạnh một thựctế: không có thứ gì là an toàn tuyệt đối cả Bởi hệ thống bảo vệ có thể chắc chắn đến
Trang 28đâu đi nữa rồi cũng có lúc bị vô hiệu hoá bởi những kẻ phá hoại điêu luyện về kỹxảo và có đủ thời gian Chưa kể trong nhiều trường hợp kẻ phá hoại lại nằm ngaytrong hàng ngũ chúng ta và được chúng ta đào tạo, huấn luyện hết mình Từ đó cóthể thấy rằng vấn đề an toàn mạng thực tế là cuộc chạy tiếp sức không ngừng, vàkhông ai dám chắc khẳng định là có đích cuối cùng hay không.
Vì vậy, nhu cầu bảo vệ thông tin đối với các máy tính kết nối mạng là rất lớn,
có thể tạm chia thành ba loại gồm:
Bảo vệ dữ liệu
Bảo vệ các tài nguyên sử dụng trên mạng
Bảo vệ danh tiếng của cơ quan, tổ chức
1.3.1 Bảo vệ dữ liệu
Những thông tin lưu trữ trên hệ thống máy tính cần được bảo vệ do các yêu cầu sau:
- Bảo mật: Những thông tin có giá trị về kinh tế, quân sự, chính trị… cần đượcgiữ kín
- Toàn vẹn: Thông tin không bị mất mát hay sửa đổi
- Kịp thời: Yêu cầu truy nhập thông tin vào đúng thời điểm cần thiết
Trong đó, yêu cầu về bảo mật thường được coi là vấn đề số một đối với thôngtin lưu trữ trên mạng Tuy nhiên, tính toàn vẹn cũng là một trong những vấn đề rấtquan trọng, vì không có một cá nhân hay tổ chức nào lại muốn lãng phí tài nguyênvật chất và thời gian để lưu trữ những thông tin mà không biết chắc về tính đúngđắn của những thông tin đó
1.3.2 Bảo vệ các tài nguyên sử dụng trên mạng
Trong các cuộc tấn công trên Internet, kẻ tấn công sau khi đã xâm nhập, làmchủ được hệ thống nào đó thì chúng có thể sử dụng hệ thống này để phục vụ cácmục đích của chúng Chúng có thể làm bàn đạp, sử dụng kết nối mạng có sẵn củamáy đó, để tấn công vào hệ thống khác…
1.3.3 Bảo vệ danh tiếng
Có rất nhiều cuộc tấn công không được thông báo rộng rãi, và một trongnhững nguyên nhân là nỗi lo bị mất uy tín của cơ quan, đặt biệt là các công ty lớn
và các cơ quan quan trọng trong bộ máy nhà nước Trong trường hợp người quản trị
hệ thống chỉ được biết đến sau khi chính hệ thống của mình đã bị làm bàn đạp đểtấn công các hệ thống khác thì tổn thất về uy tín là rất lớn và có thể để lại lâu dài
Trang 292 Các mối đe dọa vào an ninh hệ thống:
Các hệ thống máy tính được cấu thành từ các thiết bị phần cứng như bộ vi xử
lý, bộ điều khiển vào ra, thiết bị lưu trữ, v.v và hệ điều hành với các thành phần lõi
hệ điều hành, hệ thống tệp, các tiến trình hệ thống, các dịch vụ hệ thống, v.v Tất cảcác thành phần nêu trên đều có thể bị đột nhập hay bị lợi dụng, khai thác thông quacác kẽ hở của chính bản thân các thành phần đó nhằm làm suy yếu, tê liệt một phầnhoặc toàn bộ hệ thống
2.1 Các tấn công vào phần cứng:
Các tấn công vào phần cứng dựa trên lỗi của chính bản thân phần cứng Đây
là lỗi của thiết kế phần cứng và kẻ tấn công có thể lợi dụng những lỗi này để tấncông hệ thống Thí dụ: mặc dù đã được cải tiến và phát triển rất lâu, bộ vi xử lýPentium của Intel vẫn còn có lỗi Chỉ cần thực hiện một đoạn mã đặc biệt là có thểlàm cho hệ thống bị tê liệt hoàn toàn, bất kể hệ điều hành đang chạy có ưu việt đếnđâu, chạy ở chế độ bảo vệ nào
2.2 Tấn công trực tiếp
Phần lớn các cuộc tấn công vào hệ thống là trực tiếp Những kẻ tấn công muốn
sử dụng máy tính của chúng ta như là những người dùng hợp pháp và họ có hàng tácách để chiếm được quyền truy nhập vào bên trong
Một phương pháp tấn công cổ điển là dò cặp tên người dùng và mật khẩu(username/password) Đây là phương pháp đơn giản, dễ thực hiện và không đòi hỏimột điều kiện đặc biệt nào để bắt đầu Kẻ tấn công có thể sử dụng những thông tinnhư tên người dùng, ngày sinh, địa chỉ, số nhà… để đoán mật khẩu Trong trườnghợp có được danh sách người dùng và những thông tin về môi trường làm việc thì
sẽ có những chương trình tự động hoá về việc dò tìm mật khẩu này Một số chươngtrình có thể lấy được dễ dàng từ Internet để giải các mật khẩu đã mã hoá của hệthống, chúng có khả năng như thử các tổ hợp các từ trong một từ điển lớn theonhững nguyên tắc do người dùng tự định nghĩa Trong một số trường hợp, khả năngcủa phương pháp này có thể lên tới 30%
Một phương pháp khác là sử dụng các lỗi của chương trình ứng dụng và bảnthân hệ điều hành Đây là phương pháp đã được sử dụng từ những vụ tấn công đầutiên và vẫn tiếp tục được sử dụng để chiếm quyền truy nhập Trong một số trườnghợp, phương pháp này cho phép kẻ tấn công có được quyền của người quản trị hệthống Để minh hoạ cho phương pháp này, ta có thể lấy ví dụ chương trình
sendmail và chương trình rlogin của hệ điều hành UNIX
Sendmail là một chương trình phức tạp, với mã nguồn bao gồm hàng ngàndòng lệnh của ngôn ngữ C Sendmail được chạy với quyền ưu tiên của người quảntrị hệ thống, do chương trình phải có quyền ghi vào hộp thư của những người sửdụng máy Và Sendmail trực tiếp nhận các yêu cầu về thư tín trên mạng bên ngoài.Đây là những yếu tố làm cho Sendmail trở thành một nguồn cung cấp những lỗhổng về bảo mật để truy nhập hệ thống
Trang 30Rlogin cho phép người dùng sử dụng từ một máy trên mạng truy nhập từ xavào một máy khác sử dụng tài nguyên của máy này Trong quá trình nhận tên vàmật khẩu của người dùng, rlogin không kiểm tra độ dài của dòng nhập, do đó kẻ tấncông có thể đưa vào một xâu đã được tính toán trước để ghi đè lên mã chương trìnhcủa rlogin, qua đó chiếm được quyền truy nhập.
2.3 Các truy nhập không được phép
Đây là một hiểm họa thông thường liên quan đến việc truy nhập trái phépvào các tài nguyên máy tính và mạng máy tính
Cách dễ nhất để vào một hệ thống máy tính là thông qua "cửa trước" bằnghình thức đăng nhập “login:” Một yếu tố an ninh của hệ thống phải dựa trên sự bímật của tệp mật khẩu Hệ thống được bảo vệ nếu như lệnh liệt kê nội dung thư mụccủa hệ thống không hiện tên tệp mật khẩu
Kẻ tấn công có nhiều cách để có truy nhập bất hợp pháp vào hệ thống Cáckiểu này có thể là: “Quan hệ xã hội” hoặc các phép đoán đơn giản (thử một tên tàikhoản và các kết hợp của mật khẩu cho đến khi có được một tài khoản hoạt động)hay bằng những cách phức tạp mà không cần biết tên tài khoản và mật khẩu
Trong UNIX, các tệp mật khẩu được mã hóa nhưng mọi người dùng đều đọcđược (ở dạng đã mã hóa) Điều này cho phép các tấn công bằng cách dùng chươngtrình đoán mật khẩu dựa trên các từ điển
Các mạng đều có thêm nhu cầu về dịch vụ do đó có thêm các hiểm họa Cácdịch vụ như FTP yêu cầu cùng một phương thức xác thực người dùng, nhưng FTPlại dùng các hàm hệ thống khác và điều đó dễ dẫn đến hiểm họa
Một chương trình bắt gói đơn giản trên mạng có thể lấy được mật khẩu từmột vài gói dữ liệu đầu tiên trong phiên làm việc của kết nối Telnet
2.4 Quan hệ xã hội:
Đây là cách lợi dụng quan hệ xã hội để lấy mật khẩu Thí dụ bằng cách giảdanh là một quan chức của công ty gọi điện hoặc gửi thư điện tử cho quản trị hệthống và yêu cầu đổi mật khẩu hoặc tạo một tài khoản mới để thực hiện một việcquan trọng nào đó
Những yêu cầu như vậy phải được kiểm tra kỹ lưỡng trước khi được đápứng Ta phải biết chính xác ai đang yêu cầu ta làm việc đó (đổi mật khẩu, tạo tài
khoản mới, v.v.) hay phải thực hiện các thủ tục “bắt tay 3 bước”, bằng cách khẳng
định lại yêu cầu thay đổi từ phía người yêu cầu
Trang 31một hoạt động trong một chương trình hoặc trong một thiết bị không theo đúng cácđặc tả thiết kế về hoạt động đó Kẻ tấn công có thể lợi dụng các bug để phá hoại hệthống, đánh lừa các phần mềm dựa trên các lỗi do nhà lập trình (không chủ ý) gây
ra nhưng chưa được phát hiện và điều chỉnh
Kẻ phá hoại có thể dựa trên các kẽ hở từ các bug hệ thống Thí dụ: hoạt độngcủa các virus chẳng hạn Sau đây là mô tả một số lỗi hệ thống
2.5.1 Lỗi của cơ chế xác thực
Rất nhiều cuộc tấn công xuất phát từ (khe hở) cơ chế xác thực của hệ thống.Một cơ chế hoạt động tốt cũng có thể bị tấn công và bại trận Thí dụ, quá trình kiểmtra địa chỉ nguồn IP có thể hoạt động tốt trong một tình huống nào đó, nhưng những
kẻ tấn công có thể dùng trình chuyển cổng dịch vụ (portmapper) để gửi lại các yêucầu Trong trường hợp đó, dịch vụ nền phía dưới đã bị đánh lừa, thông điệp đượcgửi đến máy dịch vụ xuất hiện dường như từ địa chỉ nguồn nội bộ, nhưng thực ra nóxuất phát từ nơi khác
Xác thực dựa trên địa chỉ IP cũng có thể bị hỏng nếu hệ thống gửi yêu cầuxác thực không đáng tin cậy Có lúc, cơ chế xác thực hỏng do các giao thức khôngmang thông tin đúng Cả TCP và IP đều không định danh người gửi; các giao thức
như X11 và rsh phải tự lấy địa chỉ nguồn IP mà không biết có tin tưởng được địa
chỉ đó hay không
2.5.2 Lỗi trong các giao thức
Đây là trường hợp các bug xuất hiện trong bản thân các phần mềm thực hiệngiao thức Các bug này có thể dẫn tới việc từ chối các ứng dụng và từ chối côngviệc thường nhật đã qui định Thí dụ: Các tấn công nhờ “số tuần tự TCP” Vì không
đủ số ngẫu nhiên trong quá trình tạo “số tuần tự TCP ban đầu” cho một kết nốiTCP nên có thể gây ra kẽ hở cho kẻ tấn công lừa địa chỉ nguồn Chính xác hơn, cơchế tạo các số tuần tự TCP được thiết kế mà không lường trước loại tấn công này
Có thể coi đây là một bug của TCP Và đến gần đây, chuyên gia nghiên cứu về bảomật Paul Watson đã chỉ ra rằng, đoán được số tuần tự trong các gói tin TCP khôngcần đến việc thử cả hơn 4 tỷ tổ hợp mà chỉ cần sau vài phép đoán Bên cạnh đó,giao thức TCP còn cho phép ngắt kết nối sử dụng cờ RST trong gói tin Hacker cóthể lợi dụng lỗ hổng này để reset lại phiên làm việc từ xa và điều này còn có thể ảnhhưởng rất lớn đến hoạt động của thiết bị dẫn đường (router).Từ đó sẽ ảnh hưởng rấtlớn đến cơ sở hạ tầng mạng Internet Lỗ hổng này của giao thức TCP được công bốvào 20-4-2004
Các giao thức khác dựa trên số tuần tự đều có thể bị tấn công bằng cùngphương cách, bao gồm cả dịch vụ tên miền DNS và dịch vụ thực hiện tiến trình từ
xa RPC (Remote Procedure Call)
2.5.3 Rò rỉ thông tin
Hầu hết các dịch vụ đều cung cấp một vài thông tin về người sử dụng dịch vụ
đó Thông thường, đó là yêu cầu của chính người dùng dịch vụ này Các thông tin
Trang 32đó có thể là mục tiêu của các tình báo thương mại, hoặc nó có thể dùng để đột nhập
hệ thống trái phép Dịch vụ “finger” là một thí dụ Các thông tin mà dịch vụ này
cung cấp có ích rất nhiều cho các kẻ mò mật khẩu
2.5.4 Từ chối dịch vụ
Các yêu cầu được gửi đến máy dịch vụ quá nhiều có thể gây nên tình trạng từchối dịch vụ Nguyên nhân ở đây là do các máy dịch vụ phải sản sinh nhiều tiếntrình con và hệ thống phải cấp phát bộ nhớ và vùng đệm cho chúng Đến một lúcnào đó tài nguyên hệ thống cạn kiệt và nó không trả lời các yêu cầu từ khách hàng
Bom thu là 1 ví dụ, khi có quá nhiều thu đến cùng 1 lúc vượt quá khả năngquản lý của hệ thống thì nó có thể làm hệ thống down
Một kẻ tấn công có thể làm tràn ngập một mạng hay một hệ thống bằng mộtloạt các yêu cầu, thông điệp hay tiến trình, điều mà không một mạng thật nào có thểđáp ứng được Nguyên nhân là hệ thống phải bỏ tất cả thời gian của nó để đáp ứngcác yêu cầu đó và làm hỏng tất cả các dịch vụ khác
Làm tràn ngập mạng để dẫn đến từ chối dịch vụ là cách đơn giản và thôngdụng Những kẻ tấn công thông minh hơn còn có thể làm tê liệt dịch vụ, định hướnglại hay thay thế các dịch vụ Một phương thức đơn giản và hữu hiệu để chống lạicác cuộc tấn công trên là đảm bảo đầy đủ tài nguyên cho hệ thống như RAM, đĩacứng và công suất tính toán của hệ thống (bộ vi xử lý đủ mạnh) Một cách khác làtách biệt các dịch vụ có dùng chung tài nguyên đĩa như Email, FTP, các hệ nhật
ký, v.v và có biện pháp kiểm tra và ngăn chặn những hiện tượng bất thường đốivới các dịch vụ Vì đây là phương pháp tấn công phổ biến trên mạng, nhiều công ty
đã đầu tư rất nhiều tiền của và công sức để chống lại nhưng kết quả vẫn chưa hoàntoàn Gần đây những vụ tấn công này ngày càng tăng, nên để di sâu hơn về phươngpháp tấn công này, xin mời xem thêm phần sau
3 Một số loại tấn công trên mạng
Trong phần này xem xét các khía cạnh an ninh của các mạng dựa trên công nghệInternet (sử dụng bộ giao thức TCP/IP) Cũng như các mạng khác, mạng Internettrên cơ sở bộ giao thức TCP/IP cũng có những kẽ hở, có thể bị lợi dụng để thực hiệncác hoạt động phá hoại và làm tê liệt hoạt động của mạng
- Thứ nhất, TCP/IP không có cơ chế xác thực đối với mỗi gói dữ liệu, do đó kẻtấn công có thể dùng các gói dữ liệu giả mạo đánh lừa các hệ thống
- Thứ hai, bản thân các giao thức thành phần trong bộ giao thức TCP/IP đềuđược thiết kế để làm việc với một loại gói dữ liệu nhất định, với một thủ tụcthiết lập kết nối (thủ tục bắt tay - Handshake) và trao đổi tin nhất định vv
Do đó, nếu các giao thức thành phần này bị làm việc với một chế độ khác hayvới một loại giả mạo khi thiết lập kết nối và trao đổi dữ liệu, thì rất có thểchúng sẽ suy yếu hay làm sụp đổ cả hệ TCP/IP của hệ thống
Trang 33Dựa vào các kẽ hở có thể lợi dụng được của kiến trúc và tổ chức mạng, kẻ tấn công
có thể chui vào các hệ thống phía trong mạng, gây ra các trục trặc về hoạt động vớicác hậu quả không thể lường trước được Sau đây là một số loại tấn công điển hình:
3.1 Ping of Death
TCP/IP cho phép độ lớn tối đa của gói dữ liệu là 65.536 byte Nhưng trong thực tếnhiều hệ thống có các phản ứng bất bình thường khi nhận được các gói IP quá lớn,chẳng hạn hệ bị tê liệt, bị treo hoặc bị khởi động lại
Cách thông thường để lợi dụng nhược điểm này là thông qua gói ICMP được tạo rabởi lệnh “PING” trong các hệ thống ICMP là một giao thức hỗ trợ điều khiển trong
bộ giao thức TCP/IP Nó truyền các thông điệp lỗi và điều khiển đường truyền giữacác hệ thống trên mạng Hai loại thông điệp ICMP phổ biến nhất là ECHO-REQUEST và ECHO-REPLY, dùng để kiểm tra một hệ thống ở xa có đến được hay
có còn hoạt động không
Các lệnh PING thông thường đều tạo các gói có chứa 8 Byte thông tin phần đầucủa ICMP, với độ lớn thông thường của gói IP khoảng 64 bytes Nhưng các lệnhPING còn cho phép người dùng tạo các gói lớn hơn nếu họ muốn Một gói IP có độdài lớn hơn 65.536 byte được coi là không hợp lệ Khi gói này được tạo ra và truyềnđến đích, nó sẽ bị phân mảnh trên đờng truyền Khi các gói đến đích, chúng đượctái hợp lại thành gói ban đầu, với độ lớn 65.536 byte và làm tràn vùng đệm trênnhiều hệ thống
3.2 Giả mạo IP (IP spoofing)
Trên nhiều mạng chuyên dùng, thông thường có một hệ thống tường lửa(firewall) hay bộ lọc gói dùng ngăn chặn việc trao đổi dữ liệu không được phépgiữa mạng trong và mạng bên ngoài (Internet)
Trong những mạng này, để giảm thiểu các quá trình xác thực khi truy nhậpgiữa các máy trong mạng nội bộ (mạng trong), một số máy của mạng trong có thể
được đặt thành các máy “tin cậy” (trusted host) Điều này cho phép các dịch vụ đi
từ máy “tin cậy” đến máy đích mà không cần qua bất cứ trình xác thực nào Nếu kẻ
tấn công bên ngoài giả mạo được địa chỉ IP nguồn là địa chỉ IP của các máy nhưvậy để gửi các gói vào mạng bên trong, thì hệ firewall hay bộ lọc gói đều cho phépchúng đi qua, vì địa chỉ nguồn của chúng là địa chỉ mạng trong Phương pháp tấncông này được gọi là “giả địa chỉ IP” Nhờ phương pháp này, kẻ tấn công có thể độtnhập được vào các máy có đặt chế độ tin cậy và các máy khác trong mạng chuyêndụng
3.3 Giả mạo TCP (TCP spoofing)
Một kết nối TCP được định nghĩa đầy đủ với 4 tham số: địa chỉ IP nguồn, sốhiệu cổng TCP nguồn, địa chỉ IP đích, số hiệu cổng TCP đích Phần đầu gói IP chứađịa chỉ IP nguồn và đích, loại giao thức vận chuyển (TCP=6, UDP=17, vv ) Phầnđầu gói TCP có chứa số hiệu cổng nguồn, số hiệu cổng đích, các số tuần tự(sequence) và báo nhận (acknowledge) cũng như các cờ SYN, ACK, RST,
Trang 34FIN, v.v Khi một gói IP đi qua một giao diện mạng của hệ thống, ta có thể đọc ược nội dung của gói đó, bao gồm cả các giá trị SEQ/ACK hiện thời của các góitrên kết nối đó.
đ-Khi bắt được một gói, hệ thống của người đột nhập (hacker) có thể tạo ra cácgói dữ liệu IP giả có cùng địa chỉ IP nguồn và số hiệu cổng TCP nguồn cũng nhưcác giá trị SYN/ACK cùng các cờ của TCP đặt trong gói sao cho hệ thống đích bịđánh lừa, ngộ nhận gói dữ liệu thu được là gói dữ liệu của bên phát thật Đồng thờivới việc này, hệ thống của hacker còn gửi gói TCP cho hệ thống nguồn với cờ FIN
= 1 (kết thúc kết nối) hay cờ RST = 1 (khởi tạo lại, reset) để đánh lừa là hệ thốngđích muốn kết thúc kết nối với hệ thống nguồn Thông thường như vậy thì hệ thốngcủa hacker đã đánh lừa được cả bên phát (hệ thống nguồn) và bên nhận (hệ thốngđích) Sau khi bị lừa, bên phát kết thúc kết nối TCP với bên thu, trong khi bên thulại tưởng hệ thống của hacker là bên phát và tiếp tục trao đổi dữ liệu
3.4 Bắt cóc phiên (Session hijacking)
Khi bên phát S và bên thu D thiết lập kết nối cũng như truyền dữ liệu, mốitin tưởng của S và D với nhau là: địa chỉ IP nguồn, địa chỉ TCP nguồn, địa chỉ IPđích, địa chỉ TCP đích, các giá trị SEQ/ACK Nếu một hacker làm lẫn lộn các giá trịSEQ/ACK trong các gói từ S đến D thì D sẽ không còn tin tưởng các gói thật từ Sđến nữa Khi đó, hacker sẽ giả làm S, dùng đúng các giá trị SEQ/ACK của S để tiếptục trao đổi dữ liệu với D
Phương thức của hacker là làm lẫn lộn các giá trị SEQ/ACK từ S đến D đượcthực hiện bằng cách chèn các gói dữ liệu vào đúng thời điểm gói từ S đến D, làmcho D chấp nhận gói dữ liệu giả này và cập nhật giá trị ACK của nó
3.5 Tấn công bằng hàng loạt các gói SYN (SYN flood attack)
Bình thường, khi một client muốn thiết lập một liên kết TCP với Server nógửi một gói TCP với cờ SYN = 1, yêu cầu thiết lập kết nối Khi server nhận đượcgói SYN, nó xác nhận với client bằng cách gửi gói SYN-ACK (SYN = 1 và ACK
=1) cho client Client khi nhận được gói này cũng xác nhận lại với Server bằng góiSYN-ACK và kết nối bắt đầu Quá trình thiết lập kết nối này được gọi là bắt tay 3bước
Khi tấn công sử dụng SYN, gói SYN đầu tiên được gửi tới cho server đã bịgiả địa chỉ IP nguồn, hoặc được thay thế bằng một địa chỉ IP không tồn tại trênInternet, hoặc là địa chỉ IP của một máy tính khác Kẻ tấn công sẽ gửi rất nhiều góiSYN tới server để làm cạn kiệt tài nguyên TCP (vùng đệm lưu các trạng thái kếtnối)
Khi nhận được các gói đồng bộ SYN này, server sẽ cấp phát tài nguyên để
xử lý và theo dõi các kết nối mới này sau đó gửi lại các gói đồng bộ SYN-ACK.Trong trường hợp này, gói SYN-ACK được gửi tới cho một địa chỉ giả hay địa chỉ
IP đã bị lừa Vì là địa chỉ giả nên server sẽ không nhận được các gói SYN-ACK ước 3) từ phía client để bắt đầu thiết lập kết nối Server sẽ giả sử rằng gói SYN-ACK đã gửi đi bị thất lạc trên mạng và sẽ gửi lại vài gói SYN-ACK nữa (5 lần với
Trang 35(b-Windows NT), đồng thời tăng giá trị time-out cho mỗi lần truyền lại (3, 6, 12, 24,
48 giây với Windows NT) Sau lần truyền lại gói SYN-ACK cuối cùng, server sẽ từ
bỏ kết nối đó và giải phóng các tài nguyên đã cấp phát cho kết nối Như vậy, tổng
số thời gian chiếm giữ tài nguyên TCP cho kết nối đó là lớn và "vô nghĩa" (vớiWindows NT khoảng 189 giây) Với kiểu tấn công này, server sẽ bị cạn kiệt tàinguyên TCP và không có khả năng xử lý các kết nối TCP khác nữa
3.6 Tấn công bằng IP phân đoạn (IP frags attack)
Các router thường rất dễ bị tấn công (bị lừa) bởi phương pháp này Thôngthường, các router đều có các danh sách điều khiển truy nhập ACL (Access ControlList) Danh sách này được thiết lập bởi người quản trị mạng, cho phép thiết lập cácluật lọc gói trong router Các gói IP có được qua hay không đều dựa vào danh sáchnày
Trong hoạt động bình thường của router, nếu phân đoạn IP đầu tiên đượcphép đi qua dựa trên ACL thì router sẽ chuyển gói đi đúng đích Sau đó, nó sẽ tuần
tự chuyển các phân đoạn IP tiếp theo mà không kiểm tra theo ACL Trong phươngthức tấn công dùng Overlapping Fragments, kẻ tấn công dùng các phân đoạn IP saughi đè lên phần cuối của phân đoạn đầu tiên, đánh lừa router để chấp nhận
3.7 LAND attack
Kẻ tấn công gửi một gói đánh lừa đến cho một hệ thống với địa chỉ IP đích
và địa chỉ IP nguồn trùng nhau, số hiệu cổng TCP đích và số hiệu cổng TCP nguồntrùng nhau Khi nhận được gói này, theo phản ứng tự nhiên của một hệ TCP/IP, hệthống bắt đầu trao đổi dữ liệu với chính nó Một số hệ thống sẽ trở nên chậm chạp
và không có phản ứng gì với các hoạt động khác khi gặp phải loại tấn công này
4 Các mối đe dọa đối với dịch vụ thông tin
Các dịch vụ thông tin là chỗ yếu nhất của toàn hệ thống Chúng không đượcthiết kế để đảm bảo an ninh hệ thống cũng như tự bảo vệ chính nội dung thông tin
mà chúng truyền tải
Phần lớn các dịch vụ thông tin không có cơ chế mã hóa nội dung thông tinđược cung cấp trong các gói dữ liệu truyền trên mạng Do vậy, một khi đã bị nghetrộm thì toàn bộ nội dung thông tin dễ dàng hiển thị hết trên màn hình của kẻ pháhoại Các dịch vụ thông tin có thể kể ra là: Telnet, Web, E-Mail, Gopher, IRC, v.v.Thêm nữa, các dịch vụ thông tin, bao gồm tiến trình phục vụ phía máy dịch vụ vàtiến trình khách hàng phía máy người dùng, đều chỉ thiết kế với một cơ chế làm việcnhất định Nếu chúng bị bắt buộc làm việc sai cơ chế, hay kẻ tấn công lợi dụng kẽ
hở của cơ chế làm việc hoặc của bản thân giao thức dịch vụ, thì dịch vụ đó coi như
đã bị tấn công, gây hiểm họa cho bản thân hệ thống đó cũng như các hệ thống khác
có liên quan Nhiều giao thức không có cơ chế xác thực đối với khách hàng, thí dụ:SMTP hay NFS là các kẽ hở an ninh đối với kẻ tấn công
Trang 364.1 Tấn công từ chối dịch vụ (Denial of sevice)
Đây là các cách tấn công nhằm vào các hệ thống dịch vụ mạng Các tấn côngchủ yếu vào các hệ thống TCP/IP như “Ping Of Death”, “SYN flooding”, “LANDattack”, v.v Mục đích của các tấn công này là làm chậm phản ứng hay làm tê liệthoàn toàn hệ TCP/IP để hệ thống không còn khả năng đáp ứng dịch vụ mà ngườidùng yêu cầu
4.2 Tấn công các giao thức dùng số tuần tự TCP
Vì không đủ số ngẫu nhiên trong quá trình tạo “số tuần tự TCP ban đầu” chomột kết nối TCP nên có thể gây ra kẽ hở cho kẻ tấn công lừa địa chỉ nguồn Cácgiao thức khác dựa trên số tuần tự đều có thể bị tấn công bằng cùng phương cách,bao gồm DNS và RPC Kẻ tấn công có thể dùng nhiều thuật toán hay phương pháptạo số tuần tự để đoán được các số tuần tự của TCP cũng như của các giao thức dịch
vụ
4.3 Tấn công các giao thức không xác thực
Nhiều giao thức không có cơ chế xác thực như SMTP hay xác thực rất lỏnglẻo như NFS Các giao thức này thường là mục đích tấn công hay là phương tiện tấncông của các hacker Các hacker có thể giả các gói của các giao thức này để nóichuyện với hệ thống, và nếu tiến trình phục vụ của giao thức này có quyền hoặc mộtphần quyền của quản trị hệ thống trong hệ thống đó, thì hacker có thể lợi dụng khe
hở này để đột nhập vào hệ thống
5 Một số các biện pháp phòng tránh
5.1 Các chiến lược bảo mật chung nhất
5.1.1 Quyền hạn tối thiểu
Nguyên tắc cơ bản nhất của chức năng bảo mật là cơ chế quyền hạn tối thiểu
Về cơ bản, nguyên tắc này là bất kỳ một đối tượng nào (người sử dụng, người điềuhành, chương trình…) chỉ nên có những quyền hạn nhất định mà đối tượng đó cầnphải có để có thể thực hiện được các nhiệm vụ của mình và chỉ như vậy mà thôi.Đây là nguyên tắc quan trọng để hạn chế sự phơi bầy hệ thống cho kẻ khác tấn công
và hạn chế sự thiệt hại khi bị tấn công
Áp dụng nguyên tắc quyền hạn tối thiểu (least privilege), nên tìm cách đểgiảm quyền hạn cần dùng cho từng người sử dụng với từng công việc cụ thể Ví dụnhư không nên đưa cho người dùng mật khẩu của root (tài khoản quản trị cao nhất)khi mà công việc cần nhất của họ với hệ thống chỉ là khởi động lại máy in Thayvào đó, nên viết một chương trình có quyền khởi động lại máy in để họ dùng màthôi
Tuy nhiên, có rất nhiều vấn đề về an ninh mạng trên internet bị xem là thấtbại khi áp dụng nguyên tắc quyền hạn tối thiểu này Ví dụ chương trình sendmailđược chạy với quyền của người quản trị hệ thống, tức là nó chuyển quyền thực tế về
Trang 37root khi chạy, nên rất nhiều cuộc tấn công khai thác điểm này để chiếm quyền điềukhiển toàn bộ hệ thống.
5.1.2 Bảo vệ theo chiều sâu
Tư tưởng của chiến lược này là hệ thống bảo mật gồm nhiều mức, sau mứcbảo mật này thì có mức bảo mật khác, các mức bảo mật hỗ trợ lẫn nhau Hệ thốngcàng “mật” khi các mức này được xây dựng theo các kĩ thuật bảo mật khác nhau,ngăn chặn được các kiểu tấn công khác nhau Không nên chỉ phụ thuộc vào một chế
độ an toàn dù nó có mạnh đến thế nào đi nữa
Sau khi xây dựng hệ thống firewall, xây dựng thêm hệ thống IDS thì khi kẻxâm nhập có thể vượt qua firewall nhưng sẽ bị theo dõi Hệ thống IDS sẽ bổ trợ chofirewall làm tăng tính an toàn cho hệ thống
5.1.3 Điểm thắt
Điểm thắt buộc những kẻ tấn công vào hệ thống phải thông qua một kênhhẹp mà người quản trị có thể điều khiển được Ở đây, người quản trị có thể cài đặtcác cơ chế giám sát, kiểm tra và điều khiển (cho phép hoặc không cho phép) cáctruy nhập vào hệ thống
Trong an ninh mạng, IDS nằm giữa hệ thống bên trong và Internet nhưngtrước firewall như một nút thắt (giả sử chỉ có một con đường kết nối duy nhất giữa
hệ thống bên trong với internet) Khi đó, tất cả những kẻ tấn công từ internet khi điqua nút thắt này thì sẽ bị người quản trị theo dõi và phản ứng lại kịp thời
Yếu điểm của phương pháp này là không thể kiểm soát, ngăn chặn đượcnhững hình thức tấn công đi vòng qua điểm đó
5.1.4 Điểm yếu nhất
Những kẻ tấn công thông minh luôn tìm các điểm yếu nhất của hệ thống đểtấn công vào đó Chúng sẽ không bỏ nhiều thời gian và công sức để cố gắng vượtqua một firewall được xây dựng vững chắc trong khi có con đường vòng khác đang
“rộng mở” hơn Do đó, cần phải nhận ra được điểm yếu của hệ thống, từ đó cóphương thức bảo vệ thích hợp với các đợt tấn công
Thường thì ta quan tâm đến những kẻ tấn công từ mạng hơn mà quên đi rằngcòn có những kẻ tiếp cận hệ thống trực tiếp, vì vậy có thể nói rằng điểm yếu nhấttrong hệ thống là an toàn về mặt vật lý
5.1.5 Phối hợp chung
Để đạt hiệu quả cao, hầu hết các hệ thống an toàn đòi hỏi phải có sự phốihợp chung của tất cả các thành phần trong hệ thống (người sử dụng, phần cứng bảomật, phần mềm bảo mật, các cơ chế an toàn…) để tạo thành hệ bảo mật, giám sát và
hỗ trợ lẫn nhau
Trang 385.1.6 Phòng thủ đa dạng
Hệ thống phòng thủ gồm nhiều module, cung cấp nhiều hình thức phòng thủkhác nhau Do đó, module này lấp “lỗ hổng” của các module khác Ngoài firewall,một mạng LAN hay một máy cục bộ cần sử dụng các module bảo vệ khác của ứngdụng, hệ điều hành, thiết bị phần cứng,
Sự đa dạng của các hệ thống mạng bên trong có thể làm tăng khả năng bảo
vệ mạng Nếu mạng bên trong bao gồm các hệ thống giống nhau thì khi có một lỗichung trong hệ điều hành hoặc một chương trình ứng dụng có thể làm cho toàn bộ
hệ thống bị tấn công theo cùng một phương pháp Tuy nhiên, sự đa dạng cũng đồngnghĩa với sự phức tạp trong việc quản lý các hệ thống khác nhau, đồng thời tăng chiphí trang bị phần cứng, phần mềm
5.1.7 Tính đơn giản
Tính đơn giản cũng là một chiến lược bảo mật vì hai lý do:
Đơn giản sẽ dễ hiểu, dễ kiểm soát và biết được rằng chúng có thực sự đượcbảo mật hay không
Sự phức tạp sẽ kèm theo những ngóc ngách, kẽ hở để đủ thứ có thể lọt vào
Vì vậy, đơn giản vẫn hơn
Hơn nữa, các chương trình phức tạp có khả năng bị nhiều lỗi hơn, và rất có thể đólại là lỗi bảo mật
5.2 Một số biện pháp bảo mật bằng giao thức
NAT (Network Address Translation)
Thông thường một gói tin truyền từ điểm nguồn đến điểm đích có thể phải quarất nhiều nút mạng Tuy nhiên hầu như không có nút nào trong các nút mạng nàythay đổi nội dung của gói tin trừ các thông tin cần thiết như là địa chỉ IP đích, địachỉ MAC Nếu ta sử dụng cơ chế NAT trong mạng thì một số thông tin của gói tin
IP sẽ bị thay đổi, chẳng hạn: IP nguồn, IP đích…Mặt khác, để đảm bảo việc trao đổithông tin giữa các nút mạng thì các sự thay đổi này cần phải được lưu lại để phục vụcho việc chuyển đổi ngược lại khi cần thiết
Tại sao phải dùng đến NAT ?
Nếu ta kết nối vào Internet thông qua dial-up thì các ISP sẽ chỉ cung cấp cho tamột địa chỉ IP duy nhất, các gói tin gửi đi sẽ được reply nếu nó có đúng địa chỉnguồn do ISP cung cấp Trong trường hợp muốn dùng nhiều địa chỉ IP khác nhautrong mạng thì ta phải dùng đến cơ chế NAT Theo đó trong mạng sẽ có một máy(máy multi-homed hoặc bộ định tuyến) chạy phần mềm NAT, có thể gọi máy tinhnày là NAT box Tất cả các gói tin gửi từ trong mạng ra ngoài sẽ phải qua NAT box
và nó sẽ chịu trách nhiệm chuyển đổi địa chỉ IP nguồn (là địa chỉ không được chấpnhận ở mạng ngoài) thành địa chỉ hợp lệ mà ISP đã cung cấp Khi gói tin đi vào