Penetration Testing là gì ?

penetration-testing.png

Penetration Testing (Kiểm Tra Thâm Nhập) là quy trình xác định các lỗ hổng bảo mật trong ứng dụng bằng cách đánh giá hệ thống hoặc mạng bằng các kỹ thuật khác nhau. Các điểm yếu của một hệ thống được khai thác trong quá trình này đều thông qua một cuộc tấn công mô phỏng (được sự cho phép của các tổ chức).

Mục đích của sự kiểm tra này là để bảo mật dữ liệu quan trọng khỏi những kẻ bên ngoài như hacker để có thể truy cập trái phép vào hệ thống. Khi lỗ hổng đã được xác định, nó sẽ được sử dụng để khai thác hệ thống nhằm truy cập các thông tin nhạy cảm.

Kiểm tra thâm nhập còn được gọi là pen test và người kiểm tra thâm nhập còn được gọi là penetration tester.

Người kiểm tra thâm nhập có thể tìm ra các lỗ hổng của hệ thống máy tính, ứng dụng web hoặc mạng thông qua kiểm tra thâm nhập.

Kiểm tra thâm nhập còn cho chúng ta biết liệu các biện pháp phòng thủ đang được sử dụng trên hệ thống có đủ mạnh để ngăn chặn bất kỳ hành vi vi phạm bảo mật nào hay không. Các báo cáo kiểm tra thâm nhập cũng đề xuất các biện pháp đối phó có thể được thực hiện để giảm thiểu nguy cơ hệ thống bị tấn công.

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

  • Lỗi thiết kế và phát triển: Có thể có sai sót trong quá trình thiết kế phần cứng và phần mềm. Những lỗi này có thể khiến dữ liệu quan trọng trong doanh nghiệp của bạn có nguy cơ bị lộ.
  • Cấu hình hệ thống kém: Đây là một nguyên nhân khác của lỗ hổng bảo mật. Nếu hệ thống được cấu hình kém, thì nó có thể tạo ra các kẽ hở mà qua đó kẻ tấn công có thể xâm nhập vào hệ thống và đánh cắp thông tin.
  • Con người: Các yếu tố con người như xử lý tài liệu không đúng cách, để tài liệu không cần giám sát, lỗi mã hóa, mối đe dọa từ nội bộ, chia sẻ mật khẩu qua các trang web lừa đảo, v.v. có thể dẫn đến vi phạm bảo mật.
  • Khả năng kết nối: Nếu hệ thống được kết nối với một mạng không an toàn (kết nối mở) thì nó sẽ nằm trong tầm ngắm của các hacker.
  • Độ phức tạp: Lỗ hổng bảo mật tăng lên tương ứng với mức độ phức tạp của hệ thống. Hệ thống càng có nhiều tính năng thì càng có nhiều khả năng hệ thống bị tấn công.
  • Mật khẩu: Mật khẩu được sử dụng để ngăn chặn truy cập trái phép. Chúng phải đủ mạnh để không ai có thể đoán được mật khẩu của bạn. Mật khẩu không được chia sẻ với bất kỳ ai bằng bất kỳ giá nào và mật khẩu nên được thay đổi định kỳ. Bất chấp những hướng dẫn này, đôi khi mọi người tiết lộ mật khẩu của họ cho người khác, hãy ghi chúng vào đâu đó và giữ những mật khẩu dễ đoán.
  • Đầu vào của người dùng: Chắc hẳn bạn đã nghe nói về SQL injection, Buffer Overflow, v.v. Dữ liệu nhận được dưới dạng điện tử thông qua các phương thức này có thể được sử dụng để tấn công hệ thống.
  • Quản lý: Quản lý bảo mật rất khó khăn và tốn kém. Đôi khi các tổ chức thiếu kinh nghiệm trong việc quản lý rủi ro và do đó lỗ hổng bảo mật được tạo ra bên trong hệ thống.
  • Nhân viên chưa có nhận thức về bảo mật: Điều này dẫn đến sai sót của con người và các lỗ hổng khác.
  • Truyền thông: Các kênh như mạng di động, internet, điện thoại mở ra phạm vi trộm cắp dữ liệu.

Tại sao phải Kiểm Tra Thâm Nhập?

Bạn chắc hẳn đã nghe nói về cuộc tấn công ransomware WannaCry bắt đầu vào tháng 5 năm 2017. Nó đã khóa hơn 2 vạn máy tính trên khắp 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 đã ảnh hưởng đến nhiều tổ chức lớn trên toàn cầu.

