Tiếp nối bài viết về Kiểm tra độ tin cậy của phần mềm, trong bài viết hôm nay hãy cùng mình tìm hiểu về Kiểm thử bảo mật trong quá trình kiểm tra chất lượng phần mềm nhé.
Kiểm Thử Bảo Mật Là Gì?
Kiểm tra tính bảo mật thường là mối quan tâm hàng đầu của các nhà phân tích kiểm tra kỹ thuật. Vì các rủi ro bảo mật thường tiềm ẩn, tinh vi nên chúng ta phải đặc biệt chú trọng vào việc kiểm tra chúng.
Thông thường, các loại lỗi khác có các biểu hiện mà chúng ta có thể tìm thấy thông qua kiểm tra thủ công hoặc sử dụng các công cụ. Chúng ta biết khi nào một phép tính thất bại; giá trị sai lầm là hiển nhiên. Tuy nhiên, các vấn đề bảo mật thường không có biểu hiện, cho đến khi tin tặc đột nhập và đốt cháy hệ thống. Hoặc, có thể tệ hơn, tin tặc đột nhập, đánh cắp dữ liệu quan trọng rồi thoát ra mà không để lại dấu vết. Kiểm thử bảo mật nhằm mục đích đảm bảo rằng mọi người không thể nhìn thấy và làm những gì họ không có quyền truy cập.
Danh Sách Các Mối Đe Dọa Tiềm Ẩn
Kiểm tra bảo mật đánh giá tính dễ bị tổn thương của hệ thống đối với các mối đe dọa. Sau đây là danh sách các mối đe dọa tiềm ẩn cần được khám phá trong quá trình kiểm tra bảo mật:
- Sao chép trái phép ứng dụng hoặc dữ liệu.
- Kiểm soát truy cập trái phép. Ví dụ: khả năng thực hiện các tác vụ mà người dùng không có quyền. Thông tin này phải có sẵn trong thông số kỹ thuật của hệ thống.
- Phần mềm thể hiện các tác dụng phụ ngoài ý muốn khi thực hiện chức năng dự kiến của nó. Ví dụ: trình phát đa phương tiện phát âm thanh chính xác. Tuy nhiên, nếu thực hiện như vậy bằng cách ghi tệp ra bộ lưu trữ tạm thời không được mã hóa sẽ có thể bị khai thác bởi những kẻ vi phạm bản quyền phần mềm.
- Mã được chèn vào một trang web có thể được thực hiện bởi những người dùng tiếp theo (cross-site hoặc XSS). Mã này có thể độc hại.
- Tràn bộ nhớ đệm có thể do nhập chuỗi vào trường nhập của giao diện người dùng dài hơn mã có thể xử lý chính xác. Lỗ hổng tràn bộ nhớ đệm thể hiện cơ hội chạy các lệnh mã độc.
- Từ chối dịch vụ, ngăn người dùng tương tác với một ứng dụng. Ví dụ: bằng cách làm quá tải máy chủ web với các yêu cầu “phiền toái”.
- Việc một bên thứ ba chặn, bắt chước, thay đổi và chuyển tiếp các thông tin liên lạc. Ví dụ: Giao dịch thẻ tín dụng. Để người dùng không biết về sự hiện diện của bên thứ ba “tấn công trung gian”.
- Phá vỡ mã hóa được sử dụng để bảo vệ dữ liệu nhạy cảm.
- Bom logic (đôi khi được gọi là Easter Eggs), có thể được chèn một cách ác ý vào mã và chỉ kích hoạt trong một số điều kiện nhất định. Ví dụ: Vào một ngày cụ thể, khi kích hoạt bom logic, chúng có thể thực hiện các hành vi độc hại như xóa tệp hoặc định dạng đĩa.
Kế Hoạch Kiểm Thử Bảo Mật
Khi lập kế hoạch kiểm tra bảo mật cần xem xét một số khía cạnh sau đây:
- Kiểm thử bảo mật có thể được lên lịch cho các cấp độ kiểm thử như component test, integration test, system test, cả giai đoạn hệ thống đưa vào thực tế. Điều này đặc biệt đúng đối với các kiến trúc mở động như Internet of things (IoT), trong đó giai đoạn sản xuất được đặc trưng bởi nhiều bản cập nhật cho phần mềm và phần cứng được sử dụng.
- Các phương pháp thử nghiệm do Nhà phân tích thử nghiệm kỹ thuật đề xuất. Nó bao gồm các đánh giá về kiến trúc, thiết kế và mã cũng như phân tích mã tĩnh bằng các công cụ bảo mật. Chúng có thể hiệu quả trong việc tìm kiếm các vấn đề bảo mật dễ bị bỏ sót trong quá trình thử nghiệm động.
- Nhà phân tích kiểm thử có thể được yêu cầu thiết kế và thực hiện một số “cuộc tấn công” bảo mật đòi hỏi phải lập kế hoạch và phối hợp cẩn thận với các bên liên quan (bao gồm cả các chuyên gia kiểm tra bảo mật). Các thử nghiệm bảo mật khác có thể được thực hiện với sự hợp tác của nhà phát triển.
- Một khía cạnh thiết yếu của kế hoạch kiểm thử bảo mật là đạt được sự chấp thuận. Đối với nhà phân tích kiểm tra kỹ thuật, điều này có nghĩa là đảm bảo rằng chúng đã nhận được sự cho phép rõ ràng từ nhà quản lý kiểm thử để thực hiện các kiểm tra bảo mật theo kế hoạch. Bất kỳ thử nghiệm bổ sung, không có kế hoạch nào được thực hiện đều có thể giống như các cuộc tấn công thực tế và người tiến hành các thử nghiệm đó có thể gặp rủi ro trước hành động pháp lý.
- Tất cả các kế hoạch kiểm tra bảo mật phải được phối hợp với Cán bộ Bảo mật Thông tin của tổ chức nếu tổ chức có vai trò như vậy.
- Cần lưu ý rằng những cải tiến có thể được thực hiện đối với tính bảo mật của hệ thống có thể ảnh hưởng đến hiệu quả hoạt động hoặc độ tin cậy của hệ thống. Sau khi thực hiện các cải tiến về bảo mật, bạn nên xem xét nhu cầu tiến hành kiểm tra hiệu suất hoặc độ tin cậy.
Yêu Cầu Kiểm Thử Bảo Mật
Theo nguồn gốc của rủi ro bảo mật, các thử nghiệm kiểm thử bảo mật bao gồm:
- Liên quan đến giao diện người dùng – truy cập trái phép và đầu vào độc hại.
- Liên quan đến hệ thống tệp – quyền truy cập vào dữ liệu nhạy cảm được lưu trữ trong tệp hoặc kho lưu trữ.
- Liên quan đến hệ điều hành – lưu trữ thông tin nhạy cảm như mật khẩu ở dạng không mã hóa trong bộ nhớ có thể bị lộ khi hệ thống bị sập thông qua đầu vào độc hại.
- Liên quan đến phần mềm bên ngoài – các tương tác có thể xảy ra giữa các thành phần bên ngoài mà hệ thống sử dụng. Những điều này có thể ở cấp độ mạng, ví dụ: các gói hoặc thông báo được truyền không chính xác. Hoặc ở cấp độ thành phần phần mềm, ví dụ: lỗi của một thành phần mà phần mềm dựa vào.
Các Cách Tiếp Cận Kiểm Thử Bảo Mật
Các bài kiểm tra bảo mật có thể phát triển từ các cách tiếp cận sau đây:
- Thu thập thông tin có thể hữu ích trong việc chỉ định kiểm tra, chẳng hạn như tên nhân viên, địa chỉ thực, chi tiết liên quan đến mạng nội bộ, số IP, danh tính của phần mềm hoặc phần cứng được sử dụng và phiên bản hệ điều hành.
- Thực hiện quét lỗ hổng bằng các công cụ có sẵn rộng rãi. Những công cụ như vậy không được sử dụng trực tiếp để xâm phạm hệ thống, nhưng để xác định các lỗ hổng hoặc có thể dẫn đến vi phạm chính sách bảo mật. Các lỗ hổng cụ thể cũng có thể được xác định bằng cách sử dụng thông tin và danh sách kiểm tra.
- Phát triển “kế hoạch tấn công” (nghĩa là kế hoạch kiểm tra các hành động nhằm thỏa hiệp chính sách bảo mật của một hệ thống cụ thể) bằng cách sử dụng thông tin thu thập được. Một số đầu vào thông qua các giao diện khác nhau (ví dụ: giao diện người dùng, hệ thống tệp) cần được chỉ định trong các kế hoạch tấn công để phát hiện lỗi bảo mật nghiêm trọng.
Mình xin dừng bài viết hôm nay tại đây. Hẹn gặp lại các bạn trong các bài viết tiếp theo.
Happy testing!