62
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ KIU 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 NGHTHÔNG TIN NGƢỜI HƢỚNG DN KHOA HC: GS.TS. NGUYN THANH THY Hà Ni - 2019

XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

ĐẠ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

Page 2: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 3: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 4: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 5: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 6: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

6

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

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

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..

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

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 Metasploit Framework

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

Page 7: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 8: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 9: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 10: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 11: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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ý.

Page 12: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 13: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 14: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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?

Page 15: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 16: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 17: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 18: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 19: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 20: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 21: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 22: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 23: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 24: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 25: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 26: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệ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

Page 27: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 28: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 29: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 30: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 31: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 32: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 33: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 34: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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.

Page 35: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 36: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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

Page 37: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

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 MSF.

Câu lệnh có ý nghĩa, đặc tả đƣợc hoạt động.

Page 38: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

38

3.4.2. Đƣa ra giải pháp

Dựa vào 2 trƣờng hợp trên chúng tôi thấy dữ liệu về tấn công kiểm thử có thể đến

từ 2 nguồn: Database hoặc dữ liệu xuất nhập từ bên ngoài. Qua quá trình tìm hiểu cách

thức hoạt động của MSF, chúng tôi nhận thấy dữ liệu nhập xuất từ MSF thực chất là dữ

liệu từ Database của MSF xuất ra, hơn nữa, dữ liệu này lại có cấu trúc thống nhất dựa trên

định dạng nhập xuất Database của MSF (định dạng XML) rất dễ đọc và sử dụng. do đó

chúng tôi quyết định sử dụng dữ liệu xuất Database dạng XML làm đơn vị dữ liệu sử

dụng cho xây dựng báo cáo.

Về giải pháp đọc dữ liệu báo cáo, định dạng dữ liệu ở dạng XML, luân chuyển

thống nhất giữa các Database của MSF, do đó cần tìm một công cụ có thể giúp ta đọc

định dạng XML. Sau quá trình tìm hiểu chúng tôi thấy có các công cụ đọc XML trong

ngôn ngữ Ruby nhƣ Nokogiri (có sẵn trong MSF), Xml-mapping, Xml-simple, nhƣng

cuối cùng đi đến cách sử dụng cấu trúc dữ liệu Hash cho việc Mapping Xml, vì cấu trúc

tƣơng tự - đều biểu diễn dạng cây có một gốc, truy cập đến các phần tử con dễ dàng, sau

đó truyền Hash này vào các hàm cần sử dụng.

Các loại báo cáo đều có chung cách làm đó là:

Đọc gói dữ liệu, trong gói dữ liệu có các trƣờng cố định nhƣ:

o Thông tin về gói dữ liệu.

o Thông tin về từng máy phát hiện đƣợc.

o Thông tin tổng hợp về các sự kiện.

o Thông tin tổng hợp về các dịch vụ.

o Thông tin tổng hợp về các nội dung web.

Thiết kế mẫu báo cáo bằng HTML thành các mẫu hiển thị nhỏ

o Mẫu header và body báo cáo.

o Mẫu hiển thị các thành phần (chữ, tiêu đề).

o Mẫu hiển thị các dòng trong các bảng thống kê.

Thiết kế luồng xử lý dữ liệu để gắn vào các mẫu có sẵn và ráp nối các mẫu thành

tài liệu hoàn chỉnh.

Page 39: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

39

Về giải pháp tạo báo cáo, chúng tôi thấy hƣớng sử dụng HTML để trình diễn một File

báo cáo rất tiện dụng, có rất nhiều công cụ có khả năng xuất File HTML thành PDF, điển

hình dễ sử dụng là công cụ Pdfkit. Bên trong Pdfkit tận dụng công cụ Wkhtmltopdf - là

một công cụ có khả năng in ra tập tin PDF với nội dung đƣợc trình bày bằng một trang

HTML - công cụ này cần đƣợc cài vào trƣớc khi sử dụng công cụ tạo báo cáo, nên chúng

tôi đã để một bản hoạt động không cần cài đặt của Wkhtmltopdf trong thƣ mục bộ máy

