Pentest là gì? Những điều cần biết về “Kiểm thử xâm nhập”

pentest_web

Khi xây dựng ứng dụng công nghệ như web app hay mobile app, một trong những bước không thể thiếu để gia tăng bảo mật cho sản phẩm là kiểm thử xâm nhập – penetration testing, hay còn gọi là pentest. Vậy, thực chất pentest là gì, vai trò cụ thể của module này với ATTT trong doanh nghiệp ra sao? XITC sẽ giúp các bạn tìm hiểu trong bài viết dưới đây.

Pentest là gì?

Kiểm tra thâm nhập

Pentest, viết tắt của penetration testing (kiểm tra xâm nhập), là hình thức đánh giá mức độ an toàn của một hệ thống IT bằng các cuộc tấn công mô phỏng thực tế. Hiểu đơn giản, pentest cố gắng xâm nhập vào hệ thống để phát hiện ra những điểm yếu tiềm tàng của hệ thống mà tin tặc có thể khai thác và gây thiệt hại.

Mục tiêu của pentest là giúp tổ chức phát hiện càng nhiều lỗ hổng càng tốt, từ đó khắc phục chúng để loại trừ khả năng bị tấn công trong tương lai. Người làm công việc kiểm tra xâm nhập được gọi là pentester.

Pentest có thể được thực hiện trên hệ thống máy tính, web app, mobile app, hạ tầng mạng, IoT, ứng dụng và hạ tầng cloud, phần mềm dịch vụ SaaS, API, source code, hoặc một đối tượng IT có kết nối với internet và có khả năng bị tấn công… nhưng phổ biến nhất là pentest web app và mobile app. Những thành phần trên được gọi là đối tượng kiểm thử (pentest target).

Khi thực hiện xâm nhập, pentester cần có được sự cho phép của chủ hệ thống hoặc phần mềm đó. Nếu không, hành động xâm nhập sẽ được coi là hack trái phép. Thực tế, ranh giới giữa pentest và hack chỉ là sự cho phép của chủ đối tượng. Vì thế, khái niệm pentest có ý nghĩa tương tự như ethical hacking (hack có đạo đức), pentester còn được gọi là hacker mũ trắng (white hat hacker).

pentest-la-gi

Các khái niệm trong Pentest

Để hiểu rõ hơn về Pentest, ta cần hiểu rõ ba khái niệm cơ bản trong bảo mật là “vulnerabilities”, “exploits”, và “payloads”

  • Lỗ hổng (vulnerabilities) là những điểm yếu bảo mật của một phần mềm, phần cứng, hệ điều hành, hay ứng dụng web cho phép kẻ tấn công một cơ sở để tấn công hệ thống. Lỗ hổng có thể đơn giản như mật khẩu yếu, hay phức tạp như lỗ hổng SQL hoặc tràn bộ nhớ đệm.
  • Khai thác (exploits) là hành động lợi dụng một lỗ hổng, sự cố hay lỗi của phần mềm, đoạn dữ liệu hay một chuỗi các lệnh nhằm gây ra hành vi bất thường không mong muốn xảy ra trên một hệ thống máy tính. Những hành vi đó bao gồm leo thang đặc quyền, đánh cắp thông tin nhạy cảm, tấn công từ chối dịch vụ, v.v.
  • Trọng tải (payloads) là một phần của hệ thống đang tồn tại lỗ hổng và là mục tiêu để khai thác.

Các hình thức pentest

  • White box Testing: Trong hình thức pentest white box, các chuyên gia kiểm thử được cung cấp đầy đủ thông tin về đối tượng mục tiêu trước khi họ tiến hành kiểm thử. Những thông tin này bao gồm: địa chỉ IP, sơ đồ hạ tầng mạng, các giao thức sử dụng, hoặc source code.
  • Gray box Testing: Pentest gray box là hình thức kiểm thử mà pentester nhận được một phần thông tin của đối tượng kiểm thử, ví dụ URL, IP address,… nhưng không có hiểu biết đầy đủ hay quyền truy cập vào đối tượng.
  • Black box Testing: Pentest black box, hay còn gọi là ‘blind testing’, là hình thức pentest dưới góc độ của một hacker trong thực tế. Với hình thức này, các chuyên gia kiểm thử không nhận được bất kỳ thông tin nào về đối tượng trước khi tấn công. Các pentester phải tự tìm kiếm và thu thập thông tin về đối tượng để tiến hành kiểm thử. Loại hình pentest này yêu cầu một lượng lớn thời gian tìm hiểu và nỗ lực tấn công, nên chi phí không hề rẻ.

Ngoài ra còn các hình thức pentest khác như: double-blind testing, external testing, internal testing, targeted testing tuy nhiên chúng không phổ biến tại Việt Nam và chỉ được sử dụng với nhu cầu đặc thù của một số doanh nghiệp.

Tại sao cần Pentest?

Ngày nay, dưới sự phát triển của công nghệ, kiểm tra thâm nhập đã trở thành một mô-đun không thể thiếu trong hệ thống an toàn thông tin của nhiều doanh nghiệp.

Penetration Testing (kiểm tra thâm nhập) là giải pháp hiệu quả để bảo mật cho web, mobile app, network, IoT,… khỏi cuộc tấn công của tin tặc. Thông qua các cuộc tấn công mô phỏng thực tế, các kỹ sư kiểm thử có thể tìm ra những điểm yếu bảo mật của hệ thống. Qua đó giúp doanh nghiệp vá lỗ hổng kịp thời, trước khi tin tặc khai thác chúng và gây thiệt hại về tiền bạc, danh tiếng cho tổ chức.

