Hướng dẫn học pentest

Hướng dẫn test thâm nhập (Penetration Testing) hoàn chỉnh với ví dụ cơ bản    

  • Báo cáo

Penetration Testing là gì?

Penetration Testing là quy trình xác định các lổ hổng bảo mật trong một ứng dụng bằng việc đánh giá hệ thống hoặc network với các kỹ thuật độc hại khác nhau. Những điểm yếu của hệ thống được khai thác trong quá trình này thông qua một cuộc tấn công mô phỏng bản quyền.

Mục đích của việc test này là để đảm bảo các dữ liệu quan trọng khỏi người ngoài, ví dụ như hacker - người có thể truy cập trái phép vào hệ thống. Khi một lỗ hổng được xác định, nó được sử dụng để khai thác hệ thống, từ đó có thể truy cập vào những thông tin nhạy cảm.

Một penetration test còn được gọi là pen testing, và một penetration tester được giới thiệu như một hacker có đạo đức.

Hướng dẫn học pentest

Chúng ta có thể tìm ra những lỗ hổng của một hệ thống máy tính, một ứng dụng web, hoặc một network thông qua penetration testing.

Một penetration test chỉ ra rằng các biện pháp bảo mật hiện có trong hệ thống có đủ mạnh để phòng ngừa bất kỳ vi phạm an ninh nào hay không. Penetration test report cũng đề xuất các biện pháp đối phó có thể làm giảm rủi ro hệ thống bị hack.

Nguyên nhân của những lỗ hổng

  • Lỗi thiết kế và phát triển: Có những sai sót trong việc thiết kế phần cứng và phần mềm. Những bug này có thể khiến những dữ liệu kinh doanh quan trọng của bạn có rủi ro bị lộ.
  • Cấu hình hệ thống nghèo nàn: Nó là một nguyên nhân khác của lỗ hổng. Nếu hệ thống có cấu hình nghèo nàn, lạc hậu, nó có thể có những sơ hở mà kẻ tấn công sẽ dựa vào đó để thâm nhập vào hệ thống và lấy trộm thông tin.
  • Lỗi con người:  Nhân tố con người như xử lý tài liệu không đúng cách, để lại các tài liệu không giám sát, code lỗi, các mối đe dọa từ người trong cuộc, chia sẻ mật khẩu trên các trang web lừa đảo, ... có thể dẫn đến vi phạm an ninh.
  • Kết nối: Nếu hệ thống được kết nối với mạng không được bảo mật (kết nối mở) thì nó sẽ nằm trong tầm tay của hacker.
  • Độ phức tạp: Lỗ hổng bảo mật tăng lên trong một phần mềm phức tạp. Càng nhiều tính năng, càng có nhiều nguy cơ hệ thống bị tấn công.
  • Password: Password được sử dụng để ngăn chặn việc truy cập bất hợp pháp. Chúng phải đủ mạnh để không ai có thể đoán được. Password không được chia sẻ với bất kỳ ai bằng bất cứ giá nào, và nên được thay đổi định kỳ. Mặc dù đã có hướng dẫn, nhiều lúc có người vẫn tiết lộ password với người khác, viết chúng lên đâu đó và thiết lập mật khẩu dễ dàng đoán được.
  • User Input: Bạn hẳn đã nghe về SQL Injection, buffer overflows, ... Dữ liệu nhận về qua các phương thức này có thể được sử dụng để tấn công hệ thống tiếp nhận.
  • Quản lý: Bảo mật rất khó và đắt để quản lý. Thỉnh thoảng các tổ chức thiếu quản lý rủi ro và do đó xuất hiện lỗ hổng trong hệ thống.
  • Thiếu training nhân viên: Điều này dẫn tới lỗi con người và những lỗ hổng khác
  • Giao tiếp: Các kênh như mạng di động, internet, điện thoại mở ra phạm vi trộm cắp an ninh.

Tại sao cần Penetration Testing?

Bạn hẳn đã nghe về cuộc tấn công WannaCry ransomware tháng 5/2017. Nó đã khóa hơn 2 lakh máy tính (tương đương với 200.000 máy tính) trên toàn thế giới và yêu cầu thanh toán tiền chuộc bằng tiền điện tử Bitcoin. Cuộc tấn công này có ảnh hưởng đến nhiều tổ chức lớn trên toàn cầu.