của công cụ tạo báo cáo. Ngoài ra ngƣời dùng vẫn phải cài đặt thêm Gem Pdfkit để Plugin

có thể hoạt động đƣợc. Việc cài đặt đƣợc thực hiện qua lệnh “gem install pdfkit”

Sau khi lựa chọn đƣợc các giải pháp phù hợp tiếp đến là mô tả công cụ này qua hai

loại thiết kế bao gồm thiết kế Logic và thiết kế vật lý.

3.4.3. Thiết kế Logic

Các chức năng cần có khi thiết kế Logic

Kiểm tra kết nối Database

o Đọc kết nối Database.

o Cập nhật tình trạng Database.

Kiểm tra công cụ chạy đúng

o Chuẩn bị File mẫu.

o Xuất thử File.

o Đọc tình trạng File xuất ra.

Lấy gói dữ liệu

o Chuẩn bị chuỗi lệnh xuất Database.

o Gọi MSF xuất Database ra thƣ mục Workspace.

Tạo báo cáo

o Chuyển đổi các cấu hình đƣợc đƣa vào thành các biến, chuẩn bị các trƣờng

cấu hình mặc định.

o Chuyển danh sách tên gói dữ liệu thành danh sách đƣờng dẫn tới gói dữ liệu.

o Đọc gói dữ liệu từ XML thành Hash - cấu trúc dữ liệu từ điển.

o Xuất báo cáo tuỳ theo định dạng đƣợc chọn.

Pdf

_ Dựng file HTML theo loại báo cáo.

_ Dọc file HTML và in ra file PDF.

Html

_ Dựng file HTML theo loại báo cáo.

Dùng gói dữ liệu

o Kiểm tra sự tồn tại của gói dữ liệu.

o Thêm gói dữ liệu vào danh sách sử dụng.

o Lƣu trạng thái các gói dữ liệu đang đƣợc sử dụng ta File.

Page 40: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

40

Bỏ gói dữ liệu

o Bỏ gói dữ liệu khỏi danh sách sử dụng.

o Lƣu trạng thái các gói dữ liệu đang đƣợc sử dụng ta File.

Kiểm tra tình trạng gói

o Lƣu trạng thái các gói dữ liệu đang đƣợc sử dụng ta File.

o Đọc ngày giờ chỉnh sửa cuối cùng của tất cả các gói dữ liệu trong Data

Workspace.

o Kiểm tra tình trạng sử dụng gói và in ra.

Xoá gói dữ liệu

o Xoá gói trong Workspace.

Nhập gói dữ liệu

o Copy gói dữ liệu vào thƣ mục Workspace.

Page 41: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

41

3.4.3.1. Mô tả dữ liệu

Sơ đồ chi tiết luồng dữ liệu của công cụ tạo báo cáo (xem Hình 3.11).

Hình 3. 11 Sơ đồ luồng dữ liệu

Page 42: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

42

3.4.3.2. Mô tả cấu trúc thƣ mục

Do đƣợc viết dƣới thể thức Plugin, công cụ sẽ đƣợc đặt trong thƣ mục Plugin của

Framework. Công cụ gồm 2 thành phần chính:

File Ruby report.rb chứa các định nghĩa Plugin và định nghĩa câu lệnh để gắn vào

giao diện Framework (Hình 3.12).

Hình 3. 12 File ruby report.rb

Tiếp đến là thƣ mục Report_engine chứa toàn bộ các hàm thực hiện chức năng trong

Framework (Hình 3.13).

Hình 3. 13 Thƣ mục Report_engine

Trong thƣ mục này chứa File điều khiển trung tâm để kết nối File Plugin report.rb

với các Module chức năng cụ thể trong các thƣ mục chuyên biệt Generator, Utils và

Wrapper.

Page 43: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

43

3.4.3.3. Mô tả cấu trúc module

Về mặt cấu trúc module, công cụ đƣợc thiết kế nhƣ sau (Hình 3.14).

Hình 3. 14 Cấu trúc module công cụ

Lớp cha Plugin: Report thừa kế từ Module Plugin, thực hiện nhiệm vụ kết nối với

