Software Attacks Là Gì?
Tấn Công Phần Mềm – Software attachks là kỹ thuật kết hợp của tất cả các kỹ thuật dựa trên kinh nghiệm và dựa vào lỗi. Nó kết hợp các yếu tố của nguyên tắc phân loại lỗi, kiểm thử dựa vào checklist, đoán lỗi và kiểm thử thăm dò.
Về mặt khái niệm, tấn công phần mềm là một hình thức kiểm thử tập trung và có định hướng nhằm cố gắng buộc các lỗi cụ thể xảy ra. Nó có cấu trúc hơn kỹ thuật kiểm thử phân loại lỗi, vì nó được xây dựng dựa trên mô hình lỗi. Mô hình lỗi nói về cách lỗi hình thành và cách thức cũng như lý do lỗi biểu hiện thành lỗi.
Để rút ra các bài kiểm tra, cần phân tích cách từng cuộc tấn công cụ thể có thể áp dụng cho hệ thống mà bạn đang kiểm tra. Sau đó, bạn thiết kế các thử nghiệm cụ thể cho từng cuộc tấn công có thể áp dụng. Việc phân tích, thiết kế và đánh giá phạm vi bao phủ đầy đủ là tùy ý và phụ thuộc vào kỹ năng, trực giác và kinh nghiệm của người kiểm thử. Kỹ thuật này cung cấp các ý tưởng về thời điểm áp dụng cuộc tấn công, lỗi nào khiến cuộc tấn công thành công, cách xác định xem cuộc tấn công có buộc một lỗi phải mở như một lỗi hay không và cách tiến hành cuộc tấn công. Tuy nhiên, hai người kiểm thử khác nhau có thể áp dụng cùng một cuộc tấn công theo cách khác nhau đối với cùng một hệ thống và thu được các kết quả khác nhau.
Mô hình lỗi đến từ đâu? Giả thuyết lỗi cơ bản là các lỗi phát sinh từ sự tương tác giữa phần mềm và môi trường của nó trong quá trình hoạt động và từ các khả năng mà phần mềm sở hữu.
Môi trường hoạt động của phần mềm bao gồm người dùng, hệ thống tệp, hệ điều hành và phần mềm cùng hoạt động và tương tác khác trong cùng một môi trường. Các khả năng của phần mềm bao gồm chấp nhận đầu vào, tạo đầu ra, lưu trữ dữ liệu và thực hiện tính toán.
Xây Dựng Các Bài Kiểm Thử Bằng Kỹ Thuật Software Attacks
Hình: Ứng dụng trong môi trường vận hành của nó
Trong hình trên, bạn có thể thấy hình ảnh của ứng dụng đang được thử nghiệm trong môi trường hoạt động của nó. Ứng dụng nhận đầu vào từ và gửi đầu ra tới giao diện người dùng của nó. Nó tương tác theo nhiều cách trực tiếp với các ứng dụng tương tác. Ví dụ: thông qua sao chép và dán từ ứng dụng này sang ứng dụng khác hoặc bằng cách gửi dữ liệu đến và truy xuất dữ liệu từ ứng dụng quản lý dữ liệu đó bằng hệ thống quản lý cơ sở dữ liệu.
Ứng dụng cũng có thể tương tác gián tiếp bằng cách chia sẻ dữ liệu trong một tệp với ứng dụng khác. Tuy nhiên, các ứng dụng khác, mà nó không tương tác, có khả năng ảnh hưởng đến ứng dụng. Và ngược lại do thực tế là chúng cùng tồn tại trong cùng một hệ thống, chia sẻ bộ nhớ, đĩa, CPU và tài nguyên mạng.
Ứng dụng gửi dữ liệu đến và từ hệ thống tệp khi nó tạo, cập nhật, đọc và xóa tệp. Nó cũng dựa vào hệ điều hành, cả thư viện và kernel của nó, để cung cấp các dịch vụ khác nhau và tương tác trung gian với phần cứng.
Vì vậy, làm thế nào chúng ta có thể tấn công các giao diện này? Để bắt đầu với hệ thống tệp, kỹ thuật này cung cấp các cuộc tấn công sau:
- Làm đầy dung lượng của hệ thống tập tin. Trên thực tế, bạn có thể kiểm tra trong khi điền và xem các lỗi bắt đầu xuất hiện.
- Liên quan đến điều này là cuộc tấn công buộc bộ lưu trữ phải bận hoặc không khả dụng. Điều này đặc biệt đúng đối với những thứ làm một việc tại một thời điểm, chẳng hạn như đầu ghi DVD.
- Bạn có thể làm hỏng phương tiện lưu trữ, tạm thời hoặc vĩnh viễn. Làm bẩn hoặc thậm chí làm xước đĩa CD.
- Sử dụng tên tệp không hợp lệ, đặc biệt là tên tệp có ký tự đặc biệt.
- Thay đổi quyền truy cập của tệp, đặc biệt là khi tệp đang được sử dụng hoặc giữa các lần sử dụng.
- Làm nội dung tệp bị thay đổi hoặc bị hỏng.
Đối với các giao diện phần mềm tương tác và cùng hoạt động, cùng các giao diện hệ điều hành, các đề xuất là thử các cuộc tấn công sau:
- Buộc tất cả các lỗi có thể xảy ra từ giao diện phần mềm/OS cho ứng dụng.
- Làm cạn kiệt tài nguyên như bộ nhớ, CPU và tài nguyên mạng.
- Các luồng mạng và bộ nhớ lưu trữ bị hỏng.
Khả Năng Áp Dụng
Kiểm thử dựa trên phân loại lỗi có thể được áp dụng ở bất kỳ cấp độ kiểm thử nào nhưng được áp dụng phổ biến nhất trong quá trình kiểm thử hệ thống.
Hạn Chế/ Khó Khăn
Nhiều nguyên tắc phân loại lỗi tồn tại và có thể tập trung vào các loại thử nghiệm cụ thể. Chẳng hạn như khả năng sử dụng. Điều quan trọng là chọn một nguyên tắc phân loại có thể áp dụng cho phần mềm đang thử nghiệm (nếu có sẵn). Ví dụ, có thể không có bất kỳ nguyên tắc phân loại nào cho phần mềm sáng tạo. Một số tổ chức đã biên soạn các nguyên tắc phân loại của riêng họ về các lỗi có thể xảy ra hoặc thường thấy. Bất kể phân loại lỗi nào được sử dụng, điều quan trọng là phải xác định phạm vi bao phủ dự kiến trước khi bắt đầu thử nghiệm.
Mức Độ Bao Phủ
Kỹ thuật này cung cấp các tiêu chí bao phủ được sử dụng để xác định khi tất cả các trường hợp kiểm thử hữu ích đã được xác định. Các hạng mục bao phủ có thể là các yếu tố cấu trúc, yếu tố đặc điểm kỹ thuật, kịch bản sử dụng hoặc bất kỳ sự kết hợp nào của những yếu tố này, tùy thuộc vào danh sách lỗi. Như một vấn đề thực tế, các tiêu chí bao phủ cho các kỹ thuật kiểm tra dựa trên lỗi có xu hướng ít hệ thống hơn so với các kỹ thuật kiểm tra hộp đen trong đó chỉ có các quy tắc chung về phạm vi được đưa ra và quyết định cụ thể về những gì cấu thành giới hạn của phạm vi hữu ích là tùy ý. Cũng như các kỹ thuật khác, tiêu chí bao phủ không có nghĩa là toàn bộ bộ thử nghiệm đã hoàn tất, mà là các lỗi đang được xem xét không còn đề xuất bất kỳ thử nghiệm hữu ích nào dựa trên kỹ thuật đó.
Loại Lỗi Phát Hiện
Các loại lỗi được phát hiện thường phụ thuộc vào phân loại lỗi được sử dụng. Ví dụ: nếu danh sách lỗi giao diện người dùng được sử dụng, phần lớn các lỗi được phát hiện có thể liên quan đến giao diện người dùng, nhưng các lỗi khác có thể được phát hiện dưới dạng sản phẩm phụ của thử nghiệm cụ thể.