Kết quả thi nghiệm va đánh giá

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Phương pháp học tăng cường cho trình phát sinh mã khai thác tự động lỗ hổng bảo mật trên hợp đồng thông minh (Trang 67 - 76)

Thêm attack_ vào tên hàm và gọi đến nạp tiền vào hợp

CHƯƠNG 4. THÍ NGHIEM VA DANH GIA

4.1. Thiết lập thí nghiệm

4.1.3. Kết quả thi nghiệm va đánh giá

Chúng tôi tiến hành huấn luyện trên tập dataset bao gồm 17 hợp đồng

tồn tại 16 hong Reentrancy và 18 hợp đồng tồn tại lỗ hong Unprotected

self-destruct.

Huấn luyện dữ liệu

Chúng tôi đã thực hiện huấn luyện tác tử trên tập dữ liệu với các ngưỡng

episode 500, 1000, 5000. Kết quả đạt được như sau:

kà so

6° .®

i š

£0 HH Lầu

i Ÿ5 20 5 20

Fro toš

a °° 100 200 se

Episode

Proximal Policy Optimization

Hinh 4.1: Thuật toán Policy gradient va Proximal Policy Optimization tới ngưỡng episode 500

‘Transaction sequence length

° 200 00 600

Episode

Hinh 4.2: Thuật toán Policy gradient va Proximal Policy Optimization tới ngudng episode 1000

8 8 8

“Transaction sequence length 8

100 300

Episode

“0

tpode

600 1000

Fy

®

8

8

1000 2000 3000 4000

Episode Reinforce Algorightm

a =

#

&

‘Transaction sequence length 8

5 1000 — 200 3000 400 — 5900

Epsode Proximal Policy Optimization

Hành 4.3: Thuật toán Policy gradient va Proximal Policy Optimization tới ngưỡng episode 5000

Tw những lần chạy thực nghiệm chúng tôi đưa ra bang so sánh 2 thuật toán

như sau:

Bang 4.3: Dáng so sánh Policy gradient va Proximal Policy Optimization

Tiêu chí đánh giá Policy gradient PPO

Giá trị trung bình điểm số trong 0.62 0.51

5000 episode

Chiều dài trung bình của chuỗi giao 6.3962 5.1329

dịch được sinh ra trong 5000 episode

Tốc độ train trung bình 0.200320513 0.427350427

Thời gian chạy trong 500 episode 29 phút 16 phút

Thời gian chạy trong 1000 episode 48 phút 34 phút

Thời gian chạy trong 5000 episode | 5 tiếng 12 phút | 3 tiếng 15 phút

5Fừ day cho thay, càng huấn luyện thì cả 2 mô hình đều chưa hội tu, Policy gradient cho ra kết quả tốt hơn PPO, tuy nhiên càng huấn luyện trong thời

gian dài thì thời gian chạy càng lâu, ngược lại Proximal Policy Optimization

còn khá hạn chế về giá trị điểm số trung bình và chiều dài chuỗi giao dịch sinh ra chưa được tối ưu. Kết quả được phân tích theo từng tiêu chí:

— Giá trị trung bình điểm số trong 5000 episode:

Điểm số trung bình là một chỉ số quan trọng để đánh giá hiệu suất của mô hình. Trong trường hợp nay, Policy gradient và . Điểm số càng cao thể hiện khả năng tối ưu hóa tốt hơn của mô hình, do đó, Policy gradient có hiệu suất tốt hơn trong tiêu chí này.

— Chiều dài trung bình của chuỗi giao dịch được sinh ra trong 5000

episode:

Chiều dài trung bình của chuỗi giao dịch có thể đánh giá khả năng sinh

ra các giao dịch của mô hình. Trong trường hợp này, PPO có chiều dài trung bình của chuỗi giao dịch thấp hơn (5.1329) so với Poliey gradient (6.3962). Mô hình với chiều dai chuỗi giao dịch thấp hơn có thể cho thấy khả năng sinh ra các giao dịch ngắn hơn và tối ưu hơn.