Framework và khởi động Plugin. Thông qua Plugin, cho phép công cụ thực hiện

các lời gọi hàm trong Framework. Ngoài ra lớp Report còn định nghĩa các thông

tin liên quan đến công cụ và hoạt động gỡ công cụ khi không dùng đến nữa.

o Lớp con Plugin::Report::ReportCommandDispatcher có nhiệm vụ

định nghĩa các lệnh sẽ đƣợc thực thi trong giao diện Msfconsole. Các

Page 44: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

44

lệnh này sau đó đƣợc gắn vào Console::CommandDispatcher nếu

quá trình khởi động của Plugin thành công.

Module ReportEngine là giao diện chứa toàn bộ Module chức năng và điều phối

các công việc của các Module độc lập tƣơng tác khác.

o Module con ReportEngine::Wrapper có nhiệm vụ gói dữ liệu.

Lớp ReportEngine::Wrapper::DBexport phụ trách chức năng

trộn câu lệnh xuất Database của Msfconsole rồi gọi

Msfconsole để xuất Workspace đƣợc yêu cầu trở thành một

gói dữ liệu XML.

Lớp ReportEngine::Wrapper::Mapper thực hiện trộn các gói

dữ liệu XML với nhau và gắn vào trong cấu trúc Hash để

Module ReportEngine::Generator sử dụng tạo nội dung báo

cáo.

Lớp ReportEngine::Wrapper::Validate thực hiện kiểm tra gói

dữ liệu có tồn tại và đọc thông số ngày giờ cập nhật cuối cùng

của gói dữ liệu.

o Module con ReportEngine::Utils chứa các chức năng mở rộng phục

vụ cho hoạt động tạo báo cáo <hiện chƣa dùng>.

o Module con ReportEngine::Generator có nhiệm vụ gọi các Module

báo cáo xuất ra các File với định đạng đƣợc ngƣời dùng cấu hình với

nội dung đƣợc đƣa vào từ ReportEngine:Wrapper::Mapper. Các hành

động bao gồm điều phối xuất PDF/HTML, in PDF và chạy kiểm tra

công cụ xuất File.

Module PDFexport gọi sử dụng Gem ngoài Pdfkit, nhận lệnh điều phối quá trình in

file PDF.

o Lớp con PDFexport::PDFexporter thực hiện cấu hình công cụ in PDF

là Wkhtmltopdf, định nghĩa File kiểm tra mẫu để kiểm tra hệ thống

xuất File và hai phƣơng thức xuất File báo cáo hoặc xuất File kiểm

tra.

Module Cook giao diện trung tâm của các Module đọc thông tin gói dữ liệu theo

dạng mẫu hàm.

o Module con Cook::Host chứa các lệnh phân rã mảng máy chủ để gọi

các hàm đọc dữ liệu sâu hơn và các hàm đọc thông tin của máy chủ

đó.

o Module con Cook::Service chứa các mẫu hàm đọc dịch vụ trong một

máy chủ đƣợc truyền vào và trộn vào mẫu HTML thống kê dịch vụ

trong bảng dịch vụ để hiển thị trên báo cáo. Thực hiện tính toán kiểm

định các tiêu chuẩn cho báo cáo tuân thủ PCI.

Page 45: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

45

o Module con Cook::Vuln chứa các mẫu hàm đọc danh sách lỗ hổng

trong một máy chủ đƣợc truyền vào và trộn vào mẫu HTML thống

kê lỗ hổng trong bảng tấn công để hiển thị trên báo cáo.

o Module con Cook::Exploit chứa hàm đếm danh sách Exploit để phục

vụ cho việc thống kê lỗ hổng.

3.4.4. Thiết kế vật lý

Về thiết kế vật lý, do công cụ đƣợc gắn vào Framework thông qua giao diện Plugin

(xem Hình 3.15) nên các thành phần vật lý của công cụ hoàn toàn phụ thuộc vào các

thành phần vật lý của Framework. Công cụ chỉ trao đổi thông tin với các gói dữ liệu là các

File XML từ bên ngoài thay vì đọc trực tiếp từ Database hay lƣu dữ liệu vào một

