Systems hardening is a collection of tools, techniques, and best practices to reduce vulnerability in technology applications, systems, infrastructure, firmware, and other areas. The goal of systems hardening is to reduce security risk by eliminating potential attack vectors and condensing the system’s attack surface. By removing superfluous programs, accounts functions, applications, ports, permissions, access, etc. attackers and malware have fewer opportunities to gain a foothold within your IT ecosystem.
Systems hardening demands a methodical approach to audit, identify, close, and control potential security vulnerabilities throughout your organization. There are several types of system hardening activities, including:
Operating system hardening
Although the principles of system hardening are universal, specific tools and techniques do vary depending on the type of hardening you are carrying out. System hardening is needed throughout the lifecycle of technology, from initial installation, through configuration, maintenance, and support, to end-of-life decommissioning. Systems hardening is also a requirement of mandates such as PCI DSS and HIPAA, and is increasingly demanded by cyber insurers.
You harden a system by reducing the “attack surface,” the combination of all the potential flaws and backdoors in technology can be exploited by threat actors. These vulnerabilities can occur in many ways. Common attack surface vulnerabilities include:
Additionally, the Center for Internet Security (CIS) maintains updated guidelines on their site around best practice system configurations for specific use cases. The CIS Benchmarks include over 100 guidelines across 25 vendor product families (Amazon Linux, Amazon AWS, Apple iOS, Apple macOS, Checkpoint Firewall, Cisco, Docker, Google Cloud, Microsoft Azure, etc.).
The type of hardening you carry out depends on the risks in your existing technology, the resources you have available, and the priority for making fixes.
Audit your existing systems: Carry out a comprehensive audit of your existing technology(you can use). Use penetration testing, vulnerability scanning, configuration management, and other security auditing tools to find flaws in the system and prioritize fixes. Conduct system hardening assessments against resources using industry standards from NIST, Microsoft, CIS, DISA, etc.
Create a strategy for systems hardening: You do not need to harden all of your systems at once. Instead, create a strategy and plan based on risks identified within your technology ecosystem, and use a phased approach to remediate the biggest flaws.
Patch vulnerabilities immediately: Ensure you have an automated and comprehensive vulnerability identification and patching system in place. Systematically identify vulnerabilities and prioritize remediation. In some instances, vulnerabilities cannot be patched. In these instances, ensure there are other mitigations in place, such as removing admin rights—which many exploits need in order to exploit a vulnerability, and/or have cyber insurance in place.
Network hardening: Ensure your firewall is properly configured and all rules are regularly audited; secure remote access points and users; block any unused or unneeded open network ports; disable and remove unnecessary protocols and services; implement access lists; encrypt network traffic.
Server hardening: Put all company hosted servers in a secure datacenter; never test hardening on production servers; always harden servers before connecting them to the internet or external networks; avoid installing unnecessary software on a server; segregate servers appropriately; ensure superuser and administrative shares are properly set up, and rights and access are limited in line with the principle of least privilege. With cloud environments, it is also particularly important to reduce port exposure so data is not inadvertently leaked, or backdoor access provided to infrastructure.
Endpoint hardening: Remove local admin rights on all Windows and macOS endpoints. Ensure no workstations, laptops, or IoT have default passwords. Remove any unneeded software and block any unnecessary communications.
Application hardening: Remove any components or functions you do not need; restrict access to applications based on user roles and context (such as with application control); remove all sample files and default passwords. Application passwords should then be managed via an application password management/privileged password management solution, that enforces password best practices (password rotation, length, etc.). Hardening of applications should also entail inspecting integrations with other applications and systems, and removing, or reducing, unnecessary integration components and privileges.
Database hardening: Create admin restrictions, such as by controlling privileged access, on what users can do in a database; turn on node checking to verify applications and users; encrypt database information—both in transit and at rest; enforce secure passwords; introduce role-based access control (RBAC) privileges; remove unused accounts;
Operating system hardening: Apply OS updates, service packs, and patches automatically; remove unnecessary drivers, file sharing, libraries, software, services, and functionality; encrypt local storage; tighten registry and other systems permissions; log all activity, errors, and warnings; implement privileged user controls.
Eliminate unnecessary accounts and privileges: Enforce least privilege by removing unnecessary accounts (such as orphaned accounts and unused accounts) and privileges throughout your IT infrastructure. This is one of the most powerful security practices for reducing the attack surface.
Systems hardening requires continuous effort, but the diligence will pay off in substantive ways across your organization via:
Enhanced system functionality: Since fewer programs and less functionality means there is less risk of operational issues, misconfigurations, incompatibilities, and compromise.
Significantly improved security: A reduced attack surface translates into a lower risk of data breaches, unauthorized access, systems hacking, or malware.
Simplified compliance and auditability: Fewer programs and accounts coupled with a less complex environment means auditing the environment will usually be more transparent and straightforward.