Với các cuộc tấn công mạng lớn và nguy hiểm như vậy, việc test thâm nhập là điều không thể tránh khỏi để bảo vệ hệ thống thông tin khỏi vi phạm an ninh.

Vì vậy, Penetration Testing chủ yếu cần thiết để:

  • Bảo mật dữ liệu tài chính và quan trọng trong quán trình chuyển giao giữa các hệ thống hoặc các mạng khác nhau.
  • Nhiều client yêu cầu pen testing như một phần của chu kỳ release phần mềm.
  • Bảo mật dữ liệu người dùng
  • Để tìm kiếm những lỗ hổng trong một ứng dụng.
  • Phát hiện sơ hở trong hệ thống.
  • Đánh giá mức độ ảnh hưởng kinh doanh của cuộc tấn công thành công.
  • Để đáp ứng việc tuân thủ bảo mật thông tin trong tổ chức.
  • Để thực hiện chiến lược bảo mật hiệu quả trong tổ chức.

Các tổ chức cần xác định các vấn đề bảo mật hiện tại trong mạng nội bộ và máy tính.  Sử dụng những thông tin này, tổ chức có thể lên kế hoạch phòng thủ chống lại mọi nỗ lực hack. Quyền riêng tư người dùng và bảo mật dữ liệu là mối quan tâm lớn nhất ngày nay. Thử tưởng tượng nếu bất kỳ hacker nào quản lý để lấy được chi tiết người dùng của mạng xã hội, ví dụ như Facebook. Thì tổ chức có thể phải đối mặt với các vấn đề về pháp lý  do một kẽ hở nhỏ trong phần mềm. Vì vậy, các tổ chức lớn đang tìm kiếm các chứng nhận tuân thủ PCI (Payment Card Industry) trước khi thực hiện kinh doanh với bên thứ ba.

Cần test những gì?

Hướng dẫn học pentest
  • Phần mềm (Hệ điều hành, dịch vụ, ứng dụng)
  • Phần cứng
  • Mạng
  • Quy trình
  • Hành vi người dùng cuối

Các công cụ Penetration Testing và các công ty

Các công cụ tự động có thể sử dụng để xác định một số lỗ hổng chuẩn hiện nay trong ứng dụng. Công cụ quét mã Pentest để kiểm tra nếu có mã độc có thể dẫn đến vi phạm an ninh tiềm năng. Pentest tool có thể xác định những sơ hở bảo mật hiện nay trong hệ thống bằng kỹ thuật kiểm tra mã hóa dữ liệu và tìm ra các dữ liệu được hard-code, ví dụ như username và password.

Tiêu chí để lựa chọn công cụ test thâm nhập tốt nhất:

  • Dễ dàng deploy, cấu hình và sử dụng
  • Quét hệ thống dễ dàng
  • Nó sẽ phân loại lỗ hổng dựa theo mức độ nghiêm trọng cần fix ngay lập tức
  • Có khả năng tự động xác minh các lỗ hổng
  • Nó sẽ xác minh lại lỗi đã tìm thấy trước đó
  • Nó sẽ tạo ra các report và log lỗ hổng chi tiết

Khi bạn biết những gì cần thực hiện, bạn có thể đào tạo nguồn nhân lực nội bộ hoặc thuê chuyên gia tư vấn để thực hiện các task penetration cho bạn.

Công cụ test thâm nhập được đề xuất:

1. Acunetix

Acunetix WVS cung cấp cho các chuyên gia bảo mật và kỹ sư phần mềm một loạt các tính năng tuyệt đẹp một cách dễ dàng, minh bạch và mạnh mẽ.

=> Thử nghiệm công cụ này tại đây

Hướng dẫn học pentest

Các công ty test thâm nhập được đề xuất:

1. ScienceSoft

Hướng dẫn học pentest

ScienceSoft là một công ty phát triển phần mềm và tư vấn IT được công nhận với những lợi ích cốt lõi trong các dịch vụ an ninh mạng. Công ty có 16 năm kinh nghiệm trong việc tiến hành test thâm nhập black box, white box và grey box của tất cả các thành phần của cơ sở hạ tầng có quy mô và độ phức tạp khác nhau.

Bạn có thể liên hệ với nhóm chuyên gia của các hacker đạo đức được chứng nhận của ScienceSoft để nhận được hỗ trợ với bất kỳ thông tin hoặc mối quan tâm nào liên quan đến bảo mật.

