Tải bản đầy đủ (.docx) (30 trang)

Tìm hiểu công cụ nessus

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (490.68 KB, 30 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN

BÁO CÁO

ĐỀ TÀI: TÌM HIỂU CÔNG CỤ NESSUS
Giáo viên hướng dẫn: Đỗ Quang Trung
Nhóm sinh viên:

Lê Tuấn Anh
Đỗ Thị Thu Phương
Lê Văn Sơn
Nguyễn Băng Trâm

Lớp:

L02

1


Hà Nội, ngày 11 tháng 12 năm 2016

2


BÁO CÁO

ĐỀ TÀI: TÌM HIỂU CÔNG CỤ NESSUS
Giáo viên hướng dẫn: Đỗ Quang Trung
Nhóm sinh viên:



Lê Tuấn Anh (nhóm trưởng)
Đỗ Thị Thu Phương
Lê Văn Sơn
Nguyễn Băng Trâm

Lớp :

L02

NHẬN XÉT CỦA GIÁO VIÊN
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

3


MỤC LỤC

LỜI NÓI ĐẦU
Với nhu cầu trao đổi thông tin đang hết sức cần thiết như hiện nay, bắt buộc
các cơ quan, tổ chức phải hoà mình vào mạng toàn cầu Internet. An toàn và bảo

mật thông tin là cũng là một trong những vấn đề quan trọng hàng đầu, khi thực
hiện kết nối mạng nội bộ của các cơ quan, doanh nghiệp, tổ chức với Internet
hay thậm chí là các nhân với nhau. Ngày nay, các biện pháp an toàn thông tin
cho máy tính cá nhân cũng như các mạng nội bộ đã được nghiên cứu và triển
khai. Tuy nhiên, vẫn thường xuyên xảy ra các tình trạng như: các mạng bị tấn
công, có các tổ chức bị đánh cắp thông tin gây nên những hậu quả vô cùng
nghiêm trọng. Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên
Internet, các máy tính của các công ty lớn như AT&T, IBM, các trường đại học
và các cơ quan nhà nước, các tổ chức quân sự, ngân hàng,…một số vụ tấn công
với quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Hơn nữa những con
số này chỉ là phần nổi của tảng băng trôi. Một phần rất lớn các vụ tấn công
không được thông báo vì nhiều lý do, trong đó có thể kể đến nỗi lo mất uy tín
hoặc chỉ đơn giản những người quản trị dự án không hề hay biết những vụ tấn
công nhằm vào hệ thống của họ.
Trong quá trình bảo mật hệ thống mạng cho một công ty hay tổ chức việc sử
dụng các công cụ mạnh để kiểm tra hay phát hiện các lỗi bảo mật nhằm nâng
cao tính an toàn của hệ thống và toàn mạng là rất quan trọng. Có rất nhiều công
cụ trợ giúp trong việc xác định các lỗi bảo mất và những điểm nhạy cảm của hệ
thống như Retina của Eeye, hay GFI N.S.S của GFI… Nhưng công cụ được
các hacker và những nhà quản trị hệ thống yêu thích hơn cả vẫn là NESSUS,
4


công cụ được xếp hạng thứ nhất trong 75 công cụ bảo mật được đánh giá bởi tổ
chức Insecure (www.insecure.org). GFI LanGuard là một phần mềm thương
mại, trong khi đó Nessus lại là một phần mềm miễn phí hoàn toàn cho người
dùng cá nhân, với cơ sở dữ liệu về các lỗ hổng có thể được rất phong phú cho cả
hệ thống chạy Window hay Linux và được cập nhật thường xuyên.
Xuất phát từ lí do trên nên nhóm chúng em đã quyết định chọn đề tài: “Tìm
hiểu về công cụ Nessus”, để giới thiệu tới thầy và các bạn một công cụ hữu ích

và miễn phí để đảm bảo an ninh cho hệ thống mạng và máy tính của chính mình.
Nội dung chính của đề tài gồm 3 chương như sau:
Chương 1: Giới thiệu về công cụ Nessus
Chương 2: Cài đặt và sử dụng Nessus 6.9.1
Chương 3: Thực nghiệm
Do nguồn kiến thức cũng như thời gian nghiên cứu còn hạn hẹp nên trong
quá trình hoàn thành đề tài này, chúng em không thể tránh khỏi những thiếu sót,
nhóm chúng em rất mong nhận được những góp ý của thầy và các bạn để có thể
hoàn thiện đề tài hơn.
Chúng em xin chân thành cảm ơn!

5


CHƯƠNG 1 : GIỚI THIỆU VỀ CÔNG CỤ NESSUS
1.1.Lịch sự phát triển và hình thành

1.1.1.Lỗ hổng và điểm yếu
Lỗ hổng là bất kì lỗi lập trình hoặc cấu hình sai mà có thể cho phép một kẻ
xâm nhập truy cập trái phép. Điều này bao gồm bất cứ điều gì từ một mật khẩu
yếu đến một chương trình chưa được vá lỗi trong dịch vụ mạng. Lỗ hổng đã trở
thành yếu tố đằng sau hầu hết sâu mạng, các phần mềm gián điệp và những mã
độc khác.
Điểm yếu là nơi trong hệ thống dễ bị tấn công nhất nhưng nó chưa bị khai
thác để thực hiện hành vi trái phép.
=> Việc đánh giá các lỗ hổng được một công cụ thực hiện rất đầy đủ là Nessus.
1.1.2. Lịch sử hình thành
Vào năm 1998, danh sách các lỗ hổng vẫn chưa phát triển thành một cơ sở
dữ liệu đầy đủ và việc nghiên cứu được thực hiện kín trên ngân sách eo hẹp. Các
máy quét lỗ hổng thương mại thì có chi phí đắt đỏ. Còn máy quét lỗ hổng mã

nguồn mở mới nhất, the Security Administrator Tool for Analyzing
Networks(SATAN), thì không thể vượt qua được máy quét thương mại. Internet
thì phát triển tăng vọt dẫn đến sự gia tăng các thử nghiệm để kiểm tra tính an
toàn của nó. Từ đó, Renaud Deraison[2] đã tạo ra dự án mã nguồn mở được gọi
là Nessus. Đó là câu trả lời cho việc giá của máy quét thương mại ngày càng
tăng và sự trì trệ của dự án SATAN. Ngay lập tức, cộng đồng sử dụng Nessus đã
phát triển nhanh chóng.
6


Ngày 5 tháng 10 năm 2005, Tenable Network Security, một công ty do
Renaud Deraison đồng sáng lập, thông báo rằng phiên bản tiếp theo của Nessus,
Nessus 3, sẽ không còn mã nguồn mở nữa. Cơ cấu( engine) của Nessus 3 thì vẫn
miễn phí cho phép cộng đồng phát hành các bản cập nhật plugin nhưng chi phí
cho dịch vụ và rà soát lỗ hổng mới nhất thì được tính. Một vài nhà phát triển đã
chia thành 2 hướng phát triển độc lập dựa trên Nessus như OpenVAS và PorzWahn. Nessus 2 vẫn được cập nhật khi Nessus 3 đã phát hành được một thời
gian.
Nessus có thể chạy trên nhiều nền tảng hệ điều hành khác nhau, bao gồm cả
UNIX, LINUX, Mac OS X, Windows. Nessus cho phép bạn quét từ xa để xác
định mạng của mình có bị xâm nhập hay không và nó cũng cung cấp các tính
năng để quét cục bộ trên một máy tính cụ thể.
Dowload phiên bản mới nhất về cài đặt tại:
/>1.2 Tìm hiểu ngôn ngữ NASL
1.2.1. NASL là gì?
NASL (Nessus Attack Scripting Language) là một ngôn ngữ kịch bản được
thiết kế cho các máy quét Nessus. Nó cho phép bất cứ ai cũng có thể viết một
thử nghiệm cho một lỗ hổng bất kỳ. NASL là một ngôn ngữ thông dịch, cho
phép người sử dụng có thể thực thi ngay câu lệnh vừa được đưa vào. NASL có
một thuận lợi lớn cho người muốn tìm hiểu, đó là cú pháp của nó gần giống với
ngôn ngữ C (về cách khai báo, các toán tử, vòng lặp…). Nó không có các thành

phần phức tạp con trỏ trong C, khi thực hiện viết một script chúng ta cũng không
cần quan tâm đến loại đối tượng, không cần phải khai báo các biến trước khi sử
dụng chúng mà chỉ cần tập trung vào các thử nghiệm bảo mật mà chúng ta muốn
sử dụng. Chính những điều này đã khiến cho ngữ pháp của NASL trở lên đơn
giản và dễ hiểu hơn với người dùng.
Đầu tiên là NASL1 ra đời với hơn 1000 lỗi kiểm tra bảo mật. Ban đầu tốc độ
không được xem là vấn đề đáng quan tâm nhất. Khi số lượng plugin tăng lên,
người dùng sử dụng Nessus để quét nhiều host hơn thì NASL1 thực sự trở lên
chậm hơn cho những tác vụ này. Năm 2001, khi Michel Arboi viết lại thư viện
libnasl để thực hiện mở rộng ngôn ngữ và sửa chữa những khuyết điểm của
NASL1, thư viện được viết lại có tên NASL2. Kể từ phiên bản 3.0, NASL2
được tích hợp sẵn vào trong engine.
7


* Quy tắc cơ bản với NASL:
• Chú thích được bắt đầu với một dấu “#” và chỉ có tác dụng chú thích trên dòng
hiện tại.
• Chú thích sẽ được trình thông dịch bỏ qua khi đọc đến nó.
• Có thể thêm các khoảng trắng tùy ý giữa 2 toán tử.
Chuỗi sẽ được phân tích bởi bộ phân tích từ vựng Bộ phân tích sẽ trả lại thông
báo quá dài nếu nó gặp một diễn tả như: a+++++b (nó sẽ hiểu thành a++ ++ +
b). Khi đó ta nên viết : a++ + ++b. Không thể thêm khoảng trắng vào giữa chuỗi
đa ký tự.
Ví dụ: x = a + + (nên viết x = a++)
1.2.2. Cấu trúc ngôn ngữ NASL
1.2.2.1 Kiểu dữ liệu
 Kiểu nguyên
NASL2 sử dụng cấu trúc như C, hệ cơ số 8 bắt đầu là 0 và hệ cơ số 16 bắt đầu
bằng 0x.

 Kiểu chuỗi
Có hai dạng chuỗi là chuỗi không thể chuyển đổi và chuỗi có thể chuyển đổi:
• Chuỗi không thể chuyển đổi: là chuỗi được nhập vào giữa hai dấu nháy
kép “” (ví dụ: “hello\n”), khi đó mọi ký tự của chuỗi sẽ được giữ nguyên
(dấu \ vẫn sẽ được giữ nguyên). Có thể chuyển chuỗi này sang chuỗi có
thể chuyển đổi bằng cách sử dụng các hàm xử lý chuỗi.
• Chuỗi có thể chuyển đổi: là chuỗi được nhập vào giữa hai dấu nháy đơn ‘’
(ví dụ: ‘hello\n’), khi đó một vài ký tự của chuỗi sẽ được tự động chuyển
đổi (dấu \n sẽ thực hiện tự động xuống dòng).
 Mảng
8


Hỗ trợ mảng 1 chiều, chỉ số của mảng sẽ được đánh số bắt đầu từ 0. Các phần tử
trong mảng có thể là dữ liệu kiểu nguyên hoặc kiểu chuỗi.
 Null
 Được gán cho các biến chưa khởi tạo giá trị hay là giá trị trả về cho những
hàm khi gặp lỗi.
 Booleans
Không phải là một kiểu dữ liệu độc lập. Các toán tử so sánh sẽ trả về về 0 nếu là
FALSE hay 1 nếu là TRUE. Hay những giá trị chuyển đổi khác như:
• Giá trị chưa xác định hay giá trị null sẽ là FALSE.
• Số nguyên là TRUE nếu không phải là NULL, là FALSE nếu là 0.
• Chuỗi sẽ là TRUE nếu nó không phải là chuỗi rỗng, không bằng 0.
• Mảng sẽ luôn là TRUE cho dù nó là rỗng hay không.
1.2.2.2 Các toán tử
 Toán tử thông thường
• = toán tử gán
o x = 66. Đặt 66 vào biến x. Giá trị x được gán trước đó sẽ mất.
o x = y. Lấy giá trị của biến y gán cho biến x.

• [ ] toán tử chỉ chỉ số mảng
o Một biến không thể vừa là giá trị nguyên, hay là chuỗi, là null mà lại vừa là
kiểu mảng tại cùng một thời điểm. Nếu ta thay đổi kiểu dữ liệu thì kiểu dữ liệu
trước đó sẽ bị mất.
o Ta có thể trích xuất ký tự từ một chuỗi (ví dụ: str = “hello” -> str[1] = e).
9


o Đặt từng giá trị cho từng phần tử của mảng. (ví dụ: str[1] = “i or h”) -> str = hi
or hello.
 Toán tử toán học
NASL2 không có quy định chặt chẽ với kiểu nguyên. Trình thông dịch cài
đặt với kiểu “int” nguyên mẫu của C, là kiểu 32 bit trên hầu hết các hệ thống,
hoặc 64 bit trên một số hệ thống khác. Các phép toán học có thể dùng:
• + :phép cộng 2 số nguyên.
• - : phép trừ 2 số nguyên.
• *:phép nhân 2 số nguyên.
• / :phép chia lấy phần nguyên. NASL2 không có kiểu số thực. Phép chia cho 0
sẽ trả lại 0 hoặc gây lỗi trình thông dịch.
• %: phép chia lấy phần dư.
• **: phép mũ, lũy thừa.
 Toán tử tựa C
NASL2 cung cấp một số toán tử giống C:
• ++: thực hiện cộng trước (++x: tăng biến x lên 1 đơn vị và trả về kết quả x sau
khi tăng) hoặc thực hiện cộng sau (x++: tăng biến x lên 1 đơn vị nhưng trả về
giá trị x trước khi tăng).
• -: thực hiện trừ trước (-x) hoặc thực hiện trừ sau (x-). Giá trị trả về tương tự
như với ++.
• +=, -=, *=, /=, %=: có chức năng tương tự như C.
• <<= và >>= tương tự như trong C.

 Toán tử chuỗi
• +: phép nối chuỗi.
10


• -: loại bỏ các phần của chuỗi.
• [ ]: trích xuất một ký tự của chuỗi.
• ><: so sánh chuỗi có chứa trong nhau hay không, nếu 1 trong 2 chuỗi chứa
chuỗi còn lại sẽ cho kết quả là TRUE, ngược lại là FALSE. Ví dụ:
s1 = “hi”; s2 = “hello”. “h” >< “hello” sẽ trả về TRUE.
• >!<: so sánh chuỗi không chứa trong nhau. Nếu 2 chuỗi không chứa trong nhau
thì sẽ trả về TRUE, ngược lại là FALSE
• =~: là một toán tử (regex match), có chức năng như một lời gọi tới hàm ereg.
• !~: là một toán tử (regex don’t match), có chức năng ngược với ereg.
 Toán tử so sánh
• ==: so sánh 2 giá trị, nếu bằng nhau là TRUE, ngược lại là FALSE.
• !=: sẽ trả về TRUE nếu 2 giá trị khác nhau và là FALSE nếu 2 giá trị khác
nhau.
• >: so sánh hơn.
• >=: so sánh lớn hơn hoặc bằng.
• <: so sánh nhỏ hơn.
• <=: so sánh nhỏ hơn hoặc bằng.
 Toán tử logic
• !: phép phủ định của logic. Ví dụ, !TRUE _ FALSE.
• &&: phép “and” logic.
• ||: phép “or” logic.
 Toán tử với bit
11



• ~: thuật toán phủ định. Ví dụ: ~0 = 1.
• &: thuật toán and.
• |: thuật toán or.
• ^: thuật toán phép xor.
• <<: phép dịch trái bit
• >>: phép dịch phải bit.
• >>>: phép dịch logic sang phải.
 Các phép xử lý khác
Break: dùng break để thoát khỏi một hàm hoặc một script.
Nếu các đối số khác kiểu nhau, phép + có thể được dùng để đổi kiểu tự động:
• Một chuỗi không chuyển đổi cộng với một chuỗi chuyển đổi sẽ cho ta một
chuỗi chuyển đổi. ví dụ: “hello\n” + ‘hi’ -> ‘hello\\nhi’.
• Nếu một trong 2 đối số là chuỗi không chuyển đổi thì đối số còn lại sẽ
được chuyển thành kiểu chuỗi không chuyển đổi. Ví dụ: “hello” + 2 ->
“hello2”.
• Nếu một trong các đối số là kiểu nguyên, đối số còn lại sẽ được chuyển
sang kiểu nguyên.
• Trong các trường hợp khác sẽ được trả về giá trị NULL.
Phép trừ sẽ có chuyển đổi tương tự như phép cộng.
Không nên sử dụng các biến chưa được khởi tạo. Để các script có thể hoạt động,
giá trị NULL sẽ được định nghĩa thay bằng giá trị 0 hoặc “” (có thể là integer
hoặc string). Vì vậy cần kiểm tra xem biến đã được định nghĩa và khởi tạo hay
chưa bằng isnull () trước khi dùng.
1.2.3 Vòng lặp và luồng điều khiển
 for (expr1; cond; expr2) block; tương tự như cấu trúc for trong C.
12


ví dụ: sử dụng vòng for in ra các số từ 1 ->10
for(i=1;i<=10;i++){ display(i,’\n’)};

 foreachvar (array) block;lặp tất cả các phần tử trong mảng. Lặp các giá trị
lưu trong mỗi phần tử của mảng.
 while(cond) block; thực hiện khối lệnh với điều kiện là TRUE, sẽ bỏ qua
khối lệnh không thực hiện nếu điều kiện là FALSE.
 repeat block; until (cond); thực hiện khối lệnh với điều kiện là TRUE.
Khối lệnh được thực hiện ít nhất 1 lần.
 Break; thực hiện thoát khỏi vòng lặp.
 Continue; bỏ qua vòng lặp hiện tại và thực hiện vòng lặp tiếp theo.
 Return; trả về giá trị của hàm hiện tại.
1.2.4 Khai báo biến, hàm
 Khai báo biến:
NASL1 chỉ có biến toàn cục, với NASL2 có sử dụng cả biến toàn cục và
biến cục bộ. Biến cục bộ được tạo và tồn tại trong các hàm, được giải phóng khi
kết thúc hàm. Trình thông dịch sẽ thực hiện kiểm tra biến trong hàm hiện tại
được thực hiện rồi kiểm tra bao quát ra ngoài hàm cho đến khi thấy xuất hiện
biến toàn cục.Thường thì chúng ta sẽ không cần khai báo biến: bởi hoặc là nó đã
tồn tại, hay nó được sử dụng trong hàm hiện tại, hay nó được gọi bởi hàm khác.
Tuy nhiên, điều này có thể trở lên không an toàn trong một số trường hợp sau:
• Khi chúng ta muốn dùng một biến toàn cục bên trong một hàm và không
thể chắc chắn được rằng biến đã được tạo ra ở hàm chính, hay được tạo ra
như một biến cục bộ trong hàm được gọi tới.
• Khi chúng ta muốn chắc chắn là đang tạo ra một biến cục bộ và không ghi
đè lên biến toàn cục cùng tên.
Vì vậy, chúng ta có thể khai báo biến như sau:
13


• Local_var var;
• Global_var var;
Nếu biến đã tồn tại trong hàm thì ta sẽ nhận được một thông báo lỗi, nhưng nó

vẫn sẽ làm viêc.
 Khai báo hàm:
Cấu trúc: function name (argname1, argname2) block;
Danh sách các đối số có thể là rỗng, nhưng không được trùng tên hàm. Đối số có
thể được dùng mà không cần khai báo.
 Truy xuất tham số hàm:
Trong một hàm NASL, đối số được truy cập như một biến cục bộ. Nếu hàm
nhận đối số không định danh, việc truy xuất được thực hiện thông qua mảng
_FCT_ANON_ARGS15.
Biến này sẽ là NULL nếu trình thông dịch thấp hơn NASL_LEVEL 2190. Ta
nên khai báo ở đầu của script nếu cần đến biến này.
if (NASL_LEVEL < 2190) exit(0); # _FCT_ANON_ARGS is not implemented
• Chúng ta đang thiết lập tới biến _FCT_ANON_ARGS chưa được định nghĩa.
Lúc này bộ nhớ sẽ lãng phí và ta không thể đọc lại giá trị.
• Việc sử dụng _FCT_ANON_ARGS để đọc các đối số được định danh là không
nên. Lúc này sẽ xuất hiện một sự bảo vệ, giá trị NULL sẽ được trả về.
 Gọi hàm:
• Ví dụ với hàm có đối số:
function fact(x)
{
14


local_var i, f;
f = 1;
for (i = 1; i <= x; i ++) f *= i;
return f;
}
display("3 ! = ", fact(x: 3), "\n");
• Ví dụ với hàm có đối số không định danh:

function fact()
{
local_var i, f;
f = 1;
for (i = 1; i <= _FCT_ANON_ARGS[0]; i ++) f *= i;
return f;
}
display("3 ! = ", fact(3), "\n");
• Kết hợp cả 2 phương pháp trên:
function fact(prompt)
{
local_var i, f;
f = 1;
for (i = 1; i <= _FCT_ANON_ARGS[0]; i ++)
15


{
f *= i;
display(prompt, i, ’! = ’, f, ’\n’);
}
return f;
}
n = fact(3, prompt: ’> ’);
1.3.Các thành phần của Nessus
Cũng giống như một phần của nhiều chương trình tuân thủ an ninh, đánh giá
an ninh nội bộ được yêu cầu và bao gồm quét lỗ hổng trên mạng. Có khá nhiều
tiêu chuẩn tuân thủ cũng đòi hỏi một tổ chức để cung cấp bằng chứng về các
hoạt động rò quét lỗ hổng. Những biểu đồ cung cấp một bản tóm tắt các hoạt
động quét và các thuộc tính được sử dụng trong quá trình quét. Máy quét lỗ

hổng Nessus là một công cụ nhanh chóng và đa dạng giúp các tổ chức thuộc mọi
quy mô để có thể kiểm toán các tài sản của mình cho các lỗ hổng an ninh.
Tính năng Nessus phát hiện tốc độ cao (high-speed discovery),kiểm toán cấu
hình (configuration auditing), hồ sơ tài sản (asset profiling), phát hiện dữ liệu
nhạy cảm và phân tích lỗ hổng của thế trận an ninh của bạn (vulnerability
analysis of your security posture). Máy quét Nessus có thể được phân phối trong
suốt toàn bộ doanh nghiệp, bên trong DMZs, và qua các mạng vật lý riêng biệt.
Nessus vẫn hiện thông qua cập nhật tự động kéo kiểm tra lỗ hổng mới nhất trực
tiếp từ thể đứng vững được.
Các bảng điều khiển và các thành phần của nó có sẵn trong Feed
SecurityCenter, một bộ sưu tập toàn diện của biểu đồ, báo cáo, phiếu bảo đảm và
tài sản. Các bảng điều khiển có thể dễ dàng nằm trong Security Center thức ăn
theo thể loại Discovery & Detection.
Khi biết về các tùy chọn quét Nessus khác nhau hoặc các tính năng khác
nhau có thể là một lợi ích lớn trong sản xuất quét lỗ hổng chính xác hơn và
nhanh hơn. Thực hành an toàn đòi hỏi phải thực hiện quét dễ bị tổn thương, và
yêu cầu một tổ chức để cung cấp bằng chứng về các hoạt động quét. Tóm tắt
bảng điều khiển Nessus quét hiển thị Nessus Thời gian quét, Web Apps Test,
16


Nessus Scanner Version, Nessus Port Scanner loại, Nessus Scan Options Status,
và Kiểm tra Credential, trong khi Tóm tắt bảng điều khiển Nessus Scan Mạng sẽ
cung cấp một bản tóm tắt của quét Nessus mỗi 24-bit subnet mask class C mạng.
Trong phiên bản Nessus 5.2.7, bảng điều khiển Nessus quét có 7 thành phần
hiển thị tùy chọn khác nhau, phiên bản, và kết quả quét Nessus của mạng. Ba ma
trận hiển thị các tùy chọn quét (matrices display scan options), khoảng thời gian
quét (scan durations), và các thông tin được sử dụng trong quá trình quét. Hai
ma trận hiển thị máy quét cổng (matrices display port scanners) được sử dụng và
nếu kiểm tra các ứng dụng web đã được kích hoạt. Hai thành phần hiển thị các

phiên bản khác nhau của máy quét Nessus và các lỗi được phát hiện trong quá
trình quét Nessus.
Trong phiên bản Nessus 6.9.1 các thành phần thu gọn lại còn 2 thành phần là
Scans (quét) và (Policies) chính sách. Phiên bản này đã thu gọn hơn rất nhiều và
sử dụng đơn giản hiệu quả hơn phiên bản trước đây. Dưới đây là 3 mô hình
Nessus cơ bản đang được sử dụng :
1.3.1. Kiến trúc của Nessus với mô hình Client – Server
Đầu tiên, máy quét lỗ hổng đều dựa trên client. Một nhà tư vấn dùng máy
tính của mình để vào trang web của khách hàng và đứng ở vị trí tốt nhất trong
mạng để tiến hành quét. Quét trong bất kì không gian địa chỉ mạng nào có thể
mất một ngày hoặc đến vài ngày, phụ thuộc vào chiều rộng của mạng và độ sâu
của thông số quét. Điều này làm cho máy tính không làm được gì trong thời gian
quét. Nessus đã đưa ra mô hình client/server để giải quyết vẫn đề trên.
Sau khi kết nối đến Server, server sẽ phân tách client để quét lỗ hổng và
client vẫn có thể dùng tài nguyên của mình cho việc khác đến khi công việc
hoàn thành. Mô hình kiến trúc này cung cấp sự linh hoạt để triển khai máy quét
(server) và kết nối với giao diện đồ họa của khách hàng (client) từ bất kì máy
tính nào với một trình duyệt web. Điều này giúp giảm chi phí quản lý, một máy
chủ có thể được truy cập bởi nhiều máy khách.
Mô hình này sẽ dựa vào kết quả sau khi máy Client yêu cầu kiểm tra, và dựa
vào những lỗi đã được xác định có thể đưa ra những những hướng giải quyết
một cách nhanh nhất.

17


Hình 1.3.1.Mô hình Client – Server trong Nessus
1.3.2. Mô hình Nessus Plugin
Nessus hoạt động dựa trên dữ liệu từ các Plugin. Plugin là một chương trình
chứa các dữ liệu về lỗ hổng trong hệ thống. Plugin chứa các kịch bản được viết

bằng NASL(Nessus Attrack Scripting Language). Các kịch bản là các phương
thức kiểm tra lỗ hổng trên hệ thống. NASL cho phép các nhà phân tích an ninh
nhanh chóng tạo ra các Plugin riêng của họ. Nessus sử dụng hơn 55.000 plugin
khác nhau, bao gồm cả các lỗ hổng cục bộ và từ xa.

Hình 1.3.2.Mô hình Nessus Plugin
Các máy Client sẽ gửi yêu cầu đến Nessus Plugin(được thiết lập trong quá
trình cấu hình quét). Yêu cầu này sẽ định danh Plugin mà Client muốn sử dụng.
Sau khi nhận được yêu cầu từ Client, Nessus Plugin sẽ tiến hành quét hệ thống
18


mà Client yêu cầu theo kịch bản có sẵn trong Plugin. Sau khi quá trình quét
hoàn tất thì Nessus Plugin sẽ gửi kết quả của quá trình quét cho Client.
1.3.3. Mô hình Nessus Knowledge Base
Kiến trúc Knowledge base cho phép những plugin của ngày hôm nay tận
dụng dữ liệu thu thập được bởi các plugin trước đó. Nó đơn giản là danh sách
các thông tin thu thập được về một máy chủ. Ta xét một kiểm tra an ninh để
kiểm tra sự tồn tại của một máy chủ web và nếu tìm được thì kiểm tra xem
HTTP có thực sự đang chạy không? Plugin có khả năng thiết lập giá trị biến
trong Nessus knowledge base cho host. Các kịch bản NASL sẽ thực thi và tìm
thấy Apache đang chạy trên host từ xa.
Knowledge Base là danh sách các thông tin thu thập về một máy chủ đang
được thử nghiệm. Nó cho phép bổ sung, hoặc thử nghiệm để chia sẻ thông tin về
hệ thống đích, cho phép kiểm tra thông minh hơn và sử dụng thận trọng hơn
băng thông và khả năng xử lý. Knowledge Base cho phép các Plugin sau tận
dụng dữ liệu của Plugin trước đó. Điều này giúp Nessus dễ dàng mở rộng và
tăng tốc độ thực thi.
Ví dụ, chúng ta thực hiện quét kiểm tra lỗi bảo mật trên Server
DomainName.com, quá trình kiểm tra hoàn tất và không thấy một lỗi bảo mật

nào có trên đó. Nhưng lúc này Nessus Knowledge Base được tạo ra cho máy chủ
này lại cho thấy khoảng 2000 lỗi. Người ta phải nhớ rằng Nessus Knowledge
Base cũng chỉ có khoảng 1725 lỗi đã được trusted. Và những thông số đó được
sử dụng cho những nghiên cứu sau này để đảm bảo rằng liên tục cập nhật những
lỗi bảo mật mới nhất.

19


CHƯƠNG 2: CÀI ĐẶT VÀ SỬ DỤNG NESSUS 6.9.1
2.1.Kiểm tra độ an toàn của hệ thống với Nessus
Một trong những mối quan tâm hàng đầu của các nhà quản trị hệ thống là
làm sao biết được hệ thống của mình bị hổng ở chổ nào để có thể vá lại hoặc để
tấn công hay đột nhập vào nếu người quan tâm đến chúng là các hacker. Có rất
nhiều công cụ trợ giúp trong việc xác định các lỗi bảo mất và những điểm nhạy
cảm của hệ thống như Retina của Eeye, hay GFI N.S.S của GFI… Nhưng công
cụ được các hacker và những nhà quản trị hệ thống yêu thích hơn cả vẫn là
nessus, công cụ được xếp hạng thứ nhất trong 75 công cụ bảo mật được đánh giá
bởi tổ chức Insecure
Lý do mà Nessus được yêu thích như vậy bởi vì chúng có một cơ sở dữ liệu
rất lớn về lổ hổng hệ thống được cập nhật thường xuyên, giao diện dễ sử dụng
và kết quả có thể được lưu lại dưới nhiều dạng khác nhau như biểu đồ, XML hay
PDF để có thể dễ dàng tham khảo. Ngoài ra khi sử dụng Nessus chúng ta không
phải lo lắng về vấn đề bản quyền vì đây là một chương trình miễn phí. Trong bài
viết này tôi sẽ trình bày phương pháp cấu hình và cài đặt nessus trên một hệ
thống Linux FC2 và tiến hành kiểm tra lỗi của một số máy chủ chạy hệ điều
hành Windows, cùng với giải pháp phòng chống Nessus cũng như các trường
hợp tấn công DOS dựa vào honeypot.
2.2.Cài đặt và sử dụng công cụ Nessus 6.9.1 64bit
Sử dụng Nessus, người ta có thể quét nhiều loại lỗ hổng mà bao gồm truy

cập từ xa phát hiện lỗ hổngremote access flaw detection, misconfiguration alert,
denial of services against TCP/IP stack, preparation of PCI DSS audits, malware
detection, sensitive data searches…
Ngoài các chức năng cơ bản nêu trên, Nessus có thể được sử dụng để quét
nhiều mạng IPv4, IPv6 và hybrid networks. Bạn có thể thiết lập lịch trình quét
để chạy theo nhu cầu của mình.

20


Đầu tiên chúng ta cần tải phần mềm này về máy:

Sau đó tiến hành đăng kí tài khoản với Nessus :

21


Sau khi chúng ta cài đặt xong và đã đăng kí xong, chúng ta cần log-in vào
Nessus thông qua trang đang nhập với tài khoản đã tạo ra.

Đây sẽ là giao diện mở đầu khi bạn đăng nhập được vào Nessus:

22


Để bắt đầu sử dụng công cụ này, quét lỗi, bạn nên thiết lập nên các chính
sách (Policies) để áp dụng vào 1 phiên làm việc (1 lần quét). Có rất nhiều loại
mẫu máy quét (scanner templates) bạn có thể lựa chọn ở đây :

VD : bạn có thể chọn thiết lập chính sách để quét cho chính mạng LAN hay

Wifi mà mình đang sử dụng bằng cách chọn vào Basic Network Scan. Đây sẽ là
giao diện của Basic Network Scan :

23


Tại đây bạn có thể thực hiện những cài đặt cơ bản cho chính sách của mình
như: đặt tên, mô tả, cấp quyền (permissions), thực hiện thẩm định (assessment)
hay cải tiến (advanced).

Hay phần Advance(Cải tiến), tại đây bạn có thể tùy chọn hiệu suất
(performance options) cho quá trình tiến hành Scan với chính sách bạn đang cài
đặt:

24


Để thực hiện Scan, bạn cũng cần tạo ra 1 Scan cho mình, tại đây bạn cần
điền 1 số thông tin quan trọng như tên (name), Folder (thường sẽ là My scans)
và quan trọng nhất là địa chỉ ip của máy mà bạn muốn thực hiện quá trình Scan :

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×