Loading
May 6, 2024By Harry Ha

Lỗ hổng bảo mật và cách viết báo cáo tốt

Lỗ hổng bảo mật là một điểm yếu hoặc lỗi xảy trong hệ thống, ứng dụng hoặc quy trình vận hành. Kẻ tấn công sẽ dùng lỗ hổng để xâm nhập hoặc tấn công vào hệ thống.

Lỗ hổng bảo mật

Lỗ hổng bảo mật xuất hiện do thiết kế không an toàn, lỗi lập trình, cấu hình sai, hoặc thậm chí là từ việc lỏng lẻo, sơ hở trong quản lý hoặc sử dụng hệ thống một cách không an toàn.

Khi kẻ tấn công khai thác một lỗ hổng bảo mật, hệ thống hoặc dữ liệu có thể bị rò rỉ do các truy cập trái phép (Tính bảo mật), bị sửa đổi một cách bất hợp pháp (tính toàn vẹn) hoặc cố tình bị xoá khiến chúng không còn truy cập được nữa (tính bảo mật). Đây cũng là 03 yếu tố tạo nên bộ ba nguyên tắc hay tam giác bảo mật CIA trong lĩnh vực bảo mật.

Mỗi lỗ hổng sẽ thuộc một nhóm lỗ hổng (OWASP Category) khác nhau theo OWASP. Còn theo MITRE thì mỗi lỗ hổng khi xảy ra sẽ thuộc một hoặc nhiều các nhóm điểm yếu (CWE) khác nhau.

Cách viết báo cáo lỗ hổng bảo mật

Để giảm thiểu rủi ro, việc kiểm tra và khắc phục lỗ hổng là một việc quan trọng. Là một Pentester, bạn cần miêu tả lỗ hổng mà bạn tìm được một cách rõ ràng, dễ hiểu và cụ thể. Việc trình bày này sẽ giúp các lập trình viên hoặc các bộ phận tiếp nhận nhanh chóng tái tạo lại lỗ hổng và khắc phục chúng một cách nhanh nhất.

Miêu tả lỗ hổng

lỗ hổng bảo mật

Cùng xét ví dụ CVE 2024-XXXX dưới đây, trong bản miêu tả ngắn gọn bạn cần thể hiện được các yếu tố sau. Và dựa vào đây, bạn có thể xây dựng cho mình một mẫu hoặc công thức để trình bày miêu tả một lỗ hổng bảo mật một cách dễ hiểu và nhanh chóng.

  • Lỗ hổng bảo mật bạn tìm ra thuộc nhóm điểm yếu (CWE) nào?
  • Lỗ hổng xảy ra ở Ứng dụng nào và phiên bản bao nhiêu của ứng dụng thì xuất hiện lỗi?
  • Để khai thác được lỗ hổng, Hacker cần quan tâm tới điều kiện gì đặc biệt?
    • Không cần đăng nhập (bất kỳ ai cũng có thể thực hiện được)
    • Cần tài khoản người dùng
    • Cần người dùng tương tác (One Click) hay không cần tương tác (Zero Click)
    • Cần tài khoản có quyền cao nhất (tài khoản admin hay quản trị)
  • Hậu quả xảy ra như nào nếu lỗ hổng bảo mật bị Hacker khai thác? Hay nói cách khác, Hacker có thể làm được gì, mức độ ảnh hưởng theo tam giác bảo mật CIA.
  • Vị trí bị lỗi ở file nào, dòng nào, đường dẫn và tham số nào

Trình bày Proof of Concept

Đọc xong miêu tả lỗ hổng, người tiếp nhận đã mường tượng lỗ hổng bảo mật mà Pentester nhắc tới là gì. Tuy nhiên, nhìn vào đó họ chưa thể tái tạo hoặc mô phỏng lại lỗ hổng ngay được. Họ phải thật sự biết cách tái tạo thì việc khắc phục lỗ hổng trở nên dễ dàng, nhanh chóngchính xác hơn.

