Security Testing: Penetration Testing (Kiểm thử thâm nhập) và Vulnerability Assessment (Đánh giá các lỗ hổng bảo mật)
An ninh mạng - Một chủ đề rất đáng chú tâm Trong kỉ nguyên bùng nổ công nghệ và kĩ thuật số, vấn đề an ninh mạng đã trở thành mối lo ngại cho hầu hết mọi tổ chức, các đơn vị cung cấp dịch vụ,... Mặc dù đây là một vấn đề khá nan giải nhưng nhiều biện pháp đã được đưa vào nhằm nâng cao tính bảo ...
An ninh mạng - Một chủ đề rất đáng chú tâm
Trong kỉ nguyên bùng nổ công nghệ và kĩ thuật số, vấn đề an ninh mạng đã trở thành mối lo ngại cho hầu hết mọi tổ chức, các đơn vị cung cấp dịch vụ,...
Mặc dù đây là một vấn đề khá nan giải nhưng nhiều biện pháp đã được đưa vào nhằm nâng cao tính bảo mật, bảo vệ các hệ thống mạng. Bài viết này sẽ giới thiệu về hai kĩ thuật khá quen thuộc ở các tổ chức quốc tế nhưng lại tương đối mới mẻ ở Việt Nam có tên gọi là "Penetration Testing" (kiểm thử thâm nhập) và "Vulnerability Assessment" (Đánh giá các lỗ hổng bảo mật). Trong nội dung bài viết, tôi cũng sẽ chỉ ra những điểm khác biệt của hai kĩ thuật này vì nhìn chung ở rất nhiều nơi hai khái niệm này đang được sử dụng với ý nghĩ tương đương bởi nhiều lí do, đa phần là do sự marketing sai lệch của các công ty cung cấp những dịch vụ này.
Trước khi đi vào sự khác nhau giữa hai khái niệm này hãy cùng lần lượt tìm hiểu xem hai khái niệm này là gì.
Vulnerability Assessment (VA) là gì?
VA là kĩ thuật xác định, tìm ra (discovery) và đo đạc định lượng (scanning) các lỗ hổng bảo mật trong môi trường hệ thống cho trước. Đây là một phương pháp đánh giá chuyên sâu, toàn diện cho toàn bộ hệ thống bảo mật thông tin (result analysis). Hơn nữa, nó chỉ ra những điểm yếu (có khả năng trở thành mục tiêu tấn công) cũng như cung cấp các cách thức giảm thiểu phù hợp (remediation), cần thiết để có thể loại bỏ những điểm yếu đó hoặc ít nhất là giảm mức độ rủi ro của chúng xuống một mức độ có thể chấp nhận được.
Sơ đồ dưới đây là mô tả hình ảnh cho kĩ thuật VA:
Thế nào là Penetration Testing (PenTest)?
Việc thực hiện kiểm thử thâm nhập (PA) mô phỏng những hành động của tội phạm mạng, ví dụ như phá vỡ an ninh thông tin, đánh cắp những dữ liệu có giá trị, làm gián đoạn hoạt động của một tổ chức. Bằng cách sử dụng nhiều công cụ và công nghệ tân tiến rất đa dạng, các tester thực hiện PenTest (được sự cho phép của tổ chức đó) sẽ cố gắng khai thác triệt để hệ thống và tìm cách tiếp cận với các thông tin nhạy cảm.
Vậy hai kĩ thuật này khác nhau ở những điểm nào.
Điểm khác biệt căn bản dường như có thể nhiều người vốn đã nắm được đó là trong quá trình thực hiện VA, người ta sẽ cố gắng tìm được càng nhiều các lỗ hổng nhất có thể. Trong khi đó, khi thực hiện PenTest mục tiêu được xác định rõ ràng đó là phá vỡ an ninh hệ thống nhưng thực tế nó lại không hề quan tâm tới những lỗ hổng đang tồn tại.
Trước hết là sự khác biệt về mặt ngôn ngữ
Ngôn ngữ cũng rất quan trọng và việc tồn tại hai khái niệm cũng cho thấy việc chúng khác nhau là có cơ sở. Nhưng nếu không có một sự vạch đinh ranh giới rõ ràng, người dùng cũng chưa hiểu chính xác về các định nghĩa thì liệu có nên sử dụng đồng thời, riêng rẽ hai khái niệm này cùng để chỉ những kĩ thuật test bảo mật? Rõ ràng là có những khác biệt tồn tại nhưng đó là những điểm cần phân tích sâu hơn để định hình.
Cụ thể hơn một chút về định nghĩa của hai khái niệm
VA được thiết kế để xác định một danh sách có phân cấp độ ưu tiên các lỗ hổng, điểm yếu của hệ thống, thường là để phục vụ cho những khách hàng vốn đã hiểu họ đang ở trong trạng thái bị đe dọa tấn công bởi những mối lo tiềm ẩn và chắc chắn là họ không muốn như vậy. Họ đã biết mình đang gặp rắc rối, có vấn đề và đơn giản chỉ là họ cần thực hiện test bài bản để xác định một cách chính xác những lỗ hổng này và quan trọng là đánh giá tầm quan trọng của việc khắc phục mỗi lỗ hổng đó.
Càng nhiều vấn đề được xác định càng tốt. Vì lẽ đó, việc thực hiện kĩ thuật này nên sử dụng kĩ thuật kiểm thử hộp trắng (whitebox) nhiều nhất có thể. Sẳn phẩm cuối cùng của giai đoạn kiểm thử là một danh sách các lỗ hổng đã được sắp xếp theo độ ưu tiên tìm ta trong quá trình test, đồng thời, gợi ý cách thức làm thuyên giảm những vấn đề đó.
Còn nói về PenTest, nó được thiết kế để đạt được một mục đích cụ thể: mô phỏng hành vi của một tên tội phạm mạng và chắc chắc cần phải có sự cho phép, yêu cầu từ phía khách hàng, những người đã có một hệ thống an ninh bảo mật vững vàng. Một ví dụ điển hình có thể là yêu cầu tester xâm nhập và lấy ra những thông tin về những khách hàng thân thiết trong cơ sở dữ liệu nội bộ hoặc chỉnh sửa bản ghi của một nhân viên trong hệ thống HR.
The deliverable for a penetration test is a report of how security was breached in order to reach the agreed-upon goal (and often how to remediate).
### Phương pháp nào khai thác triệt để hơn?
Một sai lầm khi so sánh hai khái niệm này mà người ta có thể mắc phải là kĩ thuật nào khai thác hiệu quả hơn. Nhiều ý kiến cho rằng: " Việc tìm kiếm lỗ hổng là thực hiện VA và khai thác các lỗ hổng đó là việc của PenTest" Ý kiến này là không chính xác.
Khai thác có thể được tưởng tượng như một thanh trượt giữa không và đầy đủ, có thể được tận dụng trong cả đánh giá tính VA và PenTest. Mặc dù hầu hết các bài kiểm tra thâm nhập nghiêm trọng đều nghiêng về phía hiển thị hơn là mô tả (nghĩa là nặng về phía khai thác), hay cũng có trường hợp chứng minh rằng một lỗ hổng là có thực mà không cần khai thác triệt để.
Một nhóm thử nghiệm thâm nhập có thể chỉ cần chụp ảnh đứng bên cạnh một chiếc két an toàn mở hoặc cho thấy họ có quyền truy cập đầy đủ vào cơ sở dữ liệu, v.v... mà không thực sự thực hiện hành động hoàn chỉnh mà một kẻ phạm tội có thể thực hiện. Và đánh giá tính dễ bị tổn thương (VA) cũng có thể chạy theo quy trình này này cho bất kỳ nhóm nhỏ nào trong danh sách các vấn đề được phát hiện.
Điều này có thể mất thời gian thật, nhưng theo cách định nghĩa, việc khai thác không giúp bạn thoát khỏi việc bị tổn thương, tấn công vào các lỗ hổng. Các thuộc tính quan trọng và duy nhất của VA so với PT là việc định hướng kiểu danh mục và và đinh hướng kiểu mục tiêu, và vấn đề khai thác không phải là một phần của phép tính đó.
PENETRATION TESTS bao gồm VULNERABILITY ASSESSMENTS???
Việc nói rằng PenTest luôn bao hàm cả VA cũng là một điều không hề chính xác. Hãy nhớ rằng PenTest là kĩ thuật hướng tới việc thực hiện một mục tiêu sau cuối. Điều đó có nghĩa là nếu bạn đạt được mục tiêu đó thì bạn đã hoàn thành công việc xuất sắc. Vậy thì, bạn có thể sẽ phần nào đó thực hiện VA để tìm ra một lỗ hổng sau đó dùng nó thực hiện PenTest nhưng việc tìm ra lỗ hổng này chỉ mất rất ít thời gian. Vậy khi tìm được lỗ hổng để tấn công rồi, bạn đạt được mục đích rồi, những lỗ hổng còn lại thì sao? Bạn có dành thời gian tìm ra và đánh giá nó nữa hay không?
Nói một cách khác, chính xác là PenTest phụ thuộc vào việc tìm ra một hoặc hơn những lỗ hổng để có thể lợi dụng chúng và rằng người ta thường sử dụng một quy trình nào đó để tìm ra nhũng lỗ hổng một cách có hệ thống để phục vụ mục đích thực hiện PenTest nhưng bởi vì họ sẽ dừng lại khi họ đạt được điều họ mong muốn và không đưa ra cho khách hàng được danh sách tất cả nhưng điểm yếu, lỗ hổng an ninh trong hệ thống, cái nào ưu tiên hơn cái nào nên thực sự thì trong quá tình làm PenTest họ không thực sự thực hiện một quy trình VA đầy đủ.
Bảng tổng kết sau đây sẽ chỉ ra những điểm khác nhau căn bản của hai kĩ thuật này:
![](https://viblo.asia/uploads/3a94922b-34bb-4262-9168-7dba75c657f7.png)
| Penetration Testing | Vulnerability Assessments | | -------- | -------- | | Xác định phạm vi tấn công. | Tạo thư mục liệt kê các tài sản và tài nguyên trong một hệ thống. | | Test thu thập các thông tin nhạy cảm. | Khám phá ra những mối de dọa tiềm ẩn đối với mỗi tài nguyên. | | Thu thập thông tin mục tiêu và/hoặc điều tra hệ thống. | Phân bổ giá trị định lượng và tầm quan trọng cho các tài nguyên sẵn có | | Làm sạch sẽ hệ thống và tổng hợp kết quả báo cáo. | Nỗ lực để giảm thiểu hoặc loại bỏ những lỗ hổng, điểm yếu của các tài nguyên hiện là đối tượng tiềm năng cho tin tặc. | | Có thực hiện phân tích đánh giá môi trường, tạo tài liệu nhưng không nghiên cứu sâu về hệ thống | Nghiên cứu phân tích toàn diện qua việc đánh giá hệ thống và môi trường. | | Lý tưởng cho kiến trúc mạng và môi trường vật lí | Lý tưởng cho môi trường phòng thí nghiệm | Áp dụng đối với các hệ thống thời gian thực quan trọng | Áp dụng đối với các hệ thống không | |Thường do khách hàng tin rằng hệ thống của họ rất vững vàng rồi và họ muốn kiểm tra nó bảo mật đến mức nào| Khách hàng là những người có vấn đề về bảo mật và họ cần được giúp đỡ để giải quyết| |Khai thác theo chiều sâu hơn là chiều rộng | Khai thác theo chiều rộng hơn là chiều sâu| ![](https://viblo.asia/uploads/6ad6b82b-6668-4489-8d28-641cbcf97caf.png)
## Vậy lựa chọn kĩ thuật nào mới là lý tưởng nhất để triển khai?
![](https://viblo.asia/uploads/4a760f8f-a4f4-4dd4-bc6d-693368cb4bc2.jpg)
Cả hai phương pháp đều có chức năng và cách tiếp cận khác nhau. Chính vì vậy, tùy thuộc vào tình trạng an ninh của hệ thống mà người ta lựa chọn phương thức nào để áp dụng. Tuy nhiên, cũng chính bởi những điểm khác biệt căn bản có nêu ở trên giữa PenTest và VA, ta có thể thấy VA mang lại nhiều lợi ích hơn so với PenTest.
VA nhận dạng được những điểm yếu và đưa ra được những giải pháp để sửa chữa chúng. Mặt khác, PenTest chỉ giúp ta trả lời được câu hỏi: "Liệu có ai có thể phá vỡ an ninh của hệ thống không và nếu có thì hắn có thể gây ra những tác hại gì?"
Hơn nữa việc đánh giá các lỗ hổng là nỗ lực cải thiện hệ thống an ninh bảo vệ và phát triển một chương tình bảo mật anh ninh tích hợp hơn và "rắn rỏi" hơn. Trong khi đó, PenTest chỉ có thể cho ta thấy một bức tranh về hệ thống an ninh, phần nào đang làm việc hậu quả.
Như vậy chúng ta có thể thấy từ sự phân tích ở trên, sau khi thấy được những điểm khác nhau căn bản giữa hai khái niệm, VA có nhiều lợi ích hơn và cho kết quả thiết thực hơn khi đem ra so sánh với PenTest. Nhưng các chuyên gia trong lĩnh vực này đã gợi ý rằng, là một phần của hệ thống quản lí an ninh, cả hai kĩ thuật nên được thực hiện thường xuyên để đảm bảo một môi trường được bảo vệ "hoàn hảo".
*Nguồn tham khảo:* https://www.tutorialspoint.com/penetration_testing/ https://danielmiessler.com/study/vulnerability-assessment-penetration-test/#gs.LD6zJc4