1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

62 53 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 3,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 6

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

Ký hiệu Thuật ngữ Ý nghĩa

Exploit Mã tìm kiếm lỗ hổng, các điểm

yếu, back door

Gem Gói thƣ viện sẵn có trên trang

Rubygem

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

PDF Portable Document Format Định dạng tài liệu di động

PostgreSQL Hệ quản trị cơ sở dữ liệu quan hệ

và đối tƣợng XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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?

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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)

Trang 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

Trang 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ử

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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ụ

Trang 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

Trang 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

Trang 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

Ngày đăng: 16/02/2020, 15:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w