SecOps Portal
Trang chủ › Nghiên Cứu Bảo Mật

Tầm quan trọng của kiểm thử xâm nhập Penetration Testing

Ban biên tập SecOps Portal · · Cập nhật
Tầm quan trọng của kiểm thử xâm nhập Penetration Testing

Kiểm thử xâm nhập (penetration testing, pentest) là hoạt động có ủy quyền, trong đó chuyên gia mô phỏng cách kẻ tấn công thật tiếp cận hệ thống để tìm và chứng minh điểm yếu trước khi bị khai thác. Tầm quan trọng của pentest nằm ở chỗ nó trả lời câu hỏi mà công cụ quét tự động không trả lời được: những lỗ hổng riêng lẻ có thể nối lại với nhau thành một cuộc tấn công nghiêm trọng đến mức nào, và các lớp phòng thủ hiện có thực sự chặn được gì.

Pentest khác gì quét lỗ hổng

Tiêu chíQuét lỗ hổngKiểm thử xâm nhập
Thực hiện bởiChủ yếu là công cụ tự độngChuyên gia, có hỗ trợ công cụ
Mục tiêuLiệt kê càng nhiều điểm yếu đã biết càng tốtChứng minh tác động thực tế, nối chuỗi lỗi
Lỗi logic nghiệp vụHầu như không phát hiệnLà trọng tâm
Báo nhầmNhiềuÍt, vì lỗi được xác minh
Tần suấtLiên tục, hằng tuầnĐịnh kỳ, hoặc trước thay đổi lớn

Hai hoạt động bổ sung cho nhau. Tổ chức nên tự rà soát và quét định kỳ theo quy trình trong bài các bước rà soát lỗ hổng bảo mật, rồi dùng pentest để kiểm tra sâu hơn.

Giá trị pentest mang lại

  • Nhìn hệ thống bằng mắt kẻ tấn công: đội phát triển thường bị "mù" với giả định của chính mình.
  • Ưu tiên hóa đầu tư bảo mật: thấy rõ lỗi nào thực sự dẫn tới mất dữ liệu, thay vì danh sách hàng trăm cảnh báo.
  • Kiểm tra khả năng phát hiện: đội vận hành có nhận ra hoạt động tấn công mô phỏng không.
  • Đáp ứng yêu cầu: nhiều tiêu chuẩn ngành, khách hàng doanh nghiệp, đối tác yêu cầu báo cáo pentest định kỳ.
  • Nâng cao năng lực nội bộ: buổi trao đổi kết quả là dịp đào tạo thực tế cho lập trình viên.

Các loại pentest

Theo đối tượng

  • Ứng dụng web và API: phổ biến nhất, tập trung vào xác thực, phân quyền, injection, logic nghiệp vụ.
  • Ứng dụng di động: cả ứng dụng trên thiết bị lẫn API phía sau.
  • Hạ tầng mạng bên ngoài: những gì lộ ra Internet.
  • Mạng nội bộ: giả định kẻ tấn công đã vào được một máy trong mạng, kiểm tra khả năng di chuyển ngang.
  • Đám mây: cấu hình quyền, dịch vụ lưu trữ, khóa truy cập.
  • Kỹ nghệ xã hội: email lừa đảo mô phỏng, gọi điện, với sự đồng ý của ban lãnh đạo.

Theo lượng thông tin cung cấp

  • Hộp đen: người kiểm thử không có thông tin nội bộ, giống kẻ tấn công bên ngoài.
  • Hộp xám: có tài khoản người dùng và một ít tài liệu; cân bằng giữa thực tế và hiệu quả.
  • Hộp trắng: có mã nguồn, sơ đồ kiến trúc; tìm được nhiều lỗi nhất trong thời gian giới hạn.

Quy trình một đợt pentest

  1. Thỏa thuận phạm vi và quy tắc: hệ thống nào, thời gian nào, kỹ thuật nào bị cấm, liên hệ khẩn cấp. Văn bản ủy quyền là bắt buộc.
  2. Thu thập thông tin: liệt kê tên miền, dịch vụ, công nghệ, cổng mở; công cụ như Nmap được dùng ở bước này, xem hướng dẫn Nmap.
  3. Phân tích và tìm điểm yếu: kết hợp công cụ và kiểm tra thủ công.
  4. Khai thác có kiểm soát: chứng minh tác động ở mức vừa đủ, tránh làm gián đoạn hay phá hủy dữ liệu.
  5. Báo cáo: tóm tắt cho lãnh đạo, chi tiết kỹ thuật cho đội kỹ thuật, hướng dẫn khắc phục.
  6. Kiểm tra lại: xác minh lỗi đã được sửa đúng cách.

