7 cách một công cụ cũ vẫn dạy những bài học mới về bảo mật ứng dụng web

Thanh Hương, Phạm Thu Trang| 01/11/2018 14:29
Theo dõi ICTVietnam trên

Các ứng dụng web của bạn có an toàn không? WebGoat, một công cụ lâu đời tiếp tục có ích.

“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.

Code InjectionSending unauthorized SQL, LDAP, OS, or other commands to a receiving system through commands tied to websites (usually, as part of a URL) is this year's No. 1 security risk, just as it was in 2013. While the concept is simple, seeing injection in action can make it clear just how powerful an attack vector a browser's address bar can be.In many cases, injection works because an attacker sends a URL that should return an error, or null response, but instead is interpreted by the application and returns unauthorized data. A well-written and thoroughly vetted Web application will refuse to interpret these illicit instructions, but legacy code or quickly written applications can pass instructions to the back-end server and valuable information to the attacker.Understanding how code injection works - and what specific attacks look like - can help security professionals and developers alike better protect against the threat. It's the first lesson many people learn from WebGoat - and it remains a valuable study for everyone.(Image: OWASP)

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.

Cross-Site ScriptingCross-site scripting (XSS) is an attack that uses one browser or application against another, and it's everywhere. According to OWASP, 'XSS is the second most prevalent issue in the OWASP Top 10, and is found in around two-thirds of all applications.'XSS can look a bit like injection, though XSS takes the additional step of using a response from the command sent to one website to forward data or commands to an application on another server. It looks like a URL with an unusual string as part of the address, and the results can be devastating.As with injection, a well-written application should discard or ignore these badly formatted commands. Using such an attack against WebGoat and seeing the response demonstrates what is possible from the technique. Preventing XSS requires separating untrusted data from active browser content; WebGoat allows a security staff to work out what that separation looks like - and just how well it can work.(Image: OWASP)

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.

Credential InsecurityAlmost any Web application that deals with sensitive information will have a system for authenticating users and granting them privileges for access. But the industry has seen numerous incidents in which those credentials have been misapplied, mishandled, misused, or misconfigured - and the results have generally been misery for the organizations involved.WebGoat allows a user to experiment with various sorts of credential abuse - from credential stuffing, in which an attacker runs through common passwords to see if any are a fit - to mistimed logouts, in which a user can walk away from a session without logging out, leaving an authorized session open long enough for an attacker to take over.Of course, credential use may not be necessary if the access control method is broken. WebGoat has vulnerabilities that demonstrate what happens when an attacker bypasses access control checks by modifying the URL, internal application state, or HTML page, or simply uses a custom API attack tool.Having seen how these attacks work, security professionals can then check sites within their organizations to make sure the access methods are robust and the credentials securely handled. Several modules within WebGoat suggest curriculum that deal with credentials and authorization - they're areas that have many lessons to teach professionals.(Image: TBIT VIA Pixabay)

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 DockerWebGoat is traditionally run on a dedicated server, but there is a compose file that will start both WebGoat and WebWolf (more on that later) in Docker containers. The combination lets someone learn about the unique nature of applications deployed in containers.As with most containers, one of the advantages of WebGoat in Docker is that the deployment team makes sure the configuration file includes the latest version of the software. The other major advantage is that companies looking to explore containers can hit two learning areas with one deployment method.(Image: NAME OF SOURCE VIA Docker)

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.

WebGoat for Web ServicesIf your organization is using Microsoft Azure, Google S3, or Amazon Web Services (AWS) for its Web-based applications, you can still gain useful experience via WebGoat and its variants. Not only is it possible to build an instance of WebGoat on a cloud server, but at least one cloud-specific version of WebGoat for the cloud has been created.CloudGoat, a vulnerable Web application for AWS deployment, was developed by Rhino Security Labs so that developers and security professionals could explore issues such as privilege escalation and data exfiltration within the unique environment of the cloud.WebGoat code and installation instructions are available on GitHub. It must be emphasized that WebGoat and CloudGoat exercises and learning operations involve doing actions that can easily be seen as an attack and might be interpreted as being in violation of the provider's terms of service. Most cloud providers allow for testing with prior notification: Check with your cloud provider if you have any questions about whether using CloudGoat might set off warning bells in the cloud security operations center.(Image: alexlmx VIA stock.adobe.com)

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.

WebWolfWebGoat can be used by security professionals seeking knowledge from several different perspectives, including that of operations pros, defenders, and attackers. That flexibility means it can be difficult for someone first using the tool to set it up properly for a specific role. Enter WebWolf, a tool that can be used during some WebGoat exercises to better separate actions of a theoretical user from a theoretical attacker.WebWolf is available on GitHub with installation and usage instructions included inside the WebWolf package.History indicates that WebWolf will continue to evolve and develop. It is not mandatory, but for those getting started or teams looking to aid understanding in a mixed-role environment, it can be a useful tool for current deployment.(Image: bunmihail VIA stock.adobe.com)

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.

WebGoat for Your FirewallWebGoat is a solid tool on its own, but there's a use many security professionals overlook: It can evaluate the effectiveness of a firewall, unified threat management solution, or other piece of security infrastructure.WebGoat has two characteristics that make it useful in this role. First, the source and installation packages are easily available via GitHub, with a huge community of knowledge on how to install the software on just about any operating system platform. Next, WebGoat is chock-full of known vulnerabilities, each of which represents something that should be stopped by a good application or perimeter defense. If a scan from outside the defenses allows you to see or take advantage of the vulnerability, then you'll know that work still needs to be done on protection.And this brings up a point that needs to be explicitly stated: WebGoat should never, ever be deployed on a production server. It's a great tool for the security team in the lab, but it's also a great tool for criminals on a production system. The bad guys have enough tools at their disposal; don't hand them the Goat, as well.(Image: pingingz VIA stock.adobe.com)

Nổi bật Tạp chí Thông tin & Truyền thông
Đừng bỏ lỡ
7 cách một công cụ cũ vẫn dạy những bài học mới về bảo mật ứng dụng web
POWERED BY ONECMS - A PRODUCT OF NEKO