Tài liệu 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

  • Số trang: 62 |
  • Loại file: PDF |
  • Lượt xem: 141 |
  • Lượt tải: 0

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ KIỀU PHI HÙNG 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 Ngành: Công nghệ Thông tin Chuyên ngành: An toàn Thông tin Mã số: 8480202.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: GS.TS. NGUYỄN THANH THỦY Hà Nội - 2019 2 LỜI CẢM ƠN Đầu tiên tôi xin bày tỏ lòng cảm ơn chân thành và sâu sắc nhất đến GS.TS. Nguyễn Thanh Thủy vì sự hƣớng dẫn và chỉ bảo tận tình cùng với những định hƣớng, những lời khuyên, những kiến thức vô cùng quý giá của Thầy trong quá trình em theo học cũng nhƣ làm luận văn tốt nghiệp. Tôi xin đƣợc gửi lời cảm ơn tới các Thầy Cô trong khoa Công nghệ thông tin – trƣờng Đại học Công Nghệ - Đại học Quốc gia Hà Nội nói chung cũng nhƣ các thầy cô trong bộ môn An toàn thông tin nói riêng đã tận tình giảng dạy, trang bị cho tôi những kiến thức quý báu trong quá trình tôi theo học tại khoa. Đây cũng chính là tiền đề để tôi có đƣợc những kiến thức cần thiết để hoàn thành luận văn này. Cuối cùng, tôi cũng xin đƣợc gửi lời cảm ơn tới các Thầy Cô giáo cùng các anh chị em bạn bè đang theo học tại bộ môn An toàn thông tin đã rất tận tình chỉ bảo và tạo điều kiện tốt nhất để tôi đƣợc làm việc trên bộ môn với đầy đủ trang thiết bị cần thiết để tôi có thể hoàn thành tốt nhất luận văn này. Mặc dù đã rất cố gắng nhƣng luận văn chắc chắn không tránh khỏi những thiếu sót, tôi rất mong nhận đƣợc những ý kiến đánh giá và phê bình từ phía các Thầy Cô để luận văn đƣợc hoàn thiện hơn. Tôi xin chân thành cảm ơn! Hà nội, tháng 05 năm 2019 Học viên Kiều Phi Hùng 3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp với đề tài “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” đây là công trình nghiên cứu của riêng tôi dƣới sự hƣớng dẫn của GS.TS. Nguyễn Thanh Thủy. Các kết quả tôi trình bày trong luận văn là hoàn toàn trung thực và chƣa từng đƣợc nộp nhƣ một khóa luận, luận văn hay luận án tại trƣờng Đại học Công Nghệ - Đại học Quốc gia Hà Nội hoặc bất kỳ trƣờng đại học nào khác. Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, các công trình nghiên cứu liên quan trong nƣớc và quốc tế trong phần tài liệu tham khảo. Ngoại trừ các tài liệu tham khảo này, luận văn này hoàn toàn là công việc của riêng tôi. Nếu có bất cứ phát hiện nào về sự gian lận sao chép tài liệu, công trình nghiên cứu của tác giả khác mà không ghi rõ trong phần tài liệu tham khảo, tôi xin chịu hoàn toàn trách nhiệm về kết quả luận văn của mình. Hà Nội, tháng 05 năm 2019 Học viên Kiều Phi Hùng 4 MỤC LỤC 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 5 3.1. Xác định chuẩn báo cáo trong Metasploit Pro ....................................................... 26 3.1.1. Chuẩn PCI ...................................................................................................... 27 3.1.2. Chuẩn FISMA ................................................................................................ 27 3.2. Xác định các loại báo trên Metasploit Pro ............................................................. 28 3.3. Chuẩn bị dữ liệu để kết xuất ................................................................................. 29 3.3.1. Chuẩn bị dữ liệu tấn công kiểm thử ................................................................ 29 3.3.2. Tấn công kiểm thử .......................................................................................... 29 3.4. Thiết kế công cụ tạo báo cáo ................................................................................. 35 3.4.1. Phân tích......................................................................................................... 35 3.4.2. Đƣa ra giải pháp ............................................................................................. 38 3.4.3. Thiết kế Logic ................................................................................................ 39 3.5. Viết chƣơng trình và chạy thử nghiệm công cụ ..................................................... 45 3.5.1. Viết chƣơng trình ........................................................................................... 45 3.5.2. Chạy thử nghiệm công cụ ............................................................................... 49 3.5.3. Kết quả đạt đƣợc ............................................................................................ 54 CHƢƠNG 4: KÊT LUẬN .............................................................................................. 60 TÀI LIỆU THAM KHẢO............................................................................................... 61 6 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ký hiệu Ý nghĩa Thuật ngữ Code Mã (trong phần mềm) Database Cơ sở dữ liệu Exploit Mã tìm kiếm lỗ hổng, các điểm yếu, back door.. Gói thƣ viện sẵn có trên trang Gem Rubygem Hacker Tin tặc Hash Kiểu dữ liệu dạng từ điển HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản IDS Intrusion Detection System Hệ thống phát hiện xâm nhập Meterpreter Mã khai thác khi xâm nhập thành công MSF PDF Metasploit Framework Portable Document Format Định dạng tài liệu di động Hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL và đối tƣợng XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng 7 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1. 1 Quy trình kiểm thử an ninh.............................................................................. 12 Hình 2. 1 Metasploit Community Edition ....................................................................... 18 Hình 2. 2 Metasploit Pro ................................................................................................. 19 Hình 2. 3 Metasploit Framework .................................................................................... 20 Hình 2. 4 Tính năng tích hợp hỗ trợ giao tiếp với bên ngoài............................................ 21 Hình 2. 5 Tính năng tự động ........................................................................................... 21 Hình 2. 6 Tính năng xâm nhập ........................................................................................ 22 Hình 2. 7 Cấu trúc của Metasploit Framework ................................................................ 23 Hình 3. 1: Đề xuất báo cáo trên Metasploit Pro ............................................................... 25 Hình 3. 2: Chuẩn báo cáo trong Metasploit Pro ............................................................... 26 Hình 3. 3: Các loại báo trên Metasploit Pro..................................................................... 28 Hình 3. 4 Quét mục tiêu trên Armitage ........................................................................... 30 Hình 3. 5 Tấn công bằng chế độ Hail Mary ..................................................................... 31 Hình 3. 6 Tấn công bằng các Exploit tìm đƣợc ............................................................... 32 Hình 3. 7 Tạo kết quả tấn công dƣới định dạng XML ..................................................... 33 Hình 3. 8 Báo cáo chuẩn PCI DSS trên Metasploit Pro ................................................... 34 Hình 3. 9 Sơ đồ ngữ cảnh sử dụng .................................................................................. 35 Hình 3. 10 Các chức năng chính của công cụ. ................................................................. 36 Hình 3. 11 Sơ đồ luồng dữ liệu ....................................................................................... 41 Hình 3. 12 File ruby report.rb ......................................................................................... 42 Hình 3. 13 Thƣ mục Report_engine ................................................................................ 42 Hình 3. 14 Cấu trúc module công cụ ............................................................................... 43 Hình 3. 15 Thiết kế vật lý ............................................................................................... 45 Hình 3. 16 Đọc thông tin Host ........................................................................................ 46 Hình 3. 17 Đọc thông tin dịch vụ, lỗ hổng. ..................................................................... 47 Hình 3. 18 Danh sách lệnh .............................................................................................. 48 Hình 3. 19 Khởi động Plugin .......................................................................................... 49 Hình 3. 20 Lệnh Report_banner ...................................................................................... 50 Hình 3. 21 Lệnh Check_db ............................................................................................. 50 Hình 3. 22 Lệnh Check_report ........................................................................................ 50 Hình 3. 23 Lệnh Check_status ........................................................................................ 51 Hình 3. 24 Lệnh Use_datapack ....................................................................................... 51 8 Hình 3. 25 Lệnh Unuse_datapack ................................................................................... 52 Hình 3. 26 Lệnh Remove_datapack ................................................................................ 52 Hình 3. 27 Lệnh Collect_info.......................................................................................... 53 Hình 3. 28 Lệnh Gen_report ........................................................................................... 53 Hình 3. 29 File báo cáo ................................................................................................... 54 Hình 3. 30 Báo cáo kiểm định thu đƣợc .......................................................................... 55 Hình 3. 31 Báo cáo dịch vụ thu đƣợc .............................................................................. 56 Hình 3. 32 Báo cáo tuân thủ chuẩn PCI thu đƣợc ............................................................ 57 9 TÓM TẮT Trong thời đại công nghệ thông tin phát triển nhƣ hiện nay thì vấn đề về đảm bảo an toàn, an ninh thông tin luôn đƣợc đặt lên hàng đầu, trong đó phƣơng pháp kiểm thử an ninh luôn đƣợc sử dụng phổ biến nhất nhằm xác định các mối đe dọa trong hệ thống và các lỗ hổng tiềm tàng của nó. Việc này vừa giúp hệ thống khỏi các nguy cơ liên quan đến bảo mật, vừa giúp các nhà phát triển khắc phuc những vấn đề còn tồn đọng trong thiết kế. Hiện nay rất nhiều các công cụ phần mềm đƣợc ra đời nhằm thực hiện và hỗ trợ việc kiểm thử an ninh này, tuy nhiên nổi bật nhất phổ biến nhất đƣợc hầu hết các chuyên gia bảo mật đánh giá cao và sử dụng chính là Metasploit hay còn có thể gọi là Metasploit Project. Đây 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 hiện nay đã phát triển ra nhiều phiên bản khác nhau, nếu muốn sử dụng phiên bản tốt nhất với tất cả các tính năng ƣu việt nhất thì bạn phải trả chi phí sử dụng hàng năm rất lớn (khoảng 7000$-8000$/ năm) còn nếu không đủ khả năng chi trả thì chỉ có thể sử dụng phiên bản miễn phí với giao diện dòng lệnh, thiếu đi rất nhiều các tính năng hữu ích và quan trọng. Do đó mục đích của chúng tôi là phát triển mở rộng thêm tính năng tạo báo cáo về kết quả của các phiên kiểm thử an ninh theo định dạng PDF và HTML cho phiên bản mã nguồn mở miễn phí của Metasploit , vốn là một tính năng chỉ có trong phiên bản thƣơng mại đắt tiền nhất của Metasploit Pro. 10 GIỚI THIỆU Hiện nay vấn đề về mất an toàn thông tin trên các hệ thống thông tin, hệ thống mạng và không gian mạng đƣợc quan tâm rất lớn trên toàn thế giới. Trong những năm gần đây chúng ta đã chứng kiến những cuộc tấn công mạng, sự cố mạng quy mô cực kì lớn, các tin tặc đã lợi dụng các lỗ hổng trong hệ thống để đánh cắp dữ liệu mật hay trực tiếp tống tiền trên quy mô toàn cầu. Do đó để giúp hệ thống tránh khỏi các nguy cơ liên quan đến bảo mật, đồng thời giúp các nhà phát triển khắc phục những vấn đề còn tồn đọng trong thiết kế thì phƣơng pháp kiểm thử an ninh đƣợc áp dụng và sử dụng phổ biến nhất. Để thực hiện kiểm thử một cách tốt nhất đem lại kết quả cao nhất thì rất nhiều bộ công cụ hay phần mềm hỗ trợ và thực thi kiểm thử đƣợc ra đời. Hiện nay nổi bật nhất phổ biến nhất đƣợc hầu hết các chuyên gia bảo mật đánh giá cao và sử dụng chính là Metasploit. Công cụ này cung cấp cho ta các chức năng để do thám kiểm tra và tấn công các lỗ hổng của hệ thống máy tính hoặc xâm nhập vào các hệ thống từ xa. Metasploit hiện nay đã phát triển ra nhiều phiên bản khác nhau, với phiên bản cao cấp nhất là Metasploit Pro đem lại cho ngƣời dùng tất cả các tính năng tốt nhất nhƣ tính tự động, giao diện thân thiện, tạo báo cáo..vv.. phục vụ cho việc kiểm thử an ninh. Tuy nhiên để sử dụng phiên bản này thì bạn phải trả chi phí hàng năm rất lớn (khoảng 7000$8000$/ năm). Ngoài ra còn có phiên bản Metasploit Framework, đây là phiên bản miễn phí mã nguồn mở với các chức năng chính tập trung vào các Module tấn công, giao diện dòng lệnh kém thân thiện với ngƣời dùng, không có tính năng tự động, các bƣớc làm đều phải làm thủ công..vv.. Chính vì vậy tôi sẽ phát triển mở rộng thêm tính năng tạo báo cáo về kết quả của các phiên kiểm thử an ninh theo định dạng PDF và HTML cho phiên bản miễn phí này, vốn là một tính năng chỉ có trong phiên bản thƣơng mại đắt tiền nhất của Metasploit Pro.Với tính năng tạo báo cáo đƣợc thêm vào sẽ giúp ta có thể so sánh phân tích đánh giá về các lỗ hổng hay khám phá ra những mối đe dọa tiềm ẩn khác để đƣa ra một sản phẩm bảo mật an ninh tích hợp hơn mạnh mẽ hơn. Trong luận văn này tôi tập trung trình bày những khái niệm tổng quan về kiểm thử an ninh, khái niệm về Metasploit và các phiên bản đã có. Trình bày về Metasploit Framework và cách mở rộng tính năng tạo báo cáo cùng với các kết quả đã đạt đƣợc. Luận văn đƣợc trình bày trong 4 chƣơng: Chƣơng 1: Tổng quan về kiểm thử an ninh. Chƣơng 2: Tổng quan về Metasploit và Metasploit Framework. Chƣơng 3: Mở rộng chức năng tạo báo cáo cho Metasploit Framework. Chƣơng 4: Kết luận. 11 CHƢƠNG 1: TỔNG QUAN VỀ KIỂM THỬ AN NINH 1.1. Khái niệm cơ bản Kiểm thử an ninh là một phƣơng pháp dùng để đánh giá các lỗ hổng. Ngƣời kiểm thử an ninh đảm nhận vai trò của một Hacker và cố gắng hết sức để đột nhập vào tổ chức có môi trƣờng công nghệ thông tin. Mục đích của một bài kiểm tra nhƣ vậy là để tìm ra bất kỳ lỗ hổng trong một tổ chức có môi trƣờng công nghệ thông tin và cách các tin tặc khai thác các lỗ hổng này trong thế giới thực. Một bài kiểm tra kiểm thử tốt sẽ tiết lộ cách kẻ tấn công có thể sử dụng lên các hệ thống trƣớc khi nó thực sự xảy ra, chỉ ra các hệ thống có thể bị xâm phạm nhƣ thế nào,cách giải quyết các vấn đề đƣợc tìm thấy, giúp quản lý chi phí hiệu quả hơn là chỉ chờ tai nạn xảy ra. 1.2. Phân loại kiểm thử an ninh Có ba loại kiểm thử an ninh: kiểm thử hộp trắng, hộp xám và hộp đen. Mỗi loại sẽ tƣơng ứng với việc ngƣời kiểm thử biết nhiều hay ít về bí mật bên trong của hệ thống cần kiểm tra. Mỗi loại đều có ƣu nhƣợc điểm tƣơng ứng nhƣ sau: 1.2.1. Kiểm thử hộp trắng Là khi ngƣời kiểm thử đã đƣợc cấp quyền truy cập đầy đủ vào các bản vẽ mạng, biểu đồ luồng dữ liệu, thuật toán băm mật khẩu và tất cả những thứ khác cho phép hệ thống hoạt động thì loại kiểm thử này là kiểm thử hộp trắng. Ƣu điểm: Rất hiệu quả về thời gian cho ngƣời thử nghiệm. Nhƣợc điểm: Thƣờng không phải là mô phỏng thực tế về một cuộc tấn công của Hacker vì ngƣời kiểm tra đã biết về toàn bộ hệ thống. 1.2.2. Kiểm thử hộp đen Là trƣờng hợp khi ngƣời kiểm thử có rất ít thông tin về mục tiêu thì nó đƣợc coi là kiểm thử hộp đen. Ƣu điểm: Mô phỏng thực tế nhất về một Hacker đang cố gắng đột nhập hoặc đột nhập vào hệ thống. Nhƣợc điểm: Có xu hƣớng tốn thời gian không cần thiết cho ngƣời thử nghiệm và do đó tốn kém cho các bên liên quan. 1.2.3. Kiểm thử hộp xám Đây là loại nằm ở giữa kiểm thử hộp đen và kiểm thử hộp trắng. Một ví dụ về kiểm thử hộp xám sẽ là tình huống mà ngƣời kiểm thử đƣợc yêu cầu kiểm tra máy chủ đang chạy một ứng dụng web và nhận một tệp hình ảnh làm đầu vào để xử lý nội bộ. Nhƣng ngƣời kiểm thử lại không có thông tin về định dạng ảnh đƣợc đƣa vào để xử lý. 12 Ƣu điểm: Vừa mô tả đƣợc một cuộc tấn công thực tế của Hacker và vừa tiết kiệm thời gian bằng cách cung cấp cho ngƣời kiểm thử một số thông tin về cách hệ thống đang hoạt động. Nhƣợc điểm: Ngƣời kiểm thử có thể không có quyền truy cập vào mã nguồn của ứng dụng đích hoặc các thông tin quan trọng khác. Hầu hết các bài kiểm thử an ninh đều rơi vào loại kiểm thử hộp xám. Điều này thƣờng là do kiểm thử hộp đen quá tốn thời gian và quá tốn kém đối với hầu hết các tổ chức. Chỉ cần cung cấp cho ngƣời kiểm thử an ninh một số thông tin về hệ thống đích sẽ tránh đƣợc tình huống báo cáo cuối cùng của ngƣời kiểm tra chứa thông tin mà chủ sở hữu hệ thống đã biết. 1.3. Quy trình kiểm thử an ninh Một bài kiểm thử an ninh phải tuân theo một quy trình đƣợc xác định trƣớc. Quá trình này có thể đƣợc cố định hoặc thay đổi giúp ngƣời kiểm thử an ninh hoàn thành đúng hạn và rất có thể sẽ làm tăng tính hữu dụng của toàn bộ kết quả . Một quy trình kiểm thử có cấu trúc cũng sẽ giúp cho ngƣời mới tham gia dễ hiểu hơn về mục đích và tiến trình của dự án. Một lợi ích khác của việc duy trì quy trình kiểm thử có cấu trúc là nó giảm thiểu rủi ro của việc dành quá nhiều thời gian cho một trong các bƣớc trong khi bỏ qua một bƣớc khác. Dƣới đây sẽ là quy trình kiểm thử an ninh tổng quát nhất (xem Hình 1.1) . Hình 1. 1 Quy trình kiểm thử an ninh 13 Trong phần này luận văn sẽ trình bày chi tiết hơn về các bƣớc trong quy trình kiểm thử an ninh. 1.3.1. Giai đoạn khởi tạo Giai đoạn khởi tạo (The Initialization Phase) diễn ra khi một tổ chức quyết định, hoặc ít nhất là xem xét, dành thời gian, tiền bạc và năng lƣợng cho một bài kiểm thử. Giai đoạn này sẽ trả lời cho các câu hỏi nhƣ: Chúng ta an toàn nhƣ thế nào trƣớc tin tặc? Và làm thế nào chúng ta có thể trở nên an toàn hơn? Chúng ta có thể làm gì để tuân thủ tiêu chuẩn bảo mật X?. Các hệ thống muốn đáp ứng đƣợc các tiêu chuẩn bảo mật cần đƣợc kiểm tra thƣờng xuyên, ít nhất là hàng năm. 1.3.2. Đặt phạm vi Ngƣời kiểm thử an ninh cần xác định rõ phạm vi ranh giới (Setting The Scope) của bài kiểm thử, những gì cần đƣợc kiểm tra và những gì nên bỏ đi? Việc này cần đƣợc sắp xếp trƣớc khi bắt đầu một bài kiểm thử nhằm tránh gặp các rắc rối về pháp lý không cần thiết. Ngoài ra cần đặt phạm vi cố định trƣớc khi kiểm thử bắt đầu là để giảm thiểu rủi ro của cái đƣợc gọi là phạm vi ngoài ý muốn (Creep Scope). Việc này xảy ra khi xuất hiện các yếu tố làm thay đổi phạm vi trong quá trình kiểm thử an ninh. Ví dụ: Ngƣời kiểm thử an ninh đƣợc thuê để kiểm tra tính an toàn của bố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, Unix…vv 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).
- Xem thêm -