{
"stig": {
"date": "2014-12-05",
"description": "All directives specified in this STIG must be specifically set (i.e. the server is not allowed to revert to programmed defaults for these directives).\n\nIncluded files should be reviewed if they are used. Procedures for reviewing included files are included in the overview document.\n\nThe use of .htaccess files are not authorized for use according to the STIG. However, if they are used, there are procedures for reviewing them in the overview document.\n\nThe Web Policy STIG should be used in addition to the Apache Site and Server STIGs in order to do a comprehensive web server review.",
"findings": {
"V-13686": {
"checkid": "C-33783r1_chk",
"checktext": "Query the SA to determine if there is a process for the uploading of files to the web site. This process should include the requirement for the use of a secure encrypted logon and secure encrypted connection.\n\nIf the remote users are uploading files without utilizing approved encryption methods, this is a finding.",
"description": "Logging in to a web server via an unencrypted protocol or service, to upload documents to the web site, is a risk if proper encryption is not utilized to protect the data being transmitted. An encrypted protocol or service must be used for remote access to web administration tasks.",
"fixid": "F-29426r1_fix",
"fixtext": "Use only secure encrypted logons and connections for uploading files to the web site.",
"iacontrols": [
"EBRP-1",
"EBRU-1"
],
"id": "V-13686",
"ruleID": "SV-33131r1_rule",
"severity": "high",
"title": "Web Administrators must only use encrypted connections for Document Root directory uploads.",
"version": "WG235 W22"
},
"V-13688": {
"checkid": "C-35801r1_chk",
"checktext": "To verify the log settings:\n\nDefault Windows location: :\\Program Files\\Apache Group\\Apache2\\logs\\access.log or :\\Program Files\\Apache Software Foundation\\Apache2.2\\logs\\access.log.\n\nIf these directories do not exist, you can search the web server for the httpd.conf config file to determine the location of the logs.\n\nItems to be logged are as shown in this sample line in the httpd.conf file:\n\nLogFormat \"%a %A %h %H %l %m %s %t %u %U \\\"%{Referer}i\\\" \" combined\n\nIf the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.",
"description": "The use of log files is a critical component of the operation of the Information Systems (IS) used within the DoD, and they can provide invaluable assistance with regard to damage assessment, causation, and the recovery of both affected components and data. They may be used to monitor accidental or intentional misuse of the (IS) and may be used by law enforcement for criminal prosecutions. The use of log files is a requirement within the DoD.",
"fixid": "F-13116r1_fix",
"fixtext": "Configure the web server to ensure the log file data includes the required data elements.",
"iacontrols": [
"ECAR-1",
"ECAR-2",
"ECAR-3"
],
"id": "V-13688",
"ruleID": "SV-28654r1_rule",
"severity": "medium",
"title": "Log file data must contain required data elements.",
"version": "WG242 W22"
},
"V-13689": {
"checkid": "C-35802r1_chk",
"checktext": "Determine permissions for log files\n\nFind the httpd.conf configuration file to determine the location of the log files. The location is indicated at the \"ServerRoot\" directive. The log directory is a sub-directory under the ServerRoot. \n\nex. :\\Apache Group\\Apache2\\logs or :\\Apache Software Foundation\\Apache2.2\\logs\n\nAfter locating the logs, use the Explorer to move to these files and examine their properties: \n\nProperties >> Security >> Permissions. \n\nAdministrators: Read\nAuditors: Full Control\nWeb Managers: Read\nWebServer Account: Read/Write/Execute\n\nIf anyone other than the Auditors, Administrators, Web Managers, or the account that runs the web server has access to the log files, this is a finding.",
"description": "A major tool in exploring the web site use, attempted use, unusual conditions and problems are the access and error logs. In the event of a security incident, these logs can provide the SA and Web Manager with valuable information. Because of the information that is captured in the logs, it is critical that only authorized individuals have access to the logs.",
"fixid": "F-31043r1_fix",
"fixtext": "To ensure the integrity of the data that is being captured in the log files, ensure that only the members of the Auditors group, Administrators, and the user assigned to run the web server software is granted permissions to read the log files.",
"iacontrols": [
"ECTP-1"
],
"id": "V-13689",
"ruleID": "SV-40832r1_rule",
"severity": "medium",
"title": "Access to the web server log files must be restricted to Administrators, the user assigned to run the web server software, Web Manager, and Auditors.",
"version": "WG255 W22"
},
"V-13694": {
"checkid": "C-35808r1_chk",
"checktext": "Open the httpd.conf file. \n\nSearch for an uncommented LoadModule ssl_module directive statement.\n\nIf this statement is found commented (i.e. disabled), this is a finding.\n\nSearch the httpd.conf file for the following uncommented directives: SSLProtocol & SSLEngine\n\nFor all enabled SSLProtocol directives ensure they are set to \u201cTLSv1\u201d. If the SSLProtocol directive is not set to TLSv1, this is a finding.\n\nFor all enabled SSLEngine directives ensure they are set to \u201con\u201d.\n\nBoth the SSLProtocol and SSLEngine directives must be set correctly or this is a finding\n\nNOTE: In some cases web servers are configured in an environment to support load balancing. This configuration most likely utilizes a content switch to control traffic to the various web servers. In this situation, the TLS certificate for the web sites may be installed on the content switch versus the individual web sites. This solution is acceptable as long as the web servers are isolated from the general population LAN. We do not want users to have the ability to bypass the content switch to access the web sites.",
"description": "Transport Layer Security (TLS) is optional for a public web server. However, if authentication is being performed, then the use of the TLS protocol is required.\n\nWithout the use of TLS, the authentication data would be transmitted unencrypted and would become vulnerable to disclosure. Using TLS along with DoD PKI certificates for encryption of the authentication data protects the information from being accessed by all parties on the network. To further protect the authentication data, the web server must use a FIPS 140-2 approved TLS version and all non-FIPS-approved SSL versions must be disabled.\n\nFIPS 140-2 approved TLS versions include TLS V1.0 or greater. NIST SP 800-52 specifies the preferred configurations for government systems.\n",
"fixid": "F-31049r1_fix",
"fixtext": "Edit the httpd.conf file to load the ssl_module; set the SSLProtocol to TLSv1; and set the SSLEngine to On.",
"iacontrols": [
"ECCT-1",
"ECCT-2"
],
"id": "V-13694",
"ruleID": "SV-36729r2_rule",
"severity": "medium",
"title": "Public web servers must use TLS if authentication is required.",
"version": "WG342 W20"
},
"V-15334": {
"checkid": "C-35811r1_chk",
"checktext": "Review the web site to determine if HTTP and HTTPs are used in accordance with well known ports (e.g., 80 and 443) or those ports and services as registered and approved for use by the DoD PPSM. Any variation in PPS will be documented, registered, and approved by the PPSM. If not, this is a finding.",
"description": "Failure to comply with DoD ports, protocols, and services (PPS) requirements can result in compromise of enclave boundary protections and/or functionality of the automated information system (AIS).\n\nThe IAM will ensure web servers are configured to use only authorized PPS in accordance with the Network Infrastructure STIG, DoD Instruction 8551.1, Ports, Protocols, and Services Management (PPSM), and the associated Ports, Protocols, and Services (PPS) Assurance Category Assignments List.",
"fixid": "F-31052r1_fix",
"fixtext": "Ensure the web site enforces the use of IANA well-known ports for HTTP and HTTPS.",
"iacontrols": [
"DCPP-1"
],
"id": "V-15334",
"ruleID": "SV-34016r1_rule",
"severity": "low",
"title": "Web sites must utilize ports, protocols, and services according to PPSM guidelines.",
"version": "WG610 W22"
},
"V-2226": {
"checkid": "C-33770r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directives: DocumentRoot & ServerRoot\n\nNote the location following each enabled DocumentRoot and ServerRoot directives.\n\nNavigate to the DocumentRoot, and ServerRoot, using the path identified above. Right click on the directory to be examined. Select Properties > Select the \u201cSharing\u201d tab. If either folder is shared, this is a finding. \n\nNOTE: The presence of operating system shares on the web server is not an issue as long as the shares are not part of the web content directories. The use of shares to move content from one environment to another is permitted if the following conditions are met: they are approved by the IAM/IAO, the shares are restricted to only allow administrators write access, the use of the shares does not bypass the sites approval process for posting new content to the web server, and developers are only permitted read access to these directories.",
"description": "Sharing of web server content is a security risk when a web server is involved. Users accessing the share anonymously could experience privileged access to the content of such directories. Network sharable directories expose those directories and their contents to unnecessary access. Any unnecessary exposure increases the risk that someone could exploit that access and either compromises the web content or cause web server performance problems.",
"fixid": "F-29407r1_fix",
"fixtext": "Remove the shares from the applicable directories.",
"iacontrols": [
"ECCD-1",
"ECCD-2"
],
"id": "V-2226",
"ruleID": "SV-33109r1_rule",
"severity": "medium",
"title": "Web content directories must not be anonymously shared.",
"version": "WG210 W22"
},
"V-2228": {
"checkid": "C-35736r1_chk",
"checktext": "To preclude access to the servers root directory, ensure the following directive is in the httpd.conf file. This entry will also stop users from setting up .htaccess files which can override security features configured in httpd.conf.\n\n\nAllowOverride None\n\n\nIf the AllowOverride None is not set, this is a finding.",
"description": "CGI scripts represents one of the most common and exploitable means of compromising a web server. By definition, CGI are executable by the operating system of the host server. While access control is provided via the web service, the execution of CGI programs is not otherwise limited unless the SA or Web Manager takes specific measures. CGI programs can access and alter data files, launch other programs and use the network. CGI programs can be written in any available programming language. C, PERL, PHP, Javascript, VBScript and shell (sh, ksh, bash) are popular choices.",
"fixid": "F-30977r1_fix",
"fixtext": "Enter the statement above into httpd.conf file for all web site root directories.",
"iacontrols": [
"DCPA-1"
],
"id": "V-2228",
"ruleID": "SV-36644r1_rule",
"severity": "medium",
"title": "All interactive programs must be placed in a designated directory with appropriate permissions.",
"version": "WG400 W22"
},
"V-2229": {
"checkid": "C-35739r1_chk",
"checktext": "Query the SA to determine if CGI scripts are used as part of the web site. \n\nIf interactive scripts are being used, check the permissions of these files to ensure they meet the following permissions:\n\ninteractive script files\n\nAdministrators Full Control\nWebManagers Modify\nSystem Read/Execute\nWebserver Account Read/Execute \n\nIf the interactive scripts do not meet the above permissions or are less restrictive, this is a finding.",
"description": "The use of CGI scripts represent one of the most common and exploitable means of compromising a web server. By definition, CGI scripts are executable by the operating system of the host server. While access control is provided via the web service, the execution of CGI programs is not limited unless the SA or the Web Manager takes specific measures. CGI programs can access and alter data files, launch other programs, and use the network. CGI programs can be written in any available programming language. C, PERL, PHP, Javascript, VBScript, and shell programs (e.g., sh, ksh, bash, etc.) are popular choices. \n\nCGI is a standard for interfacing external applications with information servers, such as HTTP or web servers. The definition of CGI as web-based applications is not to be confused with the more specific .cgi file extension. ASP, JSP, JAVA, and PERL scripts are commonly found in these circumstances.\n\nClarification:\nThis vulnerability, which is related to VMS vulnerability V-2228, requires that appropriate access permissions are applied to CGI files.",
"fixid": "F-30980r1_fix",
"fixtext": "Ensure the CGI scripts are owned by root, the service account running the web service, the web author or the SA, and that the anonymous web user account has Read Only or Read - Execute permissions to such scripts.",
"iacontrols": [
"ECLP-1"
],
"id": "V-2229",
"ruleID": "SV-28849r1_rule",
"severity": "medium",
"title": "Interactive scripts used on a web server must have proper access controls.",
"version": "WG410 W22"
},
"V-2240": {
"checkid": "C-33766r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directive: MaxKeepAliveRequests\n\nEvery enabled MaxKeepAliveRequests value needs to be 100 or greater. If any directive is less than 100, this is a finding.",
"description": "Resource exhaustion can occur when an unlimited number of concurrent requests are allowed on a web site, facilitating a denial of service attack. Mitigating this kind of attack will include limiting the number of concurrent HTTP/HTTPS requests per IP address and may include, where feasible, limiting parameter values associated with keepalive, (i.e., a parameter used to limit the amount of time a connection may be inactive).",
"fixid": "F-29403r1_fix",
"fixtext": "Set the MaxKeepAliveRequests directive to 100 or greater.",
"iacontrols": [
"ECSC-1"
],
"id": "V-2240",
"ruleID": "SV-33105r1_rule",
"severity": "medium",
"title": "The number of allowed simultaneous requests must be set.",
"version": "WG110 W22"
},
"V-2245": {
"checkid": "C-33768r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directive: DocumentRoot\n\nNote the name of the DocumentRoot directory.\n\nReview the results for each document root directory and its subdirectories. If a directory does not contain an index.html or equivalent default document, this is a finding.",
"description": "The goal is to completely control the web users experience in navigating any portion of the web document root directories. Ensuring all web content directories have indexing turned off or at least the equivalent of an index.html file is a significant factor to accomplish this end. Enumeration techniques, such as URL parameter manipulation, rely upon the ability to obtain information about the web server\u2019s directory structure through locating directories without default pages.",
"fixid": "F-29405r1_fix",
"fixtext": "Add a default document to the applicable directories.",
"iacontrols": [
"ECAN-1",
"ECSC-1"
],
"id": "V-2245",
"ruleID": "SV-33107r1_rule",
"severity": "low",
"title": "Each readable web document directory must contain either a default, home, index, or equivalent file.",
"version": "WG170 W22"
},
"V-2249": {
"checkid": "C-33771r2_chk",
"checktext": "If web administration is performed at the console, this check is N/A.\n\nIf web administration is performed remotely the following checks will apply:\n1. If administration of the server is performed remotely, it will only be performed securely by system administrators.\n2. If web site administration or web application administration has been delegated, those users will be documented and approved by the IAO.\n3. Remote administration must be in compliance with any requirements contained within the Windows Server STIGs, and any applicable network STIGs.\n4. Remote administration of any kind will be restricted to documented and authorized personnel.\n5. All users performing remote administration must be authenticated.\n6. All remote sessions will be encrypted and they will utilize FIPS 140-2 approved protocols.\n\nFIPS 140-2 approved TLS versions include TLS V1.0 or greater. \n\nReview with site management how remote administration, if applicable, is configured on the web site. If remote management meets the criteria listed above, this is not a finding. If remote management is utilized and does not meet the criteria listed above, this is a finding.",
"description": "Logging into a web server remotely using an unencrypted protocol or service when performing updates and maintenance is a major risk. Data, such as user account, is transmitted in plaintext and can easily be compromised. When performing remote administrative tasks, a protocol or service that encrypts the communication channel must be used.\n \nAn alternative to remote administration of the web server is to perform web server administration locally at the console. Local administration at the console implies physical access to the server.\n",
"fixid": "F-29408r1_fix",
"fixtext": "Ensure the web server administration is only performed over a secure path.",
"iacontrols": [
"EBRP-1",
"EBRU-1"
],
"id": "V-2249",
"ruleID": "SV-33110r2_rule",
"severity": "high",
"title": "Web server administration must be performed over a secure path or at the local console.",
"version": "WG230 W22"
},
"V-2250": {
"checkid": "C-35750r1_chk",
"checktext": "Open the httpd.conf file. \n\nSearch for a commented LoadModule log_config_module directive statement. \n\nIf this statement is found commented, this is a finding.",
"description": "A major tool in exploring the web site use, attempted use, unusual conditions, and problems are reported in the access and error logs. In the event of a security incident, these logs can provide the SA and the web manager with valuable information. Without these log files, SAs and web managers are seriously hindered in their efforts to respond appropriately to suspicious or criminal actions targeted at the web site.",
"fixid": "F-30993r1_fix",
"fixtext": "Uncomment the LoadModule log_config_module statement and restart the Apache service.",
"iacontrols": [
"ECAT-1",
"ECAT-2"
],
"id": "V-2250",
"ruleID": "SV-36668r1_rule",
"severity": "medium",
"title": "Logs of web server access and errors must be established and maintained.",
"version": "WG240 W20"
},
"V-2252": {
"checkid": "C-33787r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as Notepad, and search for the following uncommented directives: ErrorLog & CustomLog\n\nNavigate to the location of the file specified after each enabled ErrorLog & CustomLog directive and verify the permissions assigned to these files. Right click on the file to be examined. Select Properties > Select the \u201cSecurity\u201d tab. Permissions greater than Read & Execute should be allowed for only the account assigned to the Apache server service, and the Auditors Group. If the SA, Web Manager or users other than the Auditors group have greater than read access to the log files, this is a finding. If anyone other than the Auditors, Administrators, Web Managers, or the account assigned to the Apache server service has access to the log files, this is a finding.",
"description": "A major tool in exploring the web site use, attempted use, unusual conditions and problems are the access and error logs. In the event of a security incident, these logs can provide the SA and Web\nManager with valuable information. To ensure the integrity of the log files and protect the SA and Web\nManager from a conflict of interest related to the maintenance of these files, only the members of the\nAuditors group will be granted permissions to move, copy and delete these files in the course of their\nduties related to the archiving of these files.",
"fixid": "F-29431r1_fix",
"fixtext": "Remove the unauthorized permissions from the applicable accounts.",
"iacontrols": [
"ECTP-1"
],
"id": "V-2252",
"ruleID": "SV-33135r1_rule",
"severity": "medium",
"title": "Log file access must be restricted to System Administrators, Web Administrators or Auditors.",
"version": "WG250 W22"
},
"V-2254": {
"checkid": "C-33786r1_chk",
"checktext": "Query the IAO, the SA, and the web administrator to find out if development web sites are being housed on production web servers. \n\nDefinition: A production web server is any web server connected to a production network, regardless of its role.\n\nProposed Questions:\nDo you have development sites on your production web server?\nWhat is your process to get development web sites / content posted to the production server?\nDo you use under construction notices on production web pages?\n\nThe reviewer can also do a manual check or perform a navigation of the web site via a browser to confirm the information provided from interviewing the web staff. Graphics or texts which proclaim Under Construction or Under Development are frequently used to mark folders or directories in that status.\n\nIf Under Construction or Under Development web content is discovered on the production web server, this is a finding.",
"description": "In the case of a production web server, areas for content development and testing will not exist, as this type of content is only permissible on a development web site. The process of developing on a functional production web site entails a degree of trial and error and repeated testing. This process is often accomplished in an environment where debugging, sequencing, and formatting of content are the main goals. The opportunity for a malicious user to obtain files that reveal business logic and login schemes is high in this situation. The existence of such immature content on a web server represents a significant security risk that is totally avoidable.",
"fixid": "F-29430r1_fix",
"fixtext": "The presences of portions of the web site that proclaim Under Construction or Under Development are clear indications that a production web server is being used for development. The web administrator will ensure that all pages that are in development are not installed on a production web server.",
"iacontrols": [
"ECSC-1"
],
"id": "V-2254",
"ruleID": "SV-33134r1_rule",
"severity": "medium",
"title": "Only web sites that have been fully reviewed and tested must exist on a production web server.",
"version": "WG260 W22"
},
"V-2258": {
"checkid": "C-33788r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as Notepad, and search for the following uncommented directives: DocumentRoot, Alias, ScriptAlias, & ScriptAliasMatch \n\nNavigate to the locations specified after each enabled DocumentRoot, Alias, ScriptAlias, & ScriptAliasMatch directives. \nRight click on the file or directory to be examined. Select Properties. Select the \u201cSecurity\u201d tab. The only accounts listed should be the web administrator, developers, and the account assigned to run the apache server service. \nIf accounts that do not need access to these directories are listed, this is a finding. \nIf the permissions assigned to the Apache web server service are greater than Read for locations associated with the DocumentRoot and Alias directives, this is a finding. If the permissions assigned to the Apache web server service are greater than Read & Execute for locations associated with ScriptAlias and ScriptAliasMatch, this is a finding.",
"description": "Excessive permissions for the anonymous web user account are one of the most common faults contributing to the compromise of a web server. If this user is able to upload and execute files on the web server, the organization or owner of the server will no longer have control of the asset.",
"fixid": "F-29432r1_fix",
"fixtext": "Assign the appropriate permissions to the applicable directories and files.",
"iacontrols": [
"ECLP-1"
],
"id": "V-2258",
"ruleID": "SV-33136r1_rule",
"severity": "high",
"title": "The web client account access to the content and scripts directories must be limited to read and execute.",
"version": "WG290 W22"
},
"V-2260": {
"checkid": "C-35765r2_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor and search for the following uncommented directives: DocumentRoot & Alias\n\nNavigate to the location(s) specified in the Include statement(s), and review each file for the following uncommented directives: DocumentRoot & Alias\n\nAt the top level of the directories identified after the enabled DocumentRoot & Alias directives, verify that a \u201crobots.txt\u201d file does not exist. If the file does exist, this is a finding.\n",
"description": "Search engines are constantly at work on the Internet. Search engines are augmented by agents, often referred to as spiders or bots, which endeavor to capture and catalog web-site content. In turn, these search engines make the content they obtain and catalog available to any public web user. \n\nTo request that a well behaved search engine not crawl and catalog a site, the web site may contain a file called robots.txt. This file contains directories and files that the web server SA desires not be crawled or cataloged, but this file can also be used, by an attacker or poorly coded search engine, as a directory and file index to a site. This information may be used to reduce an attacker\u2019s time searching and traversing the web site to find files that might be relevant. If information on the web site needs to be protected from search engines and public view, other methods must be used.",
"fixid": "F-29434r2_fix",
"fixtext": "Remove the robots.txt file from the web site. If there is information on the web site that needs protection from search engines and public view, then other methods must be used to safeguard the data.",
"iacontrols": [
"ECLP-1"
],
"id": "V-2260",
"ruleID": "SV-28798r2_rule",
"severity": "medium",
"title": "A web site must not contain a robots.txt file.",
"version": "WG310 W22"
},
"V-2262": {
"checkid": "C-35818r1_chk",
"checktext": "Open the httpd.conf file.\n\nSearch for an uncommented LoadModule ssl_module directive statement.\n\nIf this statement is found commented, this is a finding.\n\nAfter determining that the ssl module is active search for the following uncommented directives: SSLProtocol & SSLEngine\n\nFor all enabled SSLProtocol directives ensure they are set to \u201cTLSv1\u201d. If the SSLProtocol directive is not set to TLSv1, this is a finding.\n\nFor all enabled SSLEngine directives ensure they are set to \u201con\u201d.\n\nBoth the SSLProtocol and SSLEngine directives must be set correctly or this is a finding.\n\nNOTE: In some cases web servers are configured in an environment to support load balancing. This configuration most likely utilizes a content switch to control traffic to the various web servers. In this situation, the TLS certificate for the web sites may be installed on the content switch vs, the individual web sites. This solution is acceptable as long as the web servers are isolated from the general population LAN. We do not want users to have the ability to bypass the content switch to access the web sites.",
"description": "Transport Layer Security (TLS) encryption is a required security setting for a private web server. Encryption of private information is essential to ensuring data confidentiality. If private information is not encrypted, it can be intercepted and easily read by an unauthorized party. A private web server must use a FIPS 140-2 approved TLS version, and all non-FIPS-approved SSL versions must be disabled.\n\nFIPS 140-2 approved TLS versions include TLS V1.0 or greater. NIST SP 800-52 specifies the preferred configurations for government systems.\n",
"fixid": "F-31059r1_fix",
"fixtext": "Edit the httpd.conf file to load the ssl_module; set the SSLProtocol to TLSv1; and set the SSLEngine to On.",
"iacontrols": [
"ECSC-1"
],
"id": "V-2262",
"ruleID": "SV-36740r2_rule",
"severity": "medium",
"title": "A private web server must utilize an approved TLS version.",
"version": "WG340 W20"
},
"V-2263": {
"checkid": "C-33793r1_chk",
"checktext": "Open browser window and browse to the appropriate site. Before entry to the site, you should be presented with the server's DoD PKI credentials. Review these credentials for authenticity.\n\nFind an entry which cites:\n\nIssuer:\nCN = DOD CLASS 3 CA-3\nOU = PKI\nOU = DoD\nO = U.S. Government\nC = US\n\nIf the server is running as a public web server, this finding should be Not Applicable.\n\nNOTE: In some cases, the web servers are configured in an environment to support load balancing. This configuration most likely utilizes a content switch to control traffic to the various web servers. In this situation, the SSL certificate for the web sites may be installed on the content switch vs. the individual web sites. This solution is acceptable as long as the web servers are isolated from the general population LAN. Users should not have the ability to bypass the content switch to access the web sites.",
"description": "This check verifies that DoD is a hosted web site's CA. The certificate is actually a DoD-issued server certificate used by the organization being reviewed. This is used to verify the authenticity of the web site to the user. If the certificate is not for the server (Certificate belongs to), if the certificate is not issued by DoD (Certificate was issued by), or if the current date is not included in the valid date (Certificate is valid from), then there is no assurance that the use of the certificate is valid. The entire purpose of using a certificate is, therefore, compromised.",
"fixid": "F-29437r1_fix",
"fixtext": "Configure the private web site to use a valid DoD certificate.",
"iacontrols": [
"IATS-1",
"IATS-2"
],
"id": "V-2263",
"ruleID": "SV-33141r1_rule",
"severity": "medium",
"title": "A private web server must have a valid DoD server certificate.",
"version": "WG350 W22"
},
"V-2265": {
"checkid": "C-33794r1_chk",
"checktext": "Search the web content and scripts directories (found in check WG290) for .java and .jpp files.\n\nIf either file type is found, this is a finding.\n\nNote: Executables such as java.exe, jre.exe, and jrew.exe are permitted.",
"description": "From the source code in a .java or a .jpp file, the Java compiler produces a binary file with an extension of .class. The .java or .jpp file would, therefore, reveal sensitive information regarding an application\u2019s logic and permissions to resources on the server. By contrast, the .class file, because it is intended to be machine independent, is referred to as bytecode. Bytecodes are run by the Java Virtual Machine (JVM), or the Java Runtime Environment (JRE), via a browser configured to permit Java code.",
"fixid": "F-29438r1_fix",
"fixtext": "Remove the appropriate files from the web server.",
"iacontrols": [
"ECSC-1"
],
"id": "V-2265",
"ruleID": "SV-33143r1_rule",
"severity": "low",
"title": "Java software on production web servers must be limited to class files and the JAVA virtual machine.",
"version": "WG490 W22"
},
"V-2270": {
"checkid": "C-35793r1_chk",
"checktext": "Locate the directories containing the CGI scripts. These directories should be language-specific (e.g., PERL, ASP, JS, JSP, etc.). \n\nRight-click on the web content directory and the related CGI directories. On the Properties tab, examine the access rights for the CGI, cgi-bin, or cgi-shl directories. \n\nAnonymous FTP users must not have access to these directories.\n\nIf the CGI, the cgi-bin, or the cgi-shl directories can be accessed by any group that does not require access, this is a finding.",
"description": "The directories containing the CGI scripts, such as PERL, must not be accessible to anonymous users via FTP. This applies to all directories that contain scripts that can dynamically produce web pages in an interactive manner (i.e., scripts based upon user-provided input). Such scripts contain information that could be used to compromise a web service, access system resources, or deface a web site.",
"fixid": "F-31033r1_fix",
"fixtext": "If the CGI, the cgi-bin, or the cgi-shl directories can be accessed via FTP by any group or user that does not require access, remove permissions to such directories for all but the web administrators and the SAs. Ensure that any such access employs an encrypted connection.",
"iacontrols": [
"ECCD-1",
"ECCD-2"
],
"id": "V-2270",
"ruleID": "SV-36714r1_rule",
"severity": "medium",
"title": "Anonymous FTP user access to interactive scripts must be prohibited.",
"version": "WG430 W22"
},
"V-2272": {
"checkid": "C-33795r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as Notepad, and search for the following uncommented directive: ScriptInterpreterSource\n\nFor any enabled ScriptInterpreterSource directives the only authorized entries are Registry-Strict or Script. If any other entry (i.e. Registry) is found, this is a finding.\n\nFor all enabled ScriptInterpreterSource directives set to Registry-Strict: open regedit then Navigate to the following location: HKEY_CLASSES_ROOT\\.pl\\Shell\\ExecCGI\\Command\\(Default) => C:\\Perl\\bin\\perl.exe \u2013T (This entry should specify the location of the Perl.exe file). If this entry is not found, this is a finding.\n\nFor all enabled ScriptInterpreterSource directive set to Script: Search the system for all files ending with \u201c.pl\u201d. Open all files found with a text editor and ensure the following entry is found - #![Drive Letter]:/[Path to Perl install directory]/bin/perl.exe \u2013T. If this entry is not found, this is a finding.\n\nNOTE: This applies to PERL scripts that are used as part of the web server and not all PERL scripts that are on the system.\nNOTE: If the mod_perl module is installed, and the directive \u201cPerlTaintCheck on\u201d is entered in the httpd.conf, this satisfies the requirement.",
"description": "PERL (Practical Extraction and Report Language) is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. The language is often used in shell scripting and is intended to be practical, easy to use, and efficient means of generating interactive web pages for the user. Unfortunately, many widely available freeware PERL programs (scripts) are extremely insecure. This is most readily accomplished by a malicious user substituting input to a PERL script during a POST or a GET operation.\n\nConsequently, the founders of PERL have developed a mechanism named TAINT that protects the system from malicious input sent from outside the program. When the data is tainted, it cannot be used in programs or functions such as eval(), system(), exec(), pipes, or popen(). The script will exit with a warning message.",
"fixid": "F-29439r1_fix",
"fixtext": "Adjust the PERL scripts or the registry to include the appropriate comments.",
"iacontrols": [
"ECSC-1"
],
"id": "V-2272",
"ruleID": "SV-33144r1_rule",
"severity": "medium",
"title": "PERL scripts must use the TAINT option.",
"version": "WG460 W22"
},
"V-26279": {
"checkid": "C-33799r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directives: ErrorLog\n\nThis directive specifies the name and location of the error log, if not found, this is a finding.\n\nNote: This check is applicable to every host and virtual host the web server is supporting.",
"description": "The server error logs are invaluable because they can also be used to identify potential problems and enable proactive remediation. Log data can reveal anomalous behavior such as \u201cnot found\u201d or \u201cunauthorized\u201d errors that may be an evidence of attack attempts. Failure to enable error logging can significantly reduce the ability of Web Administrators to detect or remediate problems.",
"fixid": "F-29442r1_fix",
"fixtext": "Edit the httpd.conf file and enter the name and path to the ErrorLog.",
"iacontrols": [
"ECAR-1"
],
"id": "V-26279",
"ruleID": "SV-33147r1_rule",
"severity": "medium",
"title": "Error logging must be enabled.",
"version": "WA00605 W22"
},
"V-26280": {
"checkid": "C-33800r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directive: LogFormat\n\nThe minimum items to be logged are as shown in the sample below:\n\nLogFormat \"%a %A %h %H %l %m %s %t %u %U \\\"%{Referer}i\\\"\" combined\n\nVerify the information following the LogFormat directive meets or exceeds the minimum requirement above. If any LogFormat directive does not meet this requirement, this is a finding.",
"description": "The server error logs are invaluable because they can also be used to identify potential problems and enable proactive remediation. Log data can reveal anomalous behavior such as \u201cnot found\u201d or \u201cunauthorized\u201d errors that may be an evidence of attack attempts. Failure to enable error logging can significantly reduce the ability of Web Administrators to detect or remediate problems.",
"fixid": "F-29443r1_fix",
"fixtext": "Edit the configuration file/s and add LogFormat \"%a %A %h %H %l %m %s %t %u %U \\\"%{Referer}i\\\"\" combined",
"iacontrols": [
"ECAR-1",
"ECAR-2"
],
"id": "V-26280",
"ruleID": "SV-33149r1_rule",
"severity": "medium",
"title": "The sites error logs must log the correct format.",
"version": "WA00612 W22"
},
"V-26281": {
"checkid": "C-33801r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as Notepad, and search for the following uncommented directives: CustomLog\n\nIf any enabled CustomLog are not set to logs/access_log combined, this is a finding.\n\nNote: This check is applicable to every host and virtual host the web server is supporting.",
"description": "The server error logs are invaluable because they can also be used to identify potential problems and enable proactive remediation. Log data can reveal anomalous behavior such as \u201cnot found\u201d or \u201cunauthorized\u201d errors that may be an evidence of attack attempts. Failure to enable error logging can significantly reduce the ability of Web Administrators to detect or remediate problems. The CustomLog directive specifies the log file, syslog facility, or piped logging utility.",
"fixid": "F-29381r1_fix",
"fixtext": "Edit the httpd.conf file and enter the name, path and level for the CustomLog.",
"iacontrols": [
"ECAR-1"
],
"id": "V-26281",
"ruleID": "SV-33151r1_rule",
"severity": "medium",
"title": "System logging must be enabled.",
"version": "WA00615 W22"
},
"V-26282": {
"checkid": "C-33802r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directives: LogLevel\n\nAll enabled LogLevel directives should be set to a minimum of \u201cwarn\u201d, if not, this is a finding.\n\nNote: If LogLevel is set to error, crit, alert, or emerg which are higher thresholds this is not a finding.",
"description": "The server error logs are invaluable because they can also be used to identify potential problems and enable proactive remediation. Log data can reveal anomalous behavior such as \u201cnot found\u201d or \u201cunauthorized\u201d errors that may be an evidence of attack attempts. Failure to enable error logging can significantly reduce the ability of Web Administrators to detect or remediate problems. While the ErrorLog directive configures the error log file name, the LogLevel directive is used to configure the severity level for the error logs. The log level values are the standard syslog levels: emerg, alert, crit, error, warn, notice, info and debug.",
"fixid": "F-29446r1_fix",
"fixtext": "Edit the httpd.conf file and add the value LogLevel warn.",
"iacontrols": [
"ECAR-1"
],
"id": "V-26282",
"ruleID": "SV-33153r1_rule",
"severity": "medium",
"title": "The LogLevel directive must be enabled.",
"version": "WA00620 W22"
},
"V-3333": {
"checkid": "C-33769r1_chk",
"checktext": "Verify that installation directories for Apache HTTP server are located on another partition, other than the OS partition.\n\nLocate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directives: DocumentRoot, ErrorLog, CustomLog \n\nNote the location specified for each of the directives. \n\nIf the path for any of the directives is on the same partition as the web server operating system files, this is a finding.",
"description": "Application partitioning enables an additional security measure by securing user traffic under one security context, while managing system and application files under another. Web content is accessible to an anonymous web user. For such an account to have access to system files of any type is a major security risk that is avoidable and desirable. Failure to partition the system files from the web site documents increases risk of attack via directory traversal, or impede web site availability due to drive space exhaustion.",
"fixid": "F-29406r1_fix",
"fixtext": "Move the web server system files including the web document root (home) and log directories to a separate partition, other than the OS partition.",
"iacontrols": [
"DCPA-1"
],
"id": "V-3333",
"ruleID": "SV-33108r1_rule",
"severity": "medium",
"title": "The web document (home) directory must be in a separate partition from the web server\u2019s system files.",
"version": "WG205 W22"
},
"V-6373": {
"checkid": "C-33789r2_chk",
"checktext": "The document, DoDI 8500.01, establishes the policy on the use of DoD information systems. It requires the use of a standard Notice and Consent Banner and standard text to be included in user agreements. \n\nThe requirement for the banner is for websites with security and access controls. These are restricted and not publicly accessible. If the website does not require authentication/authorization for use, then the banner does not need to be present.\n\nIf a banner is required, the following banner page must be in place:\n\n\u201cYou are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\n\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n\n- At any time, the USG may inspect and seize data stored on this IS.\n\n- Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n\n- This IS includes security measures (e.g., authentication and access controls) to protect USG interests\u2014not for your personal benefit or privacy.\n\n- Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.\u201d\n\nOR\n\nIf your system cannot meet the character limits to store this amount of text in the banner, the following is another option for the warning banner:\n\n\"I've read & consent to terms in IS user agreem't.\"\n\nNOTE: While DoDI 8500.01 does not contain a copy of the banner to be used, it does point to the RMF Knowledge Service for a copy of the required text. It is also noted that the banner is to be displayed only once when the individual enters the site and not for each page.\n\nIf the access-controlled website does not display this banner page before entry, this is a finding.\n",
"description": "A consent banner will be in place to make prospective entrants aware that the website they are about to enter is a DoD web site and their activity is subject to monitoring. The document, DoDI 8500.01, establishes the policy on the use of DoD information systems. It requires the use of a standard Notice and Consent Banner and standard text to be included in user agreements. The requirement for the banner is for websites with security and access controls. These are restricted and not publicly accessible. If the website does not require authentication/authorization for use, then the banner does not need to be present. A manual check of the document root directory for a banner page file (such as banner.html) or navigation to the website via a browser can be used to confirm the information provided from interviewing the web staff.",
"fixid": "F-29433r2_fix",
"fixtext": "Configure a DoD private website to display the required DoD banner page when authentication is required for user access.",
"iacontrols": [
"ECWM-1"
],
"id": "V-6373",
"ruleID": "SV-33137r2_rule",
"severity": "low",
"title": "The required DoD banner page must be displayed to authenticated users accessing a DoD private website.",
"version": "WG265 W22"
},
"V-6531": {
"checkid": "C-33767r1_chk",
"checktext": "Locate the Apache httpd.conf file.\n\nIf unable to locate the file, perform a search of the system to find the location of the file.\n\nOpen the httpd.conf file with an editor such as notepad, and search for the following uncommented directive: SSLVerifyClient\n\nIf SSLVerifyClient is not set to \u201crequire\u201d this is a finding as the client is not required to present a valid certificate.",
"description": "Web sites requiring authentication within the DoD must utilize PKI as an authentication mechanism for web users. Information systems residing behind web servers requiring authorization based on individual identity must use the identity provided by certificate-based authentication to support access control decisions.",
"fixid": "F-29404r1_fix",
"fixtext": "Set the SSLVerifyClient directive to \"require\".",
"iacontrols": [
"IATS-1",
"IATS-2"
],
"id": "V-6531",
"ruleID": "SV-33106r1_rule",
"severity": "medium",
"title": "Private web servers must require certificates issued from a DoD-authorized Certificate Authority.",
"version": "WG140 W22"
}
},
"profiles": {
"MAC-1_Classified": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-1_Classified",
"title": "I - Mission Critical Classified"
},
"MAC-1_Public": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-1_Public",
"title": "I - Mission Critical Public"
},
"MAC-1_Sensitive": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-1_Sensitive",
"title": "I - Mission Critical Sensitive"
},
"MAC-2_Classified": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-2_Classified",
"title": "II - Mission Support Classified"
},
"MAC-2_Public": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-2_Public",
"title": "II - Mission Support Public"
},
"MAC-2_Sensitive": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-2_Sensitive",
"title": "II - Mission Support Sensitive"
},
"MAC-3_Classified": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-3_Classified",
"title": "III - Administrative Classified"
},
"MAC-3_Public": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-3_Public",
"title": "III - Administrative Public"
},
"MAC-3_Sensitive": {
"description": "",
"findings": {
"V-13686": "true",
"V-13688": "true",
"V-13689": "true",
"V-13694": "true",
"V-15334": "true",
"V-2226": "true",
"V-2228": "true",
"V-2229": "true",
"V-2240": "true",
"V-2245": "true",
"V-2249": "true",
"V-2250": "true",
"V-2252": "true",
"V-2254": "true",
"V-2258": "true",
"V-2260": "true",
"V-2262": "true",
"V-2263": "true",
"V-2265": "true",
"V-2270": "true",
"V-2272": "true",
"V-26279": "true",
"V-26280": "true",
"V-26281": "true",
"V-26282": "true",
"V-3333": "true",
"V-6373": "true",
"V-6531": "true"
},
"id": "MAC-3_Sensitive",
"title": "III - Administrative Sensitive"
}
},
"slug": "apache_site_2.0windows",
"title": "APACHE SITE 2.0 for Windows",
"version": "1"
}
}