{"id":556,"date":"2013-03-15T01:03:36","date_gmt":"2013-03-15T06:03:36","guid":{"rendered":"http:\/\/www.brunerd.com\/blog\/?p=556"},"modified":"2013-03-15T22:48:41","modified_gmt":"2013-03-16T03:48:41","slug":"silverlight-the-next-plugin-apple-will-be-blocking","status":"publish","type":"post","link":"https:\/\/www.brunerd.com\/blog\/2013\/03\/15\/silverlight-the-next-plugin-apple-will-be-blocking\/","title":{"rendered":"Silverlight: the next plugin Apple will be blocking"},"content":{"rendered":"<h2>Shhh&#8230; Silverlight&#8217;s been updated for Mac<\/h2>\n<p>So by shear accident,\u00a0I was in Windows 7 via Boot Camp today. I decided to run updates and actually look at what was being updated. I noticed there was a new Silverlight update, 5.1.20125.0, speak of the devil, in my <a title=\"XProtect Plugin Checker\" href=\"http:\/\/www.brunerd.com\/blog\/2013\/03\/05\/xprotect-plugin-checker\/\">XProtect Plugin Checker post<\/a>, not long ago, I speculate when Silverlight will be blocked by Apple because of a security update. Security bulletin <a href=\"http:\/\/technet.microsoft.com\/en-us\/security\/bulletin\/ms13-022\">MS13-022<\/a>\u00a0explains the critical nature of this for Windows and Mac, if you want to see an MS engineer tell you it&#8217;s Priority 1 this month you can visit the Microsoft <a href=\"http:\/\/www.microsoft.com\/security\/pc-security\/bulletins\/201303.aspx\">March 2013 security update page<\/a>. You&#8217;ll need Silverlight to watch the video, but don&#8217;t worry it won&#8217;t give you prompt you to update. Neither does Netflix. Apparently Microsoft haven&#8217;t pulled the trigger to alert users with old Silverlight plugins! Are they waiting for this 14.9MB package to replicate around the world to all the Akamai distribution servers or something? I think it&#8217;s done now.<\/p>\n<h2>Whither Thou Goest Check for Updates (or Preferences for that matter)?<\/h2>\n<p>So I decided to double check my auto-update settings in Silverlight. Would <em>you<\/em> like to check your Silverlight Preferences? The <em>easy<\/em> way is to <strong>Control-Click\/Right-Click<\/strong> on <strong>Silverlight content<\/strong> and select\u00a0<strong>About Silverlight<\/strong>\u00a0from the menu. But take a real world example: you are at a site that won&#8217;t load it&#8217;s Silverlight content because the caches need cleaning! (This really happened to someone I had to support remotely via email).<\/p>\n<p>Let&#8217;s go spelunking!<br \/>\nOpening <strong>Silverlight Preferences<\/strong> the hard way:<\/p>\n<p style=\"padding-left: 30px;\">Navigate to <strong>\/Library\/Internet Plug-Ins<\/strong><br \/>\nControl-Click on <strong>Silverlight.plugin<\/strong> and <strong>Show Package Contents<\/strong><br \/>\nNavigate into<strong> Contents\/Resources<\/strong><br \/>\nDouble click\u00a0<strong>Silverlight Preferences.app<\/strong><\/p>\n<p>Or type this in at Terminal:<\/p>\n<pre>open \/Library\/Internet\\ Plug-Ins\/Silverlight.plugin\/Contents\/Resources\/Silverlight\\ Preferences.app<\/pre>\n<p>I ended up making a <a href=\"http:\/\/hints.macworld.com\/article.php?story=20010827215428108&amp;query=.command\">.command<\/a> file to do this, zipped it up, and emailed it so the user could simply empty the Silverlight caches and get back to work (if this was for real work or Netflix I&#8217;m not sure&#8230;) but regardless,\u00a0a Preference Pane would be kinda nice MS Silverlight dev folks! All it has to do, at bare minimum, is open this very same app inside the plugin bundle (so we don&#8217;t have to dig for it). That&#8217;s what the Oracle Java 7 prefPane does. I digress here&#8217;s my settings:<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdates.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-558\" alt=\"SilverlightUpdates\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdates.png\" width=\"608\" height=\"174\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdates.png 608w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdates-300x85.png 300w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdates-500x143.png 500w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/a><\/p>\n<p>Yep that&#8217;s set&#8230;<br \/>\nOK so Microsoft doesn&#8217;t think this Priority 1 update needs updating yet on the Mac?<\/p>\n<p>For fun, in the same folder you can run\u00a0<strong>UpdatePrompt.app<\/strong> to see this:<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdatePrompt.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-559\" alt=\"SilverlightUpdatePrompt\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdatePrompt.png\" width=\"563\" height=\"267\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdatePrompt.png 563w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdatePrompt-300x142.png 300w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/SilverlightUpdatePrompt-500x237.png 500w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/a><\/p>\n<p>Clicking <strong>Install<\/strong> now launches the URL: <a href=\"http:\/\/go2.microsoft.com\/fwlink\/?LinkId=116053\">http:\/\/go2.microsoft.com\/fwlink\/?LinkId=116053<\/a>\u00a0which will automatically start downloading the newest version of Silverlight.<\/p>\n<h2>Exploring the XProtect Factor<\/h2>\n<p>Now, I though to myself, if Microsoft doesn&#8217;t start getting people to update, I think I know what Apple&#8217;s gonna do&#8230; but they haven&#8217;t done it yet. So I did. I edited my XProtect.meta.plist and blocked Silverlight myself:<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XprotectMetaBlockSilverlight.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-560\" alt=\"XprotectMetaBlockSilverlight\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XprotectMetaBlockSilverlight.png\" width=\"729\" height=\"552\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XprotectMetaBlockSilverlight.png 729w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XprotectMetaBlockSilverlight-300x227.png 300w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XprotectMetaBlockSilverlight-396x300.png 396w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/a><\/p>\n<p>Just wedged it right in there with <a href=\"http:\/\/barebones.com\/products\/textwrangler\/\">TextWrangler<\/a>!\u00a0Now, what happens when I visit a Silverlight page in Safari?<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-561\" alt=\"Blocked @ Netflix\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix.png\" width=\"1253\" height=\"836\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix.png 1253w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix-300x200.png 300w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix-1024x683.png 1024w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-@-Netflix-449x300.png 449w\" sizes=\"auto, (max-width: 1253px) 100vw, 1253px\" \/><\/a><\/p>\n<p>Boom, blocked. Aha! This mechanism is quite extensible to whatever plugin Apple deems insecure. Interestingly though, this warning will appear only\u00a0<strong>once<\/strong> in Safari<strong>.<\/strong><\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-Small.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-564\" alt=\"Blocked Small\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-Small.png\" width=\"423\" height=\"147\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-Small.png 423w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Blocked-Small-300x104.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/a><\/p>\n<p>After that your Silverlight content will simply not load and you won&#8217;t be told why. The bundle name and version are set under the <strong>PreviouslyAnnouncedBlockedPlugins<\/strong>\u00a0key in <em>com.apple.Safari.plist<\/em> and that&#8217;s it. Clicking <strong>OK<\/strong> in a hurry without reading the message might leave you scratching your head, while repeatedly clicking reload at Netlflix.<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Safari-Warning-XML.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-563\" alt=\"Safari Warning XML\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Safari-Warning-XML.png\" width=\"486\" height=\"126\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Safari-Warning-XML.png 486w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/Safari-Warning-XML-300x77.png 300w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/a><\/p>\n<p>Taking a peek at my <a title=\"XProtect Plugin Checker\" href=\"http:\/\/www.brunerd.com\/blog\/2013\/03\/05\/xprotect-plugin-checker\/\">XProtectPluginChecker<\/a> I see it&#8217;s able to compare the installed version to the values <em>XProtect.meta.plist<\/em> has. My script is working dynamically, as planned, yay! (I fixed a couple bugs the first few days after posting so re-download if you were an early bird user)<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectPluginChecker-silverlightBlocked.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-565\" alt=\"XProtectPluginChecker-silverlightBlocked\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectPluginChecker-silverlightBlocked.png\" width=\"289\" height=\"294\" \/><\/a>So while you may not be seeing this\u00a0yet<strong>\u00a0<\/strong>I have a strong feeling you will&#8230; and when you do\u00a0<a title=\"XProtect Plugin Checker\" href=\"http:\/\/www.brunerd.com\/blog\/2013\/03\/05\/xprotect-plugin-checker\/\">XProtectPluginChecker<\/a>\u00a0will let you know.<strong><br \/>\n<\/strong><\/p>\n<h2>System Administrator Bonus<\/h2>\n<p>Say, Mac SysAdmins, wanna disable Silverlight on all your deployed Macs right now? Why? Maybe you want to turn it off right away and worry about installing the update later? BTW this does not block the plugin in Firefox (<a href=\"http:\/\/blog.mozilla.org\/addons\/2012\/08\/22\/blocking-old-silverlight-on-mac-os-x\/http:\/\/blog.mozilla.org\/addons\/2012\/08\/22\/blocking-old-silverlight-on-mac-os-x\/\">they have their own mechanism<\/a>), Safari only.<\/p>\n<pre>sudo \/usr\/libexec\/PlistBuddy -x -c \"add :PlugInBlacklist:10:com.microsoft.SilverlightPlugin dict\" \/System\/Library\/CoreServices\/CoreTypes.bundle\/Contents\/Resources\/XProtect.meta.plist<\/pre>\n<pre>sudo \/usr\/libexec\/PlistBuddy -x -c \"add :PlugInBlacklist:10:com.microsoft.SilverlightPlugin:MinimumPlugInBundleVersion string 5.1.20125.0\" \/System\/Library\/CoreServices\/CoreTypes.bundle\/Contents\/Resources\/XProtect.meta.plist<\/pre>\n<p>That&#8217;ll get your XProtect.meta.plist PluginBlacklist dictionary looking something like this (version vary between 10.6 and 10.7\/10.8 machines):<\/p>\n<p><a href=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectXML.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-567\" alt=\"XProtectXML\" src=\"http:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectXML.png\" width=\"618\" height=\"359\" srcset=\"https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectXML.png 618w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectXML-300x174.png 300w, https:\/\/www.brunerd.com\/blog\/wp-content\/uploads\/XProtectXML-500x290.png 500w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><\/a>\u00a0Viola, your Silverlight don&#8217;t work no more. :] Now <a href=\"https:\/\/www.microsoft.com\/getsilverlight\/Get-Started\/Install\/Default.aspx\">go update it<\/a>!<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Shhh&#8230; Silverlight&#8217;s been updated for Mac So by shear accident,\u00a0I was in Windows 7 via Boot Camp today. I decided to run updates and actually look at what was being updated. I noticed there was a new Silverlight update, 5.1.20125.0, speak of the devil, in my XProtect Plugin Checker post, not long ago, I speculate [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,7,8],"tags":[],"class_list":["post-556","post","type-post","status-publish","format-standard","hentry","category-apple","category-microsoft","category-security"],"_links":{"self":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts\/556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/comments?post=556"}],"version-history":[{"count":11,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts\/556\/revisions"}],"predecessor-version":[{"id":575,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts\/556\/revisions\/575"}],"wp:attachment":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/media?parent=556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/categories?post=556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/tags?post=556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}