— Tóc độ train trung bình:

Tóc độ train trung bình là thời gian mô hình cần để hoàn thành một lần huấn luyện trung bình. Trong trường hợp nay, Policy gradient có tốc

độ train trung bình thấp hơn (0.200320513) so với PPO (0.427350427). Tóc độ train càng nhanh thì mô hình được cập nhật và cải thiện nhanh

hơn.

— Thời gian chạy trong 500, 1000 và 5000 episode:

Thời gian chạy cho biết thời gian mô hình cần để hoàn thành một

số lượng episode nhất định. PPO có thời gian huấn luyện nhanh hơn khoảng gấp 2 lần so với Policy gradient điều này cho thấy PPO đã đánh bại được Poliey gradient trong tiêu chí này.

Từ bảng trên, Policy gradient có hiệu suất tốt hơn trong việc đạt điểm số cao hơn, có chiều dài chuỗi giao dịch ngắn hơn. Tuy nhiên, PPO có thời gian chạy ngắn hơn và tốc độ train trung bình thấp hon so với Policy gradient.

63

Tiêu chí đánh giá ContraMaster RLSCExploit

Tối ưu độ dài của chuỗi | Không Có

giao dịch được sinh ra

Khả năng đưa ra chuỗi | Có Có

giao dịch khai thác

Chọn giá trị hợp lý cho | Không Khong

tham số truyền vào các

hàm

Bang 4.4: So sánh công cụ ContraMaster va RLSCExploit

4.1.4. Đánh giá thực nghiệm

Chúng tôi đã tổng hợp tập dữ liệu VeriSmart[1] bằng cách chọn loc 50 file

Solidity gồm hai loại lõi: Re-entrancy và Suicidal (trong bài báo gốc[10] sử dụng 84 file solidity).

Tap dữ liệu được chia theo tỷ lệ 7:3 cho việc huấn luyện và kiểm thử tương ứng. Chúng tôi đã phân tích thủ công tất cả các tệp để đảm bảo quá trình huấn luyện có thể học hiệu quả từ tập dữ liệu đã thu thập.

Các phiên bản hợp đồng thông minh trong tập dữ liệu bao gồm 0.4.26 và 0.8.0, đại điện cho cả phiên bản cũ và phiên bản mới. Tỉ lệ phân phối giữa

phiên ban cũ và mới là 1:1, tương ứng với hai loại lỗi (Re-entrancy cho phiên bản 0.8.0 và Suicidal cho phiên ban 0.4.26).

O bước đánh giá thực nghiệm, chúng tôi sử dụng tập dữ liệu gồm 15 hợp

đồng thông minh có chứa lỗ hổng reentrancy và suicidal. Kết quả của thực

nghiệm dat được của RLSCExploit:

Bảng 4.5: Bảng thong kê kết quả thử nghiệm của mô hành RLSCExploit

Tiéu chí đánh giá Policy gradient | PPO Tong số

Số lượng hợp đồng đã được | 116 120 123

khai thác thành công trong tập

dt liệu huấn luyện

Số lượng hợp đồng đã được | 27 33 50

khai thác thành công trong tập

dữ liệu test

Tỉ lệ khai thác thành công | 94.31% 97.56% 100%

trong tập dữ liệu huấn luyện

Tỉ lệ khai thác thành công | 54.83% 81.16% 100%

trong tập dit liệu test

Nhóm đưa ra một số câu hỏi sau khi hoàn thành thực nghiệm:

Câu hỏi 1: Mô hình có khả năng khai thác các lỗ hổng mới không được

huấn luyện trước đó?

Mô hình RLSCExploit có khả năng khai thác các lỗ hổng mới không được huấn luyện trước đó trong một mức độ nhất định. Nếu lỗ hổng mới có các đặc điểm tương tự với các lỗ hổng đã được huấn luyện, mô hình có khả năng

