Introduction
Before we begin the process of reviewing an application or component, we will need the following items to be provided to the Security Team
Initial Checklist
| Name | Salesforce SOAP proxy |
| Owner | Unknown User (neumj008) |
| Developers | Unknown User (rusha011); Darryl Dekok; Unknown User (jonac003) |
| Jira | https://jira.wdig.com/browse/DIWCPCT |
| Documentation | Service takes a SOAP request from the salesforce servers with the fields: username, password and ip. Only the password field is read (I believe static values will be used for the other fields), which is really an AuthZ session token. Using the token, a request to the DisneyID service is made and only the "loginAuthorized" value of the response is checked. Based on this the SOAP response is generated with either a "true" or "false" value. |
| Source Code | https://github.wdig.com/GXTools/salesforce-soap-proxy |
| Running Environments | As a SOAP endpoint hit: |
| Environment Summary and AID | Salesforce SOAP to REST Proxy.pdf |
| Operational Summary |
|
| Threat Model | Salesforce SOAP Proxy Threat Model.tm4 |
| Sample SOAP Call | SOAP Request <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:authentication.soap.sforce.com">
<soapenv:Header/>
<soapenv:Body>
<urn:Authenticate>
<urn:username></urn:username> <!-- ignored -->
<urn:password>M0ZuHf3BB5lvmgWCtEy8sQ</urn:password> <!-- Guest's AuthZ Token -->
<urn:sourceIp></urn:sourceIp> <!-- ignored -->
<!--You may enter ANY elements at this point-->
</urn:Authenticate>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:AuthenticateResult xmlns:ns1="urn:authentication.soap.sforce.com">
<ns1:Authenticated>false</ns1:Authenticated> <!-- true or false depending on AuthZ token validity -->
</ns1:AuthenticateResult>
</soapenv:Body>
</soapenv:Envelope>
|