Khi nào nên pentest

  • Trước khi ra mắt sản phẩm hoặc tính năng xử lý dữ liệu nhạy cảm, thanh toán.
  • Sau thay đổi kiến trúc lớn: chuyển lên đám mây, đổi hệ thống xác thực.
  • Định kỳ, thường hằng năm với hệ thống quan trọng.
  • Khi đối tác, khách hàng hoặc quy định yêu cầu.
  • Sau sự cố bảo mật, để đánh giá các điểm yếu còn lại.

Chuẩn bị nội bộ trước đợt kiểm thử

Một đợt pentest hiệu quả phụ thuộc nhiều vào sự chuẩn bị của chính tổ chức. Hãy cung cấp tài khoản thử nghiệm cho từng vai trò người dùng, dữ liệu mẫu đủ thực tế, tài liệu API và danh sách chức năng quan trọng. Thông báo cho đội vận hành và nhà cung cấp dịch vụ lưu trữ nếu cần, để hoạt động kiểm thử không bị chặn nhầm hoặc gây báo động. Chỉ định một đầu mối kỹ thuật có thể trả lời câu hỏi nhanh trong suốt thời gian kiểm thử. Cuối cùng, sao lưu dữ liệu môi trường kiểm thử để khôi phục nhanh nếu có sự cố ngoài dự kiến.

Chọn đơn vị pentest

  • Xem kinh nghiệm với loại hệ thống tương tự, chứng chỉ chuyên môn của người thực hiện.
  • Yêu cầu báo cáo mẫu (đã ẩn thông tin) để đánh giá chất lượng.
  • Cảnh giác với dịch vụ chỉ chạy công cụ quét rồi gọi là pentest.
  • Thỏa thuận rõ về bảo mật thông tin, xử lý dữ liệu tiếp cận được trong quá trình kiểm thử.
  • Bảo đảm có kiểm tra lại sau khi khắc phục.

Tận dụng báo cáo pentest

Báo cáo chỉ có giá trị khi dẫn tới hành động. Tạo ticket cho từng phát hiện, phân công người xử lý, đặt hạn theo mức độ. Quan trọng hơn, tìm nguyên nhân gốc: nếu có nhiều lỗi phân quyền, có thể cần thư viện phân quyền dùng chung hoặc đào tạo lại. Đối chiếu với log xem hoạt động kiểm thử có bị phát hiện không, theo hướng dẫn trong bài phân tích log máy chủ.

Pentest là một mảnh trong bức tranh đánh giá an toàn thông tin rộng hơn, bên cạnh rà soát chính sách, quy trình và quyền truy cập. Bức tranh tổng thể này được trình bày trong bài kiểm toán an toàn thông tin định kỳ.

Giới hạn cần hiểu

Pentest là ảnh chụp tại một thời điểm, trong phạm vi và thời gian giới hạn. Không tìm thấy lỗi nghiêm trọng không có nghĩa là hệ thống không có lỗi. Mã mới viết sau đợt kiểm thử có thể mang lỗi mới. Vì vậy pentest cần đi kèm lập trình an toàn, quét liên tục và giám sát, hoặc kết hợp với chương trình tìm lỗi nhận thưởng như mô tả trong bài Bug Bounty và lưu ý.

Câu hỏi thường gặp

Pentest có làm sập hệ thống không?

Đơn vị chuyên nghiệp thỏa thuận quy tắc để tránh gián đoạn, như không tấn công từ chối dịch vụ và khai thác ở mức vừa đủ. Rủi ro vẫn tồn tại, nên nhiều tổ chức kiểm thử trên môi trường thử nghiệm giống sản xuất hoặc chọn khung giờ thấp điểm.

Một đợt pentest mất bao lâu?

Phụ thuộc phạm vi. Một ứng dụng web vừa thường mất từ vài ngày đến vài tuần, chưa kể thời gian viết báo cáo và kiểm tra lại. Phạm vi càng rõ ràng, thời gian ước lượng càng chính xác.

Doanh nghiệp nhỏ có cần pentest không?

Nếu xử lý dữ liệu khách hàng, thanh toán hoặc cung cấp dịch vụ cho doanh nghiệp khác thì nên. Có thể bắt đầu với phạm vi hẹp cho ứng dụng quan trọng nhất sau khi đã tự rà soát các lỗi cơ bản.

Pentest khác Red Team thế nào?

Pentest tập trung tìm càng nhiều điểm yếu trong phạm vi định trước. Red Team mô phỏng một chiến dịch tấn công có mục tiêu cụ thể, kéo dài hơn, kiểm tra cả khả năng phát hiện và ứng phó của tổ chức.

Bài liên quan