PeopleTools mitigates this vector through its definitional development infrastructure. When a page is developed in PeopleTools, the developer is rarely writing SQL, but placing the fields on the page. PeopleTools will generate the SQL with the appropriate size, type, and encoding.
However, PeopleTools does not restrict developers from writing their own SQL, frequently using the infamous SQL-Exec PeopleCode function. Therefore, it’s important that organizations incorporate strong change management techniques to review in detail any places where customizations are made with SQLExec functions.
PeopleTools protects against cross-site scripting by embedding a random token in each PeopleSoft page that is validated by servlets on the PeopleSoft web server. If the form doesn’t have the token or the token is rejected, the traffic is also rejected.
This vulnerability existed in very early PeopleTools versions (circa 2000), but was remediated quickly platform-wide with a PeopleTools update once the threat vector was discovered and hasn’t been a risk for at least 10 years.
Content Spoofing and Injection
Content spoofing and injection is a whole category of techniques for making unexpected modifications to HTTP traffic between the browser and the application. Examples include:
- Modifying the URL in unexpected ways
- Altering or removing HTTP Headers
- Altering or removing cookies
- Altering the HTML or XML content
A common technique followed by the bad guys is to install a proxy between the browser and the application, capture traffic, modify the different aspects of the traffic, and play back the results.
PeopleTools protects against spoofing and injection by acting as a single controller that issues and processes the HTTP traffic. Whenever an unexpected event occurs (such as an unexpected URL), it will either issue a security error (such as You are not authorized to access this component) or will terminate your session.
That said, there are techniques that some implementation decisions that customers can make that would allow an organization to circumvent these protections. These would include the following:
- Adding an HTTP header to the HTML to maintain the identity of the user for single signon. If the header is accessible to the end-user and Signon PeopleCode does not have anti-spoofing functionality, modifying the header could allow access without logging in.
- Utilizing the %GetRequest parameter with a SQL-Exec function. Because this function allows parameters to be embedded in the URL as a query string, improper use of it could open up a vulnerability
- Improper implementation of location-based security rules. Many organizations will implement location-based security by hiding URLs based on location (versus blocking them). Because any PeopleSoft page can be accessed directly from a URL, merely hiding navigation does not block access to the content.
Directory indexing is a threat vector where a person gets a web server to disclose the list of files and folders on it. In some cases, this can be used to determine how the application works behind the scenes, even to point of looking at the code that is running on the server.
PeopleSoft provides a few protections against this:
- The first is that all of the security, business and database logic runs on a server separate from the PeopleSoft web server. This means that gaining access to the web server does not provide access to the directories controlling how the application processes
- The second is that PeopleSoft has a number of ways in which it can be deployed in conjunction with a DMZ. One common option is to have a proxy server running in the DMZ where the web server itself is behind the corporate firewall.
The last threat vector we will discuss. From the context of this discussion, we will be covering information leakage as it relates to an external attacker trying to learn about how the system operates. Information Leakage can also be discussed from the perspective of an authorized user’s use of sensitive application data, which will be discussed in a future post.
Anybody familiar with PeopleSoft’s Control-J function is familiar with type of data that can be leaked. This page provides information about the version of PeopleTools, the PeopleSoft application, and the ports that are being used on the app servers. At the weblogic level, the weblogic console provides information about the java version being run, etc. Although it is great for troubleshooting issues in a development or test environment, an external person can utilize this to research known vulnerabilities for the versions being utilized to plan an attack.
Fortunately, PeopleSoft provides a configuration option in the web profile to turn off disclosure of this information, and the default PROD web profile has this setting made appropriately.-->
Put the Appsian Security Platform to the Test
Schedule Your Demonstration and see how the Appsian Security Platform can be tailored to your organization’s unique objectives