=> Ghé thăm ScienceSoft website

2. ImmuniWeb®

Hướng dẫn học pentest

ImmuniWeb® là một công ty test thâm nhập có trụ sở tại Geneva, Switzerland. Nền tảng thử nghiệm thâm nhập ứng dụng hỗ trợ DevSecOps của nó kết hợp con người với trí tuệ nhân tạo và đi kèm với không false-positive (lỗi sai xác thực) SLA, phát hiện lỗ hổng cao nhất và báo cáo hành động.

ImmuniWeb cung cấp test thâm nhập ứng dụng toàn diện cho các ứng dụng web nội bộ và bên ngoài, ứng dụng mobile, API và web service, mail server, thiết  bị IoT, và nhiều thứ khác.

Những đặc điểm chính:

  • Liên tục phát hiện code mới
  • Kiểm tra thủ công nhanh chóng và hiệu quả
  • Khả năng vá ảo chỉ bằng một cú click chuột
  • Truy cập 24/7 để phân tích bảo mật
  • Tích hợp DevSecOps và CI/CD
  • Đặt hàng ngay lập tức và giao hàng nhanh chóng
  • Bảng điều khiển đa năng

=> Ghé thăm ImmuniWeb® Official Website

Các công cụ miễn phí khác:

  • Nmap
  • Nessus
  • Metasploit
  • Wireshark
  • OpenSSL

Các dịch vụ thương mại:

  • Pure Hacking
  • Torrid Networks
  • SecPoint
  • Veracode

Các loại test thâm nhập

1. Social engineering test

Trong loại test này, những nỗ lực đang được thực hiện sẽ làm cho một người tiết lộ thông tin nhạy cảm như password, dữ liệu kinh doanh quan trọng, ... Các test hầu hết được thực hiện thông qua điện thoại, hoặc internet và mục tiêu của nó là các bộ phận hỗ trợ, nhân viên và quy trình.

Lỗi con người là nguyên nhân chính dẫn đến lỗ hổng bảo mật. Các tiêu chuẩn và chính sách bảo mật cần được theo dõi bởi tất cả các nhân viên, nhằm tránh những nỗ lực thâm nhập social engineering. Ví dụ về các tiêu chuẩn: không đề cập đến các thông tin nhạy cảm trong email hoặc trao đổi qua điện thoại. Các audit bảo mật có thể tiến hành để xác định và sửa lỗi sai quy trình.

2. Test ứng dụng web

Sử dụng các phương thức phần mềm, người ta có thể xác nhận rằng ứng dụng có lỗ hổng bảo mật hay không. Nó kiểm tra lỗ hổng bảo mật của web app và chương trình phần mềm được định vị trong môi trường đích.

3. Test thâm nhập vật lý

Các phương thức bảo mật vật lý mạnh được áp dụng để bảo vệ các dữ liệu nhạy cảm. Nó thường được sử dụng trong cơ sở quân sự và chính phủ. Tất cả các thiết bị mạng và các điểm truy cập vật lý đều được kiểm tra vi phạm an ninh. Loại test này không liên quan nhiều đến phạm vi kiểm thử phần mềm.

4. Test dịch vụ mạng

Đây là một trong những loại test thâm nhập phổ biến nhất nơi các lỗ hổng trong mạng được xác định bởi các trường nhập trong hệ thống trên mạng, để check xem có lỗ hổng nào ở đó. Nó có thể thực hiện local hoặc từ xa.

5. Test phía khách hàng

Loại test này nhằm mục đích tìm kiếm và khai thác những lỗ hổng trong chương trình phần mềm phía khách hàng.

6. Quay số từ xa

Loại test này tìm kiếm các modem trong môi trường và cố gắng login vào hệ thống kết nối với những modem này bằng cách đoán password hoặc brute-forcing.

7. Test bảo mật wireless

Nó phát hiện ra các điểm truy cập hoặc mạng Wi-Fi mở, trái phép và ít bảo mật hơn và kết nối thông qua chúng.

Phía trên là 7 loại pen test. Chúng ta có thể tổ chức các loại test thâm nhập trong 3 phần như sơ đồ dưới đây:

Hướng dẫn học pentest

