<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Microsoft's USGCB Tech Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/fdcc/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/fdcc/feed.xml</link>
    <description>A technical resource to help implement the US Govt Configuration Baseline (USGCB) on the Windows platform.</description>
    <lastBuildDate>Thu, 21 Jan 2016 19:16:05 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>LGPO.exe - Local Group Policy Object Utility, v1.0</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/lgpo-exe-local-group-policy-object-utility-v1-0</link>
      <pubDate>Thu, 21 Jan 2016 19:11:12 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/?p=1411</guid>
      <description><![CDATA[LGPO.exe is a new command-line utility to automate the management of local group policy. It replaces...]]></description>
      <content:encoded><![CDATA[LGPO.exe is a new command-line utility to automate the management of local group policy. It replaces the no-longer-maintained LocalGPO tool that shipped with the Security Compliance Manager (SCM), and the Apply_LGPO_Delta and ImportRegPol tools.

Features:
<ul>
	<li>Import settings into local group policy from GPO backups or from individual policy component files, including Registry Policy (registry.pol), security templates, and advanced auditing CSV files.</li>
	<li>Export local policy to a GPO backup.</li>
	<li>Parse a Registry Policy (registry.pol) file to readable "LGPO text" directly to the console or redirected to a file which can edited and imported into local policy.</li>
	<li>Build a new Registry Policy (registry.pol) file from "LGPO text".</li>
	<li>Enable group policy client side extensions for local policy processing.</li>
</ul>
LGPO.exe can be downloaded from the Security Guidance blog:

<a href="https://blogs.technet.com/b/secguide/archive/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0.aspx">https://blogs.technet.com/b/secguide/archive/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0.aspx </a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Interview on "Taste of Premier" about Security Guidance for Windows 8.1, Windows Server 2012 R2 and IE 11</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/interview-on-taste-of-premier-about-security-guidance-for-windows-8-1-windows-server-2012-r2-and-ie-11</link>
      <pubDate>Tue, 21 Oct 2014 22:06:51 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2014/10/21/interview-on-taste-of-premier-about-security-guidance-for-windows-8-1-windows-server-2012-r2-and-ie-11/</guid>
      <description><![CDATA[Aaron Margosis interviewed on Channel 9's Taste of Premier about Security Guidance for Windows 8.1,...]]></description>
      <content:encoded><![CDATA[Aaron Margosis interviewed on Channel 9's Taste of Premier about Security Guidance for Windows 8.1, Windows Server 2012 R2 and IE 11:

<a href="https://channel9.msdn.com/Blogs/Taste-of-Premier/Taste-of-Premier-Security-Guidance-for-Windows-8-1-Windows-Server-2012-R2-and-IE-11">https://channel9.msdn.com/Blogs/Taste-of-Premier/Taste-of-Premier-Security-Guidance-for-Windows-8-1-Windows-Server-2012-R2-and-IE-11</a>]]></content:encoded>
    </item>
    <item>
      <title>Security baselines for Windows 8.1, Windows Server 2012 R2 and Internet Explorer 11 – FINAL</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11-final</link>
      <pubDate>Fri, 15 Aug 2014 08:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2014/08/15/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11-final/</guid>
      <description><![CDATA[Microsoft has published its security guidance and baselines for Windows 8.1, Windows Server 2012 R2...]]></description>
      <content:encoded><![CDATA[<span style="font-family:Calibri;font-size:medium;">Microsoft has published its security guidance and baselines for Windows 8.1, Windows Server 2012 R2 and Internet Explorer 11.&nbsp; If you have been reluctant to evaluate or deploy these technologies in the absence of specific USGCB guidance, NIST essentially says, "Use the vendor's guidance."&nbsp; Here is the vendor's guidance.&nbsp; Please see these three new blog posts:</span>

<b><a href="https://blogs.technet.com/b/secguide/archive/2014/08/13/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11-final.aspx" target="_parent"><span style="color:#0000ff;font-family:Calibri;font-size:medium;">Security baselines for Windows 8.1, Windows Server 2012 R2 and Internet Explorer 11 &ndash; FINAL</span></a></b><span style="font-family:Calibri;font-size:medium;"> &ndash; This post includes a zipped download containing documentation, GPO backups, scripts for installing GPOs locally, custom ADMX/ADML for new settings, and WMI filters for use with AD group policy.&nbsp; Note that corresponding CAB files for the Security Compliance Manager (SCM) will be published before the end of the month.</span>

<p style="margin:0in 0in 0pt;"></p>

<p style="margin:0in 0in 0pt;"><b><a href="https://blogs.technet.com/b/secguide/archive/2014/08/13/configuring-account-lockout.aspx" target="_parent"><span style="color:#0000ff;font-family:Calibri;font-size:medium;">Configuring Account Lockout</span></a></b><span style="font-family:Calibri;font-size:medium;"> &ndash; the baseline settings for account lockout changed since the beta (and since previous baselines). This post explains why and the tradeoffs organizations need to consider to determine the right account lockout policy for them.</span></p>

<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>

<p style="margin:0in 0in 0pt;"><b><a href="https://blogs.technet.com/b/secguide/archive/2014/08/13/changes-in-the-security-guidance-for-windows-8-1-server-2012-r2-and-ie11-since-the-beta.aspx" target="_parent"><span style="color:#0000ff;font-family:Calibri;font-size:medium;">Changes in the Security Guidance for Windows 8.1, Server 2012 R2 and IE11 since the beta</span></a></b><span style="font-family:Calibri;font-size:medium;"> &ndash; This post describes the rest of the changes that were made between the beta and the final.</span>

</p>]]></content:encoded>
    </item>
    <item>
      <title>Security baselines for Windows 8.1, Windows Server 2012 R2 and Internet Explorer 11</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11</link>
      <pubDate>Mon, 07 Apr 2014 10:49:16 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2014/04/07/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11/</guid>
      <description><![CDATA[Although the US Government has not published&nbsp;a US Government Configuration Baseline (USGCB)...]]></description>
      <content:encoded><![CDATA[Although the US Government has not published&nbsp;a US Government Configuration Baseline (USGCB) standard for Windows 8 or Windows 8.1, Microsoft has just published <a href="https://blogs.technet.com/b/secguide/archive/2014/04/07/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11.aspx" target="_blank">a beta release of Microsoft security guidance for Windows 8.1, Windows Server 2012 R2 and Internet Explorer 11</a>.&nbsp; It includes documentation, GPOs, and scripts for installing the recommended settings to local group policy.&nbsp; In addition to incorporating settings that were added to the new releases, we have added recommendations to help block some Pass the Hash attack vectors, block the use of web browsers on domain controllers, and incorporate the Enhanced Mitigation Experience Toolkit (EMET) into the standard baselines.

More information here:&nbsp; <a href="https://blogs.technet.com/b/secguide/archive/2014/04/07/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11.aspx">https://blogs.technet.com/b/secguide/archive/2014/04/07/security-baselines-for-windows-8-1-windows-server-2012-r2-and-internet-explorer-11.aspx</a>]]></content:encoded>
    </item>
    <item>
      <title>IEZoneAnalyzer update: v3.5.0.5</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/iezoneanalyzer-update-v3-5-0-5</link>
      <pubDate>Wed, 19 Jun 2013 21:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2013/06/19/iezoneanalyzer-update-v3-5-0-5/</guid>
      <description><![CDATA[I just posted a minor update to IEZoneAnalyzer.&nbsp;Version 3.5.0.5 fixes an issue in which IE10...]]></description>
      <content:encoded><![CDATA[<p>I just <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/iezoneanalyzer-v3-5-with-zone-map-viewer.aspx" target="_blank">posted a minor update</a> to IEZoneAnalyzer.&nbsp;<p>Version 3.5.0.5 fixes an issue in which IE10 was reported as version "9.10.9200.16614"; it now reports a 10.* version number.&nbsp; (*)</p><p>Version 3.5.0.5 also adds text corresponding to new IE security zone settings, adds back in a set of sample files that capture default settings on various vanilla machines, including a new one for IE10 on Win8 x64.</p><p>It also includes an IEZoneAnalyzer.exe.config file.&nbsp; Keep this file in the same directory with IEZoneAnalyzer.exe if you want to run it on a system that has .NET 4.0 but doesn't have .NET 3.5 installed (such as on Windows 8, which does not have .NET 3.5 by default.)</p><p>The updated version is attached to <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/iezoneanalyzer-v3-5-with-zone-map-viewer.aspx" target="_blank">this blog post</a>.</p><p>&nbsp;</p><p>(*)&nbsp; Explanation for that issue, if you want to know... <a href="https://support.microsoft.com/kb/969393" target="_blank">KB article 969393</a> explains that the correct version number is now stored in a different registry value from where it had been stored in the past.&nbsp; A colleague explained to me that the previous value had been&nbsp;kept at a 9.* number&nbsp;for application compatibility reasons:&nbsp; it turns out there are a lot of installers out there that verify the IE version through the old value and that many of them perform the comparison incorrectly, treating the value as text to be compared alphabetically rather than converting to a numeric format before comparing.</p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Legacy Web App Security and Sysinternals at TechEd North America + Europe 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/legacy-web-app-security-and-sysinternals-at-teched-north-america-europe-2012</link>
      <pubDate>Wed, 06 Jun 2012 16:37:20 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2012/06/06/legacy-web-app-security-and-sysinternals-at-teched-north-america-europe-2012/</guid>
      <description><![CDATA[I'm presenting a couple of sessions at TechEd North America 2012 in Orlando (June 11-14) and at...]]></description>
      <content:encoded><![CDATA[<p>I'm presenting a couple of sessions at <a href="https://northamerica.msteched.com/" target="_blank">TechEd North America 2012</a> in Orlando (June 11-14) and at <a href="https://europe.msteched.com/" target="_blank">TechEd Europe 2012</a> in Amsterdam (June 26-29).<p>The first session is "<strong>Sysinternals Primer: Gems</strong>", the latest in the Sysinternals Primer series (*).</p><p style="padding-left: 30px;"><em>In the latest edition of the popular Sysinternals Primer series, join Aaron (Mark Russinovich's co-author of The Windows Sysinternals Administrator's Reference) as he goes mining for gems. Uncover buried tips and tricks to get the most out of popular tools such as Process Explorer and Process Monitor. Discover treasures among the least-known Sysinternals utilities&nbsp;-- tools that you would have been using if you had only known about them sooner. The Sysinternals utilities are vital tools for any computer professional on the Windows platform. Mark Russinovich's popular "Case Of The Unexplained" demonstrates some of their capabilities in advanced troubleshooting scenarios. This complementary tutorial series focuses primarily on the utilities themselves, deep-diving into as many features as time will allow.</em></p><p>By the way, <a href="https://blogs.technet.com/b/markrussinovich/" target="_blank">Mark Russinovich</a> and I will be at the TechEd US bookstore from 11:30-noon on Wednesday and Thursday to sign copies of our book, <a href="https://www.amazon.com/Windows-Sysinternals-Administrators-Reference-Russinovich/dp/073565672X" target="_blank">Windows Sysinternals Administrator's Reference</a>.&nbsp; Mark will also be signing copies of the brand new <a href="https://www.amazon.com/Windows-Internals-Part-Covering-Server/dp/0735648735" target="_blank">Windows Internals, 6th Edition, Part 1</a> and his novel <a href="https://www.zerodaythebook.com/" target="_blank">Zero Day</a>.&nbsp; We'll also have a book signing at TechEd Europe -- date/time to be announced.</p><p>The second session I'm delivering is "<strong>Defense Against the Dark Ages: Your Old Web Apps Are Trying to Kill You</strong>":</p><p style="padding-left: 30px;"><em>The web browser is the primary path that malware uses to get on users' computers. Web browser security (especially Windows Internet Explorer) has improved dramatically in the past few years to defend against evolving threats. However, continuing to build and maintain web apps using old practices defeats many of these improvements and leaves your users' computers more vulnerable than ever. In this session, learn why those formerly accepted (or at least tolerated) practices are surprisingly harmful and now must be updated. Learn ways to update web apps quickly so that you can adopt more secure practices without stopping your business.</em></p><p>For those who have been waiting for the "what do I do now" Part II to&nbsp;my blog post, <a href="https://blogs.technet.com/b/fdcc/archive/2011/11/03/enabling-initialize-and-script-activex-controls-not-marked-as-safe-in-any-zone-can-get-you-hurt-bad.aspx" target="_blank">Enabling &ldquo;Initialize and script ActiveX controls not marked as safe&rdquo; in ANY zone can get you hurt, bad</a>, I will talk about and demonstrate an economical but safe solution.&nbsp; It may be the only time in a decade that anyone at a Microsoft conference has demonstrated how Visual Basic 6 might be your best option. (!!!)</p><p>(*) Previous Sysinternals Primer sessions are available online:</p><ul>
<li><a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2010/WCL314" target="_blank">Sysinternals Primer: Process Explorer, Process Monitor, and More</a></li>
<li><a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL312" target="_blank">Sysinternals Primer: Autoruns, Disk2Vhd, ProcDump, BgInfo and AccessChk</a></li>
</ul><p>&nbsp;</p><p>&nbsp;</p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Correction posted for IE Explicit Security Zone Mappings and IEZoneAnalyzer's Zone Map Viewer</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/correction-posted-for-ie-explicit-security-zone-mappings-and-iezoneanalyzers-zone-map-viewer</link>
      <pubDate>Mon, 14 May 2012 22:37:10 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2012/05/14/correction-posted-for-ie-explicit-security-zone-mappings-and-iezoneanalyzers-zone-map-viewer/</guid>
      <description><![CDATA[I received some questions and comments about Internet Explorer's Explicit Security Zone Mappings and...]]></description>
      <content:encoded><![CDATA[<p>I received some questions and comments about <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/internet-explorer-s-explicit-security-zone-mappings.aspx" target="_blank">Internet Explorer's Explicit Security Zone Mappings</a> and about the latest version of <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/iezoneanalyzer-v3-5-with-zone-map-viewer.aspx" target="_blank">IEZoneAnalyzer</a> containing the Zone Map Viewer.&nbsp; I hadn't had time to dig into the questions so they lingered, but I finally carved some time to post answers to those questions in the Comments sections of those two posts.&nbsp; I also found one bug both in my write-up about the mappings and in IEZoneAnalyzer, where I had the precedence order wrong when a particular site is defined both in Computer Configuration's and in User Configuration's Site to Zone Assignment List.&nbsp; I have corrected the content of <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/internet-explorer-s-explicit-security-zone-mappings.aspx" target="_blank">the original write-up</a> (also downloadable as a Word doc) and posted an updated version of <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/iezoneanalyzer-v3-5-with-zone-map-viewer.aspx" target="_blank">IEZoneAnalyzer</a>&nbsp;(v3.5.0.4).</p>
]]></content:encoded>
    </item>
    <item>
      <title>Enabling “Initialize and script ActiveX controls not marked as safe” in ANY zone can get you hurt, bad.</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/enabling-initialize-and-script-activex-controls-not-marked-as-safe-in-any-zone-can-get-you-hurt-bad</link>
      <pubDate>Thu, 03 Nov 2011 11:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2011/11/03/enabling-initialize-and-script-activex-controls-not-marked-as-safe-in-any-zone-can-get-you-hurt-bad/</guid>
      <description><![CDATA[This post is about a security setting that is often underestimated in its ability to enable serious...]]></description>
      <content:encoded><![CDATA[<p>This post is about a security setting that is often underestimated in its ability to enable serious harm when relaxed.&nbsp; Microsoft&rsquo;s security guidance, the US Government Configuration Baseline (USGCB) and other security guidance currently mandate only that it be locked down in the Internet and Restricted Sites zones, which are of course the highest risk zones.&nbsp; But relaxing this setting in the Local Intranet or Trusted Sites zones can turn those zones into very high risk places to browse, and this is <strong>exactly what I often see being done in enterprise environments</strong>.&nbsp; The risk is real that anyone who has any control over any content on any web server in those zones could easily and surreptitiously take complete control of visitors&rsquo; computers and user accounts, and in a way that could be difficult to trace.</p>
<p>In this post, I&rsquo;ll describe what the setting means and why it has sometimes been set to an insecure state.&nbsp; I will vividly demonstrate the potential harm, and describe some ways to check whether the setting is enabled in your environment.&nbsp; In a follow-up post I will describe some ways to update web apps so that they can continue to work with the setting in its default, secure state.</p>
<h2>What is &ldquo;Initialize and script ActiveX controls not marked as safe for scripting&rdquo;?</h2>
<p>In the early days of the World Wide Web, the functionality provided by HTML was very limited. ActiveX provided a means by which the richer UI and capabilities of Windows desktop applications could be incorporated into web pages.</p>
<p>ActiveX is a software re-use technology built on Microsoft&rsquo;s &ldquo;Component Object Model&rdquo; (COM).&nbsp; For example, ActiveX allows a Word document to embed an Excel spreadsheet and for Excel to expose parts of its user interface through Word when Word opens the outer document.&nbsp; ActiveX allows any program to incorporate Word&rsquo;s spell-checker if it is installed.&nbsp; ActiveX enables &ldquo;scriptable&rdquo; interfaces through which the full capabilities of binary components can be exposed to scripting languages such as VBScript and JScript (this is also known as &ldquo;OLE automation&rdquo; or simply &ldquo;Automation&rdquo;).&nbsp; And most importantly here, ActiveX is Internet Explorer&rsquo;s &ldquo;plug-in&rdquo; model, allowing IE to load and use custom binary components from within web pages.&nbsp; Those web pages often interact with ActiveX components through scripting interfaces.</p>
<p>Because ActiveX is a general-purpose code re-use technology and is not designed solely for web page use, not all ActiveX components are appropriate to use from within web pages.&nbsp; There are limits to what a web site you visit should be able to do on your computer through your browser.&nbsp; For example, a web site that you visit should not be able to run arbitrary programs on your computer without your consent.&nbsp; This and other guidelines for evaluating whether an ActiveX is safe for use on a web page are described in <a href="https://msdn.microsoft.com/en-us/library/aa752035(v=vs.85).aspx" target="_blank">Designing Secure ActiveX Controls</a>.</p>
<p>An ActiveX component is assumed not to be safe for use within a web page unless it asserts its safety through one of several available mechanisms (described <a href="https://msdn.microsoft.com/en-us/library/aa751977(v=VS.85).aspx" target="_blank">here</a>*).&nbsp; The component must assert that it is both safe for initialization and safe for scripting.&nbsp; &ldquo;Safe for initialization&rdquo; basically means that the component won&rsquo;t violate the user&rsquo;s security even if initialized with untrusted or malicious data.&nbsp; &ldquo;Safe for scripting&rdquo; means that its scripting interfaces can&rsquo;t be abused by maliciously-intended script to cause harm to the user.</p>
<p>By default, Internet Explorer will refuse to load an ActiveX component that is not asserted to be safe for scripting and initialization when referenced by a web page hosted on a remote computer; that is, from a site in any IE security zone other than the Local Machine zone.&nbsp; This can be controlled through a security setting, &ldquo;Initialize and script ActiveX controls not marked as safe for scripting.&rdquo;&nbsp; This setting can be defined separately for each security zone through user settings or mandated through Group Policy.&nbsp; Beginning in IE7, it is set by default to &ldquo;Disable&rdquo; for all zones (except the Local Machine zone in which it is set to &ldquo;Prompt&rdquo;).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/5226.DefaultSecurity-Edit_788AB1F0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/5226.DefaultSecurity_2D00_Edit_5F00_788AB1F0.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="DefaultSecurity-Edit" border="0" alt="DefaultSecurity-Edit" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/0820.DefaultSecurity-Edit_thumb_7E655589.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/0820.DefaultSecurity_2D00_Edit_5F00_thumb_5F00_7E655589.png" width="427" height="209" /></a></p>
<p>Microsoft Word provides a good example of an ActiveX component that is not intended to be used from a web page.&nbsp; While Word&rsquo;s automation interfaces have many legitimate uses in Office and other desktop applications (e.g., using Visual Basic for Applications (VBA)), those interfaces include the ability to create and delete files, and instantiate and invoke other ActiveX components.&nbsp; Ultimately, its scripting interfaces allow it to be used to perform almost any action that the user is allowed to perform.&nbsp; The <a href="https://msdn.microsoft.com/library/9bbdkx3k(v=VS.85).aspx" target="_blank">Windows Script Host</a> interfaces are an even more powerful example of unsafe ActiveX components.&nbsp; They provide scriptable interfaces to perform <a href="https://msdn.microsoft.com/library/aew9yb99(v=VS.85).aspx" target="_blank">registry</a> and <a href="https://msdn.microsoft.com/library/6kxy1a51(v=VS.85).aspx" target="_blank">file manipulation</a>, and the <a href="https://msdn.microsoft.com/library/d5fk67ky(v=VS.85).aspx" target="_blank">launching of arbitrary programs</a> and command line options.</p>
<p>(*) Note that the section on &ldquo;Internet Explorer Security Levels&rdquo; is about fifteen years old and is a bit out of date. (Here, &ldquo;a bit&rdquo; should be read as a polite euphemism for &ldquo;extremely&rdquo;.)</p>
<h2>Why have developers ever relied on relaxing this setting?</h2>
<p>Quite frankly, it was easy and even natural to relax the setting.&nbsp; Business workflows often require the creation of Microsoft Office documents.&nbsp; But back when many of these applications were developed, there was only so much that you could do with HTML and script, and Microsoft provided no server-side solutions for generating Office documents.&nbsp; However, Office applications did (and still) have very rich client-side interfaces that are incredibly easy to use from VBScript or JScript, and even come with a full-featured macro programming environment that makes it even easier to write that script.</p>
<p>On top of that, using ActiveX &ldquo;not marked as safe&rdquo; has not always been forbidden.&nbsp; In Internet Explorer 6 and earlier, the Trusted Sites zone was configured with the &ldquo;Low&rdquo; security level template and was almost completely wide open.&nbsp; In Trusted Sites, the default setting for &ldquo;Initialize and script&hellip;&rdquo; was set to &ldquo;Prompt&rdquo;, not to &ldquo;Disable&rdquo;.&nbsp; When client-side script in a Trusted Sites page invoked an &ldquo;unsafe&rdquo; ActiveX, IE displayed the dialog shown below to the user.&nbsp; If the user clicked &ldquo;Yes&rdquo;, the ActiveX would run.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/0458.IE6-NotSafeWarning_2B7A4258.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/0458.IE6_2D00_NotSafeWarning_5F00_2B7A4258.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="IE6-NotSafeWarning" border="0" alt="IE6-NotSafeWarning" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/3568.IE6-NotSafeWarning_thumb_23EED2EB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/3568.IE6_2D00_NotSafeWarning_5F00_thumb_5F00_23EED2EB.png" width="345" height="143" /></a></p>
<p>So what do you suppose users did?&nbsp; Do you think the text in the dialog box made any sense to them, if they bothered to read it at all?&nbsp; &ldquo;An ActiveX control on this page might be unsafe to interact with other parts of the page.&rdquo;&nbsp; Gosh!&nbsp; What other parts?&nbsp; The green banner?&nbsp; The disclaimer near the bottom?&nbsp; The company logo?&nbsp; Asking end users to make security decisions is rarely a good idea, and doing so without providing any useful information is silly.&nbsp; Users learned to read the question as, &ldquo;Do you want this web page to work correctly so you can do your job?&rdquo; and always to click &ldquo;Yes&rdquo; &ndash; on that and all other such dialogs.&nbsp; Users also asked, &ldquo;Can you please get rid of those annoying and time-wasting prompts?&rdquo; which was easily accomplished by changing the setting from &ldquo;Prompt&rdquo; to &ldquo;Enable&rdquo;.&nbsp; Doing so did not degrade security because users were trained always to click Yes anyway.</p>
<h2>So what&rsquo;s wrong with enabling this setting?</h2>
<p>There are a significant number of businesses with important web apps that rely on being able to use Word, Excel or other ActiveX components not marked as safe for scripting.&nbsp; Why not just continue to allow them to work?</p>
<p>The problem is that there is no way to restrict the setting to apply only to &ldquo;these specific ActiveX components and only for these specific purposes.&rdquo;&nbsp; When you enable the setting in a security zone, you allow any and all web sites in that zone to perform any actions on users&rsquo; computers that the user would be allowed to perform, silently and without the user&rsquo;s knowledge or consent.&nbsp; That means anyone who can control any content &ndash; any file &ndash; on any web server in that entire zone can easily mount a successful attack on all site visitors&rsquo; computers.&nbsp; The attacker could install spyware (yes, malware can be designed not to require administrative rights), configure programs to run whenever that user logs on, capture and send private information to an external recipient, delete calendar appointments, or modify or delete files.&nbsp; (If the end user has administrative rights, the computer now belongs entirely to the attacker.)&nbsp; The attacker can do all this while being nearly impossible to trace.&nbsp; For example, an attacker could add a few lines of script to an HTML file for a day, infect hundreds or thousands of users, and then restore the original HTML before anyone knew they were infected.&nbsp; Good luck tracing that back to a root cause.</p>
<h2>Show me the demo, then.</h2>
<p>Let&rsquo;s take a look.&nbsp; Here is a simple HTML file hosted on a web server in the Intranet zone.&nbsp; There&rsquo;s nothing much to it, except that it references a separate script file, like most HTML files do these days:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/7382.default-htm_4A50B636.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/7382.default_2D00_htm_5F00_4A50B636.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="default-htm" border="0" alt="default-htm" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/7701.default-htm_thumb_50978CC4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/7701.default_2D00_htm_5F00_thumb_5F00_50978CC4.png" width="705" height="190" /></a></p>
<p>&nbsp;</p>
<p>What happens if someone adds just a few unfriendly lines into that script file, or into another script file that the first script file references, or yet another deeply obscured and embedded bit of content in the site?&nbsp; How much work does it take to create havoc?&nbsp; Here are a few lines that create ten batch files on the user&rsquo;s desktop and then launch them along with ten instances of Calculator.&nbsp; If this script actually runs, it will be noisy and obvious.&nbsp; (Don&rsquo;t count on real-life malicious actors being so courteous.)</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/0028.sitestuff-js_41ECE0DF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/0028.sitestuff_2D00_js_5F00_41ECE0DF.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="sitestuff-js" border="0" alt="sitestuff-js" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/0451.sitestuff-js_thumb_41147AF5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/0451.sitestuff_2D00_js_5F00_thumb_5F00_41147AF5.png" width="705" height="281" /></a></p>
<p>&nbsp;</p>
<p>Let&rsquo;s browse the site, first with the Intranet zone&rsquo;s default setting disabling the use of unsafe ActiveX.&nbsp; As you can see, the result is that nothing particularly bad happens, except that Internet Explorer shows an error icon in status bar (lower left corner).&nbsp; If we are very curious we can double-click on that error icon to find out a little about what went wrong (see the next graphic).&nbsp; If we are turbo-nerds we might even understand what &ldquo;Automation server can&rsquo;t create object&rdquo; means.&nbsp; In any case, no harm.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/2021.WebSiteWithError_6E2967C3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/2021.WebSiteWithError_5F00_6E2967C3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="WebSiteWithError" border="0" alt="WebSiteWithError" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/6327.WebSiteWithError_thumb_6631C561.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/6327.WebSiteWithError_5F00_thumb_5F00_6631C561.png" width="728" height="296" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/7317.WebSiteErrorMessage_732BA572.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/7317.WebSiteErrorMessage_5F00_732BA572.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="WebSiteErrorMessage" border="0" alt="WebSiteErrorMessage" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/7206.WebSiteErrorMessage_thumb_72533F88.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/7206.WebSiteErrorMessage_5F00_thumb_5F00_72533F88.png" width="620" height="414" /></a></p>
<p>&nbsp;</p>
<p>Now let&rsquo;s configure the security setting to the insecure &ldquo;Enable&rdquo; setting and browse the site again.&nbsp; The results are markedly different this time.&nbsp; Attacker-controlled files are being dropped on the desktop, and programs are being launched as the logged on user and can perform any actions the user is allowed to perform.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/0451.WebSiteBadStuffHappens8x6_717AD99E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/0451.WebSiteBadStuffHappens8x6_5F00_717AD99E.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="WebSiteBadStuffHappens8x6" border="0" alt="WebSiteBadStuffHappens8x6" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/6242.WebSiteBadStuffHappens8x6_thumb_4FAF010D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/6242.WebSiteBadStuffHappens8x6_5F00_thumb_5F00_4FAF010D.png" width="804" height="604" /></a></p>
<h2>&nbsp;</h2>
<h2>But we have had the setting enabled for years with no problems!</h2>
<p>Well, perhaps you have!&nbsp; Two questions for you, though:&nbsp;</p>
<ol>
<li>If the setting <em>had</em> been abused in the past, are you quite certain that you would have known about it?&nbsp; Are you sure that strange problems that have occurred over the years were not due to abuse of this setting?</li>
<li>Given how easy it is to exploit without detection, are you quite certain that if you leave it enabled that it won&rsquo;t be abused in the future?&nbsp; In the near future?&nbsp; By tomorrow?</li>
</ol>
<p>Given the legitimate concern today about targeted attacks, insider threats, and &ldquo;Advanced Persistent Threats&rdquo; (APTs), leaving a door this wide open seems foolhardy.</p>
<p>&nbsp;</p>
<h2>How can I check whether it is enabled in my environment?</h2>
<p>&ldquo;Initialize and script ActiveX controls not marked as safe for scripting&rdquo; can be configured separately for each security zone through Group Policy (Computer Configuration or User Configuration), through Machine Preferences or through User Preferences, as described in <a href="https://blogs.technet.com/b/fdcc/archive/2008/09/19/fdcc-and-internet-explorer-7-part-1-security-zones.aspx" target="_blank">this post</a>.&nbsp; That post also describes the precedence rules that determine which of those settings takes effect.&nbsp; I also recently discovered that when machine preferences are in effect there are separate settings for 32- and 64-bit processes.&nbsp; So just considering the Intranet and Trusted Sites zones, there are up to ten separate registry locations that could need to be checked.</p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top"><strong><em>Configuration group</em></strong></td>
<td valign="top"><strong><em>Base registry key</em></strong></td>
</tr>
<tr>
<td valign="top">Machine Policies</td>
<td valign="top">HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones</td>
</tr>
<tr>
<td valign="top">Machine Preferences</td>
<td valign="top">HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones</td>
</tr>
<tr>
<td valign="top">Machine Preferences (WOW64)</td>
<td valign="top">HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\Zones</td>
</tr>
<tr>
<td valign="top">User Policies</td>
<td valign="top">HKCU\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones</td>
</tr>
<tr>
<td valign="top">User Preferences</td>
<td valign="top">HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones</td>
</tr>
</tbody>
</table>
<p>Under each of these registry keys, the &ldquo;1&rdquo; subkey contains settings for the Local Intranet zone and the &ldquo;2&rdquo; subkey contains settings for Trusted Sites.&nbsp; In those subkeys, the registry value named &ldquo;1201&rdquo; corresponds to the &ldquo;Initialize and script&hellip;&rdquo; setting.&nbsp; A setting of 3 means &ldquo;Disabled&rdquo; (preferred); 1 means &ldquo;Prompt&rdquo; and 0 means &ldquo;Enabled.&rdquo;&nbsp; You can query these locations using the built-in command line utility reg.exe using this syntax:</p>
<blockquote>
<p><span style="font-family: Lucida Console;" face="Lucida Console">reg.exe query "hklm\software\microsoft\windows\currentversion\internet settings\zones\1" /v 1201</span></p>
</blockquote>
<p>If the key or value isn&rsquo;t present then reg.exe writes an error message to its standard error pipe.&nbsp; If the setting is found, the result will be reported like this (where &ldquo;0x3&rdquo; is the desired result):</p>
<blockquote>
<p><span style="font-family: Lucida Console;" face="Lucida Console">HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\internet settings\zones\1 <br />&nbsp;&nbsp;&nbsp; 1201&nbsp;&nbsp;&nbsp; REG_DWORD&nbsp;&nbsp;&nbsp; 0x3</span></p>
</blockquote>
<p>PowerShell provides richer scripting capabilities that allow you to perform more advanced operations on the results without having to first pick out the relevant text from the output.&nbsp; For example, this simple script searches for the setting in all policy and preference locations for the Intranet, Trusted Sites, Internet and Restricted Sites zones and reports any that have a configured setting different from 3:</p>
<blockquote>
<p><span style="font-family: Lucida Console;" face="Lucida Console">'hkcu:\software\policies', <br />'hklm:\software\policies', <br />'hkcu:\software', <br />'hklm:\software', <br />'hklm:\software\wow6432node' | <br />%{&nbsp; $key = $_ + '\microsoft\windows\currentversion\internet settings\zones\' <br />&nbsp;&nbsp;&nbsp; 1..4 | <br />&nbsp;&nbsp;&nbsp; %{ $key + $_ }} | %{ <br />&nbsp;&nbsp;&nbsp; if (Test-Path $_) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $val = (gp $_)."1201" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($val -ne $nul -and $val -ne 3) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { "Problem:&nbsp; 1201 is set to " + $val + " in key " + $_ } <br />&nbsp;&nbsp;&nbsp; } <br />}</span></p>
</blockquote>
<p>A third and simpler option is to run the <a href="https://blogs.technet.com/b/fdcc/archive/2011/09/22/iezoneanalyzer-v3-5-with-zone-map-viewer.aspx" target="_blank">IEZoneAnalyzer</a> utility.&nbsp; Not only can you view and compare settings in a sortable view, IEZoneAnalyzer also determines the effective settings based on precedence order and policy settings.&nbsp; You can also copy/paste or export results to Excel.&nbsp; To group all the &ldquo;not marked as safe&rdquo; settings together, use the &ldquo;View/Compare Entire Collections of Settings&rdquo; feature and sort on the ID or Name column in the resulting view by clicking the column header.</p>
<h2>How can I keep it from getting enabled?</h2>
<p>You can configure the &ldquo;not safe for scripting&rdquo; setting in Computer Configuration or User Configuration.&nbsp; The setting is in each of the security zone folders under Windows Components | Internet Explorer | Internet Control Panel | Security Page. The Group Policy editor shortens the name of the setting to &ldquo;Initialize and script ActiveX controls not marked as safe&rdquo;.&nbsp; It&rsquo;s one of those <a href="https://blogs.msdn.com/b/oldnewthing/archive/2011/06/06/10171462.aspx" target="_blank">confusing settings</a> where you need to Enable the policy in order to Disable the feature, as shown in the screenshot below.&nbsp; I <strong>strongly recommend </strong>that you set it to Enabled:Disable under <strong>Computer Configuration</strong> for the <strong>Intranet</strong>, <strong>Trusted Sites</strong>, <strong>Internet</strong> and <strong>Restricted Sites Zones</strong>.&nbsp; Note that while Group Policy settings are read by programs from the registry, those settings should be configured through Group Policy and not by directly manipulating the registry.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/1856.SettingGP_66FA057E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/1856.SettingGP_5F00_66FA057E.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="SettingGP" border="0" alt="SettingGP" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/08/metablogapi/7416.SettingGP_thumb_51301D21.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-08-metablogapi/7416.SettingGP_5F00_thumb_5F00_51301D21.png" width="412" height="400" /></a></p>
<p>&nbsp;</p>
<h2>How can I fix the apps that rely on this setting?</h2>
<p>This will be the topic of my next post.&nbsp; Stay tuned!</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Top Ten Deployment Blockers</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/top-ten-deployment-blockers</link>
      <pubDate>Tue, 18 Oct 2011 12:44:35 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2011/10/18/top-ten-deployment-blockers/</guid>
      <description><![CDATA[My colleague Shelly Bird, a highly esteemed Architect in Microsoft Public Sector Services, has years...]]></description>
      <content:encoded><![CDATA[<p>My colleague <a href="https://www.linkedin.com/pub/shelly-bird/26/bb1/a32" target="_blank">Shelly Bird</a>, a <a href="https://fcw.com/Articles/2008/03/19/2008-Federal-100-award-winners-A--Duna.aspx?Page=3" target="_blank">highly esteemed</a> Architect in Microsoft Public Sector Services, has years of experience in desktop and server deployments.&nbsp; She has seen what works and a whole lot of what doesn&rsquo;t.&nbsp; Now she is bringing her observations to the blogosphere, kicking off with a Top Ten list of deployment blockers.&nbsp; I was really excited when she told me about it because it&rsquo;s not going to be just another tech-oriented blog about scripting how-to, specific security settings and application compatibility.&nbsp; While those issues are important to deployment projects, that&rsquo;s not where projects tend to run into the most trouble.&nbsp; This is much higher-level and should be read by executives.&nbsp; It&rsquo;s not really even Windows-specific.&nbsp; It&rsquo;s about decision-making (or decision-delaying) and organization culture issues.<p>Forward this link to your management and executives.&nbsp; If you are a manager or an executive, forward it to your colleagues and friends:</p><p><a href="https://deploydepot.net/" target="_blank">The Deploy Depot Blog</a></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Alert: Java’s Forward-Compatibility Promise Has Been Revised</title>
      <link>https://docs.microsoft.com/archive/blogs/fdcc/alert-javas-forward-compatibility-promise-has-been-revised</link>
      <pubDate>Tue, 18 Oct 2011 08:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Margosis]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/fdcc/2011/10/18/alert-javas-forward-compatibility-promise-has-been-revised/</guid>
      <description><![CDATA[Java&rsquo;s Forward-Compatibility PromiseWriting forward-compatible software is really hard. You...]]></description>
      <content:encoded><![CDATA[<h2>Java&rsquo;s Forward-Compatibility Promise<p>Writing forward-compatible software is really hard. You carefully write your programs strictly according to the current specifications for your target platform, and it works perfectly well on that platform.&nbsp; But eventually that platform and its specifications will be updated.&nbsp; It will effectively become a different platform, and you really have no way to know whether the implicit assumptions you had made will still hold.&nbsp; Some internal implementation detail may have changed that breaks your program, or the rules for the new platform disallow behaviors you had depended upon, such as storing data in a particular location, or expecting that since &ldquo;foo&rdquo; was not a language keyword it wouldn&rsquo;t become one in the next version.</p><p>The makers of the Java programming language and Java Runtime Environment (JRE) thought they had it figured out.&nbsp; Their answer was that different versions of Java could be installed and run side by side, and if your app was known to work with a specific JRE (say, version 1.2.2 Update 14), you could always just specify that version and use it.&nbsp; If a newer version of the JRE were installed, everything would be fine as long as the version you needed were also still installed.&nbsp; Your app would simply continue to use the older version.&nbsp; Write once, test once, run forever.&nbsp; Forward compatibility guaranteed!&nbsp; Brilliant!</p><p>Naturally, many responsible and conscientious developers continue to leverage this feature to ensure that their code continues to perform as originally tested.&nbsp; &ldquo;It was developed, tested and known to work on 1.2.2_14 and so we require that version.&rdquo;&nbsp; In particular, I see many custom, internal line of business (LOB) apps at my customers that require a specific, old JRE version.</p><h2>The Promise Revised</h2><p>Well, it seemed like a good idea at the time.</p><p>Back then, &ldquo;older version&rdquo; was not automatically considered to be synonymous with &ldquo;riddled with easily exploitable security bugs.&rdquo;&nbsp; However, many JRE updates are Critical Patch Updates (CPUs) that fix such bugs.&nbsp; You cannot keep the older version <em>and </em>be protected against exploits.&nbsp; Why?&nbsp; <strong><em>Because any web app can specify any vulnerable JRE you happen to have installed and run attack code on your computer. </em></strong>Further, the older JRE families (JRE 1.5/5.0 family and earlier, as well as JInitiator) are no longer supported and so while malware authors can continue to develop attacks for those older versions, the vulnerabilities are not being fixed and just remain exploitable.&nbsp; Further, Oracle <a href="https://www.oracle.com/technetwork/topics/security/javacpujune2011-313339.html" target="_blank">points out</a> that older, unsupported versions may also be vulnerable to newly-discovered flaws found in newer, supported versions:</p><blockquote>
<p>&ldquo;Unsupported products, releases and versions are not tested for the presence of vulnerabilities addressed by this Critical Patch Update. However, it is likely that earlier versions of affected releases are also affected by these vulnerabilities. Hence Oracle recommends that customers upgrade their Oracle products to a supported version.&rdquo;</p>
<p>&ldquo;Critical Patch Update patches are not provided for product versions that are no longer supported. We recommend that customers upgrade to the latest supported version of Oracle products in order to obtain patches.&rdquo;</p>
</blockquote><p>Meanwhile, vulnerable versions of Java have become the most widely attacked software component on Windows computers.&nbsp; It was about a year ago that the Microsoft Malware Protection Center <a href="https://blogs.technet.com/b/mmpc/archive/2010/10/18/have-you-checked-the-java.aspx" target="_blank">first reported observing a sudden, large spike in attacks on Java</a>, following a more modest but significant rise <a href="https://www.symantec.com/connect/blogs/rise-java-vulnerabilities" target="_blank">reported earlier by Symantec</a>.&nbsp; The latest <a href="https://www.microsoft.com/security/sir/default.aspx" target="_blank">Microsoft Security Intelligence Report (v11)</a> confirms that Java remains the top target of malware, with Java exploits &ldquo;responsible for between one-third and one-half of all exploits observed in each of the four most recent quarters.&rdquo;</p><p>Should you continue to use older versions of Java, or even have them installed on your systems?&nbsp; Probably not &ndash; the risk is obviously high.&nbsp; Oracle (which acquired Sun Microsystems and Java) <a href="https://www.java.com/en/download/faq/remove_olderversions.xml" target="_blank">specifically recommends that you do not</a>.&nbsp; Says Oracle:</p><blockquote>
<p><span style="color: #ff0000;" color="#ff0000">We highly recommend users remove all older versions of Java from your system. </span></p>
<p>Keeping old and unsupported versions of Java on your system presents a serious security risk.</p>
</blockquote><p>A customer recently asked me what the risks would be to standardize on 1.6 Update 17.&nbsp; (As of this writing, the current public JRE is 1.6 Update 27.)&nbsp; Here are the JRE updates that have shipped since Update 17, going back to March 2010.&nbsp; They fix a total of 94 separate vulnerabilities, which are listed on the bottom of each of these pages:</p><ul>
<li>March 2010, affecting Update 18 and earlier:&nbsp; <a href="https://www.oracle.com/technetwork/topics/security/javacpumar2010-083341.html">https://www.oracle.com/technetwork/topics/security/javacpumar2010-083341.html</a></li>
<li>October 2010, affecting Update 21 and earlier:&nbsp; <a href="https://www.oracle.com/technetwork/topics/security/javacpuoct2010-176258.html">https://www.oracle.com/technetwork/topics/security/javacpuoct2010-176258.html</a></li>
<li>February 2011, affecting Update 23 and earlier:&nbsp; <a href="https://www.oracle.com/technetwork/topics/security/javacpufeb2011-304611.html">https://www.oracle.com/technetwork/topics/security/javacpufeb2011-304611.html</a></li>
<li>June 2011, affecting Update 25 and earlier:&nbsp; <a href="https://www.oracle.com/technetwork/topics/security/javacpujune2011-313339.html">https://www.oracle.com/technetwork/topics/security/javacpujune2011-313339.html</a></li>
</ul><p>In addition, only the latest versions of Java work on Windows 7, and versions of JRE 1.6 before Update 24 <a href="https://support.microsoft.com/kb/2506617" target="_blank">won&rsquo;t work with IE9</a>.</p><h2>So What Do You Do Now?</h2><p>So what can you do if you are using Java?&nbsp; First, you should follow Oracle&rsquo;s recommendation and uninstall all but the latest supported version.&nbsp; Next, you should remove the requirement from your Java apps tying them to a specific version.&nbsp; Won&rsquo;t all those apps break?&nbsp; That can be determined only through testing, but <a href="https://www.java.com/en/download/faq/remove_olderversions.xml" target="_blank">Oracle says that &ldquo;the latest available version is always compatible with the older versions,&rdquo;</a> and goes on to say:</p><blockquote>
<p>However, some Java applications (or applets) can indicate that they are dependent on a particular version, and may not run if you do not have that version installed. If an application or web page you access requires an older version of Java, you should report this to the provider/developer and request that they update the application to be compatible with all Java versions.</p>
</blockquote><p>If that compatibility expectation is as reliable as Oracle says, then keeping your JRE patched should be as regular and uneventful as deploying Windows &ldquo;Patch Tuesday&rdquo; updates.&nbsp; Nobody performs comprehensive regression tests of all their applications before deploying Windows patches, because those patches almost never cause an app not to work.</p><p>Quite honestly, the alternative is too risky.&nbsp; Your Java developers should no longer insist that your house be protected with broken locks.</p></h2>
]]></content:encoded>
    </item>
  </channel>
</rss>