Luận văn Xây dựng thử nghiệm công cụ phát hiện và khai thác các lỗ hổng an ninh

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT .6

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ.7

TÓM TẮT .9

GIỚI THIỆU.10

CHưƠNG 1: TỔNG QUAN VỀ KIỂM THỬ AN NINH .11

1.1. Khái niệm cơ bản.11

1.2. Phân loại kiểm thử an ninh .11

1.2.1. Kiểm thử hộp trắng.11

1.2.2. Kiểm thử hộp đen .11

1.2.3. Kiểm thử hộp xám.11

1.3. Quy trình kiểm thử an ninh .12

1.3.1. Giai đoạn khởi tạo .13

1.3.2. Đặt phạm vi.13

1.3.3. Thu thập thông tin trước khi kiểm thử .14

1.3.4. Tuyên bố công việc .15

1.3.5. Quyền kiểm thử chuyên sâu.15

1.3.6. Thực thi kiểm thử .15

1.3.7. Báo cáo kiểm thử an ninh .15

CHưƠNG 2: TỔNG QUAN VỀ METASPLOIT.17

2.1. Khái niệm cơ bản.17

2.2. Lịch sử Metasploit .17

2.3. Các phiên bản của Metasploit .18

2.4. Metasploit Framework.20

2.4.1. Tổng quan về Metasploit Framework .20

2.4.2. Cấu trúc của Metasploit Framework .23

2.4.3. Quy trình kiểm thử trên Metasploit Framework .24

CHưƠNG 3: MỞ RỘNG TÍNH NĂNG TẠO BÁO CÁO CHO METASPLOIT

FRAMEWORK .25

