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

Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web

137 1 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 đề Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Tác giả Nguyên Hạnh Phúc
Người hướng dẫn PGS.TS. Trương Ninh Thuận
Trường học Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Luận án tiến sĩ
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 137
Dung lượng 42,73 MB

Cấu trúc

  • 1.1. Đặt vấn đề.....................cc cece ence ence eens eeenebenevnens 1 1.2. Nội dung nghiên cỨu.........................--. ca 3 1.3. Dong góp của luận ấn....................... 2Q 2n nha 4 1.4. Cấu trúc luận An... see cece cece cere e ene nh nh vn va 6 Chương 2. KIÊN THỨC CƠ SỞ (14)
  • 2.1. Các ứng dụng trên nền web..............................c.cc c2. 8 2.2. Một số loại tan công mang pho biến (21)
    • 2.2.1. Tan công XSS......................... teen nen ene teen ees 12 2.2.2. Tan công DoS va DDoS (25)
  • 2.3. Một số kiến trúc và công nghệ phát triển phần mềm trên nền web. 17 1. Kiến trúc hướng sự kiện (30)
    • 2.3.2. Apache Spark................. ng cece nent xo 20 2.3.3. Apache Kafka.....................QQQQ n tent nh ng va 20 2.3.4. Kubernef©8................ HH HH HH ng HH hà xo 21 2.4. Một số kỹ thuật và phương pháp đảm bảo chất lượng phần mềm trên nền „2... ằãa. 23 2.4.1. Kiểm thử phần mềm (33)
    • 2.4.2. Kiểm chứng phần mềm (0)
  • 3.1. Giới thiu . 6. eee nee e deen beeen eens 33 3.2. Các nghiên cứu liên quan....... 2. cece eee eens 35 3.3. Phuong phap....... ........AAxaaaIIa (46)
    • 3.3.1. Phong chống tan công từ chối dịch vụ (0)
    • 3.3.2. Phòng chống tan công từ chối dịch vụ phân tấn (0)
  • 3.4. Thực nghiệm...................... ng HH nh nh kh va 50 1. Môi trường triển khai.......................... c2 c2. 50 2. Kết quả thực nghiệm (63)
  • 3.5. Tổng kết chương....................... 222220222122. 54 Chương 4. KIEM THU PHÁT HIỆN XÂM NHẬP XSS CHO UNG (67)
  • 4.2. Các nghiên cứu liên quan.....................-..- c2. 59 4.3. Phương pháp kiểm thử tự động (72)
    • 4.3.1. Sinh đường dẫn kiểm thử (74)
    • 4.3.2. Sinh ca kiểm tht... 2.000. 69 4.3.3. Tiến hành kiểm thử.................................. c2. 70 4.4. Xây dựng công cụ kiểm thử tự động (82)
  • 4.5. Tổng kết chương........................... 2222112221 v2 75 Chương 5. KIEM CHUNG RÀNG BUỘC THỜI GIAN CUA CÁC SỰ KIỆN TRONG THỜI GIAN THUC THI (88)
  • 5.1. Giới thiỆU................ cnn ng ng ng nent een eens 78 5.2. Các nghiên cứu liên quan ..... 2... ccc nee eens 80 5.3. Phương pháp đề xuất...................................c c2. 82 5.3.1. Một số định nghĩa.......................................cc.Ặ (91)
    • 5.3.2. Tổng quan phương pháp đề xuất (100)
  • 5.4. Các thuật toán kiểm chứng...............................--- c2 91 1. Sự kiện evt; xảy ra trước sự kiện e0f/ (104)
    • 5.4.2. Sự kiện Fy gặp sự kiện F2................... ca 93 5.4.3. Sự kiện FE, gối chồng lên kiện #2 (0)
    • 5.4.4. Sự kiện E, bắt đầu sự kiện 2 (0)
    • 5.4.5. Sự kiện evt; trong khoảng thời gian e0f; (111)
    • 5.4.6. Sự kiện evt; kết thúc sự kiện (113)
    • 5.4.7. Sự kiện evt; tương đương với sự kiện euí; (114)
  • 5.5. ThỰC Ng]ỆM................. c2 S2 ng HE HH kg ki vxa 102 1. Giới thiệu hệ thống..................................-ccc cà. 102 2. Thiết kế hệ thống...............................--..cccẶcẶẶ c2. 104 b9. a4 een teen tenet nent eeneeas 107 5.6. Tổng kết chương................... nh es 110 Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIEN (115)
  • 6.1. Kết luận...................... eee cece tence n HH nh vn vn xa 111 6.2. Hướng phát triỂn.........................----- 2222212222 v2 113 (124)

Nội dung

Các ứng dụng trên nền web c.cc c2 8 2.2 Một số loại tan công mang pho biến

Tan công XSS teen nen ene teen ees 12 2.2.2 Tan công DoS va DDoS

XSS [41, 40, 103] là một trong những lỗ hong pho biến và dé bị tấn công nhất mà tất cả những kiểm thử viên có kinh nghiệm đều biết XSS là một lỗ hồng liên quan đến lập trình xảy ra khi dữ liệu đầu vào của người dùng không được làm sạch đúng cách Kẻ tấn công khai thác lỗ hổng này để đưa mã lệnh chưa được lọc vào ứng dụng Web, dẫn đến việc chiếm đoạt tài khoản, đánh cắp section hoặc cookie và định tuyến lại trang web của kẻ tấn công khi trình phân tích cú pháp xử lý tập lệnh Tấn công vào lỗ hong XSS được coi là một trong những cuộc tấn công nguy hiểm nhất đối với các ứng dụng web và có thể gây ra hậu quả nghiêm trọng [S0] Hình 2.1 mô tả các bước trong mô hình tấn công

Các cuộc tấn công XSS [32, 35, 40, 41, 103] là một kiểu tấn công phổ biến với các ứng dụng web, trong đó kẻ tấn công sẽ chèn các tập lệnh độc hại vào các trang web Các cuộc tấn công XSS xảy ra khi kẻ tấn công sử dụng ứng dụng web để gửi mã độc hại, thường ở dạng tập lệnh phía trình duyệt, tới người dùng cuối khác Lỗ hồng XSS thường dẫn đến cuộc tấn công thành công và có thể xuất hiện ở mọi ứng dung web sử dụng di liệu đầu vào từ người dùng để tạo

Hình 2: Phương pháp hoc tăng cường.

Nạn nhân thực thi mã độc

Hình 2.1: Mânhìalugấms6ông XSS đơn giản. đầu ra, mà không thực hiện đầy đủ xác thực hoặc mã hóa Cuộc tan công XSS có thể khởi đầu từ các trang web được viết bằng bất kỳ ngôn ngữ lập trình nào.

Một cuộc tấn công XSS thường xảy ra khi kẻ tấn công xâm phạm một trang web bằng cách chèn mã JavaScript độc hại vào các tham số đầu vào phía máy khách Dữ liệu đi vào một ứng dụng Web thông qua một nguồn không đáng tin cậy, thường là một yêu cầu web Dữ liệu được bao gồm trong nội dung động được gửi tới người dùng web mà không được xác thực về nội dung độc hại Nguyên nhân chính của loại tấn công này là xác thực đầu vào dữ liệu người dùng không phù hợp, dữ liệu độc hại từ đầu vào có thể xâm nhập vào dữ liệu đầu ra Mã độc có thể được chèn vào các phần của mã nguồn, chẳng hạn như các trang HTML, CSS, JavaScript, hoặc các cơ sở dữ liệu Khi đó trình duyệt không thể biết mã thực thi có phải độc hại hay không Do đó, mã độc hại có thể đang được thực thi trên trình duyệt của nạn nhân hoặc bất kỳ hình thức giả nào đang được hiển thị cho người sử dụng.

Tấn công XSS có thể có các hình thức sau: e Reflected XSS: là những cuộc tấn công mà tập lệnh được đưa vào là kết quả phản hồi bởi máy chủ web, chang hạn như trong thông báo lỗi, kết quả tìm kiếm hoặc bất kỳ phản hồi nào khác bao gồm một số hoặc tất cả thông tin đầu vào được gửi đến máy chủ như một phần của yêu cầu Loại tấn công này được gửi đến nạn nhân thông qua một email hoặc trên một số trang web khác Khi người dùng bị lừa nhấp vào một liên kết độc hại, gửi một biểu mẫu được tạo đặc biệt hoặc thậm chí chỉ duyệt đến một trang web độc hại, mã được đưa vào sẽ chuyển đến trang web dễ bị tấn công, phản ánh cuộc tấn công trở lại trình duyệt của người dùng Sau đó, trình duyệt sẽ thực thi mã vì nó đến từ một máy chủ “đáng tin cậy” Reflected XSS đôi

13 khi cũng được gọi là Non-Persistent hoặc Type-I XSS. e Stored XSS: Hình thức này nhắm đến nhiều nạn nhân cùng lúc Day là những cuộc tấn công mà tập lệnh được đưa vào được lưu trữ vĩnh viễn trên các máy chủ, chang hạn như trong cơ sở dữ liệu, nhật ký khách truy cập, trường nhận xét, v.v Khi người dùng truy cập và tiến hành những thao tác liên quan đến dữ liệu đã lưu thì mã độc sẽ lập tức hoạt động trên trình duyệt Stored XSS đôi khi còn được gọi là XS5 liên tục hoặc Type-II Khi người dùng truy cập và tiến hành những thao tác liên quan đến dữ liệu đã lưu thì mã độc sẽ lập tức hoạt động trên trình duyệt. e DOM Based XSS: lỗ hồng bảo mật tồn tại trong mã phía client chứ không phải mã phía server Hình thức này dùng để khai thác XSS dựa vào việc thay đổi HTML của tài liệu, hay nói cách khác là thay đổi cấu trúc DOM

Kiểu tan công XSS là một trong những kiểu tấn công có nhiều nguy hiểm và rủi ro nhất Kiểm thử viên nên đánh giá các rủi ro mang lại từ các cuộc tấn công XSS có thể xảy ra Do đó, việc phát hiện các lỗ hong XSS là việc quan trọng khi xây dựng các ứng dụng trên nền Web Kiến thức cơ sở trong phần này sẽ được sử dụng trong Chương 4 của luận ấn.

2.2.2 Tan công DoS va DDoS 2.2.2.1 Tan công DoS

Tấn công từ chối dịch vụ (DoS-Denial of Service) là kỹ thuật tấn công nhằm vào hệ thống máy tính hoặc mạng máy tính để làm giảm bớt (reduces), hạn chế (restricts) hoặc ngăn chặn (prevents) kha năng truy cập vào tài nguyên hệ thống từ các người dùng hợp pháp.

Trong kỹ thuật tấn công DoS, kẻ tấn công sẽ gửi liên tục các truy van và lưu lượng không hợp pháp để làm quá tải tài nguyên của máy chủ hoặc làm giảm hiệu năng mạng, đưa hệ thống của nạn nhân vào trạng thái quá tải Điều này dẫn đến việc dịch vụ web của nạn nhân trở nên không khả dụng, không thể truy cập một cách bình thường.

Mục đích cuối cùng của cuộc tấn công DoS không phải là chiếm quyền kiểm soát hệ thống hay phá hủy dữ liệu Mà thực tế là làm cho người dùng hợp pháp không thể truy cập vào hệ thống máy chủ Có nhiều dạng tấn công DoS phổ biến, bao gồm làm ngập lụt hệ thống máy chủ bằng cách gửi lượng lớn các gói

14 tin không hợp pháp, khiến cho hệ thống không thể xử lý Tấn công cũng có thể nhắm vào một dịch vụ chạy trên máy chủ, khiến cho dịch vụ đó không thể xử lý được hoặc bị ngừng hoạt động Ngoài ra, kẻ tấn công còn có thể tạo và gửi hàng loạt các gói tin bị lỗi để tạo ra sự cố giao thức TCP/IP Các mục tiêu thường bi tấn công gồm cạn kiệt tài nguyên hệ thống như băng thông, dung lượng 6 cứng,

CPU và cấu trúc dit liệu, thiết bị mạng, cũng như các chương trình và tập tin trên máy tính.

DDoS là kỹ thuật tan công từ chối dịch vu phân tán mà ở đó kẻ xấu sẽ điều khiển mạng BotNet để tấn công vào một mục tiêu máy chủ Gây ra tinh trạng từ chối dịch vụ của máy chủ của nạn nhân Một cuộc tấn công DDoS với quy mô lớn, tấn công vào những dịch vụ đang chạy của hệ thống máy tính nạn nhân hoặc nhằm vào tài nguyên mạng bằng cách khởi tạo cuộc tấn công trung gian từ các hệ thống máy tính BotNet (là các máy chủ bị nhiễm trojan, virus hoặc bị chiếm quyền điều khiển) trên không gian Internet.

