Ngôn ngữ NASL trong Nessus

Một phần của tài liệu Tìm hiểu về bảo mật mạng LAN và sử dụng công cụ nessus quét lỗ hổng bảo mật trong mạng LAN (Trang 40)

3.3.1. Lịch sử ngôn ngữ Nasl

Vào năm 1998, phiên bản đầu tiên của Nessus được phát hành với khả năng kiểm tra khoảng 50 lỗi bảo mật, nó còn được biết như các plugin. Những plugin này được cài đặt như các thư viện dùng chung, được viết bằng ngôn ngữ lập trình C, với phần mở rộng .nes. Mục đích của phương pháp này nhằm phân tách riêng module đảm nhận việc quét (engine scanning) với các module hướng dẫn, chỉ thị quét. Điều này giúp cho Nessus có kiến trúc modul và dễ dàng mở rộng. Vào thời điểm đó, việc dùng các thư viện dùng chung để viết các plugin có rất nhiều ý nghĩa, giúp nhanh chóng tạo các plugin dựa trên những chương trình C sẵn có.

Tác giả đã viết một script nhỏ gọi là "plugin-factory" giúp biên dịch các plugin viết bằng C sang các thư viện dùng chung (.nes). Ý tưởng là khi người dùng muốn update các plugin, họ sẽ download các plugin viết bằng C mới nhất

41

trên web, sau đó biên dịch và cài đặt chúng. Quá trình này mang lại nhiều nguy cơ không an toàn về bảo mật, vì thế ý tưởng không được phát triển.

Sau khi tìm kiếm các ngôn ngữ script hiện tại, Perl có lẽ là ngôn ngữ tốt nhất để viết các plugin cho Nessus, tuy nhiên vào thời điểm đó Perl có một số hạn chế:  Chiếm dung lượng bộ nhớ lớn.

 Không hỗ trợ tốt quá trình gửi/nhận các gói tin thô (raw packet).  Không có cách nào đáng tin cậy để kiểm tra dưới các máy ảo cơ bản.

Điểm cuối cùng là quan trọng nhất. Từ một góc nhìn mức cao, mỗi một quá trình quét đều giống nhau: nó kết nối đến một số cổng trên máy khách từ xa, thực hiện một số tác vụ, sau đó suy ra máy khách từ xa có dễ bị tổn thương với một số luật đã cho trước hay không. Cách tốt nhất là điều chỉnh tất cả các tác vụ quét, để không phải điều chỉnh chúng một cách riêng rẽ, chuyển cho máy ảo thực hiện. Ví dụ, khi ta thêm khả năng hỗ trợ SSL vào trong Nessus, ta không phải sửa từng plugin, ta chỉ cần chỉnh sửa hàm socket thực hiện kết nối.

Một mối quan tâm khác tới việc dùng Perl làm ngôn ngữ để viết các Plugin là các hàm bổ sung chỉ tồn tại qua các plugin bên ngoài. Những module này lại yêu cầu những gói và hàm thư viện hệ thống riêng. Tác giả đã quyết định viết một ngôn ngữ Script mới gọi là NASL dùng riêng cho Nessus (Nessus Attrack Scripting Language), với các mục tiêu hướng đến:

 Mỗi script được chứa trong một file.  Dễ cài đặt với người dùng cuối.

 Dễ tìm hiểu cho các nhà phân phối, phát triển.  Chiếm ít dung lượng bộ nhớ.

 Thiết kế riêng cho quét lỗ hổng an ninh mạng.  Độ bảo mật cao.

 Dễ chỉnh sửa và mở rộng.  Hỗ trợ đa ngôn ngữ.

Kết quả là ngôn ngữ NASL1 được ra đời, trong đó có một số điểm chưa được hoàn thiện: nó rất chậm và quá lỏng lẻo về các lỗi cú pháp, nhưng tổng thể nó đã làm tốt công việc của mình. Hơn 1000 lỗi kiểm tra bảo mật được viết bởi NASL1. Ban đầu tốc độ không phải là điều đáng quan tâm nhất, bởi thời gian

42

để thiết lập một phiên kết nối TCP luôn mất nhiều hơn là thời gian trình thông dịch NASL xử lý, phân tích cú pháp mã plugin.