Theo đơn vị nghiên cứu thị trường Market Watch, dung lượng thị trường Pentest vào năm 2018 là 920 triệu USD, sẽ tăng lên 2420 triệu USD vào năm 2025 với tốc độ tăng trưởng 14,9% trong giai đoạn 2019 – 2025. Nhu cầu dành cho việc kiểm tra sức chống chịu của hệ thống trước tội phạm mạng là rất lớn.

Lợi ích của Pentest

Khi thực hiện pentest định kỳ và đúng cách, doanh nghiệp có thể đạt được những mục tiêu bảo mật quan trọng:

  • Tăng cường an ninh cho ứng dụng web, mobile, network, IoT, API, hệ thống cloud, SaaS, phần cứng, v.v. Giảm thiểu tối đa khả năng bị hacker xâm nhập trái phép và gây thiệt hại;
  • Các nhà lãnh đạo có cài nhìn toàn cảnh về an ninh ứng dụng & sản phẩm công nghệ của tổ chức;
  • Ước tính thiệt hại mà một cuộc tấn công thực tế có thể gây ra;
  • Bảo mật cơ sở dữ liệu, các thông tin quan trọng của doanh nghiệp và thông tin người dùng;
  • Giúp hệ thống hoạt động ổn định, giảm thiểu khả năng bị tấn công gây gián đoạn;
  • Tìm được các lỗ hổng nguy hiểm mà công cụ/phần mềm phòng thủ tự động khó phát hiện ra;
  • Đảm bảo tiêu chuẩn bảo mật của từng ngành cụ thể (PCI DSS, HIPAA, ISO 27001,…);
  • Củng cố niềm tin cho khách hàng, đối tác, nhà đầu tư.

Thời điểm thích hợp để triển khai pentest?

Các tổ chức được khuyến cáo thực hiện pentest định kỳ theo chu kỳ hàng năm hoặc quý để đảm bảo an ninh cho hệ thống IT bao gồm hạ tầng mạng và các ứng dụng. Bên cạnh việc triển khai pentest định kỳ, kiểm tra xâm nhập sẽ cần thiết mỗi khi doanh nghiệp:

  • có thêm hạ tầng mạng hoặc ứng dụng mới;
  • cập nhật hay điều chỉnh đáng kể các ứng dụng và hạ tầng;
  • chuyển văn phòng sang địa điểm mới và cài đặt lại hệ thống;
  • cập nhật bản vá bảo mật mới; hoặc
  • điều chỉnh chính sách bảo mật cho người dùng cuối.

Doanh nghiệp nào cần pentest?

Tuy nhiên, pentest không phải dành cho tất cả mọi tổ chức. Cần xem xét các yếu tố sau trước khi thực hiện pentest:

  • Quy mô công ty. Những công ty xuất hiện online thường xuyên hơn sẽ có nhiều vector tấn công và trở nên hấp dẫn hơn với tin tặc.
  • Các công ty có hạ tầng trên cloud có khả năng sẽ không được phép thực hiện pentest hạ tầng cloud. Tuy nhiên nhà cung cấp sẽ có nghĩa vụ phải thực hiện pentest định kỳ để đảm bảo an ninh cho khách hàng sử dụng tài nguyên đám mây của họ.
  • Chi phí pentest không hề thấp, vì thế các công ty có ngân sách an ninh mạng hạn hẹp sẽ khó có thể thực hiện định kỳ.

Điểm yếu của Pentest

Mặc dù Pentest là một giải pháp hiệu quả để chống lại các cuộc tấn công mạng có chủ đích. Nhưng không có phương pháp nào là hoàn hảo tuyệt đối. Dưới đây là một số mặt hạn chế của Kiểm thử thâm nhập:

Chi phí cao: Đối với dịch vụ pentest thông thường, doanh nghiệp sẽ phải trả phí theo giờ hoặc ngày công làm việc của pentester, và chi phí này không hề thấp. Thực tế nhiều doanh nghiệp có nhu cầu bảo mật web app, mobile app nhưng việc chi một khoản tiền quá lớn cho pentest là một rào cản.

Thiếu tính đa dạng: Thông thường đội ngũ pentest chỉ bao gồm tối đa 3-5 người, và họ thường kiểm tra theo một quy trình có sẵn, lặp đi lặp lại. Trong khi tin tặc ngoài thực tế không bị bó buộc vào bất kỳ một quy trình nào, và số lượng kẻ xấu là rất nhiều.

Khó tích hợp nền tảng: Các pentest thông thường sẽ tạo ra một báo cáo dài với các lỗ hổng được liệt kê. Không có sự tích hợp nào trong vòng đời phát triển phần mềm, và điều này làm tăng thêm chi phí hoạt động và làm chậm tốc độ của cả việc khắc phục và phát triển ứng dụng.

Pentest cộng đồng được cho là giải pháp hiệu quả để khắc phục những yếu điểm trên. Với Pentest cộng đồng, doanh nghiệp có thể tiếp cận hàng trăm chuyên gia bảo mật, pentester hay hacker mũ trắng để tìm lỗi cho sản phẩm. Hơn nữa, mô hình tính phí Bug bounty (trả tiền theo lỗi) cho phép doanh nghiệp tối ưu hiệu quả đầu tư với cùng mức chi phí so với Pentest truyền thống.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Danh Mục