From 0ade6b1a529828c72d68ae2c42d17a33dd61586e Mon Sep 17 00:00:00 2001 From: JingLu5 Date: Fri, 7 Sep 2018 16:18:15 +0800 Subject: [PATCH] Add ModSecurity config guide This patch adds ModSecurity config guide. This patch also deploy the modsecurity and ext_authz filter to clover-gateway namespace. Change-Id: I5ab21e6337b8f8b839ddd028370df378686bd017 Signed-off-by: JingLu5 --- docs/release/configguide/imgs/istio_gateway.png | Bin 0 -> 3985370 bytes .../configguide/modsecurity_config_guide.rst | 294 +++++++++++++++++++++ ...r.yaml => ingressgateway_ext_authz_filter.yaml} | 6 +- samples/scenarios/modsecurity_all_in_one.yaml | 65 +++++ .../services/modsecurity/yaml/manifest.template | 2 + .../modsecurity/yaml/modsecurity-deployment.yaml | 1 + .../modsecurity/yaml/modsecurity-service.yaml | 1 + samples/services/modsecurity/yaml/render_yaml.py | 4 + 8 files changed, 370 insertions(+), 3 deletions(-) create mode 100644 docs/release/configguide/imgs/istio_gateway.png create mode 100644 docs/release/configguide/modsecurity_config_guide.rst rename samples/scenarios/{istio_ingressgateway_envoyfilter.yaml => ingressgateway_ext_authz_filter.yaml} (71%) create mode 100644 samples/scenarios/modsecurity_all_in_one.yaml diff --git a/docs/release/configguide/imgs/istio_gateway.png b/docs/release/configguide/imgs/istio_gateway.png new file mode 100644 index 0000000000000000000000000000000000000000..f96212e28fa8009a1324030c444f56866412c2ff GIT binary patch literal 3985370 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�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 80:31346/TCP 1d + +To verify the ext-authz Envoy filter is created, executing the command below: + +.. code-block:: bash + + $ istioctl get envoyfilter -n clover-gateway + +The listing below must include the following Envoy filter: + +.. code-block:: bash + + $ NAME KIND NAMESPACE AGE + ext-authz EnvoyFilter.networking.istio.io.v1alpha3 istio-system 1d + + +ModSecurity configuration +========================== + +OWASP ModSecurity CRS mode +--------------------------- + +The OWASP ModSecurity CRS can run in two modes: + +* **Anomaly Scoring Mode** - In this mode, each matching rule increases an +'anomaly score'. At the conclusion of the inbound rules, and again at the +conclusion of the outbound rules, the anomaly score is checked, and the blocking +evaluation rules apply a disruptive action, by default returning an error 403. + +* **Self-Contained Mode** - In this mode, rules apply an action instantly. Rules +inherit the disruptive action that you specify (i.e. deny, drop, etc). The first +rule that matches will execute this action. In most cases this will cause evaluation +to stop after the first rule has matched, similar to how many IDSs function. + +By default, the CRS runs in Anomally scoring mode. + +You can configurate CRS mode by editing the **crs-setup.conf** in the modsecurity-crs +container: + +.. code-block:: bash + + $ kubectl exec -t -i -n clover-gateway [modsecurity-crs-pod-name] -c modsecurity-crs -- bash + $ vi /etc/apache2/modsecurity.d/owasp-crs/crs-setup.conf + +Alert logging +------------- + +By default, CRS enables all detailed logging to the ModSecurity audit log. +You can check the audit log using the command below: + +.. code-block:: bash + + $ kubectl exec -t -i -n clover-gateway [modsecurity-crs-pod-name] -c modsecurity-crs -- cat /var/log/modsec_audit.log + +CRS Rules +--------- + +By default, Clover enables all OWASP CRS rules. Below is a short description of all enabled rules: + +* **REQUEST-905-COMMON-EXCEPTIONS** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-905-COMMON-EXCEPTIONS.conf + +Some rules are quite prone to causing false positives in well established software, +such as Apache callbacks or Google Analytics tracking cookie. This file offers +rules that will allow the transactions to avoid triggering these false positives. + +* **REQUEST-910-IP-REPUTATION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-910-IP-REPUTATION.conf + +These rules deal with detecting traffic from IPs that have previously been involved +with malicious activity, either on our local site or globally. + +* **REQUEST-912-DOS-PROTECTION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-912-DOS-PROTECTION.conf + +The rules in this file will attempt to detect some level 7 DoS (Denial of Service) +attacks against your server. + +* **REQUEST-913-SCANNER-DETECTION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-913-SCANNER-DETECTION.conf + +These rules are concentrated around detecting security tools and scanners. + + +* **REQUEST-920-PROTOCOL-ENFORCEMENT** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf + +The rules in this file center around detecting requests that either violate HTTP +or represent a request that no modern browser would generate, for instance missing +a user-agent. + +* **REQUEST-921-PROTOCOL-ATTACK** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-921-PROTOCOL-ATTACK.conf + +The rules in this file focus on specific attacks against the HTTP protocol itself +such as HTTP Request Smuggling and Response Splitting. + +* **REQUEST-930-APPLICATION-ATTACK-LFI** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf + +These rules attempt to detect when a user is trying to include a file that would +be local to the webserver that they should not have access to. Exploiting this type +of attack can lead to the web application or server being compromised. + +* **REQUEST-931-APPLICATION-ATTACK-RFI** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf + +These rules attempt to detect when a user is trying to include a remote resource +into the web application that will be executed. Exploiting this type of attack can +lead to the web application or server being compromised. + + +* **REQUEST-941-APPLICATION-ATTACK-SQLI** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-941-APPLICATION-ATTACK-SQLI.conf + +Within this configuration file we provide rules that protect against SQL injection +attacks. SQL attackers occur when an attacker passes crafted control characters +to parameters to an area of the application that is expecting only data. The +application will then pass the control characters to the database. This will end +up changing the meaning of the expected SQL query. + +* **REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf + +These rules focus around providing protection against Session Fixation attacks. + +* **REQUEST-949-BLOCKING-EVALUATION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf + +These rules provide the anomaly based blocking for a given request. If you are in +anomaly detection mode this file must not be deleted. + +* **RESPONSE-954-DATA-LEAKAGES-IIS** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf + +These rules provide protection against data leakages that may occur because of Microsoft IIS + + +* **RESPONSE-952-DATA-LEAKAGES-JAVA** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf + +These rules provide protection against data leakages that may occur because of Java + + +* **RESPONSE-953-DATA-LEAKAGES-PHP** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf + +These rules provide protection against data leakages that may occur because of PHP + + +* **RESPONSE-950-DATA-LEAKAGES** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-950-DATA-LEAKAGES.conf + +These rules provide protection against data leakages that may occur genericly + +* **RESPONSE-951-DATA-LEAKAGES-SQL** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf + +These rules provide protection against data leakages that may occur from backend +SQL servers. Often these are indicative of SQL injection issues being present. + +* **RESPONSE-959-BLOCKING-EVALUATION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-959-BLOCKING-EVALUATION.conf + +These rules provide the anomaly based blocking for a given response. If you are +in anomaly detection mode this file must not be deleted. + +* **RESPONSE-980-CORRELATION** +Configuration Path: /etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-980-CORRELATION.conf + +The rules in this configuration file facilitate the gathering of data about +successful and unsuccessful attacks on the server. diff --git a/samples/scenarios/istio_ingressgateway_envoyfilter.yaml b/samples/scenarios/ingressgateway_ext_authz_filter.yaml similarity index 71% rename from samples/scenarios/istio_ingressgateway_envoyfilter.yaml rename to samples/scenarios/ingressgateway_ext_authz_filter.yaml index 46f730c..0960a50 100644 --- a/samples/scenarios/istio_ingressgateway_envoyfilter.yaml +++ b/samples/scenarios/ingressgateway_ext_authz_filter.yaml @@ -2,7 +2,7 @@ apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: ext-authz - namespace: istio-system + namespace: clover-gateway spec: workloadLabels: app: istio-ingressgateway @@ -18,7 +18,7 @@ spec: filterConfig: http_service: server_uri: - uri: "http://modsecurity-crs.istio-system.svc.cluster.local" - cluster: "outbound|80||modsecurity-crs.istio-system.svc.cluster.local" + uri: "http://modsecurity-crs.clover-gateway.svc.cluster.local" + cluster: "outbound|80||modsecurity-crs.clover-gateway.svc.cluster.local" timeout: 0.5s failure_mode_allow: false diff --git a/samples/scenarios/modsecurity_all_in_one.yaml b/samples/scenarios/modsecurity_all_in_one.yaml new file mode 100644 index 0000000..aa92b13 --- /dev/null +++ b/samples/scenarios/modsecurity_all_in_one.yaml @@ -0,0 +1,65 @@ +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: modsecurity-crs + namespace: clover-gateway +spec: + replicas: 1 + selector: + matchLabels: + app: modsecurity-crs + template: + metadata: + labels: + app: modsecurity-crs + spec: + containers: + - name: modsecurity-crs + image: clover/clover-ns-modsecurity-crs + ports: + - containerPort: 80 + env: + - name: PARANOIA + value: '1' +--- +apiVersion: v1 +kind: Service +metadata: + name: modsecurity-crs + namespace: clover-gateway +spec: + type: NodePort + ports: + - port: 80 + name: http-modsecurity-crs + protocol: TCP + targetPort: 80 + selector: + app: modsecurity-crs +--- +apiVersion: networking.istio.io/v1alpha3 +kind: EnvoyFilter +metadata: + name: ext-authz + namespace: clover-gateway +spec: + workloadLabels: + app: istio-ingressgateway + filters: + - insertPosition: + index: FIRST + listenerMatch: + portNumber: 80 + listenerType: GATEWAY + listenerProtocol: HTTP + filterType: HTTP + filterName: "envoy.ext_authz" + filterConfig: + http_service: + server_uri: + uri: "http://modsecurity-crs.clover-gateway.svc.cluster.local" + cluster: "outbound|80||modsecurity-crs.clover-gateway.svc.cluster.local" + timeout: 0.5s + failure_mode_allow: false +--- diff --git a/samples/services/modsecurity/yaml/manifest.template b/samples/services/modsecurity/yaml/manifest.template index afeb9dc..2206e6d 100644 --- a/samples/services/modsecurity/yaml/manifest.template +++ b/samples/services/modsecurity/yaml/manifest.template @@ -3,6 +3,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: {{ deploy_name }} + namespace: {{ deploy_namespace }} labels: app: {{ deploy_name }} spec: @@ -26,6 +27,7 @@ apiVersion: v1 kind: Service metadata: name: {{ deploy_name }} + namespace: {{ deploy_namespace }} labels: app: {{ deploy_name }} spec: diff --git a/samples/services/modsecurity/yaml/modsecurity-deployment.yaml b/samples/services/modsecurity/yaml/modsecurity-deployment.yaml index 450ede5..1e88f30 100644 --- a/samples/services/modsecurity/yaml/modsecurity-deployment.yaml +++ b/samples/services/modsecurity/yaml/modsecurity-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: modsecurity-crs + namespace: clover-gateway spec: replicas: 1 selector: diff --git a/samples/services/modsecurity/yaml/modsecurity-service.yaml b/samples/services/modsecurity/yaml/modsecurity-service.yaml index 8548dca..7432630 100644 --- a/samples/services/modsecurity/yaml/modsecurity-service.yaml +++ b/samples/services/modsecurity/yaml/modsecurity-service.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: Service metadata: name: modsecurity-crs + namespace: clover-gateway spec: type: NodePort ports: diff --git a/samples/services/modsecurity/yaml/render_yaml.py b/samples/services/modsecurity/yaml/render_yaml.py index 54f8069..67622d6 100644 --- a/samples/services/modsecurity/yaml/render_yaml.py +++ b/samples/services/modsecurity/yaml/render_yaml.py @@ -22,6 +22,7 @@ def render_yaml(args): image_name=args['image_name'], image_tag=args['image_tag'], deploy_name=args['deploy_name'], + deploy_namespace=args['deploy_namespace'], http_port=args['http_port'], paranoia_level=args['paranoia_level'] ) @@ -48,6 +49,9 @@ if __name__ == '__main__': parser.add_argument( '--deploy_name', default='modsecurity-crs', help='The k8s deploy name to use') + parser.add_argument( + '--deploy_namespace', default='clover-gateway', + help='The k8s namespace to deploy pod and service') parser.add_argument( '--http_port', default='80', help='Analyze http traffic on this port') -- 2.16.6