Tuy nhiên, khi số lượng plugin tăng lên, người dùng bắt đầu sử dụng Nessus quét nhiều host hơn, NASL1 thực sự trở nên chậm cho những tác vụ này. Mã nguồn gốc khó mở rộng, và quyết định đơn giản là viết lại NASL. Vào năm 2001, thư viện libnasl được viết lại bởi Michel Arboi để mở rộng ngôn ngữ, và sửa chữa những khuyết điểm của NASL1. Thư viện viết lại này, được gọi với tên NASL2, trở thành thành phần lớn nhất trong Nessus 2.0. Kể từ phiên bản 3.0, ngôn ngữ NASL2 được tích hợp vào trong engine. Những ưu điểm của NASL2:

 Script được gói gọn: mỗi script NASL chứa cả code để kiểm tra các luật và các chỉ dẫn cho plugin của chính nó. Các file script có phần mở rộng đơn giản là .nasl.

 Dễ cài đặt với người dùng cuối: NASL có dạng tự đóng gói, có thể cấu hình sử dụng với thư viện OpenSSL. Người dùng có thể dùng trình biên dịch GCC và GNI Bison (bison) dễ dàng xây dựng và cài đặt trình thông dịch NASL.  Dễ dàng tìm hiểu với các nhà phân phối, phát triển: NASL trông rất giống C, với một vài điểm của Perl. Nếu chúng ta đã từng lập trình với những ngôn ngữ trên, thì việc học NASL khá dễ. Điểm khác biệt lớn nhất giữa NASL và C là nó không có phần con trỏ và quản lý bộ nhớ.

 Chiếm ít dung lượng bộ nhớ: Thông thường, Nessus chỉ yêu cầu vài trăm KB bộ nhớ, nó có thể load được nhiều plugin đồng thời.

 Thiết kế dành riêng cho kiểm tra bảo mật mạng: NASL được thiết kế để thiết lập kết nối, gửi nhận dữ liệu, xử lý kết quả. Nó có số lượng lớn các hàm thư viện cài đặt cho các giao thức mức cao. Ví dụ như các giao thức SMB, NFS, RPC, SMTP, HTTP, v.v… Tất cả những thư viện này đều được viết bằng NASL.  Độ bảo mật cao: NASL không thể truy cập vào hệ thống file cục bộ, thực hiện các câu lệnh hệ thống, hoặc kết nối tới một máy khách bên thứ 3 (nó chỉ có thể kết nối tới host đang thực hiện kiểm tra). Việc không có con trỏ và quản lý bộ nhớ, giúp nó tránh được các lỗi như tràn bộ đệm. Điều này làm cho

43

NASL trở thành một ngôn ngữ rất an toàn và giảm thời gian thiết kế những plugin mới.

 Dễ chỉnh sửa và mở rộng: Phiên bản của trình thông dịch NASL có ngôn ngữ rất trong sáng, giúp việc thêm các toán tử và hàm mới rất dễ, có khả năng tương thích ngược với các thư viện cũ.

 Hỗ trợ đa ngôn ngữ: NASL hỗ trợ đa ngôn ngữ, nhưng giới hạn ở các ngôn ngữ có thể mã hóa với bảng ký tự ASCII. Có nhiều ngôn ngữ như Nhật Bản, không thể biểu diễn bằng bảng mã ASCII mở rộng.

3.3.2. Sự khác biệt giữa NASL1 và NASL2

 NASL2 sử dụng trình phân tích cú pháp Bison, nó chặt chẽ hơn và có thể xử lý những kiểu diễn đạt phức tạp.

 NASL2 có nhiều hàm xây dựng sẵn (mặc dù hầu hết những hàm này đều có thể chuyển tương thích với NASL1).

 NASL2 có nhiều toán tử được tích hợp.  NASL2 nhanh hơn (khoản tầm 16 lần).

 Hầu hết script NASL2 không thể chạy với NASL1.

 Một vài script NASL1 không thể chạy với NASL2 (nhưng việc sửa tương đối dễ dàng).

 NASL2 có hàm chức năng xử lý mảng.

3.4. Cài đặt Nessus

File cài đặt của Nessus được tải về từ trang web:

44

Hình 3.3 Cài đặt Nessus

Để cài đặt chương trình Nessus chúng ta phải đồng ý với các điều khoản quy định của chương trình

Hình 3.4 Chọn I accept the terms in the license agreement để cài đặt

Ta tiếp tục cài đặt Nessus như những chương chình khác. Click Finish để hoàn tất cài đặt

45

Hình 3.5 Click Finish để hoàn tất cài đặt Nessus