Kẻ tan công sử dụng kỹ thuật DDoS bằng cách gửi các lệnh đến các máy chủ zombie agent Những máy chủ này sẽ tiếp tục gửi các yêu cầu giả mạo (với địa chỉ IP giả là của nạn nhân) đến các máy chủ trong hệ thống BotNet Khi đó, các máy chủ BotNet sẽ nhận được yêu cầu và tiếp tục gửi các gói tin phản hồi

(response packet) đến địa chỉ IP thật của nạn nhân Hệ thống máy chủ của nạn nhân sẽ nhận được một lượng truy cập lớn đột ngột và gây quá tải cho hệ thống, vô hiệu hóa toàn bộ máy tính và hệ thống mạng của nạn nhân Các kỹ thuật tấn công DoS/DDoS phổ biến [2]: e Volumetric Attacks: Loại kỹ thuật tấn công này nhằm vào băng thông của hệ thống mạng và dịch vụ đang chạy của nạn nhân Làm hệ thống máy chủ bị vô hiệu hóa khỏi mạng Internet, các người dùng hợp pháp không thể truy cập được vào hệ thống máy chủ Có hai dạng tấn công theo kiểu băng thông:

— Flood Attack (ngập lụt băng thông) bằng cách điểu khiển các máy tính botnet đột ngột gửi một lượng lớn lưu lượng truy cập tới máy tính nạn nhân để làm tê liệt toàn bộ băng thông máy chủ

Một số kiến trúc và công nghệ phát triển phần mềm trên nền web 17 1 Kiến trúc hướng sự kiện

Apache Spark ng cece nent xo 20 2.3.3 Apache Kafka QQQQ n tent nh ng va 20 2.3.4 Kubernef©8 HH HH HH ng HH hà xo 21 2.4 Một số kỹ thuật và phương pháp đảm bảo chất lượng phần mềm trên nền „2 ằãa 23 2.4.1 Kiểm thử phần mềm

Apache Spark [108] là một framework xử lý dit liệu mã nguồn mở trên quy mô lớn Nó bao gồm hai thành phần chính là trình điều khiển và trình thực thi Trình điều khiển dùng để chuyển đổi mã của người dùng thành nhiều tác vụ có thể được phân phối trên các nút xử lý, sau đó giám sát việc thực thi các tác vụ đó Trình thực thi chạy trên các nút xử lý và thực hiện các nhiệm vụ được giao cho chúng Spark cũng có thể chạy ở chế độ cụm độc lập chỉ yêu cầu khung Apache Spark va JVM (Java virtual machine) trên mỗi máy trong cụm, tuy nhiên sử dụng các công cu quản lý cum như trung gian giữa hai thành phan giúp tận dụng tài nguyên tốt hơn và cho phép phân bổ theo yêu cầu.

Kafka [59] là một nền tang phát trực tuyến sự kiện được sử dung rộng rãi để truyền phát dữ liệu giữa các bên gửi và bên nhận với hiệu suất cao Nó là một hệ thống mã nguồn mở được phát triển bởi Apache, được thiết kế để xử lý hàng triệu tin nhắn mỗi giây và cung cấp giải pháp phân tán và có thể mở rộng cho việc xử lý luồng dữ liệu trong các hệ thống phân tán.

Kafka thường được sử dụng để xây dựng các ứng dụng xử lý dữ liệu theo thời gian thực, chăng hạn như xử lý log, phân tích dữ liệu và cập nhật trạng

20 thái ứng dụng No cũng được sử dụng như một nền tang cho các ứng dụng IoT và các hệ thống phân tán khác Dữ liệu được đưa vào Kafka sẽ được chuyển đến các đường ống được gọi là Topic, mỗi Topic lại được chia thành nhiều phan vùng khác nhau gọi là Partition Người dùng có thể khai thác dữ liệu từ một Topic bằng cách tao ra nhiều Consumer để khai thác song song dữ liệu từ các

Kafka hoạt động dựa trên một kiến trúc tách biệt, nơi các producer (những người gửi dữ liệu) không cần biết về consumer (những người nhận dữ liệu) và ngược lại Điều này cho phép Kafka xử lý dữ liệu một cách hiệu quả và linh hoạt, đồng thời cho phép các ứng dụng khác nhau truy cập vào cùng một dữ liệu.

Kafka hỗ trợ các ngôn ngữ lập trình khác nhau, bao gồm Java, Python, Go và

C++ Kafka cho phép các ứng dụng truy cập vào luồng dit liệu theo hai phương thức: push và pull Trong phương thức push, Kafka sẽ day dữ liệu đến các ứng dụng Trong phương thức pull, ứng dụng sẽ lấy dit liệu từ Kafka khi nó cần.

Kafka cũng hỗ trợ xác thực và mã hóa dữ liệu để dam bảo an ninh cho dit liệu truyền tải.

Kafka được sử dụng rộng rãi trong các ứng dụng Big Data, như là một phần của các hệ thống xử lý dữ liệu thời gian thực và các hệ thống phân tán lớn Nó cũng được sử dụng để lưu trữ và phân phối các log, dữ liệu nhị phan và các sự kiện trong các hệ thống phân tán Kafka là một trong những công nghệ nền tảng cho kiến trúc microservices và được sử dụng rộng rãi trong các ứng dụng đám mây (cloud-native applications) Trong hệ thống mà luận án triển khai, Kafka là nguồn lưu trữ Log truy cập của hệ thống sẵn có, tất cả Log truy cập tới hệ thống qua Web Server Openresty đều được gửi trực tiếp về đây.

Có nhiều cách triển khai ứng dụng Spark trên một cụm máy chủ, mỗi cách đều cần một trình quản lý cum để quản lý tài nguyên Hadoop YARN, Kubernetes và Standalone đều là những trình quản lý cum thông dụng Hadoop YARN đã được sử dụng rộng rãi trong các công ty lớn, nhưng nó có một số nhược điểm, bao gồm sự phức tạp va chi phí cao cho vận hành va bao trì Standalone là cách triển khai đơn giản, tuy nhiên nó không được thiết kế riêng cho Spark và không có các chức năng bổ sung Kubernetes [108] là một lựa chọn mới, với khả năng hỗ trợ nhiều công cụ khác nhau từ giám sát đến tự động mở rộng, mang lại một giải pháp triển khai an toàn và hiệu quả cho Spark Chúng ta có thể sử dụng nhiều

21 cách để triển khai các ứng dụng Spark dưới dạng Cluster Kubernetes mang đến một giải pháp triển khai an toàn và hiệu quả Kubernetes là một nền tang mã nguồn mở, linh hoạt và có khả năng mở rộng để quản lý các ứng dụng được đóng gói và các dịch vụ Nó giúp đơn giản hóa cấu hình và tự động hóa việc triển khai các ứng dụng Kubernetes là một hệ sinh thái lớn, phát triển nhanh chóng, với rất nhiều dịch vụ, sự hỗ trợ và công cụ có sẵn Trong Kubernetes, container là một cách tốt để đóng gói và chạy các ứng dụng Trong môi trường sản xuất, cần phải quản lý các container đang chạy các ứng dụng và đảm bảo rằng không có khoảng thời gian gián đoạn Ví dụ, nếu một container bị tắt đi, container khác sẽ được khởi động để thay thế Việc này dễ dàng hơn nếu được xử lý bởi một hệ thống Kubernetes cung cấp một framework mạnh mẽ để chạy các hệ thống phan tán Nó đảm bảo khả năng mở rộng và chuyển đổi dự phòng cho ứng dụng và cung cấp các mẫu triển khai Kubernetes có thể mở ra một container sử dung DNS (Domain Name System) hoặc địa chỉ IP của riêng nó.

Nếu lưu lượng truy cập đến một container quá lớn, Kubernetes có thể cân bằng tải va phân phối lưu lượng mạng để đảm bảo việc triển khai được ổn định.

Kubernetes là một nền tảng nguồn mở, khả chuyển, có thể mở rộng để quản lý các ứng dụng được đóng gói và các dịch vụ, giúp thuận lợi trong việc cấu hình và tự động hóa việc triển khai ứng dụng Kubernetes cung cấp một framework để chạy các hệ phan tán một cách mạnh mẽ No đảm nhiệm việc nhân rộng va chuyển đổi dự phòng cho ứng dụng và cung cấp các mẫu triển khai Kubernetes có thể mở ra một Container sử dụng DNS (Domain Name System) hoặc địa chỉ

IP của riêng nó Nếu lượng lưu lượng mạng truy cập đến một container cao,

Kubernetes có thể cân bằng tải và phân phối lưu lượng mang để việc triển khai được ổn định. Để đảm bảo tốc độ, tận dụng các tài nguyên cũng như các công nghệ đã sử dụng, ứng dụng của luận ấn sẽ có mô hình của một Cluster, với Driver đóng vai trò như Master node, và các Executor đóng vai trò như các Worker node.

Mỗi thành phần sẽ chạy trên một máy riêng biệt, độc lập với nhau dựa trên sự phân bổ của Kubernetes, trong đó Driver sẽ chịu trách nhiệm quản lý, kết nối các thành phần và làm việc với nhau hiệu quả O mô hình này cũng mang lại kha năng mở rộng cho cả ứng dụng, nếu dữ liệu tăng lên Executor là đầu mối đi thu thập và chúng chạy đồng thời với nhau, thực hiện các hoạt động tiền xử lý dữ liệu, tinh gọn về loại dit liệu mà Driver mong muốn Sau đó Driver sẽ di thu thập những gì Executor đã xử lý được để về tổng hợp xử lý các bước tiếp

3https://spark.apache.org/docs/latest /running-on-kubernetes.html

22 theo và đưa ra kết quả Sự phân chia công việc này giúp dữ liệu được xử lý một cách hiệu quả, tận dụng tối đa mô hình cluster và sự xử lý song song của các

Executor để làm sạch thu gọn dữ liệu cho Driver xử lý Quá trình này sẽ được lặp lại cho mỗi lô dit liệu nhận về.

2.4 Một số kỹ thuật và phương pháp đảm bảo chất lượng phần mềm trên nền web Đảm bảo chất lượng phần mềm trên nền web cũng như đảm bảo an ninh phần mềm nền web là những khía cạnh quan trọng trong quá trình phát triển và triển khai ứng dụng web Để đảm bảo chất lượng phần mềm trên nền web cũng như đảm bảo an ninh phần mềm nền web có thể áp dụng nhiều kỹ thuật, phương pháp như kiểm thử phần mềm, kiểm chứng phần mềm, kiểm tra bảo mật, v.v.

Kiểm chứng phần mềm

KY THUẬT PHONG CHONG TAN CÔNG

TU CHOI DICH VU THEO THOI GIAN

Trong chương này, luận án dé xuất phương pháp phát hiện nguy cơ các cuộc tan công DDoS dựa vào việc thu thập các tệp nhật ký của hệ thống theo thời gian thực Cụ thể, luận án tập trung vào việc phân tích các yếu tố xoay quanh một địa chỉ IP, từ đó xây dựng công thức đánh giá điểm cho các địa chỉ IP đã truy cập vào hệ thống Luận án cũng đã tiến hành thực nghiệm phương pháp được đề xuất trên trang web Shopbase với việc sử dụng các công nghệ ApacheSpark,Kubernetes và bước đầu cho thay tính khả thi của phương pháp đề xuất.

Giới thiu 6 eee nee e deen beeen eens 33 3.2 Các nghiên cứu liên quan 2 cece eee eens 35 3.3 Phuong phap AAxaaaIIa

Phòng chống tan công từ chối dịch vụ phân tấn

3.3.2.4 Độ phức tạp thuật toán

O các phần trên, luận án đã trình bày chi tiết các bước của phương pháp 2, đề xuất, các thành phần của Thuật toán 3.2 Bây giờ chúng ta sẽ phân tích độ phức tạp của thuật toán này. Để xác định độ phức tạp của thuật toán này, chúng ta cần xem xét từng phần của giả mã trong Thuật toán 3.2.

Cau lệnh 3: IPs được gan giá trị s, có độ phức tap O(1).

Câu lệnh 4: n = |IPs| tính số lượng phần tử trong tập IPs, có độ phức tạp O(1). Độ phức tạp của thuật toán phụ thuộc vào đoạn chương trình từ dòng 5 đến dong 9 Vòng lặp ngoài for i = 1 to n có độ phức tap O(n).

Vòng lặp bên trong for j = 1 to 6 chạy từ 1 đến 6, có độ phức tạp O(6) = O(1) vì số lần lặp cố định.

Hàm convertingPoint() làm nhiệm vụ chuyển đổi từ tỷ lệ sang điểm tương ứng (cr;;) theo Bảng 3.2 Hàm này được gọi trong vòng lặp bên trong, độ phức tạp của hàm này là O(1).

Hàm scoreCalculate(IP, thresholds, weights) làm nhiệm vụ tính điểm cho mỗi địa chỉ IP trong tệp nhật ky theo Công thức 3.1 Ham này được gọi trong vòng lặp bên trong, độ phức tap của ham này là O(1) Vậy độ phức tạp của thuật toán này là O(n) với n là số lượng phan tử trong tập IPs.