Với những cuộc tấn công mạng lớn và nguy hiểm đang diễn ra ngày nay, việc kiểm tra thâm nhập thường xuyên là điều cần thiết để bảo vệ hệ thống thông tin chống lại các vi phạm bảo mật.

Dưới đây là những lý do chính mà Kiểm Tra Thâm Nhập là yêu cầu bắt buộc:

  • Dữ liệu tài chính hoặc dữ liệu quan trọng phải được bảo mật trong khi chuyển dữ liệu giữa các hệ thống khác nhau hoặc qua mạng.
  • Nhiều khách hàng đang yêu cầu thực hiện kiểm tra thâm nhập như một phần của chu kỳ phát hành phần mềm.
  • Để bảo mật dữ liệu người dùng.
  • Để tìm các lỗ hổng bảo mật trong một ứng dụng.
  • Để khám phá các nguy cơ bảo mật trong hệ thống.
  • Để đánh giá tác động kinh doanh khi bị ảnh hưởng bởi các cuộc tấn công mạ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.

Việc xác định các vấn đề bảo mật trong mạng nội bộ và máy tính là rất quan trọng đối với bất kỳ tổ chức nào. Sử dụng những thông tin này có thể lập kế hoạch phòng thủ chống lại bất kỳ nỗ lực tấn công nào. Quyền riêng tư của người dùng và bảo mật dữ liệu là mối quan tâm lớn nhất hiện nay.

Cái gì cần được kiểm tra?

  • Phần mềm (Hệ điều hành, dịch vụ, ứng dụng)
  • Phần cứng
  • Mạng
  • Các tiến trình
  • Hành vi người dùng cuối

Các loại Kiểm Tra Thâm Nhập

Social Engineering Test

Trong phương pháp kiểm tra này, các nỗ lực được thực hiện để khiến một người tiết lộ thông tin nhạy cảm như mật khẩu, dữ liệu quan trọng trong kinh doanh, v.v. Những kiểm tra này chủ yếu được thực hiện thông qua điện thoại hoặc internet và nó nhắm mục tiêu vào một số bộ phận như hỗ trợ, nhân viên và quy trình nhất định.

Lỗi của con người là nguyên nhân chính gây ra lỗ hổng bảo mật. Các tiêu chuẩn và chính sách bảo mật nên được tất cả nhân viên tuân theo để tránh nỗ lực xâm nhập của phương thức kiểm tra này. Ví dụ về các tiêu chuẩn này bao gồm không đề cập đến bất kỳ thông tin nhạy cảm nào trong giao tiếp qua email hoặc điện thoại. Đánh giá bảo mật có thể được tiến hành để xác định và sửa chữa các sai sót trong quy trình làm việc.

penetration-testing-01.png

Web Application Test

Sử dụng các phần mềm Kiểm Tra Thâm Nhập tự động, người ta có thể xác minh xem ứng dụng có bị lộ các lỗ hổng bảo mật hay không. Nó kiểm tra lỗ hổng bảo mật của các ứng dụng web và chương trình phần mềm được đặt trong môi trường của mục tiêu.

penetration-testing-02.png

Physical Penetration Test

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

penetration-testing-03.png

Network Services Test

Đây là một trong những phương thức Kiểm Tra Thâm Nhập được thực hiện phổ biến nhất, trong đó các lỗ hổng trong mạng được xác định bằng thành phần đang được thực hiện trong các hệ thống trên mạng để kiểm tra xem có loại lỗ hổng nào. Nó có thể được thực hiện tại địa phương hoặc từ xa.

penetration-testing-04.png

Client-side Test

Mục đích của kiểm tra này là tìm kiếm và khai thác các lỗ hổng trong các phần mềm phía máy khách.

penetration-testing-05.png

Remote dial-up war dial

Các hacker tìm kiếm các modem trong môi trường xung quanh và cố gắng đăng nhập vào các hệ thống được kết nối thông qua các modem này bằng cách đoán mật khẩu hoặc sử dụng kỹ thuật "vét cạn".

penetration-testing-06.png

Wireless security test

Các hacker khám phá các điểm phát sóng hoặc mạng Wi-Fi công cộng và kết nối chúng để thực hiện các hành vi vi phạm bảo mật.

penetration-testing-07.png

Ngoài 7 loại kiểm tra mà chúng ta đã nói ở trên, chúng ta có thể phân loại pen test thành 3 phần như sau:

