Điều này làm cho hệ thống bức tường lửa dễ dàng sử dụng cho những người trong mạng nội bộ muốn trực tiếp truy nhập tới các dịch vụ Internet, trong khi vẫn cung cấp chức năng bức tường lử
Trang 1MỞ ĐẦU
Với sự phát triển nhanh của mạng Internet, bảo mật thông tin trở lên vô cùng cấp bách để có được những thông tin giá trị và tin cậy Người quản lý nhận thấy việc đầu tư cho an ninh không chỉ là lợi lớn mà còn là rất cần thiết Các công ty nhận ra sự cần thiết của việc tạo ra và tuân theo chính sách bảo mật thông tin, bởi vậy, người IT chuyên nghiệp luôn luôn bị thách thức để bảo vệ mạng của họ với firewall và tạo mạng riêng ảo VPN để cung cấp sự an toàn cho các giao dịch được mã hóa qua hạ tầng Internet công cộng dễ bị tấn công
Firewall đã trở thành một trong những công nghệ đầu tiên bảo vệ mạng và chống lại truy nhập trái phép Kế hoạch bảo mật yêu cầu sự kết hợp hài hòa của con người, xử lý, và công nghệ để giảm rủi ro Và firewall cũng là một công cụ bảo mật giá trị để thực hiện nhiệm vụ này Ngày nay, khi thiết kế và xây dựng mạng sử dụng firewall là tất yếu cho nhiều mô hình ở giai đoạn cuối Nhận ra điều này, nhiều công ty bảo mật đã phát triển và tiếp tục cải thiện các sản phẩm firewall
Với mục tiêu chính là tìm hiểu công nghệ phòng chống tấn công Sql injection và Dos, giải thuật Boyer-Moore, Cusum để phát hiện và ngăn chặn tấn công Đề tài đặt ra một
số mục tiêu, xác định phạm vi, bố cục của luận văn như sau:
Mục tiêu của đề tài
Xây dựng một firewall có khả năng phát hiện và giảm thiểu các tấn công Sql Injection và Dos vào webserver Đồng thời cung cấp một giao diện quản lý người dùng trực quan thân thiện, giúp hệ thống vận hành tốt và không bị trục trặc
Phạm vi nghiên cứu của đề tài
Phạm vi nghiên cứu của đề tài thuộc lĩnh vực bảo mật mạng máy tính, chỉ áp dụng để phát hiện sql injection và Dos Các khả năng có thể xử lý được:
- Phát hiện và giảm thiểu những cuộc tấn công sql injection đơn giản
- Phát hiện một số kiểu tấn công DOS
- Không ngăn chặn được triệt để tấn công DOS
Kết quả dự kiến đạt đƣợc
Trang 2- Xây dựng công cụ hỗ trợ cho việc phát hiện và giảm thiểu tấn công sql injection và Dos
- Thiết kế và cài đặt hệ thống với các thành phần và chức năng đầy đủ trong mô hình
hệ thống tổng quát
- Áp dụng thử nghiệm tại phòng máy Đại học Lạc Hồng
Bố cục của luận văn
Bố cục của luận văn bao gồm phần mở đầu, phần kết luận và bốn chương nội dung được tổ chức như sau:
Chương 1: Tổng quan về an ninh mạng: giới thiệu về một số virus nguy hiểm và các
phương thức lừa đảo tấn công trên mạng
Chương 2: Cơ sở lý thuyết: nêu chi tiết về các khái niệm firewall, các cách tấn công
và phòng chống với hình thức tấn công bằng câu lệnh SQL Injection và DOS
Chương 3: Các phương pháp chặn bắt và tìm kiếm Packet: miêu tả các kỹ thuật
chặn bắt và phân tích gói tin từ đó xây dựng chương trình phát hiện và ngăn chặn các gói tin hoặc IP có dấu hiệu bất thường
Chương 4: Thiết kế và xây dựng chương trình
Chương 5: Kết luận và hướng phát triển
Trang 3CHƯƠNG 1 TỔNG QUAN VỀ AN NINH MẠNG 1.1 Hiện trạng về an ninh mạng
Trong những năm gần đây với sự phát triễn mạnh mẽ của internet đã đem lại cho người dùng rất nhiều lợi ích Ngoài lợi ích thì cũng có rất nhiều vấn đề về an ninh mạng xảy ra trong năm 2011
Theo thống kê từ hệ thống giám sát của BKAV thì có 64,2 triệu lượt máy tính tại Việt Nam bị nhiễm virus là tổng kết năm 2011 từ Hệ thống giám sát virus của Bkav Trung bình một ngày đã có hơn 175 nghìn máy tính bị nhiễm virus
Năm 2011, đã có 38.961 dòng virus xuất hiện mới, lây lan nhiều nhất là virus W32.Sality.PE Virus này đã lây nhiễm trên 4,2 triệu lượt máy tính
Danh sách 15 virus lây lan nhiều nhất trong năm 2011:
Hình 1.1 Danh sách virus 2011
Trang 4Cũng trong năm 2011, đã có 2.245 website của các cơ quan, doanh nghiệp tại Việt Nam bị tấn công Trung bình mỗi tháng có 187 website bị tấn công
Mạng lưới "nằm vùng" nguy hiểm W32.Sality.PE
Hơn 4,2 triệu lượt máy tính tại Việt Nam đã bị nhiễm virus siêu đa hình W32.Sality.PE trong năm 2011, như vậy trung bình mỗi ngày có thêm 11.000 máy tính bị nhiễm loại virus này Virus Sality đã len lỏi vào mọi ngóc ngách trong các hệ thống mạng máy tính tại Việt Nam Trong thực tế, khi kiểm tra bất kỳ hệ thống nào, các chuyên gia của Bkav hầu như đều phát hiện sự tồn tại của Sality Không chỉ là virus lây lan nhiều nhất năm 2011, đây thực sự là quả "bom nổ chậm", sẵn sàng phát nổ gây ảnh hưởng đến hàng triệu máy tính trong thời gian tới
Mặc dù lây nhiễm hàng triệu máy tính, tuy nhiên trong suốt một thời gian dài theo dõi dòng virus này từ năm 2009 đến nay, virus Sality vẫn đang chỉ "nằm vùng" mà chưa kích hoạt các tính năng phá hoại như ăn cắp thông tin hay phá hủy dữ liệu Đây thực sự
là một điều khó lý giải Rất có thể có một tổ chức, thậm chí là một quốc gia đứng đằng sau mạng lưới virus này và chưa rõ ý đồ thực sự của họ là gì
Lý do khiến W32.Sality.PE có thể lây lan tới hàng triệu máy tính là vì virus này có khả năng sử dụng các giải thuật di truyền để tự động lai tạo, sinh ra các thế hệ virus "con cháu" F1, F2… Càng lây nhiễm lâu trên máy tính, virus càng sinh ra nhiều biến thể với
Hình 1.2 Số lượng website bị tấn công
Trang 5độ phức tạp càng cao, khiến cho khả năng nhận dạng và bóc lớp của các phần mềm diệt virus càng khó khăn Chính vì thế W32.Sality.PE có thể qua mặt được hầu như tất cả các phần mềm diệt virus trên thế giới
Lừa đảo trực tuyến gia tăng trên mạng xã hội
Các chuyên gia đã nhận định 2011 sẽ là năm xuất hiện nhiều cuộc tấn công lừa đảo trên mạng Điều này thực tế đã xảy ra, trung bình mỗi tháng Bkav nhận được hơn
30 báo cáo về lừa đảo qua Yahoo Messenger Trong mỗi vụ, số nạn nhân có thể lên tới hàng chục người Mặc dù đã được cảnh báo nhiều lần nhưng do sự nhẹ dạ của người sử dụng mà các vụ cướp nick hoặc lừa tiền vẫn diễn ra liên tiếp
Không chỉ Yahoo mà giờ đây Facebook, mạng xã hội lớn nhất thế giới đã trở thành phương tiện để tin tặc lợi dụng
Botnet và những cuộc tấn công mạng liên tiếp
Năm 2011 là năm của các cuộc tấn công mạng Liên tiếp xảy ra các cuộc tấn công với các hình thức khác nhau vào hệ thống của các tổ chức, doanh nghiệp tại Việt Nam
Có những cuộc tấn công xâm nhập trái phép phá hoại cơ sở dữ liệu hoặc deface các website Cũng có những cuộc tấn công DDoS làm tê liệt hệ thống trong thời gian dài Tấn công cướp tên miền của các doanh nghiệp cũng đã diễn ra liên tiếp Nguy hiểm hơn, đã xuất hiện nhiều cuộc tấn công âm thầm, cài đặt các virus gián điệp đánh cắp tài liệu của các cơ quan quan trọng
Các vụ tấn công xảy ra phần lớn có nguyên nhân từ nhận thức của lãnh đạo các cơ quan, doanh nghiệp về tầm quan trọng của an ninh mạng, dẫn đến sự đầu tư dàn trải, thiếu một giải pháp tổng thể cho an toàn an ninh hệ thống
Đáng chú ý trong năm 2011 là sự việc hơn 85.000 máy tính tại Việt Nam bị cài virus Ramnit để lấy cắp dữ liệu quan trọng Điều này cho thấy các cuộc tấn công còn có thể gây ảnh hưởng đến an ninh quốc gia Không chỉ tại Việt Nam, hệ thống botnet này còn được hacker điều khiển thông qua nhiều máy chủ đặt ở Mỹ, Nga, Đức và Trung Quốc
để lấy cắp thông tin trên toàn cầu Đây là tình trạng phổ biến trên thế giới trong năm
2011
1.2 Cách giải quyết vấn đề
Trang 6 Để chống lại các cuộc tấn công, nhất thiết cần áp dụng Hệ thống quản lý an ninh thông tin ISO 27001 Quy trình ISO sẽ bắt buộc các website phải được đánh giá độc lập về an ninh trước khi đưa vào vận hành, hạ tầng mạng phải được thiết kế tổng thể ngay từ khi xây dựng Ngoài ra, để bảo vệ các hệ thống website, chống
bị đánh cắp dữ liệu, việc áp dụng một giải pháp tổng thể phòng chống virus là điều tối quan trọng Khi thực hiện được tất cả các việc này, hệ thống mạng mới
có thể được đảm bảo ở mức cao nhất
Sử dụng firewall phần cứng và phần mềm
Trang 7CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Khái niệm về tường lửa ( firewall )
Thuật ngữ Firewall [4] có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để ngăn chặn, hạn chế hoả hoạn Trong công nghệ mạng thông tin, Firewall là một kỹ thuật được tích hợp vào hệ thống mạng để chống sự truy cập trái phép, nhằm bảo vệ các nguồn thông tin nội bộ và hạn chế sự xâm nhập không mong muốn vào hệ thống Cũng có thể hiểu Firewall là một cơ chế (mechanism) để bảo vệ mạng tin tưởng (Trusted network) khỏi các mạng không tin tưởng (Untrusted network)
Internet Firewall là một thiết bị (Phần cứng + Phần mềm) giữa mạng của một tổ chức, một công ty, một quốc gia (Intranet) và Internet Nó thực hiện vai trò bảo mật các thông tin Intranet từ thế giới Internet bên ngoài
2.2 Phân loại và đặc điểm Firewall
2.2.1 Firewall cứng
Là những firewall được tích hợp trên Router
Hình 2.1: Minh họa Firewall cứng
Đặc điểm của Firewall cứng:
Không được linh hoạt như Firewall mềm: (Không thể thêm chức năng, thêm quy tắc như firewall mềm)
Firewall cứng hoạt động ở tầng thấp hơn Firewall mềm (Tầng Network
và tầng Transport)
Firewall cứng không thể kiểm tra được nột dung của gói tin
Ví dụ :Firewall cứng: NAT (Network Address Translate)
2.2.2 Firewall mềm
Là những Firewall được cài đặt trên Server
Trang 8Hình 2.2: Minh họa Firewall mềm
Đặc điểm của Firewall mềm:
Tính linh hoạt cao: Có thể thêm, bớt các quy tắc, các chức năng
Firewall mềm hoạt động ở tầng cao hơn Firewall cứng (tầng ứng dụng)
Firewal mềm có thể kiểm tra được nội dung của gói tin (thông qua các từ khóa)
Ví dụ về Firewall mềm: Zone Alarm, Norton Firewall, Internet security acceleration … 2.2.3 Vì sao cần Firewall
Hình 2.3: Các luồng trao đổi dữ liệu từ PC ra Internet và ngược lại khi có Firewall
và không có Firewall
Nếu máy tính của bạn không được bảo vệ, khi bạn kết nối Internet, tất cả các giao thông ra vào mạng đều được cho phép, vì thế hacker, trojan, virus có thể truy cập
và lấy cắp thông tin cá nhân cuả bạn trên máy tính Chúng có thể cài đặt các đoạn mã
để tấn công file dữ liệu trên máy tính Đồng thời chúng còn sử dụng máy tính của bạn
để tấn công một máy tính của gia đình hoặc doanh nghiệp khác kết nối Internet Một firewall có thể giúp bạn thoát khỏi gói tin hiểm độc trước khi nó đến
2.2.4 Chức năng
Chức năng chính của Firewall là kiểm soát luồng thông tin từ giữa Intranet và Internet Thiết lập cơ chế điều khiển dòng thông tin giữa mạng bên trong (Intranet) và mạng Internet Cụ thể là:
Cho phép hoặc cấm những dịch vụ truy nhập ra ngoài (từ Intranet ra Internet)
Cho phép hoặc cấm những dịch vụ phép truy nhập vào trong (từ Internet vào Intranet)
Trang 9 Theo dõi luồng dữ liệu mạng giữa Internet và Intranet
Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập
Kiểm soát người sử dụng và việc truy nhập của người sử dụng
Kiểm soát nội dung thông tin lưu chuyển trên mạng
2.2.5 Nhiệm vụ Firewall
Nhiệm vụ cơ bản của FireWall là bảo vệ những vấn đề sau :
Dữ liệu : Những thông tin cần được bảo vệ do những yêu cầu sau:
số địa chỉ
Firewall không thể ngăn chặn một cuộc tấn công nếu cuộc tấn công này không
"đi qua" nó Một cách cụ thể, firewall không thể chống lại một cuộc tấn công từ một đường dial-up, hoặc sự dò rỉ thông tin do dữ liệu bị sao chép bất hợp pháp lên đĩa mềm
Firewall cũng không thể chống lại các cuộc tấn công bằng dữ liệu (data-driven attack) Khi có một số chương trình được chuyển theo thư điện tử, vượt qua firewall vào trong mạng được bảo vệ và bắt đầu hoạt động ở đây
Một ví dụ là các virus máy tính Firewall không thể làm nhiệm vụ rà quét virus trên các dữ liệu được chuyển qua nó, do tốc độ làm việc, sự xuất hiện liên tục của các virus mới và do có rất nhiều cách để mã hóa dữ liệu, thoát khỏi khả năng kiểm soát của firewall
Tuy nhiên, Firewall vẫn là giải pháp hữu hiệu được áp dụng rộng rãi
2.2.7 Các thành phần của Firewall và nguyên lý hoạt động
Trang 10Firewall chuẩn bao gồm một hay nhiều các thành phần sau đây:
Bộ lọc packet (packet-filtering router)
Cổng ứng dụng (application-level gateway hay proxy server)
Cổng mạch (circuite level gateway)
2.2.7.1 Bộ lọc gói (Packet Filtering)
a Nguyên lý hoạt động
Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua Firewall thì điều đó có nghĩa rằng Firewall hoạt động chặt chẽ với giao thức TCP/IP Vì giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận được từ các ứng dụng trên mạng, hay nói chính xác hơn là các dịch vụ chạy trên các giao thức (Telnet, SMTP, DNS, SMNP, NFS ) thành các gói dữ liệu (data packets) rồi gán cho các packet này những địa chỉ để có thể nhận dạng, tái lập lại ở đích cần gửi đến, do đó các loại Firewall cũng liên quan rất nhiều đến các packet và những con số địa chỉ của chúng
Bộ lọc packet cho phép hay từ chối mỗi packet mà nó nhận được Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thoả mãn một trong số các luật lệ của lọc packet hay không Các luật lệ lọc packet này là dựa trên các thông tin ở đầu mỗi packet (packet header), dùng để cho phép truyền các packet đó ở trên mạng
Đó là:
Địa chỉ IP nơi xuất phát ( IP Source address)
Địa chỉ IP nơi nhận (IP Destination address)
Những thủ tục truyền tin (TCP, UDP, ICMP, IP tunnel)
Cổng TCP/UDP nơi xuất phát (TCP/UDP source port)
Cổng TCP/UDP nơi nhận (TCP/UDP destination port)
Dạng thông báo ICMP ( ICMP message type)
Giao diện packet đến ( incomming interface of packet)
Giao diện packet đi ( outcomming interface of packet)
Nếu luật lệ lọc packet được thoả mãn thì packet được chuyển qua firewall Nếu không packet sẽ bị bỏ đi Nhờ vậy mà Firewall có thể ngăn cản được các kết nối vào các máy chủ hoặc mạng nào đó được xác định, hoặc khoá việc truy cập vào hệ thống
Trang 11mạng nội bộ từ những địa chỉ không cho phép Hơn nữa, việc kiểm soát các cổng làm cho Firewall có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó, hoặc chỉ có những dịch vụ nào đó (Telnet, SMTP, FTP ) được phép mới chạy được trên hệ thống mạng cục bộ
b Ƣu điểm và hạn chế
Ƣu điểm
Đa số các hệ thống firewall đều sử dụng bộ lọc packet Một trong những ưu điểm của phương pháp dùng bộ lọc packet là chi phí thấp vì cơ chế lọc packet đã được bao gồm trong mỗi phần mềm router Ngoài ra, bộ lọc packet là trong suốt đối với người sử dụng và các ứng dụng, vì vậy nó không yêu cầu sự huấn luyện đặc biệt nào
2.2.7.2 Cổng ứng dụng (Application-Level Gateway)
a.Nguyên lý hoạt động
Đây là một loại Firewall được thiết kế để tăng cường chức năng kiểm soát các loại dịch vụ, giao thức được cho phép truy cập vào hệ thống mạng Cơ chế hoạt động của nó dựa trên cách thức gọi là Proxy service Proxy service là các bộ code đặc biệt cài đặt trên gateway cho từng ứng dụng Nếu người quản trị mạng không cài đặt proxy code cho một ứng dụng nào đó, dịch vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua firewall Ngoài ra, proxy code có thể được định cấu hình để hỗ trợ chỉ một số đặc điểm trong ứng dụng mà người quản trị mạng cho là chấp nhận được trong khi từ chối những đặc điểm khác
Trang 12Một cổng ứng dụng thường được coi như là một pháo đài (bastion host), bởi vì
nó được thiết kế đặt biệt để chống lại sự tấn công từ bên ngoài Những biện pháp đảm bảo an ninh của một bastion host là bastion host luôn chạy các version an toàn (secure version) của các phần mềm hệ thống (Operating system) Các version an toàn này được thiết kế chuyên cho mục đích chống lại sự tấn công vào Operating System, cũng như là đảm bảo sự tích hợp firewall Chỉ những dịch vụ mà người quản trị mạng cho là cần thiết mới được cài đặt trên bastion host, đơn giản chỉ vì nếu một dịch vụ không được cài đặt, nó không thể bị tấn công Thông thường, chỉ một số giới hạn các ứng dụng cho các dịch vụ Telnet, DNS, FTP, SMTP và xác thực user là được cài đặt trên bastion host Bastion host có thể yêu cầu nhiều mức độ xác thực khác nhau, ví dụ như user password hay smart card Mỗi proxy được đặt cấu hình để cho phép truy nhập chỉ một
sồ các máy chủ nhất định Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống Mỗi proxy duy trì một quyển nhật ký ghi chép lại toàn bộ chi tiết của giao thông qua nó, mỗi sự kết nối, khoảng thời gian kết nối Nhật ký này rất có ích trong việc tìm theo dấu vết hay ngăn chặn kẻ phá hoại Mỗi proxy đều độc lập với các proxies khác trên bastion host Điều này cho phép dễ dàng quá trình cài đặt một proxy mới, hay tháo gỡ môt proxy đang có
Hạn chế
Trang 13Yêu cầu các users thay đổi thao tác, hoặc thay đổi phần mềm đã cài đặt trên máy
client cho truy nhập vào các dịch vụ proxy Chẳng hạn, Telnet truy nhập qua cổng ứng
dụng đòi hỏi hai bước để nối với máy chủ chứ không phải là một bước thôi Tuy nhiên,
cũng đã có một số phần mềm client cho phép ứng dụng trên cổng ứng dụng là trong
suốt, bằng cách cho phép user chỉ ra máy đích chứ không phải cổng ứng dụng trên lệnh
Telnet
2.2.7.3 Cổng vòng (Circuit-Level Gateway)
Cổng vòng là một chức năng đặc biệt có thể thực hiện được bởi một cổng ứng
dụng Cổng vòng đơn giản chỉ chuyển tiếp (relay) các kết nối TCP mà không thực hiện
bất kỳ một hành động xử lý hay lọc packet nào
Hình dưới đây minh hoạ một hành động sử dụng nối telnet qua cổng vòng Cổng
vòng đơn giản chuyển tiếp kết nối telnet qua firewall mà không thực hiện một sự kiểm
tra, lọc hay điều khiển các thủ tục Telnet nào.Cổng vòng làm việc như một sợi dây,sao
chép các byte giữa kết nối bên trong (inside connection) và các kết nối bên ngoài
(outside connection) Tuy nhiên, vì sự kết nối này xuất hiện từ hệ thống firewall, nó
che dấu thông tin về mạng nội bộ
Hình 2.4: Minh họa nối Telnet qua cổng vòng đơn giản
Cổng vòng thường được sử dụng cho những kết nối ra ngoài, nơi mà các quản
trị mạng thật sự tin tưởng những người dùng bên trong Ưu điểm lớn nhất là một
bastion host có thể được cấu hình như là một hỗn hợp cung cấp Cổng ứng dụng cho
những kết nối đến, và cổng vòng cho các kết nối đi Điều này làm cho hệ thống bức
tường lửa dễ dàng sử dụng cho những người trong mạng nội bộ muốn trực tiếp truy
nhập tới các dịch vụ Internet, trong khi vẫn cung cấp chức năng bức tường lửa để bảo
vệ mạng nội bộ từ những sự tấn công bên ngoài
out out out
in in in
Circuit-level Gateway
Trang 142.2.8 Kiến trúc cơ bản của Firewall
2.2.8.1 Dual homed host
Dual–homed Host là hình thức xuất hiện đầu tiên trong cuộc đấu để bảo vệ mạng nội bộ Dual–homed Host là một máy tính có hai giao tiếp mạng một nối với mạng cục bộ và một nối với mạng ngoài (Internet)
Hệ điều hành của Dual–homed Host được sửa đổi để chức năng chuyển các gói tin (Packet forwarding) giữa hai giao tiếp mạng này không hoạt động Để làm việc được với một máy trên Internet, người dùng ở mạng cục bộ trước hết phải login vào Dual–homed Host, và từ đó bắt đầu phiên làm việc
INTERNET
Internal Network
Dual-homed Host
Disable routing function
Hình 2.5: Sơ đồ kiến trúc Dual–homed Host
Ƣu điểm của Dual–homed Host:
Cài đặt dễ dàng, không yêu cầu phần cứng hoặc phần mềm đặc biệt
Dual–homed Host chỉ yêu cầu cấm khả năng chuyển các gói tin, do vậy, thông thường trên các hệ Unix, chỉ cần cấu hình và dịch lại nhân (Kernel) của hệ điều hành là đủ
Nhƣợc điểm của Dual–homed Host:
Trang 15 Không đáp ứng được những yêu cầu bảo mật ngày càng phức tạp, cũng như những hệ phần mềm mới được tung ra thị trường
Không có khả năng chống đỡ những cuộc tấn công nhằm vào chính bản thân nó,
và khi Dual–homed Host đó bị đột nhập, nó sẽ trở thành đầu cầu lý tưởng để tấn công vào mạng nội bộ
Đánh giá về kiến trúc Dual–homed Host:
Để cung cấp dịch vụ cho những người sử dụng internal network có một số giải pháp như sau:
Kết hợp với các Proxy Server cung cấp những Proxy Service
Cấp các account cho user trên máy dual–homed host này và khi mà người sử dụng muốn sử dụng dịch vụ từ Internet hay dịch vụ từ external network thì họ phải logging in vào máy này
Nếu dùng phương pháp cấp account cho user trên máy dual– homed host thì user không thích sử dụng dịch vụ phiền phức như vậy, vì mỗi lần họ muốn sử dụng dịch vụ thì phải loging in vào máy khác (dual homed host) khác với máy của họ đây là vấn đề rất là không trong suốt với người sử dụng
Nếu dùng Proxy Server : Khó có thể cung cấp được nhiều dịch vụ cho người sử dụng vì phần mềm Proxy Server và Proxy Client không phải loại dịch vụ nào cũng có sẵn Hoặc khi số dịch vụ cung cấp nhiều thì khả năng đáp ứng của hệ thống có thể giảm xuống vì tất cả các Proxy Server đều đặt trên cùng một máy
Một khuyết điểm cơ bản của hai mô hình trên nữa là: khi mà máy dual –homed host nói chung cũng như các Proxy Server bị đột nhập vào Người tấn công (attacker) đột nhập vào được qua nó thì lưu thông bên trong internal network bị attacker này thấy hết điều này thì hết sức nguy hiểm Trong các hệ thống mạng dùng Ethernet hoặc Token Ring thì dữ liệu lưu thông trong hệ thống có thể bị bất kỳ máy nào nối vào mạng đánh cắp dữ liệu cho nên kiến trúc trên chỉ thích hợp với một số mạng nhỏ
2.2.8.2 Screened Host
Kiến trúc này kết hợp 2 kỹ thuật đó là Packet Filtering và Proxy Services
Trang 16Packet Filtering: Lọc một số loại dịch vụ mà hệ thống muốn cung cấp sử dụng Proxy Server, bắt người sử dụng nếu muốn dùng dịch vụ thì phải kết nối đến Proxy Server mà không được bỏ qua Proxy Server để nối trực tiếp với mạng bên trong/bên ngoài (internal/external network), đồng thời có thể cho phép Bastion Host mở một số kết nối với internal/external host
Proxy Service: Bastion Host sẽ chứa các Proxy Server để phục vụ một số dịch vụ
hệ thống cung cấp cho người sử dụng qua Proxy Server
INTERNET
Internal Network
Firewall
Bastion Host
Screening Router
độ đáp ứng khó có thể cao vì cùng lúc đảm nhận nhiều chức năng
Trang 17 Screened Host: Đã tách chức năng lọc các gói IP và các Proxy Server ở hai máy riêng biệt Packet Filtering chỉ giữ chức năng lọc gói nên có thể kiểm soát, cũng như khó xảy ra lỗi (tuân thủ qui tắc ít chức năng) Proxy Servers được đặt ở máy khác nên khả năng phục vụ (tốc độ đáp ứng) cũng cao
Nhƣợc điểm
Cũng tương tự như kiến trúc Dual–Homed Host khi mà Packet Filtering system cũng như Bastion Host chứa các Proxy Server bị đột nhập vào (người tấn công đột nhập được qua các hàng rào này) thì lưu thông của internal network bị người tấn công thấy
Từ khuyết điểm chính của 2 kiến trúc trên ta có kiến trúc thứ 3 sau đây khắc phục
được phần nào khuyết điểm trên
2.2.8.3 Screened Subnet
INTERNET
Internal Network
Hình 2.7: Sơ đồ kiến trúc Screened Subnet Host
Với kiến trúc này, hệ thống này bao gồm hai Packet–Filtering Router và một Bastion Host (hình 2.7) Kiến trúc này có độ an toàn cao nhất vì nó cung cấp cả mức bảo mật Network và Application trong khi định nghĩa một mạng perimeter network Mạng trung gian (DMZ) đóng vai trò như một mạng nhỏ, cô lập đặt giữa Internet và
Trang 18mạng nội bộ Cơ bản, một DMZ được cấu hình sao cho các hệ thống trên Internet và mạng nội bộ chỉ có thể truy nhập được một số giới hạn các hệ thống trên mạng DMZ,
và sự truyền trực tiếp qua mạng DMZ là không thể được
Với những thông tin đến, Router ngoài (Exterior Router) chống lại những sự tấn công chuẩn (như giả mạo địa chỉ IP), và điều khiển truy nhập tới DMZ Nó chỉ cho phép hệ thống bên ngoài truy nhập Bastion Host Router trong (Interior Router) cung cấp sự bảo vệ thứ hai bằng cách điều khiển DMZ truy nhập mạng nội bộ chỉ với những truyền thông bắt đầu từ Bastion Host
Với những thông tin đi, Router trong điều khiển mạng nội bộ truy nhập tới DMZ Nó chỉ cho phép các hệ thống bên trong truy nhập Bastion Quy luật Filtering trên Router ngoài yêu cầu sử dụng dịch vụ Proxy bằng cách chỉ cho phép thông tin ra bắt nguồn từ Bastion Host
Ƣu điểm
Kẻ tấn công cần phá vỡ ba tầng bảo vệ: Router ngoài, Bastion Host và Router trong
Bởi vì Router ngoài chỉ quảng bá DMZ Network tới Internet, hệ thống mạng nội
bộ là không thể nhìn thấy (invisible) Chỉ có một số hệ thống đã được chọn ra trên DMZ là được biết đến bởi Internet qua routing table và DNS information exchange ( Domain Name Server )
Bởi vì Router trong chỉ quảng cáo DMZ Network tới mạng nội bộ, các hệ thống trong mạng nội bộ không thể truy nhập trực tiếp vào Internet Điều nay đảm bảo rằng những user bên trong bắt buộc phải truy nhập Internet qua dịch vụ Proxy
Đánh giá về kiến trúc Screened Subnet Host:
Đối với những hệ thống yêu cầu cung cấp dịch vụ nhanh, an toàn cho nhiều người sử dụng đồng thời cũng như khả năng theo dõi lưu thông của mỗi người sử dụng trong hệ thống và dữ liệu trao đổi giữ các người dùng trong hệ thống cần được bảo vệ thì kiến trúc cơ bản trên phù hợp
Để tăng độ an toàn trong internal network, kiến trúc screen subnet ở trên sử dụng thêm một mạng DMZ (DMZ hay perimeter network) để che phần nào lưu thông bên trong internal network Tách biệt internal network với Internet
Trang 19Sử dụng 2 Screening Router : Exterior Router và Interior Router
Áp dụng qui tắc dư thừa có thể bổ sung thêm nhiều mạng trung gian (DMZ hay perimeter network) càng tăng khả năng bảo vệ càng cao
Ngoài ra, còn có những kiến trúc biến thể khác như: sử dụng nhiều Bastion Host, ghép chung Router trong và Router ngoài, ghép chung Bastion Host và Router ngoài
Trang 20 Router trong chỉ quảng cáo DMZ network tới mạng nội bộ, các hệ thống trong mạng nội bộ không thể truy nhập trực tiếp vào Internet Điều nay đảm bảo rằng những user bên trong bắt buộc phải truy nhập Internet qua dịch vụ proxy
2.3 Khái niệm về tấn công SQL Injection
SQL Injection là một kỹ thuật cho phép những kẻ tấn công thi hành các câu lệnh truy vấn SQL bất hợp pháp bằng cách lợi dụng lỗ hổng trong việc kiểm tra dữ liệu từ các ứng dụng Web[1] Hậu quả của việc tấn công này rất tai hại vì nó cho phép kẻ tấn công có toàn quyền trên cơ sở dữ liệu của ứng dụng, lỗi này thường xảy ra trên các ứng dụng Web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL server, Oracle, DB2, Sysbase…
Các lổ hổng cho phép tấn công sử dụng SQL Injection khá đa dạng, bao gồm:
Chèn câu SQL vào dữ liệu nhập: đây là mục tiêu tấn công thường xuyên nhất
Chèn vào cookie: chỉnh sửa các trường dữ liệu trên cookie để chúng mang các chuỗi dữ liệu tấn công
Thay đổi các biến Header (chứa luồng trao đổi thông tin giữa client và server) để tấn công
Tấn công hai tầng: chèn vào một đoạn mã giống như Trojan
Hình 2.9 Mô hình tấn công SQL Injection
Trang 212.4 Các phương thức tấn công bằng SQL Injection [1]
Nhìn chung có bốn kiểu tấn công phổ biến sau:
Vượt qua kiểm tra lúc đăng nhập (authorization by pass)
Sử dụng câu lệnh SELECT
Sử dụng câu lệnh INSERT
Sử dụng các stored-procedures
2.4.1 Dạng tấn công vượt qua kiểm tra đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web Xét một ví dụ điển hình, thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp
Trong trường hợp này, người ta có thể dùng hai trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía người dùng Ví dụ:
Trang HTML
Trang Asp
Trang 22Thoạt nhìn, đoạn mã trong trang execlogin.asp dường như không chứa bất cứ một lỗ hổng về an toàn nào Người dùng không thể đăng nhập mà không có tên đăng nhập và mật khẩu hợp lệ Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho một lỗi SQL injection Đặc biệt, chỗ sơ hở nằm ở chỗ dữ liệu nhập vào từ người dùng được dùng để xây dựng trực tiếp câu lệnh SQL Chính điều này cho phép những kẻ tấn công
có thể điều khiển câu truy vấn sẽ được thực hiện
Ví dụ, nếu người dùng nhập chuỗi sau vào trong cả 2 ô nhập liệu username/password của trang login.htm là: ' OR ' ' = ' ' Lúc này, câu truy vấn sẽ được gọi thực hiện là
SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''=''
Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và đoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là người dùng đăng nhập hợp lệ
2.4.2 Dạng tấn công sử dụng câu lệnh SELECT
Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống
để dò tìm các điểm yếu khởi đầu cho việc tấn công Xét một ví dụ rất thường gặp trong
Trang 23các website về tin tức Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi sau đó truy vấn nội dung của tin có ID này
Ví dụ: http://www.myhost.com/shownews.asp?ID=123 Mã nguồn cho chức năng này thường được viết khá đơn giản theo dạng
Trong các tình huống thông thường, đoạn mã này hiển thị nội dung của tin có ID trùng với ID đã chỉ định và hầu như không thấy có lỗi Tuy nhiên, giống như ví dụ đăng nhập
ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injection khác Kẻ tấn công có thể thay thế một ID hợp lệ bằng cách gán ID cho một giá trị khác, và từ đó, khởi đầu cho
một cuộc tấn công bất hợp pháp, ví dụ như: 0 OR 1=1 (nghĩa là,
http://www.myhost.com/shownews.asp?ID=0 or 1=1)
Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ thực hiện câu lệnh:
SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1
2.4.3 Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để tham gia Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem
và hiệu chỉnh thông tin của mình SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào
Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng: INSERT INTO TableName VALUES ('Value One', 'Value Two', 'Value Three') Nếu đoạn mã xây dựng câu lệnh SQL có dạng:
Trang 24Thì chắc chắn sẽ bị lỗi SQL injection, bởi vì nếu ta nhập vào trường thứ nhất ví dụ
như: ' + (SELECT TOP 1 FieldName FROM TableName) + ' Lúc này câu truy vấn
sẽ là: INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ', 'abc', 'def') Khi đó, lúc thực hiện lệnh xem thông tin, xem như bạn đã yêu cầu thực hiện thêm một lệnh nữa đó là: SELECT TOP 1 FieldName FROM TableName
2.4.4 Dạng tấn công sử dụng stored-procedures
Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa' Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ;EXEC xp_cmdshell „cmd.exe dir C: ' Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên
ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe
2.5 Các phương thức ngăn chặn tấn công SQL Injection
Kiểm soát chặt chẽ dữ liệu nhập vào:
Để phòng tránh các nguy cơ có thể xảy ra, hãy bảo vệ các câu lệnh SQL là bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request,
Request.QueryString,Request.Form,Request.Cookies,Request.ServerVariables) Ví dụ,
có thể giới hạn chiều dài của chuỗi nhập liệu, hoặc xây dựng hàm EscapeQuotes để thay thế các dấu nháy đơn bằng hai dấu nháy đơn như:
Trang 25Trong trường hợp dữ liệu nhập vào là số, lỗi xuất phát từ việc thay thế một giá trị được tiên đoán là dữ liệu số bằng chuỗi chứa câu lệnh SQL bất hợp pháp Để tránh điều này, đơn giản hãy kiểm tra dữ liệu có đúng kiểu hay không bằng hàm IsNumeric() Ngoài ra
có thể xây dựng hàm loại bỏ một số kí tự và từ khóa nguy hiểm như: ;, , select, insert, xp_, … ra khỏi chuỗi dữ liệu nhập từ phía người dùng để hạn chế các tấn công
dạng này:
Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu: Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng Các ứng dụng thông thường nên tránh dùng đến các quyền như dbo
Trang 26hay sa Quyền càng bị hạn chế, thiệt hại càng ít Ngoài ra để tránh các nguy cơ từ SQL Injection attack, nên chú ý loại bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi Các thông báo lỗi thông thường tiết
lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống
2.6 Tấn công từ chối dịch vụ DOS (Denial of Service)[2]
2.6.1 Khái niệm
- Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống
- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ người dùng bình thường đó là tấn công Denial of Service (DoS).Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp Như định nghĩa trên DoS khi tấn công vào một hệ thống sẽ khai thác những cái yếu nhất của hệ thống để tấn công, những mục đích của tấn công DoS
Lịch sử các cuộc tấn công và phát triển của DoS
- Các tấn công DoS bắt đầu vào khoảng đầu những năm 90 Đầu tiên, chúng hoàn toàn “nguyên thủy”, bao gồm chỉ một kẻ tấn công khai thác băng thông tối đa từ nạn nhân, ngăn những người khác được phục vụ Điều này được thực hiện chủ yếu bằng cách dùng các phương pháp đơn giản như ping floods, SYN floods và UDP floods Sau
đó, các cuộc tấn công trở nên phức tạp hơn, bằng cách giả làm nạn nhân, gửi vài thông điệp và để các máy khác làm ngập máy nạn nhân với các thông điệp trả lời (Smurf attack, IP spoofing…)
- Các tấn công này phải được đồng bộ hoá một cách thủ công bởi nhiều kẻ tấn công
để tạo ra một sự phá huỷ có hiệu quả Sự dịch chuyển đến việc tự động hoá sự đồng bộ, kết hợp này và tạo ra một tấn công song song lớn trở nên phổ biến từ 1997, với sự ra đời của công cụ tấn công Dos đầu tiên được công bố rộng rãi, Trinoo Nó dựa trên tấn công UDP flood và các giao tiếp master-slave (khiến các máy trung gian tham gia vào
Trang 27trong cuộc tấn công bằng cách đặt lên chúng các chương trình được điều khiển từ xa) Trong những năm tiếp theo, vài công cụ nữa được phổ biến – TFN (tribe flood network), TFN2K, vaf Stacheldraht
- Tuy nhiên, chỉ từ cuối năm 1999 mới có những báo cáo về những tấn công như vậy, và đề tài này được công chúng biết đến chỉ sau khi một cuộc tấn công lớn vào các site công cộng tháng 2/2000 Trong thời gian 3 ngày, các site Yahoo.com, amazon.com, buy.com, cnn.com và eBay.com đã đặt dưới sự tấn công (ví dụ như Yahoo bị ping với tốc độ 1 GB/s) Từ đó các cuộc tấn công Dos thường xuyên xảy ra ví
dụ : Vào ngày 15 tháng 8 năm 2003, Microsoft đã chịu đợt tấn công DoS cực mạnh và làm gián đoạn websites trong vòng 2 giờ; Vào lúc 15:09 giờ GMT ngày 27 tháng 3 năm 2003: toàn bộ phiên bản tiếng anh của website Al-Jazeera bị tấn công làm gián đoạn trong nhiều giờ
2.6.2 Mục đích của tấn công DoS và hiểm họa[2]
Mục đích của tấn công DoS:
- Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood), khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho người dùng bình thường
- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập vào dịch
vụ
- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó
- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy cập vào Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch vụ đó như bị: + Disable Network - Tắt mạng
+ Disable Organization - Tổ chức không hoạt động
+ Financial Loss – Tài chính bị mất
Như chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết tài nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình thường được vậy các tài nguyên chúng thường sử dụng để tấn công là gì:
- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên
Trang 28- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và CPU Time hay cấu trúc dữ liệu đều là mục tiêu của tấn công DoS
- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ thống điều hoà,
hệ thống điện, hệt thống làm mát và nhiều tài nguyên khác của doanh nghiệp Bạn thử tưởng tượng khi nguồn điện vào máy chủ web bị ngắt thì người dùng có thể truy cập vào máy chủ đó không
- Phá hoại hoặc thay đổi các thông tin cấu hình
- Phá hoại tầng vật lý hoặc các thiết bị mạng như nguồn điện, điều hoà…
2.6.3 Phân loại:
Trường hợp đơn giản 1-1 (DoS: tấn công từ chối dịch vụ):
DoS (Denial of Service) là hình thức tấn công từ chối dịch vụ, có nhiều cách để thực hiện tấn công kiểu này (VD : SYN Flooding, ), thực chất là Hacker tận dụng lỗ hổng bảo mật nào đó để yêu cầu Server làm việc "trời ơi" nào đó, mục đính là không
để Server có khả năng đáp ứng yêu cầu dịch vụ của các Client khác, như vậy gọi là "từ chối dịch vụ" của các Client khác Thường thì kẻ tấn công là từ một máy
Hình 2.10: Một mô hình Dos
- Qua các máy trung gian (DOS: tấn công từ chối dịch vụ phân tán):
Trang 29- DDos (Distributed Denial of Service) là một dạng DoS nhưng kẻ tấn công sử dụng
nhiều máy để thực hiện
2.6.4 Các cơ chế tấn công từ chối dịch vụ:
2.6.4.1 Tấn công từ chối dịch vụ (DoS):
Là phương thức xuất hiện đầu tiên, giản đơn nhất trong kiểu tấn công từ chối dịch vụ.Các kiểu tấn công thuộc phương thức này rất đa dạng:
2.6.4.2 Tấn công chiếm dụng tài nguyên (Resource Depletion):
Bằng cách lạm dụng quá trình giao tiếp của giao thức mạng hoặc những gói tin dị thường, attacker sẽ chiếm dụng nguồn tài nguyên hệ thống như CPU, RAM,… khiến cho người dùng chia sẽ không truy xuất được hệ thống do hệ thống không đủ khả năng xử lý
2.6.4.3 SYN Attack
Trang 30Được xem là một trong những kiểu tấn công DoS kinh điển nhất Lợi dụng sơ
hở của thủ tục TCP khi “bắt tay ba chiều”, mỗi khi client (máy khách) muốn thực hiện kết nối (connection) với server (máy chủ) thì nó thực hiện việc bắt tay ba lần (three – wayshandshake) thông qua các gói tin (packet)
- Bước 1: Client (máy khách) sẽ gửi các gói tin (packet chứa SYN=1) đến máy chủ để yêu cầu kết nối
- Bước 2: Khi nhận được gói tin này, server sẽ gửi lại gói tin SYN/ACK để thông báo cho client biết là nó đã nhận được yêu cầu kết nối và chuẩn bị tài nguyên cho việc yêu cầu này Server sẽ giành một phần tài nguyên hệ thống như bộ nhớ đệm (cache) để nhận và truyền dữ liệu Ngoài ra, các thông tin khác của client như địa chỉ IP và cổng (port) cũng được ghi nhận
- Bước 3: Cuối cùng, client hoàn tất việc bắt tay ba lần bằng cách hồi âm lại gói tin chứa ACK cho server và tiến hành kết nối
Do TCP là thủ tục tin cậy trong việc giao nhận (end-to-end) nên trong lần bắt tay thứ hai, server gửi các gói tin SYN/ACK trả lời lại client mà không nhận lại được hồi âm của client để thực hiện kết nối thì nó vẫn bảo lưu nguồn tài nguyên chuẩn bị kết nối đó
và lập lại việc gửi gói tin SYN/ACK cho client đến khi nào nhận được hồi đáp của máy client
Điểm mấu chốt là ở đây là làm cho client không hồi đáp cho Server Và có hàng nhiều, nhiều client như thế trong khi server vẫn “ngây thơ” lặp lại việc gửi packet đó và giành tài nguyên để chờ “người về” trong lúc tài nguyên của hệ thống là có giới hạn! Các hacker tấn công sẽ tìm cách để đạt đến giới hạn đó
Nếu quá trình đó kéo dài, server sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng crash (treo) nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được
Trang 31Hình 2.12 Mô hình tấn công SYN
2.6.4.4 Flood Attack
Một kiểu tấn công DoS nữa cũng rất hay được dùng vì tính đơn giản của nó và
vì có rất nhiều công cụ sẵn có hỗ trợ đắc lực cho kẻ tấn công là Flood Attack, chủ yếu thông qua các website
Về nguyên tắc, các website đặt trên máy chủ khi chạy sẽ tiêu lượng tài nguyên máy chủ nhất định, nhất là lượng bộ nhớ (RAM) và bộ vi xử lý (CPU) Dựa vào việc tiêu hao
đó, những kẻ tấn công đơn giản là dùng các phần mềm như smurf chẳng hạn để liên tục yêu cầu máy chủ phục vụ trang web đó để chiếm dụng tài nguyên Cách tấn công này tuy không làm máy chủ ngừng cung cấp dịch vụ hoàn toàn nhưng sẽ làm cho tốc độ phục vụ của toàn bộ hệ thống giảm mạnh, người dùng sẽ cảm nhận rõ ràng việc phải chờ lâu hơn để trang web hiện ra trên màn hình Nếu thực hiện tấn công ồ ạt và có sự phối hợp nhịp nhàng, phương thức tấn công này hoàn toàn có thể làm tê liệt máy chủ trong một thời gian dài
2.6.4.5 Tấn công bằng gói dị hình:
Tấn công dạng này attacker sẽ yêu cầu zombie gửi những gói IP có hình thức không đúng đến máy victim Có 2 loại tấn công theo phương pháp này Thứ nhất, những gói này có địa chỉ nguồn và địa chỉ đích giống nhau Nó làm cho hệ điều hành bị
đảo lộn và sụp đổ (Land Attack) Thứ 2 là thiết lập tất cả các trường chất lượng dịch
vụ trong gói IP bằng 1 để hệ thống nạn nhân phải tốn nhiều thời gian để phân tích
gói (Teardrop Attack) Nếu như agent gửi nhiều gói IP theo phương pháp tấn công
này, hệ thống victim phải xử lý nhiều, kết quả là nó shut down
2.6.4.6 Tấn công chiếm dụng băng thông (Bandwidth Depletion):
Có 2 loại tấn công chính:
Trang 32- Thứ nhất là làm ngập bằng cách gửi liên tục các gói tin có kích thước lớn đến hệ thống nạn nhân, làm nghẽn băng thông nạn nhân
- Thứ hai là sử dụng mạng khuếch đại, attacker hay zombie gửi thông tin đến một địa chỉ broadcast (phát quảng bá), tất cả hệ thống trong mạng con victim trong phạm vi bởi địa chỉ broadcast sẽ gửi lại hệ thống nạn nhân một thông điệp phản hồi cho máy victim chấp nhận trao đổi dữ liệu Phương pháp này khuếch đại dòng lưu lượng làm cho hệ thống nạn nhân giảm băng thông đáng kể
2.6.4.7 Tấn công ngập lụt (Flood attack):
Trong một cuộc tấn công làm lụt Dos, các zombie sẽ gửi một số lượng lớn các gói tin đến máy victim làm khả năng thực thi, chậm máy hay tràn ngập băng thông mạng Điều này khiến cho người dùng hệ thống hợp pháp bị cản trở truy cập vào hệ thống victim
Tấn công ngập lụt bằng UDP:
- UDP (User Datagram Protocol – giao thức dữ liệu người dùng) là một giao thức hướng không kết nối Có nghĩa là khi những gói tin truyền bằng giao thức này, không có một cơ chế bắt tay nào giữa bên gửi và bên nhận, và hệ thống bên nhận khi nhận được gói tin sẽ phải xử lý nó Khi gửi một số lượng lớn các gói tin UDP đến hệ thống nạn nhân có thể gây ra tràn ngập mạng, làm suy yếu mạng
- Khi tấn công Dos dạng UDP, những gói tin UDP được gửi qua những port ngẫu nhiên hoặc được chỉ định một port nào đó Thường thì công việc thực hiện là những port ngẫu nhiên để nó bao quát toàn diện hơn Kết quả là victim sẽ phải xử lý những gói đi vào nó để cố gắng xác định xem có ứng dụng nào yêu cầu không Nếu hệ thống victim không có ứng dụng nào nằm trên port đích, hệ thống victim sẽ gửi gửi một gói ICMP đến nơi gửi với thông điệp là “destination port unreachable”
- Thông thường, công cụ tấn công Dos sẽ giả địa chỉ IP nguồn của gói dữ liệu Vì thế nó làm ẩn danh hệ thống máy nạn nhân phụ, do đó các gói trả về từ máy victim
sẽ không đến được zombie, mà nó đến một máy tính khác nào đó
Trang 33Đôi khi tấn công ngập lụt UDP cũng có thể làm đầy băng thông của những kết nối xung quanh hệ thống victim (phụ thuộc vào kiến trúc mạng và tốc độ đường truyền) Vì thế có thể những hệ thống kết nối gần hệ thống victim gặp vấn đề trong kết nối của họ Tấn công ngập lụt bằng ICMP:
- Những gói tin ICMP (Internet Control Message Protocol – giao thức thông điệp vận chuyển Internet) được thiết kế cho tính năng quản lý chẳng hạn như xác định thiết
bị mạng và xác định số hop (hop là thuật ngữ nói lên gói tin sẽ đi qua một thiết bị định tuyến chẳng hạn như qua một router thì router gọi là hop) hay thời gian di chuyển từ nguồn đến đích Ví dụ, gói tin ICMP_ECHO_REPLY (ping) cho phép người dùng gởi yêu cầu đến hệ thống đích và nhận đáp ứng với thời gian đã đi đến đích
- Tấn công Dos làm ngập ICMP xuất hiện khi zombie gởi số lượng lớn các gói tin ICMP_ECHO_REPLY đến hệ thống nạn nhân Dấu hiệu của những gói tin này là phản hồi (reply) Cũng giống như tấn công làm ngập UDP, địa chỉ IP nguồn bị giả mạo
2.6.4.8 Tấn công khuếch đại (Amplifier attack):
- Một cuộc tấn công khuếch đại Dos nhắm vào việc sử dụng tính chất của địa chỉ
IP broadcast được tìm thấy trong hầu hết các router để khuếch đại và phản xạ sự tấn công (xem hình 2.13) Tính năng này cho phép một hệ thống bên gửi phát một địa chỉ IP broadcast đến nơi nhận Bộ định tuyến nơi nhận sẽ chuyển các gói tin đến tất cả địa chỉ IP nằm trong dãy địa chỉ broadcast
- Đối với loại tấn công Dos này, attacker có thể gởi trực tiếp thông điệp broadcast, hoặc attacker sử dụng những agent để gởi thông điệp broadcast nhằm tăng thêm dòng lưu lượng Nếu attacker gửi một cách trực tiếp, loại tấn công này sẽ dùng những hệ thống nằm trong dãy địa chỉ broadcast làm zombie mà không cần phải thâm nhập chúng hay cài đặt phần mềm zombie Có 2 loại tấn công được biết đến đó
là : Smurf và Fraggle
Trang 34Hình 2.13: Mô hình tấn công khuếch đại
2.6.4.10 Tấn công Fraggle
Fraggle tấn công tương tự như Smurf , nó cũng gửi các gói tin đến mạng khuếch đại Nhưng khác nhau ở chỗ, Fraggle sử dụng gói UDP ECHO thay vì ICMP ECHO như Smurf Có một sự biến đổi trong tấn công Fraggle đó là những gói UDP ECHO được gửi đến cổng có hỗ trợ dạng “tự động sinh ra ký tự” (character generator) tại những máy nằm trong dãy địa chỉ broadcast (thường là cổng 19
Trang 35trong những hệ thống Unix), cùng lúc đó địa chỉ đã bị giả mạo là dịch vụ hồi đáp (echo service, port 7 trên Unix) của máy victim để nó tạo ra một vòng lặp vô hạn Mỗi một hệ thống trên sẽ sinh ra một ký tự gửi đến dịch vụ hồi đáp trong máy victim, victim sẽ trả về một gói hồi đáp đến character generator, và cứ tiếp tục lặp lại như vậy Loại tấn công này thậm chí cón nguy hiểm hơn Smurf
2.7 Tấn công từ chối dịch vụ kiểu phân tán-DDos
Xuất hiện vào năm 1999, so với tấn công DoS cổ điển, sức mạnh của DDos cao hơn gấp nhiều lần Hầu hết các cuộc tấn công DDos nhằm vào việc chiếm dụng băng thông (bandwidth) gây nghẽn mạch hệ thống dẫn đến hệ thống ngưng hoạt động
Để thực hiện thì kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính mạng máy tính trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào ạt các gói tin (packet) với số lượng rất lớn nhằm chiếm dụng tài nguyên và làm tràn ngập đường truyền của một mục tiêu xác định nào đó
Hình 2.14: Mô hình kiểu tấn công phân tán DDOS Theo cách này thì dù băng thông có bao nhiêu đi chăng nữa thì cũng không thể chịu đựng được số lượng hàng triệu các gói tin đó nên hệ thống không thể hoạt động được nữa và như thế dẫn đến việc các yêu cầu hợp lệ khác không thể nào được đáp ứng, server sẽ bị “đá văng” khỏi internet
Trang 36Hình 2.15: Cách mà hacker thực hiện tấn công DDos
Có thể nói nó giống như tình trạng kẹt xe vào giờ cao điểm vậy Ví dụ rõ nhất là
sự “cộng hưởng” trong lần truy cập điểm thi đại học vừa qua khi có quá nhiều máy tính yêu cầu truy cập cùng lúc làm dung lượng đường truyền hiện tại của máy chủ không tài nào đáp ứng nổi Hiện nay, đã xuất hiện dạng virus worm có khả năng thực hiện các cuộc tấn công Dos Khi bị lây nhiễm vào các máy khác, chúng sẽ tự động gửi các yêu cầu phục vụ đến một mục tiêu xác định nào đó vào thời điểm xác định để chiếm dụng băng thông hoặc tài nguyên hệ thống máy chủ
2.8 Tấn công từ chối dịch vụ phản xạ nhiều vùng DRDOS
Xuất hiện vào đầu năm 2002, là kiểu tấn công mới nhất, mạnh nhất trong họ DoS Nếu được thực hiện bởi kẻ tấn công có tay nghề thì nó có thể hạ gục bất cứ hệ thống nào trên thế giới trong phút chốc Mục tiêu chính của DRDoS là chiếm đoạt toàn bộ băng thông của máy chủ, tức là làm tắc nghẽn hoàn toàn đường kết nối từ máy chủ vào xương sống của Internet và tiêu hao tài nguyên máy chủ Trong suốt quá trình máy chủ
bị tấn công bằng DRDoS, không một máy khách nào có thể kết nối được vào máy chủ
đó Tất cả các dịch vụ chạy trên nền TCP/IP như DNS, HTTP, FTP, POP3, đều bị vô hiệu hóa.Về cơ bản, DRDoS là sự phối hợp giữa hai kiểu DoS và DDos Nó có kiểu tấn công SYN với một máy tính đơn, vừa có sự kết hợp giữa nhiều máy tính để chiếm
Trang 37dụng băng thông như kiểu Dos Kẻ tấn công thực hiện bằng cách giả mạo địa chỉ của server mục tiêu rồi gửi yêu cầu SYN đến các server lớn như Yahoo, Micorosoft,chẳng hạn để các server này gửi các gói tin SYN/ACK đến server mục tiêu Các server lớn, đường truyền mạnh đó đã vô tình đóng vai trò zoombies cho kẻ tấn công như trong Dos
Hình 2.16: Tấn công phản xạ DRDOS
Quá trình gửi cứ lặp lại liên tục với nhiều địa chỉ IP giả từ kẻ tấn công, với nhiều server lớn tham gia nên server mục tiêu nhanh chóng bị quá tải, bandwidth bị chiếm dụng bởi server lớn Tính “nghệ thuật” là ở chỗ chỉ cần với một máy tính với modem 56kbps, một hacker lành nghề có thể đánh bại bất cứ máy chủ nào trong giây lát mà không cần chiếm đoạt bất cứ máy nào để làm phương tiện thực hiện tấn công
2.9 Các cơ chế phát hiện và phòng tránh tấn công DOS/Ddos [6]
Có ba giai đoạn chính trong quá trình Anti-DoS/DDos:
- Giai đoạn ngăn ngừa: tối thiểu hóa lượng Agent, tìm và vô hiệu hóa các Handler
- Giai đoạn đối đầu với cuộc tấn công: Phát hiện và ngăn chặn cuộc tấn công, làm suy giảm và dừng cuộc tấn công, chuyển hướng cuộc tấn công
- Giai đoạn sau khi cuộc tấn công xảy ra: thu thập chứng cứ và rút kinh nghiệm
Trang 38Các giai đoạn chi tiết trong phòng chống Dos:
Hình 2.17 Các giai đoạn trong phòng chống Dos/DDos
2.9.1 Tối thiểu hóa số lƣợng Agent:
- Từ phía User: một phương pháp rất tốt để năng ngừa tấn công Dos là từng internet user sẽ tự đề phòng không để bị lợi dụng tấn công hệ thống khác Muốn đạt được điều này thì ý thức và kỹ thuật phòng chống phải được phổ biến rộng rãi cho các internet user Attack-Network sẽ không bao giờ hình thành nếu không có user nào
bị lợi dụng trở thành Agent Các user phải liên tục thực hiện các quá trình bảo mật trên máy vi tính của mình Họ phải tự kiểm tra sự hiện diện của Agent trên máy của mình, điều này là rất khó khăn đối với user thông thường
Một số giải pháp tích hợp sẵn khả năng ngăn ngừa việc cài đặt code nguy hiểm thông ào hardware và software của từng hệ thống Về phía user họ nên cài đặt và updat liên tục các software như antivirus, anti_trojan và server patch của hệ điều hành
- Từ phía Network Service Provider: Thay đổi cách tính tiền dịch vụ truy cập
DDoS Countermeasures
Detect and
Neutralize
handler
Detect and Prevent Agent
Detect/Prevent Potential Attack
Mitigate/Stop Attack
Deflect Attack Post attack
Forensic
Egress Filtering
MIB Statistic
Invidual
user
Network Service Provider
Install
Software
Patch
Build in defense
Cost
Traffic Pattern Analysis
Packet Traceback
Event Log Honeyspots
Shadow Real Network
Study Attack
Load Balancing Throttling Drop Request