Thực nghiệm ng HH nh nh kh va 50 1 Môi trường triển khai c2 c2 50 2 Kết quả thực nghiệm

Trong phần này, luận án sẽ đưa ra giới thiệu về môi trường triển khai cũng như kết quả thực nghiệm đạt được của phương pháp đã đề xuất đối với bài toán phát hiện và cảnh báo các cuộc tấn công DoS va DDoS thông qua thời gian thực nghiệm trên hệ thống thương mại điện tử Shopbase.

Như đã trình bày, Kubernetes là một nền tang mã nguồn mở, di động sử dung để để quản lý công việc và các dịch vụ với cả hai phương thức tự động hoặc tự khai báo cấu hình bởi người dùng Dối với ứng dung Spark của luận án dang thực nghiệm trên cụm Kubernetes Production của nền tang thương mại điện tử

50 xuyên biên giới Shopbase Tất cả các thành phần này được tích hợp để giải quyết các bài toán DoS và DDoS với phương pháp đã đề xuất! [29].

Từ góc độ kỹ thuật, kiến trúc hệ thống bao gồm các thành phần như được thể hiện trong Hình3.3 Trong đó, các thành có sẵn là Kubernetes, Kafka, Database

Postgres, Elaticsearch, Kibana, Redis, Gitlab CI và Slack; các thành phần do nghiên cứu sinh tự xây dựng lên, bao gồm Source Code, Spark Application,

Spark Helper Service và Hadoop HDES Cluster.

Kubernetes Spark Helper handle output

Hình 3.3: Mô hình kiến trúc của hệ thống phát hiện va cảnh báo tấn công DoS,

Mô hình kiến trúc bao gồm nhiều phan hệ khác nhau, chức năng của các phan hệ này có thể tóm tắt như sau: e Gitlab CI: tao và triển khai ứng dung tự dong; e Kafka: lưu trữ dữ liệu đầu vào; e Kubernetes: môi trường triển khai; e Dịch vụ Spark: ứng dụng phân tích;

'Dia chỉ mã nguồn: https:// github.com/GoogleCloudPlatform/spark-on-k8s-operator/tree/master/ charts/spark-operator-chart.

51 e Spark Helper: tiền xử lý dữ liệu; e Redis: lưu trữ địa chi IP trong danh sách đen; e Slack: gửi thông báo; e Hadoop Hdfs: lưu trữ dữ liệu xử lý; e Cơ sở dữ liệu: lưu trữ dữ liệu đầu ra; e Kibana: tổng hợp dữ liệu để phát hiện ngưỡng.

Phương pháp đề xuất đã triển khai và thực nghiệm trên cơ sở hạ tầng của hệ thống Shopbase và hoạt động tương đối ổn định Hệ thống đã phát hiện và cảnh báo nguy cơ tấn công theo các ngưỡng được cấu hình Hình 3.4 là minh hoạ cảnh báo về 7P có dấu hiệu bất thường.

Hình 3.5 là cảnh báo phát hiện sự gia tăng bất thường về quyền truy cập hệ thống bằng thông báo Slack trong khi ứng dụng chạy trong môi trường thử nghiệm.

Kết quả thực nghiệm cho thấy, hệ thống cảnh báo của luận án xây dựng có tốc độ xử lý tương đối nhanh, đáp ứng nhu cầu xử lý dữ liệu theo thời gian thực Dưới đây là hình ảnh minh hoạ thống kê dữ liệu được xử lý theo thời gian của công cụ (Hình 3.6) Hình ảnh trên cho thấy: e Lượng dữ liệu nhận được trung bình mỗi giây là 700 log, mỗi lô dit liệu có thời gian 5 giây sẽ chứa ~ 3500 log; e Thời gian xử lý trung bình của mỗi đợt mất ~ 2 giây, ít hơn nhiều so với thời gian xử lý tối đa của một đợt là 5 giây (thời gian tối đa để tránh làm chậm quá trình xử lý thời gian thực); e Dé kiểm tra khả năng chịu tải, tại thời điểm số dữ liệu đồ vào đạt ngưỡng

4000 log/s thì các lô dữ liệu đã xử lý được thống kê như Hình 3.7.

Có thể thấy số lượng log mỗi đợt có lúc lên tới 24.000 log khi hệ thống đạt ngưỡng >4000 log/s Trong khi đó, tốc độ xử lý của ứng dụng (cột Thời gian xử lý) trung bình là 2s Thời gian xử lý vẫn rất nhanh do khả năng chịu tải lớn.

Kết quả thử nghiệm cho thấy các ứng dụng web được triển khai thực tế trên một hệ thống web lớn với hàng triệu người dùng vẫn hiệu quả và thực sự hoạt động ổn định với các mục tiêu phi chức năng đạt được:

Below is some IPs that violate the DDoS rule

Data Center IP: false Country Code: US

UserAgent: 1 (only show up to 3 elements)

