secureCodeBox/secureCodeBox

View on GitHub
scanners/zap/examples/demo-nginx-automation-scan/findings.yaml

Summary

Maintainability
Test Coverage
# SPDX-FileCopyrightText: the secureCodeBox authors
#
# SPDX-License-Identifier: Apache-2.0

[
    {
        "name": "Content Security Policy (CSP) Header Not Set",
        "description": "Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.",
        "category": "Content Security Policy (CSP) Header Not Set",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "MEDIUM",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "3",
            "zap_count": "4",
            "zap_solution": "Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header, to achieve optimal browser support: \"Content-Security-Policy\" for Chrome 25+, Firefox 23+ and Safari 7+, \"X-Content-Security-Policy\" for Firefox 4.0+ and Internet Explorer 10+, and \"X-WebKit-CSP\" for Chrome 14+ and Safari 6+.",
            "zap_otherinfo": null,
            "zap_reference": "https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_Policyhttps://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.htmlhttp://www.w3.org/TR/CSP/http://w3c.github.io/webappsec/specs/content-security-policy/csp-specification.dev.htmlhttp://www.html5rocks.com/en/tutorials/security/content-security-policy/http://caniuse.com/#feat=contentsecuritypolicyhttp://content-security-policy.com/",
            "zap_cweid": "693",
            "zap_wascid": "15",
            "zap_riskcode": "2",
            "zap_pluginid": "10038",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/robots.txt",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/sitemap.xml",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                }
            ]
        },
        "id": "4edbf082-8bc0-4b7f-a2f0-11d5b9645614",
        "parsed_at": "2022-08-17T09:36:16.205Z"
    },
    {
        "name": "Missing Anti-clickjacking Header",
        "description": "The response does not include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options to protect against 'ClickJacking' attacks.",
        "category": "Missing Anti-clickjacking Header",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "MEDIUM",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "2",
            "zap_count": "2",
            "zap_solution": "Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's \"frame-ancestors\" directive.",
            "zap_otherinfo": null,
            "zap_reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options",
            "zap_cweid": "1021",
            "zap_wascid": "15",
            "zap_riskcode": "2",
            "zap_pluginid": "10020",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc",
                    "method": "GET",
                    "param": "X-Frame-Options",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/",
                    "method": "GET",
                    "param": "X-Frame-Options",
                    "attack": "",
                    "evidence": ""
                }
            ]
        },
        "id": "00bc3504-6425-4c02-a221-8b816cb0e075",
        "parsed_at": "2022-08-17T09:36:16.206Z"
    },
    {
        "name": "In Page Banner Information Leak",
        "description": "The server returned a version banner string in the response content. Such information leaks may allow attackers to further target specific issues impacting the product and version in use.",
        "category": "In Page Banner Information Leak",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "LOW",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "3",
            "zap_count": "2",
            "zap_solution": "Configure the server to prevent such information leaks. For example:Under Tomcat this is done via the \"server\" directive and implementation of custom error pages.Under Apache this is done via the \"ServerSignature\" and \"ServerTokens\" directives.",
            "zap_otherinfo": "There is a chance that the highlight in the finding is on a value in the headers, versus the actual matched string in the response body.",
            "zap_reference": "https://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/08-Testing_for_Error_Handling/",
            "zap_cweid": "200",
            "zap_wascid": "13",
            "zap_riskcode": "1",
            "zap_pluginid": "10009",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc/robots.txt",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                },
                {
                    "uri": "http://nginx.demo-targets.svc/sitemap.xml",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                }
            ]
        },
        "id": "1b771582-a675-4126-84cd-a846d2313deb",
        "parsed_at": "2022-08-17T09:36:16.206Z"
    },
    {
        "name": "Permissions Policy Header Not Set",
        "description": "Permissions Policy Header is an added layer of security that helps to restrict from unauthorized access or usage of browser/client features by web resources. This policy ensures the user privacy by limiting or specifying the features of the browsers can be used by the web resources. Permissions Policy provides a set of standard HTTP headers that allow website owners to limit which features of browsers can be used by the page such as camera, microphone, location, full screen etc.",
        "category": "Permissions Policy Header Not Set",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "LOW",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "2",
            "zap_count": "4",
            "zap_solution": "Ensure that your web server, application server, load balancer, etc. is configured to set the Permissions-Policy header.",
            "zap_otherinfo": null,
            "zap_reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policyhttps://developers.google.com/web/updates/2018/06/feature-policyhttps://scotthelme.co.uk/a-new-security-header-feature-policy/https://w3c.github.io/webappsec-feature-policy/https://www.smashingmagazine.com/2018/12/feature-policy/",
            "zap_cweid": "693",
            "zap_wascid": "15",
            "zap_riskcode": "1",
            "zap_pluginid": "10063",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/robots.txt",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/sitemap.xml",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": ""
                }
            ]
        },
        "id": "b73ae5d5-a4e7-42ce-a66f-5ed23c44e5f5",
        "parsed_at": "2022-08-17T09:36:16.206Z"
    },
    {
        "name": "Server Leaks Version Information via \"Server\" HTTP Response Header Field",
        "description": "The web/application server is leaking version information via the \"Server\" HTTP response header. Access to such information may facilitate attackers identifying other vulnerabilities your web/application server is subject to.",
        "category": "Server Leaks Version Information via \"Server\" HTTP Response Header Field",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "LOW",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "3",
            "zap_count": "4",
            "zap_solution": "Ensure that your web server, application server, load balancer, etc. is configured to suppress the \"Server\" header or provide generic details.",
            "zap_otherinfo": null,
            "zap_reference": "http://httpd.apache.org/docs/current/mod/core.html#servertokenshttp://msdn.microsoft.com/en-us/library/ff648552.aspx#ht_urlscan_007http://blogs.msdn.com/b/varunm/archive/2013/04/23/remove-unwanted-http-response-headers.aspxhttp://www.troyhunt.com/2012/02/shhh-dont-let-your-response-headers.html",
            "zap_cweid": "200",
            "zap_wascid": "13",
            "zap_riskcode": "1",
            "zap_pluginid": "10036",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                },
                {
                    "uri": "http://nginx.demo-targets.svc/",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                },
                {
                    "uri": "http://nginx.demo-targets.svc/robots.txt",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                },
                {
                    "uri": "http://nginx.demo-targets.svc/sitemap.xml",
                    "method": "GET",
                    "param": "",
                    "attack": "",
                    "evidence": "nginx/1.23.0"
                }
            ]
        },
        "id": "7fe25ab8-f8f1-4692-8bde-d25ba72c065e",
        "parsed_at": "2022-08-17T09:36:16.206Z"
    },
    {
        "name": "X-Content-Type-Options Header Missing",
        "description": "The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.",
        "category": "X-Content-Type-Options Header Missing",
        "location": "http://nginx.demo-targets.svc",
        "osi_layer": "APPLICATION",
        "severity": "LOW",
        "attributes": {
            "host": "nginx.demo-targets.svc",
            "port": "80",
            "zap_confidence": "2",
            "zap_count": "2",
            "zap_solution": "Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.",
            "zap_otherinfo": "This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.At \"High\" threshold this scan rule will not alert on client or server error responses.",
            "zap_reference": "http://msdn.microsoft.com/en-us/library/ie/gg622941%28v=vs.85%29.aspxhttps://owasp.org/www-community/Security_Headers",
            "zap_cweid": "693",
            "zap_wascid": "15",
            "zap_riskcode": "1",
            "zap_pluginid": "10021",
            "zap_finding_urls": [
                {
                    "uri": "http://nginx.demo-targets.svc",
                    "method": "GET",
                    "param": "X-Content-Type-Options",
                    "attack": "",
                    "evidence": ""
                },
                {
                    "uri": "http://nginx.demo-targets.svc/",
                    "method": "GET",
                    "param": "X-Content-Type-Options",
                    "attack": "",
                    "evidence": ""
                }
            ]
        },
        "id": "d6c3d54d-23a6-4217-89aa-4c43512316e3",
        "parsed_at": "2022-08-17T09:36:16.206Z"
    }
]