Kết quả quá trình thực nghiệm

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Nghiên cứu phương pháp fuzzing trong tự động hóa phát hiện lỗ hổng phần mềm dựa trên học tăng cường (Trang 52 - 56)

Bang 4.2: Tổng quan các trình fuzzing được sử dụng trong quá trình thực

4.4. Kết quả quá trình thực nghiệm

Ở phần này chúng tôi trình bày kết quả thực nghiệm Dr. CEuzz sau khi áp

dụng mô hình học tăng cường đã được huấn luyện, thông qua các tiêu chí được

nhắc đến ở mục 4.2.

4.4.1. Số lượng nhénh đã được thực thi

Số lượng nhánh đã thực thi là tiêu chí chính để đánh giá khả năng của Dr. CFuzz. Mục tiêu của Dr. CFuzz là có thể tạo ra thêm các đầu vào có khả năng thỏa mãn các nhánh điều kiện phức tạp giúp trình fuzzing có thể gia tăng độ

phủ cạnh. Số lượng nhánh được thực thi càng cao, chứng tỏ mô hình concolic

execution hoc tăng cường sâu càng hiệu quả trong việc tạo ra các đầu vào có khả năng bao phủ được nhiều đoạn mã. Số lượng nhánh được thực thi trong quá

trình fuzzing được thống kê ở bảng 4.3

AFL++ | Driller | Dr. CFuzz

CADET _ 00001 173 252 368

CADET 00003 312 257 295 CROMU 00016 1103 466 1155 KPRCA_ 00032 1694 1213 1746 YANO1 00001 773 602 782 YANO1 00016 552 520 553

Trung binh 767,8 551,7 816,5 Bang 4.3: Số lượng nhánh các trinh fuzzing phủ được trong 5 tiếng

Có thể thay Dr. CFuzz đạt được số lượng nhánh thực thi cao nhất ở 5 trong

tổng số 6 chương trình được thử nghiệm, ngoại trừ chương trình CADET _ 00003,

ở chương trỡnh này Dr. CFuzz xếp thứ hai. ệ cỏc chương trỡnh này Dr. CEuzz

có số lượng nhánh thực thi cao hơn hắn so với các trình fuzzing được so sánh,

với ngoại lệ ở chương trình YAN01_ 00001 và YANO1_ 00016 chỉ trội hơn một

khoản nhỏ. Trung bình Dr. CFuzz đạt được số lượng nhánh thực thi cao hơn

AFL++ 6,34% va cao hơn Driller-AFL 48%. Điều này cho thay Dr. CFuzz có

45

khả năng gia tăng độ phủ cạnh khi được tích hợp concolic execution kết hợp với học tăng cường sâu. Tuy nhiên Dr. CFuzz vẫn yếu thế hơn so với các trình fuzzing khác ở một số chương trình nhất định.

4.4.2. Số lượng ngoại lệ gây ra khi fuzzing

Số lượng ngoại lệ gây ra là tiêu chí thường được sử dụng để đánh giá độ hiệu

quả của một trình fuzzing. Trong khoảng thời gian cho trước, trình fuzzing tìm

được càng nhiều ngoại lệ thì càng hiệu quả. Bảng 4.4 thống kê số lượng ngoại

lệ mà chương trình tìm được bởi Dr. CFuzz và các trình fuzzing AFL+-+ Driller

trong 5 tiếng fuzzing.

AEL++ | Driller | Dr. CFuzz

CADET _ 00001 147 296 666

CADET 00003 417 310 340

CROMU 00016 559 494 583

KPRCA_ 00032 564 280 593

YANO1 00001 190 0 160 YANO1_ 00016 194 136 177 Trung bình 345,2 252,7 419,8

Bang 4.4: Số lượng ngoại lệ các trinh fuzzing gay ra trong 5 tiếng

Dr. CFuzz đạt được số ngoại lệ gây ra cao nhất trong 3 trên tổng số 6 chương

trình được thử nghiệm. Số lượng ngoại lệ được gây ra bởi Dr. CFuzz cũng

