Get in touch
or send us a question?
CONTACT

Các lỗ hổng tiết lộ thông tin – Information disclosure vulnerabilities

Chúng ta hiện đang sống trong một thời đại với công nghệ thông tin vô cùng phát triển. Cuộc cách mạng 4.0 đang biến đổi toàn thế giới nói chung và làm thay đổi từng thói quen, sinh hoạt sống của mỗi chúng ta nói riêng, đồng thời nó cũng tác động mạnh mẽ tới từng ngóc ngách của xã hội loài người. Những khái niệm mới được sinh ra có thể kể đến như công dân số, doanh nghiệp số, văn phòng điện tử, chính phủ điện tử, thành phố thông minh, … tất cả trở nên phổ biến, dẫn gần gũi và trở thành xu hướng tất yếu của loài người.

Các thông tin cá nhân, sở thích, thói quen sinh hoạt của mỗi con người, hay xa hơn nữa có thể kể đến như các dữ liệu trường học, y tế, doanh nghiệp, chính phủ, … đã trở thành một loại “tài sản” vô cùng giá trị và nhạy cảm. Đối với mỗi ứng dụng, sản phẩm web cũng vậy, chúng cũng chứa những thông tin “nhạy cảm” mà một khi bị tiết lộ cho kẻ xấu, có thể gây nên những tổn hại không thể lường trước.

What Is Information Disclosure Vulnerability ? - Free Learning Tech

1. Những thông tin nào được coi là “nhạy cảm”?

Có nhiều cách tiếp cận và khai thác các thông tin, dữ liệu từ một trang web. Để bạn đọc dễ hình dung, chúng ta có thể chia chúng theo các dạng:

  • – Thông tin liên quan tới con người: Các thông tin cá nhân của người dùng (người dùng thông thường, quản trị viên, hoặc một số người dùng vai trò khác) như: họ tên, số điện thoại, ngày sinh, địa chỉ, số thẻ ngân hàng, tên đăng nhập, mật khẩu, …
  • – Thông tin liên quan tới các công nghệ web được sử dụng: mã nguồn trang web, các ngôn ngữ sử dụng, thông tin, phiên bản các framework, database, …
    Ví dụ sử dụng extension Wappalyzer trong Google Chrome phát hiện một số công nghệ web đang sử dụng:
  • – Thông tin liên quan trực tiếp ứng dụng web: các đường dẫn nhạy cảm, các file log, file backup (tệp tin sao lưu), …

2. Những dữ liệu nhạy cảm thường “bị lộ” trong trường hợp nào?

2.1 Trực tiếp trong mã nguồn web

Một trong những nơi đầu tiên có thể tìm kiếm một số “thông tin thú vị” chính là mã nguồn các trang web. Tất nhiên đây chỉ là phần mã nguồn front-end cho phép hiển thị với người dùng chứ không phải toàn bộ mã nguồn. Tuy nhiên, chúng có thể chứa một số thông tin nhạy cảm của trang web như phiên bản công nghệ hiện đang sử dụng, hoặc một số lời nhắc, thông tin chú thích được các lập trình viên trao đổi với nhau mà … quên chưa xóa!
Ví dụ trường hợp sau, để tiện cho cả team developer sử dụng, tài khoản admin được comment trực tiếp trong source code nhưng chưa kịp xóa bỏ khi public sản phẩm tới người dùng:

Điều này hoàn toàn có thể xảy ra trong thực tế. Và để xem mã nguồn của một trang web, các bạn có thể sử dụng tổ hợp phím Ctrl + U, hoặc sử dụng DevTools với tổ hợp phím Ctrl + Shift + I, … Ngoài mã nguồn trang web, DevTools có thêm nhiều tùy chọn và thu được các thông tin khác.

2.2 Từ các công nghệ web sử dụng

Mỗi công nghệ web thường có những thư mục mặc định cũng như các thông báo lỗi riêng. Chẳng hạn, khi sử dụng công nghệ WordPress để xây dựng trang web thì mặc định đường dẫn tới trang đăng nhập admin có thể là:

Hoặc một số thông báo lỗi trong các công nghệ web sử dụng, ví dụ thông báo lỗi sau để lộ template được sử dụng là Handlebars, giúp kẻ tấn công thu hẹp phạm vi trong dạng tấn công Server-side Template Injection.

2.3 Từ chính cách hoạt động của trang web

Một số thông báo trả về cho người dùng có thể chứa những thông tin nhạy cảm. Chẳng hạn việc một người dùng nhập sai tên đăng nhập hoặc mật khẩu, dòng thông báo trả về chính xác như “Bạn đã nhập sai tên đăng nhập”, “Bạn đã nhập sai mật khẩu”, giúp kẻ tấn công có thể suy luận chính xác thông tin đang tìm kiếm.

3. Tầm ảnh hưởng của các lỗ hổng tiết lộ thông tin

3.1 Nguy hiểm mang lại

Các thông tin nhạy cảm tiết lộ thường sẽ tạo tiền đề để kẻ tấn công có thể thực hiện tấn công bằng những lỗ hổng khác. Chẳng hạn, một số thông tin nhạy cảm tiết lộ từ thông báo lỗi có thể là dấu hiệu cho những lổ hổng như SQL Injection, Server-side Template Injection, … Đối với một phần mã nguồn bị lộ giúp kẻ tấn công có thể tìm kiếm các cách khai thác trực tiếp trong source code, hoặc xây dựng một cuộc tấn công Deserialize, … Những phiên bản hệ điều hành, phiên bản công nghệ bị lộ có thể giúp kẻ tấn công tìm kiếm một số CVE (Common Vulnerabilities and Exposures) áp dụng với chính phiên bản đó.

3.2 Vai trò của thu thập thông tin trong Penetration Testing

Pentest, viết tắt của penetration testing (kiểm tra xâm nhập), là hình thức đánh giá mức độ an toàn của một hệ thống IT bằng các cuộc tấn công mô phỏng thực tế. Người xưa có câu: “Biết người biết ta, trăm trận trăm thắng”. Giai đoạn thu thập thông tin đóng vai trò vô cùng quan trọng trong quá trình pentest (thường áp dụng với pentest blackbox khi chưa có thông tin gì về mục tiêu).

Trong giai đoạn này, các pentester sẽ thu thập tất cả những thông tin cần thiết về đối tượng. Khi lượng thông tin thu thập được càng nhiều, cũng đồng nghĩa rằng chúng ta càng hiểu rõ về mục tiêu. Từ đó có thể xây dựng một chiến thuật, kế hoạch tấn công hợp lí, toàn diện, giảm thời gian và tiết kiệm công sức.

4. Một số công cụ hỗ trợ tìm kiếm các lổ hổng Information disclosure

Các lỗ hổng tiết lộ thông tin có thể xuất hiện ở bất kì đâu và rất đa dạng. Nếu chỉ tìm kiếm thủ công sẽ khó có thể thu thập đầy đủ các thông tin cần thiết. Bởi vậy, chúng ta có thể kết hợp tìm kiếm thủ công cùng với một số công cụ hỗ trợ, các công cụ tôi giới thiệu đều có ưu, nhược điểm riêng, tùy vào sở thích vào thói quen các bạn có thể lựa chọn những công cụ phù hợp với mình nhất!

4.1 Extension Wappalyzer của Google Chrome

Wappalyzer là một công cụ giúp phát hiện các công nghệ sử dụng bởi một trang web, ví dụ như: CMS trang web đang sử dụng, framework, nền tảng thương mại điện tử (ecommerce platform), các thư viện Javascript, …

Bên cạnh Wappalyzer còn có nhiều extension khác các bạn có thể tự mình khám phá thêm.

4.2 Một số tính năng được hỗ trợ trong Burp Suite

Một vài tính năng, công cụ giúp ích cho việc tìm kiếm các thông tin nhạy trong Burp Suite như:

  • – Tính năng Search (Trong tùy chọn Repeater): tìm kiếm một số từ khóa nhạy cảm như: SQL, Select, template, invalid, …
  • – Tính năng Find comments (Trong tùy chọn Target): hiển thị tất cả comments trong Response.
  • – Công cụ Discover content (Trong Engagement tools): click chuột phải chọn Engagement tools và sử dụng công cụ Discover content, công cụ giúp chúng ta quét các thư mục của trang web đang nhắm tới (targeting)

4.3 Một số phần mềm, công cụ scan khác

Với các phần mềm, công cụ thu thập thông tin có Nessus, Nuclei, Screaming Frog, …

Với scan thư mục thì điển hình có thể kể đến như Dirsearch hoặc Gobuster scan dựa trên các list thư mục đa dạng, …

5. Ngăn ngừa tiết lộ thông tin

  • – Trước hết, các nhà phát triển ứng dụng cần phân biệt được các thông tin thông thường và thông tin nhạy cảm.
  • – Chú ý thiết lập quyền truy cập nghiêm ngặt đối với vai trò của mỗi người dùng.
  • – Không để lộ các file backup, đường dẫn nhạy cảm.
  • – Lập trình viên cần xử lý tốt các trường hợp ngoại lệ có thể xảy ra.
  • – Luôn sử dụng và cập nhật các công nghệ áp dụng lên phiên bản mới nhất.
  • – Thường xuyên kiểm tra, rà soát sản phẩm.

Tài liệu tham khảo: