Could the FORCED BROWSING be a case of the tester having an open browser on a form and then opening another browser? Because they are logged in under one browser session a second will see the login and not ask for credentials.
Fred -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Longwing, LJ CTR MDA/IC Sent: Monday, October 08, 2012 7:57 AM To: arslist@ARSLIST.ORG Subject: Re: Results of a application pen-test - need to close holes Dan, 1 - Privilege Escalation - I can't speak to the service catalog (I think that's by design)...but if you need the preference record to be only viewable by themselves, you could change the permission on field 1 to only allow the 'Submitter' group access. This isn't a case of privilege escalation, simply a case of being able to do something the evaluator felt they shouldn't be able to do 2 - Improper Error Handling - Yes and No...I vaguely understand the concern, but I'm not entirely seeing the 'attack vector' based on the content of the messages 3 - No Session Timeout - Already addressed 4 - Concurrent User Sessions - Already addressed 5 - Forced Browsing - I'm not familiar with the ability to get into forms without authentication, but you could look into applying a 'filter' to your tomcat 'arsys' context, thus enabling forced authentication at the web server....ideally you would want this authentication to be automatic (SSO) so that you don't first need to authenticate to the context, then ALSO need to log onto the remedy app...that would simply be annoying to the users 6 - Autocomplete - Already addressed 7 - Banner Grabbing - I have no information about this one...sorry, hopefully someone else can assist. -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Dan Miller Sent: Sunday, October 07, 2012 4:15 AM To: arslist@ARSLIST.ORG Subject: Results of a application pen-test - need to close holes Hi forum, I hope you can help, and I am sorry in advance for the long post, but I am trying to get all this into one post, hoping that someone has gone through this exercise before. So basically, we had an application pen-test before releasing our remedy platform to the public internet. We got 7 things that we need to fix, some of them before we can go live, others that can wait a while. Summary: 1. Privilege Escalation 2. Improper Error Handling 3. No session time out 4. Concurrent User Sessions 5. Forced Browsing 6. Autocomplete feature 7. Banner Grabbing Below I have described them a little more with description, recommendation, but also the problem I have in getting them implemented. We are 18 months into our first ever Remedy journey, so security is something we have not really considered. Can you please help? 1. Privilege Escalation -------------------------------------- Description: ----------------- Privilege escalation in Remedy application allows a user to gain elevated access to resources that are meant a privileged user. It was observed that in Remedy a user can view / read other user’s Service catalogue and preference details. The privilege values should be checked from the database and not be stored in a client side cookie. Vulnerable Urls: https://<hostname>/arsys/forms/<server-mame>/SRS%3ACFGApplicationPreferences/Dialog+Console/?cacheid=aeabdc61&format=html https:// <hostname>/arsys/forms/<server-mame>/SRS%3AServiceRequestConsole/enduser/?cacheid=1bc6c61&format=html https:// <hostname >/arsys/atrium/ServiceCatalog.swf this means the user can get more rights than they are entitled too. In this case a test user was able to see other users preferences, this may need to go back to BMC if T&T are unable to resolve as it may be an application fault. Recommended fix is to enable server side authentication and not client side which is currently in place. Recommendation: ------------------------- It is strongly recommended to check the privilege values from the database before granting access to secured recourses applications. Problem: ------------ How do I even start with this one…. Is there something I am not doing in terms of application lock down? Is it something to do with object-list within mid-tier so URLs can be directly browsed to? 2. Improper Error Handling --------------------------------------- Description --------------- If a web application encounters an error condition it may need to display an appropriate error message. Sometimes these messages can be detailed enough to give away crucial information about the application. This information may include database schema/table names, user names, platform specific information etc. Applications giving out detailed error messages run the risk of exposing crucial information which can be used later to launch further attacks. Our Remedy installation seems to have been configured in an insecure way. Whenever the application encounters any kind of error condition (such as failed execution of an SQL query), an error message of failure SQL operation is sent back to the user’s browser. Example typical error: “The SQL database operation failed. : The data types text and varchar are incompatible in the equal to operator. (SQL Server 402) (ARERR 552)” Recommendation: ------------------------ In a live environment, application error messages should be kept as short as possible. Hence it is advisable that the error messages emanating from certain scripts be restricted. Only custom HTTP error messages should be displayed instead of the detailed ones. Problem: ------------ Again, not sure what to do here. I have not enabled anything special as far as I can see. I think we did set something to make the error appear in the bar rather than popping up, but other than that, can I disable error messages altogether for user-level remedy users? 3. No session time out Description: ---------------- this means the application session will never time out, in the case where a user was using a shared PC a session could be hi-jacked or stolen. Recommendation: ------------------------ Session timeout should be enabled. For web facing system session timeout should be 20/30 minutes, to protect customers. Problem: ------------ I am pretty sure this is a setting on a user by user basis. Is there a way to globally push a new timeout setting to all of the currently configured users? There is a session timeout in mid-tier but I don’t think that actually logs people out of remedy… 4. Concurrent User Sessions Description: ---------------- Concurrent login sessions allow multiple users to log into the application using a single user ID. This makes it difficult for the web application to maintain traceability of user activity. If concurrent sessions are allowed, there is a possibility that users may access the same account in parallel and a legitimate user might not be able to identify that his account is being accessed by an unauthorised user. In this case there would be loss of traceability of user activities. Recommendation: ------------------------ It is recommended to check the user’s logged in status. If the user ID and password supplied are correct, the system should check whether or not the user is already logged in. This is to ensure concurrent user sessions are not allowed. Problem: ------------ I cannot find a setting for this anywhere! And when googling, all I find is licensing information doh! 5. Forced Browsing Description: ---------------- Forced browsing is a process where it is possible to gain access to the restricted resources without first being authenticated or having the appropriate level of application access. The motive behind forced browsing is to try and enumerate and access resources that are not referenced by the application, but are still accessible. It was observed that https://service.btireland.com application by requesting the URL directly; an unauthenticated user could access the documents. There are no authentications and authorisation checks performed before providing access to the internal files. (Survey form) Vulnerable URL: https://<hostname>/arsys/forms/<servername>/SRM%3ASurvey/RequesterAnswer Recommendation: ------------------------ An application serving protected content should implement the authentication and authorisation logic on all the pages before access is granted to any user. Problem: ------------ Where do I even start on this one? I thought remedy were on top of this sort of thing… it is a little like the privilege escalation issue, where users can directly browse to pages 6. Autocomplete feature Description: ---------------- this means the computer stores usernames and passwords Recommendation: ------------------------ This should be disabled and should be an option in the application configuration. Problem: ------------ This is not a setting in remedy, so do we need to open up the JSP for login and set autocomplete or something? Or is there something in tomcat? 7. Information Disclosure through Banner Grabbing Description: ---------------- this means an attacker is able to find out information about the platform, such as webserver type, versions etc. Recommendation: ------------------------ This should be disabled and should be an option in the application configuration. This can be changed and should be, to display information not relating to the platform. Problem: ------------ I have added the “server=dans server” parameter to the connection string for tomcat, but I suspect there is a way to disable ANY banner, do you know how? There is probably a tomcat hardening guide somewhere _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"