Các mối đe dọa vào an ninh hệ thống:

Một phần của tài liệu 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 (Trang 29 - 32)

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 qua cá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ần hoặ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ấn cô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ỏi mộ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 tin như tên người dùng, ngày sinh, địa chỉ, số nhà… để đoán mật khẩu. Trong trường hợ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ương trì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 theo những nguyên tắc do người dùng tự định nghĩa. Trong một số trường hợp, khả năng củ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ản thân hệ điều hành. Đây là phương pháp đã được sử dụng từ những vụ tấn công đầu tiên và vẫn tiếp tục được sử dụng để chiếm quyền truy nhập. Trong một số trường hợ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àn dò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ản trị 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.

Rlogin cho phép người dùng sử dụng từ một máy trên mạng truy nhập từ xa và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ấn công có thể đưa vào một xâu đã được tính toán trước để ghi đè lên mã chương trình củ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ép và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ằng hì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ục củ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ác kiể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ài khoả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ương trì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ác dị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 FTP lạ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ệc quan 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.

2.5. Lỗi hệ thống và các chương trình ẩn:

Từ khi xuất hiện các công nghệ tính toán, máy tính, phần cứng, phần mềm, kết nối mạng máy tính, .v.v., luôn xuất hiện các lỗi kỹ thuật trong hệ thống, ở phần cứng và nhiều hơn cả là phần mềm. Các lỗi như vậy gọi là “bugs”. Một “bug” là mộ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 động củ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ểm tra đị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êu cầu. Trong trường hợp đó, dịch vụ nền phía dưới đã bị đánh lừa, thông điệp được gử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ầu xá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ông mang 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ện giao 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ông việ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ối TCP 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ảo mật Paul Watson đã chỉ ra rằng, đoán được số tuần tự trong các gói tin TCP không cầ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ể ảnh hưởng rất lớn đến hoạt động của thiết bị dẫn đường (router).Từ đó sẽ ảnh hưởng rất lớ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ùng phươ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 đó 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ến trì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úc nà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ăng quả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ột loạ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 ứng cá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ông dụ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ướng lạ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ại các cuộc tấn công trên là đảm bảo đầy đủ tài nguyên cho hệ thống như RAM, đĩa cứ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 đối vớ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àn toà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ương pháp tấn công này, xin mời xem thêm phần sau.

Một phần của tài liệu 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 (Trang 29 - 32)

Tải bản đầy đủ (DOC)

(77 trang)
w