“Tiêm” mã (Code injection)
Gửi các lệnh SQL, LDAP, OS trái phép hoặc các lệnh trái phép khác tới hệ thống nhận thông qua các lệnh gắn với các trang web (thường là một phần của URL) là rủi ro bảo mật số 1 của năm nay, giống như trong năm 2013.
Trong nhiều trường hợp, quá trình “tiêm” hoạt động vì kẻ tấn công gửi một URL lẽ ra phải trả về lỗi hoặc phản hồi rỗng, nhưng thay vào đó, nó lại được ứng dụng phiên dịch và trả về dữ liệu trái phép. Ứng dụng web được lập trình tốt và kiểm tra kỹ lưỡng sẽ từ chối phiên dịch các hướng dẫn bất hợp pháp này, nhưng những mã lâu đời hoặc các ứng dụng “ăn liền” có thể chuyển những hướng dẫn này tới máy chủ cuối và chuyển thông tin có giá trị cho kẻ tấn công.
Hiểu cách thức hoạt động của tiêm mã - và các cuộc tấn công cụ thể trông như thế nào - có thể giúp các chuyên gia bảo mật và các nhà phát triển bảo vệ chống lại mối đe dọa tốt hơn. Đây là bài học đầu tiên mà nhiều người học được từ WebGoat - và nó vẫn là một nghiên cứu có giá trị cho mọi người.
Cross-Site Scripting- Tấn công bằng cách chèn những đoạn script độc hại
Cross-site scripting (XSS) là một cuộc tấn công sử dụng một trình duyệt hoặc ứng dụng chống lại một trình duyệt hoặc ứng dụng khác và nó tồn tại ở khắp mọi nơi. Theo OWASP, "XSS là vấn đề phổ biến thứ hai trong 10 rủi ro bảo mật ứng dụng web nguy hiểm nhất và được tìm thấy trong khoảng hai phần ba tất cả các ứng dụng."
XSS có thể trông hơi giống tiêm mã mặc dù XSS có bước bổ sung bằng cách sử dụng phản hồi từ lệnh được gửi tới một trang web để chuyển tiếp dữ liệu hoặc lệnh tới một ứng dụng trên một máy chủ khác. Nó trông giống như một URL với một chuỗi ký tự bất thường là một phần của địa chỉ và hậu quả là hủy hoại rất nhiều thứ.
Giống như tiêm mã, một ứng dụng được lập trình tốt nên loại bỏ hoặc bỏ qua các lệnh được định dạng sai như vậy. Sử dụng một cuộc tấn công như vậy đối với WebGoat và xem phản ứng sẽ mô tả cách thức hoạt động của kỹ thuật này. Ngăn chặn XSS yêu cầu tách dữ liệu không đáng tin cậy khỏi nội dung trình duyệt đang hoạt động; WebGoat cho phép nhân viên an ninh biết được việc tách dữ liệu sẽ trông như thế nào - và cách nó có thể làm việc.
Sự mất an toàn thông tin đăng nhập
Hầu như bất kỳ ứng dụng web nào xử lý thông tin nhạy cảm sẽ có một hệ thống để xác thực người dùng và cấp cho họ quyền truy cập. Nhưng ngành công nghiệp đã thấy nhiều sự cố trong đó các thông tin đăng nhập đã bị áp dụng sai, xử lý sai, lạm dụng, hoặc định cấu hình sai, dẫn đến kết quả đau khổ cho các tổ chức liên quan.
WebGoat cho phép người dùng thử nghiệm với nhiều loại lạm dụng thông tin đăng nhập khác nhau - từ nhồi nhét thông tin xác thực, trong đó kẻ tấn công chạy qua các mật khẩu phổ biến để xem liệu có phù hợp hay không – cho tới nhầm lẫn thời điểm đăng nhập, trong đó người dùng có thể rời khỏi phiên sử dụng mà không đăng xuất, để lại một phiên được ủy quyền mở đủ lâu để kẻ tấn công tiếp quản.
Tất nhiên, việc sử dụng thông tin xác thực có thể không cần thiết nếu phương pháp kiểm soát truy cập bị phá vỡ. WebGoat có các lỗ hổng mô tả điều gì sẽ xảy ra khi kẻ tấn công vượt qua được các kiểm tra kiểm soát truy cập bằng cách sửa đổi URL, trạng thái ứng dụng nội bộ hoặc trang HTML hoặc đơn giản là sử dụng công cụ tấn công API tùy chỉnh.
Sau khi xem các cuộc tấn công này hoạt động như thế nào, các chuyên gia bảo mật có thể kiểm tra các trang web trong tổ chức của họ để đảm bảo các phương thức truy cập là mạnh mẽ và thông tin đăng nhập được xử lý một cách an toàn. Một số mô-đun trong WebGoat đề xuất chương trình giảng dạy liên quan đến thông tin đăng nhập và ủy quyền - chúng là những lĩnh vực có rất nhiều bài học để dạy cho các chuyên gia.
WebGoat Docker
WebGoat có truyền thống chạy trên một máy chủ chuyên dụng, nhưng có một tập tin sẽ khởi động cả WebGoat và WebWolf (sẽ nói thêm sau này) trong các thùng chứa Docker. Sự kết hợp này cho phép mọi người có thể tìm hiểu về bản chất độc đáo của các ứng dụng được triển khai trong vùng chứa.
Như với hầu hết các thùng chứa, một trong những ưu điểm của WebGoat trong Docker là nhóm triển khai đảm bảo tệp cấu hình có trong phiên bản phần mềm mới nhất. Ưu điểm chính khác là các công ty đang tìm cách khám phá các thùng chứa có thể tìm được hai khu vực học tập với một phương pháp triển khai.
WebGoat cho dịch vụ web
Nếu tổ chức của bạn đang sử dụng Microsoft Azure, Google S3 hoặc Amazon Web Services (AWS) cho các ứng dụng dựa trên web của mình, bạn vẫn có thể có được trải nghiệm hữu ích thông qua WebGoat và các tùy biến của nó. Không chỉ có thể xây dựng một biến thể của WebGoat trên một máy chủ đám mây mà còn có thể tạo ra được ít nhất một phiên bản WebGoat dành riêng cho đám mây.
CloudGoat, một ứng dụng Web dễ bị tấn công cho triển khai AWS, được phát triển bởi Rhino Security Labs để các nhà phát triển và chuyên gia bảo mật có thể khám phá các vấn đề như leo thang đặc quyền và xóa dữ liệu trong môi trường độc đáo của đám mây.
Mã WebGoat và hướng dẫn cài đặt có sẵn trên GitHub. Cần phải nhấn mạnh rằng các bài tập WebGoat và CloudGoat cùng các hoạt động học tập liên quan đến các hành động có thể dễ dàng được xem như là một cuộc tấn công và có thể được hiểu là vi phạm các điều khoản dịch vụ của nhà cung cấp. Hầu hết các nhà cung cấp đám mây cho phép thử nghiệm với thông báo trước: Kiểm tra với nhà cung cấp đám mây của bạn nếu bạn có bất kỳ câu hỏi nào về việc liệu sử dụng CloudGoat có thể gây ảnh hưởng tới trung tâm hoạt động bảo mật đám mây hay không.
WebWolf
WebGoat có thể được sử dụng bởi các chuyên gia bảo mật tìm kiếm kiến thức từ một số quan điểm khác nhau, bao gồm hoạt động, phòng ngự và tấn công. Tính linh hoạt đó có nghĩa là một người nào đó có thể gặp khó khăn khi lần đầu tiên sử dụng công cụ để thiết lập đúng cách cho một vai trò cụ thể. Khi vào WebWolf, một công cụ có thể được sử dụng trong một số bài tập WebGoat để phân biệt tốt hơn các hành động của một người dùng lý thuyết với một kẻ tấn công lý thuyết.
WebWolf có sẵn trên GitHub với các hướng dẫn cài đặt và sử dụng được bao gồm bên trong gói WebWolf.
Lịch sử chỉ ra rằng WebWolf sẽ tiếp tục tiến hóa và phát triển. Nó không phải là bắt buộc, nhưng đối với những người bắt đầu hoặc các nhóm tìm kiếm hỗ trợ cho hiểu biết trong một môi trường hỗn hợp vai trò, nó có thể là một công cụ hữu ích cho việc triển khai hiện tại.
WebGoat cho tường lửa của bạn
WebGoat là một công cụ thuần nhất, nhưng có rất nhiều chuyên gia bảo mật xem xét nó là một công cụ có thể đánh giá sự hiệu quả của tường lửa, giải pháp quản lý mối đe dọa thống nhất hoặc một phần cơ sở hạ tầng bảo mật khác.
WebGoat có hai đặc điểm làm cho nó hữu ích trong vai trò này. Đầu tiên, các gói nguồn và cài đặt có thể dễ dàng có sẵn thông qua GitHub, một cộng đồng kiến thức lớn về cách cài đặt phần mềm trên bất kỳ nền tảng hệ điều hành nào. Tiếp theo, WebGoat có đầy đủ các lỗ hổng đã biết, mỗi lỗ hổng trong số đó đại diện cho một cái gì đó cần được ngăn chặn bởi một ứng dụng tốt hoặc vành đai bảo vệ. Quét từ bên ngoài lớp phòng thủ cho phép bạn biết hoặc tận dụng lợi thế của lỗ hổng bảo mật, sau đó bạn sẽ biết mình còn nhiều việc phải làm để xây dựng lớp bảo vệ.
Và điều này dẫn đến một điểm cần được tuyên bố rõ ràng: WebGoat sẽ không bao giờ được triển khai trên một máy chủ sản xuất. Đó là một công cụ tuyệt vời cho đội an ninh trong phòng thí nghiệm, nhưng nó cũng là một công cụ tuyệt vời cho bọn tội phạm trên một hệ thống sản xuất. Những kẻ xấu có đủ công cụ theo ý muốn của chúng và đừng đưa cho chúng WebGoat.