1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền

75 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Tác giả Ngô Khánh Khoa
Người hướng dẫn TS. Phạm Văn Hậu
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 75
Dung lượng 51,1 MB

Cấu trúc

  • Chương 2. TONG QUAN VE TINH HÌNH NGHIÊN CỨU (16)
    • 2.2.2. Cefuzz: Phương pháp fuzzing sử dụng symbolic execution dé tìm kiếm lỗ hong thực thi mã từ xa. ......................-----2222222c++22EEEEvvvrrrrtrrrrrkrrrrrrrrrrrer 7 2.2.3... Nghiên cứu về fuzzing dựa vào thuật giải di truyền cải tiến (0)
    • 2.3. Mục tiêu luận văn ......................... --- 1 tt St ST HH HH gi 8 2.4. Nội dung và phương pháp nghiên cứu ............................---- - - + + + ++++c+£++zxzxex+ 8 Chương 3. CƠ SỞ LÝ THUYET VÀ PHƯƠNG PHÁP LUAN (20)
    • 3.1. Kỹ thuật phân tích động fuzzing. ............................----- +22 +csscsretsesrerrreree 10 1... Fuzzing dựa trên đầu vào ngẫu nhiên (Random fuzzing) ................. II 2... Fuzzing đột biến (Mutation Fuzzing).....................----c:c52ccscc+ccssccesrs 1 3. Fuzzing sử dung dữ liệu từ điển (Grammar-based Fuzzing) (22)
      • 3.4.2. Sơ đồ giải thuật trong thuật toán di truyền. 3.5. Lỗ hổng bảo mật ứng dụng web.......................---2¿-222+2et2EEEEEtrEErkrrrrrrkrrrerrree 24 3.5.1. Lỗ hồng thực thi mã từ xa (Remote code execution).. 3.5.2. Danh sách các lỗ hồng bảo mật công khai (CVE) (29)
    • 3.6. Công cụ fuzzing sử dụng dé so sánh với mô hình xây dựng (0)
      • 3.6.1. Wfuzz.. K2. ấpc..................,.............À.......... Hee 27 3.62. - FFuf../. 6...4ằ ⁄@ (39)
    • 3.7. Mô hình của luận văn. .............................- 6 52223233 St #EEErErxerrkekrkrrrrrrrrrrrsxer 28 Chương 4. KET QUA THỰC HIỆN.... 4.1. Kịch bản triển khai thử nghiệm........................---¿¿©2++222E++ztt2vvvzerrrrxscee 30 4.2. Sơ đồ mô hình thử nghiệm . 4.3. Quá trình thực hiỆn....................- 5c St StssEErrerxerrrxerrrrrrrrrrrrrrrrrerrrrrrrrÐ 2) 4.3.1. Chuan bị dữ liệu cho fuzzing. ... 4.3.2. _ Thực hiện giám sát mã............................... - - - ¿5+ 33 4.3.3... Thực hiện quá trình fuzzing ứng dụng web với giải thuật di truyền. 35 4.3.3.1. Thử nghiệm với ứng dụng DVPA.............................--cccccccccccccre. 37 4.3.3.2. Thử nghiệm với các mã nguồn mở khác (40)
  • Bang 4.3 Số lỗi phát hiện khi fuzzing trên các ứng dụng mã NUON mở (0)

Nội dung

Nghiên cứu đã làm rõ các vấn đề liên quan đến fuzzing có định hướng, bao gồm cách định hướng một công cụ dé hoạt động trong môi trường có số lượng đầu vào cần kiểm tra lớn và cách tăng h

TONG QUAN VE TINH HÌNH NGHIÊN CỨU

Mục tiêu luận văn - 1 tt St ST HH HH gi 8 2.4 Nội dung và phương pháp nghiên cứu - - + + + ++++c+£++zxzxex+ 8 Chương 3 CƠ SỞ LÝ THUYET VÀ PHƯƠNG PHÁP LUAN

Luận văn mong muốn áp dụng kỹ thuật của thuật giải di truyền trong việc phân tích luỗng thực thi của ứng dụng web trong quá trình fuzzing Nhằm tăng mức độ bao phủ mã khi fuzzing, giảm thiểu tài nguyên khi thực thi công cụ mà vẫn đảm bảo kết quả đạt được mong đợi.

Quá trình thực nghiệm của luận văn sẽ chủ yếu khai thác lỗ hồng thực thi mã từ xa và so sánh với các công cụ Blackbox fuzzing như ffuf và wfuzz Bằng cách so sánh với các phương pháp khác, luận văn hi vọng sẽ giúp tìm ra các đặc điểm mạnh và yếu của thuật giải di truyền, từ đó có thé cải tiến các công cụ fuzzing và áp dụng phân tích các ứng dụng thực tế.

Dé đánh giá giải thuật được đề xuất, luận văn sẽ dùng tập dữ liệu là các phần mềm mã nguồn mở phỏ biến được nhiều người sử dụng dé đảm bảo bao quát hết các trường hợp của các phần mềm được phát triển bằng ngôn ngữ PHP khác nhau trong quá trình phân tích.