Database riêng. Làm nhƣ vậy để công cụ tạo báo cáo có khả năng hoạt động linh hoạt và

kết nối vào cấu trúc dữ liệu Hash dễ dàng cho việc truy xuất thông tin và tính toán.

Hình 3. 15 Thiết kế vật lý

Qua hai quá trình thiết kế Logic và vật lý cho công cụ tạo báo cáo, bƣớc tiếp theo

sẽ là viết chƣơng trình và tiến hành chạy thử nghiệm công cụ.

3.5. Viết chƣơng trình và chạy thử nghiệm công cụ

3.5.1. Viết chƣơng trình

Dựa vào những thiết kế đã trình bày bên trên, chúng tôi đã viết phần mềm dựa trên

quy trình TDD - Phát triển hƣớng kiểm thử. Cụ thể qua các bƣớc lặp lại trong quá trình

phát triển:

Xác định chức năng lớn cần viết (ví dụ thu thập dữ liệu từ Database để tạo gói dữ

liệu)

Phân rã các chức năng cần viết. Với mỗi chức năng con (ví dụ map File xuất

Database):

Page 46: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

46

o Liệt kê các trƣờng hợp xảy ra (ví dụ tên Workspace nhập sai, tên gói dữ liệu

đã tồn tại, . . .)

o Liệt kê các kết quả cần đạt đƣợc (ví dụ dữ liệu đƣợc map lên cấu trúc dữ

liệu Hash - từ điển; truy cập đƣợc đến dịch vụ thứ n trong host số 2, . . .)

o Viết code để thoả mãn các yêu cầu kiểm thử trên.

o Chạy ứng dụng lên và kiểm tra kết quả.

o Hiệu chỉnh Code.

Chạy ứng dụng và kiểm thử chức năng lớn..

Hiệu chỉnh chức năng.

Ngoài ra chúng tôi còn áp dụng mô hình thiết kế Code theo hƣớng tái sử dụng ngay từ

đầu đối với các thành phần có tính lặp lại nhƣ các hàm trộn báo cáo, các hàm đọc dữ liệu

từ gói dữ liệu, ... Với đặc điểm của ngôn ngữ Ruby rằng gói dữ liệu khi đƣợc Map kiểu

Hash, để duyệt qua các phần tử, có khả năng mảng nhiều phần tử hoặc mảng 1 phần tử, do

đó cần có các hàm nguyên mẫu chuyên để xử lý các trƣờng hợp 1 hoặc nhiều này rồi cho

phép gọi một hàm chức năng bất kỳ khác truyền vào. Đây là thách thức với việc kiểm thử

vì mỗi lần đọc Hash chia trƣờng hợp nhƣ vậy nó sẽ tạo ra số trƣờng hợp cần xử lý theo

cấp số nhân.

Số trƣờng hợp = 2 x độ sâu Hash

Cho nên chúng tôi đã sử dụng cách truyền nguyên mẫu hàm vào để xử lý phân tách

xử lý mỗi thành phần trong mảng sao cho giống với mảng 1 thành phần. Cụ thể có thể

đọc thông tin Host (Hình 3.16).

Hình 3. 16 Đọc thông tin Host

Page 47: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

47

Khi muốn đọc thông tin dịch vụ hay các lỗ hổng của các Host rồi in ra nội dung

theo mẫu HTML dựng sẵn (Hình 3.17).

Hình 3. 17 Đọc thông tin dịch vụ, lỗ hổng.

Quá trình khởi động Plugin Report, đƣợc định nghĩa trong File móc vào Module

Plugin của MSF, File này chứa các chỉ dẫn đầu tiên để nạp các Module chức năng vào

Framework tại thời điểm sử dụng. Ngoài ra còn định nghĩa các biến dùng chung, quan

trong nhất là định nghĩa các câu lệnh mà ngƣời sử dụng sẽ gọi trong quá trình dùng (trong

khối lệnh “def commands...end”). Các lệnh này tuân theo chuẩn tạo lệnh Console đƣợc

Rapid7 sử dụng [tham khảo] mỗi lệnh liệt kê trong commands cần đƣợc định nghĩa bằng