penetration-testing-08.png

Chúng ta hãy cùng thảo luận từng phương pháp kiểm tra này:

  • Black Box Penetration Testing: Người kiểm tra sẽ đánh giá hệ thống, mạng hoặc quy trình của mục tiêu mà không cần biết về các chi tiết bên trong. Họ chỉ có những thông tin cơ bản như URL hoặc tên công ty mà họ sử dụng để thâm nhập vào môi trường mục tiêu. Không có đoạn code nào được kiểm tra với phương thức kiểm tra này.
  • White Box Penetration Testing: Người kiểm tra được trang bị đầy đủ thông tin chi tiết về môi trường của mục tiêu như hệ thống, mạng, hệ điều hành, địa chỉ IP, mã nguồn, lược đồ, v.v. Điều đó sẽ giúp cho người kiểm tra dễ dàng kiểm tra code và tìm ra lỗi thiết kế & phát triển phần mềm hoặc phần cứng. Phương pháp kiểm tra này được xem như một sự mô phỏng của cuộc tấn công bảo mật trong nội bộ.
  • Grey Box Penetration Testing: Người kiểm tra sẽ bị giới hạn chi tiết về môi trường của mục tiêu. Phương pháp kiểm tra này được xem như một sự mô phỏng của cuộc tấn công bảo mật bên ngoài.

penetration-testing-09.png

Các kỹ thuật Kiểm Tra Thâm Nhập

Trong Kiểm Tra Thâm Nhập sẽ có 3 kỹ thuật chính được liệt kê dưới đây:

  • Kiểm Tra Thâm Nhập thủ công
  • Sử dụng các côn cụ kiểm tra thâm nhập tự động
  • Kết hợp cả 2 phương pháp trên

Kỹ thuật thứ 3 sẽ được sử dụng thường hơn để nhận dạng các loại lỗ hổng khác nhau.

Các công cụ Kiểm Tra Thâm Nhập

Các công cụ tự động có thể được sử dụng để xác định một số lỗ hổng tiêu chuẩn có trong ứng dụng. Các công cụ này sẽ quét code để kiểm tra xem có mã độc nào có thể dẫn đến vi phạm bảo mật tiềm ẩn hay không. Các công cụ này có thể xác minh các lỗ hổng bảo mật có trong hệ thống bằng cách kiểm tra các kỹ thuật mã hóa dữ liệu và tìm ra các giá trị được mã hóa cứng như tên người dùng và mật khẩu.

Các tiêu chí để lựa chọn các công cụ Kiểm Tra Thâm Nhập

  • Dễ dàng triển khai, cấu hình và sử dụng.
  • Quét hệ thống của bạn một cách dễ dàng.
  • Phân loại các lỗ hổng dựa trên mức độ nghiêm trọng cần sửa chữa ngay lập tức.
  • Có thể tự động xác minh các lỗ hổng.
  • Xác minh lại các khai thác được tìm thấy trước đó.
  • Có thể tạo ra các báo cáo và nhật ký lỗ hổng chi tiết.

Dưới đây là một số công cụ Kiểm Tra Thâm Nhập được sử dụng phổ biến (bao gồm miễn phí và có tính phí):

Các dịch vụ pen test có tính phí:

Kiểm Tra Thâm Nhập thủ công

Rất khó để có thể tìm thấy tất cả các lỗ hổng bảo mật bằng các công cụ tự động. Có một số lỗ hổng chỉ có thể được xác định bằng cách quét thủ công. Người kiểm tra thâm nhập có thể thực hiện các cuộc tấn công tốt hơn vào ứng dụng dựa trên kỹ năng và kiến ​​thức của họ về hệ thống bị xâm nhập. Các phương pháp như social engineering chỉ có thể được thực hiện bởi con người. Kiểm Tra Thâm Nhập thủ công bao gồm thiết kế, logic nghiệp vụ cũng như xác minh các đoạn code.