2.4 Nội dung và phương pháp nghiên cứu

Fuzzing là một kỹ thuật kiểm thử tự động dé phát hiện các điểm đột biến trong ứng dụng Trong đó, giải thuật di truyền này khi áp dụng vào fuzzing sẽ tạo ra một quy trình xây dựng và đưa mã khai thác mới vào chương trình để giúp tìm ra các điểm đột biến nhanh và tối ưu hơn.

Nội dung 1 Tìm hiểu các công cụ phát hiện lỗ héng web khác nhau và triển khai các phương pháp phát hiện lỗ hồng trong ứng dụng web đồng thời xây dựng tập dữ liệu mã khai thác thích hợp dé sử dụng trong quá trình fuzzing.

Nội dung 2 Tập trung vào việc tự động hoá việc lựa chọn mã khai thác và đầu vào trong quá trình fuzzing ứng dụng web Áp dụng giải thuật được xây dựng vào giúp tìm kiếm các mã khai thác phù hợp và tăng độ bao phủ mã trong các ứng dụng

PHP một cách tự động.

Nội dung 3 Xây dựng các ứng dụng sử dụng mã nguồn mở khác nhau dé đánh giá hiệu quả của phương pháp Công cụ xây dựng sẽ được thực nghiệm trên các ứng dụng mã nguồn mở khác nhau và so sánh với các công cụ tìm kiếm lỗ hồng web hiện có với cùng một tập mã khai thác.

Chương 3 CO SỞ LÝ THUYET VÀ PHƯƠNG PHÁP LUẬN

Kỹ thuật phân tích động fuzzing - +22 +csscsretsesrerrreree 10 1 Fuzzing dựa trên đầu vào ngẫu nhiên (Random fuzzing) II 2 Fuzzing đột biến (Mutation Fuzzing) c:c52ccscc+ccssccesrs 1 3 Fuzzing sử dung dữ liệu từ điển (Grammar-based Fuzzing)

Phân tích động (Dynamic analysis) là một kỹ thuật sử dụng dé nghiên cứu đánh giá hành vi của phần mềm trong quá trình thực thi nó Kỹ thuật này sẽ tập trung vào việc quan sát, theo dõi hành vi và phân tích các sự thay đôi có xảy ra của ứng dụng trong thời gian thực.

Một số kỹ thuật phân tích động phô biến có thể kể đến bao gồm: debugging, profiling, fuzzing, monitoring va tracing Trong nghiên cứu nay, chúng tôi sẽ sử dụng kỹ thuật fuzzing dé áp dụng trong việc tìm kiếm lỗ hồng web.

So sánh với dấu hiệu sẵn có có

Lưu trữ bug tìm thấy

Hình 3.1 Sơ do của phương pháp fuzzing

Fuzzing là một trong những kỹ thuật phân tích động dùng tìm kiếm lỗ hong trong ứng dụng bằng cách đưa vào đầu vào ngẫu nhiên hoặc đầu vào được thiết kế dé thử nghiệm các giá trị đặc biệt hoặc không hợp lệ.

3.1.1 Fuzzing dựa trên đầu vào ngẫu nhiên (Random fuzzing) Đây là phương pháp fuzzing đơn giản nhất, trong đó các đầu vào được tạo ra ngau nhiên và truyền vào ứng dụng dé xem liệu có tạo ra lỗi hay không.

Phương pháp ngẫu nhiên trong fuzzing này thường được sử dụng trong các công cụ fuzzing hộp đen để tạo ngẫu nhiên đầu vào truyền vào ứng dụng. Random fuzzing tương đối hiệu quả đối với các ứng dụng có đầu vào đơn giản từ đó công cụ fuzzing có thé tạo ra được các đầu vào phù hợp để tìm ra điểm yêu của hệ thông.

3.1.2 Fuzzing đột biến (Mutation Fuzzing)

Phương pháp này tạo ra các đầu vào bằng cách biến đổi đầu vào hiện có. Các biến đổi này có thé là việc thêm hoặc xóa các ký tự, hoán đổi vị trí ký tự, hoặc biến đôi các giá tri SỐ. Đại diện của phương pháp mutation fuzzing này trong ứng dụng web có thé kế đến công cụ wfuzz và ffuf.

Wfuzz thực hiện fuzzing dòng lệnh với các tham số đầu vào được cung cấp nhằm tìm ra lỗ hồng trong các trang web Wfuzz thường sử dụng với mục đích kiểm tra sự chống chịu của hệ thống, tìm kiếm các thông tin, lỗ hồng tiềm tàng. Wfuzz sử dụng các từ điển và áp dụng kỹ thuật fuzzing với các tham số của URL, HTTP Headers và các thông số khác của ứng dụng Kết quả của quá trình fuzzing được hién thi đưới dạng danh sách các kết qua tương ứng với các truy vấn được thực hiện.