hàm có tên tƣơng ứng là cmd_tên_lệnh(*tham_số). Danh sách lệnh này sẽ hiển thị lên

nhƣ bảng hƣớng dẫn khi ngƣời dùng sử dụng lệnh Help trên Msfconsole (xem Hình 3.18)

Page 48: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

48

Hình 3. 18 Danh sách lệnh

Page 49: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

49

3.5.2. Chạy thử nghiệm công cụ

Khi đƣợc nạp vào thông qua lệnh “load report”, quá trình khởi động Plugin sẽ gồm các

bƣớc (xem Hình 3.19).

Nạp và kiểm tra các Module chức năng, cụ thể nạp ReportEngine và từ

ReportEngine sẽ nạp các Module con và các Module liên quan đƣợc sử dụng. Việc

nạp thành công khi kiểm tra đƣợc phiên bản của các thành phần con.

Đọc tình trạng các gói dữ liệu đã đƣợc sử dụng lần trƣớc đó.

Gắn bộ lệnh của công cụ Report vào bộ lệnh của Console.

Chạy lời chào của công cụ.

Kiểm tra thử tình trạng kết nối cơ sở dữ liệu.

Kiểm tra danh sách các gói dữ liệu có thể sử dụng cho báo cáo.

Hình 3. 19 Khởi động Plugin

Page 50: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

50

Ngoài ra các lệnh trong chƣơng trình bao gồm:

Report_banner: In lại lời chào ứng dụng ra màn hình (Hình 3.20)

Hình 3. 20 Lệnh Report_banner

Check_db: Sử dụng biến trạng thái cơ sở dữ liệu của Framerork để thông báo và cập nhật

trạng thái cơ sở dữ liệu của công cụ (Hình 3.21).

Hình 3. 21 Lệnh Check_db

Check_report: Sử dụng để kiểm tra các chức năng của chƣơng trình có hoạt động đúng

hay không bằng việc ngầm xuất một File báo cáo mẫu (Hình 3.22).

Hình 3. 22 Lệnh Check_report

Page 51: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

51

Check_status: Kiểm tra trạng thái các gói dữ liệu, liệt kê, thông tin lần cập nhật cuối

cùng và tình trạng chọn. Các gói này đƣợc lƣu trong thƣ mục cài đặt của chƣơng trình nên

ngƣời dùng có thể bỏ trực tiếp File theo định dạng Xml xuất cơ sở dữ liệu của Metasploit

vào trong thƣ mục chứa. Trạng thái của các gói dữ liệu này đƣợc lƣu dƣới dạng tên gói

trong biến của chƣơng trình nên khi chƣa sử dụng thì gói sẽ chƣa đƣợc mở (Hình 3.23).

Hình 3. 23 Lệnh Check_status

Use_datapack: Chọn gói cho mục đích xuất báo cáo. Gói đƣợc chọn sau khi check_status

sẽ đƣợc hiển thị có dấu tích X (Hình 3.24).

Hình 3. 24 Lệnh Use_datapack

Page 52: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

52

Unuse_datapack: Bỏ chọn gói dữ liệu (Hình 3.25).

Hình 3. 25 Lệnh Unuse_datapack

Remove_datapack: Xoá vĩnh viễn gói dữ liệu khỏi máy (Hình 3.26)

Hình 3. 26 Lệnh Remove_datapack

Collect_info: thu thập thông tin của Workspace đƣợc chỉ định trở thành một gói dữ liệu

dùng cho việc tạo báo cáo. Các tập tin dữ liệu này sẽ đƣợc lƣu trong thƣ mục chứa các gói

dữ liệu và hiển thị ngay trên check_status (Hình 3.27).

Page 53: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

53

Hình 3. 27 Lệnh Collect_info

Gen_report: thực hiện tạo báo cáo ra một đƣờng dẫn đƣợc chỉ định. Báo cáo đƣợc lƣu

dƣới dạng PDF hoặc HTML nhƣng không khuyến khích dùng tập tin HTML vì có thể bị

chỉnh sửa dễ dàng. Để lấy tập tin HTML, sau khi xuất file ngƣời dùng cần vào thƣ mục

Report_engine/Generator/form/<loại báo cáo>/export.html để dùng (Hình 3.28).

Hình 3. 28 Lệnh Gen_report

Page 54: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

54

Sau khi tạo báo cáo, File đã xuất hiện ở thƣ mục đích (Hình 3.29).

Hình 3. 29 File báo cáo

Hoạt động tạo báo cáo của các lệnh Check_report và lệnh Report đều thực hiện qua

chƣơng trình con PDFexporter.exe. Vì hiện tại Plugin không thể đƣa tới cho ngƣời dùng

Gem Ruby hay yêu cầu Rapid7 thêm Gem liên quan đến hoạt động tạo báo cáo nên các

Gem dùng ngoài cho mục đích tạo File đƣợc viết trong File PDFexport.rb và

PDFexporter.rb và sau đó đƣợc biên dịch bằng công cụ Ocra để tạo File có thể thực thi

cho nền tảng Windows. Công cụ Ocra có nhiệm vụ đọc mã nguồn, tích hợp môi trƣờng

Ruby phù hợp và các gói cần thiết cho công cụ PDFexport chạy đƣợc và biên dịch thành

File thực thi. Việc này thuận tiện cho nhà phát triển khi không thể can thiệp đƣợc vào

danh sách các gói đƣợc sử dụng của Framework, tránh việc phiên bản Plugin không thể

hoạt động khi Framework cập nhật và thay đổi danh sách Gem.

3.5.3. Kết quả đạt đƣợc

Sau quá trình phát triển công cụ kết xuất báo cáo, chúng tôi thu đƣợc các bản báo

cáo theo ba chuẩn là báo cáo kiểm định (Hình 3.30), báo cáo dịch vụ (Hình 3.31) và báo

cáo tuân thủ chuẩn PCI (Hình 3.32), đồng thời so sánh ba mẫu báo cáo này với ba mấu

báo cáo tƣơng ứng trong phiên bản Metasploit Pro.

Page 55: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

55

Báo cáo kiểm định

Hình 3. 30 Báo cáo kiểm định thu đƣợc

Page 56: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

56

Báo cáo dịch vụ

Hình 3. 31 Báo cáo dịch vụ thu đƣợc

Page 57: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

57

Báo cáo tuân thủ chuẩn PCI

Hình 3. 32 Báo cáo tuân thủ chuẩn PCI thu đƣợc

Page 58: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

58

Từ các bản báo cáo thu đƣợc này chúng tôi tiến hành so sánh phân tích với các bản

báo cáo chuẩn trên phiên bản Metasploit Pro, có thể thấy đƣợc vẫn có những sự khác biệt.

Ở đây, khác biệt lớn nhất liên quan đến việc trình bày trang báo cáo. Các tài liệu báo cáo

này đƣợc chuẩn bị sao cho đạt độ giống lớn nhất đối với báo cáo tiêu chuẩn đƣợc xuất ra

từ công cụ Metasploit Pro. Với việc xây dựng lại mẫu báo cáo bằng ngôn ngữ HTML vẫn

chƣa đạt độ giống 100% về cỡ chữ, giãn cách, căn lề, chữ dọc, … Ngoài ra còn có một số

khác biệt khác đến từ những khó khăn khi thực hiện dự án này.

Thiếu dữ liệu thu thập về các Credential

Do không có một cơ sở dữ liệu mẫu đầy đủ ban đầu cho các nhà phát triển đến từ

Rapid7 cũng nhƣ cộng đồng, bộ dữ liệu tấn công kiểm thử để kiểm tra quá trình tạo báo

cáo chỉ thu thập đƣợc các thông tin về máy chủ, dịch vụ, lỗ hổng, các thông tin về sự kiện

tấn công mà không thu thập đƣợc các thông tin nào về các Credential trên máy ảo

Metasploitable 2. Thực tế, việc thu thập các Credential này đã đƣợc thực hiện nhƣng

không đạt kết quả, thông qua bộ quét MSF scan của công cụ Armitage, sử dụng Module

