Tìm hiểu về Penetration Testing (Pentest hay kiểm thử thâm nhập)

Penetration Testing là một cuộc tấn công mạng mô phỏng được ủy quyền trên máy tính, nhằm đánh giá tính bảo mật của hệ thống. Quá trình thử nghiệm được thực hiện để xác định tất cả điểm yếu (còn được gọi là lỗ hổng), bao gồm khả năng các bên không được phép truy cập vào những tính năng và dữ liệu hệ thống, cũng như điểm mạnh là cho phép đánh giá rủi ro trên toàn hệ thống.

Penetration Testing là gì?

Penetration Testing, còn được gọi tắt là pen test hay ethical hacking, là cuộc tấn công mô phỏng nhắm vào hệ thống máy tính để kiểm tra những lỗ hổng có thể được khai thác. Trong bảo mật ứng dụng web, Penetration Testing (kiểm thử thâm nhập) thường được sử dụng để tăng cường tường lửa ứng dụng web (Web Application Firewall - WAF).

Penetration Testing là gì?

Pen testing có thể liên quan đến việc cố gắng vi phạm bất kỳ số lượng hệ thống ứng dụng nào, (ví dụ các interface giao thức ứng dụng - Application Protocol Interface - API, máy chủ frontend/backend) để phát hiện ra các lỗ hổng, chẳng hạn như đầu vào không được xác nhận dễ bị tấn công bằng cách truyền mã độc.

Thông tin chi tiết được cung cấp bởi quá trình kiểm thử thâm nhập có thể được sử dụng để tinh chỉnh các chính sách bảo mật WAF và vá các lỗ hổng được phát hiện.

Những giai đoạn trong Penetration Testing

Quá trình pen test có thể được chia thành 5 giai đoạn.

Những giai đoạn trong Penetration Testing

1. Lập kế hoạch và khảo sát trước

Giai đoạn đầu tiên bao gồm:

  • Xác định phạm vi và mục tiêu của thử nghiệm, bao gồm các hệ thống được xử lý và những phương pháp thử nghiệm sẽ được sử dụng.
  • Thu thập thông tin (ví dụ như tên mạng và tên miền, mail server) để hiểu rõ hơn cách mục tiêu hoạt động và các lỗ hổng tiềm năng của nó.

2. Quét

Bước tiếp theo là hiểu cách ứng dụng mục tiêu sẽ phản ứng với các yếu tố xâm nhập khác nhau. Điều này thường được thực hiện bằng cách sử dụng:

  • Phương pháp phân tích tĩnh - Kiểm tra code của ứng dụng để xác định hành vi của nó trong khi chạy. Các công cụ này có thể quét toàn bộ code trong một lần chạy.
  • Phương pháp phân tích động - Kiểm tra code của ứng dụng trong trạng thái đang chạy. Đây là phương pháp quét thực tế hơn, vì nó cung cấp chế độ xem thời gian thực đối với hiệu suất của ứng dụng.

3. Giành quyền truy cập

Giai đoạn này sử dụng các cuộc tấn công ứng dụng web, chẳng hạn như cross-site scripting, SQL injectionbackdoor, để khám phá ra những lỗ hổng mục tiêu. Sau đó, người kiểm tra sẽ thử khai thác các lỗ hổng này, thường là bằng cách giành quyền kiểm soát toàn bộ hệ thống, đánh cắp dữ liệu, chặn lưu lượng, v.v.. để biết được thiệt hại mà chúng có thể gây ra.

4. Duy trì truy cập

Mục tiêu của giai đoạn này là để xem liệu lỗ hổng có thể được sử dụng để khai thác lâu dài trong hệ thống bị xâm nhập hay không (đủ lâu để một hacker có thể truy cập sâu vào hệ thống). Ý tưởng là bắt chước các cuộc tấn công APT, thường tồn tại nhiều tháng trong một hệ thống để đánh cắp dữ liệu nhạy cảm nhất của tổ chức.

5. Phân tích