Sau khi click Finish chương trình được mở ra bằng một tab của trình duyệt web. Để truy cập vào Nessus ta truy cập theo đường link:

https://localhost:8834/nessus6.html#/

Với lần đầu tiên sử dụng chương trình sẽ bắt nhập Activation Code:

Hình 3.6 Chương trình Nessus yêu cầu nhập Activation Code Activation Code ta đăng ký nhận tại trang http://www.tenable.com/

Sau khi nhập Activation Code thành công chương trình Nessus sẽ yêu cầu chúng ta đăng ký Username và password để đăng nhập vào giao diện đăng nhập của chương trình:

46

Hình 3.7 Giao diện đăng nhập của Nessus Đăng nhập thành công chương trình có giao diện:

Hình 3.8 Giao diện của chương trình Nessus

3.5. Kiểm tra các lỗ hổng mạng LAN

47

Hình 3.9 Chọn phương thức Basic Network Scan Tiếp theo điền:

 Name: tên

 Description: chú thích

 Folder: nơi chứa tệp tin scan được ban đầu có 2 tùy chọn là thư mục My Scans và Trash, mặc định sẽ là My Scans

 Scanner: loại hình scan mặc định là Local Scanner

 Targets: địa chỉ ip muốn scan ví dụ 192.168.1.1 là modem hoặc 192.168.1.3 Click chọn Save

48

Sau khi chọn Save thì quá trình scan được bắt đầu

Hình 3.11 Quá trình Scan được bắt đầu

Đợi vài phút quá trình Scan kết thúc ta chọn vào 1 Scans để biết kết quả

Hình 3.12 Kết quả Scan

Trong kết quả màu cam thể hiện mức độ bảo mật trung bình và số 3 thể hiện có 3 lỗi bảo mật. Màu xanh da trời là không có lỗi bảo mật.

49

Hình 3.13 Chi tiết các lỗi bảo mật

Để xem một lỗi bảo mật nào ta chọn vào lỗi bảo mật đó ví dụ: Microsoft Windows SMB Guest Account Local User Access. Trong đó ta biết được mối nguy hiểm của lỗi bảo mật là Medium, ID lỗi là 26919, trên port là 445/tcp/cifs. Giải pháp khắc phục được đưa ra trong Solution như trong hình:

Hình 3.14 Chi tiết lỗ hổng bảo mật Microsoft Windows SMB Guest Account Local User Access

Lưu kết quả scan bằng cách chọn Export sau đó chọn 1 trong các tùy chọn lưu là: Nessus, PDF, HTML …

50

Hình 3.15 Lưu kết quả Scan

51

KẾT LUẬN

Trong 8 tuần tìm hiểu, nghiên cứu và làm báo cáo cho đề tài của mình: “Tìm hiểu về bảo mật mạng LAN và sử dụng công cụ NESSUS quét lỗ hổng bảo mật mạng LAN”. Với sự cố gắng của bản thân, sự chỉ bảo tận tình của giáo viên hướng dẫn và sự trao đổi với bạn bè, bài báo cáo của em được hoàn thành với những nội dung:

 Hiểu rõ về mạng LAN

 Biết các phương thức bảo mật mạng cục bộ

 Dùng NESSUS kiểm tra được những lỗi bảo mật mạng LAN

Tuy nhiên vì điều kiện, thời gian và trình độ của em còn hạn chế nên không tránh khỏi những sai sót, em rất mong nhận được sự quan tâm giúp đỡ và chỉ bảo của các thầy cô cùng với sự đóng góp xây dựng của các bạn để em có thêm kinh nghiệm mới hơn trong quá trình học tập.

52

TÀI LIỆU THAM KHẢO

[1] Bộ môn An Toàn Hệ Thống Thông Tin - Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên, Giáo Trình Tường Lửa

[2] Bộ môn An Toàn Hệ Thống Thông Tin - Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên, Giáo Trình An Ninh Mạng

[3] Bộ môn An Toàn Hệ Thống Thông Tin - Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên, Giáo Trình An Toàn Bảo Mật WEB

[4] http://en.wikipedia.org/wiki/Nessus_(software) [5] https://www.youtube.com/watch?v=ial2z_4yR-s [6] https://www.youtube.com/watch?v=uIghTQ-McCo

Một phần của tài liệu Tìm hiểu về bảo mật mạng LAN và sử dụng công cụ nessus quét lỗ hổng bảo mật trong mạng LAN (Trang 40)