Security
Trust, but verify
Public-key cryptography has been an enormous boon for securing internet communication, but it suffers from a difficult-to-solve problem: authentication and key management. When presented with a public key over an insecure channel—as part of setting up a secure channel for example—how does one determine that the public key belongs to the entity that it purports to? There are several ways to solve that problem, but none are completely satisfactory. The Monkeysphere project seeks to turn the currently used system on its head, to some extent, and entrust users, rather than centralized authorities, with the power to bestow trust on a key.
There are three main ways for a key to be "trusted": the key (or its fingerprint) is transferred via some secure channel (by phone or in person for example), the key is signed by an authority which has been entrusted to only sign valid keys, or the key is signed by "enough" different entities that are fully or partially trusted (i.e. a web of trust). Most of today's secure internet communications use SSL/TLS which requires keys that have been signed by certificate authorities (CAs), which are "trusted" authorities.
There are two smaller subsets of secure communication, mostly only used by computer-savvy folks, that use other means for determining trust: SSH for interactive encrypted communication and PGP for encrypted email. SSH relies on key fingerprints being exchanged securely, at least in theory, while PGP relies on a web of trust. Monkeysphere's first project is to move the PGP web of trust into the SSH world.
A web of trust is a decentralized, user-controlled key management scheme whereby keys are signed by multiple entities, each using its own keys. The signature can be verified based on the public key of the signer and the user can decide which signers are to be trusted—and at what level to trust them. In practice, if Adam signs Bonnie's key, and Clarisse trusts Adam, that means that Clarisse can trust Bonnie's key. Whether Clarisse should trust David's key, which is signed by Bonnie, depends to a large extent on how much she trusts Adam.
Key signing only implies that the signer verified the identity of the key holder, i.e. that the key holder is the same person or organization that is identified in the key. It is not necessarily an indication that the key holder should be trusted in a general sense, only that the key holder is who they say (via the key) they are. The web of trust used by the Monkeysphere OpenSSH framework is based on the GNU Privacy Guard (GnuPG or GPG) implementation of the OpenPGP standard (RFC 4880).
There are levels of trust that a user can place on a particular signer privately in the user's GPG configuration. They can also issue a trust signature that specifies publicly what trust level they have for a particular signer. So, from the example above, if Adam has published a trust signature for Bonnie saying that she is fully trusted by him, and Clarisse fully trusts Adam (publicly or privately), she is likely to trust David's key. The number of signatures and trust levels required to fully trust a key are configurable by the user, allowing users to decide what their trust parameters are.
What Monkeysphere has done is to add some Perl around OpenSSH to manage keys, along with the known_hosts and authorized_keys files which normally live in the ~/.ssh directory. No modification to the OpenSSH client or server is required, though using Monkeysphere requires that all outbound connections go through the "monkeysphere ssh-proxycommand" command. On the server side, OpenSSH needs to be configured to use an alternate, Monkeysphere-managed AuthorizedKeysFile. The documentation page outlines the configuration needed for OpenSSH and GPG on the client or server sides.
For SSH, especially for sites with lots of hosts, it means that users or system administrators don't have to laboriously propagate keys into authorized_keys files on each new system. Instead, they can say that any key signed by their organization's key is trusted. Each user then has their key signed and can log in to any machine. Of course, ensuring that the organizational keys don't get lost, or fall into the wrong hands, is imperative.
While it is much more user-centric than a trusted authority mechanism, and does not require a separate secure channel for fingerprint exchange, a web of trust is no panacea. There are still issues with handling key revocations, especially if the user loses their key. A bigger problem may be getting a large enough web of trust, with enough trusted key signers, built such that users' keys, especially new users' keys, have a reasonable shot at being accepted.
The very user-centrism that makes a web of trust so intriguing to those who care about secure communications may in fact be one of its biggest downfalls. Non-technical users have shown very little inclination towards wanting any control over which keys they accept or decline. Someone faced with trying to decide who to trust, and at what level, along with how many different signatures/types they require is likely to throw up their hands in frustration. Non-technical users typically don't use SSH or encrypted email, but they may use other services, like SSL/TLS encrypted web traffic that might also benefit from a web of trust model.
LWN commenter dkg pointed to
Monkeysphere (or similar techniques) as a possible solution for the problem
of blindly trusting
whatever CA root certificates a browser installs: "The more
communications security is in the hands of the end users, with tools
that are intelligible to end users, the more we can reject these
abusive (or at least easily abused) centralized authorities.
" The
italicized phrase is both the most important, and probably the hardest, part
to get right.
Tools like Monkeysphere, and efforts like those of CAcert, are good starting points. How well those can translate into workable, user-friendly, user-centric authentication and key management mechanisms is an open question. While those of us who are technically inclined will be able to use a web of trust if desired, it would be nice one day if our parents, siblings, and others who aren't so technical could also stop relying on potentially corrupt organizations for their internet communication security. A web of trust may be a big step down that path.
Brief items
Debian to start deploying DNSSEC
The Debian system administrators (DSA) have announced that they will soon be deploying DNSSEC for selected Debian zones. "The plan is to introduce DNSSEC in several steps so that we can react to issues that arise without breaking everything at once. [...] We will start with serving signed debian.net and debian.com zones. Assuming nobody complains loudly enough the various reverse zones and finally the debian.org zone will follow. Once all our zones are signed we will publish our trust anchors in ISC's DLV Registry, again in stages. [...] The various child zones that are handled differently from our normal DNS infrastructure (mirror.debian.net, alioth, bugs, ftp, packages, security, volatile, www) will follow at a later date." (Thanks again to Paul Wise.)
Mark Cox: Red Hat's Top 11 Most Serious Flaw Types for 2009
Red Hat's director of security response, Mark Cox, has posted some information about which security flaw types were most prevalent in the security fixes made by Red Hat in 2009. He compares those fixes with the Top 25 Most Dangerous Programming Errors that were just published by MITRE and the SANS Institute. "This quick review shows us that 2009 was the year of the kernel NULL pointer dereference flaw, as they could allow local untrusted users to gain privileges, and several public exploits to do just that were released. For Red Hat, interactions with SELinux prevented them being able to be easily mitigated, until the end of the year when we provided updates. Now, in 2010, the upstream Linux kernel and many vendors ship with protections to prevent kernel NULL pointers leading to privilege escalation."
New vulnerabilities
ajaxterm: denial of service
| Package(s): | ajaxterm | CVE #(s): | CVE-2009-1629 | ||||||||
| Created: | February 12, 2010 | Updated: | December 30, 2010 | ||||||||
| Description: | From the Debian advisory:
It was discovered that ajaxterm, a web-based terminal, generates weak and predictable session IDs, which might be used to hijack a session or cause a denial of service attack on a system that uses ajaxterm. | ||||||||||
| Alerts: |
| ||||||||||
fetchmail: arbitrary code execution
| Package(s): | fetchmail | CVE #(s): | CVE-2010-0562 | ||||||||||||||||
| Created: | February 16, 2010 | Updated: | June 2, 2010 | ||||||||||||||||
| Description: | From the Mandriva advisory:
The sdump function in sdump.c in fetchmail 6.3.11, 6.3.12, and 6.3.13, when running in verbose mode on platforms for which char is signed, allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via an SSL X.509 certificate containing non-printable characters with the high bit set, which triggers a heap-based buffer overflow during escaping. | ||||||||||||||||||
| Alerts: |
| ||||||||||||||||||
flash-plugin: information disclosure
| Package(s): | flash-plugin | CVE #(s): | CVE-2010-0186 CVE-2010-0187 CVE-2010-0188 | ||||||||||||||||||||||||||||||||||||
| Created: | February 12, 2010 | Updated: | January 21, 2011 | ||||||||||||||||||||||||||||||||||||
| Description: | From the Red Hat advisory:
If a victim loaded a web page containing specially-crafted SWF content, it could cause Flash Player to perform unauthorized cross-domain requests, leading to the disclosure of sensitive data. | ||||||||||||||||||||||||||||||||||||||
| Alerts: |
| ||||||||||||||||||||||||||||||||||||||
fwbuilder: symlink attack
| Package(s): | fwbuilder | CVE #(s): | |||||||||
| Created: | February 16, 2010 | Updated: | February 17, 2010 | ||||||||
| Description: | From the Red
Hat bugzilla:
An insecure temporary file handling in the generated iptables script was found in fwbuilder. A local attacker could use this flaw to perform symlink attack against user running this script, which will result in overwrite of arbitrary file writable by this script. | ||||||||||
| Alerts: |
| ||||||||||
gnome-screensaver: lock bypass
| Package(s): | gnome-screensaver | CVE #(s): | CVE-2010-0422 | ||||||||||||
| Created: | February 16, 2010 | Updated: | March 8, 2010 | ||||||||||||
| Description: | From the Red Hat bugzilla:
gnome-screensaver can lose its keyboard grab when locked, exposing the system to intrusion by adding and removing monitors. | ||||||||||||||
| Alerts: |
| ||||||||||||||
kernel: several vulnerabilities
| Package(s): | kernel | CVE #(s): | CVE-2010-0410 CVE-2010-0415 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Created: | February 12, 2010 | Updated: | October 8, 2010 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: | From the Red Hat bugzilla: Sebastian Krahmer found a problem in the drivers/connector/connector.c code where users could send/allocate arbitrary amounts of NETLINK_CONNECTOR messages to the kernel, causing OOM condition, killing selected processes or halting the system. CVE-2010-0410
From the Red Hat bugzilla: Ramon de C. Valle spotted a problem in sys_move_pages, where "node" value is read from userspace, but not limited to the node set within the kernel itself. Due to the bit tests in mm/migrate.c:do_move_pages it is easy to read out the kernel memory (as node can also be negative). CVE-2010-0415 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Alerts: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mod_security: multiple vulnerabilities
| Package(s): | mod_security | CVE #(s): | |||||||||
| Created: | February 16, 2010 | Updated: | February 17, 2010 | ||||||||
| Description: | From the Red
Hat bugzilla:
Multiple security flaws, which might lead to bypass of intended security restrictions and denial of service, have been reported and fixed in ModSecurity. | ||||||||||
| Alerts: |
| ||||||||||
openoffice.org: buffer overflows
| Package(s): | openoffice.org | CVE #(s): | CVE-2009-2140 | ||||||||||||||||
| Created: | February 11, 2010 | Updated: | May 24, 2010 | ||||||||||||||||
| Description: | From the Mandriva alert:
Multiple heap-based buffer overflows allow remote attackers to execute arbitrary code via a crafted EMF+ file. | ||||||||||||||||||
| Alerts: |
| ||||||||||||||||||
openoffice.org: multiple vulnerabilities
| Package(s): | openoffice.org | CVE #(s): | CVE-2009-2949 CVE-2009-2950 CVE-2009-3301 CVE-2009-3302 | ||||||||||||||||||||||||||||||||||||||||||||
| Created: | February 12, 2010 | Updated: | November 8, 2010 | ||||||||||||||||||||||||||||||||||||||||||||
| Description: | From the Red Hat advisory:
An integer overflow flaw, leading to a heap-based buffer overflow, was found in the way OpenOffice.org parsed XPM files. An attacker could create a specially-crafted document, which once opened by a local, unsuspecting user, could lead to arbitrary code execution with the permissions of the user running OpenOffice.org. Note: This flaw affects embedded XPM files in OpenOffice.org documents as well as stand-alone XPM files. (CVE-2009-2949) An integer underflow flaw and a boundary error flaw, both possibly leading to a heap-based buffer overflow, were found in the way OpenOffice.org parsed certain records in Microsoft Word documents. An attacker could create a specially-crafted Microsoft Word document, which once opened by a local, unsuspecting user, could cause OpenOffice.org to crash or, potentially, execute arbitrary code with the permissions of the user running OpenOffice.org. (CVE-2009-3301, CVE-2009-3302) A heap-based buffer overflow flaw, leading to memory corruption, was found in the way OpenOffice.org parsed GIF files. An attacker could create a specially-crafted document, which once opened by a local, unsuspecting user, could cause OpenOffice.org to crash. Note: This flaw affects embedded GIF files in OpenOffice.org documents as well as stand-alone GIF files. (CVE-2009-2950) | ||||||||||||||||||||||||||||||||||||||||||||||
| Alerts: |
| ||||||||||||||||||||||||||||||||||||||||||||||
openoffice.org: insufficient macro security
| Package(s): | openoffice.org | CVE #(s): | CVE-2010-0136 | ||||||||||||||||
| Created: | February 12, 2010 | Updated: | November 8, 2010 | ||||||||||||||||
| Description: | From the Debian advisory:
It was discovered that macro security settings were insufficiently enforced for VBA macros. | ||||||||||||||||||
| Alerts: |
| ||||||||||||||||||
otrs2: SQL injection vulnerability
| Package(s): | otrs2 | CVE #(s): | CVE-2010-0438 | ||||||||||||
| Created: | February 11, 2010 | Updated: | August 2, 2010 | ||||||||||||
| Description: | From the Debian alert:
It was discovered that otrs2, the Open Ticket Request System, does not properly sanitise input data that is used on SQL queries, which might be used to inject arbitrary SQL to, for example, escalate privileges on a system that uses otrs2. | ||||||||||||||
| Alerts: |
| ||||||||||||||
postfix: insecure default configuration
| Package(s): | postfix | CVE #(s): | CVE-2010-0230 | ||||
| Created: | February 15, 2010 | Updated: | February 17, 2010 | ||||
| Description: | From the SUSE advisory: The value of SMTPD_LISTEN_REMOTE accidentally defaulted to 'yes'. The postfix smtp daemon therefore was reachable over the network by default. This update resets the value to 'no' in /etc/sysconfig/mail. If you intentionally want postfix to listen for remote connections you need to manually set it to 'yes' again. | ||||||
| Alerts: |
| ||||||
ruby: arbitrary code execution
| Package(s): | ruby1.9 | CVE #(s): | CVE-2009-4124 | ||||
| Created: | February 16, 2010 | Updated: | February 17, 2010 | ||||
| Description: | From the Ubuntu advisory:
Emmanouel Kellinis discovered that Ruby did not properly handle certain string operations. An attacker could exploit this issue and possibly execute arbitrary code with application privileges. | ||||||
| Alerts: |
| ||||||
samba: read/write access on protected files
| Package(s): | samba | CVE #(s): | |||||
| Created: | February 15, 2010 | Updated: | February 17, 2010 | ||||
| Description: | From the Pardus advisory: The weakness is caused due to the insecure "wide links" option being enabled by default, which allows the creation of symlinks to directories placed outside a writable share. This can be exploited to gain read and write access to restricted directories with the privileges of the e.g. guest account user via directory traversal attacks. Successful exploitation without authentication requires that a public writable share is exported and that the option "wide links" is set to "yes" (default). | ||||||
| Alerts: |
| ||||||
sun-java: arbitrary code execution
| Package(s): | sun-jdk sun-jre | CVE #(s): | |||||
| Created: | February 15, 2010 | Updated: | February 17, 2010 | ||||
| Description: | From the Pardus advisory: The vulnerability is caused from package.py, postInstall script of sun-java package. It tries to create /opt/sun-jdk/jre/.systemPrefs directory with "os.makedirs()" function, however default permission of the directories created by os.makedirs() is 0777. This allows anyone to replace sun java binaries, which can be used to execute arbitrary code. NOTE: This vulnerability is Pardus specific. | ||||||
| Alerts: |
| ||||||
tomcat6: multiple vulnerabilities
| Package(s): | tomcat6 | CVE #(s): | CVE-2009-2693 CVE-2009-2901 CVE-2009-2902 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Created: | February 12, 2010 | Updated: | December 28, 2012 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: | From the Ubuntu advisory:
It was discovered that Tomcat did not correctly validate WAR filenames or paths when deploying. A remote attacker could send a specially crafted WAR file to be deployed and cause arbitrary files and directories to be created, overwritten, or deleted. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Alerts: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
webmin: cross-site scripting
| Package(s): | webmin | CVE #(s): | CVE-2009-4568 | ||||
| Created: | February 15, 2010 | Updated: | February 17, 2010 | ||||
| Description: | From the Mandriva advisory: [...] a cross-site scripting issue which allows remote attackers to inject arbitrary web script or HTML via unspecified vectors (CVE-2009-4568). | ||||||
| Alerts: |
| ||||||
Page editor: Jake Edge
Next page:
Kernel development>>