tự động tìm ra cách khai thác. Tuy nhiên, nếu lỗ hổng mới có các đặc điểm đặc biệt yêu cầu có các kiểu dit liệu phức tạp như bytes và không tương tự với lỗ hổng đã biết, mô hình có thể gặp khó khăn trong việc khai thác.

Nếu lỗ hổng mới có độ phức tạp cao và yêu cầu các kiến thức chuyên môn đặc biệt, mô hình có thể không đạt được kết quả tốt trong việc khai thác.

Cần có sự cân nhắc về khả năng và giới hạn của mô hình trong việc xử lý

các lỗ hổng phức tạp và không được huấn luyện trước đó.

Câu hỏi 2: So với việc chọn ngẫu nhiên các chuỗi giao dịch thì việc chọn

chuỗi giao dịch có thứ tự như học tăng cường đem lại lợi ích như thế nào?

65

Đối với phương pháp chọn ngẫu nhiên các chuỗi giao dịch được đề cập trong bài báo [11] không đem lại hiệu suất tốt trong trường hợp file mã nguồn solidity có quá nhiều hợp đồng và nhiều hàm khác nhau. Khi sử dụng học tăng cường, chuỗi giao dịch có thứ tự

trên trạng thái và hành động trước đó.

ược xác định bởi chính mô hình dựa

Điều này tạo ra sự liên tục và hướng dẫn trong quá trình học, cho phép mô hình nắm bắt được quy luật và mô hình hóa hành vi tốt hơn so với việc cl họn ngẫu nhiên.

Mô hình RL có thể tự động khám phá các chuỗi giao dịch mới bằng cách

thử nghiệm các hành động khác nhau dựa trên kinh nghiệm đã học. Điều

này giúp mô hình khám phá và khai t 14c¢ những chuỗi giao dịch tiềm năng

có thể mang lại kết quả tốt khi sinh ra các chuỗi giao dịch.

4.1.5. Độ hiệu qua của công cụ RLSCexploit trong viéc phát

sinh chuỗi giao dich

Đảng 4.6: Bảng dánh giá các công cụ khai thác lỗ hổng

Tiêu chí đánh giá ContraMaster | Edchina RLSCExploit

Tối ưu độ dài của chuối | X ⁄ v

giao dich được sinh ra

Chọn giá trị phù hợp cho | X xX X

tham số truyền vào các

hàm

Khai thác lỗ hồng các hợp | X ⁄ ⁄

động phiên bản 0.8

Phát sinh chuỗi giao dịch | 4 X v

khai thác trong thời gian

ngắn hạn

Trong đó :

— X là không thỏa tiêu chí

— # là thỏa các tiêu chí

— O là không được đề cập đến.

67

Với bảng 4.6, chúng tôi đưa ra nhận định rằng công cu RLSCExploit với việc ứng dụng phương pháp học tăng cường, chiếm ưu thế cao về việc chọn chuỗi giao dịch khai thác và tiềm năng phát triển tốt hơn.

Chúng tôi tham khảo các công cụ tự động phát sinh chuỗi khai thác sử

dụng phương pháp symbolic execution có thể giúp tìm ra các giá trị đầu vào phù hợp cho các hàm trong hợp đồng, đây cũng là một hạn chế trong

mô hình của chúng tôi đưa ra.

Với RLSCexploit, chúng tôi tin rằng trong tương lai, việc kết hợp giữa phương pháp symbolic execution và học tăng cường sẽ đem lại hiệu quả tốt hơn và có thể đóng góp đáng kể vào phát triển công cụ khai thác lỗ hổng

và nâng cao bảo mật của các hợp đồng thông minh.

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Phương pháp học tăng cường cho trình phát sinh mã khai thác tự động lỗ hổng bảo mật trên hợp đồng thông minh (Trang 67 - 76)

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

(79 trang)