I. CÁC GIẢI PHÁP XÂY DỰNG HỆ THỐNG
2. Lựa chọn công nghệ
Do định hướng phát triển hệ thống là cung cấp dịch vụ miễn phí nên các công nghệ được lựa chọn dựa trên tiêu chí miễn phí mà hiệu năng xử lý không thay đổi so với các công nghệ có phí khác.
2.1. Ngôn ngữ sử dụng
Python là một ngôn ngữ lập trình thông dịch do Guido V.Rossum tạo ra năm 1990.
Đây là ngôn ngữ có thể chạy trên hầu hết các Hệ điều hành, bao gồm: Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm… Python có thể tạo ra những chương
trình từ những tập lệnh rất nhỏ cho tới việc xây dựng một hệ thống lớn và vô cùng mạnh mẽ. Một đặc điểm đáng chú ý nữa là: Python hoàn toàn miễn phí, có cộng đồng phát triển đông đảo nên số lượng thư viện tốt, miễn phí rất nhiều, việc cài đặt python cũng rất thuận tiện.
Với những điểm mạnh trên, Python thật sự là một lựa chọn đã đáp ứng hoàn toàn các yêu cầu về ngôn ngữ phát triển hệ thống zScanner.
2.2. Lưu trữ dữ liệu cho hệ thống
2.2.1. Lưu trữ dữ liệu hệ thống
• Yêu cầu
Lưu trữ các thông tin về quá trình quét (dạng từ điển). Lưu trữ các kết quả dựa trên các lỗ hổng.
Truy vấn nhanh và cập nhật nhanh, do hệ thống cần cập nhật và truy vấn liên tục để hiển thị cho người dùng về tình trạng và kết quả quét của hệ thống.
Mềm dẻo, dễ dàng cài đặt và thao tác.
• Lựa chọn:
CSDL phi quan hệ (NoSQL). Lưu trữ theo dạng tài liệu.
2.2.2. Lưu trữ dữ liệu Fuzz
• Yêu cầu
Lưu trữ được các dữ liệu fuzz cho từng loại lỗ hổng khác nhau
Mỗi loại fuzz của lỗ hổng sẽ đi kèm với các thuộc tính: language (ngôn ngữ sử dụng), webserver, database, framework.
Dễ dàng thao tác và lấy theo các tiêu chí khác nhau.
• Lựa chọn:
Lưu trữ bằng tệp tin XML.
Mỗi loại fuzz của lỗ hổng sẽ được lưu trữ trong một tệp tin XML.
2.3. Hiển thị dữ liệu và tương tác người dùng (Website)
Là thành phần website tương tác với người dùng. Do thành phần Core Fuzzing xây dựng trên nền tảng python nên hệ thống cũng lựa chọn nền tảng xây dựng cho website module là python. Cụ thể hệ thống sử dụng Django, một framework rất mạnh mẽ dựa trên mô hình MVT (Model – View – Templates) của python để xây dựng.