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