The Salt Security platform captures a mirrored copy of all your API traffic and sends it to our big data engine for analysis. Where a Salt sensor is needed, it has low CPU and memory consumption and adds no latency since it doesn't sit inline. The sensor needs to see unencrypted traffic (after SSL termination) to enable our API analysis.
The following videos and instructions provide details on the various options to deploy the Salt Security Sensor and direct traffic to the Salt Security Service for analysis.
sudo yum install -y salt-linux-sensor-{SENSOR_VERSION}.x86_64.rpmsudo /usr/local/bin/salt-sensor start
sudo dpkg -i salt-linux-sensor-{SENSOR_VERSION}.deb ; sudo apt-get -f -y install
sudo /usr/local/bin/salt-sensor start
Once the Salt Security Sensor is deployed, verify the sensor status with the following command:
sudo /usr/local/bin/salt-sensor status
Edit the pod YAML file and add the snippet provided by Salt Security to the “containers” section to add the sensor as a sidecar in your Kubernetes cluster.
Redeploy the Pod:
kubectl apply -f <pod name="">.yaml</pod>
Verify the sidecar by querying the Salt Security Sensor for status:
kubectl exec -c salt-sensor — salt-sensor status
Download the Salt Security Sensor script for Docker. Salt Security can provide both a complete curl command as well as an https link.
$ curl -o salt-installation-docker-{SENSOR_VERSION}.sh “<salt-sensor-downloadable-link>”</salt-sensor-downloadable-link>
Edit the script and replace the placeholders with the information provided by Salt Security. Salt Security can also provide this file to you along with the proper values. By default, the sensor runs as a non-privileged container; see above for running as root.
#!/usr/bin/env bash
# Replace [[SALT_TOKEN]], [[SALT_BACKEND_HOST]]
# more environment variables are available for the sensor, see `salt-configure-options`
Prior to installing a new policy on Apigee, or modifying an existing one, the following items should be understood fully and addressed.
Salt Security will provide two javascript files that will be imported into the Apigee proxy. This will allow Salt Security services to receive all requests and responses to the API proxy.
The policies will access the Salt Security HTTP Mirroring API, which requires authentication to prevent unauthorized access. Authentication is done by the basic authentication scheme, which is sent in the request’s authorization header. For example:
Authorization: Basic {TOKEN Base64}
The token value is unique per customer, and will be provided by the Salt Security team. In addition, Salt Security will provide the proper host name.
This step configures the communication settings between Apigee and the Salt Security HTTP Mirroring API.
From the Policies List, select the Salt-Security-Request-Mirroring-Policy, and replace the empty <Properties/> entity with the values provided to you by Salt Security.Repeat this process for the Salt-Security-Response-Mirroring-Policy. Please note that the example below uses the response endpoint in the URL; it is otherwise identical to the example above.Be sure to click Save when all changes are complete.
In order to verify connectivity between Apigee Node and Salt Mirroring APIs, use hello RESTful API. To ease connectivity checks on Hybrid environments, the Hello RESTFul API will not force authentication. However if given, the Hello RESTful API will respond with an indication of whether authentication succeeded.
curl -k -X GET \
‘https://{SALT_MIRRORING_API_DOMAIN}:{SALT_MIRRORING_API_PORT}/api/vi/http/hello’ \-H ‘Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l’
HTTP/1.1 200 OK
It Works! Welcome To Salt Security HybridAuthentication Succeeded
The Salt Security SAM application is private and requires permission sharing by Salt Security. For that to happen, Salt Security requires the following information:
For Salt Security monitoring to work, INFO level CloudWatch logging needs to be enabled for the API. A retention period of one day usually is more than enough for this purpose.To achieve that, please navigate to your API page, click on “Stages,” select the “Logs/Tracing” tab and enable the following options:
Once you’ve supplied this information and Salt Security has confirmed that permission has been granted, you can access your AWS console. You should be able to see the salt-security-API-gateway-logs-consumer application under Serverless Application Repository -> Available applications -> Private applications.
Click on the application name to go to the application page and then scroll down to enter the required parameters.
Accessing the Salt Security HTTP mirroring API requires authentication to prevent unauthorized access. Authentication is done by a basic authentication scheme, which is sent via the request’s authorization header. Credentials information:
NOTE: The TOKEN value is unique per customer, and shall be provided by the Salt Security team.
Option 1: Mirroring from Azure API Management services → Salt Security Hybrid Server
In your private network firewalls/security settings, make sure traffic is allowed to the Salt Security Hybrid Server. Below is the list of ports required for communication from the Azure API Management services to the Salt Security Hybrid Server (NOTE: this is only required if traffic is being sent to the Salt Security Hybrid Server):
Option 2: Mirroring from Azure API Management services → Salt Cloud Service
Salt Security APIM integration is done by defining an APIM policy which includes inbound and outbound statements to mirror any given request and response. The policy definition can be applied at the endpoint, API, product, or global levels. Once defined, the policy will capture any incoming request and response handled by the APIM, and mirror it to Salt Security, by using Salt Security’s RESTFul API, over a secure HTTPS connection.
In order to operate, Salt Security APIM requires the appropriate environment variables to be set.The environment variables can be set in the API Management -> Named values Menu in the APIM dashboard.
To deploy the Salt Security APIM policy, select the appropriate policy to deploy. Policies can be configured globally or at the scope of a Product, API, or Operation. To begin configuring a policy, you must first select the scope at which the policy should apply.
Policy scopes are evaluated in the following order:
NOTE: Salt Security Should be Deployed at the Product or ALL API Scope.
Next, select Policies from the Policies menu and paste the Salt Security APIM Mirroring Policy under the product’s Policies tab.
NOTE: The Salt Security APIM Policy is provided by Salt Security and consists of a Send-One-Way-Request statement which is designed to transmit the inbound and outbound messages over a secured HTTPS RESTFul API.
Accessing the Salt Security HTTP mirroring API requires authentication to prevent unauthorized access. Authentication is done by a basic authentication scheme, which is sent via the request’s authorization header (base64-encoded):
NOTE: The TOKEN value is unique per customer, and shall be provided by the Salt Security team.
Option 1: Mirroring from Kong server → Salt Security Hybrid Server
In your private network firewalls/security settings, make sure traffic is allowed to the Salt Security Hybrid Server. Below is the list of ports required for communication from your Kong server to the Salt Security Hybrid Server.
NOTE: this is only required if traffic is being sent to the Salt Security Hybrid Server
Option 2: Mirroring from Kong server → Salt Cloud Service
tar -xzf kong-plugin-salt-sensor.tar.gz
luarocks install kong-plugin-salt-sensor-1.0.0-1.all.rock
kong restart -c kong.conf
curl -i -X POST \
–url http://:/services//plugins/ \
–data-urlencode ‘name=salt-sensor’ \
–data-urlencode ‘config.salt_domain=’ \
–data-urlencode ‘config.salt_backend_port=’ \
–data-urlencode ‘config.salt_token=’
Mule version 4.1.1 and later is required
Accessing the Salt Security HTTP mirroring API requires authentication to prevent unauthorized access. Authentication is done by a basic authentication scheme, which is sent via the request’s authorization header:
NOTE: The TOKEN value is unique per customer, and shall be provided by the Salt Security team.
Option 1: Mirroring from MuleSoft → Salt Security Hybrid Server
In your private network firewalls/security settings, make sure traffic is allowed to the Salt Security Hybrid Server. Below is the list of ports required for communication from your MuleSoft to the Salt Security Hybrid Server (NOTE: this is only required if traffic is being sent to the Salt Security Hybrid Server):
Option 2: Mirroring from MuleSoft → Salt Cloud Service
Salt Security Mirroring Policy consists of a maven package, which results in a deployable JAR file that contains the policy implementation.
The package contains:
See the official MuleSoft guide covering how to upload the policy to the exchange server: https://docs.mulesoft.com/api-manager
/2.x/custom-policy-uploading-to-exchange
Works with any Big IP version that supports clone pools.
The Salt Security virtual machine must receive unencrypted cloned traffic from the BIG-IP.
create /ltm pool SALT_POOL members add { SALT_VIRTUAL_MACHINE_IP:80 }
tmsh modify /ltm virtual <VIRTUAL_NAME_OF_APP_SERVER> clone-pools add { SALT_POOL }