Auxiliary mysql_login, telnet_login, ssh_login, vnc_login, postgres_login. Do thiếu sót về

trƣờng Credential trong gói dữ liệu báo cáo nên các mục 8.2, 8.4, 8.5.8, 8.5.10, 8.5.11 của

báo cáo tuân thủ chuẩn PCI và chuẩn báo cáo Credentials không xây dựng đƣợc. Hơn nữa,

các công cụ quét lỗ hổng Web không đƣợc hỗ trợ trên phiên bản Framework, thay vào đó

các thông tin liên quan đến nền tảng Web lại đến từ các dịch vụ quét dịch vụ máy chủ

Web, cho nên việc thu thập đƣợc thông tin đầy đủ để phục vụ cho việc phát triển một bản

báo cáo lỗ hổng Web là điều rất khó khăn và không cần thiết đối với phiên bản

Framework, mặc dù các trƣờng về lỗ hổng Web vẫn hiện hữu trong gói dữ liệu. Khó khăn

về nguồn dữ liệu mẫu báo cáo này phần nào có thể cải tiến đƣợc nhờ quá trình sử dụng

Framework và thu thập đƣợc nhiều thông tin hơn, là cơ sở cho các hƣớng phát triển công

cụ báo cáo tiếp về sau.

Thiếu công cụ tích hợp trình diễn dữ liệu trên giao diện HTML

Một điểm nổi bật của các bản báo cáo là trình diễn số liệu, với các mô hình trình

diễn dƣới dạng liệt kê, thống kê, bảng thống kê có thể dễ dàng cắt trên giao diện HTML

để in ra định dạng PDF. Nhƣng với dung lƣợng thời gian và phạm vi của đề tài, việc

nghiên cứu áp dụng các công cụ phân tích/khai phá dữ liệu và trình diễn dữ liệu chƣa thể

thực hiện ngay. Có thể dễ dàng thấy các báo cáo xây dựng đƣợc đều không có các biểu đồ

thống kê. Để khắc phục hạn chế này, ở phiên bản đầu tiên của công cụ trích xuất báo cáo,

chúng tôi có chuyển đổi thông tin dƣới dạng biểu đồ ở cuối báo cáo dịch vụ thành dạng

thống kê bảng, phần nào đáp ứng đƣợc thông tin và nâng cao mức độ giống nhau đối với

phiên bản báo cáo đến từ Rapid7.

Page 59: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

59

Đánh số trang

Mở rộng khó khăn về định dạng trên trang HTML, công cụ in báo cáo Pdfkit thực

chất chƣa có cách truyền vào báo cáo biến số trang trong quá trình in trang, cho nên các

trang trong báo cáo hầu hết đƣợc ngắt trang ngay khi nội dung chạm đến lề dƣới khổ giấy.

Cùng với đó là không thể đánh số trang cho trang in vì khó xác định chiều dài trang dựa

trên việc cắt nội dung HTML.

Nhƣ vậy chƣơng này đã giới thiệu chi tiết các bƣớc tìm hiểu ,thao khảo, thiết kế,

viết chƣơng trình... Đồng thời cũng đã chạy thử nghiệm và cho ra kết quả giống với các

chuẩn báo cáo trong phiên bản Metasploit Pro đến 90%.

Page 60: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

60

CHƢƠNG 4: KÊT LUẬN

Có thể nói Metasploit Framework là một sản phẩm mạnh đƣợc đúc kết từ nhiều

chuyên gia trên thế giới. Nhƣng đồng thời nó cũng đƣợc sử dụng bởi các Hacker cho mục

đích xấu. Cho nên việc ra đời một công cụ tạo báo cáo giúp làm nổi bật ý nghĩa tốt đẹp

của việc tìm và phát hiện lỗ hổng trong hệ thống có ý nghĩa vô cùng quan trọng. Nó giúp

ta tổng hợp các dữ liệu thăm dò, để từ đó dễ dàng chuyển giao cho ngƣời có trách nhiệm

quản lý, là cơ sở khắc phục các khiếm khuyết trong hệ thống, làm hệ thống an toàn và

hoàn thiện hơn.

