Administrators at the Apache Software Foundation have pledged to restrict the use of Secure Shell keys for accessing servers over their network following a security breach on Monday that briefly forced the closure the popular open-source website.
In an detailed postmortem describing how hackers penetrated several heavily fortified machines, site admins identified their use of SSH keys as one of the flaws that made the attack possible. They went on to lay out concrete ways they plan to fix the problems, which also included faulty procedures for backing up data and methods for providing geographically localized servers for downloads.
"At no time were any Apache Software Foundation code repositories, downloads, or users put at risk by this intrusion," they wrote here. "However, we believe that providing a detailed account of what happened will make the internet a better place, by allowing others to learn from our mistakes."
The hack started with the compromise of apachecon.com, a website that's owned by the ApacheCon conference production company. Although logs confirming the exact cause were destroyed, investigators suspect it was the exploit of one or more local root vulnerabilities in the Linux kernel for which Red Hat issued a patch seven days earlier but had not yet been installed. They then used the SSH key for a backup account to access the server that runs people.apache.org.
With an unprivileged user account, the attackers added common gateway interface scripts to the document root folders for several Apache websites. Routine backup processes then copied the scripts to the foundation's production server, where they became visible to the outside world. Those scripts, which allowed the hackers to obtain remote shells, were aided by Apache's use of ExecCGI.
"The use of SSH keys facilitated this attack," the postmortem continued. "In hindsight, our implementation left a lot to be desired - we did not restrict SSH keys appropriately, and we were unaware of their misuse."
The admins have since recreated new SSH keys with minimum lengths of 4096 bits and mandated the use of a separate one for each host doing backups. Additionally, they now require the use of from="" and command="" strings and allow connections only from machines that are backing up data to prevent third party machines from being able to establish connections.
Other changes include the requirement that all users with elevated privileges use a one-time password for everything for sudo on certain machines. The foundation is also considering the disabling of CGI support on most website systems.
Apache deserves credit for the number of security-in-depth measures already in place that prevented the attack from penetrating more sensitive parts of the foundation's system.
For example, core servers on the network employed a variety of hardened operating systems, including CentOS, FreeBSD-7, and Solaris 10, creating a diverse target that made it hard to attackers to escalate privileges. What's more, the use of the ZFS filesystem and redundant services in two locations made it possible for admins to restore service quickly.
Even more commendable is the foundation's willingness to publicly lay out how its mistakes contributed to the breach. It's never a pleasant task to publicly lay out blunders in such painstaking detail - just ask Apple, which steadfastly refuses to discuss security missteps, however obvious they are to the rest of the world. But as the Apache postmortem shows, such disclosures can leave users feeling surprisingly reassured about the state of one's security. ®