pdf62 trang | Chia sẻ: honganh20 | Ngày: 10/03/2022 | Lượt xem: 352 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng thử nghiệm công cụ phát hiện và khai thác các lỗ hổng an ninh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
máy chủ chứa cơ sở dữ liệu về một bộ phận kế toán. Trong quá trình kiểm tra, thực tế là có nhiều máy chủ chứa cơ sở dữ liệu không an toàn, thuộc về các bộ phận khác, nhƣng ngƣời kiểm thử không biết và vẫn thực hiện kiểm thử trên các máy thuộc bộ phận khác đó. Kết quả của báo cáo cuối cùng lại chứa nhiều máy chủ hơn nhiều so với yêu cầu ban đầu. Một tình huống nhƣ vậy có thể dẫn đến một kiểm thử an ninh chất lƣợng thấp trong thời gian dài. Để xác định đƣợc phạm vi một cách tốt hơn chính xác hơn thì tổ chức hay công ty có thể sử dụng hai cách sau: Cách 1: Đặt phạm vi dựa trên các báo cáo cũ Việc sử dụng các báo cáo từ các phiên kiểm thử an ninh trƣớc đó sẽ giúp cho tất cả mọi ngƣời tham gia dự án biết về cách kiểm thử có thể đƣợc thực hiện và cả cách các tổ chức khác đã suy luận khi thiết lập phạm vi kiểm thử. Tuy nhiên cần phải kiểm duyệt các báo cáo này trƣớc khi sử dụng nhằm tránh các trƣờng hợp xấu có thể xảy ra nhƣ vô tình làm lộ thông tin bí mật về một bên khác hay gặp rắc rối với luật pháp khi sử dụng làm phạm vi mẫu khi không đƣợc sự cho phép của công ty hoặc tổ chức sở hữu báo cáo đó. Cách 2: Lấy ý kiến từ các chuyên gia hàng đầu 14 Việc yêu cầu giúp đỡ từ các chuyên gia kiểm thử hàng đầu dày dặn kinh nghiệm hơn sẽ giúp xác định phạm vi một cách dễ dàng hơn và tránh đƣợc các rủi ro không đáng có. Tùy thuộc vào môi trƣờng công nghệ thông tin của khách hàng và ngân sách của họ mà các chuyên gia kiểm thử có thể đề xuất những gì nên đƣợc đƣa vào kiểm thử và nên áp dụng phƣơng pháp kiểm thử nào. 1.3.3. Thu thập thông tin trƣớc khi kiểm thử Thông thƣờng kiểm thử hộp trắng và xám yêu cầu ngƣời kiểm thử có đƣợc cái nhìn khái quát về bên trong của hệ thống trƣớc khi thực hiện giai đoạn kiểm tra kỹ thuật. Không phải tất cả các hệ thống đều đƣợc tạo ra nhƣ nhau, do đó kết quả kiểm thử sẽ phụ thuộc vào các chi tiết và tính chính xác của thông tin đƣợc cung cấp cho ngƣời kiểm thử trƣớc đó (cùng với phạm vi kiểm thử). Những thông tin cần thiết có thể lấy từ quản lý, quản trị viên hệ thống và mạng, quản lý cung cấp dịch vụ và nhà phát triển. Mƣời ba câu hỏi sau đây có thể giúp chúng ta lấy đƣợc những thông tin cần thiết nhất trƣớc khi bắt đầu kiểm thử:  Mục đích của hệ thống là gì?  Hệ thống cung cấp dịch vụ và giao diện nào?  Dữ liệu dự định đi vào và ra khỏi hệ thống nhƣ thế nào?  Hệ thống có chứa dữ liệu sản xuất không?  Có bất kỳ tài liệu có sẵn nào không?  Ngƣời kiểm thử sẽ truy cập hệ thống nhƣ thế nào?  Có mã nguồn nào không?  Có bất kỳ phần cứng hoặc phần mềm nào có thể can thiệp vào hoạt động kiểm thử an ninh và nếu có thì có thể tạm thời tắt trong quá trình kiểm thử? (nhƣ tƣờng lửa hoặc hệ thống phát hiện và ngăn chặn xâm nhập)  Hệ điều hành nào đang đƣợc sử dụng?  Có quy trình khắc phục lỗi tại chỗ không (trong trƣờng hợp kiểm thử gặp sai lầm nghiêm trọng)?  Có sao lƣu công việc không?  Có báo cáo cũ về những lần kiểm thử trƣớc đó không?  Tài sản nào liên quan đến hệ thống là quan trọng nhất đối với bạn? 15 1.3.4. Tuyên bố công việc Bản tuyên bố công việc (Statement Of Work) là một tài liệu phác thảo phạm vi của kiểm thử và loại kiểm thử nào sẽ đƣợc thực hiện trong phạm vi đó. Tài liệu cần chỉ ra rằng ngƣời kiểm thử đã hiểu những gì về phạm vi kiểm thử, loại kiểm thử, thời hạn kiểm thử, v.v. Chi tiết hơn có thể đƣa ra cả thông tin về nơi các bài kiểm tra sẽ đƣợc thực hiện và trong thời gian nào trong ngày. Ngoài ra bản tuyên bố cũng chỉ ra rõ ngƣời kiểm thử an ninh nên liên hệ với ai trong trƣờng hợp có sự kiện bất ngờ xảy ra 1.3.5. Quyền kiểm thử chuyên sâu Đây là một thuật ngữ dùng để chỉ một đặc quyền đƣợc cấp riêng cho ngƣời kiểm thử an ninh nhằm phân biệt với các Hacker mang ý đồ xấu. Trong quá trình kiểm thử các công cụ và phƣơng pháp đƣợc sử dụng bởi ngƣời kiểm tra bảo mật trong hầu hết các trƣờng hợp sẽ bắt chƣớc chính xác, hoặc gần giống với cách mà một Hacker thực hiện khi tấn công vào hệ thống. Do đó ngƣời kiểm thử phải đảm bảo rằng có tất cả các quyền cần thiết để thực hiện kiểm tra chuyên sâu một cách thuận lợi nhất mà không gặp trở ngại từ các ứng dụng bảo vệ hệ thống (nhƣ phần mềm Ani-Virus) . Quyền này phải đƣợc ký, bởi một ngƣời có thẩm quyền thích hợp và cần hoàn thành trƣớc khi chuyển sang bƣớc tiếp theo của bài kiểm thử an ninh. 1.3.6. Thực thi kiểm thử Đây là giai đoạn ngƣời kiểm thử bắt đầu đột nhập vào các hệ thống nằm trong phạm vi đã định sẵn từ trƣớc. Ngƣời thực hiện bƣớc này của quy trình kiểm thử an ninh phải hiểu rất rõ các kỹ thuật Hack khác nhau và cách tƣ duy của các tin tặc, hoặc tội phạm máy tính. Mặc dù các bƣớc khác trong quy trình kiểm thử có thể đƣợc lên kế hoạch và thực hiện bởi một ngƣời không am hiểu về kỹ thuật bảo mật nhƣng bƣớc này phải đƣợc thực hiện bởi ngƣời có kiến thức kỹ thuật sâu về các công cụ và kỹ thuật của Hacker. 1.3.7. Báo cáo kiểm thử an ninh Bản báo cáo cuối cùng luôn luôn là khía cạnh quan trọng nhất của bất kì bài kiểm thử an ninh nào. Báo cáo là văn bản tổng hợp liệt kê đƣa ra các thông tin nhƣ các loại lỗ hổng bảo mật nào đƣợc phát hiện, cách chúng đƣợc phát hiện và cách để có thể sửa chúng. Một bài báo cáo đƣợc viết tốt, đƣợc tất cả mọi ngƣời hiểu, là mục tiêu cuối cùng của một bài kiểm thử an ninh. Bởi vì nếu báo cáo không đƣợc làm cẩn thận hay thậm chí không có báo cáo thì chủ sở hữu hệ thống và các bên liên quan khác sẽ không có cách nào để biết liệu hệ thống của họ có an toàn hay không. Bên cạnh thách thức về kỹ thuật xâm nhập vào hệ thống máy tính, viết một bài báo cáo tốt là công việc khó khăn đối với ngay cả chuyên gia bảo mật dày dạn kinh nghiệm nhất. 16 Kiểm thử an ninh sẽ đem lại kết quả tốt nhất nếu ngƣời kiểm thử tuân theo quy trình đã đƣợc thiết lập. Có một thói quen đƣợc thiết lập sẽ không chỉ tạo ra một bài kiểm tra bảo mật chất lƣợng cao hơn, mà còn giúp việc hoàn thành dự án đúng hạn dễ dàng hơn. Mỗi bƣớc của quy trình (xem Hình 1.1), nên đƣợc ký tắt trƣớc khi dự án chuyển sang bƣớc tiếp theo. Mặc dù bản thân ngƣời kiểm thử có thể nhảy thẳng đến bƣớc thực thi kiểm thử (nơi diễn ra vụ hack thực tế), nhƣng điều quan trọng cần nhớ là mọi bƣớc của quy trình đều quan trọng nhƣ nhau. Thực hiện từng bƣớc theo quy trình sẽ đảm bảo rằng tất cả mọi ngƣời tham gia vào dự án đều biết những gì đang diễn ra và nhận đƣợc kết quả mong đợi từ phần quan trọng nhất đối với mỗi bài kiểm thử chính là bản báo cáo cuối cùng. Thông qua chƣơng này của luận văn chúng ta có thể hiểu khái quát về kiểm thử an ninh cũng nhƣ phần quan trọng nhất trong mỗi bài kiểm thử chính là báo cáo (Report). Chƣơng sau sẽ trình bày tổng quan về Metasploit, Metasploit Framework, cấu trúc và các tính năng của chúng. 17 CHƢƠNG 2: TỔNG QUAN VỀ METASPLOIT 2.1. Khái niệm cơ bản Metasploit hay còn có thể gọi là Metasploit Project là một dự án liên quan đến bảo mật máy tính, cung cấp những thông tin về các lỗ hổng bảo mật. Đối tƣợng nhắm đến của Metasploit chính là những quá trình tấn công xâm nhập kiểm thử (Penetration Testing) và phát triển các hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS) Metasploit đƣợc tích hợp sẵn trong hệ điều hành Kali Linux. Nó cũng có thể đƣợc tải xuống từ địa chỉ web của nhà phát triển: https://www.rapid7.com/products/metasploit/. 2.2. Lịch sử Metasploit Metasploit ra đời vào năm 2003 bởi tác giả H. D. Moore đƣợc viết trên nền tảng ngôn ngữ Perl sau này là Ruby, ban đầu nó đƣợc xem nhƣ là các công cụ dạng Portable dành cho mạng máy tính. Mãi cho đến ngày 21 tháng 09 năm 2009, Metasploit đã đƣợc mua lại bởi Rapid7, một công ty bảo mật chuyên cung cấp những giải pháp về quản lý lỗ hổng. Cũng giống nhƣ những sản phẩm thƣơng mại “Canvas” của Immunity, “Core Impact” của Core Security Technologies. Metsploit cũng đƣợc sử dụng để kiểm tra lỗ hổng bảo mật của những hệ thống máy tính hoặc xâm nhập vào những hệ thống từ xa. Metasploit có thể đƣợc dùng vào các hoạt động hợp pháp hoặc không hợp pháp, nó dần trở nên nổi tiếng và đƣợc biết đến nhƣ là một Framework cho việc phát triển những module khai thác, tấn công lỗ hổng bảo mật. Mỗi một Module đƣợc phát triển từ bên thứ ba (Third-Party) đều đƣợc đi kèm với những khuyến cáo để nhằm nêu bật đƣợc khả năng khai thác, mức độ rủi ro và cách khắc phục lỗ hổng chứ không chỉ tập trung vào khai thác lỗ hổng. Từ phiên bản Metasploit 3.0 đƣợc tích hợp thêm những công cụ giúp phát hiện các lỗi bảo mật trong phần mềm. Vào tháng 8 năm 2011 thì phiên bản Metasploit 4.0 đƣợc phát hành và đƣợc sử dụng cho đến nay, đặc biệt là có hỗ trợ trên rất nhiều các nền tảng khác nhau nhƣ : Linux, Windows, Unixvv 18 2.3. Các phiên bản của Metasploit Hiện nay trải qua một thời gian dài sừa đổi và phát triển thì Metasploit có những phiên bản sau: Metasploit Community Edition Vào tháng 10 năm 2011 thì Rapid7 phát hành Metasploit Community Edition, một phiên bản miễn phí, có giao diện web cho ngƣời dùng. Phiên bản này đƣợc phát triển dựa vào những tính năng của phiên bản có trả phí, chỉ có điều phiên bản này đã bị bỏ đi một số tính năng “network discovery/ module browsing/manual exploitation”. Phiên bản này phù hợp với các công ty nhỏ và sinh viên. Hình 2. 1 Metasploit Community Edition 19 Metasploit Pro Tháng 10 năm 2010, Rapid7 đã phát hành Metasploit Pro, một phiên bản thƣơng mại. Có thể nói đây là một phiên bản mạnh mẽ nhất của Metasploit, nó bao gồm tất cả các tính năng của Metasploit Express và phát triển thêm các tính năng ƣu việt khác nhƣ “Quick Start Wizards/MetaModules” , xây dựng và quản lý những hoạt động tấn công sử dụng kỹ nghệ xã hội (Social Engineering), kiểm thử ứng dụng Web, tạo các Payload một cách tự động để tránh sự phát hiện của các phần mềm Anti-Virus, tích hợp cả công cụ mạnh mẽ Nexpose cho việc quét lỗ hổng trên mạng, sử dụng kỹ thuật “VPN pivoting”. Và có một điểm khác biệt nữa là phiên bản Pro hỗ trợ cả chế độ dòng lệnh và giao diện ngƣời dùng. Phiên bản này hiện tại thì có giá cao nhất so với các phiên bản khác, phù hợp cho những ngƣời thực hiện kiểm thử xâm nhập, những nhóm bảo mật. Hình 2. 2 Metasploit Pro Và cuối cùng là phiên bản Metsploit Framework. Vì đây là phiên bản sẽ đƣợc sử dụng chính ở luận văn này nên sẽ đƣợc trình bày chi tiết ở mục tiếp theo. 20 2.4. Metasploit Framework Hình 2. 3 Metasploit Framework 2.4.1. Tổng quan về Metasploit Framework Trái ngƣợc hoàn toàn với các phiên bản khác của Metasploit thì Metasploit Framework chỉ có duy nhất một chế độ giao diện dòng lệnh, mọi thao tác đều thông qua dòng lệnh. Có một điều đặc biệt thì đây là phiên bản mã nguồn mở và hoàn toàn miễn phí, rất phù hợp cho việc phát triển và nghiên cứu. Nhƣợc điểm của phiên bản này là hầu nhƣ chỉ có một số tính năng cơ bản, không đƣợc cập nhật nhƣ những phiên bản khác. Chính vì vậy việc phát triển, tích hợp các tính năng mới vào Metasploit Framework là rất cần thiết, phù hợp với những nhu cầu, nhiệm vụ khi mà có giới hạn về mặt chi phí. Tuy có nhiều hạn chế về những tính năng ƣu việt thì phiên bản này có thể coi là công cụ không thể thiếu của những nhà nghiên cứu bảo mật chuyên nghiệp, những ngƣời kiểm thử xâm nhập và đƣợc giới Hacker rất ƣa chuộng. Nhà phát triển Rapid7 đã thống kê các tính năng đƣợc tích hợp sẵn trong phiên bản miễn phí Metasploit Framework, đồng thời so sánh với các tính năng có trong phiên bản cao cấp nhất Metasploit Pro (xem Hình 2.4-2.5-2.6). 21 Tính năng tích hợp hỗ trợ giao tiếp với bên ngoài Hình 2. 4 Tính năng tích hợp hỗ trợ giao tiếp với bên ngoài Tính năng tự động Hình 2. 5 Tính năng tự động 22 Tính năng xâm nhập Hình 2. 6 Tính năng xâm nhập Qua bảng so sánh trên có thể thấy rằng các tính năng của Metasploit Framework hạn chế hơn rất nhiều so với các phiên bản khác nhƣ giao diện kém thân thiện, không có tính năng tự động mọi thứ đều thao tác thủ công, thậm chí còn thiếu đi tính năng tạo báo cáo sau mỗi lần kiểm thử. 23 2.4.2. Cấu trúc của Metasploit Framework Luận văn này sẽ sử dụng phiên bản Metasploit Framewok nên kể từ mục này trở đi Metasploit Framework sẽ đƣợc viết tắt là MSF. Hình 2. 7 Cấu trúc của Metasploit Framework 24 MSF có thể chia thành hai thành phần chính.  MSF Filesystem o Data: chứa các File có thể chỉnh sửa đƣợc. o Lib: chứa các thƣ viện cơ sở. o Modules: nơi chứa các Module thực sự của MSF . o Scripts: chứa Meterpreter và các Script khác. o Plugins: gồm các Plugin có thể tải vào trong quá trình chạy. o Tools: chứa một vài tiện ích dòng lệnh hữu dụng.  MSF Libraries o Rex : chứa các thƣ viện cơ bản cho mọi tác vụ của MSF. o Msf:Core: cung cấp một API cho việc phát triển mã khai thác. o Msf:Base: cung cấp một API thân thiện cho việc phát triển giao diện. 2.4.3. Quy trình kiểm thử trên Metasploit Framework Nhƣ chúng ta đã biết thì MSF đƣợc dùng cho việc nghiên cứu bảo mật, tấn công xâm nhập, đánh giá bảo mật. MSF sử dụng hệ quản trị cở sở dữ liệu PostgreSQL để lƣu trữ một số cấu hình, Payload phục vụ cho những nhiệm vụ khác nhau. Quá trình kiểm thử trên MSF sẽ gồm các bƣớc sau: Bƣớc 1: Phát hiện mục tiêu và thu thập thông tin (chủ yếu sử dụng Module Auxiliary/Scanner và các công cụ dò quét khác nhƣ Nmap đƣợc tích hợp). Bƣớc 2: Lựa chọn mục tiêu để tấn công. Bƣớc 3: Tìm kiếm những lỗ hổng và mã khai thác liên quan đến mục tiêu (chủ yếu sử dụng các Module Auxiliary phù hợp với dịch vụ đã phát hiện ra). Bƣớc 4: Thực hiên tấn công xâm nhập thông qua các lỗ hổng đã đƣợc xác thực tồn tại. Bƣớc 5: Tiến hành triển khai các mã độc và duy trì kết nối sau khi xâm nhập thành công. Bƣớc 6: Dọn dẹp các chứng cứ. Tùy thuộc vào đặc thù của mỗi phiên kiểm thử mà quy trình thực hiện có thể đƣợc thay đổi. Tuy nhiên trong quy trình kiểm thử tối thiểu cần phải có thêm bƣớc tạo báo cáo, đây là bƣớc có ý nghĩa rất lớn trong quản trị an toàn thông tin và cũng là tính năng chúng tôi muốn mở rộng thêm cho MSF. Chƣơng sau của luận văn sẽ trình bày chi tiết về các bƣớc cũng nhƣ cách để mở rộng thêm tính năng tạo báo cáo trên MSF. 25 CHƢƠNG 3: MỞ RỘNG TÍNH NĂNG TẠO BÁO CÁO CHO METASPLOIT FRAMEWORK Để tạo ra đƣợc một bản báo cáo đầy đủ và đáp ứng đƣợc các yêu cầu chuẩn mực quốc tế, chúng tôi sẽ tham khảo định dạng và phƣơng pháp tạo báo cáo đƣợc đề xuất của nhà phát triển Rapid7 trên phiên bản cao cấp nhất đƣợc toàn thế giới công nhận là Metasploit Pro. https://metasploit.help.rapid7.com/docs/about-reports. Hình 3. 1: Đề xuất báo cáo trên Metasploit Pro Dựa vào cấu trúc của MSF (Hình 2.7) và đề xuất của nhà phát triển Metasploit là Rapid7 (xem Hình 3.1) về việc mở rộng thêm tính năng cho công cụ này, tôi sẽ tạo một công cụ xuất báo cáo theo dạng Plugin mở rộng, sử dụng ngôn ngữ Ruby và tƣơng tác thông qua giao diện CLI. Ngôn ngữ đƣợc sử dụng ở đây là Ruby 2.5.0 giống nhƣ phiên bản đang đƣợc sử dụng trên MSF phiên bản 5. Để phù hợp với hoạt động của Framework, công cụ báo cáo đƣợc xây dựng để tích hợp vào trong Framework thay vì phát triển một ứng dụng độc lập. 26 Công cụ sẽ đƣợc móc vào Framework và đƣợc sử dụng nhƣ một hệ thống rời, vừa có thể thực hiện đƣợc lời gọi các hàm từ Framework vừa có thể chạy độc lập các hàm mở rộng. Vì sử dụng trong Framework nên giao diện đƣợc sử dụng là giao diện dòng lệnh, giống cách mà các kiểm thử viên sử dụng Framework. Điểm đặc biệt là có thể sử dụng để tạo báo cáo ngay trên các phiên bản Linux chỉ sử dụng giao diện dòng lệnh thay vì cần thực hiện thông qua một Web Server ở một máy chủ khác. Công cụ tƣơng tác với Framework thông qua giao diện Plugin thuộc lớp giao diện đƣợc dựng sẵn của Framework dành cho các công cụ tích hợp bên ngoài mà không thuộc phân loại công cụ tấn công nhƣ Auxiliary, Payload, Encoder hay Exploit, .v.v. Tiếp theo sẽ là các bƣớc chi tiết của quá trình phát triển và mở rộng tính năng cho MSF. 3.1. Xác định chuẩn báo cáo trong Metasploit Pro Để đảm bảo tính đầy đủ và hoàn thiện nhất tôi sẽ tạo báo cáo cho MSF theo tiêu chuẩn đƣợc mô tả trên Metasploit Pro, bao gồm hai chuẩn là chuẩn PCI và FISMA (xem Hình 3.2). Hình 3. 2: Chuẩn báo cáo trong Metasploit Pro 27 3.1.1. Chuẩn PCI Chuẩn này đƣợc đƣa ra bởi Hội đồng Tiêu chuẩn Bảo mật PCI (bao gồm các thành viên là các tổ chức thẻ quốc tế: Visa, MasterCard, American Express, Discover Financial Services, JCB International. Mục đích của PCI DSS là bảo đảm an toàn cho dữ liệu thẻ khi đƣợc xử lý và lƣu trữ tại các ngân hàng hoặc doanh nghiệp thanh toán điện tử. Theo đó, tất cả mọi tổ chức có liên quan đến việc truyền tải, xử lý và lƣu trữ dữ liệu thẻ thanh toán (đƣợc gọi là “Cardholder Data”) đều phải tuân thủ theo tiêu chuẩn PCI DSS. PCI DSS yêu cầu hệ thống các yêu cầu để đáp ứng các chuẩn mực về an ninh, chính sách, quy trình, cấu trúc mạng, hệ thống phần mềm và một số yếu tố khác. Tập hợp các chuẩn mực này định hƣớng cho các ngân hàng hoặc doanh nghiệp về thanh toán đảm bảo an ninh cho dữ liệu của thẻ thanh toán. Báo cáo dựa theo chuẩn này sẽ cho ta biết các nội dung thu thập đƣợc theo yêu cầu của chuẩn bảo mật dữ liệu công nghiệp cho thẻ thanh toán PCI-DSS 2.0, PCI bao gồm 12 yêu cầu cụ thể chia thành 6 nhóm chính:  Xây dựng và duy trì một mạng lƣới an toàn.  Bảo vệ dữ liệu chủ thẻ.  Duy trì chƣơng trình quản lý lỗ hổng.  Thực hiện các biện pháp kiểm soát truy cập.  Giám sát và kiểm tra mạng thƣờng xuyên.  Bảo trì chính sách an ninh thông tin. 3.1.2. Chuẩn FISMA Là một đạo luật về an ninh mạng đƣợc cơ quan liên bang Mỹ đề xuất nhằm thực hiện các quy trình và kiểm soát hệ thống, bảo vệ tính bảo mật của dữ liệu và hệ thống thông tin. Luật này bảo vệ mạng lƣới hạ tầng quốc gia, và kêu gọi tăng cƣờng nỗ lực bảo vệ an ninh thông tin cho tất cả các công dân, các cơ quan an ninh quốc gia và cơ quan thực thi pháp luật. FISMA dựa trên một bộ tiêu chuẩn và khuyến nghị từ Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST). NIST xây dựng các tiêu chuẩn và hƣớng dẫn trong văn bản SP800-53rev4, mà các cơ quan có thể sử dụng để xây dựng các chƣơng trình tuân thủ theo luật FISMA. Các hƣớng dẫn đƣợc phát triển bởi NIST xác định các yêu cầu tối thiểu để quản lý, vận hành, kiểm soát hệ thống thông tin. Báo cáo loại này bao gồm các mục:  AC7- Kiểm soát truy cập.  AT-2- Đào tạo nâng cao nhận thức.  CM-7- Quản lý cài đặt.  IA-2,IA-5,IA-7- Định danh và xác thực. 28  RA-5- Xác định rủi ro.  SI-2,SI-10- Đúng đắn của hệ thống và thông tin. 3.2. Xác định các loại báo trên Metasploit Pro Ngoài hai chuẩn chính trên tôi tiến hành tham khảo thêm các dạng báo cáo đƣợc tích hợp trong phiên bản Pro (xem Hình 3.3), đồng thời sàng lọc để lựa chọn các dạng báo cáo phù hợp với các thông tin có thể thu thập đƣợc trong phiên bản Framework. Hình 3. 3: Các loại báo trên Metasploit Pro  Báo cáo kiểm định Bao gồm các thông tin về : o Phát hiện chính: Phần này trình bày các thông tin về máy chủ, thống kê hệ điều hành số lỗ hổng đã phát hiện và dữ liệu thông tin có thể bị tấn công thu thập thông qua các bảng và biểu đồ. o Phát hiện chi tiết: Phần này liệt kê chi tiết các thông tin của từng máy, các thông tin tài khoản, các dịch vụ và các lỗ hổng, các mã khai thác có thể dùng để xâm nhập thiết bị  Báo cáo chứng chỉ đăng nhập Bao gồm các thông tin về các tài khoản thu thập đƣợc, có thể ở dạng văn bản rõ, bản mật khẩu băm, khoá xác thực SSH. Báo cáo này bao gồm thông tin về: o Các chứng chỉ. o Các tài khoản đăng nhập. o Thông tin về máy chủ. o Dịch vụ.  Các báo cáo khác o Báo cáo thu thập chứng cứ. o Báo cáo hoạt động. o Báo cáo thiết bị chứa lỗ hổng. o Báo cáo về dịch vụ. 29 Các báo cáo này đƣợc gộp chung lại vì có các điểm chung là sử dụng các nhóm thông tin giống nhau nhƣ các mã đã sử dụng, các máy chủ, các chứng chỉ, các dịch vụ và kết nối thu thập đƣợc. Sau khi xác định đƣợc các chuẩn cùng dạng báo cáo tôi tiếp tục thiết kế công cụ để đáp ứng đƣợc các chuẩn báo cáo trên. 3.3. Chuẩn bị dữ liệu để kết xuất Để thực hiện việc xây dựng một bản báo cáo có độ chi tiết tốt, chúng tôi cần có một bộ dữ liệu mẫu sử dụng cho báo cáo, phục vụ mục đích kiểm thử và đánh giá mức độ hoàn thiện của báo cáo xây dựng đƣợc. Phần chuẩn bị dữ liệu này bao gồm hai phần, chuẩn bị dữ liệu tấn công kiểm thử làm nội dung cho báo cáo và chuẩn bị các bản báo cáo mẫu từ phiên bản Pro dựa trên dữ liệu tấn công kiểm thử đó để đối sánh mức độ hoàn thiện của báo cáo đƣợc tạo ra. 3.3.1. Chuẩn bị dữ liệu tấn công kiểm thử Để có bộ dữ liệu tấn công kiểm thử một cách hợp pháp, tôi sử dụng máy ảo Metasploitable 2 , là phiên bản máy ảo đƣợc cài sẵn các dịch vụ chứa nhiều lỗ hổng bảo mật, chuyên dụng cho việc tấn công kiểm thử bằng công cụ MSF. Về Metasploitable, phiên bản 2, là một sản phẩm khác đƣợc phát triển bởi Rapid7, phiên bản mới nhất là Metasploitable 3 nhƣng chƣa ổn định và đang trong giai đoạn phát triển, nên chúng tôi sử dụng bản Metasploitable 2 để có thể dễ dàng đạt đƣợc các kết quả tấn công nhiều nhất có thể. Phiên bản có thể đƣợc tải về thông qua địa chỉ Web : https://sourceforge.net/projects/metasploitable/files/Metasploitable2/ Sản phẩm chạy đƣợc trên các phần mềm ảo hoá phổ biến nhƣ Oracle Virtualbox, VMWare Player/Workstation, .v.v. 3.3.2. Tấn công kiểm thử Để tấn công các lỗ hổng có trên Metasploitable 2, chúng tôi sử dụng công cụ Armitage, là một phiên bản của MSF đƣợc thiết kế với giao diện dễ sử dụng, tích hợp nhiều tính năng đƣợc lập trình sẵn giúp rút ngắn thời gian tấn công. Armigate có sẵn trong bản phân phối Kali Linux. 30 Thực hiện quét phát hiện mục tiêu (xem Hình 3.4). Hình 3. 4 Quét mục tiêu trên Armitage 31 Thực hiện tấn công bằng chế độ Hail Mary, tự động dò quét và tấn công tất cả các lỗ hổng có thể (xem Hình 3.5). Hình 3. 5 Tấn công bằng chế độ Hail Mary 32 Sau đó tiếp tục tấn công bằng các Exploit tìm đƣợc (xem Hình 3.6). Hình 3. 6 Tấn công bằng các Exploit tìm đƣợc 33 Sau khi tấn công xong chúng tôi tiến hành đƣa ra kết quả tấn công dƣới định dạng XML (xem Hình 3.7). Hình 3. 7 Tạo kết quả tấn công dƣới định dạng XML 34 Từ bản XML này chúng tôi sẽ nhập vào phiên bản Pro để tạo báo cáo thử. Sau khi sử dụng công cụ Metasploit Pro, chúng tôi đã thu đƣợc các mẫu báo cáo dựa trên bộ dữ liệu vừa xuất từ cơ sở dữ liệu trên, nhƣ báo cáo mức độ tuân thủ chuẩn PCI DSS (xem Hình 3.8), báo cáo kiểm định, báo cáo dịch vụ, báo cáo tổng hợp, . . . Hình 3. 8 Báo cáo chuẩn PCI DSS trên Metasploit Pro Sau khi có dữ liệu dựng báo cáo và mẫu báo cáo từ phiên bản Pro, tiếp theo luận văn sẽ trình bày chi tiết về thiết kế cho công cụ tạo báo cáo. 35 3.4. Thiết kế công cụ tạo báo cáo 3.4.1. Phân tích 3.4.1.1. Phân tích quy trình tạo báo cáo Trƣờng hợp 1: Chuyên viên kiểm thử an toàn thông tin thực hiện tấn công và thu thập thông tin về các đối tƣợng đang quan tâm. Dữ liệu đƣợc lƣu trong Database của Framework trên máy có cài đặt Framework hoặc trên một Server Database khác. Chuyên viên sử dụng dữ liệu đó để tạo báo cáo. Trƣờng hợp 2: Chuyên viên sau khi thực hiện kiểm thử an toàn thông tin, tổng hợp dữ liệu tấn công kiểm thử về một nguồn đƣợc cấp phép, thực hiện tạo báo cáo theo yêu cầu. Sơ đồ ngữ cảnh sử dụng (xem Hình 3.9) Hình 3. 9 Sơ đồ ngữ cảnh sử dụng 36 Dựa vào lƣợc đồ trên có thể phân tích các chức năng chính của công cụ (xem Hình 3.10). Hình 3. 10 Các chức năng chính của công cụ. 37 3.4.1.2. Phân tích yêu cầu hệ thống Công cụ cần đƣợc cài đặt với MSF, đặt trong thƣ mục chứa Plugin theo hai dạng yêu cầu là chức năng và phi chức năng. Yêu cầu chức năng  Quản lý các gói dữ liệu o Nhập gói dữ liệu từ Framework để sử dụng.  Công cụ cần thu thập đƣợc dữ liệu tấn công kiểm thử của MSF. o Nhập gói dữ liệu từ nguồn bên ngoài.  Công cụ cần đọc đƣợc chuẩn nhập/xuất dữ liệu database của MSF. XML. o Xoá các gói dữ liệu.  Cấu hình cho báo cáo o Lựa chọn đƣợc định dạng báo cáo. o Lựa chọn đƣợc chuẩn báo cáo. o Lựa chọn đƣợc gói dữ liệu sử dụng trong báo cáo.  Tạo báo cáo theo các chuẩn và định dạng đã cấu hình o Định dạng HTML/PDF. o Chuẩn báo cáo PCI DSS Compliance/Audit/Network Services. Yêu cầu phi chức năng  Chất lƣợng: Công cụ cần đạt tiêu chuẩn thiết kế theo hƣớng dẫn của MSF cho việc phát triển Module mở rộng.  Yêu cầu tiến trình o Môi trƣờng  Chạy đƣợc trên mọi hệ điều hành có hỗ trợ MSF.  Chạy đƣợc ngay cả khi không có kết nối Database. o Ngôn ngữ lập trình: Ruby phiên bản 2.5.3 đã đƣợc đóng gói kèm Framework. o Ràng buộc: Không đƣợc can thiệp vào danh sách Gem sử dụng cho Framework. o Độ tin cậy: Báo cáo kết xuất ra cần đạt tiêu chuẩn đƣợc định nghĩa trong các tài liệu mô tả tiêu chuẩn báo cáo tuân thủ quốc tế hoặc tiêu chuẩn báo cáo của Metasploit.  Sản phẩm: o Giao diện  Đẹp mắt, giống với giao diện CLI của

Các file đính kèm theo tài liệu này:

  • pdfluan_van_xay_dung_thu_nghiem_cong_cu_phat_hien_va_khai_thac.pdf
Tài liệu liên quan