- Mozilla/5.0 (compatible; Pinterestbot/1.0; +http://www.pinterest.com/bot.html)

StatusCode: code: 200 : 86 reqs | code: 301 : 40 reqs | code: 429 : 67 reqs | code: 404 : 10 reqs

Domain: count: 42 img.thesitebase.net : 23 reqs | www.aiopride.com : 9 reqs | www.homecosi.com : 9 reqs |

Endpoint: count: 164 /products/george-strait-i-cross-my-heart-song-lyrics-print-wall- art-decor-canvas : 2 reqs | /products/vintage-yellow-skull-fireball-whiskey-baseball-jersey :

2 reqs | /products/merry-christmas-holiday-steel-signs-merry-christmas-custom-signs- personalized-puny-custom-signs-for-home-decor : 2 reqs |

- request_count_score :: Ingredient Score: 22.5 | Weight: 30/100 | Rate: 12.73 reqs/s ~ 191/15 seconds (Actual: 203/15) | Threshold: 15.0 reqs/s | Condition: Custom thresholds for domains: img.thesitebase.net : 20.0 reqs/s | api.shopbase.com : 20.0 reqs/s | Details: none

- request_status_429 score :: Ingredient Score: 13.5 | Weight: 18/100 | Rate: 4.47 reqs/s ~ 67/15 seconds | Threshold: 5.@ reqs/s | Condition: Response status code = 429 | Details: none

Hình 3.4: Cảnh báo về Ip có dấu hiệu bất thường. log-analyzer-ddos-dev APP 10:34 P4

System metric has abnormal increase signal

Name + request-count-analysis-dev - Data_by_time ; Stream(1, 8, 1, 9, 2, 7, 1,1, 8,1 1 8,

Standard_deviation: 4.98 - Last_value: 63 at 2022-11-1áT15:54:40.000Z - Ratio-diff : 11.72

Hình 3.5: Phát hiện sự gia tăng bất thường về số lượng truy cập vào hệ thống. e Hiệu suất: ứng dụng có tốc độ xử lý rất cao với độ trễ thấp. e Kha năng mở rộng: có thể tự động tăng số lượng bộ xử lý nếu lượng dữ liệu

Running batches of 5 seconds for 15 hours 40 minutes 23 seconds since 2022/11/16 05:11:07 (11284 completed batches, 41888785 records)

Timelines (Last 1001 batches, 1 active, 1000 completed) Histograms records/sec 0 200 400 600 800 1,000fbatches

* Input Rate 3,000.00 Avg: 709.96 records/sec 2,000.00

Status Executor ID / Host Last Error Time Last Error Message records/sec 0 200 400 600 800 1,000#batches

Hình 3.6: Thống kê các thông số trong quá trình hoạt động để phát hiện các cuộc tan công DDoS. quá lớn. e Độ tin cậu: ứng dụng đã cho thay khả năng chịu tải cao, như đã mô tả trong phần thử nghiệm, khi lượng dữ liệu tăng từ 700 lên hơn 4000 lượt truy cập mỗi giây, thời gian xử lý dữ liệu của ứng dụng vẫn không khác nhiều và vẫn 6 mức rất thấp, điều đó chứng tỏ khả năng chịu tải của ứng dụng còn cao hơn nữa. e Kha năng phục hồi: với tính năng lưu dit liệu Checkpoint trong quá trình xử lý, ứng dụng có khả năng tự khởi động lại và tiếp tục xử lý dữ liệu còn dang do.

Tổng kết chương 222220222122 54 Chương 4 KIEM THU PHÁT HIỆN XÂM NHẬP XSS CHO UNG

Trong bối cảnh các cuộc tấn công mạng đặt ra những thách thức không nhỏ đối với bảo mật phần mềm, luận án đề xuất một cách tiếp cận để phát hiện và

Batch Time + Records ‘Scheduling Delay Processing Time Total Delay Output Ops: Succeeded/Total

2022/11/16 20:04:15 3062 records Oms 25 2s 2022/11/16 20:04:10 3178 records 1ms 2s 2s 2022/11/16 20:04:05 3209 records 0ms 2s 25 2022/11/16 20:04:00 3178 records 0ms 2s 2s 2022/11/16 20:03:55 3332 records 1ms 2s 2s 2022/11/16 20:03:50 3356 records 4ms 2s 2s 2022/11/16 20:03:45 3154 records 0ms 2s 2s 2022/11/16 20:03:40 3006 records 0ms 2s 2s

16215 records 18896 records 13903 records 8854 records 8904 records 13471 records 23958 records 2022/11/16 20:02:65

20685 records 22673 records 22663 records 24117 records 17631 records

Hình 3.7: Bang thống kê chi tiết các lô dữ liệu đã xử ly. cảnh báo các cuộc tấn công DoS và DDoS bằng cách sử dung phân tích nhật ký truy cập theo thời gian thực Luận án đã trích xuất các thông tin quan trọng

(tiêu chí xung quanh địa chỉ IP) từ các tệp nhật ký và xây dựng công thức tính điểm dựa trên các tiêu chí này Đối với các miền giá trị cụ thể về điểm số đã được đề xuất trong suốt các thử nghiệm, luận án sẽ đưa ra quyết định cảnh báo về khả năng bị tấn công mạng trong thời gian sớm nhất có thể Phương pháp nghiên cứu đặc biệt quan tâm đến xử lý thời gian thực, bao gồm thời gian thu thập các tệp nhật ký cùng với thời gian xử lý chúng để tìm ra kết quả mong muốn Đó là một trong những yếu tố quan trọng giúp giảm thiệt hại khi hệ thống bị tấn công mạng.

Thêm vào đó, luận án cũng đã triển khai phương pháp đề xuất bằng việc sử dụng các công nghệ như Apache Spark and Kubernetes thực nghiệm trên hệ thống Shopbase Cụ thể, ngoài các thành phần được cung cấp bởi các hệ thống này dùng trong việc thu thập dữ liệu, luận án đã xây dựng thêm một số thành phần như Spark Application (main process) và Spark Helper (hiển thị thông tin đầu ra) để đạt được mục tiêu đặt ra về xử ly cảnh báo thời gian thực cho các bài toán DoS và DDoS Kết quả thực nghiệm cho thay tính khả thi của phương pháp đã đề xuất khi vận hành hệ thống trên các phương diện như tính ổn định, độ trễ thấp, khả năng chịu tải tương đối tốt, v.v.

Các cuộc tấn công DoS và DDoS ngày càng mở rộng về quy mô, da dạng về

59 về phương pháp tấn công, bởi vậy thách thức trong hướng nghiên cứu để phòng thủ chúng ngày càng lớn Bởi những khó khăn trong thực nghiệm, nghiên cứu của luận án mới chỉ thực thi trên một hệ thống và chưa có sự đánh giá, so sánh với các phương pháp khác Trong tương lai, luận ấn sẽ nghiên cứu và thực hiện các công việc này để có một cái nhìn đầy đủ hơn về tính hiệu quả của phương pháp đã đề xuất.

Các kết quả nghiên cứu của chương này đã được đăng trên kỷ yéu của Hội nghị

ACIDS 2023 (ACIIDS 2023 - 15th Asian Conference on Intelligent Information and Database Systems 24-26 July 2023 Phuket, Thailand Proceedings, pp 92-

KIEM THU PHÁT HIỆN XÂM NHẬP XSS

Bảo mật là van đề ngày càng quan trong trong các ứng dung Web, nhưng đồng thời cũng là mục tiêu phổ biến của các cuộc tấn công Lỗ hong XSS là một trong những lỗ hổng thường gặp, cho phép kẻ tấn công thực hiện các hành động độc hại như đánh cắp thông tin người dùng, thay đổi nội dung của trang web, chèn mã độc, hoặc thực hiện các hành động giả mạo người dùng, v.v Trong chương này, luận án đề xuất một phương pháp kiểm thử tự động để phát hiện các nguy cơ tiềm an lỗ hong XSS trong ứng dụng Web, bao gồm các thuật toán sinh đường kiểm thử và công cụ kiểm thử.

Các ứng dụng phần mềm ngày nay được xây dựng và hoạt động phổ biến trên môi trường Internet, chúng còn được gọi là ứng dụng trên nền web Các ứng dụng Web được sử dụng rộng rãi với các chức năng cho phép các tổ chức xây dựng và duy trì mối quan hệ với khách hàng của họ Các ứng dụng này là những chương trình được truy cập qua kết nối mạng, thường lưu trữ dữ liệu nhạy cảm và có giá trị, chăng hạn như thông tin khách hàng hoặc tài sản của tổ chức Với ưu điểm là khả năng chia sẻ chức năng, dữ liệu trong hệ thống, người dùng có thể truy cập moi lúc mọi nơi thi các hệ thống này luôn tiềm an các nguy cơ bị các tấn công mạng rất nguy hiểm Dữ liệu của hệ thống thường trở thành mục tiêu tấn công của tin tặc Nếu nó không được giữ an toàn và bảo mật, các mối quan hệ kinh doanh quan trọng có thể bị tổn hại Tính bảo mật của các hệ thống web luôn là mối quan tâm lớn đối với các nhà phát triển.

Theo Open Web Application Security Project (OWASP) và một số nghiên cứu khác, một trong những lỗ hong trong ứng dụng Web phổ biến nhất là lỗ hổng XSS [32, 35, 40, 41, 103] Lỗ hồng này cho phép kẻ tấn công chèn mã độc vào các trang web đã được xác thực, nhằm đánh cắp thông tin người dùng hoặc lây nhiễm mã độc cho các người dùng khác Cuộc tấn công sử dụng lỗ hồng XSS được gọi là cuộc tấn công XSS, trong đó kẻ tấn công tận dụng lỗ hổng XSS để thực hiện các hành động độc hại Ví dụ: có một hộp văn bản (textbox) để nhập ov nhận xét trên một trang web và hệ thống sẽ lưu trữ và hiển thị lại nhận xét đó.

Với những bình luận bình thường thì không có vấn đề gì nhưng nếu đó là một đoạn mã Javascript, thay vì hiển thị nguyên văn mã, nó sẽ thực thi mã Khi đó, hệ thống có lỗ hồng bảo mật X88 Sẽ rất nguy hiểm nếu mã Javascript đó được sử dụng để đánh cắp phiên đăng nhập của người dùng Kẻ tấn công sau đó có thể mạo danh người dùng để đăng nhập vào hệ thống và trích xuất thêm thông tin O giai đoạn triển khai, để ngăn chặn các cuộc tấn công XSS, các lập trình viên có thể sử dụng các tính năng bảo mật trong các khung làm việc Tuy nhiên, trên thực tế việc lập trình luôn tiềm ẩn những sai sót Do đó, việc cung cấp các giải pháp đảm bảo chất lượng cho các ứng dụng dựa trên web ngày càng trở nên quan trọng.

Kiểm thử phần mềm là một kỹ thuật được sử dụng rộng rãi trong đảm bảo chất lượng phần mềm Đó là một quá trình thực thi một chương trình hoặc ứng dụng với mục đích tìm ra các lỗi phần mềm Trên thực tế, có hai phương pháp có thể được áp dụng để kiểm thử một ứng dụng phần mềm: kiểm thử thủ công và kiểm thử tự động Tuy nhiên, kiểm thử thủ công có thể trở nên nhàm chán và do đó dễ xảy ra lỗi Để tránh những nhược điểm này và giảm thời gian cũng như tiền bạc trong quá trình kiểm thử, người ta sử dụng kiểm thử tự động, hay nói cách khác là một công cụ tự động được sử dụng để thực hiện một bộ trường hợp kiểm thử.

Các kỹ thuật kiểm thử khác như kiểm thử thâm nhập, kiểm thử mờ đánh giá tính bảo mật của hệ thống bằng cách mô phỏng các cuộc tấn công của người dùng độc hại cũng được sử dụng Các phương pháp kiểm thử này đưa ra đánh giá xem các cuộc tấn công có thành công hay không Kiểm thử thâm nhập có thể cung cấp cho nhà phát triển danh sách các lỗ hổng và vấn đề bảo mật trong quá trình kiểm thử ứng dụng Web Điều này có thể được sử dụng để cải thiện tính bảo mật của các ứng dụng Để ngăn những sự cỗ bảo mật này xảy ra, điều quan trọng nhất là phải hiểu các lỗi phần mềm điển hình Ngoài ra, ứng dụng dựa trên nền web là một chương trình được truy cập qua kết nối mạng thay vì chỉ tồn tại trong bộ nhớ của thiết bị Do đó, việc phát hiện lỗi của nó khác với các hệ thống phần mềm khác Kiểm thử là một trong những cách giúp nhà phát triển hạn chế tấn công XSS [8, 11, 76] Nhiều giải pháp đã được đề xuất để giải quyết các vấn đề liên quan đến tấn công XSS [25, 40, 52] Hầu hết các nghiên cứu này sử dụng các kỹ thuật phân tích tĩnh hoặc động để quét hoặc phân tích các lỗ hồng Tuy nhiên, bài toán giảm thiểu không gian đường dẫn kiểm thử và thời gian thử nghiệm vẫn còn nhiều thách thức cần được giải quyết Khi không

58 gian ca kiểm thử lớn sẽ dẫn đến việc kiểm thử viên phải kiểm thử nhiều trường hợp nên sẽ mất nhiều thời gian cho việc kiểm thử Bên cạnh đó, trong phát hiện lỗ hong XSS, việc loại bỏ triệt để các đường dẫn kiểm thử không chứa nguy cơ tấn công XSS để giảm thiểu không gian kiểm thử sẽ có ý nghĩa rất lớn trong việc rút ngắn thời gian kiểm thử Với việc sử dụng kiểm thử tự động để tiến hành kiểm thử thâm nhập sẽ mang lại hiệu quả và giúp khắc phục những hạn chế của thử nghiệm thâm nhập thủ công [51] Do đó, chương này đề xuất một cách tiếp cận kiểm thử thâm nhập, kiểm thử mờ dựa trên Q—learning để hỗ trợ quá trình kiểm thử phát hiện xâm nhập XSS cho các ứng dung Web Sự đóng góp của chương này bao gồm: e Dề xuất một khung thử nghiệm tự động dựa trên Java cho các ứng dụng

Web, tích hợp với Selenium và TestNG, nhằm cung cấp các chức năng để thực hiện các trường hợp kiểm thử một cách tự động. e Dé xuất một cách tiếp cận sử dung Q-learning để tự động tạo các đường dẫn kiểm thử thâm nhập với một ứng dụng Web Các đường kiểm thử được tối ưu bằng cách cải thiện ma trận phần thưởng để nhanh chóng theo dõi trạng thái tiếp theo, tiết kiệm thời gian tạo đường dẫn thử nghiệm. e Phát triển công cụ để tạo ra các đường dẫn thử nghiệm có khả năng chứa các cuộc tấn công XSS của các ứng dụng Web và công cụ để thực hiện kiểm thử tự động theo khung làm việc đã đề xuất.

Các nghiên cứu liên quan - - c2 59 4.3 Phương pháp kiểm thử tự động

Sinh đường dẫn kiểm thử

Trong mục này, luận án sẽ trình bày về các bước được thực hiện trong giai đoạn đầu tiên để tự động tạo các đường dẫn kiểm thử có khả năng chứa các lỗ hong XSS trong các ứng dung Web Hình 4.2 chỉ ra các công việc cần thực hiện:

1 Sinh đồ thị trạng thái đ của ứng dụng Web từ địa chỉ của trang web (URL).

2 Từ đồ thị G và ma trận phần thưởng (reward) R, chúng ta thêm trong số

Hình 4.1: Kiến trúc của khung làm việc jFAT. vào G để xây dựng đồ thị trong số Gg’.

3.Xây dựng ma trận Q để biểu diễn kết quả về những gi tác nhân đã học được thông qua kinh nghiệm và được xây dựng từ đồ thị có trong số G’va ma trận R.

4.Tạo đường kiểm thử để kiểm thử thâm nhập.

Hình 4.2: Tổng quan về quy trình của sinh đường dẫn kiểm thử tự động.

Như đã trình bày trong phần 2.5 của Chương 2 phương pháp học tăng cường phù hợp với một quá trình kiểm thử tự động Trong đó, ứng dụng Web được kiểm thử là môi trường và công cụ thử nghiệm thâm nhập là tác nhân Công cụ kiểm thử thâm nhập áp dụng các tương tác với ứng dụng Web cần kiểm thử để tìm chính sách tạo điều kiện phát hiện các lỗ hong hệ thống Quá trình khám phá này tạo ra các chuỗi sự kiện có thể dùng làm cơ sở kiểm thử Phương pháp học tăng cường có thể được xây dựng như một quá trình quyết định Markov [93].

Mô hình Markov được thiết kế như sau: e S = {so,sỊ, ,s„}: tập hợp các trang con được trích xuất từ ứng dụng Web đang kiểm thử. e A: tập hợp một hoặc nhiều hành động có liên quan hoặc đầu vào của người dùng có thể xảy ra trong một trạng thái GUI cụ thể. e R: hàm phần thưởng nhận được khi chuyển trang thái. e P: hàm chuyển tiếp trạng thái xác định xác suất chuyển đổi giữa các trang thái khác nhau dựa trên hành động của agent.

Các thành phần của mô hình toán học này sẽ được lần lượt xây dựng ở các phần sau của chương.

Dựa trên ý tưởng tìm kiếm theo chiều sâu, phương pháp đề xuất này phân tích một ứng dụng Web và biểu diễn dưới dạng biểu đồ trạng thái đ như sau. Định nghĩa 4.1 (Do thi trạng thái của ứng dung Web) Do thị G = (S,V) là do thị có hướng S = {so,s\, ,s„ }, mỗi nút s; trong do thị là một trang con của ứng dung Web dang được kiểm thủ Cung từ nút s; đến nút s; nếu trang s; có liên kết đến trang hoặc được chuyển hướng đến trang Sj.

Luận án sử dụng Thuật toán 4.1 để xây dựng đồ thi G Day là thuật toán được xây dựng dựa trên ý tưởng của phương pháp tìm kiếm theo chiều sâu Với tham số d là một số nguyên dương để chỉ độ sâu giới hạn của quá trình lặp Thuật toán này tiến hành phân tích cú pháp ứng dụng Web thành đồ thị trạng thái.

Tại mỗi lần lặp, thuật toán chuyển sang bước tiếp theo đến khi nó gặp trạng thái kết thúc hoặc đạt đến độ sâu đặt ra Mỗi nút trong đồ thị là một trang con của ứng dụng Web đang được thử nghiệm Các URL không cùng tên với URL gốc, hoặc các URL là đường dẫn đến tệp, v.v Chúng là các trạng thái kết thúc

Thuật toán 4.1 Phân tích cau trúc ứng dụng Web

Input : so - URL of the webapp. d - limited depth.

Data: s/ - the next state of s after performing a.

T - the set of termination states.

SÂ ỉ; depth(so) = 0; while true do if URLs = ỉ then

TCTU{s}; exit; if depth(s) 0, 0, hoặc -1) Tuy nhiên, khi tạo ma trận Q ở giai đoạn tiếp theo thì bài toán truy vết rất phức tạp Một trong các đóng góp của phương pháp này chính là sự cải tiến trong việc xây dựng R Cụ thể là, mỗi phần tử trong ma trận R sẽ được bổ sung thêm thông tin của trạng thái tiếp theo Điều này làm giảm thời gian truy vết khi tìm đường dẫn và tối ưu hóa thời gian trong quá trình tạo đường dẫn kiểm thử. Định nghĩa 4.2 (Ma trận phan thưởng R) R là một ma trận hai chiều đại điện cho các giá trị phần thưởng, nó có n hang thể hiện cho các trạng thái (sì, , sạ ) va m cột thể hiện cho các hành động (a1, , dụ ) CÓ thể thục hiện trên trạng thái tương ting Giá trị các phần tử trong ma trận nay thể hiện như sau:

- R(s;,a;) = (—1, ỉ): biểu diễn null khớ khụng cú đường nối hai nỳt của do thi.

- R(s;j,a;) = (1, 5¢)/(0, st): từ trạng thái s¿, thực hiện hành động a;, sau đó chuyển sang trang thái s, Nếu hành động a; là một hành động trong nhớm có thể gay ra XSS, hoặc trong nhóm không thuộc nhóm có thể gay ra XSS, thì phan thưởng ngay lập túc cho uiệc thực hiện hành động nay ở trạng thái s¿ là 1, hoặc

Thuật toán 4.2 chịu trách nhiệm thiết lập các trọng số cho đồ thị G va xây dựng ma trận phần thưởng R Phương pháp thực hiện mô hình hoá trạng thái của ứng dụng Web được kiểm thử dưới dạng một tập hợp hữu hạn § của GUI và một tập hợp hữu hạn các hành động có thể xảy ra A lộ trạng thái s € S, tac nhân thực hiện một hành động a € A(s) từ tập hợp các sự kiện có sẵn trong s.

Sự kiện này được chon dựa trên chính sách 7 và khái niệm phần thưởng Ham phần thưởng tính toán phần thưởng được liên kết với một sự kiện GUI nhất định Với phần thưởng là khả năng tìm ra các lỗ hồng đối với các cuộc tấn công XSS tồn tại trong ứng dụng chưa được kiểm thử Trong phương pháp trình bay ở chương này, luận án định nghĩa hàm phần thưởng như sau: R(s,a) = 0 ifa £ VS and a € A(s); R(s,a) =1lifaeVS and a€ A(s); R(s,a) = —1 if a ¢ A(s) Trong thuật toán nay, A(s) là tap các đối tượng có trên nút s Tap nay nhận được nhờ sử dụng hàm getAs() đã trình bày trong Thuật toán 4.1 Thuật toán 4.2 có độ phức tạp phụ thuộc vào dong 4 - duyệt qua các nút của đồ thi, dòng 5 - duyệt qua các đối tượng có thể có trong mỗi nút Trong một trang web, các đối tượng

Thuật toán 4.2 Dat trong số cho đồ thi đ và xây dung ma trận R

Input :G =< ®S,V > - state graph of webapp.

Data: s/ - the next state of s after performing a.

VS - the vulnerable parts of the XSS attack.

Procedure setWeightForGraph(G) begin initation(VS); foreach node se S do foreach a € A(s) do if ac VS then

R(s,a) = (—1,ỉ); return G’, R; có thể có gồm các link, các text box, v.v Tập các đối tượng nay được lưu trong tập A(s) Do đó, độ phức tap của thuật toán là O(|S|x|A]) Trong đó, |S] là số nút trong đồ thị, |A| là số đối tượng trong mỗi nút.

Thuật toán Q-Learning có thể tìm ra cách tối ưu để đạt được một trạng thái nhất định của môi trường Do đó, thuật toán này có thể được sử dụng để hướng dẫn thăm do các trạng thái tồn tại các lỗ hong bảo mật Luận án sử dụng Q- learning cho quá trình kiểm thử thâm nhập, trong đó tác nhân là công cụ kiểm thử và ứng dụng được thử nghiệm (AUT) đại diện cho môi trường của tác nhân.

Sinh ca kiểm tht 2.000 69 4.3.3 Tiến hành kiểm thử c2 70 4.4 Xây dựng công cụ kiểm thử tự động

Từ kết quả các đường dẫn kiểm thử thu được của giai đoạn trên, trong giai đoạn tiếp theo này, luận án sẽ tiếp tục thực hiện công việc Xác định các ca kiểm thử để thực hiện tiến trình trong khung kiểm thử đề xuất ở Hình 4.1 Quá trình sinh ca kiểm thử được bắt đầu bằng việc xác định và tập hợp danh sách các

1 2 3 â œ ơI! OO th trang web có nguy cơ tấn công XSS từ các đường dẫn kiểm thử Công việc này được thực hiện theo các bước như Thuật toán 4.5.

Thuật toán 4.5 Sinh ca kiểm thử Input : TPs - các đường kiểm thử.

Output: TCs - các ca kiểm thử.

S ô+ SU getNode(TP); foreach sec Š do

TCs — TCs U generateTC(s); return TCs;

Bước tiếp theo, luận án sẽ tiến hành phan tích các trang web có nguy cơ tấn công XSS dé xác định được các phương thức cần kiểm thử Thong tin cơ bản về một ca kiểm thử để có thể từ đó đọc ra và thực hiện cần được lưu trữ trong 1 lớp riêng TestcaseInfo Các thông tin về ca kiểm thử bao gồm: e methodName: tên phương thức kiểm thử (ví dụ: signIn, changePassword, ) e className: tên lớp (trong gói testcase) e invocation: Số lần thực hiện (ví dụ ta muốn thực hiện một ca kiểm thử 2 lần thì đặt giá trị này là 2) e methodType: khi muốn thực hiện toàn bộ các ca kiểm thử trong một bộ kiểm thử thì để methodType là All

Sau khi xây dựng được tập các ca kiểm thử, phương pháp đề xuất sẽ tiến hành kiểm thử tự động theo các bước: (i) Tao POM từ các ứng dung Web; (ii) Xâu dựng kịch bản test; (iii) Thực thi kịch bản kiểm thử; va (iv) Ghi nhật ky kết quả kiểm tra Khung kiểm thử tự động hóa jFAT có các đặc điểm chính: e Các phần tử web được xác định cùng một lúc và được sử dụng lại cho tất cả các trường hợp kiểm thử.

70 e Các trường hợp kiểm thử được xây dựng tương ứng với các chức năng nhất định của ứng dụng Web.

Các trang và đối tượng được tạo tự động từ các ứng dụng Web bằng trình tạo đối tượng trang Selenium Hai thành phần cốt lõi của j FAT là xây dựng các kịch bản kiểm thử từ mô hình POM và thực hiện các trường hợp kiểm thử bằng TestNG Đầu tiên, người dùng phát triển các trường hợp kiểm thử bằng mô hình POM Khung làm việc tạo các tập lệnh kiểm thử tương ứng với các trường hợp kiểm thử dựa trên các mô hình này Sau đó, nó chuyển đổi kế hoạch kiểm tra do người dùng xây dựng thành một tệp dựa trên XML, tệp này có thể được thực thi bởi TestNG Khung làm việc chạy các trường hợp kiểm thử trên trình duyệt bằng cách sử dung API TestNG va Selenium Kết quả kiểm thử được lưu trữ trong tệp tin.

Khung làm việc được đề xuất cung cấp các chính sách bảo mật để ngăn chặn các tập lệnh kiểm thử vô tình truy cập tài nguyên Mô hình bảo mật dựa trên cơ chế hộp cát được triển khai trên nền tang Java Ngudi dùng cũng có thể thay đổi các chính sách bảo mật bằng cách tùy chỉnh tệp cấu hình, có định dạng tương tự như tệp chính sách của Java TestNG va Selenium được tích hợp vào

Framework và có thể được tùy chỉnh bằng cách sử dụng cấu hình dựa trên XML như sau.

org.seleniumhq.selenium

Để tiến hành thực thi theo khung làm việc đã đề xuất thi một công việc quan trọng là sinh các ca kiểm thử Để đảm bảo chất lượng và giảm số lượng các ca kiểm thử, phương pháp đề xuất sử dụng Q-Learning để sinh các đường dẫn kiểm thử với số lượng là ít nhất Từ các đường dẫn kiểm thử này, phương pháp tiếp

71 tục thực hiện tạo ra các ca kiểm thử và tiến hành kiểm thử.

4.4 Xây dựng công cụ kiểm thử tự động Để có tính tổng quát trong quá trình thực hiện thực nghiệm, luận án sử dụng một trang web hiện có từ Guru99 [42] mô phỏng các giao dịch ngân hàng cho người quản lý Thông tin của khách hàng bao gồm họ và tên, ngày sinh, tỉnh thành, email, số điện thoại, mã pin Một khách hàng có nhiều tài khoản ngân hàng Một người quản lý phụ trách nhiều khách hàng và có thể thực hiện các nhiệm vụ sau. e Tạo, cập nhật, xóa khách hàng khỏi hệ thống ngân hàng. e Dựa trên thông tin hiện có, người quản lý có thể tao tài khoản cho khách hàng Tài khoản ngân hàng có các thông tin như mã khách hàng, loại tài khoản, số dư ban đầu. e Người quản lý có thể gửi/rút tiền vào/từ một tài khoản nhất định bằng cách cung cấp số tài khoản, số tiền và lý do Giao dịch phải đảm bảo số tiền nạp vào lớn hơn 0 và số tiền rút ra nhỏ hơn số dư hiện tại. e Việc chuyển giữa các tài khoản được thực hiện tương tự với tài khoản nguồn và tài khoản đích. e Người quản lý cũng có thể kiểm tra số dư hiện tại và lịch sử giao dịch của tất cả các tài khoản mà họ quản lý. Để tiến hành kiểm thử, đầu tiên công cụ của luận án thực hiện sinh đường dẫn kiểm thử của ứng dụng Web! Công cụ có 3 chức năng chính là Crawl, FindPathURL, và TestPath Trong đó chức năng Crawl thu thập dit liệu tổng số URL của trang web trong Linkweb, FindPathURL tìm tất cả các đường dẫn của biểu đồ trạng thái của trang web, TestPath cung cấp các đường dẫn chứa các lỗ hong XSS tiềm an.

Khi thực hiện quét với tổng số 100 URL (độ sâu là 53) thì biểu đồ trạng thái tương ứng của trang web có 77 nút Sau đó, những người thử nghiệm phải thực hiện tất cả 51 đường dẫn thử nghiệm để bao quát tất cả các khả năng trên biểu đồ trạng thái Bằng cách áp dụng thuật toán Q-learning như đã chỉ ra, số lượng đường dẫn kiểm thử chỉ còn 7 Như vậy, số lượng đường dẫn đã được giảm đáng kể và do đó thời gian để thực hiện các ca kiểm thử cũng sẽ giảm đi đáng kể vì không gian ca kiểm thử giảm Kết quả được chỉ ra như Hình 4.3. lhttps : //www.guru99.com

Start point: List Node Final: Type List:

Path 1 (9): ^ Node0 https:/www.quru99.com/

Node238 /android-tutorial.html INode286 https-//twitter com/guru99com INode11 https://www.quru99.com/testlink-tutorial-complete-quide html INode88 https:/www_quru99.com/pmp-tutorial html

INode32 https:/;www.quru99.com/sap-successfactor html INode 102 https://www.quru99.com/jenkins-tutorial htm!

INode97 https:/www.guru99.com/best-hard-disks.html INode284 https://guru99 link/recommends-apilayer

Path 2 (3) INode0 https:/www.guru99.com/

Node238 /android-tutorial.html INode286 https://twitter com/guru99com

INode0 https://www.guru99.com/

Node238 /android-tutorial html INode286 https://twitter.com/guru99com v

Hình 4.3: Kết quả sinh đường dẫn kiểm thử.

Sau khi có các đường kiểm thử, tiếp theo công cụ sẽ tiếp tục tiến hành sinh các ca kiểm thử từ các đường kiểm thử này Kết quả các ca kiểm thử thu được của tiến trình này như Bảng4.1.

Bảng 4.1: Các trường hợp thử nghiệm của ứng dụng từ trang web guru

STT | Ca kiểm thử Mô tả

1 TCO1 Tao tai khoản người quản lý mới từ trang guru-bank

2 TC02 Đăng nhập vào trang guru-bank

3 TC03 Thay đổi mật khẩu người quản lý

4 TC04 Tao khách hàng mới

5 'TC05 Tạo tài khoản mới cho khách hàng

6 'TC06 Thay đổi loại tài khoản khách hàng ĩ TC07 Gửi tiền vào tài khoản

8 TC08 Rút tiền từ tài khoản

9 TC09 Chuyển khoản giữa hai tài khoản

Theo cách tiếp cận được đề xuất, người dùng jFAT cần tạo các lớp cho các trang và đối tượng của trang chủ, đăng nhập và đăng ký Các lớp trang đã xác định các phương thức tương ứng với các tính năng chức năng của các trang, trong khi các lớp đối tượng xác định các thuộc tính cho các mã định danh phần