Kết quả kiểm thử thâm nhập sau đó được tổng hợp thành một báo cáo chi tiết, bao gồm:

  • Lỗ hổng cụ thể đã được khai thác
  • Dữ liệu nhạy cảm được truy cập
  • Thời lượng mà người tiến hành cuộc kiểm tra pen test có thể ở lại trong hệ thống mà không bị phát hiện

Thông tin này được nhân viên phụ trách bảo mật phân tích, giúp cấu hình cài đặt WAF cho doanh nghiệp, đưa ra những giải pháp bảo mật ứng dụng khác để vá các lỗ hổng và bảo vệ chống lại các cuộc tấn công trong tương lai.

Những phương pháp Penetration Testing

Những phương pháp Penetration Testing

External test (Thử nghiệm thâm nhập từ bên ngoài)

Thử nghiệm thâm nhập từ bên ngoài nhắm vào “tài sản” của một công ty có thể nhìn thấy trên Internet, ví dụ chính bản thân ứng dụng web, trang web của công ty, email và domain name server (DNS). Mục tiêu là để có được quyền truy cập và trích xuất dữ liệu có giá trị.

Internal test (Thử nghiệm thâm nhập từ bên trong)

Trong thử nghiệm thâm nhập từ bên trong, người thử nghiệm có quyền truy cập vào một ứng dụng đằng sau tường lửa sẽ mô phỏng một cuộc tấn công do chính người trong nội bộ tiến hành. Cuộc tấn công này không chỉ cảnh báo viễn cảnh một nhân viên nào đó trong nội bộ có thể chính là hacker, mà còn nhắc nhở quản trị viên đề phòng việc một nhân viên trong tổ chức bị đánh cắp thông tin đăng nhập, sau một cuộc tấn công phishing.

Blind test (Thử nghiệm “mù”)

Trong thử nghiệm blind test, người thử nghiệm chỉ được cung cấp tên của doanh nghiệp đang nhắm mục tiêu. Điều này cung cấp cho nhân viên phụ trách bảo mật cái nhìn thời gian thực về cách thức một cuộc tấn công ứng dụng sẽ diễn ra trong thực tế.

Double blind test

Trong thử nghiệm double blind test, nhân viên phụ trách bảo mật không biết gì trước về cuộc tấn công được mô phỏng. Giống như trong thế giới thực, không phải lúc nào cũng biết trước các cuộc tấn công để nâng cao khả năng phòng thủ.

Targeted test

Trong kịch bản này, cả người kiểm tra và nhân viên phụ trách bảo mật sẽ làm việc cùng nhau và liên tục đánh giá hành động của nhau. Đây là một bài tập huấn luyện có giá trị, cung cấp cho đội ngũ bảo mật thông tin phản hồi thời gian thực theo quan điểm của hacker.

Penetration testing và tường lửa ứng dụng web

Penetration testing và tường lửa ứng dụng web

Penetration testing và WAF là các biện pháp bảo mật độc lập, nhưng cùng mang lại lợi ích hỗ trợ nhau.

Đối với nhiều loại pen test (ngoại trừ thử nghiệm blind và double blind test), người thử nghiệm có thể sử dụng dữ liệu WAF, chẳng hạn như nhật ký, để xác định vị trí và khai thác điểm yếu của ứng dụng.

Đổi lại, quản trị viên WAF có thể hưởng lợi từ dữ liệu pen test. Sau khi hoàn thành thử nghiệm, cấu hình WAF có thể được cập nhật để bảo vệ chống lại các điểm yếu được phát hiện trong quá trình test.

Cuối cùng, pen test đáp ứng một số yêu cầu về việc tuân thủ quy trình kiểm tra bảo mật, bao gồm cả PCI DSS và SOC 2. Một số tiêu chuẩn, như PCI-DSS 6.6, chỉ có thể được thỏa mãn thông qua việc sử dụng WAF được chứng nhận.

Thứ Sáu, 29/11/2019 15:25
4,54 👨 631