Giải mã SAST, DAST, IAST và RASP
Bảo mật ứng dụng hiệu quả phụ thuộc vào quy trình được xác định rõ ràng và một loạt các công cụ chuyên dụng để bảo vệ chống truy cập trái phép và tấn công. Bài viết này Bizfly Cloud sẽ cùng bạn tìm hiểu cách thức hoạt động của các công cụ kiểm thử bảo mật thiết yếu, đồng thời giải thích về khả năng tự bảo vệ ứng dụng trong thời gian chạy (RASP) và so sánh nó với các công nghệ kiểm thử bảo mật khác.
Kiểm thử bảo mật là một phần quan trọng trong chiến lược bảo mật ứng dụng và nên được tích hợp liền mạch vào vòng đời phát triển phần mềm bảo mật (SDLC), hoạt động như một biện pháp phòng thủ chủ động và liên tục chống lại các lỗ hổng trong suốt quá trình phát triển phần mềm.
Kiểm thử Bảo mật Ứng dụng Tĩnh (SAST)
Kiểm thử bảo mật ứng dụng tĩnh (SAST) là một công nghệ nổi tiếng và đã phát triển, được sử dụng để phân tích tĩnh mã nguồn cho các lỗ hổng tiềm ẩn đã biết và các phương pháp viết mã không an toàn mà không cần thực thi nó. Các công cụ SAST tận dụng các kỹ thuật và công nghệ đã được sử dụng trong trình biên dịch, chẳng hạn như phân tích từ vựng và ngữ nghĩa, kiểm tra kiểu, phân tích luồng điều khiển và dữ liệu và theo dõi vết bẩn.
Trong thập kỷ qua, các công cụ này đã phát triển nhanh chóng các kỹ thuật trình biên dịch này thành một tập hợp các phương pháp toàn diện và phức tạp hơn nhiều để phân tích tính bảo mật của mã.
Trong DevSecOps hiện đại, kiểm thử bảo mật phân tích tĩnh thường được thực hiện càng sớm càng tốt bằng cách tích hợp các công cụ SAST vào môi trường phát triển và đường dẫn xây dựng của nhà phát triển. Chúng là những công cụ bảo mật có giá trị để thiết lập cách thức viết mã tốt và các phương pháp phát triển bảo mật tổng thể.
Thách thức của Giải pháp SAST
Mặc dù các công cụ SAST hiện đại thể hiện hiệu quả cao trong việc xác định các lỗi viết mã nhưng chúng có những hạn chế trong việc xác định lỗi logic nghiệp vụ hoặc lỗi thiết kế. Những sai sót như vậy chỉ có thể được tìm thấy thông qua đánh giá mã bảo mật và mô hình hóa mối đe dọa. Ngoài ra, do thiếu khả năng hiển thị thời gian chạy, các công cụ SAST không phải lúc nào cũng chính xác trong kết quả của chúng, thường tạo ra dương tính giả.
Một thách thức lớn của các giải pháp SAST là các ứng dụng hiện đại không chỉ bao gồm mã nguồn ứng dụng. Trong môi trường phát triển hiện đại, mô hình "mọi thứ đều là mã" được áp dụng. Điều đó không chỉ bao gồm mã nguồn ứng dụng mà còn mở rộng đến cơ sở hạ tầng, hợp đồng thông minh, đường dẫn tích hợp liên tục và phân phối liên tục (CI/CD), quy trình làm việc của quy trình kinh doanh và tập lệnh khai báo. Phạm vi đa dạng của các tạo tác mã này đặt ra một thách thức đáng kể cho các công cụ SAST, vốn được thiết kế theo truyền thống để phân tích mã nguồn ứng dụng.
Một thách thức khác nảy sinh khi phân tích các cơ sở mã lớn, như các khối nguyên khối lớn, vì có thể mất vài giờ để hoàn thành quy trình. Tuy nhiên, nếu được định cấu hình để chỉ quét các thay đổi gia tăng, thì thời gian cần thiết để hoàn thành phân tích tĩnh giảm đáng kể xuống chỉ còn vài phút.
Công cụ và Giải pháp SAST
Trong thập kỷ qua, rất nhiều công cụ SAST cả nguồn mở và thương mại đã xuất hiện, mỗi công cụ có các bộ tính năng và khả năng khác nhau. Các tùy chọn công cụ miễn phí và nguồn mở đã trở nên phổ biến bao gồm, nhưng không giới hạn ở: Spotbugs, Bandit, Brakeman, Checkov, CodeQL, Semgrep, Snyk và SonarQube.
Về mặt thương mại, các giải pháp SAST cung cấp khả năng toàn diện, thường kết hợp các tính năng nâng cao như học máy, phân tích, quét bí mật, phân tích thành phần phần mềm, khuyến nghị khắc phục và tích hợp với môi trường phát triển.
Kiểm thử Bảo mật Ứng dụng Động (DAST)
Kiểm thử bảo mật ứng dụng động (DAST) là một công nghệ đã được thiết lập tốt được sử dụng để đánh giá tính bảo mật của các ứng dụng web và API thông qua các cuộc tấn công mô phỏng. Các công cụ DAST gọi các điểm nhập cảnh của ứng dụng giống như cách kẻ tấn công sẽ làm. Các công cụ DAST không phụ thuộc vào mã nguồn. Thay vào đó, chúng sử dụng các kỹ thuật trinh sát để tự động khám phá các điểm cuối của ứng dụng, tạo bản đồ bề mặt tấn công, bắt đầu thăm dò bằng cách gửi các yêu cầu được tạo thủ công cẩn thận và sau đó phân tích đầu ra cho các lỗ hổng tiềm ẩn.
Các công cụ DAST cung cấp các tính năng và kỹ thuật thường được sử dụng trong kiểm tra thâm nhập hoặc đánh giá bảo mật của các ứng dụng. Các kỹ thuật này bao gồm quét lỗ hổng, phân tích yêu cầu/phản hồi, brute force, tạo khai thác, khám phá bề mặt tấn công và các cuộc tấn công mô phỏng. Qua nhiều năm, các công cụ DAST đã nâng cao các tính năng này, cung cấp cách tiếp cận toàn diện và chi tiết hơn để xác định các lỗ hổng trong các ứng dụng web.
Thách thức của Giải pháp DAST
Do thiếu khả năng hiển thị mã nguồn, các công cụ DAST không phải lúc nào cũng chính xác trong kết quả của chúng, thường tạo ra dương tính giả. Chúng cũng không thể xác định vị trí chính xác của lỗ hổng trong mã. Khi đánh giá các ứng dụng quy mô lớn, các công cụ DAST thường mất vài giờ để hoàn thành kiểm thử bảo mật của chúng. Việc định cấu hình các công cụ DAST để chỉ quét các phạm vi ứng dụng, API hoặc thay đổi gia tăng cụ thể có thể giúp giảm bớt thách thức này, giảm thời gian cần thiết để tiến hành phân tích động.
Trong DevSecOps hiện đại, DAST thường được thực hiện muộn hơn trong vòng đời phát triển, thường là trong môi trường dàn dựng hoặc sản xuất. Việc tích hợp công cụ DAST vào đường dẫn CI/CD cũng là điều khả thi; tuy nhiên, nó nên được triển khai theo từng giai đoạn sau khi đảm bảo rằng cấu hình của công cụ DAST đã triển khai không tạo ra dương tính giả và không làm chậm đường dẫn đáng kể hơn. Vì những lý do này, nhiều nhóm phát triển đã chọn không tích hợp các công cụ DAST vào đường dẫn CI/CD của họ. Mặt khác, người kiểm tra thâm nhập thường bao gồm các công cụ DAST làm công cụ tiêu chuẩn trong bộ công cụ của họ.
Công cụ và Giải pháp DAST
Các tùy chọn miễn phí và nguồn mở đáng chú ý bao gồm, nhưng không giới hạn ở: ZAP, PortSwigger Burp Suite Community Edition, Nikto và Wapiti. Những công cụ này cung cấp các khả năng quét, kiểm tra và báo cáo cơ bản. Mặt khác, các giải pháp DAST thương mại cung cấp các tính năng nâng cao và mạnh mẽ hơn với nhiều tùy chọn cấu hình, tùy chỉnh chi tiết, thư viện và trình tạo tải trọng mở rộng, quy trình làm việc tự động và báo cáo chuyên nghiệp theo các tiêu chuẩn bảo mật, chẳng hạn như OWASP Top 10 hoặc PCI DSS.
Kiểm thử Bảo mật Ứng dụng Tương tác (IAST)
Kiểm thử bảo mật ứng dụng tương tác (IAST) là một cách tiếp cận sáng tạo để kiểm thử bảo mật ứng dụng, kiểm tra các lỗ hổng trong quá trình thực thi thực tế của ứng dụng với các yêu cầu bắt nguồn từ người dùng thực hoặc thử nghiệm tự động. Công nghệ mới hơn này sử dụng thiết bị để giám sát các ứng dụng đang chạy, cung cấp khả năng hiển thị trong thời gian thực về các vấn đề bảo mật trong mã.
Các giải pháp IAST không chỉ chủ động giám sát các yêu cầu và phản hồi HTTP được trao đổi với ứng dụng mà còn thu thập thông tin thời gian chạy trên phiên bản đang chạy. Mức độ hiển thị này cho phép giải pháp cung cấp thông tin chi tiết theo ngữ cảnh, loại bỏ hiệu quả mọi điểm mù và cải thiện độ chính xác phát hiện. Do đó, các công cụ IAST thể hiện tỷ lệ dương tính giả thấp đáng kể và cung cấp thông tin chi tiết nâng cao về các lỗ hổng bằng cách tương quan các sự cố đã xác định với các vị trí mã nguồn chính xác - điều mà các công cụ DAST không thể đạt được.
Các giải pháp IAST thường yêu cầu tích hợp vào môi trường CI/CD để tự động chạy tất cả các bộ thử nghiệm sẽ thực hiện các đường dẫn thực thi của hệ thống. Sự tích hợp này cho phép cung cấp thông tin về lỗ hổng và hướng dẫn khắc phục ngay lập tức ở giai đoạn đầu của SDLC.
Để sử dụng giải pháp IAST, một tác nhân thiết bị phải được triển khai trên nền tảng thời gian chạy của ứng dụng. Mục tiêu của tác nhân IAST là nhúng các mô-đun cảm biến được tạo đặc biệt vào mã ứng dụng thông qua thiết bị. Các mô-đun cảm biến này theo dõi trạng thái thời gian chạy của ứng dụng trong khi các bài kiểm tra đang chạy.
Thách thức của Giải pháp IAST
Điều quan trọng là phải nhấn mạnh rằng hiệu quả của các giải pháp IAST phụ thuộc vào việc liệu tất cả các đường dẫn mã có đang được thực hiện hoặc thực thi tích cực với các tải trọng tấn công thích hợp trong thời gian thử nghiệm hay không. Trong một kịch bản điển hình, các bài kiểm tra tiêu cực từ đầu đến cuối và trình quét DAST được sử dụng để gửi các tải trọng tấn công vào ứng dụng.
Trong khi đó, công cụ IAST giám sát các phần của ứng dụng trong khi xác thực xem tải trọng có phát hiện ra lỗ hổng hoặc khai thác thành công các lỗ hổng hay không. Đây là lý do tại sao các công cụ IAST có thể không cung cấp 100% độ bao phủ mã và hiệu quả của kết quả của chúng phụ thuộc rất nhiều vào độ bao phủ và khả năng của bộ thử nghiệm bảo mật và trình quét DAST đi kèm. Hạn chế này có thể dẫn đến những khoảng trống trong việc phát hiện lỗ hổng, đặc biệt trong các trường hợp mà một số phần nhất định của mã ứng dụng vẫn chưa được khám phá hoặc không được kích hoạt trong quá trình thử nghiệm.
Một nhược điểm khác của các công cụ IAST là chúng phụ thuộc vào ngôn ngữ lập trình do sự phụ thuộc của chúng vào việc sử dụng thiết bị cho nền tảng thời gian chạy.
Công cụ và Giải pháp IAST
Đặc biệt, dự án OWASP AppSensor xứng đáng được quan tâm như một công cụ IAST nguồn mở đầu tiên. Được triển khai dưới dạng thư viện, mục tiêu chính của nó là cung cấp hướng dẫn về cách kết hợp tính năng phát hiện xâm nhập ứng dụng thời gian chạy và cơ chế phản hồi tự động. Nó đóng vai trò là triển khai tham chiếu và không nhằm mục đích triển khai trực tiếp ở trạng thái hiện tại. Điều quan trọng cần lưu ý là quá trình phát triển tính năng của nó dường như đã ngừng hoạt động kể từ năm 2019.
Nhiều giải pháp bảo mật dựa trên thiết bị thương mại đã xuất hiện, mỗi giải pháp đóng góp các tính năng khác biệt trên tất cả các lớp của ngăn xếp ứng dụng web hiện đại. Các giải pháp IAST thương mại cung cấp khả năng phát hiện bảo mật độc đáo so với các công cụ kiểm thử bảo mật khác thiếu khả năng hiển thị mà thiết bị thời gian chạy cung cấp.
Hầu hết các giải pháp IAST thương mại đều cung cấp tích hợp với các môi trường phát triển tích hợp, tạo điều kiện thuận lợi cho việc phân tích bảo mật trong giai đoạn phát triển ứng dụng. Sự tích hợp này được chứng minh là có giá trị trong việc hỗ trợ các nhà phát triển với các nỗ lực khắc phục chính xác và hiệu quả để giải quyết các vấn đề bảo mật đã xác định. Một số giải pháp IAST mở rộng chức năng tích hợp của chúng để bao gồm các hệ thống SIEM, hệ thống theo dõi sự cố và bảng điều khiển tuân thủ và một số thậm chí còn cung cấp khả năng tạo tự động tường lửa ứng dụng web (WAF) hoặc quy tắc RASP.
Tự bảo vệ ứng dụng trong thời gian chạy (RASP)
RASP mở rộng các nguyên tắc của IAST, sử dụng những hiểu biết thu được từ giám sát thời gian chạy, nhưng nó tiến thêm một bước nữa bằng cách kết hợp khả năng tự bảo vệ trực tiếp trong ứng dụng. Trên thực tế, điều này có nghĩa là không giống như SAST, DAST và IAST, là các công nghệ kiểm thử được sử dụng để xác định các lỗ hổng trong các giai đoạn khác nhau của SDLC, RASP tập trung vào khả năng tự bảo vệ trong thời gian thực. Nó chủ động giám sát và phân tích việc thực thi ứng dụng và phản hồi các mối đe dọa bảo mật khi chúng xảy ra, biến nó thành một cơ chế phòng thủ chủ động hơn là một công cụ kiểm thử.
Tương tự như IAST, RASP sử dụng các tác nhân thiết bị móc vào nền tảng thời gian chạy để giám sát và phân tích hoạt động của ứng dụng. Không giống như các giải pháp phòng thủ khác, chẳng hạn như WAF, RASP vượt xa việc phân tích đầu vào và đầu ra bằng cách chủ động giám sát và đánh giá việc thực thi nội bộ và trạng thái của ứng dụng. IAST sử dụng thiết bị để giám sát việc thực thi thời gian chạy để xác định các lỗ hổng và cuộc tấn công, trong khi RASP, không giới hạn ở việc phát hiện, chủ động sửa đổi mã đang thực thi để ngăn chặn các cuộc tấn công và bảo vệ ứng dụng.
Phải nói rằng, không phải tất cả các giải pháp RASP đều triển khai cùng một loại cơ chế tự bảo vệ hoặc phân tích việc thực thi nội bộ của ứng dụng ở cùng mức độ chi tiết của mã. Các giải pháp RASP khác nhau có thể sử dụng các cách tiếp cận và thuật toán phát hiện đa dạng, đạt được các mức độ chính xác và hiệu quả khác nhau về phát hiện mối đe dọa trong thời gian thực, tỷ lệ dương tính giả và khả năng tự bảo vệ. Các công cụ RASP tận dụng những hiểu biết độc đáo được cung cấp bởi nền tảng thời gian chạy để vượt xa các kỹ thuật nhận dạng mẫu truyền thống, xác định hành vi bất thường và các cuộc tấn công bảo mật thực tế có thể không được bao phủ bởi các mẫu hoặc chữ ký đã biết.
Điều quan trọng là các giải pháp RASP có khả năng cung cấp khả năng tự bảo vệ trong toàn bộ ngăn xếp thời gian chạy chứ không chỉ lớp logic nghiệp vụ của ứng dụng. Điều này bao gồm bảo vệ môi trường thời gian chạy, thư viện tiêu chuẩn, thư viện của bên thứ ba, framework, máy chủ và phần mềm trung gian.
Ngoài ra, một số giải pháp RASP cung cấp tính năng vá lỗi ảo khi đang di chuyển cho các ứng dụng dễ bị tấn công. Điều này có nghĩa là chúng có thể tự động áp dụng các biện pháp kiểm soát hoặc giảm thiểu bảo mật để bảo vệ chống lại các lỗ hổng đã biết mà không yêu cầu ứng dụng phải được xây dựng lại hoặc khởi động lại. Bằng cách này, các giải pháp RASP giúp thu hẹp khoảng cách giữa việc phát hiện ra lỗ hổng zero-day và việc triển khai bản sửa lỗi vĩnh viễn, cung cấp một lớp bảo vệ ngay lập tức.
Thách thức của Giải pháp RASP
Vấn đề dương tính giả là rất quan trọng trong các giải pháp RASP vì có nguy cơ công cụ có thể chặn lưu lượng truy cập hợp pháp và tạo doanh thu, gây gián đoạn hoạt động bình thường của ứng dụng. Do tác động tiềm ẩn đến hoạt động kinh doanh và trải nghiệm của người dùng, cũng như nguy cơ mất lòng tin vào công cụ, việc giảm thiểu dương tính giả là một mối quan tâm đáng kể khi lựa chọn hoặc triển khai các giải pháp RASP. Việc đạt được sự cân bằng phù hợp giữa phát hiện mối đe dọa hiệu quả, tác động hiệu suất và tránh dương tính giả với cấu hình tối thiểu là điều cần thiết để triển khai RASP thành công vào môi trường sản xuất. Bằng cách sử dụng thiết bị cho nền tảng thời gian chạy, các giải pháp RASP có khả năng hiển thị duy nhất về mã, điều này cung cấp ngữ cảnh thời gian chạy cần thiết để đánh giá thông tin tình báo bảo mật và giảm thiểu dương tính giả.
Để đạt được khả năng hiển thị duy nhất này, các giải pháp RASP đưa các cảm biến chuyên dụng vào nền tảng thời gian chạy và thực hiện phân tích thời gian thực về thông tin chi tiết về thời gian chạy. Thách thức đối với các nhà cung cấp RASP là xác định các điểm chèn thích hợp cho các cảm biến này và chọn thuật toán phát hiện nào để phân tích thông tin chi tiết về thời gian chạy đó. Các quyết định thiết kế này cần được thực hiện cẩn thận để cung cấp sự bảo vệ với càng ít dương tính giả càng tốt trong khi vẫn giữ tác động hiệu suất ở mức thấp nhất có thể.