<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Vulnerability Analysis Blog</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/" />
    <link rel="self" type="application/atom+xml" href="https://www.cert.org/blogs/vuls/atom.xml" />
    <id>tag:www.cert.org,2008-09-29:/blogs/vuls//1</id>
    <updated>2008-11-20T21:10:41Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Commercial 4.21-en</generator>

<entry>
    <title>Recommendations to vendors for communicating product security information</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/11/recommendations_to_vendors_for_communicating_product_security_information.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.27</id>

    <published>2008-11-20T21:10:00Z</published>
    <updated>2008-11-20T21:10:41Z</updated>

    <summary>Hi, this is Chad Dougherty of the Vulnerability Analysis team. One of the important roles that our team plays is coordinating vulnerability information among a broad range of vendors. Over the years, we have gained a considerable amount of experience...</summary>
    <author>
        <name>Chad Dougherty</name>
        
    </author>
    
        <category term="Disclosure" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, this is Chad Dougherty of the Vulnerability Analysis team. One of the important roles that our team plays is coordinating vulnerability information among a broad range of vendors. Over the years, we have gained a considerable amount of experience communicating with vendors of all shapes and sizes. Based on this experience, we can offer some guidance to vendors about communicating product security issues.</p>]]>
        <![CDATA[<p style="text-align: left;">Just to be clear, we're talking about product security as opposed to security products. <i>Product security</i> involves vulnerabilities caused by programming or design defects, insecure default or recommended deployment configurations, and other similar issues. These issues potentially affect any product offered by a vendor, including <i>security products</i> such as firewalls, antivirus, and authentication services. This distinction is likely obvious to most readers, but we've seen confusion about it before so it makes sense to clarify.<br /> <br /> First, let's address the topic of receiving information about product security. Vendors should provide a persistent and reliable mechanism for researchers to report vulnerabilities. We agree with statements that, for most vendors, it's a matter of &quot;when&quot; you'll receive a report of a vulnerability affecting your products, not a matter of &quot;if.&quot;&nbsp; Here are some specific recommendations:</p> <ul>     <li><b>Provide an easily identifiable role email address specifically for product security issues</b><br />     In our experience, it's extremely beneficial for the vendor to provide a role email address (e.g., a shared mailbox or an alias) for receiving information. Pick an intuitive and memorable name for the role address, such as &quot;product-security@&quot;, &quot;security-team@&quot;, &quot;security-response@&quot;, or &quot;secure@&quot;. Note that &quot;security@&quot; may not be a viable option because <a href="http://tools.ietf.org/html/rfc2142">IETF RFC 2142</a> suggests using that mailbox name for reporting or inquiring about network operational security issues. Sites that have implemented the recommendations in this RFC may have already allocated that name, and external sites that are familiar with the recommendation may resist sending other types of messages to that address.<br />     <br />     Even if this address only has a small number of recipients, having a fixed point of contact is valuable to external parties. Avoid using individuals as direct points of contact because of the potential problems that can be caused by job changes. Vulnerability reporters get frustrated when messages to individuals bounce or when they learn that the individual is no longer connected with the product(s) in question. While there is some additional management overhead in maintaining a role address, our experience indicates that it's a worthwhile investment. Giving members of the product security group the ability to respond from this role address provides additional consistency to external parties.<br />     <br />     We discourage the use of standard email addresses such as &quot;info@&quot;, &quot;support@&quot;, and &quot;webmaster@&quot; for the security point of contact because security reports sent to these addresses can easily be overlooked or mishandled.</li> </ul> <ul>     <li style="text-align: left;"><b>Provide a web-based reporting form<br />     </b>A web-based reporting form allows vendors to collect reports in a well-structured manner so that the reports can potentially be searched and managed more efficiently. The form also provides a slightly easier mechanism for vulnerability reporters who may wish to remain anonymous. You may want to consider <a href="https://forms.cert.org/VulReport/">our vulnerability reporting form</a> for ideas about how to construct your own page.</li> </ul> <ul>     <li style="text-align: left;"><b>Use cryptography if possible<br />     </b>The vulnerability reports you will receive may contain sensitive information that could be damaging to users or customers if it were exposed to an unauthorized source. Publishing an encryption key corresponding to the role address mentioned above allows researchers, especially those that consider confidential reporting part of the responsible disclosure process, to securely communicate vulnerability reports. If you think the importance of crypto in the vulnerability reporting process is exaggerated, consider this example: We once sent an encrypted mail containing sensitive information to an external researcher. We received a response from the individual telling us how relieved he was that we encrypted the message because his ISP's POP server was discovered to be compromised not long after we sent the message. Disclosure of the information would've had negative implications for a considerable number of parties.<br />     <br />     We use PGP in our processes, but vendors may choose to offer PGP, S/MIME, or both.&nbsp; Maintaining crypto keys also lets vendors sign patches, support bulletins, or advisories. Users can then verify the authenticity of these publications before taking any of the actions they prescribe. Signing can be done with the same key used to receive reports or with a separate signing-only key, depending on the key management practices a vendor chooses to follow. As with the email alias mentioned above, there is some additional overhead in maintaining keys; however, it's been our experience with this, too, that the benefits can outweigh the costs if managed appropriately. The U.S. National Institute of Standards and Technology (NIST) maintains some <a href="http://csrc.nist.gov/groups/ST/toolkit/key_management.html">good resources</a> for key management policies.</li> </ul> <p style="text-align: left;"><br /> Note that we haven't provided any recommendations here about what vendors should actually <b>DO</b> when they receive product security reports. That is a separate topic that we'll try to cover in a future post.<br /> <br /> Because communication should be a bidirectional process, let's next consider the publication of product security information.&nbsp; Here are some specific recommendations:</p> <ul>     <li style="text-align: left;"><b>Provide a &quot;slash security&quot; web page<br />     </b>One of the first places users and potential vulnerability reporters will visit to learn about a vendor's product security is the &quot;/security&quot; page on the vendor's main website (e.g., &quot;http://www.example.com/security&quot;). Ideally, this page will be the primary focal point for everything related to product security. We recommend that it contain or refer to, as appropriate, the following content:<ul>     <li style="text-align: left;">product security bulletins and advisories</li>     <li style="text-align: left;">product security contact information, including all of the resources described above</li>     <li style="text-align: left;">security patches and updates</li>     <li style="text-align: left;">documents (e.g., whitepapers, FAQs, support bulletins, electronic books) describing best practices for secure deployment or operation</li>     <li style="text-align: left;">documents describing secure development practices involving relevant products</li> </ul></li>   <p style="text-align: left;">In some cases, vendors have already devoted the &quot;/security&quot; page to their security product offerings (recall the distinction we described above). Vendors often have a lot of time and money invested in their site layout, so it's unreasonable to expect them to redesign. In these cases, we encourage vendors to include a reference to product security somewhere on the &quot;/security&quot; page, possibly redirecting to a &quot;/support/security&quot; or &quot;/product-security&quot; page, for example.&nbsp; Having &quot;Security&quot; as a dropdown option from a &quot;Support&quot; menu is also helpful.<br /> <br /> We have received positive feedback about vendors that provide good product security pages, and, from a public perception standpoint, it's perhaps the single most valuable security-related resource you can provide.</p> </ul> <ul>     <li style="text-align: left;"><b>Offer security mailing list subscription<br /></b>Sending copies of security advisories (or notifications of their availability on the web) to a mailing list is an effective way to get your users and customers to take action in mitigating a vulnerability. We regularly tell users to subscribe to this type of mailing list for the products they use whenever the lists are available. As with other publications mentioned above, email messages sent to these lists should be cryptographically signed to let users verify the authenticity of the message before taking action. A common technique attackers use is to send spoofed &quot;security advisory&quot; emails that contain malicious code in the form of &quot;security patches.&quot; To confirm authenticity, signing is crucial if you intend to email information to customers.</li> </ul> <p style="text-align: left;"><br /> We recognize that it may be counterproductive for vendors of specialized products or those that are used exclusively in critical deployments to publish product security information so broadly. In these cases, we encourage vendors to contact known customers directly or provide information in a way that is restricted to existing customers.<br /> <br /> One of the underlying themes in this post is the recommendation to centralize points of contact as much as possible. For vendors that have a small or closely related product lines, this centralization can be a straightforward process. However, we understand that many vendors are conglomerates that have a large number of independent divisions. We've dealt with instances where one affected product division had no idea another affected product division even existed. Mergers and acquisitions present another challenge to centralization. The general recommendation we can provide in these cases is to still create points of contact at the coarsest level possible. For example, a company with a network equipment division based in the U.S. and an automation systems division based in Germany might choose to set up &quot;www.bigcorp-networks.example/security/&quot; and &quot;www.bigcorp-automation.de.example/security/&quot; and ideally have links to both of these pages at &quot;www.bigcorp.example/security/&quot;. The same redundancy should apply to email contacts.<br /> <br /> Vendors' attention to product security is receiving increased scrutiny in security and IT communities.&nbsp; Presenting organized methods for communicating product security information is an important element to demonstrating to customers (both current and potential), security researchers, the media, and the general public that you have at least some awareness of and commitment to security.</p>]]>
    </content>
</entry>

<entry>
    <title>Filtering ICMPv6 using host-based firewalls</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/11/icmpv6_types_and_hostbased_fir.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.26</id>

    <published>2008-11-07T16:40:00Z</published>
    <updated>2008-11-07T16:39:52Z</updated>

    <summary><![CDATA[Hey, it's Ryan. This blog entry contains some quick recommendations about filtering certain ICMPv6 types using two host-based firewalls&mdash;Linux ip6tables and Microsoft Vista's advfirewall. If you have suggestions or other ideas, let me know....]]></summary>
    <author>
        <name>Ryan Giobbi</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hey, it's Ryan. This blog entry contains some quick recommendations about filtering certain ICMPv6 types using two host-based firewalls&mdash;Linux ip6tables and Microsoft Vista's <a href="http://support.microsoft.com/kb/947709">advfirewall</a>. If you have suggestions or other ideas, <a href="mailto:cert@cert.org?subject=INFO%23875456">let me know</a>.</p>]]>
        <![CDATA[<p><a href="http://en.wikipedia.org/wiki/ICMPv6">ICMPv6</a> is a protocol that is an integral part of IPv6. ICMPv6 is defined in RFC <a href="http://tools.ietf.org/html/rfc4443">4443</a>, and additional functionality is described in later RFCs. IANA maintains a list of <a href="http://www.iana.org/assignments/icmpv6-parameters">ICMPv6 types</a> with links to the corresponding RFCs. It's not easy to have a functioning IPv6-enabled network without allowing some ICMPv6 types, so below are some examples of how to filter ICMPv6 on hosts using ip6tables and the Vista firewall.</p> <p>Consider these three disclaimers before reading further:</p> <ol>     <li>Don't use any of these rules in production without testing.</li>     <li>These rules may or may not apply to link local addresses. Proceed with caution.</li>     <li>The examples in this entry are not complete. More complete rules are <a href="http://www.cert.org/downloads/IPv6/ip6tables_rules.txt">available</a>.</li>     <li>The ICMPv6 types listed below can be represented by either rules or type codes.</li> </ol> <p>When it comes to building rules, RFC <a href="http://www.ietf.org/rfc/rfc4890.txt">4890</a>, &quot;Recommendations for Filtering ICMPv6 Messages in Firewalls,&quot; has done most of the hard work for us. Looking at section 4.4 and its subsections (we're focusing on host-based firewalls), various ICMPv6 types are assigned to four categories:</p> <ol>     <li>Traffic That Must Not Be Dropped: <br />     Types 1,2,3,4,128,129,130,131,132,143,148,149,151,152,153,133,134,135,136,141,142</li>     <li>Traffic That Normally Should Not Be Dropped:<br />     Types Type 3 - Code 1, Type 4 - Code 0</li>     <li>Traffic That Will Be Dropped Anyway -- No Special Attention Needed: <br />     Types 138,144,145,146,147</li>     <li>Traffic for Which a Policy Should Be Defined:<br />     Types 137,139,140,5-99,102,126</li> </ol> <p>The following example rules do not attempt to cover all the advice in RFC 4890. Instead, we'll get you started with some rules that take advantage of some of the new features offered by IPv6.</p> <p>First, let's set a default deny policy:</p> <ul>     <p><tt>ip6tables -P INPUT -j DROP</tt></p>     <p><tt>ip6tables -P OUTPUT -j DROP</tt></p> </ul> <p>The &quot;Traffic That Must Not Be Dropped&quot; section lists echo request (128) and echo response (129). An attacker could use echo requests (pings) as a DoS attack vector, so we might want to block or limit these requests. Since we're talking about host-based firewalls, we can't stop echo requests from reaching us, but we can limit how many of them we respond to:&nbsp;</p> <ul>     <p><tt>ip6tables -A INPUT -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -j ACCEPT </tt></p>     <p><tt>ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -j ACCEPT</tt></p> </ul> <p>If our host uses DHCPv6 or we manually assign an IPv6 address and gateway, we don't need stateless auto-configuration. We can drop router advertisements and block router solicitations.</p> <p>You could disable the processing of router advertisements in the kernel using <a href="http://linux.die.net/man/8/sysctl">sysctl</a>, and this traffic is dropped by the default policy. For practice, let's reject instead of drop (note that these rules violate RFC 4890 and will break stateless autoconfig):</p> <ul>     <p><tt>ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 133 -j REJECT</tt></p>     <p><tt>ip6tables -A INPUT -p icmpv6 --icmpv6-type 134 -j REJECT</tt></p> </ul> <p>The default setting of the <a href="http://technet.microsoft.com/en-us/library/cc785430.aspx">hop limit</a> field is usually set to 255 and gets decremented by one every time a router forwards a packet. Assuming the router works correctly, this next rule will only allow echo request and echo response messages to and from nodes on the local Ethernet segment. Using the hop limit value, we can allow certain types of traffic only from other nodes connected to the same router.</p> <p>You can adjust the rate to be anything that you think is reasonable. If you only want to use echo request and echo response with nearby nodes, the hl (hop limit) module can be useful. These rules restrict echo request and reply to packets that have 255 as the hop limit:</p> <ul>     <p><tt>ip6tables -A INPUT -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -m hl --hl-eq 255 -j ACCEPT</tt></p>     <p><tt>ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -m hl --hl-eq 255 -j ACCEPT</tt></p>     <p><tt>ip6tables -A INPUT -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -m hl --hl-lt 255 -j DROP</tt></p>     <p><tt>ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -m hl --hl-let 255 -j DROP</tt></p> </ul> <p>By default, the Windows Firewall in Vista (and Server 2008) drops inbound packets and allows outbound packets. Let's work on filtering rules for the &quot;Traffic for Which a Policy Should Be Defined&quot; section of RFC 4890.</p> <p>Use the following command to block router redirects (type 137):</p> <ul>     <p><tt>netsh advfirewall firewall add rule name &quot;block icmpv6 type 137&quot; dir=in action=block protocol=icmpv6:137,any</tt></p> </ul> <p>Although blocking router redirects on untrusted networks is probably a good idea, the default state of the Vista firewall doesn't explicitly allow that ICMPv6 type inbound, so we haven't done anything. Let's try something a little more advanced. This next rule allows ICMPv6 redirect messages, but only if the computer is using the &quot;domain&quot; profile. We could get similar functionality with ip6tables, but only if Networkmanager scripts are used (we might talk about this in a future blog entry).</p> <ul>     <p><tt> netsh advfirewall firewall add rule name &quot;allow icmpv6 type 137 for the domain profile&quot; dir=in action=allow protocol=icmpv6:137,any profile=domain</tt></p> </ul> <p>This rule implies that the computer is logged into a domain controller and has authenticated via Active Directory. Microsoft offers more information about the <a href="http://technet.microsoft.com/en-us/library/cc753545.aspx">profiles</a>.</p> <p>Administrators may worry about bandwidth on some links more than others. The following rule allows inbound echo requests on wired connections only:</p> <ul>     <p><tt>netsh advfirewall firewall add rule name &quot;allow icmpv6 type 128 when wired&quot; dir=in action=allow protocol=icmpv6:128,any inerfacetype=lan</tt></p> </ul> <p>The Vista firewall includes the ability to allow (or deny) connections that are authenticated by IPsec. The security= directive can also require that connections are authenticated (authenticate) or authenticated and encrypted (authenc):</p> <ul>     <p><tt>netsh advfirewall firewall add rule name &quot;allow icmpv6 type 128 when wired&quot; dir=in action=allow protocol=icmpv6:128,any security=authenticate</tt></p>     <p><tt>netsh advfirewall firewall add rule name &quot;allow icmpv6 type 128 when wired&quot; dir=in action=allow protocol=icmpv6:128,any security=authenc</tt></p> </ul> <p>If you'd like to learn more about configuring the Vista firewall by using netsh commands, see the Microsoft Technet article &quot;<a href="http://technet.microsoft.com/en-us/library/cc771920.aspx">Netsh Commands for Windows Firewall with Advanced Security</a>.&quot; The ip6tables documentation is in their <a href="http://manpages.ubuntu.com/manpages/intrepid/man8/ip6tables.html">man page</a>.</p> <p>If you're interested in ip6tables rules, we have a more complete <a href="http://www.cert.org/downloads/IPv6/ip6tables_rules.txt">list</a> that includes rules not mentioned in this blog entry.</p>]]>
    </content>
</entry>

<entry>
    <title>Reported Vulnerability in CERT Secure Coding Standards Website</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/10/reported_vulnerability_in_secu.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.29</id>

    <published>2008-10-29T16:04:00Z</published>
    <updated>2008-10-29T16:04:42Z</updated>

    <summary><![CDATA[Hi, it's Will. Recently, a blog author reported that the CERT&reg; Secure Coding Standards website, which runs on Atlassian Confluence, contained a SQL injection vulnerability. After analyzing the report and discussing it with the Confluence vendor, we have concluded that...]]></summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, it's Will. Recently, a blog author <a href="http://www.0x000000.com/?i=323">reported</a> that the CERT<sup>&reg;</sup> Secure Coding Standards website, which runs on Atlassian Confluence, contained a SQL injection vulnerability. After analyzing the report and discussing it with the Confluence vendor, we have concluded that the behavior described is not a vulnerability.</p>]]>
        <![CDATA[<p>On October 24, 2008, rvdh posted an entry on the 0x000000 blog that implied that the <a href="https://www.securecoding.cert.org">CERT Secure Coding</a> website contained a SQL injection vulnerability. This website runs Atlassian <a href="http://www.atlassian.com/software/confluence/">Confluence</a>, which is used by multiple organizations. If there were a publicly known SQL injection vulnerability in the Confluence software, it would have a pretty widespread effect on these organizations, CERT included. This prompted us to investigate the issue.</p><p>When performing a specific query to the Confluence software, an error and detailed stack trace is displayed to the user. From this error, rvdh draws the following conclusion: &quot;^ Oops, besides this hideous blob of intelligence it also let us modify the SQL query. Finally something really interesing to discuss at those cocktail parties or is it?&quot;</p><p>It is true that the stack trace is ugly, but that's about as far as the flaw goes. The malformed query does not make it to the SQL part of the Confluence code. If you look at the stack trace, you will notice that the error is generated by the <a href="http://hudson.zones.apache.org/hudson/job/Lucene-trunk/javadoc//org/apache/lucene/queryParser/QueryParser.html">QueryParser</a> component of <a href="http://lucene.apache.org/java/docs/">Apache Lucene</a>. It's not clear where rvdh draws the conclusion that you can modify the SQL query. Sure, you have control over what values might be used to perform the search, but that is expected.</p><p>Here is the response from Atlassian, which is the vendor that produces Confluence:</p><blockquote><p><i>The proposed &quot;attack&quot; supplies the server with an invalid search query that causes Confluence to display an error message. This is a bug only insofar as we don't present a better error message.</i></p><ul><li><i>The query in question is performed against the Lucene index. It is never passed anywhere near SQL, so it can not be used for SQL injection Lucene queries are read-only, so it is impossible for a search query to modify the index in any way, however constructed</i></li><li><i>Lucene queries are constructed programatically, so there is no way for the user-supplied portion of the query can effect the query's security constraints and view data that could not otherwise be found in a search by that user</i></li><li><i>As an application that is mostly used in intranets, Confluence's default error page is very wordy. Customers who want to limit the amount of information leaked during system errors can do so by editing their 500.jsp file to remove the backtrace and error information.</i></li><li><i>Even if this were an SQL query, Confluence uses standard prepared-statement-style parameter insertion to generate SQL queries. As such it is highly resistant to SQL injection attacks.</i></li></ul><p><i>For more information about Confluence security practices, and a list of all recorded Confluence security advisories, please see this page:<br /><br /></i><a href="http://confluence.atlassian.com/display/DOC/Confluence+Security"><i>http://confluence.atlassian.com/display/DOC/Confluence+Security</i></a></p></blockquote>]]>
    </content>
</entry>

<entry>
    <title>Ping sweeping in IPv6</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/09/ping_sweeping_in_ipv6.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.25</id>

    <published>2008-09-12T19:06:00Z</published>
    <updated>2008-09-12T19:23:14Z</updated>

    <summary>Hello, its Ryan. We&apos;ve noticed a misconception about IPv6 that is popular on the internet: that IPv6 addresses are hard to ping sweep because there are so many possible addresses. Ping sweeping can lead to port scanning, so this misconception...</summary>
    <author>
        <name>Ryan Giobbi</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Discovery" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hello, its Ryan. We've noticed a misconception about IPv6 that is popular on the internet: that IPv6 addresses are hard to ping sweep because there are so many possible addresses. Ping sweeping can lead to port scanning, so this misconception is viewed as a security feature. In this post, I'll prove that, while it won't work across the internet, ping sweeping on the local network is <i>easier </i>in IPv6 than in IPv4.</p>]]>
        <![CDATA[<p>Before we go further, if you don't know what IPv6 is, read this <a href="http://en.wikipedia.org/wiki/Ipv6">Wikipedia entry</a>. Essentially, IPv6 is a new protocol that is a lot like the currently deployed IPv4, but it has many more addresses (about 2^128 total). It is so much like IPv4 that a lot of network gear supports IPv6 without any modifications. Most newer operating systems have native IPv6 support, and many prefer IPv6 connections over IPv4 ones.</p><p>On our IPv6 test network, we are running a few Linux machines and an OS X laptop. On one of the Linux machines, we run the following command:</p><blockquote><p>ping6 -I eth0 ff02::1</p></blockquote><p>And, on this machine, the neighbor cache fills up with all the link local addresses of the other computers connected to the node. Linux systems with iproute2 can use command</p><blockquote><p>ip neighbor</p></blockquote><p>to show the neighor cache. Folks on Windows Vista and Server 2008 can use the netsh command</p><blockquote><p>netsh interface ipv6 show neighbors</p></blockquote><p>What just happened?</p><p>Well, we sent an ICMPv6 echo request (type 128) message to the <a href="http://www.iana.org/assignments/ipv6-multicast-addresses">all-nodes</a> multicast address. All the nodes that were listening sent back the ICMPv6 echo reply (type 129) message. When we received these messages, their link-local (and MAC) addresses were added to our neighbor cache. eth0 is the interface connected to the network (the -I flag is needed when pinging the multicast address).</p><p>Ok, so that was fun--we just created a list of all the link layer addresses on our Ethernet segment. The next exercise is even more fun. Run this command:</p><blockquote><p>ping6 -B -I eth0 -I [global IPv6 address attached to eth0] ff02::1</p></blockquote><p>Now check the neighbor cache. It will show the global IPv6 (the equivalent of a public IPv4) address. We just discovered the global IPv6 addresses of the hosts on our network.</p><p>These commands won't work across the internet because, in general, multicast isn't supported across the web. They also won't work with hosts that filter ICMPv6 types 128 and 129 (which is not compliant with <a href="http://www.ietf.org/rfc/rfc4890.txt">RFC 4980</a> section 4.4.1). However, it is not possible to block all ICMPv6 types, and an analysis of restrictive host-based firewalls will likely show that some multicast ICMPv6 traffic is allowed.</p><p>So what can you do about this problem? Not that much, and the truth is, it isn't really a problem. Things are working exactly as they should, and security effort is usually better spent making sure hosts are secure, not obscure.</p><p>Many network managers think their networks don't support IPv6 because it hasn't been officially deployed. Most networking gear we tested that works at layer 2 seems to pass IPv6 packets with no problem. Flat networks will probably support IPv6 just fine. Almost all popular operating systems support and prefer IPv6.</p><p>So, what's to prevent an attacker from starting a stateless auto-config server (a way to send router advertisements), passing out IPv6 addresses, and possibly conducting ping sweeps on your network? Probably nothing. If you purchased network security equipment that protects you from IPv4-based attacks, this doesn't need mean that it's broken. IPv6 is a new protocol, and you'll probably need to deploy new equipment, upgrade old equipment, and/or notify users of the risks of running IPv6 on your network. An applicable analogy is that its like purchasing a Blu-Ray disc for a movie that you already own on DVD.</p><p>If you'd like more information about how this works, email us at <a href="mailto:cert@cert.org?subject=INFO%23498112%20-%20Ping%20sweeping%20in%20IPv6">cert@cert.org</a> with INFO#498112 in the subject line. We have some other blog posts about IPv6 coming soon, and we'd like to know answers to these questions:</p><ul><li>Do you deploy commercial or open source network switches or IDS systems that provide robust IPv6 support?</li><li>If you ran these ping6 commands on your network, how effective were they?</li><li>Are your hosts blocking ICMPv6? Do you plan to keep them with that configuration?</li></ul>]]>
    </content>
</entry>

<entry>
    <title>Carpet Bombing and Directory Poisoning</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/09/carpet_bombing_and_directory_p.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.23</id>

    <published>2008-09-04T19:50:08Z</published>
    <updated>2008-09-04T19:50:31Z</updated>

    <summary><![CDATA[Hey, it's Will. Earlier this year, details about &quot;carpet bombing&quot; attacks were released. Apple addressed the issue by prompting users before downloading files, but recent news indicates that Google Chrome, which is based on Apple's WebKit code, is also vulnerable...]]></summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hey, it's Will. Earlier this year, details about &quot;carpet bombing&quot; attacks were released. Apple addressed the issue by prompting users before downloading files, but recent news indicates that Google Chrome, which is based on Apple's WebKit code, is also vulnerable to the same type of attack. However, some people seem to be missing an aspect of the attack that affects <b>all</b> web browsers.</p>]]>
        <![CDATA[<p>When loading a DLL, Microsoft Windows looks for the DLL in a <a href="http://msdn.microsoft.com/en-us/library/ms682586.aspx">certain  sequence</a> of directories. The first match for the file name wins. In most cases, Windows will first look for a DLL in the same  location as the executable. This behavior is what allows the Apple Safari &quot;carpet bombing&quot; vulnerability to  work. If an attacker can place code in a directory that gets searched before Windows finds the &quot;real&quot; DLL, the attacker's code will be executed.</p><p>Consider the following scenario: Suppose that you use a web browser to download files, and you have some directory where you put your downloaded files. As time goes on, that directory gets filled with items that you've  downloaded. Occasionally, you may open one of the trusted programs that you've explicitly downloaded and run it from your browser's download manager or from Windows Explorer.</p><p>If this scenario seems plausible, you may have inadvertently executed malicious code! This risk is even greater if you use a web browser that saves files to your computer without prompting, such as Google Chrome or an older version of Apple Safari for Windows. It's important to note, though, that any web browser or other application is at risk here, too, because the DLL search order behavior is a feature of Microsoft Windows.</p><p>What can you do to protect yourself from this kind of attack? For starters, make sure that your web browser is configured to prompt you before downloading a file. For example, Google Chrome has a preference called &quot;Ask where to save each file before downloading.&quot; Configuring your web browser to prompt you before downloading a file can help prevent a directory from being &quot;poisoned&quot; without your knowledge. The most effective protection, however, is to move a file to a trusted (i.e., empty) directory before executing it. Before running a program in Microsoft Windows, it is not enough to verify that you trust the program itself. You must also trust the directory from which the application is launched. A cluttered download directory is not trustworthy.</p><p>Windows Vista does not appear to be vulnerable to directory poisoning. In my testing, Vista seems to give DLL search order priority to the system directory rather than to the executable's current directory.</p>]]>
    </content>
</entry>

<entry>
    <title>Safely Using Package Managers</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/07/using_package_managers.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.14</id>

    <published>2008-07-10T13:48:04Z</published>
    <updated>2008-07-11T15:35:48Z</updated>

    <summary>Hi, it&apos;s Ryan. Package managers partially automate the process of installing and removing software packages. Most package managers use cryptographic signatures to verify the integrity of packages. In the article Attacks on Package Managers, the authors describe how an attacker...</summary>
    <author>
        <name>Ryan Giobbi</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, it's Ryan. Package managers partially automate the process of installing and removing software packages. Most package managers use cryptographic signatures to verify the integrity of packages. In the article  Attacks on Package Managers, the authors <a href="http://www.cs.arizona.edu/people/justin/packagemanagersecurity/attacks-on-package-managers.html">describe</a> how an attacker can abuse package managers that use digital signatures.</p>]]>
        <![CDATA[<p>Most operating systems have package managers, but UNIX-like systems use them extensively to manage packages on an installed system. Some examples of system-wide package managers (we're purposely avoiding application-specific package managers in this post) are <a href="http://wiki.debian.org/SecureApt">APT</a>, <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=1">Portage</a>, and <a href="http://fedoraproject.org/wiki/Tools/yum">YUM</a>. There are a lot more, though&mdash;Wikipedia has a <a href="http://en.wikipedia.org/wiki/Package_manager#Common_package_management_systems_and_formats">partial list </a>of others.</p> <p>Many of these package managers use cryptographic signatures to verify the integrity of packages. The Debian <a href="http://wiki.debian.org/SecureApt">Wiki</a> describes how APT uses GPG to check packages, and other package managers behave in a similar way.</p> <p>What problems can the attacker cause by gaining control of a mirror? Completely shutting down the mirror server would be easy for users to notice. A more subtle attack would be to distribute packages that are signed but still contain vulnerabilities. How can a package be both signed and vulnerable? Well, before <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0166">CVE-2008-0166</a> was discovered, OpenSSL (OpenSSL versions 0.9.8c-1 to 0.9.8g-9 on Debian-based systems to be precise) did not have any publicly known vulnerabilities. After discovery, OpenSSL had <a href="http://metasploit.com/users/hdm/tools/debian-openssl/">well-known</a> problems, and, until they were updated, SSH servers (OpenSSH uses OpenSSL) were vulnerable. However, the vulnerable version is still a valid signed package. Assuming that a user is obtaining security updates from a third-party mirror, that mirror could pass the user signed packages with known vulnerabilities.</p> <p>Before going any further, it's worth pointing out that this problem isn't limited to open-source vendors. Any software that gets updates via the internet (just about all software) could be affected. However, exploitation is much more difficult when the software vendor directly controls the mirrors--before attacking clients, an attacker needs to locate and take control of the mirror. Many open-source projects make it simple for third parties to become mirrors.</p> <p>So, we've talked about the problem and why it is somewhat of a concern for vendors that don't directly control their mirrors. As far as we can tell, no mirror site has intentionally given clients packages with known vulnerabilities and then exploited those vulnerabilities. Furthermore, there are several things mirror users and administrators can do to protect themselves:</p> <ul>     <li>Administrators can avoid using third-party repositories by running locally hosted <a href="http://apt-mirror.sourceforge.net/">mirrors</a>, setting up <a href="http://docs.fedoraproject.org/yum/en/sn-yum-caching.html">caches</a>, or getting packages from a <a href="https://rhn.redhat.com/rhn/help/release-notes/satellite/sat-release-notes-3.6.0.jsp">trusted source</a>. It is important to note that exploits can be <a href="http://www.google.com/search?hl=en&amp;q=exploit+generation+time&amp;btnG=Google+Search">created rapidly</a>, so even a small delay in getting fixed software can be problematic.<br />     &nbsp;</li>     <li>When third-party repositories need to be enabled, users should select their respositories carefully. How long has the mirror been around? Is it up to date? Is it easier to get the package from another source (such as the developer's home page)? Does the operating system vendor <a href="http://mirror.debian.org/status.html">track</a> the repo?</li> </ul> <p>Projects use mirrors to reduce bandwidth costs and provide <a href="http://groups.google.com/group/linux.dev.kernel/msg/76ae734d543e396d">redundancy</a>. How can software maintainers offer secure mirrors that aren't slow and unstable? Some commercial Linux distributions offer high-speed direct downloads from trusted sources. Another potential solution to this problem is <a href="http://en.wikipedia.org/wiki/BitTorrent_(protocol)">P2P technology</a>. If widely used, programs like <a href="http://debtorrent.alioth.debian.org/">DebTorrent</a> may allow official repositories to distribute metadata and tracker information while decreasing bandwidth costs.</p> <p>The issues we've talked about (mirror distribution, software integrity) are a subset of the larger problem of obtaining, installing, and managing trusted software. The importance of obtaining verified, trusted packages needs to managed according to your security policy.</p> <p>Thanks to Justin Cappos and Justin Samuel for providing us information about these issues. A special thanks to all the vendors who gave us feedback.</p> <p>If you send us <a href="mailto:cert@cert.org?subject=VU%23230187">mail</a>, we are tracking these issues as VU#230187.</p>]]>
    </content>
</entry>

<entry>
    <title>ActiveX Vulnerability Discovery at the CERT/CC</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/07/activex_vulnerability_discover.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.19</id>

    <published>2008-07-03T13:55:01Z</published>
    <updated>2008-07-03T13:55:56Z</updated>

    <summary>Hi, it&apos;s Will. Anybody who has been keeping an eye on the US-CERT Vulnerability Notes has probably noticed that I&apos;ve published a lot of ActiveX vulnerabilities. So it should be no surprise to learn that we have been testing ActiveX...</summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Discovery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, it's Will. Anybody who has been keeping an eye on the <a href="http://www.kb.cert.org/vuls">US-CERT Vulnerability Notes</a> has probably noticed that I've published a lot of <a href="http://www.kb.cert.org/vuls/byid?searchview&amp;query=activex%20and%20written%20by%20will%20dormann&amp;searchorder=3">ActiveX vulnerabilities</a>. So it should be no surprise to learn that we have been testing ActiveX controls and discovering vulnerabilities in the process.</p>]]>
        <![CDATA[Almost all of the ActiveX vulnerabilities that I have uncovered were discovered with a tool developed at CERT called Dranzer. We have recently published a paper called <a href="http://www.cert.org/archive/pdf/dranzer.pdf">Vulnerability Detection in ActiveX Controls through Automated Fuzz Testing</a>. This paper describes the various attack surfaces of ActiveX controls, the techniques used to test those attack surfaces, and also some results obtained by testing a large number of downloaded ActiveX controls. It may also give some insight into why the <a href="http://www.cert.org/tech_tips/securing_browser/">Securing Your Web Browser</a> document suggests disabling ActiveX in the Internet Zone of Internet Explorer.]]>
    </content>
</entry>

<entry>
    <title>Signed Java Applet Security: Worse than ActiveX?</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/06/signed_java_security_worse_tha.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.10</id>

    <published>2008-06-03T18:38:12Z</published>
    <updated>2008-06-19T13:22:14Z</updated>

    <summary>Hi, it&apos;s Will again. ActiveX vulnerabilities seem to be getting a lot of attention lately. However, Java applets are also a concern....</summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[Hi, it's Will again. <a href="http://www.kb.cert.org/vuls/byid?searchview&amp;query=activex">ActiveX vulnerabilities</a> seem to be getting a lot of attention lately. However, <a href="http://www.cert.org/tech_tips/securing_browser/#java">Java</a> applets are also a concern. ]]>
        <![CDATA[The classic understanding of a Java applet is that it runs in a <a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/spec/security-spec.doc1.html#18313">sandbox</a>
in your web browser. This model prevents a Java applet from accessing sensitive resources, such as your file system or registry. So, barring vulnerabilities in the Java Virtual Machine (JVM), Java applets should not have the ability to do anything malicious on your system. That was the case with the JDK 1.0 security model.<br /><br />Starting with version 1.1, Java included support for signed applets. These applets, which can run in your web browser as the result of viewing a web page, are not limited by any sandbox and can do just about anything that native code can. In other words, a signed Java applet should be treated the same as an EXE file on Windows.<br /><br />When a web page attempts to run a signed Java applet, the Java Runtime Environment (JRE) will prompt the user before executing the code. When a Java applet without a trusted certificate is started, the JRE will, by default, still allow the user to execute the code. Some versions of JRE may warn the user that the digital signature cannot be verified. For example, the following dialog is presented when the JRE encounters an applet with an untrusted signature, such as a self-signed applet:<br /><br /><img alt="JRE Dialog for invalid signature" src="/blogs/vuls/2008/05/selfsigned.png" class="mt-image-none" style="" height="322" width="516" /><br /><br /><br />If the Java applet is signed with a trusted certificate, the user will still be prompted. However, the option to <b>Always trust content from this publisher</b> is enabled by default. This means that if you run a signed Java applet from one particular vendor, you will trust <b>all</b> Java applets from that vendor by default, regardless of the site that is hosting them. The following dialog is presented when a Java applet with a valid signature is started. Note the default option of trusting all applets signed by that publisher.<br /><br /><img alt="JRE Dialog for valid signature" src="/blogs/vuls/2008/05/validsigned.png" class="mt-image-none" style="" height="322" width="516" />
<br /><br />Now let's consider the vulnerability remediation steps regarding a signed
Java applet. With ActiveX, Microsoft has the ability to deploy a <a href="http://support.microsoft.com/kb/240797">kill bit</a>
for a control that is vulnerable. Everybody who is set up for automatic updates from Microsoft will receive the kill bit, which prevents the control from being used in Internet Explorer. But what happens if a vulnerable signed Java applet is discovered? There is no Java analogy to the ActiveX kill bit. An attacker can host a copy of the Java applet on his or her own web site, and that applet will still have a valid digital signature. Keep in mind that just like with ActiveX, a digital signature gives no indication of the safety of running the code. It can only indicate that the code was actually written by the organization that is listed on the signature. And even then, the user has to trust that the Certification Authority (CA) did due diligence in verifying the identity of the code signer.<br /><br />This lack of
remediation options is why I believe that from a security perspective, signed Java is about on par with ActiveX... circa 1996. Internet Explorer started supporting the kill bit and blocking ActiveX controls with invalid signatures in version 4, which was released in 1997.<br /><br />So how can you protect yourself against malicious or vulnerable signed Java applets? The easiest way is to disable Java, as explained in our <a href="http://www.cert.org/tech_tips/securing_browser/">Securing Your Web Browser</a> document. If you need to use Java, there are other options that can restrict the use of signed Java applets:<br /><br /><ol><li>The option to <b>Allow user to grant permissions to signed content</b> can be disabled. With this option disabled, unsigned applets will still run in the Java sandbox. But any signed applet will be denied.</li><li>The option to <b>Allow user to grant permissions to content from an untrusted authority</b> can be disabled. Unsigned applets will still run, as with the above option. Applets that are signed with a trusted certificate authority can also run. But applets that have an untrusted signature, such as a self-signed applet, will be blocked.</li><li>The options <b>Check publisher certificate for revocation</b> and <b>Enable online certificate validation</b> should be enabled. These options will enable further validation of Java certificates. Note that these options are not enabled by default.</li></ol>The following dialog shows the relevant options. These options are available in the Java Control Panel item for Windows, in the <b>Advanced</b> tab, listed under <b>Security</b>. Other platforms may require different steps.<br /><br /><img alt="Java security settings" src="/blogs/vuls/2008/05/javasecurity.png" class="mt-image-none" style="" height="479" width="440" /><br /><br />From the user awareness point of view, if you are ever presented with a dialog that is requesting permission to run a signed Java applet, keep in mind that the code may be malicious. If you do not trust <b><i>both</i></b> the <b>Publisher</b> and the <b>From</b> fields in the dialog, you should not run the application.<br /><div><br /></div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>Is Your Adobe Flash Player Updated?</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/05/is_your_adobe_flash_player_upd.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.11</id>

    <published>2008-05-29T22:42:15Z</published>
    <updated>2008-05-29T22:42:20Z</updated>

    <summary>Hey, it&apos;s Will. As you may already be aware, there is active exploitation of a vulnerability in Adobe Flash. So, it&apos;s a good idea to make sure that you have the latest version of Flash Player, which, at the time...</summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[Hey, it's Will. As you may already be aware, there is <a href="http://www.us-cert.gov/cas/techalerts/TA08-149A.html">active exploitation</a> of a vulnerability in Adobe Flash. So, it's a good idea to make sure that you have the latest version of Flash Player, which, at the time of this writing, is 9.0.124.0. Even if you think that you are up to date, can you be sure? ]]>
        <![CDATA[Many security researchers, myself included, incorrectly determined that the recent attacks using malicious SWF files were exploiting a zero-day vulnerability in Adobe Flash. How could the same mistake be made by independent researchers? The conclusion I came to is that although the characteristics of the attack looked like exploitation of a zero-day vulnerability, in truth, the systems probably weren't running versions of Flash Player that addressed the vulnerability being exploited. It is actually difficult to determine if Flash has been updated completely and correctly on any given system.<br /><br />It is important to realize that a system may contain several instances of the Adobe Flash Player. The <a href="http://www.adobe.com/go/full_flashplayer_win">Adobe Flash Player plug-in installer</a> for Windows will install <b>only</b> the Netscape-style plug-in for Flash, which is used by Mozilla Firefox, Opera, and other browsers that support plug-ins. The <a href="http://www.adobe.com/go/full_flashplayer_win_ie">Adobe Flash Player ActiveX installer</a> for Windows will install <b>only</b> the ActiveX version of Flash, which is used by Internet Explorer and other programs that use Internet Explorer components.<br /><br />The situation that someone may run into is that the plug-in version of Flash may be completely up to date, but the ActiveX version is not, or vice-versa. <br /><br />All Microsoft Windows systems should run the the ActiveX installer. If you have any browser other than Internet Explorer, also run the plug-in installer. Alternatively, visit the <a href="http://www.adobe.com/go/getflashplayer">Get Flash Player</a> page with every browser on your system to install the appropriate Flash Player versions.<br /><br />Another cause for confusion is that Firefox allows plug-ins to be installed either system-wide or in a specific user's profile. As a result, a Flash plug-in that was installed in one manner may not be updated properly if the new version of Flash is installed in a different manner. Other browsers may have similar issues.<br /><br />At the very least, make sure that you have attempted to upgrade to the latest version of Adobe Flash. But to make sure that you are protected, it would be wise to investigate whether your system has multiple versions of Adobe Flash Player, and update each of those accordingly.<br />]]>
    </content>
</entry>

<entry>
    <title>Who has my cookies?</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/05/cookies.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.4</id>

    <published>2008-05-15T19:21:16Z</published>
    <updated>2008-06-18T22:26:15Z</updated>

    <summary>Hi, Ryan Giobbi from the Vulnerability Analysis team making this post. The CERT/CC has been tracking cross-site scripting vulnerabilities for a long time, and the actual vulnerabilities haven&apos;t changed much over the years. However, some technology that was developed to...</summary>
    <author>
        <name>Ryan Giobbi</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[Hi, Ryan Giobbi from the Vulnerability Analysis team making this post. The CERT/CC has been <a href="http://www.google.com/search?hl=en&amp;q=site%3Akb.cert.org+cross-site+scripting&amp;btnG=Search">tracking</a> cross-site scripting vulnerabilities for a long time, and the actual vulnerabilities haven't changed much over the years. However, some technology that was developed to make life easier can actually be exploited to expand the impact of a cross-site scripting attack. ]]>
        <![CDATA[Single sign-on is an access-control technology that enables a user to
login once and gain access to multiple systems. Some
websites use single sign-on to allow access to multiple applications.
While this type of authentication is convenient, it has the side effect
of introducing an opportunity for an attacker to gain access to
multiple systems by targeting a single vulnerable application.<br /><br />Here's some background information on how some websites do authentication: many websites set <a href="http://en.wikipedia.org/wiki/Http_cookies">cookies</a>
to identify, track, and authenticate users. Online services that use
cookies for authentication are constrained by the browser's <a href="http://www.mozilla.org/projects/security/components/same-origin.html">same origin policy</a>. For example, the cookie set by http://mail.example.com cannot access the cookie set by http://www.example.com.<br /><br />To support single sign-on, web applications may set one
authentication cookie and structure their URLs to allow multiple sites to access the
cookie. Under this architecture, a single XSS (cross-site scripting)
vulnerability could affect numerous applications.<br /><br />A few weeks ago, we saw a report of an XSS vulnerability in Google Spreadsheets over on Billy (BK) Rios's <a href="http://xs-sniper.com/blog/2008/04/14/google-xss/">blog</a>. These type of vulnerabilities are <a href="http://www.google.com/search?hl=en&amp;q=site%3Anvd.nist.gov+%22xss%22+&amp;btnG=Search">not rare</a>, but this one was interesting because of its impact&mdash;Google uses single sign-on to manage access to many of their <a href="http://labs.google.com/">hosted applications</a>.<br /><br />Web
application vendors can (and often do) plug XSS holes in their services
to prevent exploitation of these types of vulnerabilities&mdash;but what
can users do to protect themselves? The <a href="http://www.cert.org/tech_tips/securing_browser/">Securing Your Web Browser</a><a href="http://www.us-cert.gov/reading_room/securing_browser/"></a>
document has some good tips, and users should also consider how often
they are logged into web applications. Certain XSS attacks (such as
ones that steal authentication cookies) only work if the user is logged
into the web application and has an authentication cookie on their
system. To limit exposure to these types of vulnerabilities, users can
uncheck "remember me on this computer" options on web-application login
forms and can regularly <a href="http://support.mozilla.com/en-US/kb/Clearing+private+data">delete cookies</a>. <br />&nbsp;]]>
    </content>
</entry>

<entry>
    <title>The Dangers of Windows AutoRun</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/04/the_dangers_of_windows_autorun.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.6</id>

    <published>2008-04-24T23:12:00Z</published>
    <updated>2008-11-21T21:22:38Z</updated>

    <summary>Hi, this is Will Dormann of the CERT/CC Vulnerability Analysis team. A few months ago, reports of infected digital picture frames hit the media. I was curious about how the malicious code was being executed, so I began investigating the...</summary>
    <author>
        <name>Will Dormann</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, this is Will Dormann of the CERT/CC Vulnerability Analysis team. A few months ago, reports of <a href="http://www.securityfocus.com/news/11499">infected digital picture frames</a> hit the media. I was curious about how the malicious code was being executed, so I began investigating the Microsoft AutoRun and AutoPlay features.</p>]]>
        <![CDATA[<p>AutoRun, which was introduced with Windows 95, has two primary behaviors:</p> <ol>     <li>For certain device types, such as CD-ROM drives, Windows will automatically execute the program that is specified in the <tt>Autorun.inf</tt> file when the device is connected or when media is inserted. The security impact of this feature is that somebody with physical access to a Windows computer can run malicious code by inserting a CD-ROM into the drive. But we already know that <a href="http://www.kb.cert.org/vuls/id/789985">physical access</a> to a computer can give an attacker the ability to do just about anything, right?</li>     <li>When a drive icon is clicked in Windows Explorer, Windows will execute the program specified in the <tt>Autorun.inf</tt> file. In this case, user interaction is required for the code to execute. However, the AutoRun behavior can be unexpected, as it is common to believe that clicking the drive icon will display the contents of the drive, rather than executing code.</li> </ol> <p>In the process of investigating AutoRun behavior, I noticed two interesting things:</p> <ol>     <li>With Windows Vista, the <a href="http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/91525.mspx">NoDriveTypeAutoRun</a> registry value actually has the opposite behavior than what Windows has documented. In other words, if you think that you have protected yourself by restricting AutoRun with this registry value, you have actually put yourself at additional risk. We have published details about this issue as US-CERT Vulnerability Note<a href="http://www.kb.cert.org/vuls/id/889747"> VU#889747</a>. The end result here is that a user may inadvertently execute code by clicking on the icon for a device, such as a USB thumb drive.</li>     <li>Although the documentation for NoDriveTypeAutoRun indicates that Windows will not use AutoRun features on USB mass storage devices, this does not necessarily mean that users can safely plug any USB device into their system. For example, a system will recognize Sandisk U3 USB devices as both a CD-ROM device and a USB mass-storage device. Considering that an attacker can easily modify the CD-ROM contents of a U3 device, you now have a way for an attacker to execute code of their choice on a Windows system by simply plugging in a small USB device. No other user interaction is required.</li> </ol> <p>The information about malicious use of U3 drives is not particularly new. But how many systems have AutoRun disabled? One aspect that makes the problem confusing is that it is not obvious how to disable AutoRun precisely and effectively. VU#889747 originally listed several steps that appeared to be effective in my testing, but they also had the adverse effect of disabling <a href="http://technet2.microsoft.com/windowsserver/en/library/6ab79a48-58c2-488f-871e-9c458924b46e1033.mspx?mfr=true">MCN</a> messages, which can prevent Windows from detecting when a CD-ROM or DVD is changed.<br /> <br /> One of our readers has provided us with a workaround that disables AutoRun closest to the source, which is the <tt>Autorun.inf</tt> file itself. By importing the following registry key, the <tt>Autorun.inf</tt> file will no longer be used to determine AutoRun and AutoPlay actions:</p> <ul><tt>REGEDIT4</tt><br />     <tt>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]</tt><br />     <tt>@=&quot;@SYS:DoesNotExist&quot;</tt><br /> </ul> <p>This setting appears to disable AutoRun behaviors without causing other negative side-effects. More details about this workaround are available in Nick Brown's blog entry <a href="http://nick.brown.free.fr/blog/2007/10/memory-stick-worms">Memory stick worms</a>.</p> <p><b>Update (November 21, 2008):</b></p> <p>Microsoft Windows may cache AutoRun information from connected devices. The impact of this feature is that even after disabling AutoRun as described above, you may still experience AutoRun behaviors for devices (USB drives, network shares, etc.) that have been connected to the computer in the past. For this reason, we also recommend removing this cache by deleting the <tt>MountPoints2</tt> registry key for each user:</p> <ul> <tt>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2</tt> </ul>]]>
    </content>
</entry>

<entry>
    <title>Vulnerability Analysis at the CERT/CC</title>
    <link rel="alternate" type="text/html" href="https://www.cert.org/blogs/vuls/2008/04/vulnerability_analysis_at_the.html" />
    <id>tag:www.cert.org,2008:/blogs/vuls//1.3</id>

    <published>2008-04-17T15:51:00Z</published>
    <updated>2008-06-18T22:21:46Z</updated>

    <summary>Hi, this is Art Manion, the Vulnerability Analysis team lead at the CERT Coordination Center (CERT/CC). For our first blog entry, I&apos;d like to briefly explain our efforts to reduce software vulnerabilities....</summary>
    <author>
        <name>Art Manion</name>
        
    </author>
    
        <category term="Analysis" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Disclosure" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="https://www.cert.org/blogs/vuls/">
        <![CDATA[<p>Hi, this is Art Manion, the Vulnerability Analysis team lead at the CERT Coordination Center (CERT/CC). For our first blog entry, I'd like to briefly explain our efforts to reduce software vulnerabilities.</p>]]>
        <![CDATA[<p>One approach is to remove known vulnerabilities from deployed software (from another angle, this means reducing the amount of time that software contains a particular vulnerability). We consider this &quot;traditional&quot; vulnerability analysis and coordination:</p>
<ol>
    <li>find out about a vulnerability, whether from a public source, private report, or internal discovery</li>
    <li>analyze the vulnerability and consider threat scenarios</li>
    <li>identify and securely contact vendors that may be affected</li>
    <li>coordinate disclosure to private and public audiences</li>
</ol>
<p>Summarized neatly, this all sounds easy enough. In practice, though, things aren't so simple:</p>
<ul>
    <li>There are <a href="http://www.cert.org/stats/vulnerability_remediation.html">a lot</a> of vulnerabilities. Which ones are the most severe? What do I consider severe? What do you consider severe?</li>
    <li>How should I expend effort to get the most out of my limited vulnerability analysis and response resources?</li>
    <li>Which vendors produce, maintain, or distribute the vulnerable software? How do I contact those vendors and communicate securely with them?</li>
    <li>If I find a vulnerability, how do I report it, and are there any <a href="http://www.cerias.purdue.edu/weblogs/pmeunier/policies-law/post-38/">risks</a> associated with reporting?</li>
    <li>Which <a href="http://www.ee.oulu.fi/research/ouspg/sage/disclosure-tracking/index.html">disclosure</a> practice do I follow? How much and what kind of information should go into an advisory?</li>
</ul>
<p>The CERT/CC works closely with <a href="http://www.us-cert.gov/">US-CERT</a> (part of the Department of Homeland Security) on vulnerability analysis and coordination. For us, public vulnerability disclosure typically results in a US-CERT <a href="http://www.us-cert.gov/cas/techalerts/">Technical Alert</a> or <a href="http://www.kb.cert.org/vuls">Vulnerability Note</a>.<br />
<br />
Experience suggests that we will be dealing with vulnerabilities for years to come. Responding to vulnerability reports, as either a software producer or a consumer, should not be treated as an emergency or &quot;one-off&quot; event. Both software producers (vendors) and consumers (users) should develop vulnerability management capabilities that are built into normal business processes. For vendors, vulnerability management includes advertising ways to receive vulnerability reports, coordinating among internal business units and with external parties, being familiar with coordination and disclosure practices, and delivering vulnerability information and fixed software. For users, vulnerability management involves the following: awareness of new vulnerability information, inventory and patch management, risk assessment, configuration and change control, and consideration of <a href="http://www.msisac.org/scada/">procurement</a> and support contract language.<br />
<br />
Thinking about the subjective question about the severity of a given vulnerability has led us to research ways to make better <a href="http://www.ec2nd.org/papers/10_burch_ec2nd07.pdf">decisions</a> about how to respond to vulnerabilities. But that is a story for another entry.<br />
<br />
What I've described above is focused on responding to vulnerabilities in already deployed software. We are also taking a more proactive approach to reduce the number of newly introduced vulnerabilities. This effort, which falls under the CERT <a href="http://www.cert.org/secure-coding/">Secure Coding Initiative</a>, involves training developers, improving source-code analysis tools, and developing <a href="https://www.securecoding.cert.org/">secure coding standards</a>.<br />
<br />
An administrative note&mdash;our blog is not going to have comments enabled, at least for now.&nbsp; If you'd like to provide feedback, please send us email using the link in the right sidebar. We'll consider updating entries based on feedback we receive.</p>]]>
    </content>
</entry>

</feed>