Pentester lúc này phải viết Proof of Concept, hoặc các bước tái tạo (Reproduce) lại lỗ hổng. Nên áp dụng quy tắc Step-by-Step từng bước hướng dẫn. Hãy đặt tâm thế mình là người nhận báo cáo, cũng là người không có quá nhiều hiểu biết về các kỹ thuật tấn công. Hãy chỉ rõ các bước một cách cụ thể, như ví dụ dưới đây:

  • Bước 1: Truy cập ứng dụng …. bằng trình duyệt (đã được cài đặt Proxy). Sau đó sử dụng chức năng ….. Nếu hệ thống yêu cầu đăng nhập, hãy sử dụng tài khoản …. và mật khẩu là ….
  • Bước 2: Quan sát HTTP Request trong công cụ Burp Suite Pro. Xác định đường dẫn …. với HTTP Method là …. và URL (Endpoint) là ….
  • Bước 3: Thay đổi giá trị … trong tham số …. từ (Normal Value)…. thành (Manipulated Value) ….
  • Bước 4: Quan sát HTTP Response trả về, ta nhận thấy có sự thay đổi so với giá trị ban đầu.
    • Length ….
    • HTTP Status Code ….
    • Xuất hiện chuỗi …. trong HTTP Response ….
  • Bước 5: Sử dụng mã khai thác …. để thực hiện việc …. (lấy danh sách tên bảng, thu thập thông tin người dùng, đọc file …)

Nếu trong báo cáo có sử dụng ảnh minh hoạ, hãy cố gắng sử dụng các khoanh tròn, khoanh vuông hoặc gạch chân phần thay đổi hoặc dấu hiệu nhận biết. Việc này sẽ giúp người đọc dễ dàng nhận ra thông tin nào cần chú ý.

Phân loại mức độ nghiêm trọng (Risk Scale)

Mỗi lỗ hổng bảo mật có thể ảnh hưởng khác nhau đến hệ thống. Việc phân loại mức độ nghiêm trọng của lỗ hổng giúp các nhà quản trị đánh giá và ưu tiên xử lý vấn đề. Một Pentester mới vào nghề thì việc đánh giá một lỗ hổng sẽ phụ thuộc vào nhiều yếu tố cảm quan như kinh nghiệm, kĩ năng, trải nghiệm.

CVSS Risk Scale

Do mỗi lỗ hổng (Vulnerabilitiy) sẽ có điều kiện khai thác và mức độ ảnh hưởng khác nhau. Nên sẽ sử dụng công thức CVSS v3 hoặc v4 để tính ra điểm số. CVSS V3 sẽ sử dụng các yếu tố dưới đây để xác định điểm số. Để xác định các yếu tố, bạn sẽ trả lời các câu hỏi bằng việc lựa chọn CÓ-KHÔNG, hoặc đánh giá KHÔNG CÓ – ÍT – NHIỀU.

  • Khả năng khai thác (Exploitablility)
    • Lỗ hổng này được tấn công qua hình thức nào? (Attack Vector Metric)
    • Phương pháp khai thác lỗ hổng có phức tạp không? (Attack Complexity Metric)
    • Khi khai thác có cần quyền truy cập gì không? (Privilege Require Metric)
    • Để khai thác lỗ hổng thành công, người dùng có cần tương tác gì với hệ thống hay Hacker không? (User Interaction Metric)
  • Mức độ ảnh hưởng
    • Hậu quả của việc khai thác lỗ hổng có ảnh hưởng tới tính bảo mật không (Confidentiality Metric)
    • Ảnh hưởng tới tính toàn vẹn (Integrity Metric)
    • Ảnh hưởng tới tính sẵn sàng (Availability Metric)
  • Phạm vi ảnh hưởng (Scope)

CVSS sẽ sử dụng thang điểm 10 để đánh giá mức độ nghiêm trọng hoặc nguy hiểm của lỗ hổng. Mức độ nghiêm trọng của lỗ hổng theo cấp độ Thấp (Low), Trung bình (Medium), Cao (High) và Nghiêm trọng (Critical).

Khi trình bày một lỗ hổng, bắt buộc phải đưa ra mức độ nghiêm trọng. Mức độ này có thể được thể hiện bằng con số (0-10) hoặc Vector String như hình dưới.

Việc xác định mức độ nguy hiểm rất quan trọng. Vì nó ảnh hưởng tới độ ưu tiênphạm vi công việc phải thực hiện. Ví dụ theo tiêu chuẩn PCI-DSS

  • Các lỗ hổng mức độ từ High trở lên sẽ phải khắc phục ngay lập tức.
  • Một khi hệ thống liên quan tới thẻ bị thay đổi, phải đánh giá lại toàn bộ hệ thống

Harry Ha

Whitehat hacker, Founder at Cookie Hân Hoan, Co-founder at CyRadar, Senior Penetration Tester, OSCP, CPENT, LPT, Pentest+

svg

What do you think?

It is nice to know your opinion. Leave a comment.

Leave a reply

  • 01

    Lỗ hổng bảo mật và cách viết báo cáo tốt

Quick Navigation