Sau thời gian tìm hiểu, nghiên cứu tài liệu và làm luận văn dƣới sự hƣớng dẫn của

thầy GS.TS. Nguyễn Thanh Thủy tôi đã hoàn thành luận văn 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”. Luận văn đã đạt đƣợc các kết

quả sau:

Tìm hiểu nghiên cứu đƣợc quy trình tấn công kiểm thử và các chuẩn báo cáo quan

trọng đối với các doanh nghiệp và tổ chức.

Tìm hiểu về công cụ tấn công kiểm thử mã nguồn mở lớn nhất thế giới là

Metasploit, cấu trúc, cách hoạt động của công cụ này.

Áp dụng kỹ thuật tƣ liệu về việc tạo báo cáo để phát triển mở rộng thêm tính năng

cho phiên bản miễn phí Metasploit Framework, đáp ứng đƣợc nhu cầu cơ bản

nhƣng vô cùng quan trọng của một phiên kiểm thử.

Với những kết quả đã đạt đƣợc trên, trong tƣơng lai đề tài này có thể phát triển theo

các hƣớng sau:

Mở rộng các loại định dạng báo cáo có thể in ra đƣợc.

Mở rộng thêm các chuẩn báo cáo khác để đáp ứng đƣợc nhu cầu trao đổi thông tin

về phạm trù an ninh thông tin giữa các bên liên quan trong quá trình xây dựng vào

củng cố an toàn cho hệ thống.

Mở rộng nội dung có thể đƣa vào báo cáo, có thể thông qua việc tạo các loại báo

cáo tuỳ chỉnh, báo cáo mới không theo chuẩn.

Mở rộng chức năng cho công cụ tạo báo cáo, chức năng có hai hƣớng nhỏ khác có

thể kể đến nhƣ:

o Tích hợp công cụ phân tích khai phá dữ liệu tấn công kiểm thử và trình diễn

dữ liệu.

o Mở rộng chức năng cho công cụ nhƣ gộp dữ liệu từ nhiều nguồn vào một

báo cáo, báo cáo định kỳ, tự động gửi báo cáo, tự động đồng bộ sao lƣu gói

dữ liệu, . . .

Page 61: XÂY DỰNG THỬ NGHIỆM CÔNG CỤ PHÁT HIỆN VÀ KHAI ...lib.uet.vnu.edu.vn/bitstream/123456789/1014/1/KIEU PHI...3 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp

61

TÀI LIỆU THAM KHẢO

Tiếng Anh

1. Foster, J. C., & Liu, V. (2006). Writing security tools and exploits. Rockland:

Syngress.

2. Hall, G., & Watson, E. (2016). Hacking: Computer hacking, security testing,

penetration testing and basic security.

3. Jaswal, N. (2016). Mastering Metasploit. Birmingham, UK: PACKT Publishing.

4. Svensson, R. (2016). From hacking to report writing: An introduction to security

and penetration testing.Z

Website

5. 262588213843476. (n.d.). A walkthrough for creating a new Ruby project.

Retrieved from https://gist.github.com/sampablokuper/1391900?fbclid=IwAR3yA-

s3ob4PC3aJu56FDBwQf8BbDDMXE4aoI_KmIjYTEU8qSmX9TQtD_Wio

6. Category: PDF Generation. (n.d.). Retrieved from https://www.rubytoolbox.com/c-

ategories/pdf_generation?fbclid=IwAR0ee_tGq1QQY7ptPqWuJgHAe2aa3ZyqsEP

Jdn_0H5vdn7uEO2JL8D4kUBQ

7. Getting Started. (n.d.). Retrieved from https://metasploit.help.rapid7.com/doc-

s?fbclid=IwAR1akZbCgHcTMyNlJTzgrei6DTj_ACkiq8J6lLHCBgxwzvlZkYf-F-

2DDs

8. Metasploit Unleashed. (n.d.). Retrieved from https://www.offensive-

security.com/metasploitunleashed/?fbclid=IwAR1_ceByQ5IpezIyys9XtNsQAhRU

meemv1y5MFYStZe826gxOx15YJAyMI