Mã nguồn 4.1: Trích một phần của lớp trang chủ public void clickFundTransferMenu() { waitForElement (hpo.MN_FUND_TRANSFER) click() ; public void enterAccountID(String payer,String payee) { waitForElement (hpo.TF_PAYER_ACCOUNT) sendKeys (payer) ; waitForElement (hpo.TF_PAYEE_ACCOUNT) sendKeys (payee) ; public void enterAmountAndDesc(int amount,String desc) { waitForElement (hpo.NF_FUND_AMOUNT) sendKeys (String valueOf (amount) ) ; waitForElement (hpo.TF_DESCRIPTION) sendKeys (desc) ;

Mã nguồn 4.2: Trích một phan của lớp đối tượng trang chủ

@FindBy(xpath = "//a[contains(text(),’Change Password?)]") public WebElement MN_CHANGE_PASSWORD ;

@FindBy(xpath = "//a[contains(text(),?New Customer’)]") public WebElement MN_NEW_CUSTOMER ;

Dé thực hiện các trường hợp kiểm thử với jFAT, người dùng cần tạo một lớp trường hợp kiểm thử có phương thức hiển thị các bước của trường hợp kiểm thử Đoạn mã dưới đây thể hiện nội dung của ca kiểm thử TC08.

Mã nguồn 4.3: Trích một phan của TC08

WebDriver driver = drivers.get(); driver get("http: //demo guru99.com/v4/") ; LoginPage loginPage = new LoginPage(driver) ; loginPage enterUserName (un) ; loginPage.enterPassword (pw) ; HomePage homePage = loginPage.clickSubmit() ; homePage checkManagerTD (un) ; homePage.clickBalanceEnquiryMenu() ;

String accid aStorage.getData(2).toArray() [0] toString() ; homePage enterAccountID(accid) ; homePage.clickSubmitEditForm() ; int currentAmount = homePage.saveCurrentAmount () ; homePage.clickWithdrawalMenu() ; homePage enterAccountID(accid) ; int withdraw = 1200; homePage enter Amount (withdraw) ; homePage.enterDescription ("withdraw") ; homePage.clickSubmitEditForm() ; homePage checkRemainingAmount (currentAmount ,withdraw) ; jF AT cho phép định nghĩa kế hoạch kiểm thử trong tệp văn bản cho biết trường hợp kiểm tra nào sẽ chạy và số lần chạy Doan mã nguồn 4.4 có nghĩa là kế hoạch kiểm tra thực hiện TC01, TC02, TC03, TC09 và TC02 sẽ được thực hiện hai lần Các ca kiểm thử này đã được giải thích ở Bảng 4.1.

Mã nguồn 4.4: Một kế hoạch kiểm thử

Testsuite | tc01 |1 Testsuite | tc02 |2 Testsuite | tc03 | 1 Testsuibe | tc09 | 1 Để chạy tất cả các trường hợp kiểm thử, kế hoạch kiểm thử chỉ cần xác định

Testsuite/All/1 Hình 4.4 cho thấy kết quả của việc thực hiện test plan 4.4 Nó báo cáo bằng đồ họa rằng bốn trường hợp kiểm thử thành công và một trường hợp kiểm thử thất bại TC09 - Chuyển tiền giữa hai tài khoản bị lỗi do tài khoản nguồn có số dư bằng không.

Tổng kết chương 2222112221 v2 75 Chương 5 KIEM CHUNG RÀNG BUỘC THỜI GIAN CUA CÁC SỰ KIỆN TRONG THỜI GIAN THUC THI

Chương này đã đề xuất một khung hiệu suất cao và dựa trên mô-đun để kiểm thử web Khung được đề xuất, được tích hợp với Selenium và TestNG, cho phép người dùng dễ dàng phát triển và thực hiện các kế hoạch kiểm tra Khung này cũng cung cấp một báo cáo kết quả kiểm tra đồ họa phong phú và thân thiện của tất cả các trường hợp kiểm tra Nó chỉ mới được thực hiện trong giai đoạn đầu.

Luận án giới thiệu phương pháp sử dụng Q-learning để tạo các đường dẫn

Tests View Steps View Pass Percentage

4 test(s) passed 4 step(s) passed 1 test(s) failed, 0 others 1 step(s) failed, 0 others

Test Name Passed Failed Fatal Error Warning Info Skipped Unknown RunStatus tc01: 2018-04-02-14-46-44 1 0 0 0 0 0 0 0 tc09: 2018-04-02-14-46-54 0 1 0 0 0 0 0 0 tc03: 2018-04-02-14-47-53 1 0 0 0 0 0 0 0 tc02: 2018-04-02-14-48-17 1 0 0 0 0 0 0 0 tc02: 2018-04-02-14-48-30 1 0 0 0 0 0 0 0

Hình 4.4: Báo cáo kết quả kiểm thử kiểm thử phát hiện lỗ hồng bảo mật XSS của ứng dụng trên nền web Trong quá trình thử nghiệm, công cụ đã tiến hành một số thử nghiệm với nhiều hệ thống website và kết quả cho thấy phương pháp này có ưu thế về mặt thời gian do ma trận phần thưởng được cải thiện Tuy nhiên, trong nội dung sinh đường dẫn kiểm thử, luận án chưa giải quyết được tất cả các vấn đề của các cuộc tấn công XSS Tùy thuộc vào các yêu tố chứa trong mỗi trang web mà mức độ rủi ro của các cuộc tấn công XSS trên mỗi trang web là khác nhau Luận án sẽ tiếp tục giải quyết vấn đề này trong các nghiên cứu trong tương lai Nghiên cứu mới chỉ đạt đến điểm tạo ra các đường dẫn kiểm thử có khả năng chứa các cuộc tấn công XSS liên quan đến các trường nhập dữ liệu của các trang web Trong tương lai, luận án dự định phát triển cách tiếp cận của mình để áp dụng cho nhiều vấn đề hơn về các cuộc tấn công X88 và tạo các ca kiểm thử từ các đường kiểm thử hiện có Từ đó, phương pháp sẽ thực hiện kiểm tra tự động và xác định các trang của ứng dụng trên nền web dé bị tan công XSS.

Trong tương lai, khung làm việc cần tự động hóa một số bước để hỗ trợ người dùng phát triển như tự động trích xuất các phần tử web và tạo tập lệnh kiểm thử Ngoài ra, luận án sẽ áp dụng phương pháp kiểm thử dựa trên dữ liệu để phân tách dữ liệu và tập lệnh giúp jF AT linh hoạt hơn Các kết quả nghiên

76 cứu của chương này đã được công bố tại Hội nghị ICCASA 2018 (International

Conference ơn Contert-Aware Systems and Applications) và Hội nghị NICS 2022 (NAFOSTED Conference on Information and Computer Science).

KIEM CHUNG RÀNG BUỘC THỜI GIAN

CUA CAC SỰ KIEN TRONG THỜI GIAN

Trong chương này, luận án giới thiệu một phương pháp để kiểm chứng tiến trình các sự kiện trong một hệ thống web được xây dựng dựa trên kiến trúc hướng sự kiện (EDA) tại thời điểm thực thi Việc đảm bảo rằng các sự kiện xảy ra trong khoảng thời gian mong muốn là rất khó, do các yêu cầu phức tạp của hệ thống Phương pháp được đề xuất sử dụng kết hợp đặc tả giới hạn thời gian và trình giám sát thời gian thực để phát hiện khi các sự kiện xảy ra bên ngoài khoảng thời gian được chỉ định của chúng Kết quả cho thấy phương pháp này có thể phát hiện các vi phạm về thời gian của sự kiện và cải thiện độ tin cậy, tính an toàn của các hệ thống web xây dựng theo kiến trúc hướng sự kiện.

Giới thiỆU cnn ng ng ng nent een eens 78 5.2 Các nghiên cứu liên quan 2 ccc nee eens 80 5.3 Phương pháp đề xuất c c2 82 5.3.1 Một số định nghĩa .cc.Ặ

Tổng quan phương pháp đề xuất

Từ phân tích của mô hình hình thức của EBS, luận án đề xuất một phương pháp để kiểm chứng tính chính xác của một hệ thống dựa trên sự kiện đối với các đặc tả của nó trong thời gian thực thi Các yêu cầu để kiểm tra sự đáp ứng

87 của các sự kiện được quy định bởi các ràng buộc thời gian, đặc biệt là mối quan hệ giữa các sự kiện trong hệ thống Việc đảm bảo rằng các sự kiện được thực thi đúng thời gian và theo đúng quy định sẽ giúp đảm bảo tính toàn vẹn và độ tin cậy của hệ thống Phương pháp được đề xuất bao gồm các bước được mô tả như Hinh5d.1.

+ Spec(Ei, R, Ej) // relatitonship pm Ei and Ej

R: {before, meet, overlaps, starts, durring, finishes, equal}

Hình 5.1: Tổng quan phương pháp đề xuất.

Quá trình kiểm chứng có thể được mô tả như sau: khi hệ thống dựa trên sự kiện đang thực thi, luận án thu thập các thuộc tính của các sự kiện đã được thực hiện (tên sự kiện, thời gian bắt đầu, thời gian kết thúc, v.v.) của EBS vào một tệp nhật ký Tiền xử lý dữ liệu sử dụng các kỹ thuật để chuẩn bị dữ liệu thô để tạo bảng với ba cột (tên sự kiện, thời gian bắt đầu và thời gian kết thúc) trước khi ghi vào tệp nhật ký Từ dữ liệu được cung cấp trong tệp nhật ký và tệp đặc tả của hệ thống EBS, luận án xây dựng các thuật toán để kiểm chứng tính đúng đắn của EBS (xem Mệnh dé5.1, Mệnh đề5.2).

Các bước thực hiện được mô tả chỉ tiết như sau Bước đầu tiên của phương pháp là thu thập các tệp nhật ký về thời điểm bắt đầu và kết thúc của các sự kiện khi hệ thống thực thi Các tệp nhật ký này được thu thập bởi Kafka, một hệ thống xử lý dit liệu phan tán Các tệp nhật ký này cung cấp thông tin chi tiết về thời gian bắt đầu và kết thúc của các sự kiện trong hệ thống.

Tiếp theo phương pháp kiểm chứng sẽ đặc tả một cách rõ ràng các sự kiện có trong hệ thống cần kiểm chứng Kết quả của việc đặc tả là danh sách các sự

88 kiện và sự ràng buộc giữa các sự kiện xảy ra trong hệ thống như Bảng 5.1.

Sau đó, phương pháp đề xuất các thuật toán để kiểm chứng tiến trình thực thi của các sự kiện trong EDA có dap ứng được các đặc ta hay không Các thuật toán này sẽ kiểm chứng các mối quan hệ giữa các sự kiện và đảm bảo rằng chúng đáp ứng đủ các đặc tả được quy định Chúng cũng phân tích các tệp nhật ký và kiểm tra xem các sự kiện có thực thi đúng theo thứ tự và trong khoảng thời gian được quy định hay không Các thuật toán này được trình bay chi tiết ở phần sau của luận án.

Cuối cùng, sử dụng một công cụ hỗ trợ để thực hiện việc kiểm chứng các hệ thống dựa trên sự kiện một cách tự động Công cụ này có đầu vào là file nhật ký sự kiện và file đặc tả chứa ràng buộc của các sự kiện trong hệ thống cần kiểm chứng Kết quả của công cụ sẽ cho biết liệu hệ thống có đang vận hành giống như đặc tả hay không, nếu có sự vi phạm, công cụ cũng thông báo các sự kiện gây ra vi phạm Báo cáo vi phạm có thể được gửi lại hệ thống để có thể tiến hành sửa chữa và nâng cấp.

Như đã đề vập ở trên, phương pháp của luận án chỉ kiểm chứng một số đặc tả như trong Bang 5.1 Trong một hệ thống, giữa hai sự kiện có thể tồn tại nhiều loại mối quan hệ thời gian khác nhau, thể hiện trong Bảng 5.1 Các loại mối quan hệ thời gian này có thể được phân loại thành một số trường hợp như sau: e evt; before evt;: Sự kiện evt; xảy ra trước sự kiện evt;, trong trường hợp này sự kiện evt; kết thúc trước thời điểm xảy ra của sự kiện evt;. e evt; meet evt;: Su kiện evt; gặp sự kiện evt,, tức thời gian kết thúc của sự kiện evt; cũng là thời điểm bắt đầu của sự kiện evt;. e evt; overlaps evt;: Sự kiện evt; và sự kiện evt; chồng lên nhau, tức hai sự kiện này có thời gian xảy ra đồng thời với nhau Khi sự kiện thứ nhất đang xảy ra thì sự kiện thứ hai bắt đầu xảy ra Sự kiện thứ nhất kết thúc trong khi sự kiện thứ hai đang xảy ra. e cu; starts evt;: Sự kiện evt; bắt đầu sự kiện coí;, tức là sự kiện evt; xẩy ra cũng kéo theo sự kiện evt; khác cùng xảy ra tại thời điểm đó. e evt; during evt;: Su kiện evt; xảy ra trong khoảng thời gian sự kiện evt; dang xảy ra Một sự kiện xảy ra mà toàn bộ thời gian tồn tai của nó nằm trong khoảng thời gian xảy ra của một sự kiện khác.

89 e coí; finishes evt;: Sự kiện evt; kết thúc cùng thời điểm với sự kiện evt;, tức hai sự kiện này kết thúc cùng một thời điểm trong biểu đồ thời gian Nói cách khác, sự kiện thứ nhất kết thúc, nó cũng kéo theo sự kiện thứ hai kết thúc. e evt; equal evt;: Su kiện evt; và sự kiện evt; tương đương nhau, tức hai sự kiện này xảy ra đồng thời và có cùng thời gian bắt đầu và kết thúc.

Bảng 5.1: Ràng buộc giữa các sự kiện trong hệ thống

Relations Symbol | Inverse | Pictorial Meaning

: evt; evt; evt; before evt; b bi ‘ j l eut; evt; evl; meet evt; m mì evt; evt; overlaps evt; o ơi evt; ah evt; starts evt; 8 8i cut; evt; during evt; d di evt; at evt; finishes evt; f fi cuts uti evt; evt; equal evt; eq eq vt;

Trong một hệ thống ứng dụng nền web có thể xuất hiện nhiều sự kiện và chúng có thể được kích hoạt bởi nhiều cách khác nhau Người dùng có thể kích hoạt các sự kiện bằng cách tương tác với hệ thống, chang hạn như nhẫn nút hoặc nhập dit liệu từ ban phím Các sự kiện cũng có thể được kích hoạt bởi các tương tác của hệ thống khác, chang hạn như khi hệ thống gửi một yêu cầu mang hoặc nhận một thông báo từ một ứng dụng khác Thời gian cũng có thể kích hoạt các sự kiện vào các thời điểm nhất định, chang hạn như khi một đồng hồ báo đến một thời điểm cụ thể hoặc khi một thời gian đặt trước đã trôi qua Các lỗi hệ thống cũng có thể kích hoạt các sự kiện, chang hạn như khi một lỗi phan mềm xảy ra hoặc khi phần cứng bị hỏng Cuối cùng, sự thay đổi trạng thái của hệ thống cũng có thể kích hoạt các sự kiện, chang hạn như khi một tập tin được tạo hoặc khi một kết nối mạng được thiết lập Luận án chỉ ghi nhận tên sự kiện, thời gian bắt đầu và thời gian kết thúc của các sự kiện Với mỗi sự kiện chúng ta có ràng buộc startTime < endTime Một sự kiện nhất định có thể xuất hiện nhiều lần trong hệ thống.

Các thuật toán kiểm chứng . - c2 91 1 Sự kiện evt; xảy ra trước sự kiện e0f/

Sự kiện evt; trong khoảng thời gian e0f;

Thuật toán 5.5 là nhận đầu vào là tệp nhật ký các sự kiện, hai sự kiện evt; và evt; Sau đó, trả về kết quả là TRUE nếu tồn tại sự kiện evt; có thời điểm bắt đầu và thời điểm kết thúc nằm trong khoảng thời điểm bắt đầu và kết thúc của sự kiện evt;, ngược lại trả về kết quả FALSE Ví dụ trong hệ thong ứng dụng web về tài chính, sự kiện ngân hàng thông báo nhận đơn vay vốn của khách hàng (evt;) và sự kiện khách hàng nộp đơn vay vốn (evt;).

Nếu chúng ta kiểm chứng quan hệ này tại thời điểm là một thời điểm trong lúc sự kiện evt; đang xảy ra thì không thể thực hiện được Bởi lẽ, lic này sự kiện evt; vẫn chưa kết thúc và chúng ta sẽ không thể xác định được sự kiện này có kết thúc trước sự kiện cu; hay không Trong khi đó, nếu thực hiện kiểm chứng

98 tai một điểm trong lúc evt; đang diễn ra thì có thể thực hiện được Bởi vì có thể biết được sự kiện evt; có bắt đầu và kết thúc trong lúc sự kiện evt; dang diễn ra hay không Tuy nhiên thời điểm này phải là từ thời điểm t trở đi ở trong

Hình 5.5 bên dưới. evt; eu;

D6 phức tap của thuật toán 5.5 phụ thuộc vào dòng ba va dòng bốn của thuật toán này Dây là là hai câu lệnh lồng nhau và được tính toán theo quy tắc nhân.

Day là hai câu lệnh duyệt tất cả các phan tử của tập Sevt; và tập Sevt; Nếu tap Sevt; có n phần tử, tập Sevt; có m phần tử thì độ phức tạp của thuật toán 5.5 là O(n x m).

Cũng có thể chứng minh tinh đúng đắn của thuật toán này theo phương pháp quy nạp như các thuật toán ở trên.

Thuật toán 5.5 evt; during evt;.

Input : Dữ liệu nhật ky của các sự kiện, hai sự kiện evt; và evt;.

Output: Kiểm tra xem mỗi sự kiện evt; CÓ tồn tại một sự kiện evt; xảy ra trong evt; không

Trích xuất tất cả các sự kiện evt; thành tập Sevt;;

Trích xuất tất cả các sự kiện evt; thành tập Sevt;; for each evt; € Sevt; do if fevt; € Sevt; sao cho causality(evt;, evt;) then return FALSE; else if (evtj.endTime = UNDEFINED) A (evt;.endTime # UNDEFINED) then

| return FALSE; if (evt;.starTime < evt;.startTime) V (evt;.endTime > evt;.endTime A evt;.endTime # UNDEFINED) then

Sự kiện evt; kết thúc sự kiện

Thuật toán 5.6 dùng để kiểm chứng xem khi sự kiện evt; kết thúc có kéo theo sự kiện evt; kết thúc hay không Hai sự kiện này phải có mối quan hệ với nhau trong hệ thống Ví dụ trong hệ ứng dụng web sự kiện evt;: Ngan hàng xác nhận chuyển tiền điện tử thành công Sự kiện evt;: Khách hàng nhận được số tiền chuyển đến trong tài khoản Trong trường hợp này, evt; sẽ xẩy ra trước evt; và thời gian kết thúc của evt; (thời điểm xác nhận thành công) sẽ bằng với thời điểm kết thúc của evt; (khách hàng nhận được số tiền trong tài khoản).

Nếu thực hiện kiểm chứng tại một thời điểm trong hệ thống mà thời điểm này sự kiện evt; hoặc cu; đang diễn ra hoặc chưa xảy ra thì ta chưa thể biết được 2 sự kiện này kết thúc khi nào do đó không thể kiểm chứng được Chỉ có thể thực hiện kiểm chứng nếu thời điểm xét là thời điểm hai sự kiện này đã kết thúc.

Thuật toán 5.6 evt; finishes evt;.

Input: Dữ liệu nhật ky của các sự kiện, hai sự kiện evt; va evt;.

Output: Kiểm tra xem với mỗi sự kiện evt; có tồn tại sự kiện evt; kết thúc evt; không

Trích xuất tất cả các sự kiện evt; thành tập Sevt;;

Trích xuất tất cả các sự kiện evt; thành tap Sevt;; for each evt; € Sevt; do if flevt; € Sevt; sao cho causality(evt;, evt;) then return FALSE; else if (evtj.endTime # evt;.endTime) then

Sự kiện evt; tương đương với sự kiện euí;

Thuật toán này dùng để kiểm chứng hai sự kiện evt; và evt; có xảy ra và kết thúc tại cùng một thời điểm hay không Thuật toán 5.7 là nhận đầu vào là tệp nhật ký các sự kiện, hai sự kiện evt; và evt; Sau đó, trả về kết quả là TRUE nếu tồn tại sự kiện evt; có thời điểm bắt đầu và thời điểm kết thúc cùng với khoảng thời điểm bắt đầu và kết thúc của sự kiện evt;, ngược lại trả về kết quả FALSE Ta không thể kiểm chứng được ràng buộc giữa hay sự kiện này tại một thời điểm runtime bất kỳ của hai sự kiện, bởi vì lúc này chúng ta chưa biết được hai sự kiện sẽ kết thúc lúc nào mà chỉ biết được hai sự kiện có bắt đầu cùng lúc hay không Nhưng nếu kiểm chứng tại thời điểm hai sự kiện đã kết thúc thì có thể thực hiện được với giải thuật 5.7. Độ phức tạp của thuật toán 5.7 phụ thuộc vào dòng ba và dòng bốn của thuật toán này Dây là là hai câu lệnh lồng nhau và được tính toán theo quy tắc nhân.

Day là hai câu lệnh duyệt tất cả các phần tử của tập Sevt; và tập Sevt; Nêu tập Sevt; có n phan tử, tập Sevt; có m phần tử thì độ phức tạp của thuật toán 5.7

Thuật toán 5.7 evt; equal evt;.

Input: Dữ liệu nhật ký của các sự kiện, hai sự kiện evt; va evt;.

Output: Kiểm tra xem với mỗi sự kiện evt; có tồn tại một sự kiện evt; xẩy ra bằng evt; không Trích xuất tất cả các sự kiện evt; thành tập Sevt;;

Trích xuất tất cả các sự kiện evt; thành tập Sevt;; for each evt; € Sevt; do if flevt; € Sevt; sao cho causality(evt;, evt;) then return FALSE; else if (evt;.starTime F evt;.start Time) V (evt;.endTime # evt;.endTime) then

ThỰC Ng]ỆM c2 S2 ng HE HH kg ki vxa 102 1 Giới thiệu hệ thống -ccc cà 102 2 Thiết kế hệ thống . cccẶcẶẶ c2 104 b9 a4 een teen tenet nent eeneeas 107 5.6 Tổng kết chương nh es 110 Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIEN

Có nhiều lĩnh vực trong thực tế dc xây dựng dựa trên kiến trúc hướng sự kiện như thương mại điện tử, dịch vụ ngân hàng trực tuyến, trò chơi trực tuyến, v.v.

Tuy nhiên, hiện nay, giao thông đô thị đang đối mặt với nhiều thách thức, bao gồm tình trạng ùn tắc giao thông, tai nạn giao thông và ô nhiễm môi trường Dể giải quyết những vấn đề này, việc phát triển một hệ thống giám sát giao thông thông minh là cần thiết Vì vậy, trong phần nghiên cứu này, luận án đề xuất xây dựng mô phỏng một hệ thống giám sát giao thông thông minh trên đường bộ trong một thành phố lớn Hệ thống này sẽ tạo ra các sự kiện trong thời gian thực Luận án cũng đề xuất cài đặt các công cụ và giải thuật để minh họa và kiểm chứng một số ràng buộc và sự kiện trong hệ thống này.

Hệ thống giao thong thông minh (ITS) tập trung vào các khía cạnh điều khiển giao thông Hệ thống này có thể được triển khai trên nhiều kiến trúc khác nhau dựa trên yêu cầu của dự án và các tính năng cần thiết trong hệ thống Tuy nhiên, kiến trúc cho hệ thống điều khiển giao thông trong chương này của luận án được triển khai trên kiến trúc hướng sự kiện Kiến trúc này cho phép các thành phần của hệ thống (như cảm biến, ứng dụng di động, máy chủ, v.v.) gửi và nhận các sự kiện liên quan đến giao thông như thông tin luồng giao thông,

102 điều kiện đường, tai nạn và iin tắc giao thông Hình 5.7 thể hiện các thành phan của ITS.

F/ Kafka ệ Sever Cluster Subcribers ¿— —> > F Mobile Broker Backend

———| services istribution [I1 | Kafka | [ — y| Realtime Delayed

Analytics —đè | Brokers | Reporting: Reporting:

Event Event and Event Based ||[FT => - apps, quick apps,

Realime Integator Intergator || tration || APPlication analytics i

Hình 5.7: Kiến trúc Hệ thống giám sát giao thông đường bộ thông minh

Hệ thống có thể được triển khai như sau: e Thành phần trung gian giữa các publishers và subscribers được gọi là Bro- ker Broker nhận các sự kiện từ publishers và chuyển tiếp đến các subscribers đã đăng ký để nhận các sự kiện đó Ngoài ra, Broker còn có khả năng thực hiện các nhiệm vụ như lọc và phân loại các sự kiện trước khi chuyển tiếp cho subscribers Một số công nghệ broker phổ biến hiện nay bao gồm Apache

Kafka, RabbitMQ, và AWS SNS. e Publishers là các thành phan tạo ra các sự kiện va gửi chúng đến các kênh

(topic) đã được đăng ký trước Trong hệ thống giám sát giao thông, các publishers có thé bao gồm các thiết bị cảm biến được đặt trên đường phố, các ứng dụng di động cho phép người dùng báo cáo tình trạng giao thông, hoặc các hệ thống thông minh đọc biển số xe Các sự kiện mà publishers tạo ra có thể cung cấp thông tin về tình trạng đường, lưu lượng xe cộ, tốc độ di chuyển, v.v. e Subscribers: Là các thành phần đăng ký để nhận các sự kiện từ các kênh tương ứng Trong hệ thống giám sát giao thông, subscribers có thé là các ứng dụng di động, các hệ thống giám sát, hoặc các hệ thống quản lý đội xe.

Với khả năng đăng ký nhận các sự kiện từ nhiều kênh khác nhau, subscribers có thể xử lý các tình huống phức tạp, như phát hiện tai nạn giao thông, cập nhật tình trạng giao thông và đưa ra cảnh báo cho người dùng Các sự

103 kiện nhận được từ các kênh có thể bao gồm thông tin về tình trạng đường, lưu lượng xe cộ, tốc độ di chuyển, v.v. e Kênh (topic): Là các kênh để các sự kiện được gửi tới và đăng ký bởi các subscribers để nhận các sự kiện tương ứng Trong hệ thống giám sát giao thông, các kênh có thể được phân loại dựa trên tình trạng đường, vị trí địa lý, loại phương tiện hoặc các yếu tố gây ra tình trạng giao thông như tai nạn hoặc kẹt xe Các kênh giúp phân loại các sự kiện và đưa chúng tới các subscribers tương ứng để xử lý.

Các yêu cầu của hệ thống: e Hệ thống cần xử lý được số lượng lớn các sự kiện đầu vào đồng thời một cách hiệu quả, đáp ứng nhu cầu phân tích dữ liệu thời gian thực. e Người dùng cần được cung cấp giao diện để hiển thị thông tin giao thông và nhận cảnh báo về tình trạng đường đi. e Hệ thống phải được thiết kế để có khả năng mở rộng, tích hợp thêm thiết bị và cải thiện khả năng phân tích dữ liệu. e Hệ thống cần có khả năng phát hiện phương tiện vi phạm luật giao thông, giúp người dùng và cơ quan chức năng kiểm soát và quản lý giao thông hiệu quả. e Hệ thống phải đảm bảo tính sẵn sàng và ổn định cao, sử dụng giải pháp bảo mật, giám sát hệ thống và khắc phục sự cố tự động. e Hệ thống cần tích hợp với các hệ thống quản lý giao thông khác như hệ thống quản lý phân luồng hay hệ thống quản lý đèn giao thông.

Hệ thống này sẽ bao gồm các thành phần sau: e Các camera giám sát là thiết bị được sử dụng để thu thập hình ảnh và âm thanh của các phương tiện lưu thông trên đường cũng như người dân Các camera thường được đặt ở các vị trí chiến lược trên đường như giao lộ, cầu, đường cao tốc hoặc các khu vực đông dân cư để thu thập dữ liệu về phương tiện di chuyển và đảm bảo an toàn giao thông Các dữ liệu được thu thập từ các camera giám sát giúp giảm thiểu tai nạn và ứng phó với tình trạng ùn tắc.

104 e Biển báo giao thông điện tử là loại biển báo được hiển thị thông qua màn hình điện tử hoặc LED thay vì sử dụng biển báo cố định truyền thống Loại biển báo này có khả năng hiển thị nhiều thông tin khác nhau, bao gồm hướng dẫn, cảnh báo tai nạn, tốc độ giới hạn và cảnh báo ùn tắc, giúp nâng cao tính hiệu quả và độ chính xác trong việc cảnh báo và hướng dẫn người tham gia giao thông. e Hệ thống cảnh báo giao thông bằng chuông: Hệ thống này bao gồm một cảm biến, một bộ điều khiển và một loa phát thanh để phát ra âm thanh cảnh báo Nó được sử dung để cảnh báo các tài xế và người điều khiển xe về những tình huống nguy hiểm trên đường như tai nạn giao thông, kẹt xe, công trường đang thi công hoặc đám đông người. e Cảm biến đo thời tiết: Hệ thống này sử dụng các cảm biến để đo lường các thông số thời tiết như nhiệt độ, độ am, tốc độ gió, áp suất không khí và mưa Dữ liệu được thu thập từ các cảm biến được chuyển đến một trung tâm điều khiển, nơi các thông tin này được phân tích và xử lý để cung cấp thông tin về thời tiết hiện tại và dự báo thời tiết, giúp người dân chuẩn bị và đối phó với các tình huống thời tiết xấu như bão, lốc, mưa lớn. e Hệ thống cảnh báo chất lượng không khí: Sử dụng các cảm biến để đo lường các thông số của không khí như khí độc hại, bụi, ozone, CO, NOx và SOx, hệ thống này cung cấp thông tin về chất lượng không khí tại các khu vực đó thông qua trung tâm điều khiển, nơi các dữ liệu đo được được phân tích và đưa ra cảnh báo cho người dân. e Hệ thống đèn báo giao thông: Được sử dung để tăng tính an toàn cho giao thông đường bộ, hệ thống đèn báo giao thông điều chỉnh sự di chuyển của các phương tiện trên đường, phân chia đường thành các phần để giúp các phương tiện di chuyển an toàn và hiệu quả hơn. e Hệ thống xử lý sự kiện: Dùng để phân tích các sự kiện trên đường bộ và xử lý dữ liệu từ các cảm biến, hệ thống này có thể sử dụng các thuật toán máy học và trí tuệ nhân tao để phân tích dữ liệu và cung cấp thông tin về tình hình giao thông. e Hệ thống thông tin: Cung cấp thông tin về lưu lượng giao thông, tình trạng đường và các thông báo liên quan đến an toàn giao thông thông qua các bảng điện tử, màn hình LCD hoặc các ứng dụng trên điện thoại thông minh.

Các ràng buộc của hệ thống:

Hệ thống giám sát giao thông đường bộ thông minh có thể chứa rất nhiều sự kiện khác nhau, tùy thuộc vào yêu cầu và quy mô của hệ thống Các sự kiện này bao gồm một số sự kiện như: sự kiện xảy ra tai nan giao thông, phương tiện di chuyển quá tốc độ cho phép trên đường, phương tiện di chuyển trên đường ngược chiều, phương tiện vượt đèn đỏ, phương tiện vi phạm tín hiệu đèn giao thông, xe vượt quá tải trọng cho phép, các phương tiện gây ra hiện tượng ùn tắc giao thông, tàu hỏa chạy qua chỗ giao nhau với đường quốc lộ, sự kiện chuông báo hiệu tàu qua kêu, sự kiện xe qua trạm thu phí, sự kiện xe đi ra khỏi khu vực giám sát, ghi nhận hình ảnh và biển số xe vi phạm, gửi cảnh báo đến trung tâm điều khiển, sự kiện loa phát cảnh báo, cùng với các sự kiện khẩn cấp bao gồm cả thời tiết xấu và động đất.

Các sự kiện trong hệ thống có sự ràng buộc chặt chẽ như sau: e Khi phát hiện tai nan giao thông (E1), hệ thống giám sát sẽ nhận được thông tin từ cảm biến và camera (E2) Quan hệ giữa hai sự kiện nay là El starts E2. e Tai nan giao thông (E1) và tinh trạng ùn tắc giao thông (E2) xảy ra đồng thời và kết thúc đồng thời Quan hệ giữa hai sự kiện này là E1 equals E2. e Khi tàu hỏa chạy qua đường quốc lộ (E2), hệ thống chuông cảnh báo cho các phương tiện khác (E1) Quan hệ giữa hai sự kiện này là E1 during E2. e Tài xế nạp tiền phí điện tử khi xe chạy qua trạm thu phí (E1), sau đó hệ thống tự động mở cửa cho xe đi qua (E2) Quan hệ giữa hai sự kiện này là

E1 before E2. e Cảm biến phát hiện mat độ xe qua lại cao (E1), hệ thống loa cảnh báo yêu cầu phương tiện chuyển hướng (E2) Quan hệ giữa hai sự kiện này là E1 meets E42. e Khi cảm biến cảnh báo thời tiết xấu (E1), biển báo trên đường giảm tốc độ tối đa xuống thấp hơn (B2) Quan hệ giữa hai sự kiện này là E2 during E1. e Sự kiện ghi nhận hình ảnh và thông tin về phương tiện vi phạm tốc độ

(biển số, tốc độ, thời gian, ) (E2) diễn ra sau khi phát hiện phương tiện lưu thông vượt quá tốc độ cho phép (E1) Quan hệ giữa hai sự kiện này là

106 e Sự kiện "Xe đi vào khu vực giám sát" (E1) sẽ xảy ra trước sự kiện "Xe đi ra khỏi khu vực giấm sát" (E2). e Khi cảm biến phát hiện chỉ số chất lượng không khí vượt ngưỡng cho phép

(E1), hệ thống sẽ phát ra cảnh báo cho người điều hành (E2) Quan hệ giữa hai sự kiện này là El starts E2.

Ngày đăng: 29/06/2024, 13:39

HÌNH ẢNH LIÊN QUAN

Hình 2: Phương pháp hoc tăng cường. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2 Phương pháp hoc tăng cường (Trang 26)
Hình 2.2: Các thành phần cơ bản của kiến trúc hướng sự kiện - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2.2 Các thành phần cơ bản của kiến trúc hướng sự kiện (Trang 33)
Hình 2.3: Tiến trình kiểm thử thâm nhập. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2.3 Tiến trình kiểm thử thâm nhập (Trang 40)
Hình 2.5: Tương tác giữa tác nhân-môi trường trong hoc tăng cường. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2.5 Tương tác giữa tác nhân-môi trường trong hoc tăng cường (Trang 43)
Hình 2.5 tóm tắt cơ chế hoc tăng cường va các tương tác giữa môi trường và tác nhân. Trong lược đồ này, tác nhân và môi trường tác động lan nhau tại mỗi - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2.5 tóm tắt cơ chế hoc tăng cường va các tương tác giữa môi trường và tác nhân. Trong lược đồ này, tác nhân và môi trường tác động lan nhau tại mỗi (Trang 44)
Hình 2.7 giải thích công thức (2.1)cho các giai đoạn. Trong công thức này, - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 2.7 giải thích công thức (2.1)cho các giai đoạn. Trong công thức này, (Trang 44)
Hình 3.1: Tong quan tiến trình xử lý giải quyết bài toán. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.1 Tong quan tiến trình xử lý giải quyết bài toán (Trang 53)
Hình 3.2: Quá trình tiền xử lý dữ liệu để phat hiện tấn cong DDoS. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.2 Quá trình tiền xử lý dữ liệu để phat hiện tấn cong DDoS (Trang 59)
Bảng 3.1: Các giá trị ngưỡng và trọng số tương ứng của các tiêu chí của một - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Bảng 3.1 Các giá trị ngưỡng và trọng số tương ứng của các tiêu chí của một (Trang 61)
Bảng 3.3: Điểm số và các quyết định tương ứng - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Bảng 3.3 Điểm số và các quyết định tương ứng (Trang 62)
Bảng 3.2: Mối quan hệ giữa tỷ lệ và điểm chuyển đổi tương ứng STT | Tỷ lệ (;) | Điểm chuyển đổi (cr;;) - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Bảng 3.2 Mối quan hệ giữa tỷ lệ và điểm chuyển đổi tương ứng STT | Tỷ lệ (;) | Điểm chuyển đổi (cr;;) (Trang 62)
Hình 3.3: Mô hình kiến trúc của hệ thống phát hiện va cảnh báo tấn công DoS, - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.3 Mô hình kiến trúc của hệ thống phát hiện va cảnh báo tấn công DoS, (Trang 64)
Hình 3.4: Cảnh báo về Ip có dấu hiệu bất thường. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.4 Cảnh báo về Ip có dấu hiệu bất thường (Trang 66)
Hình 3.5: Phát hiện sự gia tăng bất thường về số lượng truy cập vào hệ thống. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.5 Phát hiện sự gia tăng bất thường về số lượng truy cập vào hệ thống (Trang 66)
Hình 3.6: Thống kê các thông số trong quá trình hoạt động để phát hiện các - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.6 Thống kê các thông số trong quá trình hoạt động để phát hiện các (Trang 67)
Hình 3.7: Bang thống kê chi tiết các lô dữ liệu đã xử ly. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 3.7 Bang thống kê chi tiết các lô dữ liệu đã xử ly (Trang 68)
Hình 4.1: Kiến trúc của khung làm việc jFAT. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 4.1 Kiến trúc của khung làm việc jFAT (Trang 75)
Hình 4.2: Tổng quan về quy trình của sinh đường dẫn kiểm thử tự động. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 4.2 Tổng quan về quy trình của sinh đường dẫn kiểm thử tự động (Trang 75)
Hình 4.3: Kết quả sinh đường dẫn kiểm thử. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 4.3 Kết quả sinh đường dẫn kiểm thử (Trang 86)
Bảng 4.1: Các trường hợp thử nghiệm của ứng dụng từ trang web guru - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Bảng 4.1 Các trường hợp thử nghiệm của ứng dụng từ trang web guru (Trang 86)
Hình 4.4: Báo cáo kết quả kiểm thử - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 4.4 Báo cáo kết quả kiểm thử (Trang 89)
Hình 5.1: Tổng quan phương pháp đề xuất. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.1 Tổng quan phương pháp đề xuất (Trang 101)
Bảng 5.1: Ràng buộc giữa các sự kiện trong hệ thống - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Bảng 5.1 Ràng buộc giữa các sự kiện trong hệ thống (Trang 103)
Hình 5.2: evt; meets evt;. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.2 evt; meets evt; (Trang 106)
Hình 5.3: evt; overlaps evt;. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.3 evt; overlaps evt; (Trang 109)
Hình 5.5 bên dưới. - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.5 bên dưới (Trang 112)
Hình 5.7: Kiến trúc Hệ thống giám sát giao thông đường bộ thông minh - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.7 Kiến trúc Hệ thống giám sát giao thông đường bộ thông minh (Trang 116)
Hình 5.8: Kết quả mô phỏng hệ thống vi phạm rang buộc - Luận án tiến sĩ Kỹ thuật phần mềm: Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web
Hình 5.8 Kết quả mô phỏng hệ thống vi phạm rang buộc (Trang 122)

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

TÀI LIỆU LIÊN QUAN

w