không quá vượt trội so với các trình fuzzing khác, ngoại trừ ở chương trình

CADET 00001, Dr. CFuzz gây ra 666 ngoại lệ, cao áp dao so với 2 trình fuzzing

còn lại. Ở chương trình YANO1 00001 Dr. CFuzz thể hiện kém hơn so với

AFL++, nhưng vẫn gây ra được ngoại lệ, hơn so với Driller-AFL không thể gây

ra được ngoại lệ nào. Trung bình Dr. CFuzz gây ra được số ngoại lệ hơn 21,6% so

với AFL++ và hơn 66,12% so với Driller-AFL. Có thể thay Dr. CFuzz vẫn chưa thể hiện tốt lắm trong việc tạo ra các đầu vào có khả năng gây ra lỗi chương

trình.

46

4.4.3. Thời gian tim được ngoại lệ đều tiên khi fuzzing

Thông thường các trình concolic execution sẽ thực hiện khám phá các đường

thực thi sâu, chứa nhiều nhánh mã [9]. Điều này có thể khiến trình fuzzing bỏ qua các đường thực thi ít nhánh mã, khiến cho việc khai thác các lỗ hong nằm

ở các vùng mã dễ tiếp cận trở nên kém hiệu quả. Việc đo lường thời gian tìm

được ngoại lệ đầu tiên có thể giúp ta biết được độ hiệu quả của trình fuzzing trong khả năng phát hiện các 16 hong ở những đoạn mã dễ có thể tiếp cận. Bảng 4.5 cho thống kê thời gian tìm được lỗ hồng đầu tiên của các trình fuzzing trong

quá trình thực nghiệm.

AEL++ | Driller | Dr. CFuzz CADET 00001 21 42 2

CADET 00003 4 19 1 CROMU 00016 7 77 15 KPRCA 00032 1 1 0.13 YAN01_ 00001 760 H 2471 YANO1 00016 5 20 12

Bảng 4.5: Thời gian các trình fuzzing tim ra ngoại lệ đầu tiên (giây)

Dr. CFuzz tim ra được ngoại lệ sớm nhất trong 3 trên tổng số 6 chương trình

được thử nghiệm. Tuy vậy nhưng khoảng cách thời gian so với các trình fuzzing

khác cũng không đáng kể, chỉ ngoại trừ ở chương trình CADET 00001, Dr. CFuzz đạt được thời gian tìm ra lỗi áp đảo, chỉ trong 2 giây. Có thể thay ở hang mục này, Dr. CFuzz thể hiện chưa tốt lắm.

4.4.4. Đánh giá kết quả thực nghiệm

Qua quá trình thực nghiệm, có thể thấy được Dr. CFuzz có kha năng gia tăng

độ bao phủ mã thông qua áp dụng phương pháp học máy tăng cường vào kỹ thuật concolic execution. Tuy nhiên khả năng khai thác lỗi của Dr. CFuzz vẫn

chưa thật sự hiệu quả. Diéu này bắt nguồn từ việc các đầu vào được tao ra bởi trình concolic execution chỉ có khả năng vượt qua các câu lệnh điều kiện ràng

47

buộc phức tạp của nhánh thực thi chứ chưa thể khai thác được một lỗ hong cu thể có trong chương trình. Việc này khó có thé thực hiện được ở mô hình hiện tại do sự phức tạp và đa dạng của các lỗ hồng, khiến các đầu vào cũng cần phải được xây dựng với độ phức tạp tương đương để có thể khai thác thành công một 16 hong nhất định. Tuy nhiên điều này là khả thi với phướng pháp học may đối kháng, có thể kết hợp với giải pháp hiện tại được đề xuất để nâng cao khả

năng khai thác lỗi cho giải phấp này.

48

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Nghiên cứu phương pháp fuzzing trong tự động hóa phát hiện lỗ hổng phần mềm dựa trên học tăng cường (Trang 52 - 56)

Tải bản đầy đủ (PDF)

(61 trang)