Introduction

Vulnerability

Một lỗ hổng là một khuyết điểm hoặc điểm yếu ở trong thiết kế, cài đặt hoặc vận hành và quản lý mà có thể bị khai thác nhằm vi phạm chính sách bảo mật của hệ thống.

Exploit

Là một đoạn code lạm dụng lỗ hổng.

Payload

Là một đoạn code chạy trên máy cần khai thác. Payload được sử dụng bởi exploit nhằm đạt được một mục tiêu nào đó chẳng hạn như là đọc các thông tin mật.

Proof of Concept (PoC)

Là các đoạn code hoặc chương trình được dùng để kiếm thử tính khả thi và tính có thể khai thác được của một lỗ hổng ở trên hệ thống1.

Về cơ bản, khái niệm vulnerability có rất nhiều định nghĩa từ các tổ chức khác nhau. Tuy nhiên, chúng không có quá nhiều sự khác biệt.

Có năm loại lỗ hổng chủ yếu:

  1. Operating System: các lỗi trong operating system, có thể dẫn đến leo thang đặc quyền.
  2. (Mis)Configuration-based. Ví dụ: website để lộ thông tin người dùng.
  3. Weak or Default Credentials. Ví dụ: người dùng sử dụng credentials mặc định mà không đổi.
  4. Application Logic.
  5. Human-Factor. Ví dụ: phising.

Các loại lỗ hổng cụ thể hơn:

Scoring

Có hai framework phổ biến giúp đánh giá các lỗ hổng:

  1. Common Vulnerability Scoring System (CVSS). Là một framework free và open source. Đánh giá các lỗ hổng dựa trên các yếu tố sau:
    1. Mức độ dễ dàng để khai thác lỗ hổng.
    2. Có tồn tại các exploits cho lỗ hổng này hay chưa.
    3. Lỗ hổng này cản trở CIA triad như thế nào.
  2. Vulnerability Priority Rating (VPR). Đánh giá các lỗ hổng dựa trên rủi ro của nó thay vì dựa trên mức độ ảnh hưởng như CVSS.

Databases

Các DB phổ biến về các lỗ hổng và exploit của các phần mềm, hệ điều hành, etc:

  1. NVD – National Vulnerability Database: là một trang web liệt kê tất cả các danh mục của lỗ hổng.
    • Các lỗ hổng được phân loại thành các CVE (Common Vulnerabilities and Exposures). Các CVE này có định dạng như sau: CVE-YEAR-IDNUMBER. Ví dụ, CVE của WannaCry là CVE-2017-0144.
    • Trang web này không giúp chúng ta tìm được các lỗ hổng liên quan đến một ứng dụng hoặc một kịch bản nào đó.
  2. Exploit DB: lưu các lỗ hổng theo tên và version của phần mềm cũng như là tên tác giả của PoC. Ngoài ra còn có chương trình searchsploit: là một bản offline copy của Exploit DB và được sử dụng thông qua CLI.
  3. Rapid7 DB: là sự kết hợp của vulnerability DB và exploit DB.
  4. Cũng có thể dùng GitHub vì đa số mọi người đều share PoC trên đó.

Automated Tools

Resources

Footnotes

  1. Tham khảo: https://www.codecademy.com/courses/introduction-to-cybersecurity/articles/xss

  2. Room trên TryHackMe: https://tryhackme.com/room/rpnessusredux