Hãy cùng thảo luận về từng phương pháp test:

  • Back Box Penetration Testing: Với phương pháp này, tester đánh giá hệ thống, network, quy trình đích mà không biết chi tiết của nó. Họ chỉ có những input ở mức level rất cao như URL, hoặc tên công ty và sử dụng chúng để thâm nhập vào môi trường đích. Không kiểm tra code với phương thức này.
  • White Box Penetration Testing: Với phương pháp này, tester được trang bị đầy đủ chi tiết về môi trường đích - Hệ thống, network, OS, IP address, source code, schema, ... Kiểm tra code và tìm lỗi của việc thiết kế và phát triển. Nó là một mô phỏng của cuộc tấn công an ninh nội bộ.
  • Grey Box Penetration Testing: Với phương pháp này, tester biết biết về chi tiết của môi trường đích một cách hạn chế. Nó là mô phỏng của cuộc tấn công an ninh từ bên ngoài.

Các kỹ thuật Test thâm nhập:

Phương pháp thứ 3 là phổ biến hơn để xác định tất cả các loại lỗ hổng.

Test thâm nhập thủ công

Thật khó để tìm thấy tất cả các lỗ hổng bằng các công cụ tự động. Có những lỗ hổng chỉ có thể tìm thấy bằng test thủ công. Tester test thâm nhập thực hiện các cuộc tấn công tốt nhất trên ứng dụng dựa vào kỹ năng và kinh nghiệm về hệ thống được test thâm nhập. Và các phương thức như social engineering chỉ có thể thực hiện bởi con người.

Kiểm tra thủ công bao gồm: design, logic kinh doanh cũng như xác minh code.

Quy trình test thâm nhập:

Xác định những lỗ hổng hiện tại trong hệ thống là bước quan trọng đầu tiên của quy trình này. Hành động khắc phục được thực hiện với những lỗ hổng này, và các cuộc test thâm nhập được thực hiện lặp lại cho đến khi hệ thống âm tính với những cuộc thử nghiệm đó.

Phương thức test thâm nhập:

Hướng dẫn học pentest

1. Thu thập dữ liệu: Người ta sử dụng các phương pháp khác nhau bao gồm Goolge Search để get dữ liệu hệ thống đích. Họ cũng có thể sử dụng kỹ thuật phân tích source code trang web để lấy về nhiều thông tin hơn về hệ thống, phần mềm, và phiên bản plugin. Có nhiều tool và dịch vụ miễn phí có sẵn trên thị trường. Chúng có thể cung cấp cho bạn thông tin như cơ sở dữ liệu, hoặc tên bảng, phiên bản DB, phiên bản phần mềm, phần cứng được sử dụng, và các plugin của bên thứ ba được sử dụng trong hệ thống đích.

2. Đánh giá lỗ hổng: Dựa trên dữ liệu đã thu thập được ở bước trên, người ta có thể tìm thấy điểm yếu trong bảo mật của hệ thống đích. Nó giúp tester test thâm nhập thực hiện các cuộc tấn công bằng cách sử dụng các điểm truy cập được xác định trong hệ thống.

3. Khai thác thực tế: Đây là bước quan trọng. Nó yêu cầu kỹ năng và kỹ thuật đặc biệt để thực hiện một cuộc tấn công hệ thống đích. Tester test thâm nhập có kinh nghiệm có thể sử dụng kinh nghiệm của họ để thực hiện một cuộc tấn công vào hệ thống.

4. Phân tích kết quả và báo cáo test thâm nhập: Sau khi kết thúc việc test thâm nhập, báo cáo chi tiết được chuẩn bị để có những hành động khắc phục. Tất cả những lỗ hổng được tìm thấy và những phương pháp khắc phục được đề cập được liệt kê trong báo cáo. Bạn có thể tùy chỉnh format của báo cáo dựa trên nhu cầu của công ty bạn: HTML, XML, MS Word hoặc PDF.

Một số ví dụ về Test case (Test Scenario):

Test thâm nhập không phải là test chức năng. Mục đích của bạn là tìm thấy các lỗ hổng bảo mật trong hệ thống. Dưới đây là một số test case chung và không nhất thiết phải áp dụng cho tất cả các ứng dụng.

Đây là những test scenario cơ bản để bắt đầu với Pen test. Có hàng trăm phương pháp test thâm nhập nâng cao có thể thực hiện thủ công hoặc dùng các công cụ tự động.

Tham khảo: https://www.softwaretestinghelp.com/penetration-testing-guide/