Kiểm tra thâm nhập, còn được gọi là Pen Test (Penetration Testing), là một quy trình an ninh mạng giúp bạn vượt lên trước tin tặc. Trong một pentest, một tin tặc (hacker) có “phẩm chất đạo đức” sẽ tìm ra các lỗ hổng bảo mật trong ứng dụng, mạng hoặc hệ thống của bạn và giúp bạn sửa chúng trước khi những kẻ tấn công nhận ra những vấn đề này và khai thác chúng.
Điều này làm cho Pen testing trở thành một bước cơ bản không thể thiếu đối với một trang web hoặc chủ sở hữu doanh nghiệp. Chúng ta hãy tìm hiểu sâu hơn về Pen Test và những gì mong đợi từ nó.
Pen test (trong An ninh mạng) là gì?
Pen Test (Kiểm tra thâm nhập) là phương pháp để đánh giá tính bảo mật của một ứng dụng hoặc mạng bằng cách khai thác một cách an toàn bất kỳ lỗ hổng bảo mật nào có trong hệ thống.
Các lỗi bảo mật này có thể xuất hiện trong nhiều khu vực khác nhau như cài đặt cấu hình hệ thống, phương thức đăng nhập và thậm chí cả các hành vi mang tính rủi ro của người dùng cuối.
Ngoài việc đánh giá an ninh, pen test rất cần thiết để đánh giá hiệu quả của các hệ thống phòng thủ và chiến lược an ninh.
Pen test thường bao gồm các bài kiểm tra thủ công và tự động, nhằm mục đích vi phạm tính bảo mật của ứng dụng với sự ủy quyền thích hợp.
Khi các lỗ hổng được phát hiện và khai thác, khách hàng sẽ được cung cấp một báo cáo kiểm tra thâm nhập chi tiết chứa thông tin về phạm vi kiểm tra, các lỗ hổng được tìm thấy, mức độ nghiêm trọng và các đề xuất để vá chúng.
Pen test khác với Đánh giá lỗ hổng như thế nào?
Đánh giá lỗ hổng (Vulnerability Assessment):
- Đánh giá lỗ hổng tập trung vào việc phát hiện và phân loại các lỗ hổng trong hệ thống.
- Đây là một quy trình chủ yếu tự động liên quan đến các công cụ quét lỗ hổng bảo mật.
- Hầu như không thể đảm bảo dương tính giả zero (zero false positives) với đánh giá lỗ hổng bảo mật tự động.
- Đánh giá lỗ hổng thường bỏ sót các lỗ hổng nghiêm trọng và phức tạp.
- Đánh giá lỗ hổng bảo mật tự động tốn ít thời gian và tiền bạc hơn đáng kể so với pen test.
Pen test:
- Pen test bao gồm việc khai thác các lỗ hổng để rút ra những hiểu biết sâu sắc về chúng.
- Pen test yêu cầu can thiệp thủ công trên quét tự động.
- Pen tester thủ công có thể đảm bảo dương tính giả zero.
- Nhờ vào yếu tố con người của pen test, nó phát hiện các lỗi logic nghiệp vụ mà vẫn không bị phát hiện trong quá trình quét lỗ hổng.
- Kiểm tra thâm nhập là một thủ tục tốn kém và tốn kém và vì lý do chính đáng.
Thuật ngữ Pen test xuất hiện trong nửa sau của thuật ngữ VAPT, là viết tắt của Đánh giá lỗ hổng và Kiểm tra thâm nhập (Vulnerability Assessment and Penetration Testing).
- Mọi người nhầm lẫn giữa VA (Đánh giá lỗ hổng) và PT (Kiểm tra thâm nhập) là cùng một quy trình và sử dụng chúng thay thế cho nhau. Thực ra, chúng không được và không nên đổi chỗ cho nhau. Sự khác biệt giữa chúng là rất quan trọng khi đánh giá xem nó phù hợp với các yêu cầu như thế nào. Cả hai đều là những phương thức đánh giá bảo mật cần thiết giúp củng cố vị thế bảo mật cho ứng dụng của bạn.
- Mục đích của VA là để tìm và cảnh báo người dùng về bất kỳ lỗi bảo mật nào có trong mục tiêu. Trong khi Pen Test khai thác các lỗ hổng được tìm thấy trong VA để xác định mức độ thiệt hại có thể xảy ra. Các quy trình quét lỗ hổng thường là quy trình tự động, còn Pentest chủ yếu được thực hiện thủ công.
- VA chủ yếu được thực hiện bởi các kỹ thuật viên có trình độ bằng cách sử dụng các công cụ tự động, kết quả của chúng sau đó được tổng hợp và chứng thực. Trong khi đó, PT thường được thực hiện bởi các hacker mũ trắng hoặc các hacker có đạo đức. Họ là những chuyên gia bảo mật và mang yếu tố con người để đột nhập vào một hệ thống. Trong Pen testing, đánh giá lỗ hổng có thể được sử dụng trong các bước ban đầu để xác định mục tiêu và các vectơ tấn công (attack vector) tiềm năng.
- Chi phí là một yếu tố khác phân biệt hai yếu tố này. So với Pentesting, VA có chi phí thấp hơn. Các báo cáo quét lỗ hổng bảo mật chủ yếu chứa danh sách các lỗ hổng bảo mật và mô tả chi tiết về các lỗ hổng này. Mặc dù các báo cáo của PT thường chứa các lỗ hổng được xếp hạng theo mức độ nghiêm trọng, dễ khai thác và rủi ro.
- Cả hai quy trình này đều có tính chất bổ sung và thường được thực hiện cùng nhau, trong một quy trình kết hợp được gọi là VAPT, hoặc Kiểm toán bảo mật (Security Audit).
Pen test cho các tổ chức và tại sao nó lại quan trọng?
Tại sao một tổ chức cần pen test thường xuyên?
Bối cảnh mối đe dọa mạng đang ở trong tình trạng thay đổi liên tục. Các lỗ hổng mới được phát hiện và khai thác thường xuyên, một số trong số chúng được công nhận công khai và một số thì không. Cảnh giác là điều tốt nhất bạn có thể làm.
Web pen test giúp bạn loại bỏ tận gốc các lỗ hổng trong hệ thống có thể dẫn đến vi phạm bảo mật, đánh cắp dữ liệu và từ chối dịch vụ.
Pen test không chỉ phát hiện ra các lỗ hổng thông thường với sự trợ giúp của các công cụ tự động và tìm ra các vấn đề bảo mật phức tạp hơn như lỗi logic nghiệp vụ và các vấn đề liên quan đến cổng thanh toán.
Nó giúp bạn có bức tranh rõ ràng hơn về tình hình bảo mật của tổ chức và khắc phục các vấn đề để tăng cường khả năng bảo mật của bạn.
Mục đích chính để tiến hành pentest thường xuyên là:
- Bắt kịp với bối cảnh mối đe dọa mạng đang thay đổi
- Tìm và giảm thiểu các lỗi logic nghiệp vụ
- Chuẩn bị cho kiểm toán tuân thủ
- Cứu doanh nghiệp của bạn khỏi vi phạm bảo mật.
Pen test có những cách tiếp cận nào?
Có 3 cách tiếp cận được người kiểm tra áp dụng liên quan đến pen test, dựa trên thông tin có sẵn và loại điểm yếu được tìm thấy:
1. White box (hộp trắng)
Trong bài kiểm tra chiếc hộp trắng, người kiểm tra có đầy đủ kiến thức về hệ thống và có toàn quyền truy cập.
Mục tiêu của cách tiếp cận này là tiến hành kiểm tra sâu hệ thống và thu thập càng nhiều thông tin càng tốt.
Lợi thế, trong trường hợp này, là vì người thử nghiệm có quyền truy cập và kiến thức về hệ thống, bao gồm chất lượng mã và thiết kế bên trong, nên Pen test có thể xác định ngay cả các lỗ hổng được định vị từ xa, do đó đưa ra bức tranh gần như đầy đủ về bảo mật.
2. Black box (hộp đen)
Bạn đã đoán đúng, trong cách tiếp cận này, người kiểm tra không có kiến thức về hệ thống và thiết kế bài kiểm tra như một kẻ tấn công không được hiểu biết.
Cách tiếp cận này là gần nhất với một cuộc tấn công trong thế giới thực và liên quan đến mức độ kỹ thuật cao. Cách tiếp cận này có thời gian dài nhất và chi phí cao hơn so với phương pháp hộp trắng.
3. Gray box (Hộp xám)
Như tên cho thấy, cách tiếp cận này nằm giữa kiểm tra hộp trắng và hộp đen. Người kiểm tra chỉ có kiến thức hạn chế về hệ thống.
Ưu điểm của phương pháp này là với lượng kiến thức hạn chế, người thử nghiệm có khu vực tấn công tập trung hơn và do đó tránh được bất kỳ phương pháp tấn công thử-và-sai nào.
3 Loại Pen test
1. Network Pen Test
Mục tiêu của loại pen test này là tìm ra các lỗ hổng trong cơ sở hạ tầng mạng, môi trường on-premise hoặc môi trường đám mây như pen test trên Azure và AWS.
Đây là một trong những bài kiểm tra cơ bản và cũng là một bài kiểm tra quan trọng để bảo vệ dữ liệu của bạn và tính bảo mật của ứng dụng của bạn.
Trong thử nghiệm này, một loạt các lĩnh vực như cấu hình, mã hóa và các bản vá bảo mật lỗi thời sẽ được thử nghiệm và kiểm tra.
Network Pen test được chia thành các loại:
1.1 Pentest bên ngoài
Kịch bản này mô phỏng một cuộc tấn công từ người ngoài có quyền truy cập internet và không có kiến thức trước về hệ thống.
Người kiểm tra sẽ cố gắng đột nhập vào hệ thống của bạn bằng cách khai thác các lỗ hổng từ bên ngoài và truy cập vào dữ liệu và hệ thống nội bộ.
1.2 Pentest nội bộ
Loại này liên quan nhiều hơn đến việc kiểm tra ứng dụng của bạn từ bên trong và tập trung vào môi trường nội bộ.
Tiền giả định, trong trường hợp này, là những kẻ tấn công đã có thể xâm phạm lớp bên ngoài và đã ở trong mạng.
Các mối đe dọa bên ngoài rủi ro hơn các mối đe dọa bên trong vì việc giành quyền truy cập vào các mạng nội bộ là kết quả của việc vi phạm các giao thức bảo mật bên ngoài.
Vì vậy, việc bắt đầu với một pen test bên ngoài là một ý tưởng tốt.
Dưới đây là một số pen test mạng đã được thực hiện:
- Kiểm tra bộ định tuyến
- Bỏ qua tường lửa
- Dấu chân DNS
- Loại bỏ IPS / IDS
- Quét và kiểm tra các cổng đang mở
- Các cuộc tấn công SSH
- Kiểm tra trên máy chủ proxy
2. Pen test ứng dụng web
Mục đích của việc này là phát hiện ra các lỗi bảo mật trong các trang web, nền tảng thương mại điện tử (như Magento, PrestaShop, v.v.), phần mềm quản lý quan hệ khách hàng và hệ thống quản lý nội dung,…
Thử nghiệm này kiểm tra toàn bộ ứng dụng bao gồm các chức năng được xây dựng tùy chỉnh và logic nghiệp vụ, để bảo vệ khỏi vi phạm dữ liệu và các cuộc tấn công khác.
Với sự gia tăng của các ứng dụng dựa trên web, không có gì lạ khi lượng dữ liệu khổng lồ được lưu trữ và truyền qua các ứng dụng này trở thành mục tiêu hấp dẫn đối với những kẻ tấn công mạng.
Các tổ chức và cá nhân có ứng dụng web phải tiến hành kiểm tra định kỳ để cập nhật các phương pháp tấn công mới nhất và các lỗi bảo mật. Một số lỗ hổng phổ biến bao gồm:
- Mã hóa không dây và lưu lượng mạng
- Các điểm truy cập và điểm phát sóng không được bảo vệ
- Giả mạo địa chỉ MAC
- Thông tin đăng nhập yếu
- Các cuộc tấn công DDoS (Từ chối Dịch vụ Phân tán)
- Các cuộc tấn công chèn mã / SQL
- XSS (Cross-Site Scripting)
- Máy chủ web bị định cấu hình sai
- Cơ sở dữ liệu trang web
3. Social Engineering
Không giống như các kiểm tra ở trên, nơi khía cạnh kỹ thuật của ứng dụng được xem xét kỹ lưỡng, trong kỹ thuật xã hội (social engineering), tâm lý con người được rà soát tới.
Người thử nghiệm tận dụng và khai thác bản chất con người để đột nhập vào một hệ thống trong pen test kỹ thuật xã hội.
Thông qua thao tác, người kiểm tra sẽ dụ dỗ cá nhân tiết lộ thông tin nhạy cảm sẽ được sử dụng để xâm nhập hệ thống và lên kế hoạch cho các cuộc tấn công tiếp theo.
Một số phương pháp tấn công phổ biến là:
- Tấn công lừa đảo
- Giả làm đồng nghiệp, nhà thầu hoặc nhà cung cấp
- Nối đuôi nhau
- Lặn dumpster
- Nghe trộm
- Bluesnarfing
Mặc dù pen test loại này không được thực hiện rộng rãi, nhưng cần phải có một bức tranh toàn cảnh về các tiêu chuẩn bảo mật của ứng dụng của bạn.
7 Bước tiến hành Pen Test
Cần phải lập kế hoạch pen test chi tiết và chặt chẽ để việc thực thi được thành công.
Có 7 giai đoạn trong thử nghiệm thâm nhập:
Bước 1: Phân tích trước khi tương tác
Trước khi lập kế hoạch kiểm tra, bạn bắt buộc phải cùng với nhà cung cấp bảo mật của mình thảo luận về các chủ đề như phạm vi kiểm tra, ngân sách, mục tiêu, v.v. Nếu không có những điều này, sẽ không có đủ định hướng rõ ràng cho kiểm tra và sẽ dẫn đến rất nhiều nỗ lực lãng phí.
Bước 2: Thu thập thông tin tình báo
Trước khi bắt đầu áp dụng, người thử nghiệm sẽ cố gắng tìm tất cả thông tin công khai có sẵn về hệ thống và bất kỳ thông tin nào có thể giúp xâm nhập. Những thông tin này sẽ hỗ trợ việc tạo ra một kế hoạch hành động cũng như tiết lộ các mục tiêu tiềm năng.
Bước 3: Đánh giá lỗ hổng bảo mật
Trong giai đoạn này, ứng dụng của bạn được kiểm tra các lỗ hổng bảo mật bằng cách phân tích cấu hình và cơ sở hạ tầng bảo mật của bạn. Người kiểm tra tìm kiếm bất kỳ lỗ hổng bảo mật hoặc sơ hở nào có thể bị lợi dụng để đột nhập vào hệ thống.
Bước 4: Khai thác
Một khi người kiểm tra được trang bị kiến thức về các lỗ hổng có trong hệ thống, họ sẽ bắt đầu khai thác chúng. Điều này sẽ giúp xác định bản chất của các lỗ hổng bảo mật và nỗ lực cần thiết để khai thác chúng.
Bước 5: Hậu khai thác
Mục tiêu chính của pentest là mô phỏng một cuộc tấn công trong thế giới thực, trong đó những kẻ tấn công sẽ gây ra thiệt hại thực sự sau khi khai thác các lỗ hổng bảo mật trong hệ thống. Do đó, một khi người thử nghiệm có thể vào hệ thống, họ sẽ sử dụng tất cả các phương tiện có sẵn để nâng cao đặc quyền của họ.
Bước 6: Duy trì quyền truy cập
Khi những kẻ tấn công có quyền truy cập vào hệ thống, chúng cố gắng giữ cho một kênh mở để khai thác thêm thông qua backdoor và rootkit. Điều tương tự cũng được thực hiện bởi những người thử nghiệm. Họ cài đặt phần mềm độc hại và các chương trình khác để giữ cho hệ thống bị nhiễm và kiểm tra xem các chương trình này có bị ứng dụng phát hiện và gỡ bỏ hay không.
Bước 7: Báo cáo
Mọi thứ được thực hiện trong quá trình pen test đều được ghi lại một cách chi tiết cùng với các bước và đề xuất để sửa các lỗi bảo mật. Vì bản chất của báo cáo là rất nhạy cảm, nó được đảm bảo rằng nó được chuyển đến người có thẩm quyền một cách an toàn. Người kiểm tra thường có các cuộc họp và trao đổi với giám đốc điều hành và nhóm kỹ thuật để giúp họ hiểu báo cáo.
Tham khảo: Getastra