Bạn quan tâm đến lĩnh vực bảo mật và việc kiểm thử để gia tăng bảo mật cho phần mềm? Hay bạn vừa phát triển xong một phần mềm và bắt đầu đối mặt với việc tăng cường bảo mật để bảo vệ dữ liệu doanh nghiệp cũng như dữ liệu người dùng? Vậy, trong bài viết này, Tino Group sẽ giới thiệu với bạn về Pentest là gì cũng như các bước để thực hiện Pentest nhé!
Tìm hiểu về Pentest
Pentest là gì?
Pentest hay Penetration testing là một hình thức kiểm tra bảo mật (Security Testing) nhằm để phát hiện, xác định những vấn để bảo mật các hacker thể khai thác được để tấn công vào phần mềm, mạng hay một một ứng dụng. Mục đích chính của Pentest là xác định và kiểm tra các lỗ hổng bảo mật có trong ứng dụng phần mềm.
Các chuyên gia thực hiện sẽ sử dụng các kỹ thuật kiểm tra thâm nhập cùng với những công cụ kiểm tra chuyên dụng để đánh giá tính mạnh mẽ của:
- Chính sách bảo mật của tổ chức
- Khả năng nhận thức về bảo mật của nhân viên
- Khả năng ứng phó của tổ chức về các vấn đề, sự cố bảo mật xảy ra
- …
Mục đích khi thực hiện Pentest
Trong thực tế, những cuộc Pentest khác nhau sẽ có mục đích khác nhau. Nhưng chúng ta cũng có một số trường hợp có thể xác định cụ thể phổ biến như:
- Pentest mạng: mục đích tăng cường bảo mật bằng cách đóng các cổng không sử dụng, dịch vụ khắc phục sự cố, hiệu chỉnh các quy tắc trong tường lửa và các lỗ hổng bảo mật.
- Pentest web app: xác định, phân tích và báo cáo về các lỗ hổng web app như: tràn bộ nhớ đệm, chèn SQL, cross-site scripting,…
- Pentest còn sử dụng để cố gắng chiếm quyền truy cập đặc quyền vào các hệ thống nhạy cảm để đánh cắp dữ liệu từ một hệ thống an toàn.
Làm sao để thực hiện Pentest?
Có những loại Pentest nào?
Pentest có 5 hình thức Pentest chính:
- External testing
- Internal testing
- Blind testing
- Double-blind testing
- Targeted testing
External testing
Đây là các bài thâm nhập bên ngoài nhắm vào các mục tiêu là tài sản của doanh nghiệp hiển thị trên Internet, ví dụ như: website, bản thân web app, email và DNS. Mục đích nhằm lấy được quyền truy cập và trích xuất dữ liệu có giá trị.
Internal testing
Trong cuộc thử nghiệm này, một người thử nghiệm có quyền truy cập vào một ứng dụng đằng sau tường lửa và mô phỏng một cuộc tấn công từ bên trong của nội gián. Tuy nhiên, người đó không hẳn là “bất hảo” đôi khi những hacker lại thực hiện Social Engineering và khiến cho những nhân viên giao nộp tài khoản đó.
Blind testing
Đối với cuộc tấn công này, người thử nghiệm chỉ được cung cấp tên doanh nghiệp bị nhắm đến. Việc này tương đối giống với một cuộc tấn công ứng dụng trong thực tế.
Double-blind testing
Trong cuộc thử nghiệm “mù gấp đôi” này, nhân viên an ninh của doanh nghiệp không được báo trước về việc khi nào tấn công hoặc có tấn công hay không. Việc này hoàn toàn giống với thế giới thực, họ sẽ không có thời gian để tăng cường phòng thủ và đợi hacker đến.
Targeted testing
Đây là một phương án kiểm tra lights-turned-on (bật đèn). Lúc này, người kiểm tra và nhân viên an ninh làm việc cùng nhau để đánh giá và thực hiện Pentest, việc này sẽ tiết kiệm được rất nhiều thời gian.
Tuy nhiên, phương án kiểm tra này sẽ không thể đánh giá được bức tranh toàn cảnh về: nhân viên an ninh, khả năng ứng phó của tổ chức và khả năng phục hồi sau tấn công như thế nào.
Những công cụ dùng trong Pentest
Trước khi thực hiện Pentest, chúng ta sẽ cần một hoặc một số công cụ hiệu quả, mạnh mẽ trong “kho vũ khí” của các chuyên gia bảo mật bao gồm:
- Máy quét cổng
- Máy quét lỗ hổng bảo mật
- Máy quét ứng dụng
- Các proxy đánh giá ứng dụng web
Quá trình 5 bước của Pentest
Trong một vài bài viết khác, bạn sẽ thấy quy trình là 4 bước. Nhưng trong bài viết này, Tino Group dựa theo nội dung của Imperva (một công ty bảo mật chuyên về tấn công mạng) với quy trình 5 bước bao gồm:
- Bước 1: lập kế hoạch và trinh sát
- Bước 2: quét
- Bước 3: giành quyền truy cập
- Bước 4: duy trì quyền truy cập
- Bước 5: phân tích
Chúng ta cùng nhau tìm hiểu chi tiết về 5 bước ngay sau đây nhé!
Bước 1: lập kế hoạch và thực hiện trinh sát
Giai đoạn đầu tiên sẽ bao gồm những công việc sau đây:
- 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 giải quyết và các phương pháp thử nghiệm sẽ sử dụng.
- Thu thập thông tin tình báo như: tên miền, máy chủ email,… Để hiểu rõ hơn về cách mục tiêu hoạt động.
Bước 2: quét
Tiếp theo, giai đoạn này, chúng ta cần hiểu ứng dụng mục tiêu sẽ phản ứng ra sao với những cuộc tấn công xâm nhập khác nhau:
- Phân tích tĩnh: kiểm tra mã của ứng dụng trong khi chạy. Các công cụ này có thể quét toàn bộ mã trong 1 lần chuyển.
- Phân tích động: kiểm tra mã ứng dụng trong trạng thái đang chạy. Cách này là một cách thực tế hơn khi cung cấp cái nhìn trong thời gian thực về hiệu suất của ứng dụng.
Bước 3: giành quyền truy cập
Sau khi đã hiểu về đối tượng, giai đoạn này sẽ thực hiện tấn công vào ứng dụng bằng những cách như: cross-site scripting, chèn SQL hay thực hiện backdoors để tìm ra các lỗi hỏng của mục tiêu.
Sau đó, người kiểm tra sẽ thử và khai thác các lỗ hổng này bằng cách: nâng cao đặc quyền, đánh cắp dữ liệu, ngăn chặn lưu lượng truy cập,… để hiểu những thiệt hại họ có thể gây ra.
Bước 4: duy trì quyền truy cập
Giai đoạn này nhằm tìm hiểu xem lỗ hổng có thể sử dụng để tạo cơ hội “thường trú” cho những hacker để khai thác hệ thống một cách chuyên sâu. Đây là một ý tưởng nhằm bắt chước những mối đe doạ dai dẳng nâng cao nhằm đánh cắp dữ liệu nhạy cảm của tổ chức.
Bước 5: phân tích
Sau khi thực hiện Pentest, những kết quả thu lại được sẽ được tổng hợp thành một báo cáo chi tiết với những thông tin như:
- Các lỗ hổng cụ thể đã khai thác được
- Những dữ liệu nhạy cảm đã truy cập được
- Khoảng thời gian Pentest đã ở trong hệ thống mà không bị phát hiện.
Vậy là chúng ta đã cùng nhau tìm hiểu về Pentest là gì, có những loại Pentest nào và quy trình Pentest ra sao rồi đấy! Sau bài viết, có thể bạn sẽ thấy quy trình này tương đối đơn giản đúng không nào? Dĩ nhiên là không nhé! Vì thế, Tino Group hi vọng rằng bạn sẽ nhanh chóng trở thành một cái tên nổi bật trong danh sách những chuyên gia bảo mật hàng đầu Việt Nam.
Bài viết có tham khảo nội dung từ: Guru99, Imperva, Contrast Security.
FAQs về Pentest
Vì sao phải thực hiện Pentest?
- Những lĩnh vực nhạy cảm liên quan đến tài chính như: ngân hàng, sở giao dịch chứng khoán hay các quỹ đầu tư cần đảm bảo an toàn thông tin của họ.
- Nếu những tổ chức đã từng bị tấn công, họ có thể xác định lại xem có bất kỳ mối đe dọa nào còn tồn tại bên trong hệ thống hay không để tránh bị tấn công trong tương lai.
- Và trên hết là chủ động kiểm tra sẽ là biện pháp tốt nhất để chống lại tin tặc.
Pentest 4 bước khác điểm gì với Pentest 5 bước?
Bước khác biệt duy nhất giữa Pentest 4 bước khác điểm gì với Pentest 5 bước chính là ở bước “duy trì quyền truy cập” nhằm đánh giá những mối đe doạ dai dẳng trong tương lai.
Có những công cụ Pentest nào?
Nếu bạn muốn thử, Tino Group sẽ giới thiệu với bạn một số công cụ thực hiện Pentest như sau:
- NMap: dùng để xác định cổng, hệ điều hành và theo dõi tuyến đường và quét lỗ hổng bảo mật.
- Nessus: công cụ xử lý lỗ hổng dựa trên mạng truyền thống.
Pentest có nhược điểm nào hay không?
Pentest là một việc tốt cho bảo mật. Nhưng Pentest cũng mang đến một số rắc rối như:
- Khả năng mất dữ liệu
- Thời gian hệ thống ngừng hoạt động khi Pentest
- Tăng chi phí để sửa chữa, sửa lỗi và tiền cho đơn vị thực hiện.