Tương tự với wfuzz, ffuf cũng là một công cụ fuzzing mã nguồn mở được viết bằng Go, các tham số cũng được truyền tương tự như ứng dụng wfuzz tuy nhiên ffuf có tốc độ fuzzing nhanh hơn.

Trong các thử nghiệm so với các công cụ fuzzing có tồn tại hiện tại sẽ sO sánh công cụ xây dựng với wfuzz và ffuf đê đánh giá hiệu quả của công cụ.

Requests/sec.: 0 webfuzz@webfuzz-All-Series:~$ wfuzz -z file, /media/webfuzz/24c742b7-ca4c-44c5-9b12-a0ed84e774f9/webfuzz-fuzzer/webFuzz/webFuz z/Payloads/os_rce/unix "http://dvpa.lab:8000/RCE-Labs/RCE-2/rce_2.php?domain=FUZZ" xxx YY SSIS IIIS ISS SIES II ISS ISS ISS III I I i iH

* wfuzz 3.1.0 - The Web Fuzzer it

(000000001: "≪ | #exec%20cmd=" /bin/cat%20/etc/passwd" - -> "

(000000003: ”≪ | #exec%20cmd=" /usr/bin/id; > "

Hình 3.2 Công cu fuzzing hộp den wfuzz.

3.1.3 Fuzzing sử dung dữ liệu từ dién (Grammar-based Fuzzing)

Phương pháp grammar-based fuzzing là một phương pháp fuzzing trong ứng dụng web dựa trên việc sử dụng ngữ pháp (grammar) cua input chương trình đê có thê tạo ra mã khai thác truyên vào.

Ngày đăng: 08/11/2024, 17:22

HÌNH ẢNH LIÊN QUAN

Hình 3.1 Sơ do của phương pháp fuzzing - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.1 Sơ do của phương pháp fuzzing (Trang 22)
Hình 3.2. Công cu fuzzing hộp den wfuzz. - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.2. Công cu fuzzing hộp den wfuzz (Trang 24)
Hình 3.3 Ví dụ về dữ liệu test của grammar-based fuzzing [13] - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.3 Ví dụ về dữ liệu test của grammar-based fuzzing [13] (Trang 24)
Hình 3.4 Ví dụ biến đổi từ code thành basic block - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.4 Ví dụ biến đổi từ code thành basic block (Trang 27)
Hình 3.5 Quá trình tính toán độ bao phủ mã - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.5 Quá trình tính toán độ bao phủ mã (Trang 28)
Hình 3.6. Giải thuật di truyền cơ bản - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.6. Giải thuật di truyền cơ bản (Trang 29)
Hình 3.7 Khởi tao đầu vào ban dau để sử dung cho quá trình fuzzing tiếp theo - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.7 Khởi tao đầu vào ban dau để sử dung cho quá trình fuzzing tiếp theo (Trang 30)
Hình 3.8 Ham __next__ xu ly các dau vào được thêm vào chương trình - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.8 Ham __next__ xu ly các dau vào được thêm vào chương trình (Trang 30)
Hình 3.9 Thuật toán chọn lọc và tính giá trị thích nghỉ - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.9 Thuật toán chọn lọc và tính giá trị thích nghỉ (Trang 32)
Hình 3.10 Chọn lọc và lưu trữ nhiễm sắc thé phù hợp - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.10 Chọn lọc và lưu trữ nhiễm sắc thé phù hợp (Trang 33)
Hình 3.12 Khởi tạo class đột biến (Mutator) - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.12 Khởi tạo class đột biến (Mutator) (Trang 34)
Hình 3.14 Đột biến các tham số của chương trình - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.14 Đột biến các tham số của chương trình (Trang 35)
Hình 3.15 Ham kiểm tra giá trị thích nghỉ - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.15 Ham kiểm tra giá trị thích nghỉ (Trang 35)
Hình 3.17 Lỗ hồng RCE trả về kết quả cho kẻ tấn công từ xa - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.17 Lỗ hồng RCE trả về kết quả cho kẻ tấn công từ xa (Trang 37)
Hình 3.18 Số lượng lỗ hồng hàng năm dựa theo danh sách CVE công bo [14] - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.18 Số lượng lỗ hồng hàng năm dựa theo danh sách CVE công bo [14] (Trang 38)
Hình 3.19 Ví du sử dung wfuzz - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.19 Ví du sử dung wfuzz (Trang 39)
Hình 3.21 Mô hình thử nghiệm cua luận van - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình 3.21 Mô hình thử nghiệm cua luận van (Trang 41)
Bảng 4.1 Chỉ tiết các kịch bản sử dụng. - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Bảng 4.1 Chỉ tiết các kịch bản sử dụng (Trang 42)
Hình sử dụng tập dữ liệu là - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
Hình s ử dụng tập dữ liệu là (Trang 43)
4.2. Sơ đồ mô hình thử nghiệm - Luận văn thạc sĩ Công nghệ thông tin: Phát hiện lỗ hổng trên ứng dụng web sử dụng kỹ thuật phân tích động và thuật giải di truyền
4.2. Sơ đồ mô hình thử nghiệm (Trang 44)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN