Rate this post

Trước khi bắt đầu kiểm tra bảo mật, việc hiểu cấu trúc của ứng dụng là điều tối quan trọng. Nếu không có sự hiểu biết kỹ lưỡng về bố cục của ứng dụng, không chắc nó sẽ được kiểm tra kỹ lưỡng.

Giới thiệu Information Gathering

Giới thiệu Information Gathering là quá trình thu thập thông tin từ các nguồn khác nhau để có được những kiến thức, dữ liệu và thông tin quan trọng về một cá nhân, tổ chức hoặc hệ thống cụ thể. Việc thu thập thông tin này có thể được thực hiện với mục đích nghiên cứu, phân tích, đánh giá rủi ro hoặc thực hiện các hoạt động an ninh mạng.

Xem thêm Map trong lập trình Dart

Information Gathering thường bao gồm việc tìm kiếm, thu thập và phân tích thông tin từ các nguồn khác nhau như cơ sở dữ liệu công khai, mạng xã hội, diễn đàn trực tuyến, công cụ tìm kiếm và các nguồn thông tin khác. Quá trình này có thể sử dụng các phương pháp tự động hoặc thủ công để thu thập thông tin từ các nguồn này.

Thông tin thu thập được từ quá trình Information Gathering có thể cung cấp cái nhìn tổng quan về mục tiêu, giúp xác định các lỗ hổng, rủi ro, hoặc điểm yếu trong hệ thống. Nó cũng có thể giúp xác định các nguồn đe dọa tiềm năng, xác định các mục tiêu tiềm năng cho tấn công, hoặc cung cấp thông tin hữu ích cho quá trình phân tích và đánh giá bảo mật.

Information Gathering là một phần quan trọng của quá trình xác định và đối phó với các mối đe dọa an ninh mạng. Nó giúp cung cấp thông tin cần thiết để đảm bảo an toàn và bảo mật cho các hệ thống và dữ liệu quan trọng.

Xem thêm Kiểm tra lỗ hổng bảo mật  JavaScript Execution

Phương pháp thu thập thông tin

Có nhiều phương pháp khác nhau để thu thập thông tin trong quá trình Information Gathering. Dưới đây là một số phương pháp thông dụng:

  1. Open Source Intelligence (OSINT): Sử dụng thông tin công khai từ các nguồn như trang web công cộng, cơ sở dữ liệu công khai, tài liệu công khai, báo chí, mạng xã hội và diễn đàn để thu thập thông tin.
  2. Kỹ thuật xâm nhập mạng xã hội (Social Engineering): Sử dụng kỹ thuật xâm nhập vào mạng xã hội để thu thập thông tin từ con người thông qua việc tương tác và xây dựng mối quan hệ.
  3. Quét mạng (Network Scanning): Sử dụng các công cụ và kỹ thuật để quét và thu thập thông tin về các hệ thống, máy chủ, dịch vụ và cổng mạng của mục tiêu.
  4. Kiểm thử ứng dụng web (Web Application Testing): Sử dụng các công cụ và kỹ thuật để kiểm tra và tìm lỗ hổng bảo mật trong các ứng dụng web, nhằm thu thập thông tin về hệ thống và các điểm yếu có thể bị khai thác.
  5. Sử dụng công cụ tìm kiếm: Sử dụng các công cụ tìm kiếm như Google, Bing để tìm kiếm thông tin về mục tiêu, bao gồm thông tin công khai, tài liệu, bài viết, hoặc bất kỳ thông tin nào liên quan.
  6. Phân tích tệp tin (File Analysis): Phân tích các tệp tin như tài liệu PDF, DOC, XLS, hình ảnh, video, mã nguồn, log để tìm kiếm thông tin ẩn, metadata hoặc các tín hiệu tiềm năng.
  7. Tương tác trực tiếp: Tương tác trực tiếp với các nguồn thông tin hoặc cá nhân có liên quan để thu thập thông tin từ các cuộc trò chuyện, cuộc phỏng vấn hoặc các nguồn thông tin đáng tin cậy.

Quá trình thu thập thông tin thường kết hợp nhiều phương pháp khác nhau để tối đa hóa việc thu thập thông tin và xác định các lỗ hổng, mối đe dọa và điểm yếu trong hệ thống.

Xem thêm Tìm hiểu tấn công Execution After Redirect (EAR)

Map Execution Paths

Map Execution Paths là quá trình xác định và tạo bản đồ các con đường thực hiện trong một hệ thống, ứng dụng hoặc quá trình cụ thể. Đây là một phần quan trọng trong việc phân tích bảo mật và tìm hiểu cách một hệ thống hoạt động.

Khi map execution paths, người thực hiện tập trung vào việc xác định các bước, chức năng hoặc quy trình mà hệ thống hoặc ứng dụng phải thực hiện để đạt được mục tiêu cụ thể. Điều này có thể bao gồm các quy trình xử lý, tương tác giữa các thành phần hệ thống, các phương thức truyền thông giữa các máy chủ và khách hàng, hay các tuyến đường đi qua các hệ thống mạng.

Quá trình map execution paths có thể bao gồm các bước sau:

  1. Xác định các điểm tiềm năng để xâm nhập: Xác định các điểm mà một kẻ tấn công có thể tìm cách xâm nhập vào hệ thống, chẳng hạn như các cổng mạng, giao diện người dùng, hay các điểm yếu khác.
  2. Phân tích kiến trúc hệ thống: Nghiên cứu cấu trúc và tổ chức của hệ thống hoặc ứng dụng, bao gồm các thành phần, máy chủ, giao diện, ứng dụng phụ thuộc và cách chúng tương tác với nhau.
  3. Xác định các vector tấn công có thể: Xác định các con đường mà một kẻ tấn công có thể sử dụng để xâm nhập hoặc tấn công vào hệ thống. Điều này có thể bao gồm việc tìm ra các lỗ hổng bảo mật, các phương thức xâm nhập, hay các điểm yếu mà kẻ tấn công có thể tận dụng.
  4. Tạo bản đồ Execution Paths: Xây dựng bản đồ chi tiết về các con đường thực hiện, bao gồm các quy trình, chức năng, tương tác và luồng dữ liệu trong hệ thống. Bản đồ này có thể giúp hiểu rõ cách hoạt động của hệ thống và cung cấp một cái nhìn tổng quan về các con đường mà kẻ tấn công có thể theo để tấn công.

Việc map execution paths giúp cung cấp hiểu biết sâu hơn về hệ thống và tìm ra các điểm yếu, rủi ro và phương pháp tấn công tiềm năng. Điều này giúp các chuyên gia bảo mật và nhà phát triển đưa ra các biện pháp bảo mật hiệu quả hơn và nâng cao khả năng phản ứng đối với các mối đe dọa mạng.

Xem thêm Information Components trong UI là gì ?

Cách kiểm tra Information Gathering – Map Execution Paths

Mục tiêu kiểm tra bảo mật

Lập bản đồ ứng dụng mục tiêu và hiểu các quy trình công việc chính.

Làm thế nào để kiểm tra

Trong thử nghiệm hộp đen, rất khó để kiểm tra toàn bộ cơ sở mã. Không chỉ vì người thử nghiệm không có cái nhìn về các đường dẫn mã thông qua ứng dụng, mà ngay cả khi họ có, để kiểm tra tất cả các đường dẫn mã sẽ rất tốn thời gian. Một cách để giải quyết vấn đề này là ghi lại những đường dẫn mã nào đã được phát hiện và thử nghiệm.

Có một số cách để tiếp cận việc kiểm tra và đo lường mức độ bao phủ của code:

Đường dẫn – kiểm tra từng đường dẫn thông qua một ứng dụng bao gồm thử nghiệm phân tích giá trị tổ hợp và ranh giới cho mỗi đường dẫn quyết định. Mặc dù cách tiếp cận này mang lại sự kỹ lưỡng, nhưng số lượng các đường dẫn có thể kiểm tra sẽ tăng lên theo cấp số nhân với mỗi nhánh quyết định.

Luồng dữ liệu (hoặc Phân tích vết mờ) – kiểm tra việc gán các biến thông qua tương tác bên ngoài (thông thường là người dùng). Tập trung vào việc lập bản đồ luồng, chuyển đổi và sử dụng dữ liệu trong một ứng dụng.

Race – kiểm tra nhiều trường hợp đồng thời của ứng dụng thao tác trên cùng một dữ liệu.

Việc đánh đổi xem phương pháp nào được sử dụng và mỗi phương pháp được sử dụng ở mức độ nào nên được thương lượng với chủ sở hữu ứng dụng. Các phương pháp tiếp cận đơn giản hơn cũng có thể được áp dụng, bao gồm hỏi chủ sở hữu ứng dụng về các chức năng hoặc phần mã mà họ đặc biệt quan tâm và cách có thể tiếp cận các đoạn mã đó.

Để chứng minh mức độ phù hợp của mã cho chủ sở hữu ứng dụng, người thử nghiệm có thể bắt đầu với một bảng tính và ghi lại tất cả các liên kết được phát hiện bằng cách thêu ứng dụng (theo cách thủ công hoặc tự động). Sau đó, người kiểm tra có thể xem xét kỹ hơn các điểm quyết định trong ứng dụng và điều tra xem có bao nhiêu đường dẫn mã quan trọng được phát hiện. Sau đó, những điều này sẽ được ghi lại trong bảng tính với URL, văn xuôi và mô tả ảnh chụp màn hình về các đường dẫn được phát hiện.

Đánh giá Code

Đảm bảo đủ độ bao phủ của code cho chủ sở hữu ứng dụng dễ dàng hơn nhiều với cách tiếp cận hộp xám và hộp trắng để kiểm tra. Thông tin được thu thập và cung cấp cho người kiểm tra sẽ đảm bảo đáp ứng các yêu cầu tối thiểu về phạm vi mã.

Nhiều công cụ Kiểm tra bảo mật ứng dụng động (DAST) hiện đại tạo điều kiện thuận lợi cho việc sử dụng tác nhân máy chủ web hoặc có thể được ghép nối với tác nhân bên thứ ba để theo dõi các chi tiết cụ thể về phạm vi ứng dụng web.

Xem thêm Infomation Gathering

Automatic Spidering

Trình thu thập dữ liệu tự động là một công cụ được sử dụng để tự động khám phá các tài nguyên (URL) mới trên một trang web cụ thể. Nó bắt đầu với một danh sách các URL để truy cập, được gọi là hạt giống, tùy thuộc vào cách Spider được khởi động. Trong khi có rất nhiều công cụ Spidering, ví dụ sau sử dụng Zed Attack Proxy (ZAP):

ZAP cung cấp các tùy chọn Automatic Spidering khác nhau, có thể tận dụng dựa trên nhu cầu của người thử nghiệm:

Công cụ

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now