Đọc mã thủ công là một quá trình tốn thời gian. Nó cũng dễ bị lỗi vì rất dễ bỏ sót các chi tiết quan trọng. Với tư cách là nhà phát triển và người thử nghiệm thâm nhập, chúng tôi cần tìm cách tự động hóa quy trình này. SAST là một kỹ thuật có thể giúp chúng ta thực hiện nhiệm vụ này. Nó chỉ có thể sử dụng được cho các trường hợp sử dụng có quyền truy cập vào mã nguồn cho các dự án nguồn mở hoặc thử nghiệm thâm nhập hộp trắng. Tuy nhiên, nó có thể giúp bạn tìm được một số thành quả dễ dàng và tiết kiệm thời gian. SAST không phải là viên đạn bạc. SAST là gì? Kiểm tra bảo mật ứng dụng tĩnh (SAST) là một tập hợp con của phân tích mã tĩnh được sử dụng để tăng tính bảo mật và độ tin cậy của mã. SAST phát hiện các phần phụ thuộc cũ, phát hiện bí mật, lỗi logic dẫn đến lỗ hổng bảo mật, v.v. SAST bao gồm thử nghiệm ảnh hưởng thứ hai đến an ninh mạng, chẳng hạn như độ phức tạp của mã trực quan, mã không rõ ràng và các phương pháp thực hành không trực quan có thể dẫn đến lỗ hổng. Công cụ trong thực tế Các công cụ SAST thường là các công cụ so khớp mẫu biểu thức chính quy trên các steroid để tìm kiếm các lỗ hổng đã biết trong mã. Ví dụ: một công cụ SAST có thể tìm kiếm việc sử dụng , hoặc trong mã Python, các hàm này có thể được sử dụng để thực thi mã tùy ý. eval exec pickle Hack và SAST Tôi sẽ chia cách tiếp cận SAST của mình thành ba loại: : Tôi sử dụng các công cụ như , để tìm các vectơ tấn công trong mã. Bạn thường có thể tìm thấy những hậu quả dễ xảy ra như đầu vào không được vệ sinh, mật mã kém hoặc thư viện dễ bị tấn công. Nhân tiện, phiên bản Semgrep PRO có nhiều quy tắc hơn; sẽ miễn phí nếu có không quá 10 nhà phát triển trong dự án. Phát hiện lỗ hổng Semgrep , Bandit Nodejsscan : , hoặc có thể giúp bạn tìm ra bí mật trong mã. Điều này rất quan trọng vì bí mật có thể được sử dụng để nâng cấp đặc quyền hoặc truy cập dữ liệu nhạy cảm. Thông thường, chuỗi kết nối cơ sở dữ liệu, khóa API hoặc mật khẩu được lưu trữ trong mã. Phát hiện bí mật Gitleaks Trufflehog Grep : Các công cụ như hoặc có thể giúp bạn tìm ra cấu hình sai. Cấu hình sai thường nằm trong tệp "cơ sở hạ tầng dưới dạng mã" (IaC) nhưng cũng có thể nằm trong chính mã đó. Một ví dụ sẽ là tệp soạn thảo docker bị định cấu hình sai làm hiển thị cơ sở dữ liệu trên internet. Để quét Dockerfiles, tôi khuyên bạn nên kết hợp và Cấu hình sai Checkov Trivy hadolint grype Thông tin thêm: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker Công cụ SAST không hoàn hảo. Họ sẽ cho bạn kết quả dương tính giả và âm tính giả. **Tuy nhiên, nó tiết kiệm được nhiều thời gian so với việc khai thác ngẫu nhiên một số ứng dụng. Tôi đã sử dụng các công cụ SAST trong các cuộc thi và cam kết thử nghiệm thâm nhập của mình. Nó giúp tôi bắt đầu với cơ sở mã và cho tôi một số gợi ý về nơi cần tìm các lỗ hổng. Cách huấn luyện sử dụng SAST trong hack Tôi khuyên bạn nên bắt đầu với . Nền tảng này đưa ra những thách thức, chẳng hạn như lấy mã nguồn và tìm lỗ hổng. Sau đó, khai thác chúng trên máy thật. Đây là một cách tuyệt vời để học cách sử dụng các công cụ SAST trong thực tế. Hack The Box Hoặc, nếu bạn là nhà phát triển, bạn có thể sử dụng các công cụ SAST trong quy trình CI/CD của mình. Bằng cách này, bạn có thể làm quen với các công cụ và kết quả của chúng. Đồng thời, bạn sẽ cải thiện tính bảo mật cho ứng dụng của mình. Đề xuất hướng dẫn Tôi đã chuẩn bị một danh sách hướng dẫn để giúp bạn bắt đầu với SAST và phát hiện bí mật. Những hướng dẫn này được viết như một phần luận án của tôi và là điểm khởi đầu tuyệt vời cho bất kỳ ai quan tâm đến các công cụ SAST. Làm thế nào để bắt đầu với việc phát hiện bí mật. Khi phát hiện bí mật, hãy nhớ: tin tặc biết được thì không phải là bí mật. Ngay cả những nhà phát triển dày dặn kinh nghiệm cũng có thể vô tình đẩy mật khẩu hoặc chuỗi kết nối vào bộ điều khiển nguồn từ xa. Sử dụng nhiều công cụ khác nhau, hướng dẫn này cung cấp các phương pháp nhanh chóng và dễ dàng để giảm thiểu rủi ro này. Cách tự động phát hiện bí mật Hướng dẫn này tập trung vào việc tìm hiểu cách phát hiện bí mật bằng cách sử dụng móc nối trước và quy trình CI/CD. Mặc dù mã chủ yếu tập trung vào GitLab nhưng phần cuối cùng cũng sẽ đề cập đến GitHub. Cách bắt đầu với đường ống SAST Hướng dẫn này phác thảo các bước để bắt đầu Kiểm tra bảo mật ứng dụng tĩnh (SAST) trong GitLab một cách hiệu quả. SAST là một quá trình sử dụng phân tích mã tĩnh để xác định các lỗ hổng tiềm ẩn. Cách bắt đầu với IaC SAST Bảng tóm tắt này giới thiệu các công cụ hữu ích để quét các tạo phẩm Cơ sở hạ tầng dưới dạng Mã (IaC) và cung cấp các ví dụ về cách tích hợp chúng vào quy trình CI/CD của bạn. Công cụ tùy chỉnh ở Golang Tôi đã tạo một công cụ tùy chỉnh trong Golang để giúp tôi nhanh chóng đối sánh các biểu thức chính quy với các cơ sở mã khổng lồ. Có một sự cân bằng vô hạn giữa độ chính xác và phương sai. Giả sử bạn cần nhiều sự khác biệt hơn và không bận tâm đến việc xem xét thủ công hơn. Trong trường hợp đó, bạn có thể thử , giống như nhưng phù hợp hơn để phát hiện bí mật (nhanh hơn trong các kho lưu trữ lớn hơn, đầu ra rõ ràng, bỏ qua một số phần mở rộng tệp). Hoặc bạn có thể sử dụng grep trực tiếp. trong kho lưu trữ chứ không phải công cụ bạn sẽ sử dụng. RegFinder grep Giá trị nhất là các biểu thức chính quy Sao chép kho này lưu trữ Chạy grep -n -r your_app/ -Ef regex_dir/general.txt Hoặc Chạy ./regfinder.elf -d your_app/ -f regex_dir/general.txt Thật đơn giản để mở rộng các mẫu biểu thức chính quy hiện có. Công cụ này không khả thi đối với các đường ống tự động. Tuy nhiên, nó rất hữu ích nếu bạn cần tìm một bí mật không chuẩn hoặc trong các đánh giá khác, chẳng hạn như đánh giá bảo mật, nơi dự kiến sẽ có nhiều công việc thủ công hơn. . Cảm ơn bạn đã đọc. Bình luận nếu bạn có kinh nghiệm tuyệt vời với các công cụ khác