Giáo trình Bảo mật mạng - Chương 1: Tổng quan vể bảo mật mạng - Nguyễn Tấn Thành
Bạn đang xem tài liệu "Giáo trình Bảo mật mạng - Chương 1: Tổng quan vể bảo mật mạng - Nguyễn Tấn Thành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_bao_mat_mang_chuong_1_tong_quan_ve_bao_mat_mang_n.pdf
Nội dung text: Giáo trình Bảo mật mạng - Chương 1: Tổng quan vể bảo mật mạng - Nguyễn Tấn Thành
- CHƯƠNG 1: TỔNG QUAN VỂ BẢO MẬT MẠNG Nguyễn Tấn Thành 1. GIỚI THIỆU VỀ BẢO MẬT 1.1. Bảo mật – một xu hướng tất yếu Bảo mật là một trong những lĩnh vực mà hiện nay giới công nghệ thông tin khá quan tâm. Một khi internet ra đời và phát triển, nhu cầu trao đổi thông tin trở nên cần thiết. Mục tiêu của việc nối mạng là làm cho mọi người có thể sử dụng chung tài nguyên từ những vị trí địa lý khác nhau. Cũng chính vì vậy mà các tài nguyên cũng rất dễ dàng bị phân tán, dẫn một điều hiển nhiên là chúng sẽ bị xâm phạm, gây mất mát dữ liệu cũng như các thông tin có giá trị. Càng giao thiệp rộng thì càng dễ bị tấn công, đó là một quy luật. Từ đó, vấn đề bảo vệ thông tin cũng đồng thời xuất hiện. Bảo mật ra đời. Tất nhiên, mục tiêu của bảo mật không chỉ nằm gói gọn trong lĩnh vực bảo vệ thông tin mà còn nhiều phạm trù khác như kiểm duyệt web, bảo mật internet, bảo mật http, bảo mật trên các hệ thống thanh toán điện tử và giao dịch trực tuyến . Mọi nguy cơ trên mạng đều là mối nguy hiểm tiểm tàng. Từ một lổ hổng bảo mật nhỏ của hệ thống, nhưng nếu biết khai thác và lợi dụng với tầng suất cao và kỹ thuật hack điêu luyện thì cũng có thể trở thành tai họa. Theo thống kê của tổ chức bảo mật nổi tiếng CERT (Computer Emegancy Response Team) thì số vụ tấn công ngày càng tăng. Cụ thể năm 1989 có khoản 200 vụ, đến năm 1991 có 400 vụ, đến năm 1994 thì con số này tăng lên đến mức 1330 vụ, và sẽ còn tăng mạnh trong thời gian tới. Như vậy, số vụ tấn công ngày càng tăng lên với múc độ chóng mặt. Điều này cũng dễ hiểu, vì một thực thể luôn tồn tại hai mặt đối lập nhau. Sự phát triển mạnh mẽ của công nghệ thông tin và kỹ thuật sẽ làm cho nạn tấn công, ăn cắp, phá hoại trên internet bùng phát mạnh mẽ. Internet là một nơi cực kỳ hỗn loạn. Mội thông tin mà bạn thực hiện truyền dẫn đều có thể bị xâm phạm. Thậm chí là công khai. Bạn có thể hình dung internet là một phòng họp, những gì được trao đổi trong phòng họp đều được người khác nghe thấy. Với internet thì những người này không thấy mặt nhau, và việc nghe thấy thông tin này có thể hợp pháp hoặc là không hợp pháp. Tóm lại, internet là một nơi mất an toàn. Mà không chỉ là internet các loại mạng khác, như mạng LAN, đến một hệ thống máy tính cũng có thể bị xâm phạm. Thậm chí, mạng điện thoại, mạng di động cũng
- không nằm ngoài cuộc. Vì thế chúng ta nói rằng, phạm vi của bảo mật rất lớn, nói không còn gói gọn trong một máy tính một cơ quan mà là toàn cầu. 1.2. Chúng ta cần bảo vệ những tài nguyên nào ? Tài nguyên đầu tiên mà chúng ta nói đến chính là dữ liệu. Đối với dữ liệu, chúng ta cần quan tâm những yếu tố sau: Tính bảo mật: Tính bảo mật chỉ cho phép nguời có quyền hạn truy cập đến nó. Tính toàn vẹn dữ liệu: Dữ liệu không được sửa đổi, bị xóa một cách bất hợp pháp. Tính sẵn sàng: Bất cứ lúc nào chúng ta cần thì dữ liệu luôn sẵn sàng. Tài nguyên thứ hai là những tài nguyên còn lại. Đó là hệ thống máy tính, bộ nhớ, hệ thống ổ đĩa, máy in và nhiều tài nguyên trên hệ thống máy tính. Bạn nên nhớ rằng, tài nguyên máy tính cũng có thể bị lợi dụng. Đừng nghĩ rằng nếu máy tính của bạn không có dữ liệu quan trọng thì không cần bảo vệ. Những hacker có thể sử dụng tài nguyên trên máy tính của bạn để thức hiện những cuộc tấn công nguy hiểm khác. Uy tín cá nhân và những thông tin cá nhân của bạn cũng là một điều cần thiết bảo vệ. Bạn cũng có thể bị đưa vào tình huống trớ trêu là trở thành tội phạm bất đắc dĩ nếu như một hacker nào đó sử dụng máy tính của bạn để tấn công mục tiêu khác. 1.3. Kẻ tấn công là ai ? Kẻ tấn công người ta thường gọi bằng một cái tên nôm na là hacker. Ngay bản thân kẻ tấn công cũng tự gọi mình như thế. Ngoài ra người ta còn gọi chúng là kẻ tấn công (attracker) hay những kẻ xâm nhập (intruder). Trước đây người ta chia hacker ra làm hai loại, nhưng ngày nay có thể chia thành ba loại: Hacker mũ đen Đây là tên trộm chính hiệu. Mục tiêu của chúng là đột nhập vào máy hệ thống máy tính của đối tượng để lấy cấp thông tin, nhằm mục đích bất chính. Hacker mũ đen là những tội phạm thật sự cần sự trừng trị của pháp luật. Hacker mũ trắng Họ là những nhà bảo mật và bảo vệ hệ thống. Họ cũng xâm nhập vào hệ thống, tìm ra những kẽ hở, những lổ hổng chết người, và sau đó tìm cách vá lại chúng. Tất nhiên, hacker mũ trắng cũng có khả năng xâm nhập, và cũng có thể trở thành hacker mũ đen. Hacker mũ xám Lọai này được sự kết hợp giữa hai loại trên. Thông thường họ là những người còn trẻ, muốn thể hiện mình. Trong một thời điểm, họ đột nhập vào hệ thống để phá phách. Nhưng trong thời điểm khác họ có thể gửi đến nhà quản trị những thông tin về lổ hổng bảo mật và đề xuất cách vá lỗi.
- Ranh giới phân biệt các hacker rất mong manh. Một kẻ tấn công là hacker mũ trắng trong thời điểm này, nhưng ở thời điểm khác họ lại là một tên trộm chuyên nghiệp. Xét trên một phương diện khác, người ta phân loại hacker ra thành các loại như sau: Hacker là lập trình viên giỏi Trên phương diện tích cực, người hacker lập trình giỏi là người hiểu biết rất sâu về các ngôn ngữ lập trình và có khả năng lập trình rất nhanh và hiệu quả. Những người hacker thuộc phân loại này là những chuyên gia được đánh giá cao và có khả năng phát triển chương trình mà không cần đến các quy trình truyền thống hoặc trong các tình huống mà việc sử dụng các quy trình này không cho phép. Thực tế là có những dự án phát triển phần mềm đặc thù rất cần đến sự tự do sáng tạo của hacker, đi ngược những quy trình thông thường. Tuy vậy, mặt trái của sự tự do sáng tạo này là yếu tố khả năng bảo trì lâu dài, văn bản lập trình và sự hoàn tất. Với tính cách luôn ưa thích "thách thức và thử thách", người hacker tài năng thường cảm thấy buồn chán khi họ đã giải quyết được tất cả những vấn đề khó khăn nhất của dự án, và không còn hứng thú hoàn tất những phần chi tiết. Thái độ này sẽ là rào cản trong môi trường cộng tác, gây khó khăn cho những lập trình viên khác trong vấn đề hoàn tất dự án. Trong một số trường hợp, nếu người hacker không mô tả bằng văn bản kỹ lưỡng các đoạn mã lập trình, sẽ gây khó khăn cho công ty tìm người thay thế nếu người này rời vị trí. Hacker là chuyên gia mạng và hệ thống Về lĩnh vực mạng và hệ thống, hacker là người có kiến thức chuyên sâu về các giao thức và hệ thống mạng. Có khả năng hoàn thiện và tối ưu hóa hệ thống mạng. Mặt tối của những hacker này là khả năng tìm ra điểm yếu mạng và lợi dụng những điểm yếu này để đột nhập vào hệ thống mạng. Đa số những hacker mũ đen hiện nay có kiến thức sơ đẳng về mạng và sử dụng những công cụ sẵn có để đột nhập, họ thường được gọi là "script kiddies". Chỉ có một số ít hacker có khả năng tự phát triển các công cụ khai thác lỗ hổng. Hacker là chuyên gia phần cứng Một loại hacker khác là những người yêu thích và có kiến thức sâu về phần cứng, họ có khả năng sửa đổi một hệ thống phần cứng để tạo ra những hệ thống có chức năng đặc biệt hơn, hoặc mở rộng các chức năng được thiết kế ban đầu. Các ví dụ về hacker ở phân loại này bao gồm: Sửa đổi phần cứng máy tính để tăng tốc Sửa đổi hệ thống game Xbox để chạy hệ điều hành Linux Sửa đổi hệ thống Iphone để sử dụng hệ thống mạng khác ngoài AT&T
- 2. NHỮNG LỖ HỔNG BẢO MẬT 2.1. Lỗ hổng bảo mật Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truy nhập không hợp pháp vào hệ thống. Các lỗ hổng cũng có thể nằm ngay các dịch vụ cung cấp như sendmail, web, ftp Ngoài ra các lỗ hổng còn tồn tại ngay chính tại hệ điều hành như trong Windows XP, Windows NT, UNIX; hoặc trong các ứng dụng mà người sử dụng thường xuyên sử dụng như Word processing, Các hệ databases 2.2. Phân loại lỗ hổng bảo mật Có nhiều tổ chức khác nhau tiến hành phân loại các dạng lỗ hổng đặc biêt. Theo cách phân loại của Bộ quốc phòng Mỹ, các loại lỗ hổng bảo mật trên một hệ thống được chia như sau: Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thức tấn công theo DoS (Dinal of Services – Từ chối dịch vụ). Mức độ nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống; không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp Lổ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Mức độ nguy hiểm trung bình; Những lỗ hổng này thường có trong các ứng dụng trên hệ thống; có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật. Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngoài có thể truy nhập vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể làm phá hủy toàn bộ hệ thống. Các lỗ hổng loại C Các lỗ hổng loại này cho phép thực hiện các cuộc tấn công DoS. DoS là hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộ giao thức TCP/IP để làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người sử dụng hợp pháp truy nhập hay sử dụng hệ thống. Một số lượng lớn các gói tin được gửi tới server trong khoảng thời gian liên tục làm cho hệ thống trở nên quá tải, kết quả là server đáp ứng chậm hoặc không thể đáp ứng các yêu cầu từ client gửi tới. Các dịch vụ có chứa đựng lỗ hổng cho phép thực hiện các cuộc tấn công DoS có thể được nâng cấp hoặc sửa chữa bằng các phiên bản mới hơn của các nhà cung cấp dịch vụ. Hiện nay, chưa có một giải pháp toàn diện nào để khắc phục các lỗ hổng loại này vì bản thân việc thiết kế giao thức ở tầng Internet (IP) nói riêng và bộ giao thức TCP/IP đã chứa đựng những nguy cơ tiềm tàng của các lỗ hổng này. Tuy nhiên, mức độ nguy hiểm của các lỗ hổng loại này được xếp loại C; ít nguy hiểm vì chúng chỉ làm gián đoạn cung cấp dịch vụ của hệ thống trong một thời gian mà không làm nguy hại đến dữ liệu và người tấn công cũng không đạt được quyền truy nhập bất hợp pháp vào hệ thống. Một lỗ hổng loại C khác cũng thường thấy đó là các điểm yếu của dịch vụ cho phép thực hiện tấn công làm ngưng trệ hệ thống của người sử dụng cuối; Chủ yếu với hình thức tấn công này là sử dụng dịch vụ
- Web. Giả sử: trên một Web Server có những trang Web trong đó có chứa các đoạn mã Java hoặc JavaScripts, làm “treo” hệ thống của người sử dụng trình duyệt Web của Netscape bằng các bước sau: Viết các đoạn mã để nhận biết được Web Browers sử dụng Netscape Nếu sử dụng Netscape, sẽ tạo một vòng lặp vô thời hạn, sinh ra vô số các cửa sổ, trong mỗi cửa sổ đó nối đến các Web Server khác nhau. Với một hình thức tấn công đơn giản này, có thể làm treo hệ thống. Đây cùng là một hình thức tấn công kiểu DoS. Người sử dụng trong trường hợp này chỉ có thể khởi động lại hệ thống. Một lỗ hổng loại C khác cũng thường gặp đối với các hệ thống mail là không xây dựng các cơ chế anti- relay (chống relay) cho phép thực hiện các hành động spam mail. Như chúng ta đã biết, cơ chế hoạt động của dịch vụ thư điện tử là lưu và chuyển tiếp; một số hệ thống mail không có các xác thực khi người dùng gửi thư, dẫn đến tình trạng các đối tượng tấn công lợi dụng các máy chủ mail này để thực hiện spam mail; Spam mail là hành động nhằm tê liệt dịch vụ mail của hệ thống bằng cách gửi một số lượng lớn các messages tới một địa chỉ không xác định, vì máy chủ mail luôn phải tốn năng lực đi tìm những địa chỉ không có thực dẫn đến tình trạng ngưng trệ dịch vụ. Số lượng các messages có thể sinh ra từ các chương trình làm bom thư rất phổ biến trên mạng Internet. Các lỗ hổng loại B Lỗ hổng loại này có mức độ nguy hiểm hơn lỗ hổng loại C, cho phép người sử dụng nội bộ có thể chiếm được quyền cao hơn hoặc truy nhập không hợp pháp. Những lỗ hổng loại này thường xuất hiện trong các dịch vụ trên hệ thống. Người sử dụng local được hiểu là người đã có quyền truy nhập vào hệ thống với một số quyền hạn nhất định. Sau đây sẽ phân tích một số lỗ hổng loại B thường xuất hiện trong ứng dụng Sendmail: Sendmail là một chương trình được sử dụng rất phổ biến trên hệ thống UNIX để thực hiện gửi thư điện tử cho những người sử dụng trong nội bộ mạng. Thông thường, sendmail là một daemon chạy ở chế độ nền được kích hoạt khi khởi động hệ thống. Trong trạng thái hoạt động, sendmail mở port 25 đợi một yêu cầu tới sẽ thực hiện gửi hoặc chuyển tiếp thư. Sendmail khi được kích hoạt sẽ chạy dưới quyền root hoặc quyền tương ứng (vì liên quan đến các hành động tạo file và ghi log file). Lợi dụng đặc điểm này và một số lỗ hổng trong các đoạn mã của sendmail, mà các đối tượng tấn công có thể dùng sendmail để đạt được quyền root trên hệ thống. Để khắc phục lỗi của sendmail cần tham gia các nhóm tin về bảo mật; vì sendmail là chương trình có khá nhiều lỗi; nhưng cũng có nhiều người sử dụng nên các lỗ hổng bảo mật thường được phát hiện và khắc phục nhanh chóng. Khi phát hiện lỗ hổng trong sendmail cần nâng cấp, thay thế phiên bản sendmail đang sử dụng. Một loạt các vấn đề khác về quyền sử dụng chương trình trên UNIX cũng thường gây nên các lỗ hổng loại B. Vì trên hệ thống UNIX, một chương trình có thể được thực thi với 2 khả năng:
- Người chủ sở hữu chương trình đó kích hoạt chạy. Người mang quyền của người chủ sở hữu chủ nhân của file đó Các loại lỗ hổng loại B khác Một dạng khác của lỗ hổng loại B xảy ra đối với các chương trình có mã nguồn viết bằng C. Những chương trình viết bằng C thường sử dụng một vùng đệm – là một vùng trong bộ nhớ sử dụng để lưu dữ liệu trước khi xử lý. Những người lập trình thường sử dụng vùng đệm trong bộ nhớ trước khi gán một khoảng không gian bộ nhớ cho từng khối dữ liệu. Ví dụ, người sử dụng viết chương trình nhập trường tên người sử dụng; qui định trường này dài 20 ký tự. Do đó họ sẽ khai báo: char first_name [20]; Với khai báo này, cho phép người sử dụng nhập vào tối đa 20 ký tự. Khi nhập dữ liệu, trước tiên dữ liệu được lưu ở vùng đệm; nếu người sử dụng nhập vào 35 ký tự; sẽ xảy ra hiện tượng tràn vùng đệm và kết quả 15 ký tự dư thừa sẽ nằm ở một vị trí không kiểm soát được trong bộ nhớ. Đối với những người tấn công, có thể lợi dụng lỗ hổng này để nhập vào những ký tự đặc biệt, để thực thi một số lệnh đặc biệt trên hệ thống. Thông thường, lỗ hổng này thường được lợi dụng bởi những người sử dụng trên hệ thống để đạt được quyền root không hợp lệ. Việc kiểm soát chặt chẽ cấu hình hệ thống và các chương trình sẽ hạn chế được các lỗ hổng loại B. Các lỗ hổng loại A Các lỗ hổng loại A có mức độ rất nguy hiểm; đe dọa tính toàn vẹn và bảo mật của hệ thống. Các lỗ hổng loại này thường xuất hiện ở những hệ thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng. Một ví dụ thường thấy là trên nhiều hệ thống sử dụng Web Server là Apache, Đối với Web Server này thường cấu hình thư mục mặc định để chạy các scripts là cgi-bin; trong đó có một Scripts được viết sẵn để thử hoạt động của apache là test-cgi. Đối với các phiên bản cũ của Apache (trước version 1.1), có dòng sau trong file test-cgi: echo QUERY_STRING = $QUERY_STRING Biến môi trường QUERY_STRING do không được đặt trong có dấu ” (quote) nên khi phía client thưc hiện một yêu cầu trong đó chuỗi ký tự gửi đến gồm một số ký tự đặc biệt; ví dụ ký tự “*”, web server sẽ trả về nội dung của toàn bộ thư mục hiện thời (là các thư mục chứa các scipts cgi). Người sử dụng có thể nhìn thấy toàn bộ nội dung các file trong thư mục hiện thời trên hệ thống server. Một ví dụ khác cũng xảy ra tương tự đối với các Web server chạy trên hệ điều hành Novell; Các web server này có một scripts là convert.bas, chạy scripts này cho phép đọc toàn bộ nội dung các files trên hệ thống. Những lỗ hổng loại này hết sức nguy hiểm vì nó đã tồn tại sẵn có trên phần mềm sử dụng; người quản trị nếu không hiểu sâu về dịch vụ và phần mềm sử dụng sẽ có thể bỏ qua những điểm yếu này.
- Đối với những hệ thống cũ, thường xuyên phải kiểm tra các thông báo của các nhóm tin về bảo mật trên mạng để phát hiện những lỗ hổng loại này. Một loạt các chương trình phiên bản cũ thường sử dụng có những lỗ hổng loại A như: FTP, Gopher, Telnet, Sendmail, ARP, finger 2.3. Ảnh hưởng của các lỗ hổng bảo mật trên mạng Internet Phần trình bày ở trên đã phân tích một số trường hợp có những lỗ hổng bảo mật, những người tấn công có thể lợi dụng những lỗ hổng này để tạo ra những lỗ hổng khác tạo thành một chuỗi mắt xích những lỗ hổng. Ví dụ, một người muốn xâm nhập vào hệ thống mà anh ta không có tài khoản truy nhập hợp lệ trên hệ thống đó. Trong trường hợp này, trước tiên anh ta sẽ tìm ra các điểm yếu trên hệ thống, hoặc từ các chính sách bảo mật, hoặc sử dụng các công cụ dò sét thông tin trên hệ thống đó để đạt được quyền truy nhập vào hệ thống. Sau khi mục tiêu như nhất đã đạt được, anh ta có thể tiếp tục tìm hiểu các dịch vụ trên hệ thống, nắm bắt được các điểm yếu và thực hiện các hành động tấn công tinh vi hơn. Tuy nhiên, có phải bất kỳ lỗ hổng bảo mật nào cùng nguy hiểm đến hệ thống hay không? Có rất nhiều thông báo liên quan đến lỗ hổng bảo mật trên mạng Internet, hầu hết trong số đó là các lỗ hổng loại C, và không đặc biệt nguy hiểm đối với hệ thống. Ví dụ, khi những lỗ hổng về sendmail được thông báo trên mạng, không phải ngay lập tức ảnh hưởng trên toàn bộ hệ thống. Khi những thông báo về lỗ hổng được khẳng định chắc chắn, các nhóm tin sẽ đưa ra một số phương pháp để khắc phục hệ thống. Trên mạng Internet có một số nhóm tin thường thảo luận về các chủ đề liên quan đến các lỗ hổng bảo mật đó là: CERT (Computer Emergency Reponse Team): Nhóm tin này hình thành sau khi có phương thức tấn công Worm xuất hiện trên mạng Internet. Nhóm tin này thường thông báo và đưa ra các trợ giúp liên quan đến các lỗ hổng bảo mật. Ngoài ra nhóm tin còn có những báo cáo thường niên để khuyến nghị người quản trị mạng về các vấn đề liên quan đến bảo mật hệ thống. Địa chỉ Web site của nhóm tin: CIAC (Department of Energy Computer Incident Advisory Capability): tổ chức này xây dựng một cơ sở dữ liệu liên quan đến bảo mật cho bộ năng lượng của Mỹ. Thông tin của CIAC được đánh giá là một kho dữ liệu đầy đủ nhất về các vấn đề liên quan đến bảo mật hệ thống. Địa chỉ web site của CIAC : FIRST (The Forum of Incident Response and Security Teams): Đây là một diễn đàn liên kết nhiều tổ chức xã hội và tư nhân, làm việc tình nguyện để giải quyết các vấn đề về an ninh của mạng Internet. Địa chỉ Web site của FIRST: Một số thành viên của FIRST gồm: o CIAC o NASA Automated Systems Incident Response Capability. o Purdue University Computer Emergency Response Team o Stanford University Security Team o IBM Emergency Response Team
- 3. CÁC KIỂU TẤN CÔNG CỦA HACKER Tất nhiên, trong giới hacker có khá nhiều kiểu tấn công khác nhau. Từ những kiểu tấn công đơn giãn mà ai cũng thực hiện được, đến những kiểu tấn công tinh vi và gây hậu quả nghiêm trọng. Ở đây chúng ta sẽ trình bày những kiểu tấn công phổ biến như kỹ thuật đánh lừa, kỹ thuật tấn công từ chối dịch vụ, tấn công vào vùng ẩn 3.1. Tấn công trực tiếp Sử dụng một máy tính để tấn công một máy tính khác với mục đích dò tìm mật mã, tên tài khoản tương ứng, . Họ có thể sử dụng một số chương trình giải mã để giải mã các file chứa password trên hệ thống máy tính của nạn nhân. Do đó, những mật khẩu ngắn và đơn giản thường rất dễ bị phát hiện. Ngoài ra, hacker có thể tấn công trực tiếp thông qua các lỗi của chương trình hay hệ điều hành làm cho hệ thống đó tê liệt hoặc hư hỏng. Trong một số trường hợp, hacker đoạt được quyền của người quản trị hệ thống. 3.2. Kỹ thuật đánh lừa : Social Engineering Đây là thủ thuật được nhiều hacker sử dụng cho các cuộc tấn công và thâm nhập vào hệ thống mạng và máy tính bởi tính đơn giản mà hiệu quả của nó. Thường được sử dụng để lấy cấp mật khẩu, thông tin, tấn công vào và phá hủy hệ thống. Ví dụ : kỹ thuật đánh lừa Fake Email Login. Về nguyên tắc, mỗi khi đăng nhập vào hộp thư thì bạn phải nhập thông tin tài khoản của mình bao gồm username và password rồi gởi thông tin đến Mail Server xử lý. Lợi dụng việc này, những người tấn công đã thiết kế một trng web giống hệt như trang đăng nhập mà bạn hay sử dụng. Tuy nhiên, đó là một trang web giả và tất cả thông tin mà bạn điền vào đều được gởi đến cho họ. Kết quả, bạn bị đánh cắp mật khẩu ! Nếu là người quản trị mạng, bạn nên chú ý và dè chừng trước những email, những messengers, các cú điện thoại yêu cầu khai báo thông tin. Những mối quan hệ cá nhân hay những cuộc tiếp xúc đều là một mối nguy hiểm tiềm tàng. 3.3. Kỹ thuật tấn công vào vùng ẩn Những phần bị dấu đi trong các website thường chứa những thông tin về phiên làm việc của các client. Các phiên làm việc này thường được ghi lại ở máy khách chứ không tổ chức cơ sở dữ liệu trên máy chủ. Vì vậy, người tấn công có thể sử dụng chiêu chức View Source của trình duyệt để đọc phần đầu đi này và từ đó có thể tìm ra các sơ hở của trang Web mà họ muốn tấn công. Từ đó, có thể tấn công vào hệ thống máy chủ. Ví dụ: Một website cho phép bạn sửa các cấp thành viên Mod, Members, Banned nhưng không cho phép bạn sửa lên cấp Admin. Bạn thử View Code của website này, bạn có thể thấy như sau :
- Moderator Member Banned Từ dòng mã trên, bạn có thể suy luận như sau: Banned sẽ mang giá trị là 3, Member mang giá trị 2, Moderator mang giá trị 1. Vậy bạn có thể suy luận Admin có giá trị là 0 chẳng hạn. Tiếp tục, bạn lưu trang setting member đó, sau đó chuyển sang một trình text để hiệu chỉnh đoạn code đó như sau : Admin Moderator Member Banned Đến đây, bạn mở trang web đó và nhấn submit. Lúc này vẫn không có chuyện gì xảy ra. Nhưng bạn nên lưu ý đến một chiêu thức này để khai thông lỗ hổng của nó : dòng lệnh Ví dụ : để sửa code như sau : . Admin Moderator Member Banned
- Bây giờ bạn thử submit một lần nữa và xem kết quả. Bạn sẽ thành công nếu code đó ẩn. 3.4. Tấn công vào các lỗ hổng bảo mật Hiện, nay các lỗ hổng bảo mật được phát hiện càng nhiều trong các hệ điều hành, các web server hay các phần mềm khác, Và các hãng sản xuất luôn cập nhật các lỗ hổng và đưa ra các phiên bản mới sau khi đã vá lại các lỗ hổng của các phiên bản trước. Do đó, người sử dụng phải luôn cập nhật thông tin và nâng cấp phiên bản cũ mà mình đang sử dụng nếu không các hacker sẽ lợi dụng điều này để tấn công vào hệ thống. Thông thường, các forum của các hãng nổi tiếng luôn cập nhật các lỗ hổng bảo mật và việc khai thác các lỗ hổng đó như thế nào thì tùy từng người. 3.5. Khai thác tình trạng tràn bộ đệm Tràn bộ đệm là một tình trạng xảy ra khi dữ liệu được gởi quá nhiều so với khả năng xử lý của hệ thống hay CPU. Nếu hacker khai thác tình trạng tràn bộ đệm này thì họ có thể làm cho hệ thống bị tê liệt hoặc làm cho hệ thống mất khả năng kiểm soát. Để khai thác được việc này, hacker cần biết kiến thức về tổ chức bộ nhớ, stack, các lệnh gọi hàm. Shellcode. Khi hacker khai thác lỗi tràn bộ đệm trên một hệ thống, họ có thể đoạt quyền root trên hệ thống đó. Đối với nhà quản trị, tránh việc tràn bộ đệm không mấy khó khăn, họ chỉ cần tạo các chương trình an toàn ngay từ khi thiết kế. 3.6. Nghe trộm Các hệ thống truyền đạt thông tin qua mạng đôi khi không chắc chắn lắm và lợi dụng điều này, hacker có thể truy cập vào data paths để nghe trộm hoặc đọc trộm luồng dữ liệu truyền qua. Hacker nghe trộm sự truyền đạt thông tin, dữ liệu sẽ chuyển đến sniffing hoặc snooping. Nó sẽ thu thập những thông tin quý giá về hệ thống như một packet chứa password và username của một ai đó. Các chương trình nghe trộm còn được gọi là các sniffing. Các sniffing này có nhiệm vụ lắng nghe các cổng của một hệ thống mà hacker muốn nghe trộm. Nó sẽ thu thập dữ liệu trên các cổng này và chuyển về cho hacker. 3.7. Kỹ thuật giả mạo địa chỉ Thông thường, các mạng máy tính nối với Internet đều được bảo vệ bằng bức tường lửa(fire wall). Bức tường lửa có thể hiểu là cổng duy nhất mà người đi vào nhà hay đi ra cũng phải qua đó và sẽ bị “điểm mặt”. Bức tường lửa hạn chế rất nhiều khả năng tấn công từ bên ngoài và gia tăng sự tin tưởng lẫn nhau trong việc sử dụng tào nguyên chia sẻ trong mạng nội bộ.
- Sự giả mạo địa chỉ nghĩa là người bên ngoài sẽ giả mạo địa chỉ máy tính của mình là một trong những máy tính của hệ thống cần tấn công. Họ tự đặt địa chỉ IP của máy tính mình trùng với địa chỉ IP của một máy tính trong mạng bị tấn công. Nếu như làm được điều này, hacker có thể lấy dữ liệu, phá hủy thông tin hay phá hoại hệ thống. 3.8. Kỹ thuật chèn mã lệnh Một kỹ thuật tấn công căn bản và được sử dụng cho một số kỹ thuật tấn công khác là chèn mã lệnh vào trang web từ một máy khách bất kỳ của người tấn công. Kỹ thuật chèn mã lệnh cho phép người tấn công đưa mã lệnh thực thi vào phiên làm việc trên web của một người dùng khác. Khi mã lệnh này chạy, nó sẽ cho phép người tấn công thực hiện nhiều nhiều chuyện như giám sát phiên làm việc trên trang web hoặc có thể toàn quyền điều khiển máy tính của nạn nhân. Kỹ thuật tấn công này thành công hay thất bại tùy thuộc vào khả năng và sự linh hoạt của người tấn công. 3.9. Tấn công vào hệ thống có cấu hình không an toàn Cấu hình không an toàn cũng là một lỗ hổng bảo mật của hệ thống. Các lỗ hổng này được tạo ra do các ứng dụng có các thiết lập không an toàn hoặc người quản trị hệ thống định cấu hình không an toàn. Chẳng hạn như cấu hình máy chủ web cho phép ai cũng có quyền duyệt qua hệ thống thư mục. Việc thiết lập như trên có thể làm lộ các thông tin nhạy cảm như mã nguồn, mật khẩu hay các thông tin của khách hàng. Nếu quản trị hệ thống cấu hình hệ thống không an toàn sẽ rất nguy hiểm vì nếu người tấn công duyệt qua được các file pass thì họ có thể download và giải mã ra, khi đó họ có thể làm được nhiều thứ trên hệ thống. 3.10. Tấn công dùng Cookies Cookie là những phần tử dữ liệu nhỏ có cấu trúc được chia sẻ giữa website và trình duyệt của người dùng. Cookies được lưu trữ dưới những file dữ liệu nhỏ dạng text (size dưới 4KB). Chúng được các site tạo ra để lưu trữ, truy tìm, nhận biết các thông tin về người dùng đã ghé thăm site và những vùng mà họ đi qua trong site. Những thông tin này có thể bao gồm tên, định danh người dùng, mật khẩu, sở thích, thói quen, Cookies được Browser của người dùng chấp nhận lưu trên đĩa cứng của máy tính, không phải Browser nào cũng hổ trợ cookies. 3.11. Can thiệp vào tham số trên URL Đây là cách tấn công đưa tham số trực tiếp vào URL. Việc tấn công có thể dùng các câu lệnh SQL để khai thác cơ sở dữ liệu trên các máy chủ bị lỗi. Điển hình cho kỹ thuật tấn công này là tấn công bằng lỗi “SQL INJECTION”.
- Kiểu tấn công này gọn nhẹ nhưng hiệu quả bởi người tấn công chỉ cần một công cụ tấn công duy nhất là trình duyệt web và backdoor. 3.12. Vô hiệu hóa dịch vụ Kiểu tấn công này thông thường làm tê liệt một số dịch vụ, được gọi là DOS (Denial of Service - Tấn công từ chối dịch vụ). Các tấn công này lợi dụng một số lỗi trong phần mềm hay các lỗ hổng bảo mật trên hệ thống, hacker sẽ ra lệnh cho máy tính của chúng đưa những yêu cầu không đâu vào đâu đến các máy tính, thường là các server trên mạng. Các yêu cầu này được gởi đến liên tục làm cho hệ thống nghẽn mạch và một số dịch vụ sẽ không đáp ứng được cho khách hàng. Đôi khi, những yêu cầu có trong tấn công từ chối dịch vụ là hợp lệ. Ví dụ một thông điệp có hành vi tấn công, nó hoàn toàn hợp lệ về mặt kỹ thuật. Những thông điệp hợp lệ này sẽ gởi cùng một lúc. Vì trong một thời điểm mà server nhận quá nhiều yêu cầu nên dẫn đến tình trạng là không tiếp nhận thêm các yêu cầu. Đó là biểu hiện của từ chối dịch vụ. 3.13. Một số kiểu tấn công khác Lỗ hổng không cần login Nếu như các ứng dụng không được thiết kế chặt chẽ, không ràng buộc trình tự các bước khi duyệt ứng dụng thì đây là một lỗ hổng bảo mật mà các hacker có thể lợi dụng để truy cập thẳng đến các trang thông tin bên trong mà không cần phải qua bước đăng nhập. Thay đổi dữ liệu Sau khi những người tấn công đọc được dữ liệu của một hệ thống nào đó, họ có thể thay đổi dữ liệu này mà không quan tâm đến người gởi và người nhận nó. Những hacker có thể sửa đổi những thông tin trong packet dữ liệu một cách dễ dàng. Password-base Attact Thông thường, hệ thống khi mới cấu hình có username và password mặc định. Sau khi cấu hình hệ thống, một số admin vẫn không đổi lại các thiết lập mặc định này. Đây là lỗ hổng giúp những người tấn công có thể thâm nhập vào hệ thống bằng con đường hợp pháp. Khi đã đăng nhập vào, hacker có thể tạo thêm user, cài backboor cho lần viếng thăm sau. Identity Spoofing Các hệ thống mạng sử dụng IP address để nhận biết sự tồn tại của mình. Vì thế địa chỉ IP là sự quan tâm hàng đầu của những người tấn công. Khi họ hack vào bất cứ hệ thống nào, họ đều biết địa chỉ IP của hệ thống mạng đó. Thông thường, những người tấn công giả mạo IP address để xâm nhập vào hệ thống và cấu hình lại hệ thống, sửa đổi thông tin,
- Việc tạo ra một kiểu tấn công mới là mục đích của các hacker. Trên mạng Internet hiện nay, có thể sẽ xuất hiện những kiểu tấn công mới được khai sinh từ những hacker thích mày mò và sáng tạo. Bạn có thể tham gia các diễn đàn hacking và bảo mật để mở rộng kiến thức. 4. CÁC BIỆN PHÁP PHÁT HIỆN HỆ THỐNG BỊ TẤN CÔNG Không có một hệ thống nào có thể đảm bảo an toàn tuyệt đối; bản thân mỗi dịch vụ đều có những lỗ hổng bảo mật tiềm tàng. Đứng trên góc độ người quản trị hệ thống, ngoài việc tìm hiểu phát hiện những lỗ hổng bảo mật còn luôn phải thực hiện các biện pháp kiểm tra hệ thống xem có dấu hiệu tấn công hay không. Các biện pháp đó là: Kiểm tra các dấu hiệu hệ thống bị tấn công: hệ thống thường bị treo hoặc bị crash bằng những thông báo lỗi không rõ ràng. Khó xác định nguyên nhân do thiếu thông tin liên quan. Trước tiên, xác định các nguyên nhân về phần cứng hay không, nếu không phải phần cứng hãy nghĩ đến khả năng máy bị tấn công Kiểm tra các tài khoản người dùng mới trên hệ thống: một số tài khoản lạ, nhất là uid của tài khoản đó có uid= 0 Kiểm tra xuất hiện các tập tin lạ. Thường phát hiện thông qua cách đặt tên các tệp tin, mỗi người quản trị hệ thống nên có thói quen đặt tên tập tin theo một mẫu nhất định để dễ dàng phát hiện tập tin lạ. Dùng các lệnh ls -l để kiểm tra thuộc tính setuid và setgid đối với những tập tinh đáng chú ý (đặc biệt là các tập tin scripts). Kiểm tra thời gian thay đổi trên hệ thống, đặc biệt là các chương trình login, sh hoặc các scripts khởi động trong /etc/init.d, /etc/rc.d Kiểm tra hiệu năng của hệ thống. Sử dụng các tiện ích theo dõi tài nguyên và các tiến trình đang hoạt động trên hệ thống như ps hoặc top Kiểm tra hoạt động của các dịch vụ mà hệ thống cung cấp. Chúng ta đã biết rằng một trong các mục đích tấn công là làm cho tê liệt hệ thống (Hình thức tấn công DoS). Sử dụng các lệnh như ps, pstat, các tiện ích về mạng để phát hiện nguyên nhân trên hệ thống. Kiểm tra truy nhập hệ thống bằng các account thông thường, đề phòng trường hợp các account này bị truy nhập trái phép và thay đổi quyền hạn mà người sử dụng hợp pháp không kiểm sóat được. Kiểm tra các file liên quan đến cấu hình mạng và dịch vụ như /etc/inetd.conf; bỏ các dịch vụ không cần thiết; đối với những dịch vụ không cần thiết chạy dưới quyền root thì không chạy bằng các quyền yếu hơn. Kiểm tra các phiên bản của sendmail, /bin/mail, ftp; tham gia các nhóm tin về bảo mật để có thông tin về lỗ hổng của dịch vụ sử dụng 5. CÁC QUY TẮC BẢO MẬT Tại trung tâm hỏi đáp về an toàn bảo mật thông tin của hãng Microsoft, hàng nghìn các bản báo cáo về an ninh hệ thống đã được nghiên cứu trong mỗi năm. Trong một số trường hợp, kết quả về mức độ an
- toàn của hệ thống xuất phát từ lỗi trong sản phẩm. Điều này có nghĩa là sẽ có một bản sửa lỗi phát triển ngay sau đó để khắc phục lỗi vừa tìm được. Trong một số trường hợp, các vấn đề được báo cáo là kết quả đơn giản do lỗi của ai đó tạo ra trong quá trình sử dụng sản phẩm. Nhưng lại có rất nhiều trường hợp mà không rơi vào hai trường hợp trên. Đó chính là các vấn đề an toàn bảo mật thông tin thực sự, nhưng các vấn đề này lại không do các thiếu sót từ sản phẩm. Theo năm tháng, một danh sách về những vấn đề như vậy đã được phát triển gọi là “Mười quy tắc then chốt về an toàn và bảo mật”. Đừng giữ hệ thống của bạn hoạt động trong khi chờ đợi một phiên bản sửa lỗi mới, mà hãy bảo vệ bạn từ các vấn đề mà chúng tôi đưa ra dưới đây. Các lỗi này không thể do Microsoft – hay bất kì các nhà sản xuất phần mềm nào có thể sửa được, bởi vì chúng được tạo ra do chính cách hoạt động của các máy tính. Nhưng cũng đừng đánh mất hết hi vọng - điều này phụ thuộc vào chính bản thân bạn với các lỗi này, và nếu bạn giữ chúng trong đầu mình, bạn có thể cải thiện một cách đáng kể các hệ thống bảo mật của bạn. Dưới đây là Mười Quy Tắc Then Chốt Trong Bảo Mật mà bạn nên tham khảo: Quy tắc 1 : Nếu một người nào đó có thể thuyết phục bạn chạy chương trình của anh ta trên máy tính của bạn, Nó sẽ không còn là máy tính của bạn nữa. Quy tắc 2: Nếu một người nào đó có thể sửa đổi hệ điều hành trên máy tính của bạn, Nó sẽ không còn là máy tính của bạn nữa. Quy tắc 3: Nếu một người nào đó truy cập vật lí không hạn chế tới máy tính của bạn. Nó sẽ không còn là máy tính của bạn nữa. Quy tắc 4: Nếu bạn cho phép một người nào đó đẩy các chương trình tới website của bạn. Nó sẽ không còn là website của bạn. Quy tắc 5: Các mật khẩu dễ nhận có thể làm hỏng hệ thống bảo mật mạnh. Quy tắc 6: Một hệ thống chỉ có độ an toàn như sự tin tưởng nhà quản trị. Quy tắc 7: Dữ liệu được mã hoá chỉ như chìa khoá giải mã. Quy tắc 8: Một hệ thống quét virus hết hạn thì cũng còn tốt hơn không có hệ thống diệt virus nào. Quy tắc 9: Tình trạng dấu tên hoàn toàn không thực tế. Quy tắc 10: Công nghệ không phải là tất cả Xem phân tích chi tiết mười quy tắc này trong phần phụ lục. 6. XÂY DỰNG CHÍNH SÁCH BẢO MẬT Qua trình bày ở các phần trên cho chúng ta thấy phần nào những hoạt động liên quan xây dựng một chính sách bảo mật. Đó là những hoạt động nhằm thiết lập các khung chính sách nhằm đảm an toàn cho hệ thống, đồng thời đảm bảo hệ thống ổn định và có tính thực thi cao, có khả năng chống lại các cuộc tấn công vào mạng. Tuy nhiên, một hệ thống nếu dựa vào mục tiêu bảo mật mà làm mất đi tính mềm dẻo và dễ sử dụng thì chính sách bảo mật trên hệ thống đó cũng chưa phải là tốt. Có thể nói rằng một hệ thống có chính sách bảo mật hợp lý là biện pháp tốt nhất để đảm bảo an toàn mạng. Do đó, phần sau đây sẽ trình bày những bước cần thiết để xây dựng một chính sách bảo mật hợp lý đối với các hệ thống cung cấp dịch vụ trên mạng.
- 6.1. Các bước chuẩn bị Trong các bước xây dựng một chính sách bảo mật đối với một hệ thống, nhiệm vụ đầu tiên của người quản trị là xác định được đúng mục tiêu cần bảo mật. Việc xác định những mục tiêu của chính sách bảo mật giúp người sử dụng biết được trách nhiệm của mình trong việc bảo vệ các tài nguyên thông tin trên mạng, đồng thời giúp các nhà quản trị thiết lập các biện pháp đảm bảo hữu hiệu trong quá trình trang bị, cấu hình và kiểm soát hoạt động của hệ thống. Những mục tiêu bảo mật bao gồm: Xác định đối tượng cần bảo vệ Đây là mục tiêu đầu tiên và quan trọng nhất trong khi thiết lập một chính sách bảo mật. Người quản trị hệ thống cần xác định rõ những đối tượng nào là quan trọng nhất trong hệ thống cần bảo vệ; xác định rõ mức độ ưu tiên đối với những đối tượng đó. Ví dụ các đối tượng cần bảo vệ trên một hệ thống có thể là: Các máy chủ dịch vụ, các router, các điểm truy nhập hệ thống, các chương trình ứng dụng, hệ quản trị CSDL, các dịch vụ cung cấp Trong bước này cần xác định rõ phạm vi và ranh giới giữa các thành phần trong hệ thống để khi xảy ra sự cố trên hệ thống có thể cố lập các thành phần này với nhau, dễ dàng dò tìm nguyên nhân và cách khắc phục. Có thể chia các thành phần trên một hệ thống theo các cách sau: Phân tách các dịch vụ tùy theo mức độ truy cập và độ tin cậy Phân tách hệ thống theo các thành phần vật lý như các máy chủ (server), router, các máy trạm (workstation) Phân tách theo phạm vi cung cấp của các dịch vụ như: các dịch vụ bên trong mạng (NIS, NFS ) và các dịch vụ bên ngoài như Web, FTP, Mail Xác định nguy cơ đối với hệ thống Các nguy cơ đối với hệ thống chính là các lỗ hổng bảo mật của các dịch vụ, hệ thống đó cung cấp. Việc xác định đúng đắn các nguy cơ này giúp người quản trị có thể tránh được những cuộc tấn công mạng, hoặc có biện pháp bảo vệ đúng đắn. Thông thường, một số nguy cơ này nằm ở các thành phần sau trên hệ thống: 1. Các điểm truy nhập Các điểm truy nhập của hệ thống bất kỳ (Access Points) thường đóng vai trò quan trọng đối với mỗi hệ thống vì đây là điểm đầu tiên mà người sử dụng cũng như những người tấn công mạng quan tâm tới. Thông thường các điểm truy nhập thường phục vụ hầu hết người dùng trên mạng, không phụ thuộc vào quyền hạn cũng như dịch vụ mà người sử dụng dùng. Do đó, các điểm truy nhập thường là thành phần có tính bảo mật lỏng lẻo. Mặt khác, đối với nhiều hệ thống còn cho phép người sử dụng dùng các dịch vụ như Telnet, login để truy nhập vào hệ thống, đây là những dịch vụ có nhiều lỗ hổng bảo mật. 2. Không kiểm soát được cấu hình hệ thống Không kiểm soát hoặc mất cấu hình hệ thống chiếm một tỷ lệ lớn trong số các lỗ hổng bảo mật. Ngày nay, có một số lượng lớn các phần mềm sử dụng, yêu cầu cấu hình phức tạp và đa dạng hơn, điều này cũng dẫn đến những khó khăn để người quản trị nắm bắt được cấu hình hệ thống. Để khắc phục hiện
- tượng này, nhiều hãng sản xuất phần mềm đã đưa ra những cấu hình khởi tạo mặc định, trong khi đó những cấu hình này không được xem xét kỹ lưỡng trong một môi trường bảo mật. Do đó, nhiệm vụ của người quản trị là phải nắm được hoạt động của các phần mềm sử dụng, ý nghĩa của các file cấu hình quan trọng, áp dụng các biện pháp bảo vệ cấu hình như sử dụng phương thức mã hóa hashing code (MD5). 3. Những bug phần mềm sử dụng Những bug phần mềm tạo nên những lỗ hổng của dịch vụ là cơ hội cho các hình thức tấn công khác nhau xâm nhập vào mạng; Các chương trình trojans và virus là những ví dụ cụ thể. Do đó, người quản trị phải thường xuyên cập nhật tin tức trên các nhóm tin về bảo mật và từ nhà cung cấp phần mềm để phát hiện những lỗi của phần mềm sử dụng. Khi phát hiện có bug cần thay thế hoặc ngừng sử dụng phần mềm đó chờ nâng cấp lên phiên bản tiếp theo. 4. Những nguy cơ trong nội bộ mạng Một hệ thống không những chịu tấn công từ ngoài mạng, mà có thể bị tấn công ngay từ bên trong. Có thể là vô tình hoặc cố ý, các hình thức tấn công bên trong mạng vẫn thường xảy ra trên một số hệ thống lớn. Chủ yếu với hình thức tấn công ở bên trong mạng là người tấn công có thể tiếp cận về mặt vật lý đối với các thiết bị trên hệ thống, đạt được quyền truy nhập không hợp lệ tại ngay hệ thống đó. Xác định phương án thực thi chính sách bảo mật Sau khi thiết lập được một chính sách bảo mật, một hoạt động tiếp theo là lựa chọn các phương án thực thi một chính sách bảo mật. Một chính sách bảo mật là hoàn hảo khi nó có tính thực thi cao. Để đánh giá tính thực thi này, có một số tiêu chí để lựa chọn đó là: 1. Tính đúng đẵn Đây là tiêu chí đầu tiên và quan trọng nhất để lựa chọn một chính sách bảo mật. Nó đảm bảo cho sự thành công của chính sách đó. Ví dụ, nếu như một hệ thống thường xuyên có các nguy cơ bị tấn công từ bên ngoài, một chính sách bảo mật cần phải đảm bảo kiểm soát được các truy nhập của khách hàng vào hệ thống bằng việc xây dựng các thủ tục quản lý tài khoản người dùng chặt chẽ và kỹ càng. 2. Tính thân thiện Một chính sách bảo mật cần thiết lập các công cụ bảo mật thân thiện với người quản trị và dễ dàng thực thi các chính sách bảo mật. Đồng thời, còn đảm bảo các biện pháp bảo mật trên hệ thống không làm khó khăn hoặc bất tiện đối với người sử dụng. Ví dụ, những chính sách nhằm kiểm tra tính hợp lệ khi khách hàng truy nhập vào hệ thống; những chính sách về bảo vệ mật khẩu như yêu cầu khách hàng đối mật khẩu trong một thời gian xác định các chính sách này phải có tính “trong suốt” đối với khách hàng sử dụng hệ thống. 3. Tính hiệu quả Sau cùng, một chính sách bảo mật được quyết định bởi các nhà quản lý; họ quan tâm đến hiệu quả mà chính sách đó mang lại. Một chính sách bảo mật có thể đảm bảo hệ thống an toàn, tin cậy, nhưng lại cần có chi phí quá cao so với lợi nhuận mà hệ thống đó đem lại sẽ không được quyết định thực thi. Tuy
- nhiên, trong một khía cạnh khác, có thể các chính sách không thể đem lại hiệu quả ngay, do đó cần xem xét mức độ chi phí bảo mật hệ thống đối với một thời gian dài cùng với các lợi nhuận khác đem lại từ hệ thống bảo mật như nâng cao chất lượng dịch vụ bằng tính ổn định của hệ thống, 6.2. Thiết lập các quy tắc Các thủ tục đối với hoạt động truy nhập không hợp lệ Sử dụng một vài công cụ có thể phát hiện ra các hoạt động truy nhập không hợp lệ vào một hệ thống. Các công cụ này có thể đi kèm theo hệ điều hành, hoặc từ các hãng sản xuất phần mềm thứ ba 1. Các công cụ nhận biết truy nhập không hợp lệ Đây là biện pháp phổ biến nhất để theo dõi các hoạt động hệ thống. Các công cụ logging: Ví dụ các công cụ theo dõi logfile, hầu hết các hệ điều hành đều hỗ trợ một số lượng lớn các công cụ ghi log với nhiều thông tin bổ ích. Để phát hiện những hoạt động truy nhập không hợp lệ, một số qui tắc khi phân tích logfile như sau: o So sánh các hoạt động trong logfile với các log trong quá khứ. Đối với các hoạt động thông thường, các thông tin trong logfile thường có chu kỳ giống nhau; ví dụ thời điểm người sử dụng login hoặc log out, thời gian sử dụng các dịch vụ trên hệ thống o Nhiều hệ thống sử dụng các thông tin trong logfile để tạo hóa đơn cho khách hàng. Có thể dựa vào các thông tin trong hóa đơn thanh toán để xem xét các truy nhập không hợp lệ nếu thấy trong hóa đơn đó có những điểm bất thường như thời điểm truy nhập, số điện thoại lạ o Dựa vào các tiện ích như syslog để xem xét, đặc biệt là các thông báo lỗi login không hợp lệ (bad login) trong nhiều lần. o Dựa vào các tiện ích kèm theo hệ điều hành để theo dõi các tiến trình đang hoạt động trên hệ thống; để phát hiện những tiến trình lạ, hoặc những chương trình khởi tạo không hợp lệ Sử dụng các công cụ giám sát khác: Ví dụ sử dụng các tiện ích về mạng để theo dõi các lưu lượng, tài nguyên trên mạng để phát hiện những điểm nghi ngờ. Xây dựng kế hoạch giám sát: Do có nhiều công việc phải giám sát, nên người quản trị cần xây dựng kế hoạch giám sát thông qua các công cụ trên hệ thống như cron, tạo schedule Mặt khác, kế hoạch này đảm bảo các công cụ giám sát không chiếm nhiều tài nguyên hệ thống. Tạo các báo cáo từ các thông tin giám sát: Có thể sử dụng những thông tin từ logfile vào một CSDL; từ đó xây dựng các mẫu báo cáo theo kế hoạch giám sát. Dựa vào các báo cáo này người quản trị có thể phát hiện những điểm yếu trên mạng, đồng thời dự báo được hướng phát triển mạng trong tương lai. 2. Các phản ứng của hệ thống Dựa vào các bước trên để xác định hệ thống bị tấn công. Khi phát hiện cần thực hiện các công việc sau:
- Xác định mức độ nguy hiểm: Đánh giá mức độ nguy hại và ảnh hưởng của nó. Xác định các hành động phá hoại Trong một số trường hợp, có thể dựa vào pháp luật hiện hành để xử lý. Triển khai chính sách bảo mật Đào tạo người sử dụng: Người sử dụng đóng vai trò quan trọng trong quá trình thực thi một chính sách bảo mật. Về phía người dùng luôn mong muốn tính đơn giản về dễ dàng đối với các thủ tục. Do đó, khi xây dựng chính sách bảo mật, một mặt đảm bảo chính sách đó không làm cản trở người sử dụng, mặt khác người sử dụng cần nhận thức tầm quan trọng của các chính sách bảo mật và có trách nhiệm thực hiện nó; một số công việc người dùng cần lưu ý: Sử dụng tài khoản hợp lệ: Người sử dụng cần nhận thức được lợi ích khi sử dụng một tài khoản hợp lệ. Đối với nhà quản trị hệ thống cần có chính sách ưu đãi, khuyến khích người sử dụng dùng những tài khoản hợp lệ. Quản lý tài khoản: Người sử dụng nhận thức được vai trò quan trọng trong việc bảo vệ tài khoản của mình. Các hoạt động quản lý tài khoản bao gồm việc bảo vệ mật khẩu, thay đổi mật khẩu định kỳ, đăng ký thời điểm, Sử dụng các phần mềm bảo vệ máy trạm của người sử dụng, log out khỏi hệ thống sau một thời gian time-out Phát hiện tài khoản sử dụng trái phép: Người dùng cần được huấn luyện về các cách phát hiện tài khoản của mình sử dụng trái phép như thế nào. Người sử dụng cần thường xuyên kiểm tra các hoạt động của mình để đảm bảo không có người khác lợi dụng tài khoản thực hiện những hành động khác. Thủ tục tạo báo cáo khi có sự cố: Người sử dụng phải có thói quen thông báo sự cố đến người quản trị khi phát hiện nghi vấn đối với tài khoản của mình. Trong chính sách bảo mật cần xây dựng các mẫu báo cáo này để cung cấp cho người dùng. 6.3. Thiết lập các thủ tục bảo vệ hệ thống Thủ tục quản lý tài khoản người sử dụng Thủ tục quản lý tài khoản là hết sức quan trọng để chống lại các truy nhập không hợp lệ. Một số thông tin cần thiết khi xây dụng thủ tục quản lý tài khoản gồm: Đối tượng nào có thể truy nhập vào hệ thống. Một tài khoản tồn tại trong thời gian bao lâu trên hệ thống. Những đối tượng nào có quyền quản trị hệ thống Trả lời những câu hỏi này sẽ thiết lập được các thủ tục quản lý tài khoản người sử dụng. Đồng thời cần thực hiện các biện pháp sau để bảo vệ tài khoản: Giám sát chặt chẽ hệ thống quản lý truy nhập người dùng. Ví dụ trên UNIX là file /etc/passwd, trên Windows NT là Database management users. Đối với một số dịch vụ, cho phép sử dụng các tài khoản không cần mật khẩu, hoặc dùng mật khẩu chung như FTP dùng tài khoản anonymous, dùng tài khoản guest để truy nhập vào hệ thống, cần xác định rõ quyền tác động của chúng; thông thường chỉ có quyền rất thấp trong một hệ thống. Đối với những hệ thống UNIX có hỗ trợ cơ chế che mật khẩu qua file /etc/shadow, thì cần
- sử dụng cơ chế này (vì thông thường file /etc/passwd trong UNIX để quyền đọc đối với tất cả người sử dụng, những kẻ tấn công có thể thấy được mật khẩu mã hóa của một tài khoản, dựa vào các chương trình bẻ khóa có thể phát hiện ra các mật khẩu yếu) Kiểm soát chặt chẽ các quyền của các tài khoản trên hệ thống; không sử dụng quyền root trong các trường hợp không cần thiết. Đối với các tài khoản không sử dụng trên hệ thống cần đổi mật khẩu hoặc hủy bỏ. Ngoài ra, có các biện pháp khác như: hạn chế tài khoản truy nhập theo thời điểm, theo địa chỉ máy trạm, các thông tin tài khoản rõ ràng, hợp lệ. Thủ tục quản lý mật khẩu Trong hầu hết các hệ thống hiện nay đều xác thực truy nhập qua mật khẩu người dùng, vì vậy các thủ tục quản lý mật khẩu là hết sức quan trọng và cần thiết. Các công việc liên quan đễn quản lý mật khẩu bao gồm: Lựa chọn mật khẩu: Như chúng ta đã biết có một số hình thức tấn công mạng, phương thức phá mật khẩu khá mạnh và hữu hiệu đối với các mật khẩu yếu. Để khắc phục cần lựa chọn mật khẩu mạnh. Một số qui tắc lựa chọn mật khẩu như sau: o Không sử dụng tên người truy nhập làm mật khẩu. o Không sử dụng bất cứ thông tin nào liên quan đến gia đình, cá nhân người sử dụng như ngày sinh, số điện thoại làm mật khẩu o Không sử dụng mật khẩu chỉ gồm toàn bộ các chữ hoặc các số o Không sử dụng những từ trong từ điển, những danh sách tuần tự làm mật khẩu o Không sử dụng mật khẩu ít hơn 6 ký tự o Tạo mật khẩu gồm cả chữ hoa và chữ thường o Tạo mật khẩu kết hợp cả chữ, số và các ký tự đặc biệt o Tạo mật khẩu có thể gõ nhanh mà không cần nhìn vào bàn phím Sau khi đã tạo xong mật khẩu, cần có chính sách buộc người sử dụng thay đổi mật khẩu trong một thời gian nhất định. Hầu hết các hệ thống hiện nay đều hỗ trợ cơ chế này; nếu không thay đổi mật khẩu, tài khoản đó không còn giá trị trên hệ thống Trong trường hợp người sử dụng bị mất mật khẩu, để cấp lại mật khẩu mới cần có các thủ tục khác để xác thực người sử dụng Cần giám sát và theo dõi chặt chẽ các chương trình đổi mật khẩu; đây thường là mục tiêu để tấn công. Thủ tục quản lý cấu hình hệ thống Các thông tin về cấu hình của dịch vụ và phần mềm sử dụng đóng vai trò quan trọng đối với mỗi hệ thống. Các thủ tục quản lý cấu hình hệ thống cần xác định rõ ai là người có quyền hợp lệ thay đổi cầu hình hệ thống, và những thay đổi như thế nào cần được thông báo tới nhà quản lý. Trong các thủ tục quản lý cấu hình cũng cần xác định rõ một số thông tin như:
- Vị trí lưu các file cấu hình chuẩn Qui trình quản lý mật khẩu root Các thuật toán liên quan đến mã hóa mật khấu sử dụng Thủ tục sao lưu và khôi phục dữ liệu Sao lưu dữ liệu không chỉ đề phòng đối với trường hợp có sự cố về hệ thống phần cứng mà còn có thể khôi phục lại hệ thống trong trường hợp bị kẻ phá hoại xâm nhập và thay đổi hệ thống. Nếu không có dữ liệu sao lưu sẽ không thể khôi phục lại hệ thống trước khi bị tấn công. Cần xây dựng kế hoạch cụ thể cho công tác sao lưu dữ liệu, xác định các phương pháp sao lưu sao cho hiệu quả nhất. Có thể sao lưu theo ngày đối với những dữ liệu thường xuyên thay đổi, sao lưu theo tuần và theo tháng đối với các dữ liệu không quan trọng. Kết hợp các biện pháp sao lưu khác nhau. Ví dụ, một kế hoạch sao lưu tốt thường áp dụng với các hệ thống đó là: Sao lưu toàn bộ hệ thống ít nhất một lần trong một tháng; Sao lưu từng phần ít nhất 2 lần một tuần. Hầu hết các hệ điều hành hiện nay đều hỗ trợ các cơ chế sao lưu. Thủ tục báo cáo sự cố Đối với người quản lý, người quản trị hệ thống cần xây dựng các mẫu thông báo sự cố tới người sử dụng kịp thời, trong đó xác định rõ mức độ ảnh hưởng và nguyên nhân, cách khắc phục sự cố; Các thông báo này có thể gửi qua email hoặc đường thư tín. Đối với người sử dụng, khi phát hiện các hành động tấn công từ tài khoản người dùng, cần thông báo đến người dùng việc tài khoản của họ bị sử dụng không hợp lệ và yêu cầu có biện pháp thích hợp để bảo vệ tài khoản người dùng.