Quá trình thực hiện Kiểm Tra Thâm Nhập thủ công

  • Data collection: Nhiều phương pháp khác nhau bao gồm việc tìm kiếm bằng Google được sử dụng để lấy dữ liệu hệ thống của mục tiêu. Chúng ta cũng có thể sử dụng kỹ thuật phân tích code trang web để biết thêm thông tin về hệ thống, phần mềm và các phiên bản plugin. Có rất nhiều công cụ và dịch vụ miễn phí có sẵn trên thị trườ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 database, phiên bản phần mềm, phần cứng được sử dụng và các plugin bên thứ ba khác nhau được sử dụng trong hệ thống của mục tiêu.
  • Vulnerability Assessment: Dựa trên dữ liệu thu thập được trong bước đầu tiên, người ta có thể tìm ra điểm yếu bảo mật trong hệ thống của mục tiêu. Điều này giúp người kiểm tra thâm nhập có thể khởi động các cuộc tấn công bằng cách sử dụng các điểm yếu đã được xác định trong hệ thống.
  • Actual Exploit: Đây là bước quan trọng nhất trong quá trình này. Nó đòi hỏi các kỹ năng và kỹ thuật đặc biệt để phát động một cuộc tấn công vào hệ thống của mục tiêu. Những người kiểm tra thâm nhập có kinh nghiệm có thể sử dụng kỹ năng của họ để khởi động một cuộc tấn công vào hệ thống.
  • Result analysis and report preparation: Sau khi hoàn thành quá trình Kiểm Tra Thâm Nhập, các báo cáo chi tiết sẽ được chuẩn bị để thực hiện các hành động khắc phục. Tất cả các lỗ hổng đã được xác định và các phương pháp khắc phục được khuyến nghị sẽ được liệt kê trong các báo cáo này. Bạn có thể tùy chỉnh định dạng báo cáo lỗ hổng bảo mật (HTML, XML, MS Word hoặc PDF) theo yêu cầu từ tổ chức của bạn.

penetration-testing-10.png

Một số ví dụ về các trường hợp Kiểm Tra Thâm Nhập:

Các bạn hãy nhớ rằng đây không phải là các phương thức bắt buộc. Trong Pentest, mục tiêu của bạn là tìm ra các lỗ hổng bảo mật trong hệ thống. Dưới đây là một số trường hợp Kiểm Tra Thâm Nhập chung và không nhất thiết phải áp dụng cho tất cả các ứng dụng.

  1. Kiểm tra xem ứng dụng web có thể xác định các vụ tấn công spam trên các contact forms được sử dụng trên trang web.
  2. Máy chủ Proxy - Kiểm tra xem lưu lượng truy cập mạng do các thiết bị proxy theo dõi. Máy chủ Proxy gây khó khăn cho các hacker để có được các thông tin chi tiết nội bộ của mạng do đó bảo vệ hệ thống khỏi các cuộc tấn công bên ngoài.
  3. Hệ thống lọc spam email - Xác minh nếu lưu lượng truy cập email trong và ngoài mạng được lọc và không bị chặn. Nhiều ứng dụng email đi kèm với bộ lọc spam được tích hợp sẵn cần được cấu hình theo nhu cầu của bạn. Các quy tắc cấu hình này có thể được áp dụng cho các tiêu đề email, chủ đề hoặc nội dung.
  4. Tường lửa – Đảm bảo toàn bộ mạng hoặc máy tính được bảo vệ bằng tường lửa. Tường lửa có thể là phần mềm hoặc phần cứng để chặn truy cập trái phép vào hệ thống. Tường lửa có thể ngăn việc gửi dữ liệu bên ngoài mạng mà không được phép.
  5. Cố gắng khai thác lỗi ở tất cả các máy chủ, hệ thống máy tính để bàn, máy in và thiết bị mạng.
  6. Kiểm tra rằng tất cả tên người dùng và mật khẩu được mã hóa và chuyển qua kết nối bảo mật như https.
  7. Kiểm tra thông tin lưu trữ của cookies trong trang web. Không nên có định dạng dễ đọc.
  8. Kiểm tra các lỗ hổng cũ để kiểm tra xem có hiệu quả không.
  9. Kiểm tra xem có port nào đang mở trong mạng.
  10. Kiểm tra tất cả các thiết bị điện thoại.
  11. Kiểm tra bảo mật mạng wifi.
  12. Kiểm tra tất cả các phương thức của HTTP. Phương thức PUT và DELETE không nên được bật trên máy chủ web.
  13. Kiểm tra nếu mật khẩu đáp ứng các tiêu chuẩn bắt buộc của tổ chức. Mật khẩu phải dài ít nhất 8 ký tự chứa ít nhất một số và một ký tự đặc biệt.
  14. Tên người dùng không phải là admin hoặc administrator.
  15. Trang đăng nhập ứng dụng phải được khóa sau vài lần đăng nhập không thành công.
  16. Thông báo lỗi phải là chung và không đề cập chi tiết lỗi cụ thể như "tên người dùng không hợp lệ" hoặc "mật khẩu không hợp lệ".
  17. Kiểm tra các ký tự đặc biệt, thẻ html và script được xử lý đúng như giá trị đầu vào.
  18. Chi tiết hệ thống nội bộ không nên được tiết lộ trong bất kỳ lỗi hoặc thông báo nào.
  19. Thông báo lỗi tùy chỉnh phải được hiển thị cho người dùng trong trường hợp lỗi trang web.
  20. Kiểm tra khi sử dụng registry. Thông tin nhạy cảm không nên được giữ trong registry.
  21. Mọi files phải được quét trước khi tải lên máy chủ.
  22. Dữ liệu nhạy cảm không được thông qua trong url khi giao tiếp với các modules nội bộ khác nhau của ứng dụng web.
  23. Không nên có tên người dùng hoặc mật khẩu nào trong hệ thống.
  24. Kiểm tra tất cả các trường input với chuỗi đầu vào dài và không có khoảng trống.
  25. Kiểm tra chức năng đặt lại mật khẩu phải được bảo mật.
  26. Kiểm tra ứng dụng bằng kiểu tấn công SQL Injection.
  27. Kiểm tra ứng dụng bằng kiểu tấn công Cross Site Scripting.
  28. Validate các trường input phải được thực hiện ở phía server thay vì kiểm tra javascript ở phía ứng dụng.
  29. Các tài nguyên quan trọng trong hệ thống cần được phân cho những người được ủy quyền.
  30. Tất cả các nhật ký truy cập phải được duy trì với quyền truy cập đúng.
  31. Kiểm tra session người dùng khi đăng xuất.
  32. Kiểm tra việc duyệt thư mục bị vô hiệu hóa trên máy chủ.
  33. Kiểm tra rằng tất cả các ứng dụng và phiên bản cơ sở dữ liệu đều được cập nhật mới nhất.
  34. Kiểm tra trên thanh địa chỉ url để xem ứng dụng web có hiển thị bất kỳ thông tin không mong muốn nào không.
  35. Kiểm tra rò rỉ bộ nhớ và tràn bộ đệm.
  36. Kiểm tra lưu lượng truy cập mạng từ ngoài vào để tìm kiếm các cuộc tấn công bằng trojan.
  37. Kiểm tra xem hệ thống có an toàn không.
  38. Kiểm tra hệ thống hoặc mạng có được bảo đảm trong các cuộc tấn công từ DOS (Denial-of-Service). Hacker có thể nhắm mục tiêu mạng hoặc một máy tính duy nhất có request liên tục do tài nguyên trên hệ thống mục tiêu bị quá tải dẫn đến việc các dịch vụ bị tê liệt.
  39. Kiểm tra các cuộc tấn công HTML script.
  40. kiểm tra các cuộc tấn công COM & ActiveX.
  41. Kiểm tra các cuộc tấn công spoofing. Spoofing có thể làm giả địa chỉ ip, giả mạo id email, giả mạo ARP, giả mạo các liên kết, giả mạo id người gọi.
  42. Kiểm tra các cuộc tấn công khi chuỗi định dạng không được kiểm soát - một cuộc tấn công có thể gây ra ứng dụng này bị crash hoặc thực hiện một đoạn script độc hại trên đó.
  43. Kiểm tra cuộc tấn công XML Injection.
  44. kiểm tra cuộc tấn công Directory Traversal.
  45. Kiểm tra các trang lỗi đang hiển thị bất kỳ thông tin nào có thể hữu ích cho một hacker để xâm nhập vào hệ thống.
  46. Kiểm tra nếu có dữ liệu quan trọng như mật khẩu được lưu trữ trong các tập tin bí mật trên hệ thống.
  47. Kiểm tra xem ứng dụng có trả lại nhiều dữ liệu hơn không.

Các chuẩn Kiểm Tra Thâm Nhập

Các chứng chỉ trong Kiểm Tra Thâm Nhập

Kết luận

Với vai trò là người kiểm tra thâm nhập, bạn nên thu thập và ghi lại tất cả các lỗ hổng trong hệ thống. Đừng bỏ qua bất kỳ tình huống nào nếu xét rằng nó sẽ không được thực thi bởi người dùng cuối.

Next Post Previous Post
No Comment
Add Comment
comment url