<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>It’s always my problem </title>
    <link>https://itsalwaysmyproblem.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Sat, 10 Jan 2026 21:58:21 +0000</lastBuildDate>
    <item>
      <title></title>
      <link>https://itsalwaysmyproblem.com/2026/01/10/i-dont-understand-why-the.html</link>
      <pubDate>Sat, 10 Jan 2026 21:58:21 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2026/01/10/i-dont-understand-why-the.html</guid>
      <description>&lt;p&gt;I don’t understand why the UK government have not blocked Grok and X over their CSAM problems ( &lt;a href=&#34;https://www.theregister.com/2026/01/09/grok_image_generation_uk/&#34;&gt;www.theregister.com/2026/01/0&amp;hellip;&lt;/a&gt; ).&lt;/p&gt;
&lt;p&gt;I don’t understand why Google and Apple haven’t removed their apps from their respective app stores either.&lt;/p&gt;
&lt;p&gt;That’s all I’ve got to say.&lt;/p&gt;
</description>
      <source:markdown>I don’t understand why the UK government have not blocked Grok and X over their CSAM problems ( [www.theregister.com/2026/01/0...](https://www.theregister.com/2026/01/09/grok_image_generation_uk/) ).

I don’t understand why Google and Apple haven’t removed their apps from their respective app stores either.

That’s all I’ve got to say.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://itsalwaysmyproblem.com/2026/01/09/maybe-dumb-homes-are-the.html</link>
      <pubDate>Fri, 09 Jan 2026 09:54:41 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2026/01/09/maybe-dumb-homes-are-the.html</guid>
      <description>&lt;h1 id=&#34;maybe-dumb-homes-are-the-new-smart&#34;&gt;Maybe &amp;lsquo;dumb homes&amp;rsquo; are the new smart?&lt;/h1&gt;
&lt;p&gt;Went shopping for a new bathroom the other day - our en-suite is old and worn out. One thing I specified is &amp;ldquo;No &lt;em&gt;smart shower&lt;/em&gt;&amp;rdquo; because as an IT Pro who likes to relax in a hot bath away from all the tech, the last thing I want to do is troubleshoot a network problem to run the bath.&lt;/p&gt;
&lt;p&gt;With that in mind, Jason Fried&amp;rsquo;s &lt;a href=&#34;https://world.hey.com/jason/the-big-regression-da7fc60d&#34;&gt;The Big Regression&lt;/a&gt; struck a chord. I do like the idea of Smart Home stuff but it has to approve the quality of life for you in the home, it&amp;rsquo;s got to cope if the normal &amp;ldquo;tech wrangler&amp;rdquo; is dead or long-term ill. It&amp;rsquo;s got to recover nicely after a power cut, instead of needing things to be rebooted in a particular order just to get the lights on and the boiler running after a storm.&lt;/p&gt;
</description>
      <source:markdown># Maybe &#39;dumb homes&#39; are the new smart?

Went shopping for a new bathroom the other day - our en-suite is old and worn out. One thing I specified is &#34;No _smart shower_&#34; because as an IT Pro who likes to relax in a hot bath away from all the tech, the last thing I want to do is troubleshoot a network problem to run the bath.

With that in mind, Jason Fried&#39;s [The Big Regression](https://world.hey.com/jason/the-big-regression-da7fc60d) struck a chord. I do like the idea of Smart Home stuff but it has to approve the quality of life for you in the home, it&#39;s got to cope if the normal &#34;tech wrangler&#34; is dead or long-term ill. It&#39;s got to recover nicely after a power cut, instead of needing things to be rebooted in a particular order just to get the lights on and the boiler running after a storm.
</source:markdown>
    </item>
    
    <item>
      <title>Gift cards considered harmful?</title>
      <link>https://itsalwaysmyproblem.com/2025/12/19/gift-cards-considered-harmful.html</link>
      <pubDate>Fri, 19 Dec 2025 19:29:38 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2025/12/19/gift-cards-considered-harmful.html</guid>
      <description>&lt;p&gt;Through John Gruber’s &lt;a href=&#34;https://daringfireball.net/linked/2025/12/18/gift-card-tampering-scams&#34;&gt;article&lt;/a&gt; at Daring Fireball, Gift Card database, an Australian website that tracks, well, gift cards has a &lt;a href=&#34;https://gcdb.com.au/article/gift-card-scams/&#34;&gt;fantastic guide&lt;/a&gt; to spotting when a physical gift card may have been tampered with.&lt;/p&gt;
&lt;p&gt;This is a rising problem where scammers tamper with a physical gift card in a store so that it is activated when you purchase the card but you are unable to redeem the money loaded onto the card, leaving them able to do so at their leisure.&lt;/p&gt;
&lt;p&gt;There have been cases where people have lost access to their Apple/Xbox/Google account after becoming the innocent victim of scammers. At this point, I have to wonder if I’d dare redeem a gift card as I don’t know for sure if it is ‘safe’. This could be the start of the death of buying physical gift cards in stores.&lt;/p&gt;
</description>
      <source:markdown>Through John Gruber’s [article](https://daringfireball.net/linked/2025/12/18/gift-card-tampering-scams) at Daring Fireball, Gift Card database, an Australian website that tracks, well, gift cards has a [fantastic guide](https://gcdb.com.au/article/gift-card-scams/) to spotting when a physical gift card may have been tampered with.

This is a rising problem where scammers tamper with a physical gift card in a store so that it is activated when you purchase the card but you are unable to redeem the money loaded onto the card, leaving them able to do so at their leisure.

There have been cases where people have lost access to their Apple/Xbox/Google account after becoming the innocent victim of scammers. At this point, I have to wonder if I’d dare redeem a gift card as I don’t know for sure if it is ‘safe’. This could be the start of the death of buying physical gift cards in stores.
</source:markdown>
    </item>
    
    <item>
      <title>💻 Zettle code 2</title>
      <link>https://itsalwaysmyproblem.com/2024/11/02/zettle-code.html</link>
      <pubDate>Sat, 02 Nov 2024 20:20:00 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2024/11/02/zettle-code.html</guid>
      <description>&lt;p&gt;this is the enshittification that Cory @doctorow@marmot.fr writes about. My partner has a Zettle terminal that was used maybe twice then put away for some time. Upon going back to it, it gives a &lt;em&gt;code 02&lt;/em&gt; error which indicates tampering…which I’m certain hasn’t happened unless the Cat knows more than she’s admitting.&lt;/p&gt;
&lt;p&gt;I have managed to get around this tamper lock by plugging an ‘unofficial’ usb C lead in, doing a factory reset, and avoiding the physical power-off button. It now works fine… provided nobody touches the power button.&lt;/p&gt;
&lt;p&gt;So by my reckoning, either their tampering alert is triggering for no good reason, because the unit still works - and that’s bad for Zettle’s users, &lt;strong&gt;or&lt;/strong&gt; Zettle’s tamper protection is absolutely trivial to defeat… which is also a massive problem.&lt;/p&gt;
</description>
      <source:markdown>

this is the enshittification that Cory @doctorow@marmot.fr writes about. My partner has a Zettle terminal that was used maybe twice then put away for some time. Upon going back to it, it gives a _code 02_ error which indicates tampering…which I’m certain hasn’t happened unless the Cat knows more than she’s admitting.

I have managed to get around this tamper lock by plugging an ‘unofficial’ usb C lead in, doing a factory reset, and avoiding the physical power-off button. It now works fine… provided nobody touches the power button.

So by my reckoning, either their tampering alert is triggering for no good reason, because the unit still works - and that’s bad for Zettle’s users, **or** Zettle’s tamper protection is absolutely trivial to defeat… which is also a massive problem.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://itsalwaysmyproblem.com/2024/10/29/theres-a-long.html</link>
      <pubDate>Tue, 29 Oct 2024 19:59:47 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2024/10/29/theres-a-long.html</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a &lt;a href=&#34;https://www.edugeek.net/forums/employment-issues-advice/224524-devaluing-jobs.html&#34;&gt;long thread&lt;/a&gt; on Edugeek about pay and conditions for IT staff in UK education.&lt;/p&gt;
&lt;p&gt;I quit edu work about 6 years ago and my current employer in the private sector pays much better but is also much more respectful of its staff than anything I&amp;rsquo;ve ever seen in UK edu.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re seeing more and more private data being stored by schools who need to know about students and parents. We&amp;rsquo;re seeing more attacks on IT infrastructure, and we&amp;rsquo;re seeing the people protecting the security and integrity of children&amp;rsquo;s education and privacy being undermined. This can&amp;rsquo;t go on.&lt;/p&gt;
</description>
      <source:markdown>There&#39;s a [long thread](https://www.edugeek.net/forums/employment-issues-advice/224524-devaluing-jobs.html) on Edugeek about pay and conditions for IT staff in UK education.

I quit edu work about 6 years ago and my current employer in the private sector pays much better but is also much more respectful of its staff than anything I&#39;ve ever seen in UK edu. 

We&#39;re seeing more and more private data being stored by schools who need to know about students and parents. We&#39;re seeing more attacks on IT infrastructure, and we&#39;re seeing the people protecting the security and integrity of children&#39;s education and privacy being undermined. This can&#39;t go on.
</source:markdown>
    </item>
    
    <item>
      <title>Apple&#39;s designs</title>
      <link>https://itsalwaysmyproblem.com/2024/10/29/apples-designs.html</link>
      <pubDate>Tue, 29 Oct 2024 18:46:27 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2024/10/29/apples-designs.html</guid>
      <description>&lt;p&gt;Anyone ordered a &lt;a href=&#34;https://www.apple.com/mac-mini/&#34;&gt;Mac Mini&lt;/a&gt; yet? I&amp;rsquo;ve not got a use for one, but I&amp;rsquo;m intrigued. I can live with the power button being on the bottom.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://micro.blog/gruber@mastodon.social&#34;&gt;@gruber@mastodon.social&lt;/a&gt;  makes an interesting point about the Apple Mouse charge socket being on its bottom; you might not agree with Apple but these are design choices, not design mistakes.&lt;/p&gt;
</description>
      <source:markdown>Anyone ordered a [Mac Mini](https://www.apple.com/mac-mini/) yet? I&#39;ve not got a use for one, but I&#39;m intrigued. I can live with the power button being on the bottom.

[@gruber@mastodon.social](https://micro.blog/gruber@mastodon.social)  makes an interesting point about the Apple Mouse charge socket being on its bottom; you might not agree with Apple but these are design choices, not design mistakes.
</source:markdown>
    </item>
    
    <item>
      <title>Becoming a Chartered IT Professional</title>
      <link>https://itsalwaysmyproblem.com/2024/10/28/becoming-a-chartered.html</link>
      <pubDate>Mon, 28 Oct 2024 20:20:02 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2024/10/28/becoming-a-chartered.html</guid>
      <description>&lt;p&gt;I have recently been working on my professional development and was delighted to be awarded the status of Chartered Information Technology Professional (CITP) from the &lt;a href=&#34;https://www.bcs.org/membership-and-registrations/get-registered/chartered-it-professional/&#34;&gt;British Computer Society&lt;/a&gt; last year.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why does this matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Chartered status can only be granted by organisations which have received a Royal Charter to make these awards and Chartered status should be equivilent across different professional fields, so CITP status is considered equal to other professional awards such as Chartered Engineer or Chartered Surveyor.&lt;/p&gt;
&lt;p&gt;CITP is a measure of current (at the time of award) competency.&lt;/p&gt;
&lt;p&gt;For those of you who haven&amp;rsquo;t come across the term before Chartered Professional is the pinnacle of professional awards in the UK - it&amp;rsquo;s a measurement of professional competence. For anyone visiting from the states, you could think of this as being broadly like being a licenced Professional Engineer, in the field of IT.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CITP isn&amp;rsquo;t about how long you&amp;rsquo;ve been in IT&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CITP isn&amp;rsquo;t an award you get for hanging around the place. It&amp;rsquo;s a measure of current competence and professionalism. Candidates are independently assessed against the SFIAplus skills framework to ensure they meet the right criteria for experience over several years, and CITP holders must maintain and renew their &amp;lsquo;certificate of current competence&amp;rsquo; to retain the status.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CITP isn&amp;rsquo;t about being better at IT than others.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CITP is a measure of the professional, ethical, and technical level I&amp;rsquo;m working at right now. It&amp;rsquo;s an affirmation that I&amp;rsquo;m working at that level and that I&amp;rsquo;m able to present evidence of that for an independent assessment by an industry body. It&amp;rsquo;s not a claim by either the BCS or me that I&amp;rsquo;m automatically better than anyone who is not a CITP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CITP isn&amp;rsquo;t about knowing everything&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I work in Infrastructure, cloud and architecture these days, and my CITP application and assessment was based around those areas. My competency as measured by the award is around these areas. It doesn&amp;rsquo;t mean I&amp;rsquo;m an expert at every aspect of IT (I&amp;rsquo;m not great at either programming or soldering and being a CITP didn&amp;rsquo;t magically help me be any better).&lt;/p&gt;
&lt;p&gt;The code of conduct I&amp;rsquo;ve agreed to as part of my BCS membership and CITP award compels me to be aware of and honest about my weaknesses. And over the 30+ years I’ve been working in IT most of the biggest failures I’ve seen have been to overconfidence or an inability to step back and reflect on a decision.&lt;/p&gt;
&lt;p&gt;So, I&amp;rsquo;m still not the person you want to write you a complex computer program&amp;hellip; but I can admit my limits and set about helping you find someone who can do an excellent job of writing your code for you.&lt;/p&gt;
</description>
      <source:markdown>I have recently been working on my professional development and was delighted to be awarded the status of Chartered Information Technology Professional (CITP) from the [British Computer Society](https://www.bcs.org/membership-and-registrations/get-registered/chartered-it-professional/) last year.

**Why does this matter?**

Chartered status can only be granted by organisations which have received a Royal Charter to make these awards and Chartered status should be equivilent across different professional fields, so CITP status is considered equal to other professional awards such as Chartered Engineer or Chartered Surveyor. 

CITP is a measure of current (at the time of award) competency. 

For those of you who haven&#39;t come across the term before Chartered Professional is the pinnacle of professional awards in the UK - it&#39;s a measurement of professional competence. For anyone visiting from the states, you could think of this as being broadly like being a licenced Professional Engineer, in the field of IT.

**CITP isn&#39;t about how long you&#39;ve been in IT**

CITP isn&#39;t an award you get for hanging around the place. It&#39;s a measure of current competence and professionalism. Candidates are independently assessed against the SFIAplus skills framework to ensure they meet the right criteria for experience over several years, and CITP holders must maintain and renew their &#39;certificate of current competence&#39; to retain the status.

**CITP isn&#39;t about being better at IT than others.**

CITP is a measure of the professional, ethical, and technical level I&#39;m working at right now. It&#39;s an affirmation that I&#39;m working at that level and that I&#39;m able to present evidence of that for an independent assessment by an industry body. It&#39;s not a claim by either the BCS or me that I&#39;m automatically better than anyone who is not a CITP. 

**CITP isn&#39;t about knowing everything**

I work in Infrastructure, cloud and architecture these days, and my CITP application and assessment was based around those areas. My competency as measured by the award is around these areas. It doesn&#39;t mean I&#39;m an expert at every aspect of IT (I&#39;m not great at either programming or soldering and being a CITP didn&#39;t magically help me be any better). 

The code of conduct I&#39;ve agreed to as part of my BCS membership and CITP award compels me to be aware of and honest about my weaknesses. And over the 30+ years I’ve been working in IT most of the biggest failures I’ve seen have been to overconfidence or an inability to step back and reflect on a decision.

So, I&#39;m still not the person you want to write you a complex computer program... but I can admit my limits and set about helping you find someone who can do an excellent job of writing your code for you.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://itsalwaysmyproblem.com/2024/10/27/not-written-anything.html</link>
      <pubDate>Sun, 27 Oct 2024 20:21:43 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2024/10/27/not-written-anything.html</guid>
      <description>&lt;p&gt;👋 Not written anything about my techie noodling 👩‍💻👨‍💻💻in ages, but busy migrating to micro.blog from Wordpress.&lt;/p&gt;
&lt;p&gt;it’s been interesting  to say the least. The Wordpress implosion, which I’m not qualified to write about, got me thinking about the why,  if and how of blogs in 2024.  Micro.blog turned out to be very easy to migrate to, and has some neat features. So yeah. I should redirect my domain name soon so let’s see how that goes. I might then write about the migration process and &lt;em&gt;why&lt;/em&gt; micro.blog.&lt;/p&gt;
</description>
      <source:markdown>👋 Not written anything about my techie noodling 👩‍💻👨‍💻💻in ages, but busy migrating to micro.blog from Wordpress.

it’s been interesting  to say the least. The Wordpress implosion, which I’m not qualified to write about, got me thinking about the why,  if and how of blogs in 2024.  Micro.blog turned out to be very easy to migrate to, and has some neat features. So yeah. I should redirect my domain name soon so let’s see how that goes. I might then write about the migration process and _why_ micro.blog.
</source:markdown>
    </item>
    
    <item>
      <title>Securing Admin roles in Azure Active Directory</title>
      <link>https://itsalwaysmyproblem.com/2020/07/14/securing-admin-roles.html</link>
      <pubDate>Tue, 14 Jul 2020 20:48:12 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2020/07/14/securing-admin-roles.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m going to continue my recent look at securing your Office 365/Azure AD directory with a quick dive into using Conditional Access rules to protect your directory&amp;rsquo;s most prized asset - accounts with admin roles.&lt;/p&gt;
&lt;p&gt;These are roles that can be used to accomplish admin tasks within your organisation&amp;rsquo;s Office 365/Azure AD and Azure estate and they are important because they are essentially the keys to the kingdom. While you should be looking to secure all your accounts because all your users probably have access to sensitive information, systems or services; admin accounts are the accounts that give their user access to your entire estate in one or two leaps. An attacker doesn&amp;rsquo;t need to worry about compromising your board&amp;rsquo;s accounts one at a time to look at emails if they can compromise an admin account to download everyone&amp;rsquo;s emails to PST and add a few interesting rules to your Exchange Online transport rules while they&amp;rsquo;re there too.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to talk later in this post about the right way to protect admin accounts using MFA, but first of all I want to talk about the two most common issues with admin permissions.&lt;/p&gt;
&lt;p&gt;Two of the most common weaknesses I still see in both AD and Azure AD management are assigning admin rights to a user&amp;rsquo;s daily driver account, and assigning overly permissive privileges.&lt;/p&gt;
&lt;h4&gt;Don&#39;t assign admin rights to daily driver accounts&lt;/h4&gt;
If your organisation is guilty of this then putting a stop to it right now is easily one of the simplest ways to improve security. When I talk about a &#34;daily driver account&#34;, I&#39;m talking about a person&#39;s everyday user account that they log on to when they start work, that they use for their normal Internet use, talking to others on Teams or Slack, send and receive email from.  The issue comes when a user needs an admin privilege to get a job done. Perhaps he&#39;s part of the helpdesk team and you assign him the rights to reset passwords and clear MFA registrations in Azure AD. Perhaps she&#39;s your Office 365 app specialist and she needs SharePoint or Exchange administrator rights to get the job done.
&lt;p&gt;That&amp;rsquo;s fine&amp;hellip; but don&amp;rsquo;t assign admin rights to their standard account. If their account is compromised via a webpage or email, this makes it utterly trivial for an attacker to exploit any admin permissions assigned to that account. Instead, create a separate admin account for each IT staff member and assign the rights to that account only.&lt;/p&gt;
&lt;h4&gt;Over-permissioning accounts&lt;/h4&gt;
Also a common error, and one that&#39;s somewhat down to Microsoft in the O365/Azure AD world. Consider my helpdesk admin and my Exchange Online admin from the last section. Clearly they need some kind of admin access to do their role, but they don&#39;t need to be Global Administrators to accomplish their task. This allows them more permissions than they need to carry out their job and this presents several threats
&lt;ol&gt;
 	&lt;li&gt;It raises the impact risk of any mistake they make - I can&#39;t accidentally delete the Azure AD directory if I don&#39;t have permission to do so.&lt;/li&gt;
 	&lt;li&gt;It again means that any hacker that compromises their admin account has wider scope to cause harm than they might otherwise have had.&lt;/li&gt;
 	&lt;li&gt;From a data protection / governance angle, personal data should be stored in such a way that allows you account for how it is used, and stored with integrity and confidentiality in mind. It&#39;s hard to do that if everyone on your network can use admin rights they don&#39;t need to view or alter customer data.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Protecting Admin accounts with MFA&lt;/h4&gt;
In my recent article on &lt;a href=&#34;http://itsalwaysmyproblem.com/2020/07/05/using-passwordless-for-office-365/&#34;&gt;Passwordless authentication&lt;/a&gt; I mentioned protecting user accounts with some form of MFA. This should obviously apply to administrative accounts and roles just as much as it does to normal users.
&lt;p&gt;You can, of course create a group for your admin users, then assign a Conditional Access rule to that group that requires MFA when you sign in. I&amp;rsquo;ve seen that applied in several places, similar to the example below.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-group.png&#34;&gt;&lt;img class=&#34;aligncenter wp-image-976 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-group.png?w=1024&#34; alt=&#34;&#34; width=&#34;1024&#34; height=&#34;618&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This will work of course, and as I&amp;rsquo;ve said before, if you&amp;rsquo;ve done this then you&amp;rsquo;re ahead of the far too many people who haven&amp;rsquo;t done even this much. But this approach has two disadvantages.&lt;/p&gt;
&lt;ol&gt;
 	&lt;li&gt;You must remember to put admin users into the correct group, and you must trust your admin users not to remove themselves from that group. Still nobody makes mistakes and nobody gets fed up of using MFA right?&lt;/li&gt;
 	&lt;li&gt;MFA against cloud apps will secure portals but it requires you to stay on top of the changes Microsoft make to these portals, and most importantly of all, does not do enough to protect against access via PowerShell or the &lt;a href=&#34;https://docs.microsoft.com/en-us/graph/overview&#34;&gt;Graph API&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
There is a better way: Secure admin roles rather than admin people
&lt;p&gt;Microsoft allow you to create Conditional Access rules that secure &lt;em&gt;roles&lt;/em&gt; rather than people or portals.&lt;/p&gt;
&lt;p&gt;Administrative roles in Office 365/Azure AD are what drive your admins use of the Azure and Office 365 portals. They are also what drive use of the technologies such as Graph API and PowerShell that are used to build the portals. This means that any attempt to use a protected role with any method will go through your Conditional Access rules. Keep in mind that while I&amp;rsquo;ve spoken about Conditional Access rules purely as a way to enforce MFA, you can actually make several requirements mandatory for accessing sensitive roles or data if you use MFA.&lt;/p&gt;
&lt;p&gt;This means that you do not need to remember to add each new admin user to a group; or worry that Fred has granted himself global admin rights on his personal account again; or that you don&amp;rsquo;t even know what I&amp;rsquo;m talking about when I mentioned Graph API earlier, let alone how to secure it.&lt;/p&gt;
&lt;p&gt;You &lt;em&gt;do&lt;/em&gt; need to check that a new role hasn&amp;rsquo;t been added to the list in Azure/Office 365, but then this only becomes a real risk if you assign this role to your admin users.&lt;/p&gt;
&lt;p&gt;Consider the example rule Conditional Access rule below, which demonstrates securing Directory Roles rather than groups or individuals.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-role.png&#34;&gt;&lt;img class=&#34;aligncenter size-large wp-image-980&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-role.png?w=1024&#34; alt=&#34;&#34; width=&#34;1024&#34; height=&#34;677&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here we have chosen to secure &lt;em&gt;Directory Roles&lt;/em&gt; rather than users. This means that any use who has that role assigned to them will be managed by this Conditional Access rule each time they sign in. It doesn&amp;rsquo;t matter how they connect, and it doesn&amp;rsquo;t matter if they&amp;rsquo;re using the role or not. If they have the role assigned to their account at all, they will need to meet the login standards required by the Conditional Access rules you set.&lt;/p&gt;
&lt;p&gt;We are using the role to allow login on any device platform, but only from a trusted location. We are also requiring the user complete a MFA challenge, and to use a device that is Hybrid Azure AD joined &lt;em&gt;and&lt;/em&gt; compliant with our Intune MDM policies.&lt;/p&gt;
&lt;p&gt;At this point we&amp;rsquo;re saying you must be using MFA, be on-site (this could include connecting via a VPN remember), and have a device that can be checked and managed by Azure AD. This is about as safe as it gets. Combine this with passwordless login to ensure the MFA process is as secure as possible and your admins will be working securely and with as little friction as possible when using MFA.&lt;/p&gt;
&lt;p&gt;You could expand this further with the correct Azure AD P2 licences, and block logins to these roles from high risk user or sign-in scenarios. In fact, if you &lt;em&gt;have&lt;/em&gt; P2 licences, I strongly suggest you do exactly that.&lt;/p&gt;
&lt;p&gt;And yes, it &lt;em&gt;is &lt;/em&gt;possible to lock yourself out with these rules if you&amp;rsquo;re not careful. Which is while we&amp;rsquo;ll cover Break-glass accounts in another post, and why you should use the report function and test very carefully before enabling this feature.&lt;/p&gt;
</description>
      <source:markdown>I&#39;m going to continue my recent look at securing your Office 365/Azure AD directory with a quick dive into using Conditional Access rules to protect your directory&#39;s most prized asset - accounts with admin roles.

These are roles that can be used to accomplish admin tasks within your organisation&#39;s Office 365/Azure AD and Azure estate and they are important because they are essentially the keys to the kingdom. While you should be looking to secure all your accounts because all your users probably have access to sensitive information, systems or services; admin accounts are the accounts that give their user access to your entire estate in one or two leaps. An attacker doesn&#39;t need to worry about compromising your board&#39;s accounts one at a time to look at emails if they can compromise an admin account to download everyone&#39;s emails to PST and add a few interesting rules to your Exchange Online transport rules while they&#39;re there too.

I&#39;m going to talk later in this post about the right way to protect admin accounts using MFA, but first of all I want to talk about the two most common issues with admin permissions.

Two of the most common weaknesses I still see in both AD and Azure AD management are assigning admin rights to a user&#39;s daily driver account, and assigning overly permissive privileges.
&lt;h4&gt;Don&#39;t assign admin rights to daily driver accounts&lt;/h4&gt;
If your organisation is guilty of this then putting a stop to it right now is easily one of the simplest ways to improve security. When I talk about a &#34;daily driver account&#34;, I&#39;m talking about a person&#39;s everyday user account that they log on to when they start work, that they use for their normal Internet use, talking to others on Teams or Slack, send and receive email from.  The issue comes when a user needs an admin privilege to get a job done. Perhaps he&#39;s part of the helpdesk team and you assign him the rights to reset passwords and clear MFA registrations in Azure AD. Perhaps she&#39;s your Office 365 app specialist and she needs SharePoint or Exchange administrator rights to get the job done.

That&#39;s fine... but don&#39;t assign admin rights to their standard account. If their account is compromised via a webpage or email, this makes it utterly trivial for an attacker to exploit any admin permissions assigned to that account. Instead, create a separate admin account for each IT staff member and assign the rights to that account only.
&lt;h4&gt;Over-permissioning accounts&lt;/h4&gt;
Also a common error, and one that&#39;s somewhat down to Microsoft in the O365/Azure AD world. Consider my helpdesk admin and my Exchange Online admin from the last section. Clearly they need some kind of admin access to do their role, but they don&#39;t need to be Global Administrators to accomplish their task. This allows them more permissions than they need to carry out their job and this presents several threats
&lt;ol&gt;
 	&lt;li&gt;It raises the impact risk of any mistake they make - I can&#39;t accidentally delete the Azure AD directory if I don&#39;t have permission to do so.&lt;/li&gt;
 	&lt;li&gt;It again means that any hacker that compromises their admin account has wider scope to cause harm than they might otherwise have had.&lt;/li&gt;
 	&lt;li&gt;From a data protection / governance angle, personal data should be stored in such a way that allows you account for how it is used, and stored with integrity and confidentiality in mind. It&#39;s hard to do that if everyone on your network can use admin rights they don&#39;t need to view or alter customer data.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Protecting Admin accounts with MFA&lt;/h4&gt;
In my recent article on &lt;a href=&#34;http://itsalwaysmyproblem.com/2020/07/05/using-passwordless-for-office-365/&#34;&gt;Passwordless authentication&lt;/a&gt; I mentioned protecting user accounts with some form of MFA. This should obviously apply to administrative accounts and roles just as much as it does to normal users.

You can, of course create a group for your admin users, then assign a Conditional Access rule to that group that requires MFA when you sign in. I&#39;ve seen that applied in several places, similar to the example below.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-group.png&#34;&gt;&lt;img class=&#34;aligncenter wp-image-976 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-group.png?w=1024&#34; alt=&#34;&#34; width=&#34;1024&#34; height=&#34;618&#34;&gt;&lt;/a&gt;

This will work of course, and as I&#39;ve said before, if you&#39;ve done this then you&#39;re ahead of the far too many people who haven&#39;t done even this much. But this approach has two disadvantages.
&lt;ol&gt;
 	&lt;li&gt;You must remember to put admin users into the correct group, and you must trust your admin users not to remove themselves from that group. Still nobody makes mistakes and nobody gets fed up of using MFA right?&lt;/li&gt;
 	&lt;li&gt;MFA against cloud apps will secure portals but it requires you to stay on top of the changes Microsoft make to these portals, and most importantly of all, does not do enough to protect against access via PowerShell or the &lt;a href=&#34;https://docs.microsoft.com/en-us/graph/overview&#34;&gt;Graph API&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
There is a better way: Secure admin roles rather than admin people

Microsoft allow you to create Conditional Access rules that secure &lt;em&gt;roles&lt;/em&gt; rather than people or portals.

Administrative roles in Office 365/Azure AD are what drive your admins use of the Azure and Office 365 portals. They are also what drive use of the technologies such as Graph API and PowerShell that are used to build the portals. This means that any attempt to use a protected role with any method will go through your Conditional Access rules. Keep in mind that while I&#39;ve spoken about Conditional Access rules purely as a way to enforce MFA, you can actually make several requirements mandatory for accessing sensitive roles or data if you use MFA.

This means that you do not need to remember to add each new admin user to a group; or worry that Fred has granted himself global admin rights on his personal account again; or that you don&#39;t even know what I&#39;m talking about when I mentioned Graph API earlier, let alone how to secure it.

You &lt;em&gt;do&lt;/em&gt; need to check that a new role hasn&#39;t been added to the list in Azure/Office 365, but then this only becomes a real risk if you assign this role to your admin users.

Consider the example rule Conditional Access rule below, which demonstrates securing Directory Roles rather than groups or individuals.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-role.png&#34;&gt;&lt;img class=&#34;aligncenter size-large wp-image-980&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/admin-mfa-by-role.png?w=1024&#34; alt=&#34;&#34; width=&#34;1024&#34; height=&#34;677&#34;&gt;&lt;/a&gt;

Here we have chosen to secure &lt;em&gt;Directory Roles&lt;/em&gt; rather than users. This means that any use who has that role assigned to them will be managed by this Conditional Access rule each time they sign in. It doesn&#39;t matter how they connect, and it doesn&#39;t matter if they&#39;re using the role or not. If they have the role assigned to their account at all, they will need to meet the login standards required by the Conditional Access rules you set.

We are using the role to allow login on any device platform, but only from a trusted location. We are also requiring the user complete a MFA challenge, and to use a device that is Hybrid Azure AD joined &lt;em&gt;and&lt;/em&gt; compliant with our Intune MDM policies.

At this point we&#39;re saying you must be using MFA, be on-site (this could include connecting via a VPN remember), and have a device that can be checked and managed by Azure AD. This is about as safe as it gets. Combine this with passwordless login to ensure the MFA process is as secure as possible and your admins will be working securely and with as little friction as possible when using MFA.

You could expand this further with the correct Azure AD P2 licences, and block logins to these roles from high risk user or sign-in scenarios. In fact, if you &lt;em&gt;have&lt;/em&gt; P2 licences, I strongly suggest you do exactly that.

And yes, it &lt;em&gt;is &lt;/em&gt;possible to lock yourself out with these rules if you&#39;re not careful. Which is while we&#39;ll cover Break-glass accounts in another post, and why you should use the report function and test very carefully before enabling this feature.
</source:markdown>
    </item>
    
    <item>
      <title>Using Passwordless for Office 365</title>
      <link>https://itsalwaysmyproblem.com/2020/07/05/using-passwordless-for.html</link>
      <pubDate>Sun, 05 Jul 2020 16:18:42 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2020/07/05/using-passwordless-for.html</guid>
      <description>&lt;p&gt;As the pace of attacks continues against companies who use online services, major IAM providers such as Microsoft and Okta are looking for ways to improve theirs and your security game.&lt;/p&gt;
&lt;p&gt;I was fortunate enough to attend the 2019 Okta forum in London and one of the drums Okta beat throughout the entire presentation was Passwordless Authentication. Microsoft are also recommending this as a major improvement to Office 365/Azure security even on top of MFA.&lt;/p&gt;
&lt;h2&gt;What is Passwordless?&lt;/h2&gt;
Passwordless Authentication essentially means turning over the full login process to your MFA device. All my examples here are going to talk about Azure AD/Office 365 and the Microsoft Authenticator app, but other IAM / MFA providers will be similar.
&lt;p&gt;When you log on to a service that uses passwordless auth, rather than simply being asked for your username and password then needing to supply a simple 6 digit pin or approve a &amp;lsquo;push&amp;rsquo; notification, you simple log in with your username and you will be shown a question on screen that will need to be answered on your MFA device. The MFA device should verify that it really is &lt;em&gt;you&lt;/em&gt; answering the query by carrying out a biometric check also alongside the query (e.g. using Face ID to verify who is using the MFA app).&lt;/p&gt;
&lt;p&gt;This stops your password being stolen by a compromised webpage or computer, and also validates your login against several of the the standard &lt;a href=&#34;https://en.wikipedia.org/wiki/Multi-factor_authentication#Authentication_factors&#34;&gt;5 authentication factors:&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;
&lt;em&gt;Something you are&lt;/em&gt;: Using biometrics to make sure it&#39;s really you.&lt;/li&gt;
 	&lt;li&gt;
&lt;em&gt;Something you have&lt;/em&gt;:  Your login token (e.g. phone with Microsoft Authenticator.&lt;/li&gt;
&lt;/ul&gt;
You could argue that this is also an example of &lt;em&gt;Somewhere you are&lt;/em&gt;, because you, the login token and the device you&#39;re logging in to all have to be in the same location at the same time.
&lt;p&gt;All this means that simply phishing your password or event stealing your unlocked mobile phone with your authenticator app on it will not help an intruder.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to run you through a quick guide to setting this up on Microsoft&amp;rsquo;s Azure AD along with Conditional Access in the rest of this article.&lt;/p&gt;
&lt;h2&gt;Branding your login page.&lt;/h2&gt;
This isn&#39;t necessary to complete a test but I do think branding your Microsoft login page for Office 365 is important. Part of encouraging users to avoid fake login pages (on the grounds that even with Passwordless, some users will still fall for a fake site asking for a password)  is to make your login page customised to your corporate standard. As logos are trivial to steal, this will &lt;strong&gt;not&lt;/strong&gt; do much to stop a determined attacker who is specifically targeting you, but it will slow down the rate of casual drive-by credential theft. You have other tools for spotting targetted attacks.
&lt;p&gt;To do this, log in to Azure Portal as a Global Administrator and proceed to Azure Active Directory &amp;gt; Company Branding. Then click Configure.&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-952&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/branding-2.png&#34; alt=&#34;branding 2&#34; width=&#34;1890&#34; height=&#34;732&#34;&gt;
&lt;p&gt;A form will appear asking you to select files for background, logos, etc. These will hopefully be self-explanatory and as these are standard corporate resources, you will probably have them to hand without too much trouble, e.g. your corporate desktop wallpaper for the sign-in page background image, etc.&lt;/p&gt;
&lt;p&gt;When you are ready, click &lt;em&gt;Save&lt;/em&gt; at the top of the form. Your changes will be live immediately (though they may not show up everywhere consistently just yet).&lt;/p&gt;
&lt;p&gt;You can use this custom branding on links to the Microsoft login pages by adding &lt;em&gt;?whr=yourdomain.com &lt;/em&gt;to the end of a url, for example: &lt;a href=&#34;https://account.activedirectory.windowsazure.com/proofup.aspx?whr=example.com&#34;&gt;account.activedirectory.windowsazure.com/proofup.a&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;img class=&#34;aligncenter size-large wp-image-953&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/branding-3.png?w=1024&#34; alt=&#34;branding 3&#34; width=&#34;1024&#34; height=&#34;925&#34;&gt;
&lt;p&gt;Now that things look professional we can move on to the feature presentation&lt;/p&gt;
&lt;h2&gt;Enabling Passwordless Authentication.&lt;/h2&gt;
&lt;h4&gt;Prerequisites&lt;/h4&gt;
I&#39;m going to assume you&#39;re comfortable with the basics around MFA using Conditional Access (CA), creating a CA rule, and enrolling users into MFA.  I&#39;m assuming you already have your users configured and licenced. I&#39;m also glossing over a lot of what I consider to be good practice for Azure MFA configuration. I will return to that later but the point of this article to to talk about passwordless. The CA rules you will see in use in this article are the ones used in the &lt;a href=&#34;http://itsalwaysmyproblem.com/2020/07/03/azure-conditional-access-for-chromebooks/&#34;&gt;recent article&lt;/a&gt; about Azure MFA and Chromebooks.
&lt;h4&gt;Getting Started.&lt;/h4&gt;
One thing to remember here is that Passwordless isn&#39;t an alternative to Azure&#39;s MFA mechanism. Instead it is an additional layer. This means that you can choose to apply Passwordless to some or all of your MFA users, which is great for testing. Let&#39;s get started/
&lt;p&gt;Create a test group. For the purposes of this article, I&amp;rsquo;m creating an Azure AD group named &lt;em&gt;IAMP_Passwordless_MFA&lt;/em&gt; but you can use groups synced from AD if you please.&lt;/p&gt;
&lt;p&gt;From the Azure portal, open Azure Active Directory &amp;gt; Security &amp;gt; Authentication Methods.&lt;/p&gt;
&lt;img class=&#34; size-full wp-image-954 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-1.png&#34; alt=&#34;passwordless config 1&#34; width=&#34;1810&#34; height=&#34;919&#34;&gt;
&lt;p&gt;Select &lt;em&gt;Microsoft Authenticator Passwordless sign-in&lt;/em&gt;. On the control panel that appears below, select Enable = Yes, and for Target select the test group you created earlier. Click Save once you are happy with your settings, which should look similar to the ones above.&lt;/p&gt;
&lt;p&gt;We now need to check our Conditional Access rules. In the Azure Portal, click home and then find your Azure AD Conditional Access service.&lt;/p&gt;
&lt;p&gt;Locate your appropriate CA rule (&lt;em&gt;MFA all Devices and Users&lt;/em&gt; in my case, below) and click to edit.&lt;/p&gt;
&lt;p&gt;&lt;img class=&#34; size-full wp-image-955 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-2.png&#34; alt=&#34;passwordless config 2&#34; width=&#34;1512&#34; height=&#34;578&#34;&gt;&lt;img class=&#34; size-full wp-image-956 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-3.png&#34; alt=&#34;passwordless config 3&#34; width=&#34;609&#34; height=&#34;738&#34;&gt;&lt;/p&gt;
&lt;p&gt;In the CA rule, select &lt;em&gt;Users and Groups &amp;gt; Include&lt;/em&gt;, and ensure your test group is listed here.&lt;/p&gt;
&lt;h4&gt;Testing Passwordless&lt;/h4&gt;
Now we&#39;re ready to test. Firstly, make sure your test group has a test user placed into it. You will also need a test device to run Microsoft Authenticator from. This can be almost any modern Android or iOS device that can do Touch or Face Biometric ID and the device &lt;em&gt;must not be registered to another Azure AD tenant&lt;/em&gt;. This might make testing on a separate test tenant a little difficult.
&lt;p&gt;To start, open up a new browser session to your Office 365 or Azure portal and sign in as your test user. You should see your newly branded login screen at this point too.&lt;/p&gt;
&lt;p&gt;You will probably be asked to proceed through the MFA enrolment process at this point with the &amp;ldquo;More Information Required&amp;rdquo; screen.&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-957&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-enrol1.png&#34; alt=&#34;passwordless enrol1&#34; width=&#34;1800&#34; height=&#34;831&#34;&gt;
&lt;p&gt;Once your test account is enrolled and working properly with the Microsoft Authenticator and Push notifications, you are ready to enable Passwordless on this device.&lt;/p&gt;
&lt;p style=&#34;text-align:left;&#34;&gt;&lt;img class=&#34; wp-image-960 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/ipad-3.png&#34; alt=&#34;ipad 3&#34; width=&#34;454&#34; height=&#34;293&#34;&gt;In the Microsoft Authenticator app, tap on the entry for your test account to view its properties. Now tap the entry for &lt;em&gt;Enable Phone Sign-In&lt;/em&gt;. You will be warned that your device will need to be registered against your Azure AD directory and that device security (e.g. Touch ID/Face ID) is required. &lt;img class=&#34; wp-image-959 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/ipad-5-1.png&#34; alt=&#34;ipad 5&#34; width=&#34;512&#34; height=&#34;372&#34;&gt;&lt;/p&gt;
Click Continue. When prompted, sign in as your test user on that device and complete the wizard.
&lt;p&gt;On your PC, sign out as that user, close your browser session and open a fresh one. Then sign in as the test user and you should now be prompted for a passwordless sign-in &lt;em&gt;and&lt;/em&gt; prompted to complete the appropriate Touch or Face biometric challenge in order to log in successfully.&lt;/p&gt;
&lt;img class=&#34; size-full wp-image-961 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-challenge-1.png&#34; alt=&#34;Passwordless challenge 1&#34; width=&#34;1241&#34; height=&#34;913&#34;&gt;
&lt;p&gt;You can also view this in the Azure AD sign in reports for the test user, where it will show as &lt;em&gt;MFA requirement satisfied by strong authentication. &lt;/em&gt;Microsoft document the log values for troubleshooting &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-reporting&#34;&gt;here&lt;/a&gt; if you have any trouble.&lt;/p&gt;
</description>
      <source:markdown>As the pace of attacks continues against companies who use online services, major IAM providers such as Microsoft and Okta are looking for ways to improve theirs and your security game.

I was fortunate enough to attend the 2019 Okta forum in London and one of the drums Okta beat throughout the entire presentation was Passwordless Authentication. Microsoft are also recommending this as a major improvement to Office 365/Azure security even on top of MFA.
&lt;h2&gt;What is Passwordless?&lt;/h2&gt;
Passwordless Authentication essentially means turning over the full login process to your MFA device. All my examples here are going to talk about Azure AD/Office 365 and the Microsoft Authenticator app, but other IAM / MFA providers will be similar.

When you log on to a service that uses passwordless auth, rather than simply being asked for your username and password then needing to supply a simple 6 digit pin or approve a &#39;push&#39; notification, you simple log in with your username and you will be shown a question on screen that will need to be answered on your MFA device. The MFA device should verify that it really is &lt;em&gt;you&lt;/em&gt; answering the query by carrying out a biometric check also alongside the query (e.g. using Face ID to verify who is using the MFA app).

This stops your password being stolen by a compromised webpage or computer, and also validates your login against several of the the standard &lt;a href=&#34;https://en.wikipedia.org/wiki/Multi-factor_authentication#Authentication_factors&#34;&gt;5 authentication factors:&lt;/a&gt;
&lt;ul&gt;
 	&lt;li&gt;
&lt;em&gt;Something you are&lt;/em&gt;: Using biometrics to make sure it&#39;s really you.&lt;/li&gt;
 	&lt;li&gt;
&lt;em&gt;Something you have&lt;/em&gt;:  Your login token (e.g. phone with Microsoft Authenticator.&lt;/li&gt;
&lt;/ul&gt;
You could argue that this is also an example of &lt;em&gt;Somewhere you are&lt;/em&gt;, because you, the login token and the device you&#39;re logging in to all have to be in the same location at the same time.

All this means that simply phishing your password or event stealing your unlocked mobile phone with your authenticator app on it will not help an intruder.

I&#39;m going to run you through a quick guide to setting this up on Microsoft&#39;s Azure AD along with Conditional Access in the rest of this article.
&lt;h2&gt;Branding your login page.&lt;/h2&gt;
This isn&#39;t necessary to complete a test but I do think branding your Microsoft login page for Office 365 is important. Part of encouraging users to avoid fake login pages (on the grounds that even with Passwordless, some users will still fall for a fake site asking for a password)  is to make your login page customised to your corporate standard. As logos are trivial to steal, this will &lt;strong&gt;not&lt;/strong&gt; do much to stop a determined attacker who is specifically targeting you, but it will slow down the rate of casual drive-by credential theft. You have other tools for spotting targetted attacks.

To do this, log in to Azure Portal as a Global Administrator and proceed to Azure Active Directory &amp;gt; Company Branding. Then click Configure.

&lt;img class=&#34;alignnone size-full wp-image-952&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/branding-2.png&#34; alt=&#34;branding 2&#34; width=&#34;1890&#34; height=&#34;732&#34;&gt;

A form will appear asking you to select files for background, logos, etc. These will hopefully be self-explanatory and as these are standard corporate resources, you will probably have them to hand without too much trouble, e.g. your corporate desktop wallpaper for the sign-in page background image, etc.

When you are ready, click &lt;em&gt;Save&lt;/em&gt; at the top of the form. Your changes will be live immediately (though they may not show up everywhere consistently just yet).

You can use this custom branding on links to the Microsoft login pages by adding &lt;em&gt;?whr=yourdomain.com &lt;/em&gt;to the end of a url, for example: [account.activedirectory.windowsazure.com/proofup.a...](https://account.activedirectory.windowsazure.com/proofup.aspx?whr=example.com)

&lt;img class=&#34;aligncenter size-large wp-image-953&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/branding-3.png?w=1024&#34; alt=&#34;branding 3&#34; width=&#34;1024&#34; height=&#34;925&#34;&gt;

Now that things look professional we can move on to the feature presentation
&lt;h2&gt;Enabling Passwordless Authentication.&lt;/h2&gt;
&lt;h4&gt;Prerequisites&lt;/h4&gt;
I&#39;m going to assume you&#39;re comfortable with the basics around MFA using Conditional Access (CA), creating a CA rule, and enrolling users into MFA.  I&#39;m assuming you already have your users configured and licenced. I&#39;m also glossing over a lot of what I consider to be good practice for Azure MFA configuration. I will return to that later but the point of this article to to talk about passwordless. The CA rules you will see in use in this article are the ones used in the &lt;a href=&#34;http://itsalwaysmyproblem.com/2020/07/03/azure-conditional-access-for-chromebooks/&#34;&gt;recent article&lt;/a&gt; about Azure MFA and Chromebooks.
&lt;h4&gt;Getting Started.&lt;/h4&gt;
One thing to remember here is that Passwordless isn&#39;t an alternative to Azure&#39;s MFA mechanism. Instead it is an additional layer. This means that you can choose to apply Passwordless to some or all of your MFA users, which is great for testing. Let&#39;s get started/

Create a test group. For the purposes of this article, I&#39;m creating an Azure AD group named &lt;em&gt;IAMP_Passwordless_MFA&lt;/em&gt; but you can use groups synced from AD if you please.

From the Azure portal, open Azure Active Directory &amp;gt; Security &amp;gt; Authentication Methods.

&lt;img class=&#34; size-full wp-image-954 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-1.png&#34; alt=&#34;passwordless config 1&#34; width=&#34;1810&#34; height=&#34;919&#34;&gt;

Select &lt;em&gt;Microsoft Authenticator Passwordless sign-in&lt;/em&gt;. On the control panel that appears below, select Enable = Yes, and for Target select the test group you created earlier. Click Save once you are happy with your settings, which should look similar to the ones above.

We now need to check our Conditional Access rules. In the Azure Portal, click home and then find your Azure AD Conditional Access service.

Locate your appropriate CA rule (&lt;em&gt;MFA all Devices and Users&lt;/em&gt; in my case, below) and click to edit.

&lt;img class=&#34; size-full wp-image-955 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-2.png&#34; alt=&#34;passwordless config 2&#34; width=&#34;1512&#34; height=&#34;578&#34;&gt;&lt;img class=&#34; size-full wp-image-956 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-config-3.png&#34; alt=&#34;passwordless config 3&#34; width=&#34;609&#34; height=&#34;738&#34;&gt;

In the CA rule, select &lt;em&gt;Users and Groups &amp;gt; Include&lt;/em&gt;, and ensure your test group is listed here.
&lt;h4&gt;Testing Passwordless&lt;/h4&gt;
Now we&#39;re ready to test. Firstly, make sure your test group has a test user placed into it. You will also need a test device to run Microsoft Authenticator from. This can be almost any modern Android or iOS device that can do Touch or Face Biometric ID and the device &lt;em&gt;must not be registered to another Azure AD tenant&lt;/em&gt;. This might make testing on a separate test tenant a little difficult.

To start, open up a new browser session to your Office 365 or Azure portal and sign in as your test user. You should see your newly branded login screen at this point too.

You will probably be asked to proceed through the MFA enrolment process at this point with the &#34;More Information Required&#34; screen.

&lt;img class=&#34;alignnone size-full wp-image-957&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-enrol1.png&#34; alt=&#34;passwordless enrol1&#34; width=&#34;1800&#34; height=&#34;831&#34;&gt;

Once your test account is enrolled and working properly with the Microsoft Authenticator and Push notifications, you are ready to enable Passwordless on this device.
&lt;p style=&#34;text-align:left;&#34;&gt;&lt;img class=&#34; wp-image-960 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/ipad-3.png&#34; alt=&#34;ipad 3&#34; width=&#34;454&#34; height=&#34;293&#34;&gt;In the Microsoft Authenticator app, tap on the entry for your test account to view its properties. Now tap the entry for &lt;em&gt;Enable Phone Sign-In&lt;/em&gt;. You will be warned that your device will need to be registered against your Azure AD directory and that device security (e.g. Touch ID/Face ID) is required. &lt;img class=&#34; wp-image-959 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/ipad-5-1.png&#34; alt=&#34;ipad 5&#34; width=&#34;512&#34; height=&#34;372&#34;&gt;&lt;/p&gt;
Click Continue. When prompted, sign in as your test user on that device and complete the wizard.

On your PC, sign out as that user, close your browser session and open a fresh one. Then sign in as the test user and you should now be prompted for a passwordless sign-in &lt;em&gt;and&lt;/em&gt; prompted to complete the appropriate Touch or Face biometric challenge in order to log in successfully.

&lt;img class=&#34; size-full wp-image-961 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/07/passwordless-challenge-1.png&#34; alt=&#34;Passwordless challenge 1&#34; width=&#34;1241&#34; height=&#34;913&#34;&gt;

You can also view this in the Azure AD sign in reports for the test user, where it will show as &lt;em&gt;MFA requirement satisfied by strong authentication. &lt;/em&gt;Microsoft document the log values for troubleshooting &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-reporting&#34;&gt;here&lt;/a&gt; if you have any trouble.
</source:markdown>
    </item>
    
    <item>
      <title>Azure Conditional Access for Chromebooks</title>
      <link>https://itsalwaysmyproblem.com/2020/07/03/azure-conditional-access.html</link>
      <pubDate>Fri, 03 Jul 2020 17:11:25 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2020/07/03/azure-conditional-access.html</guid>
      <description>&lt;p&gt;I suspect most of you reading this article will already know this, but part of Microsoft&amp;rsquo;s Azure AD (AAD) / Office 365 Cloud directory service that you get when you pay for premium AAD is Conditional Access (CA), which can be used to allow quite sophisticated access controls for accessing Office 365 resources.&lt;/p&gt;
&lt;p&gt;Of course, you get basic Office 365 MFA with the basic Office 365 enterprise product, and &lt;em&gt;you should absolutely look into enrolling your users and turning this on straight away if that is what you have. Don&amp;rsquo;t let my talk of better MFA systems stop you implementing one of the single most effective protections for your Office 365 accounts and data possible&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Conditional Access, a very quick primer.&lt;/h2&gt;
[caption id=&#34;attachment_919&#34; align=&#34;alignleft&#34; width=&#34;300&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/conditional-access.png&#34;&gt;&lt;img class=&#34;wp-image-919 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/conditional-access.png?w=300&#34; alt=&#34;Azure Conditional Access Config&#34; width=&#34;300&#34; height=&#34;138&#34;&gt;&lt;/a&gt; Fig 1: Azure Conditional Access Config[/caption]
&lt;p&gt;Conditional Access rules let you set various conditions (clue in the name!) on login to achieve some quite subtle changes in security profile.&lt;/p&gt;
&lt;p&gt;For example, you can decide whether or not a device needs to be enrolled in Intune based on location, take different actions depending on the &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection&#34;&gt;risk profile&lt;/a&gt; of the logon, have different logon conditions to satisfy based on whether a user is using a desktop computer or mobile device, or App vs. Browser, and so-on.&lt;/p&gt;
&lt;p&gt;One slightly weird issue I&amp;rsquo;ve run into lately with using Azure Conditional Access to drive MFA is dealing with operating systems that Microsoft do not support directly.&lt;/p&gt;
&lt;p&gt;For many people this is a non-issue. If you want all users to go through identical validation regardless of device type, login type, etc, you can do this with just one rule, for example, consider the basic CA rule below.&lt;/p&gt;
&lt;p&gt;[caption id=&amp;ldquo;attachment_923&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;1024&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/basic-ca.png&#34;&gt;&lt;img class=&#34;wp-image-923 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/basic-ca.png?w=1024&#34; alt=&#34;Basic Conditional Access Rule&#34; width=&#34;1024&#34; height=&#34;555&#34;&gt;&lt;/a&gt; Fig 2: MFA All Devices and Users[/caption]&lt;/p&gt;
&lt;p&gt;This is a very basic CA rule that requires &lt;em&gt;all&lt;/em&gt; users (I excluded my test user to avoid locking myself out while writing this) accessing &lt;em&gt;Office 365&lt;/em&gt; from &lt;em&gt;any location except trusted locations&lt;/em&gt; (e.g. outside the office)&lt;em&gt; via the browser or modern authentication-based apps&lt;/em&gt; to be &lt;em&gt;required to successfully complete a MFA challenge&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;This is very simplistic and will catch all users on all devices. This is a reasonable pattern for a simple CA rule where you don&amp;rsquo;t need to differentiate between types of users, or types of device, or apply different rules depending on location.&lt;/p&gt;
&lt;p&gt;But quite often, we want a bit more control than that. We want to apply different rules to different users.&lt;/p&gt;
&lt;h2&gt;Complex CA rules and Chromebooks&lt;/h2&gt;
[caption id=&#34;attachment_926&#34; align=&#34;alignright&#34; width=&#34;189&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/risky-login-1.png&#34;&gt;&lt;img class=&#34;wp-image-926 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/risky-login-1.png?w=189&#34; alt=&#34;&#34; width=&#34;189&#34; height=&#34;300&#34;&gt;&lt;/a&gt; Fig 3: Sign-in risk.[/caption]
&lt;p&gt;Perhaps we have a group of users who don&amp;rsquo;t need to logon from outside the office at all, or a group of especially valuable accounts whose logins we want to track more closely than others. My view on &lt;em&gt;this&lt;/em&gt; btw, is that all logins are equally value because compromising a so-called &amp;ldquo;low value&amp;rdquo; account can often be a stepping stone to compromising other &amp;ldquo;high value&amp;rdquo; accounts by sending phishing emails to the high value users that &lt;em&gt;must be safe, they&amp;rsquo;re internal&lt;/em&gt;, for example.&lt;/p&gt;
&lt;p&gt;Perhaps we want to apply different login actions based on risk level, so we need different policies for different risk levels? This can be useful if we want to say that a &amp;ldquo;high risk&amp;rdquo; user login is denied, or has to pass extra checks in order to be allowed. To do this, we&amp;rsquo;d create several CA rules for different risk profiles.&lt;/p&gt;
&lt;p&gt;Or perhaps we want to apply different rules for different devices. This is where the Chromebook issue I talk about in the title comes in to play.&lt;/p&gt;
&lt;p&gt;Consider the pair of rules visible in the first screenshot in this article:&lt;/p&gt;
&lt;ol&gt;
 	&lt;li&gt;MFA Conditional Access test for Desktop - applying settings to Windows and MacOS device types.&lt;/li&gt;
 	&lt;li&gt;MFA Conditional Access test for Mobile - applying settings to mobile device types.&lt;/li&gt;
&lt;/ol&gt;
To do this, I created two rules similar to the one above, but with 1 small difference.
&lt;p&gt;[caption id=&amp;ldquo;attachment_928&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;1024&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-desktop-vs-mobile.png&#34;&gt;&lt;img class=&#34;wp-image-928 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-desktop-vs-mobile.png?w=1024&#34; alt=&#34;MFA for mobile vs. MFA for desktop&#34; width=&#34;1024&#34; height=&#34;412&#34;&gt;&lt;/a&gt; Fig 4: MFA for mobile vs. MFA for desktop[/caption]&lt;/p&gt;
&lt;p&gt;The mobile rule looks for Android, iOS or (for the sake of completeness) Windows Phone. The desktop rule looks for Windows or MacOS. This is great&amp;hellip; until someone logs on with a Chromebook (or a Linux system for that matter). What policy does that fall under?&lt;/p&gt;
&lt;p&gt;Sadly, where Microsoft don&amp;rsquo;t have explicit support for a platform, it doesn&amp;rsquo;t get tested for CA compliance under either of these rules because it isn&amp;rsquo;t a listed system, so all your nice CA rules are being subverted for the cost of a &lt;a href=&#34;https://www.theverge.com/21296102/best-chromebooks&#34;&gt;cheap Chromebook&lt;/a&gt;, or a &lt;a href=&#34;https://elementary.io&#34;&gt;cheaper&lt;/a&gt; or even &lt;a href=&#34;https://www.linuxmint.com/&#34;&gt;completely free&lt;/a&gt; Linux ISO.&lt;/p&gt;
&lt;p&gt;This means that devices that fall into this pattern are &lt;em&gt;not being targetted by your Conditional Access rules&lt;/em&gt;. This means that any rules around DLP, MFA, etc. built on this pattern&lt;strong&gt;&lt;em&gt; will not work properly&lt;/em&gt;&lt;/strong&gt; with unknown devices.&lt;/p&gt;
&lt;p&gt;Luckily this is easily fixable. You have two choices, both of which revolve around the Device Platforms Controls above. You might notice that some controls in the CA creation process have an include and exclude tab, and this includes the Device Platforms control. We can use a combination of Include and Exclude to direct  unsupported or&amp;quot;unknown&amp;quot; devices down a particular route as follows.&lt;/p&gt;
&lt;h2&gt;To &lt;em&gt;Deny Logins&lt;/em&gt; for unsupported devices, do the following.&lt;/h2&gt;
Create a CA rule similar to my &#34;MFA All Users and Devices&#34; rule earlier in the article (Fig 2).
&lt;p&gt;[caption id=&amp;ldquo;attachment_932&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;1024&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-block-unknown.png&#34;&gt;&lt;img class=&#34;wp-image-932 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-block-unknown.png?w=1024&#34; alt=&#34;Block Unknown Devices&#34; width=&#34;1024&#34; height=&#34;699&#34;&gt;&lt;/a&gt; Fig 5: CA blocking unsupported devices[/caption]&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Create a CA rule and under &lt;em&gt;Device Platforms&lt;/em&gt;, click the Exclude tab and select all your supported Platforms. This means the rule to block access will &lt;strong&gt;not&lt;/strong&gt; apply to your supported Device Platforms that you&#39;ve just selected.&lt;/li&gt;
 	&lt;li&gt;Still in &lt;em&gt;Device Platforms,&lt;/em&gt; return to the Include tab and select &lt;em&gt;Any Device&lt;/em&gt;. Click Done.&lt;/li&gt;
 	&lt;li&gt;Select &lt;em&gt;Grant&lt;/em&gt; under Access Controls.&lt;/li&gt;
 	&lt;li&gt;Click &lt;em&gt;Block Access&lt;/em&gt;, then Select.&lt;/li&gt;
 	&lt;li&gt;Click Save to save your new rule. Review it carefully and when you are sure it is right, return to editing the rule and Enable the policy, then click Save again. The rule will become active straight away.&lt;/li&gt;
&lt;/ul&gt;
This rule will apply to &lt;em&gt;all devices &lt;span style=&#34;text-decoration:underline;&#34;&gt;excluding&lt;/span&gt; Android, iOS, Windows and MacOS&lt;/em&gt;, and is set to block access to platform types not listed on the Exclude tab, which is useful if you require all supported devices to be successfully enrolled in Intune, and to block all other access.
&lt;h2&gt;To support MFA on Chromebooks/Linux, do the following.&lt;/h2&gt;
Firstly, keep in mind your limitations. For example. if a device isn&#39;t able to be enrolled in Intune, you cannot expect it to work with CA rules that require Intune compliance. My assumption in this example is that we have two types of device login:
&lt;ol&gt;
 	&lt;li&gt;Desktop based, for MacOS and Windows, which &lt;em&gt;does not&lt;/em&gt; require the device to be enrolled in Intune. (I&#39;m including laptops and Surface tablets as &#34;desktop&#34; here).&lt;/li&gt;
 	&lt;li&gt;Mobile based, for Android and iOS, which &lt;em&gt;does&lt;/em&gt; require the device to be enrolled in Intune.&lt;/li&gt;
&lt;/ol&gt;
So in this example, we&#39;re classifying Chromebooks and Linux as a &#34;desktop OS&#34;, and our CA rule for desktop devices already requires MFA for logins from desktop devices but does not require AAD join or Intune Compliance. This is a common scenario when a business wants to allow users to access their email from a personal device at home.
&lt;p&gt;[caption id=&amp;ldquo;attachment_936&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;1024&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-mfa-for-desktop-and-unknown.png&#34;&gt;&lt;img class=&#34;wp-image-936 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-mfa-for-desktop-and-unknown.png?w=1024&#34; alt=&#34;CA MFA for desktop and unknown&#34; width=&#34;1024&#34; height=&#34;425&#34;&gt;&lt;/a&gt; Fig 6: Require MFA for Mac OS, Windows and &amp;ldquo;unknown&amp;rdquo;, excluding mobile devices.[/caption]&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Edit your Desktop MFA rule, and under &lt;em&gt;Device Platform&lt;/em&gt;, click on the Exclude tab and select Android, iOS and if you must, Windows Phone. This means that the your Desktop MFA CA rule will &lt;em&gt;not&lt;/em&gt; target mobile devices, leaving them to be targetted by your specific Mobile Device rule.&lt;/li&gt;
 	&lt;li&gt;Still in &lt;em&gt;Device Platform&lt;/em&gt;, return to the Include tab and select Any Device. Click &lt;em&gt;Done&lt;/em&gt; on the Device Platforms tab.&lt;/li&gt;
 	&lt;li&gt;Click &lt;em&gt;Save&lt;/em&gt; to update your CA rule. The change will be applied straight away.&lt;/li&gt;
&lt;/ul&gt;
This rule &lt;em&gt;requires MFA&lt;/em&gt; for &lt;em&gt;all devices, &lt;strong&gt;except&lt;/strong&gt; the devices specified in Device Platforms / Exclude &lt;/em&gt;. Those excluded devices can then be used with another CA rule, as per my example of different login routes for mobile OS vs &#34;desktop&#34; OS.
&lt;p&gt; &lt;/p&gt;
</description>
      <source:markdown>I suspect most of you reading this article will already know this, but part of Microsoft&#39;s Azure AD (AAD) / Office 365 Cloud directory service that you get when you pay for premium AAD is Conditional Access (CA), which can be used to allow quite sophisticated access controls for accessing Office 365 resources.

Of course, you get basic Office 365 MFA with the basic Office 365 enterprise product, and &lt;em&gt;you should absolutely look into enrolling your users and turning this on straight away if that is what you have. Don&#39;t let my talk of better MFA systems stop you implementing one of the single most effective protections for your Office 365 accounts and data possible&lt;/em&gt;.
&lt;h2&gt;Conditional Access, a very quick primer.&lt;/h2&gt;
[caption id=&#34;attachment_919&#34; align=&#34;alignleft&#34; width=&#34;300&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/conditional-access.png&#34;&gt;&lt;img class=&#34;wp-image-919 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/conditional-access.png?w=300&#34; alt=&#34;Azure Conditional Access Config&#34; width=&#34;300&#34; height=&#34;138&#34;&gt;&lt;/a&gt; Fig 1: Azure Conditional Access Config[/caption]

Conditional Access rules let you set various conditions (clue in the name!) on login to achieve some quite subtle changes in security profile.

For example, you can decide whether or not a device needs to be enrolled in Intune based on location, take different actions depending on the &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection&#34;&gt;risk profile&lt;/a&gt; of the logon, have different logon conditions to satisfy based on whether a user is using a desktop computer or mobile device, or App vs. Browser, and so-on.

One slightly weird issue I&#39;ve run into lately with using Azure Conditional Access to drive MFA is dealing with operating systems that Microsoft do not support directly.

For many people this is a non-issue. If you want all users to go through identical validation regardless of device type, login type, etc, you can do this with just one rule, for example, consider the basic CA rule below.

[caption id=&#34;attachment_923&#34; align=&#34;aligncenter&#34; width=&#34;1024&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/basic-ca.png&#34;&gt;&lt;img class=&#34;wp-image-923 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/basic-ca.png?w=1024&#34; alt=&#34;Basic Conditional Access Rule&#34; width=&#34;1024&#34; height=&#34;555&#34;&gt;&lt;/a&gt; Fig 2: MFA All Devices and Users[/caption]

This is a very basic CA rule that requires &lt;em&gt;all&lt;/em&gt; users (I excluded my test user to avoid locking myself out while writing this) accessing &lt;em&gt;Office 365&lt;/em&gt; from &lt;em&gt;any location except trusted locations&lt;/em&gt; (e.g. outside the office)&lt;em&gt; via the browser or modern authentication-based apps&lt;/em&gt; to be &lt;em&gt;required to successfully complete a MFA challenge&lt;/em&gt;.

This is very simplistic and will catch all users on all devices. This is a reasonable pattern for a simple CA rule where you don&#39;t need to differentiate between types of users, or types of device, or apply different rules depending on location.

But quite often, we want a bit more control than that. We want to apply different rules to different users.
&lt;h2&gt;Complex CA rules and Chromebooks&lt;/h2&gt;
[caption id=&#34;attachment_926&#34; align=&#34;alignright&#34; width=&#34;189&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/risky-login-1.png&#34;&gt;&lt;img class=&#34;wp-image-926 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/risky-login-1.png?w=189&#34; alt=&#34;&#34; width=&#34;189&#34; height=&#34;300&#34;&gt;&lt;/a&gt; Fig 3: Sign-in risk.[/caption]

Perhaps we have a group of users who don&#39;t need to logon from outside the office at all, or a group of especially valuable accounts whose logins we want to track more closely than others. My view on &lt;em&gt;this&lt;/em&gt; btw, is that all logins are equally value because compromising a so-called &#34;low value&#34; account can often be a stepping stone to compromising other &#34;high value&#34; accounts by sending phishing emails to the high value users that &lt;em&gt;must be safe, they&#39;re internal&lt;/em&gt;, for example.

Perhaps we want to apply different login actions based on risk level, so we need different policies for different risk levels? This can be useful if we want to say that a &#34;high risk&#34; user login is denied, or has to pass extra checks in order to be allowed. To do this, we&#39;d create several CA rules for different risk profiles.

Or perhaps we want to apply different rules for different devices. This is where the Chromebook issue I talk about in the title comes in to play.

Consider the pair of rules visible in the first screenshot in this article:
&lt;ol&gt;
 	&lt;li&gt;MFA Conditional Access test for Desktop - applying settings to Windows and MacOS device types.&lt;/li&gt;
 	&lt;li&gt;MFA Conditional Access test for Mobile - applying settings to mobile device types.&lt;/li&gt;
&lt;/ol&gt;
To do this, I created two rules similar to the one above, but with 1 small difference.

[caption id=&#34;attachment_928&#34; align=&#34;aligncenter&#34; width=&#34;1024&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-desktop-vs-mobile.png&#34;&gt;&lt;img class=&#34;wp-image-928 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-desktop-vs-mobile.png?w=1024&#34; alt=&#34;MFA for mobile vs. MFA for desktop&#34; width=&#34;1024&#34; height=&#34;412&#34;&gt;&lt;/a&gt; Fig 4: MFA for mobile vs. MFA for desktop[/caption]

The mobile rule looks for Android, iOS or (for the sake of completeness) Windows Phone. The desktop rule looks for Windows or MacOS. This is great... until someone logs on with a Chromebook (or a Linux system for that matter). What policy does that fall under?

Sadly, where Microsoft don&#39;t have explicit support for a platform, it doesn&#39;t get tested for CA compliance under either of these rules because it isn&#39;t a listed system, so all your nice CA rules are being subverted for the cost of a &lt;a href=&#34;https://www.theverge.com/21296102/best-chromebooks&#34;&gt;cheap Chromebook&lt;/a&gt;, or a &lt;a href=&#34;https://elementary.io&#34;&gt;cheaper&lt;/a&gt; or even &lt;a href=&#34;https://www.linuxmint.com/&#34;&gt;completely free&lt;/a&gt; Linux ISO.

This means that devices that fall into this pattern are &lt;em&gt;not being targetted by your Conditional Access rules&lt;/em&gt;. This means that any rules around DLP, MFA, etc. built on this pattern&lt;strong&gt;&lt;em&gt; will not work properly&lt;/em&gt;&lt;/strong&gt; with unknown devices.

Luckily this is easily fixable. You have two choices, both of which revolve around the Device Platforms Controls above. You might notice that some controls in the CA creation process have an include and exclude tab, and this includes the Device Platforms control. We can use a combination of Include and Exclude to direct  unsupported or&#34;unknown&#34; devices down a particular route as follows.
&lt;h2&gt;To &lt;em&gt;Deny Logins&lt;/em&gt; for unsupported devices, do the following.&lt;/h2&gt;
Create a CA rule similar to my &#34;MFA All Users and Devices&#34; rule earlier in the article (Fig 2).

[caption id=&#34;attachment_932&#34; align=&#34;aligncenter&#34; width=&#34;1024&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-block-unknown.png&#34;&gt;&lt;img class=&#34;wp-image-932 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-block-unknown.png?w=1024&#34; alt=&#34;Block Unknown Devices&#34; width=&#34;1024&#34; height=&#34;699&#34;&gt;&lt;/a&gt; Fig 5: CA blocking unsupported devices[/caption]
&lt;ul&gt;
 	&lt;li&gt;Create a CA rule and under &lt;em&gt;Device Platforms&lt;/em&gt;, click the Exclude tab and select all your supported Platforms. This means the rule to block access will &lt;strong&gt;not&lt;/strong&gt; apply to your supported Device Platforms that you&#39;ve just selected.&lt;/li&gt;
 	&lt;li&gt;Still in &lt;em&gt;Device Platforms,&lt;/em&gt; return to the Include tab and select &lt;em&gt;Any Device&lt;/em&gt;. Click Done.&lt;/li&gt;
 	&lt;li&gt;Select &lt;em&gt;Grant&lt;/em&gt; under Access Controls.&lt;/li&gt;
 	&lt;li&gt;Click &lt;em&gt;Block Access&lt;/em&gt;, then Select.&lt;/li&gt;
 	&lt;li&gt;Click Save to save your new rule. Review it carefully and when you are sure it is right, return to editing the rule and Enable the policy, then click Save again. The rule will become active straight away.&lt;/li&gt;
&lt;/ul&gt;
This rule will apply to &lt;em&gt;all devices &lt;span style=&#34;text-decoration:underline;&#34;&gt;excluding&lt;/span&gt; Android, iOS, Windows and MacOS&lt;/em&gt;, and is set to block access to platform types not listed on the Exclude tab, which is useful if you require all supported devices to be successfully enrolled in Intune, and to block all other access.
&lt;h2&gt;To support MFA on Chromebooks/Linux, do the following.&lt;/h2&gt;
Firstly, keep in mind your limitations. For example. if a device isn&#39;t able to be enrolled in Intune, you cannot expect it to work with CA rules that require Intune compliance. My assumption in this example is that we have two types of device login:
&lt;ol&gt;
 	&lt;li&gt;Desktop based, for MacOS and Windows, which &lt;em&gt;does not&lt;/em&gt; require the device to be enrolled in Intune. (I&#39;m including laptops and Surface tablets as &#34;desktop&#34; here).&lt;/li&gt;
 	&lt;li&gt;Mobile based, for Android and iOS, which &lt;em&gt;does&lt;/em&gt; require the device to be enrolled in Intune.&lt;/li&gt;
&lt;/ol&gt;
So in this example, we&#39;re classifying Chromebooks and Linux as a &#34;desktop OS&#34;, and our CA rule for desktop devices already requires MFA for logins from desktop devices but does not require AAD join or Intune Compliance. This is a common scenario when a business wants to allow users to access their email from a personal device at home.

[caption id=&#34;attachment_936&#34; align=&#34;aligncenter&#34; width=&#34;1024&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-mfa-for-desktop-and-unknown.png&#34;&gt;&lt;img class=&#34;wp-image-936 size-large&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/ca-mfa-for-desktop-and-unknown.png?w=1024&#34; alt=&#34;CA MFA for desktop and unknown&#34; width=&#34;1024&#34; height=&#34;425&#34;&gt;&lt;/a&gt; Fig 6: Require MFA for Mac OS, Windows and &#34;unknown&#34;, excluding mobile devices.[/caption]
&lt;ul&gt;
 	&lt;li&gt;Edit your Desktop MFA rule, and under &lt;em&gt;Device Platform&lt;/em&gt;, click on the Exclude tab and select Android, iOS and if you must, Windows Phone. This means that the your Desktop MFA CA rule will &lt;em&gt;not&lt;/em&gt; target mobile devices, leaving them to be targetted by your specific Mobile Device rule.&lt;/li&gt;
 	&lt;li&gt;Still in &lt;em&gt;Device Platform&lt;/em&gt;, return to the Include tab and select Any Device. Click &lt;em&gt;Done&lt;/em&gt; on the Device Platforms tab.&lt;/li&gt;
 	&lt;li&gt;Click &lt;em&gt;Save&lt;/em&gt; to update your CA rule. The change will be applied straight away.&lt;/li&gt;
&lt;/ul&gt;
This rule &lt;em&gt;requires MFA&lt;/em&gt; for &lt;em&gt;all devices, &lt;strong&gt;except&lt;/strong&gt; the devices specified in Device Platforms / Exclude &lt;/em&gt;. Those excluded devices can then be used with another CA rule, as per my example of different login routes for mobile OS vs &#34;desktop&#34; OS.

 
</source:markdown>
    </item>
    
    <item>
      <title>Teams CAA70007 errors</title>
      <link>https://itsalwaysmyproblem.com/2020/06/09/teams-caa-errors.html</link>
      <pubDate>Tue, 09 Jun 2020 20:04:17 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2020/06/09/teams-caa-errors.html</guid>
      <description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Has this ever happened to you? You&#39;re using Teams like normal and one day it doesn&#39;t start. No reason, just the usual Teams error that tells you nothing. You try the usual workarounds (Mark Vale&#39;s &lt;a href=&#34;https://commsverse.blog/2018/09/28/clear-the-microsoft-teams-client-cache/&#34;&gt;write-up&lt;/a&gt; on cleaning the Teams Cache is invaluable) but nothing helps. So back to that error that doesn&#39;t tell you anything.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {&#34;id&#34;:900,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-900&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/error.png?w=1024&#34; alt=&#34;&#34;&gt;
&lt;figcaption&gt;Teams being helpful&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Or &lt;em&gt;maybe&lt;/em&gt; it does tell you something. The error code in the bottom left corner: CAA70007. That looks promising... except it isn&#39;t. No sign of the error in the Microsoft documentation and no help in the Microsoft Answers.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;But I&#39;ve found a possible answer. To see if you have the same issue I was having, open up your Event Viewer, and expand &lt;em&gt;Applications and Services Log &amp;gt; Microsoft &amp;gt; Windows &amp;gt; AAD&lt;/em&gt;, then click on the Operational Log. If you see a lot of 1098 AADTokenBrokerPlugin errors, then I may have a solution.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {&#34;id&#34;:901,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-901&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/eventlog.jpg?w=1024&#34; alt=&#34;&#34;&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;For me, there was a series of &lt;em&gt;0xCAA5001C Token Broker Operation Failed&lt;/em&gt; errors. This can indicate things like out of date components, faulty internet connection, etc but if you&#39;re reading this you&#39;ve probably already checked all that.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Searching for more info about 0xCAA5001 errors then led to &lt;a href=&#34;https://support.microsoft.com/en-gb/help/3196528/event-1098-error-0xcaa5001c-token-broker-operation-failed-in-windows-1&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;this Microsoft article&lt;/a&gt; which is a useful fix.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;You should read and understand the article before making changes but If you&#39;re in a rush and just want a short answer that doesn&#39;t involve more reading then, what I did was as follows: (the usual warnings about registry editing apply)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:list --&gt;
&lt;ul&gt;
&lt;li&gt;Open regedit and browse to the following key:&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /wp:list --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;em&gt;HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\ Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy&lt;/em&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:list --&gt;
&lt;ul&gt;
&lt;li&gt;Right click, select permissions and  disabled inheritance on this key(making sure to create a copy of the current permissions when asked).&lt;/li&gt;
&lt;li&gt;Still in the permissions window, I then &lt;em&gt;re-enabled&lt;/em&gt; inheritance, ticked &lt;em&gt;Replace all child objects permission entries with inheritable permission entries from this object&lt;/em&gt; and hit OK. This fixed my issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /wp:list --&gt;
&lt;!-- wp:image {&#34;id&#34;:903,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-903&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/registry.png?w=1024&#34; alt=&#34;&#34;&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Teams now starts. Hooray! I do love Teams as a concept but issues like this make me think there&#39;s a lot of work to be done on the basic tools.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
</description>
      <source:markdown>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Has this ever happened to you? You&#39;re using Teams like normal and one day it doesn&#39;t start. No reason, just the usual Teams error that tells you nothing. You try the usual workarounds (Mark Vale&#39;s &lt;a href=&#34;https://commsverse.blog/2018/09/28/clear-the-microsoft-teams-client-cache/&#34;&gt;write-up&lt;/a&gt; on cleaning the Teams Cache is invaluable) but nothing helps. So back to that error that doesn&#39;t tell you anything.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:image {&#34;id&#34;:900,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-900&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/error.png?w=1024&#34; alt=&#34;&#34;&gt;
&lt;figcaption&gt;Teams being helpful&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;!-- /wp:image --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Or &lt;em&gt;maybe&lt;/em&gt; it does tell you something. The error code in the bottom left corner: CAA70007. That looks promising... except it isn&#39;t. No sign of the error in the Microsoft documentation and no help in the Microsoft Answers.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;But I&#39;ve found a possible answer. To see if you have the same issue I was having, open up your Event Viewer, and expand &lt;em&gt;Applications and Services Log &amp;gt; Microsoft &amp;gt; Windows &amp;gt; AAD&lt;/em&gt;, then click on the Operational Log. If you see a lot of 1098 AADTokenBrokerPlugin errors, then I may have a solution.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:image {&#34;id&#34;:901,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-901&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/eventlog.jpg?w=1024&#34; alt=&#34;&#34;&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;For me, there was a series of &lt;em&gt;0xCAA5001C Token Broker Operation Failed&lt;/em&gt; errors. This can indicate things like out of date components, faulty internet connection, etc but if you&#39;re reading this you&#39;ve probably already checked all that.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Searching for more info about 0xCAA5001 errors then led to &lt;a href=&#34;https://support.microsoft.com/en-gb/help/3196528/event-1098-error-0xcaa5001c-token-broker-operation-failed-in-windows-1&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;this Microsoft article&lt;/a&gt; which is a useful fix.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;You should read and understand the article before making changes but If you&#39;re in a rush and just want a short answer that doesn&#39;t involve more reading then, what I did was as follows: (the usual warnings about registry editing apply)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:list --&gt;
&lt;ul&gt;
&lt;li&gt;Open regedit and browse to the following key:&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /wp:list --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;em&gt;HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\ Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy&lt;/em&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;

&lt;!-- wp:list --&gt;
&lt;ul&gt;
&lt;li&gt;Right click, select permissions and  disabled inheritance on this key(making sure to create a copy of the current permissions when asked).&lt;/li&gt;
&lt;li&gt;Still in the permissions window, I then &lt;em&gt;re-enabled&lt;/em&gt; inheritance, ticked &lt;em&gt;Replace all child objects permission entries with inheritable permission entries from this object&lt;/em&gt; and hit OK. This fixed my issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /wp:list --&gt;

&lt;!-- wp:image {&#34;id&#34;:903,&#34;sizeSlug&#34;:&#34;large&#34;} --&gt;
&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img class=&#34;wp-image-903&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2020/06/registry.png?w=1024&#34; alt=&#34;&#34;&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;

&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Teams now starts. Hooray! I do love Teams as a concept but issues like this make me think there&#39;s a lot of work to be done on the basic tools.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Tuning up Intune - Building your toolset</title>
      <link>https://itsalwaysmyproblem.com/2019/05/11/tuning-up-intune.html</link>
      <pubDate>Sat, 11 May 2019 20:49:37 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2019/05/11/tuning-up-intune.html</guid>
      <description>&lt;h1&gt;Introduction&lt;/h1&gt;
When talking about how Intune works with a colleague, I likened assembling a working Intune configuration to protect corporate devices and data to working with small pieces of Lego to build a house.
&lt;p&gt;The reason for this comparison is that a managed Intune environment is built up of lots of different components that can all be slotted together - or left out - to build the environment you want.&lt;/p&gt;
&lt;h1&gt;Intune&#39;s Building Blocks&lt;/h1&gt;
&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/intune-diagram-1.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-891 size-full&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/intune-diagram-1.png&#34; alt=&#34;&#34; width=&#34;441&#34; height=&#34;551&#34;&gt;&lt;/a&gt;When a user installs Company Portal for the first time and authenticates through it they will be asked to enrol their device. This steps through the Device Management policies, which allow us (as the Intune Administrator) to control the features on their device (e.g. block or allow use of the Camera, require a device password, allow us to lock or wipe the device (or at least corporate information) later on if the device is stolen, etc.
&lt;p&gt;When a user attempts to access Corporate data via applications, we can require the applications are configured in a certain way, that the apps themselves are protected by a password, and so on.&lt;/p&gt;
&lt;p&gt;We can also use conditional access policies to require certain other things of the user, such as only allowing access under certain risk profiles (e.g. blocking access from jailbroken devices, or from &amp;lsquo;suspicious&amp;rsquo; Internet addresses).&lt;/p&gt;
&lt;p&gt;We can combine some or all of these to provide a carefully managed environment for accessing corporate data on the move, for ensuring corporate devices are protected in the event of theft, and that users cannot easily move data from a secure environment to an insecure one.&lt;/p&gt;
&lt;p&gt;If users are working with their own devices rather than corporate ones, it&amp;rsquo;s possible to just use Mobile Application Management (MAM) to control how your corporate data is accessed without changing the way your users have to interact with their own personal devices on a day-to-day basis. This presents some risks but the choices is yours to make.&lt;/p&gt;
&lt;p&gt;If you wish, you can just use Mobile Device Management (MDM) to configure a corporate device to meet some basic standards and leave the users to manage applications themselves. Again, this presents some risks (and these days, certainly, I&amp;rsquo;d advise against just doing that) but the choice is yours to make.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t have the budget for Azure AD Premium then you can configure the more basic elements of MDM and MAM and not worry about Conditional Access rules, DLP or other features. Again this is a risk but the choice is yours to make.&lt;/p&gt;
&lt;p&gt;Obviously the ideal situation is to use Azure AD Premium features along with the full Intune suite of MDM and MAM features, but even here there are choices to make about how you build up your policies and what experience your users are going to have.&lt;/p&gt;
&lt;p&gt;Putting the blocks together&lt;/p&gt;
&lt;p&gt;Now that we&amp;rsquo;ve seen the building blocks, we can try putting them together.&lt;/p&gt;
&lt;p&gt;First you have your users in Azure Active Directory (AAD). You may not realise it if you&amp;rsquo;re just using Office 365 for your business, but all the User Identity and Access Management for Office 365 is managed in AAD.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/o365-users-v-aad-users.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-893 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/o365-users-v-aad-users.png?w=300&#34; alt=&#34;&#34; width=&#34;300&#34; height=&#34;122&#34;&gt;&lt;/a&gt;This means that for better or worse, features from O365 and features from Azure AD will both apply to your users, who will be listed in both places as per my example here.&lt;/p&gt;
&lt;p&gt;You need to make a decision based on licences and your intentions as to where you will manage devices, in Office 365 or in Azure. This is known as setting your MDM Authority.&lt;/p&gt;
&lt;p&gt;The Office 365 Device Management tools (As an Office 365 admin, look under &lt;em&gt;Admin Centers&lt;/em&gt;, &lt;em&gt;Device Management&lt;/em&gt;) give you access to the basic Mobile Device Management capabilities found in the base-level O365 MDM product.&lt;/p&gt;
&lt;p&gt;The full Intune suite, available under the &lt;a href=&#34;https://portal.azure.com&#34;&gt;Azure portal&lt;/a&gt; gives you additional features such as Application Management, along with access to more granular reporting and configuration options for Mobile Device Management. If you have the full Enterprise Mobility Management package, you will also be working with the Azure portal for features like Conditional Access.&lt;/p&gt;
&lt;h3&gt;App Stores&lt;/h3&gt;
Intune allows you to link to the Apple iOS, Google Android and (obviously perhaps) Microsoft Windows App stores. This allows you to control what apps can and cannot be installed and even make some apps mandatory. More on this later.
&lt;h3&gt;PowerShell management&lt;/h3&gt;
Lastly in terms of management tools, I should mention PowerShell. As I&#39;m sure most people reading this will already know, PowerShell is Microsoft&#39;s command line interface to both its on-premises and cloud components. It&#39;s probably fair to say that Microsoft&#39;s PowerShell support is still undergoing rapid development as it aims to become a full toolkit for managing what previously was a GUI experience, but it&#39;s still incredibly powerful and useful.
&lt;p&gt;PowerShell starts to make sense for Intune if you need to do some repetitive tasks or ones that would be difficult to do through the GUI, such as &lt;a href=&#34;https://srdn.io/2019/03/backup-and-restore-your-microsoft-intune-configuration-with-powershell/&#34;&gt;back up your configuration&lt;/a&gt;, which is a great way of documenting a &amp;ldquo;baseline&amp;rdquo; for your install and tracking changes; as well as a useful way for moving settings from a test to a production environment; or for consultants to rapidly deploy certain common scenarios to  multiple customers. I plan to talk more about Microsoft Graph myself but I very much recommend John Seerden&amp;rsquo;s &lt;a href=&#34;https://srdn.io/2018/10/intune-powershell-sdk-native-powershell-support-for-the-intune-api-through-microsoft-graph/&#34;&gt;introduction to the Intune PowerShell SDK&lt;/a&gt;, along with his backup tool I link to above.&lt;/p&gt;
&lt;p&gt;Intune&amp;rsquo;s PowerShell modules are built around the Microsoft Graph API. This is a set of programming interfaces that was originally developed for Office 365 and which has been expanded to cover larger parts of the Microsoft cloud services. It seems intimidating to delve beneath the hood at first but Graph is quite useful for managing large parts of your online services. If you&amp;rsquo;re unsure where to start with Graph then I&amp;rsquo;ll point you to Microsoft&amp;rsquo;s &lt;a href=&#34;https://developer.microsoft.com/en-us/graph/blogs/announcing-30-days-of-microsoft-graph-blog-series/#&#34;&gt;30 days of Microsoft Graph&lt;/a&gt; blogs and the Microsoft &lt;a href=&#34;https://developer.microsoft.com/en-us/graph/graph-explorer&#34;&gt;Graph Explorer&lt;/a&gt;.&lt;/p&gt;
</description>
      <source:markdown>&lt;h1&gt;Introduction&lt;/h1&gt;
When talking about how Intune works with a colleague, I likened assembling a working Intune configuration to protect corporate devices and data to working with small pieces of Lego to build a house.

The reason for this comparison is that a managed Intune environment is built up of lots of different components that can all be slotted together - or left out - to build the environment you want.
&lt;h1&gt;Intune&#39;s Building Blocks&lt;/h1&gt;
&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/intune-diagram-1.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-891 size-full&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/intune-diagram-1.png&#34; alt=&#34;&#34; width=&#34;441&#34; height=&#34;551&#34;&gt;&lt;/a&gt;When a user installs Company Portal for the first time and authenticates through it they will be asked to enrol their device. This steps through the Device Management policies, which allow us (as the Intune Administrator) to control the features on their device (e.g. block or allow use of the Camera, require a device password, allow us to lock or wipe the device (or at least corporate information) later on if the device is stolen, etc.

When a user attempts to access Corporate data via applications, we can require the applications are configured in a certain way, that the apps themselves are protected by a password, and so on.

We can also use conditional access policies to require certain other things of the user, such as only allowing access under certain risk profiles (e.g. blocking access from jailbroken devices, or from &#39;suspicious&#39; Internet addresses).

We can combine some or all of these to provide a carefully managed environment for accessing corporate data on the move, for ensuring corporate devices are protected in the event of theft, and that users cannot easily move data from a secure environment to an insecure one.

If users are working with their own devices rather than corporate ones, it&#39;s possible to just use Mobile Application Management (MAM) to control how your corporate data is accessed without changing the way your users have to interact with their own personal devices on a day-to-day basis. This presents some risks but the choices is yours to make.

If you wish, you can just use Mobile Device Management (MDM) to configure a corporate device to meet some basic standards and leave the users to manage applications themselves. Again, this presents some risks (and these days, certainly, I&#39;d advise against just doing that) but the choice is yours to make.

If you don&#39;t have the budget for Azure AD Premium then you can configure the more basic elements of MDM and MAM and not worry about Conditional Access rules, DLP or other features. Again this is a risk but the choice is yours to make.

Obviously the ideal situation is to use Azure AD Premium features along with the full Intune suite of MDM and MAM features, but even here there are choices to make about how you build up your policies and what experience your users are going to have.

Putting the blocks together

Now that we&#39;ve seen the building blocks, we can try putting them together.

First you have your users in Azure Active Directory (AAD). You may not realise it if you&#39;re just using Office 365 for your business, but all the User Identity and Access Management for Office 365 is managed in AAD.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/o365-users-v-aad-users.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-893 size-medium&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/04/o365-users-v-aad-users.png?w=300&#34; alt=&#34;&#34; width=&#34;300&#34; height=&#34;122&#34;&gt;&lt;/a&gt;This means that for better or worse, features from O365 and features from Azure AD will both apply to your users, who will be listed in both places as per my example here.

You need to make a decision based on licences and your intentions as to where you will manage devices, in Office 365 or in Azure. This is known as setting your MDM Authority.

The Office 365 Device Management tools (As an Office 365 admin, look under &lt;em&gt;Admin Centers&lt;/em&gt;, &lt;em&gt;Device Management&lt;/em&gt;) give you access to the basic Mobile Device Management capabilities found in the base-level O365 MDM product.

The full Intune suite, available under the &lt;a href=&#34;https://portal.azure.com&#34;&gt;Azure portal&lt;/a&gt; gives you additional features such as Application Management, along with access to more granular reporting and configuration options for Mobile Device Management. If you have the full Enterprise Mobility Management package, you will also be working with the Azure portal for features like Conditional Access.
&lt;h3&gt;App Stores&lt;/h3&gt;
Intune allows you to link to the Apple iOS, Google Android and (obviously perhaps) Microsoft Windows App stores. This allows you to control what apps can and cannot be installed and even make some apps mandatory. More on this later.
&lt;h3&gt;PowerShell management&lt;/h3&gt;
Lastly in terms of management tools, I should mention PowerShell. As I&#39;m sure most people reading this will already know, PowerShell is Microsoft&#39;s command line interface to both its on-premises and cloud components. It&#39;s probably fair to say that Microsoft&#39;s PowerShell support is still undergoing rapid development as it aims to become a full toolkit for managing what previously was a GUI experience, but it&#39;s still incredibly powerful and useful.

PowerShell starts to make sense for Intune if you need to do some repetitive tasks or ones that would be difficult to do through the GUI, such as &lt;a href=&#34;https://srdn.io/2019/03/backup-and-restore-your-microsoft-intune-configuration-with-powershell/&#34;&gt;back up your configuration&lt;/a&gt;, which is a great way of documenting a &#34;baseline&#34; for your install and tracking changes; as well as a useful way for moving settings from a test to a production environment; or for consultants to rapidly deploy certain common scenarios to  multiple customers. I plan to talk more about Microsoft Graph myself but I very much recommend John Seerden&#39;s &lt;a href=&#34;https://srdn.io/2018/10/intune-powershell-sdk-native-powershell-support-for-the-intune-api-through-microsoft-graph/&#34;&gt;introduction to the Intune PowerShell SDK&lt;/a&gt;, along with his backup tool I link to above.

Intune&#39;s PowerShell modules are built around the Microsoft Graph API. This is a set of programming interfaces that was originally developed for Office 365 and which has been expanded to cover larger parts of the Microsoft cloud services. It seems intimidating to delve beneath the hood at first but Graph is quite useful for managing large parts of your online services. If you&#39;re unsure where to start with Graph then I&#39;ll point you to Microsoft&#39;s &lt;a href=&#34;https://developer.microsoft.com/en-us/graph/blogs/announcing-30-days-of-microsoft-graph-blog-series/#&#34;&gt;30 days of Microsoft Graph&lt;/a&gt; blogs and the Microsoft &lt;a href=&#34;https://developer.microsoft.com/en-us/graph/graph-explorer&#34;&gt;Graph Explorer&lt;/a&gt;.
</source:markdown>
    </item>
    
    <item>
      <title>Tuning up Intune, an introduction.</title>
      <link>https://itsalwaysmyproblem.com/2019/03/30/tuning-up-intune.html</link>
      <pubDate>Sat, 30 Mar 2019 15:52:44 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2019/03/30/tuning-up-intune.html</guid>
      <description>&lt;h2&gt;Introduction to Microsoft Mobile Device Management&lt;/h2&gt;
I&#39;m currently settling in to a new job where I&#39;m spending a fair amount of time working with Microsoft&#39;s Mobile security management tools, mostly Microsoft Intune. This is largely what I was doing towards the end of my old job too, and while there&#39;s some great people writing great material out there, I think there&#39;s a lack of articles that try to start at the beginning with current (as of April 2019) tools and pull all the strands together, so that&#39;s what we&#39;re going to talk about here.
&lt;p&gt;First of all, let&amp;rsquo;s talk about some industry standard terms that you might see in this article and everywhere else.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mobile Device Management (&lt;a href=&#34;https://en.wikipedia.org/wiki/Mobile_device_management&#34;&gt;MDM&lt;/a&gt;)&lt;/strong&gt; - this refers to management tools for smartphones, tablets, and also more recently laptops and desktops. MDM tools typically apply policies to devices (or users) that control how the device the user is working with operates.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re used to using Active Directory management of devices then you might consider MDM to be loosely similar to GPOs applied to a desktop machine to control the basic environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mobile Application Management (&lt;a href=&#34;https://en.wikipedia.org/wiki/Mobile_application_management&#34;&gt;MAM&lt;/a&gt;) &lt;/strong&gt;- This refers to the management of the &lt;em&gt;applications themselves&lt;/em&gt; on a mobile device. MAM differs from MDM in that MAM allows us to have more granular control over the behaviour of different applications without necessarily taking control of the whole device (though it&amp;rsquo;s possible and often desirable to use device and application policies together).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Data Loss Prevention (&lt;a href=&#34;https://en.wikipedia.org/wiki/Data_loss_prevention_software&#34;&gt;DLP&lt;/a&gt;)&lt;/strong&gt; - Systems that monitor data and attempt to spot unauthorised access, modification or sharing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enterprise Mobility Management (EMM)&lt;/strong&gt; - This term encompasses MDM, MAM, mobile user security and data loss prevention tools (DLP) working together with user account security (e.g. multi-factor authentication, detection and blocking of &amp;ldquo;risky&amp;rdquo; logins) to try and provide a secure environment for mobile workers.&lt;/p&gt;
&lt;h2&gt;Microsoft&#39;s EMM product family.&lt;/h2&gt;
Microsoft refer to their product family as &#34;&lt;a href=&#34;https://www.microsoft.com/en-gb/cloud-platform/enterprise-mobility-security&#34;&gt;Enterprise Mobility + Security&lt;/a&gt;&#34; and not surprisingly, it&#39;s designed to integrate with Office 365 and Azure Active Directory.
&lt;p&gt;There are several different levels of Microsoft Intune, each with different levels of functionality and different benefits.&lt;/p&gt;
&lt;h4&gt;Mobile Device Management for Office 365&lt;/h4&gt;
This is the basic package for Office 365 Business subscribers and is bundled with the Office 365 enterprise packages. It gives you a simplified dashboard for enrolling and managing mobile devices and Windows clients, and is designed to offer a simple &#34;baseline&#34; level of control over mobile access to data and services for businesses using Office 365.
&lt;h4&gt;Microsoft Intune&lt;/h4&gt;
Microsoft Intune is the full Microsoft &#34;MDM experience&#34;, allowing you to fully manage devices and applications in Office 365/Azure Active Directory. It allows you to enrol devices, assign policies to groups of users in a similar way to MDM for O365, but also adds full MAM capability, allowing you to apply granular controls to applications that are using your data without necessarily having to enrol the device into MDM.
&lt;p&gt;Intune adds support for Mac OS to the list of devices that can be managed.&lt;/p&gt;
&lt;h4&gt;Enterprise Mobility + Security&lt;/h4&gt;
EMS is the full package. It requires (or provides, depending on how you look at it) a subscription that includes Azure Active Directory (AAD) premium, and provides you with everything that Microsoft Intune itself allows, along with  vastly improved safeguards for user accounts and data.
&lt;h4&gt;In Summary&lt;/h4&gt;
If this seems confusing then don&#39;t worry - it &lt;em&gt;is&lt;/em&gt; a little confusing. You can think of the three packages above as &#34;Good, Better, Best&#34; and try to think about what your requirements are. For example, if you&#39;re running a relatively small business and you primarily use Office 365 to deliver email via Exchange Online and you simply want to provide some controls around how all your users access email away from the office then you may find that MDM for O365 does enough for you.
&lt;p&gt;If you&amp;rsquo;re running a rather more sophisticated cloud presence where you&amp;rsquo;re making use of more Office 365 capabilities, where your users might be a bit more mobile, or logging in from a wider range of devices and you wish to be able to control &lt;em&gt;application&lt;/em&gt; use from BYOD devices, or you have users running MacOS, then Microsoft Intune is probably the right level for you.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re after still more granular control, if you wish to have different sets of requirements for access to systems, if you&amp;rsquo;re running a large business who places a lot of data and services in the cloud, if you wish to track data and user access patterns in detail and lock down access to applications or data depending on different levels of &amp;ldquo;risk&amp;rdquo; attached to a log-in attempt (e.g. &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/concept-risky-sign-ins&#34;&gt;risky sign-ins&lt;/a&gt;) then you will need the full Microsoft EM+S licence.&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/03/mdm-vs-intune-vs-ems.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-872 size-full&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/03/mdm-vs-intune-vs-ems.png&#34; alt=&#34;&#34; width=&#34;906&#34; height=&#34;307&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;As ever with Microsoft, there are many different combinations of licences you can buy and assign to your users to give you these capabilities. I&amp;rsquo;m not going to break them down in detail here but in broad strokes, you can think of the basic Office 365 E3 enterprise licence (or A3 for education) as giving you MDM for O365.&lt;/p&gt;
&lt;p&gt;You can add Intune by itself as a specific item if you just need slightly more control on top of the basic package, and if you need Office 365 and EM+S then you probably should look at the &lt;a href=&#34;https://www.microsoft.com/en-GB/microsoft-365/enterprise/home&#34;&gt;Microsoft 365 Enterprise&lt;/a&gt; packages that provide Windows licences, Office 365 licences and EM+S all in one package. There are all kinds of options and deals available depending on what you need so other than pointing out that the different tiers are there, I&amp;rsquo;m not even going to attempt to explain them here.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve already talked about some more advanced concepts such as &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/08/23/tuning-up-intune-self-service-password-reset-from-the-login-screen/&#34;&gt;using Intune to deliver Password resets&lt;/a&gt; to Windows domain devices, and in the next post I will look at assigning licences and enrolling devices.&lt;/p&gt;
</description>
      <source:markdown>&lt;h2&gt;Introduction to Microsoft Mobile Device Management&lt;/h2&gt;
I&#39;m currently settling in to a new job where I&#39;m spending a fair amount of time working with Microsoft&#39;s Mobile security management tools, mostly Microsoft Intune. This is largely what I was doing towards the end of my old job too, and while there&#39;s some great people writing great material out there, I think there&#39;s a lack of articles that try to start at the beginning with current (as of April 2019) tools and pull all the strands together, so that&#39;s what we&#39;re going to talk about here.

First of all, let&#39;s talk about some industry standard terms that you might see in this article and everywhere else.

&lt;strong&gt;Mobile Device Management (&lt;a href=&#34;https://en.wikipedia.org/wiki/Mobile_device_management&#34;&gt;MDM&lt;/a&gt;)&lt;/strong&gt; - this refers to management tools for smartphones, tablets, and also more recently laptops and desktops. MDM tools typically apply policies to devices (or users) that control how the device the user is working with operates.

If you&#39;re used to using Active Directory management of devices then you might consider MDM to be loosely similar to GPOs applied to a desktop machine to control the basic environment.

&lt;strong&gt;Mobile Application Management (&lt;a href=&#34;https://en.wikipedia.org/wiki/Mobile_application_management&#34;&gt;MAM&lt;/a&gt;) &lt;/strong&gt;- This refers to the management of the &lt;em&gt;applications themselves&lt;/em&gt; on a mobile device. MAM differs from MDM in that MAM allows us to have more granular control over the behaviour of different applications without necessarily taking control of the whole device (though it&#39;s possible and often desirable to use device and application policies together).

&lt;strong&gt;Data Loss Prevention (&lt;a href=&#34;https://en.wikipedia.org/wiki/Data_loss_prevention_software&#34;&gt;DLP&lt;/a&gt;)&lt;/strong&gt; - Systems that monitor data and attempt to spot unauthorised access, modification or sharing.

&lt;strong&gt;Enterprise Mobility Management (EMM)&lt;/strong&gt; - This term encompasses MDM, MAM, mobile user security and data loss prevention tools (DLP) working together with user account security (e.g. multi-factor authentication, detection and blocking of &#34;risky&#34; logins) to try and provide a secure environment for mobile workers.
&lt;h2&gt;Microsoft&#39;s EMM product family.&lt;/h2&gt;
Microsoft refer to their product family as &#34;&lt;a href=&#34;https://www.microsoft.com/en-gb/cloud-platform/enterprise-mobility-security&#34;&gt;Enterprise Mobility + Security&lt;/a&gt;&#34; and not surprisingly, it&#39;s designed to integrate with Office 365 and Azure Active Directory.

There are several different levels of Microsoft Intune, each with different levels of functionality and different benefits.
&lt;h4&gt;Mobile Device Management for Office 365&lt;/h4&gt;
This is the basic package for Office 365 Business subscribers and is bundled with the Office 365 enterprise packages. It gives you a simplified dashboard for enrolling and managing mobile devices and Windows clients, and is designed to offer a simple &#34;baseline&#34; level of control over mobile access to data and services for businesses using Office 365.
&lt;h4&gt;Microsoft Intune&lt;/h4&gt;
Microsoft Intune is the full Microsoft &#34;MDM experience&#34;, allowing you to fully manage devices and applications in Office 365/Azure Active Directory. It allows you to enrol devices, assign policies to groups of users in a similar way to MDM for O365, but also adds full MAM capability, allowing you to apply granular controls to applications that are using your data without necessarily having to enrol the device into MDM.

Intune adds support for Mac OS to the list of devices that can be managed.
&lt;h4&gt;Enterprise Mobility + Security&lt;/h4&gt;
EMS is the full package. It requires (or provides, depending on how you look at it) a subscription that includes Azure Active Directory (AAD) premium, and provides you with everything that Microsoft Intune itself allows, along with  vastly improved safeguards for user accounts and data.
&lt;h4&gt;In Summary&lt;/h4&gt;
If this seems confusing then don&#39;t worry - it &lt;em&gt;is&lt;/em&gt; a little confusing. You can think of the three packages above as &#34;Good, Better, Best&#34; and try to think about what your requirements are. For example, if you&#39;re running a relatively small business and you primarily use Office 365 to deliver email via Exchange Online and you simply want to provide some controls around how all your users access email away from the office then you may find that MDM for O365 does enough for you.

If you&#39;re running a rather more sophisticated cloud presence where you&#39;re making use of more Office 365 capabilities, where your users might be a bit more mobile, or logging in from a wider range of devices and you wish to be able to control &lt;em&gt;application&lt;/em&gt; use from BYOD devices, or you have users running MacOS, then Microsoft Intune is probably the right level for you.

If you&#39;re after still more granular control, if you wish to have different sets of requirements for access to systems, if you&#39;re running a large business who places a lot of data and services in the cloud, if you wish to track data and user access patterns in detail and lock down access to applications or data depending on different levels of &#34;risk&#34; attached to a log-in attempt (e.g. &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/concept-risky-sign-ins&#34;&gt;risky sign-ins&lt;/a&gt;) then you will need the full Microsoft EM+S licence.&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/03/mdm-vs-intune-vs-ems.png&#34;&gt;&lt;img class=&#34;alignleft wp-image-872 size-full&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2019/03/mdm-vs-intune-vs-ems.png&#34; alt=&#34;&#34; width=&#34;906&#34; height=&#34;307&#34;&gt;&lt;/a&gt;

 

As ever with Microsoft, there are many different combinations of licences you can buy and assign to your users to give you these capabilities. I&#39;m not going to break them down in detail here but in broad strokes, you can think of the basic Office 365 E3 enterprise licence (or A3 for education) as giving you MDM for O365.

You can add Intune by itself as a specific item if you just need slightly more control on top of the basic package, and if you need Office 365 and EM+S then you probably should look at the &lt;a href=&#34;https://www.microsoft.com/en-GB/microsoft-365/enterprise/home&#34;&gt;Microsoft 365 Enterprise&lt;/a&gt; packages that provide Windows licences, Office 365 licences and EM+S all in one package. There are all kinds of options and deals available depending on what you need so other than pointing out that the different tiers are there, I&#39;m not even going to attempt to explain them here.

I&#39;ve already talked about some more advanced concepts such as &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/08/23/tuning-up-intune-self-service-password-reset-from-the-login-screen/&#34;&gt;using Intune to deliver Password resets&lt;/a&gt; to Windows domain devices, and in the next post I will look at assigning licences and enrolling devices.
</source:markdown>
    </item>
    
    <item>
      <title>Chocolatey in the workplace</title>
      <link>https://itsalwaysmyproblem.com/2018/09/03/chocolatey-in-the.html</link>
      <pubDate>Mon, 03 Sep 2018 11:33:55 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/09/03/chocolatey-in-the.html</guid>
      <description>&lt;p&gt;I talked previously about using &lt;a href=&#34;http://itsalwaysmyproblem.com/2017/09/09/easy-pc-rebuilds-with-chocolatey/&#34;&gt;Chocolatey for home use&lt;/a&gt;. It makes building a PC at home nice, simple and fast. It makes supporting non-technical friends and family nice and easy, ensuring you can build their computers how they want and keep them up-to-date with just a few simple commands (that can even be put in the scheduler, so neither you or they have to worry about them).&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve recently just completed a Windows 10 rollout at my college. I&amp;rsquo;m very pleased with it and, I think, the college&amp;rsquo;s staff and student customers also seem quite pleased. &lt;a href=&#34;http://www.troliver.com/&#34;&gt;One of my team&lt;/a&gt; has worked incredibly hard on producing a perfect build of Windows 10 that revolves around a large image with most of the applications pre-installed. As we use SCCM and this is quite happy to deploy packages on a piecemeal basis itself, we had a lot of discussion about this and while we still think that SCCM is incredibly useful, it does have a few limits:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;It&#39;s based around old technology. SCCM is a development of Microsoft&#39;s Systems Management Server and frankly, it shows. There are all kinds of weird and wonderful legacy dead ends to get lost in. This leads to...&lt;/li&gt;
	&lt;li&gt;It&#39;s incredibly complex to use. If you&#39;re someone like Boeing or Microsoft themselves then it&#39;s about as complex as you need it to be, but for your average SME, a lot of the features are overkill.&lt;/li&gt;
	&lt;li&gt;It&#39;s not terribly reliable. Let me explain: When you build a machine with SCCM you can assign several packages of configuration items (e.g. packages, settings) as part of the initial task sequence and these should all install fairly reliably. Packages that are installed after this initial task sequence seem to install in their own time. Debugging why these packages fail or take excessively long to install requires expert debugging of potentially dozens of logs spread between the client and the server.&lt;/li&gt;
	&lt;li&gt;SCCM requires a large and complex infrastructure deployment, potentially with many multiple servers needed for even a relatively simple SCCM deployment.&lt;/li&gt;
&lt;/ul&gt;
Chocolatey isn&#39;t a magic fix for these issues but it does have a number of advantages:
&lt;ul&gt;
	&lt;li&gt;Package installation is managed by the client (though you can push instructions to the client) and is much easier to predict and control.&lt;/li&gt;
	&lt;li&gt;It&#39;s easier to upgrade packages with newer versions with Chocolatey vs. the process on SCCM to supersede old packages.&lt;/li&gt;
	&lt;li&gt;Chocolatey&#39;s server infrastructure is relatively lightweight.&lt;/li&gt;
	&lt;li&gt;Chocolatey packages allow you to ensure that  a package is installed consistently whether manually or by automation - the install method is the same &lt;em&gt;choco install $package -y&lt;/em&gt; command line statement either way and should produce the same result either way... which also makes it easy to examine and debug any issues.&lt;/li&gt;
	&lt;li&gt;Chocolatey allows you to install packages in a particular order. Of course you can do that with SCCM now, but if you&#39;re looking at &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/08/23/tuning-up-intune-self-service-password-reset-from-the-login-screen/&#34;&gt;Intune&lt;/a&gt; and thinking of deploying Win 32 packages via powershell profiles then you might have noticed that powershell scripts don&#39;t run in a particular order which means that any dependencies have to be resolved by you. Chocolatey also supports &lt;a href=&#34;https://docs.microsoft.com/en-us/nuget/reference/nuspec#specifying-dependencies&#34;&gt;dependencies&lt;/a&gt; internally, by the way.&lt;/li&gt;
&lt;/ul&gt;
We&#39;re currently using a hybrid deployment where we&#39;ve built a &#34;classic&#34; image for our deployment but installed some of the packages into that baseline using chocolatey. This has improved our ability to generate new, consistent images much faster as well as being able to update packages in the future via chocolatey&#39;s own update model, which will work well for devices that aren&#39;t always on site.
&lt;p&gt;With a combination of Chocolatey and a few other PowerShell tricks, it&amp;rsquo;s possible to run a couple of scripts to join a device to your domain and then install a baseline set of packages, as per my example scripts below.&lt;/p&gt;
&lt;h3&gt;Join domain and restart device&lt;/h3&gt;
&lt;blockquote&gt;set-executionpolicy unrestricted
# Self-elevate the script if required
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] &#39;Administrator&#39;)) {
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
$CommandLine = &#34;-File `&#34;&#34; + $MyInvocation.MyCommand.Path + &#34;`&#34; &#34; + $MyInvocation.UnboundArguments
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
Exit
}
}
&lt;h1 id=&#34;portable-build-script-1-should-be-run-on-a-windows-10-professional-system-that-we-wish-to-build-as-a-domain-device&#34;&gt;Portable build script 1. Should be run on a Windows 10 Professional system that we wish to &amp;ldquo;build&amp;rdquo; as a domain device&lt;/h1&gt;
&lt;h1 id=&#34;does-the-following&#34;&gt;Does the following:&lt;/h1&gt;
&lt;h1 id=&#34;1-ensure-were-elevated-and-if-not-elevate-the-session&#34;&gt;1. Ensure we&amp;rsquo;re elevated and if not elevate the session&lt;/h1&gt;
&lt;h1 id=&#34;2-remove-bad-apps-that-simply-shouldnt-be-on-the-workstation&#34;&gt;2. Remove &amp;lsquo;bad&amp;rsquo; apps that simply shouldn&amp;rsquo;t be on the workstation&lt;/h1&gt;
&lt;h1 id=&#34;3-join-the-domain-placing-the-device-in-the-adminlaptops-ou-in-workstations&#34;&gt;3. Join the domain, placing the device in the Admin\Laptops OU in Workstations&lt;/h1&gt;
&lt;h1 id=&#34;3-change-product-key-to-a-windows-10-enterprise-_kms_-key-this-upgrades-the-system-to-windows-10-enterprise-but&#34;&gt;3. Change product key to a Windows 10 Enterprise &lt;em&gt;KMS&lt;/em&gt; key. This &amp;lsquo;upgrades&amp;rsquo; the system to Windows 10 enterprise but&amp;hellip;&lt;/h1&gt;
&lt;h1 id=&#34;-the-system-must-be-on-the-network-to-find-a-kms-server-on-restart&#34;&gt;&amp;hellip;. the system MUST be on the network to find a KMS server on restart.&lt;/h1&gt;
&lt;p&gt;############ LAST UPDATE: 08/02/2018 Rob&lt;/p&gt;
&lt;h1 id=&#34;if-youre-in-this-list-youre-being-uninstalled&#34;&gt;If you&amp;rsquo;re in this list you&amp;rsquo;re being uninstalled&lt;/h1&gt;
&lt;p&gt;Get-AppxPackage &lt;em&gt;officehub&lt;/em&gt; | Remove-AppxPackage
Get-AppxPackage &lt;em&gt;skypeapp&lt;/em&gt; | Remove-AppxPackage
Get-AppxPackage &lt;em&gt;getstarted&lt;/em&gt; | Remove-AppxPackage
Get-AppxPackage &lt;em&gt;zunemusic&lt;/em&gt; | Remove-AppxPackage
Get-AppxPackage &lt;em&gt;bingsports&lt;/em&gt; | Remove-AppxPackage
Get-AppxPackage &lt;em&gt;xboxapp&lt;/em&gt; | Remove-AppxPackage
get-appxpackage &lt;em&gt;oneconnect&lt;/em&gt; | remove-appxpackage
get-appxpackage &lt;em&gt;phone&lt;/em&gt; | remove-appxpackage
get-appxpackage &lt;em&gt;candy&lt;/em&gt; | remove-appxpackage&lt;/p&gt;
&lt;h1 id=&#34;prevent-random-cloud-content-nonsense-from-downloading&#34;&gt;Prevent random &amp;ldquo;cloud content&amp;rdquo; nonsense from downloading&lt;/h1&gt;
&lt;p&gt;reg add hkey_local_machine\software\policies\microsoft\windows\cloudcontent /v DisableWindowsConsumerFeatures /t REG_DWORD /d 1&lt;/p&gt;
&lt;h1 id=&#34;join-the-domain-note-credentials-below-for-a-emnon-adminem-account-with-unlimited-domain-join-rights&#34;&gt;Join the domain. Note credentials below for a &lt;em&gt;non admin&lt;/em&gt; account with unlimited domain join rights.&lt;/h1&gt;
&lt;p&gt;$domain = &amp;ldquo;your.domain.example.com&amp;rdquo;
$username = &amp;ldquo;$domain\account&amp;rdquo;
$password = &amp;ldquo;Hunter2&amp;rdquo; | ConvertTo-SecureString -asPlainText -Force&lt;/p&gt;
&lt;p&gt;$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName &amp;ldquo;your.domain.example.com&amp;rdquo; -OUPath &amp;ldquo;OU=scripted,OU=build,OU=Workstations,OU=MySite,DC=your,DC=domain,DC=example,DC=com&amp;rdquo; -Credential $Credential&lt;/p&gt;
&lt;h1 id=&#34;change-product-key-to-your-enterprise-kms-workstation-key-and-force-a-reboot&#34;&gt;change product key to your enterprise KMS workstation key and force a reboot.&lt;/h1&gt;
&lt;p&gt;Changepk.exe /ProductKey #####-#####-#####-#####-#####&lt;/p&gt;
&lt;p&gt;shutdown /t 0 /r&lt;/blockquote&gt;&lt;/p&gt;
&lt;h3&gt;Chocolatey Software Build&lt;/h3&gt;
&lt;blockquote&gt;set-executionpolicy unrestricted
# Self-elevate the script if required
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] &#39;Administrator&#39;)) {
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
$CommandLine = &#34;-File `&#34;&#34; + $MyInvocation.MyCommand.Path + &#34;`&#34; &#34; + $MyInvocation.UnboundArguments
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
Exit
}
}
&lt;h1 id=&#34;portable-build-script-2-should-be-run-on-a-windows-10-enterprise-system-that-we-wish-to-build-as-a-college-device&#34;&gt;Portable build script 2. Should be run on a Windows 10 Enterprise system that we wish to &amp;ldquo;build&amp;rdquo; as a college device&lt;/h1&gt;
&lt;h1 id=&#34;ensure-that-machine-is-win-10-enterprise-and-domain-joined-first-run-the-domain-join-script-first&#34;&gt;Ensure that machine is Win 10 enterprise and domain joined first (run the domain join script first!)&lt;/h1&gt;
&lt;h1 id=&#34;does-the-following-1&#34;&gt;Does the following:&lt;/h1&gt;
&lt;h1 id=&#34;1-ensure-were-running-as-admin-and-elevate-if-were-not&#34;&gt;1. Ensure we&amp;rsquo;re running as admin and elevate if we&amp;rsquo;re not&lt;/h1&gt;
&lt;h1 id=&#34;2-install-chocolatey&#34;&gt;2. install chocolatey&lt;/h1&gt;
&lt;h1 id=&#34;3-install-apps-using-chocolatey-repository&#34;&gt;3. install apps using chocolatey repository&lt;/h1&gt;
&lt;p&gt;############ LAST UPDATE: 08/02/2018 Rob&lt;/p&gt;
&lt;h1 id=&#34;now-running-elevated-so-launch-the-script&#34;&gt;Now running elevated so launch the script:&lt;/h1&gt;
&lt;h1 id=&#34;install-chocolatey-chocolatey-apps&#34;&gt;install chocolatey, chocolatey apps&lt;/h1&gt;
&lt;p&gt;Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(&amp;lsquo;&lt;a href=&#34;https://chocolatey.org/install.ps1&#39;&#34;&gt;https://chocolatey.org/install.ps1&#39;&lt;/a&gt;))
choco install -y office365-2016-deployment-tool /Shared&lt;/p&gt;
&lt;h1 id=&#34;choco-install--y-adobe-creative-cloud&#34;&gt;choco install -y adobe-creative-cloud&lt;/h1&gt;
&lt;p&gt;choco install -y sql-server-management-studio
choco install -y 7zip.install
choco install -y vlc
choco install -y googlechrome&lt;/p&gt;
&lt;h1 id=&#34;done-now-reboot&#34;&gt;Done, now reboot&lt;/h1&gt;
&lt;p&gt;shutdown /t 0 /r&lt;/blockquote&gt;
You can obviously pick and choose from these examples as you wish.&lt;/p&gt;
</description>
      <source:markdown>I talked previously about using &lt;a href=&#34;http://itsalwaysmyproblem.com/2017/09/09/easy-pc-rebuilds-with-chocolatey/&#34;&gt;Chocolatey for home use&lt;/a&gt;. It makes building a PC at home nice, simple and fast. It makes supporting non-technical friends and family nice and easy, ensuring you can build their computers how they want and keep them up-to-date with just a few simple commands (that can even be put in the scheduler, so neither you or they have to worry about them).

We&#39;ve recently just completed a Windows 10 rollout at my college. I&#39;m very pleased with it and, I think, the college&#39;s staff and student customers also seem quite pleased. &lt;a href=&#34;http://www.troliver.com/&#34;&gt;One of my team&lt;/a&gt; has worked incredibly hard on producing a perfect build of Windows 10 that revolves around a large image with most of the applications pre-installed. As we use SCCM and this is quite happy to deploy packages on a piecemeal basis itself, we had a lot of discussion about this and while we still think that SCCM is incredibly useful, it does have a few limits:
&lt;ul&gt;
	&lt;li&gt;It&#39;s based around old technology. SCCM is a development of Microsoft&#39;s Systems Management Server and frankly, it shows. There are all kinds of weird and wonderful legacy dead ends to get lost in. This leads to...&lt;/li&gt;
	&lt;li&gt;It&#39;s incredibly complex to use. If you&#39;re someone like Boeing or Microsoft themselves then it&#39;s about as complex as you need it to be, but for your average SME, a lot of the features are overkill.&lt;/li&gt;
	&lt;li&gt;It&#39;s not terribly reliable. Let me explain: When you build a machine with SCCM you can assign several packages of configuration items (e.g. packages, settings) as part of the initial task sequence and these should all install fairly reliably. Packages that are installed after this initial task sequence seem to install in their own time. Debugging why these packages fail or take excessively long to install requires expert debugging of potentially dozens of logs spread between the client and the server.&lt;/li&gt;
	&lt;li&gt;SCCM requires a large and complex infrastructure deployment, potentially with many multiple servers needed for even a relatively simple SCCM deployment.&lt;/li&gt;
&lt;/ul&gt;
Chocolatey isn&#39;t a magic fix for these issues but it does have a number of advantages:
&lt;ul&gt;
	&lt;li&gt;Package installation is managed by the client (though you can push instructions to the client) and is much easier to predict and control.&lt;/li&gt;
	&lt;li&gt;It&#39;s easier to upgrade packages with newer versions with Chocolatey vs. the process on SCCM to supersede old packages.&lt;/li&gt;
	&lt;li&gt;Chocolatey&#39;s server infrastructure is relatively lightweight.&lt;/li&gt;
	&lt;li&gt;Chocolatey packages allow you to ensure that  a package is installed consistently whether manually or by automation - the install method is the same &lt;em&gt;choco install $package -y&lt;/em&gt; command line statement either way and should produce the same result either way... which also makes it easy to examine and debug any issues.&lt;/li&gt;
	&lt;li&gt;Chocolatey allows you to install packages in a particular order. Of course you can do that with SCCM now, but if you&#39;re looking at &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/08/23/tuning-up-intune-self-service-password-reset-from-the-login-screen/&#34;&gt;Intune&lt;/a&gt; and thinking of deploying Win 32 packages via powershell profiles then you might have noticed that powershell scripts don&#39;t run in a particular order which means that any dependencies have to be resolved by you. Chocolatey also supports &lt;a href=&#34;https://docs.microsoft.com/en-us/nuget/reference/nuspec#specifying-dependencies&#34;&gt;dependencies&lt;/a&gt; internally, by the way.&lt;/li&gt;
&lt;/ul&gt;
We&#39;re currently using a hybrid deployment where we&#39;ve built a &#34;classic&#34; image for our deployment but installed some of the packages into that baseline using chocolatey. This has improved our ability to generate new, consistent images much faster as well as being able to update packages in the future via chocolatey&#39;s own update model, which will work well for devices that aren&#39;t always on site.

With a combination of Chocolatey and a few other PowerShell tricks, it&#39;s possible to run a couple of scripts to join a device to your domain and then install a baseline set of packages, as per my example scripts below.
&lt;h3&gt;Join domain and restart device&lt;/h3&gt;
&lt;blockquote&gt;set-executionpolicy unrestricted
# Self-elevate the script if required
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] &#39;Administrator&#39;)) {
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
$CommandLine = &#34;-File `&#34;&#34; + $MyInvocation.MyCommand.Path + &#34;`&#34; &#34; + $MyInvocation.UnboundArguments
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
Exit
}
}

# Portable build script 1. Should be run on a Windows 10 Professional system that we wish to &#34;build&#34; as a domain device
# Does the following:
# 1. Ensure we&#39;re elevated and if not elevate the session
# 2. Remove &#39;bad&#39; apps that simply shouldn&#39;t be on the workstation
# 3. Join the domain, placing the device in the Admin\Laptops OU in Workstations
# 3. Change product key to a Windows 10 Enterprise _KMS_ key. This &#39;upgrades&#39; the system to Windows 10 enterprise but...
# .... the system MUST be on the network to find a KMS server on restart.
############ LAST UPDATE: 08/02/2018 Rob

# If you&#39;re in this list you&#39;re being uninstalled

Get-AppxPackage *officehub* | Remove-AppxPackage
Get-AppxPackage *skypeapp* | Remove-AppxPackage
Get-AppxPackage *getstarted* | Remove-AppxPackage
Get-AppxPackage *zunemusic* | Remove-AppxPackage
Get-AppxPackage *bingsports* | Remove-AppxPackage
Get-AppxPackage *xboxapp* | Remove-AppxPackage
get-appxpackage *oneconnect* | remove-appxpackage
get-appxpackage *phone* | remove-appxpackage
get-appxpackage *candy* | remove-appxpackage

# Prevent random &#34;cloud content&#34; nonsense from downloading
reg add hkey_local_machine\software\policies\microsoft\windows\cloudcontent /v DisableWindowsConsumerFeatures /t REG_DWORD /d 1
# Join the domain. Note credentials below for a &lt;em&gt;non admin&lt;/em&gt; account with unlimited domain join rights.

$domain = &#34;your.domain.example.com&#34;
$username = &#34;$domain\account&#34;
$password = &#34;Hunter2&#34; | ConvertTo-SecureString -asPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName &#34;your.domain.example.com&#34; -OUPath &#34;OU=scripted,OU=build,OU=Workstations,OU=MySite,DC=your,DC=domain,DC=example,DC=com&#34; -Credential $Credential
# change product key to your enterprise KMS workstation key and force a reboot.
Changepk.exe /ProductKey #####-#####-#####-#####-#####

shutdown /t 0 /r&lt;/blockquote&gt;
&lt;h3&gt;Chocolatey Software Build&lt;/h3&gt;
&lt;blockquote&gt;set-executionpolicy unrestricted
# Self-elevate the script if required
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] &#39;Administrator&#39;)) {
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
$CommandLine = &#34;-File `&#34;&#34; + $MyInvocation.MyCommand.Path + &#34;`&#34; &#34; + $MyInvocation.UnboundArguments
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
Exit
}
}

# Portable build script 2. Should be run on a Windows 10 Enterprise system that we wish to &#34;build&#34; as a college device
# Ensure that machine is Win 10 enterprise and domain joined first (run the domain join script first!)
# Does the following:
# 1. Ensure we&#39;re running as admin and elevate if we&#39;re not
# 2. install chocolatey
# 3. install apps using chocolatey repository
############ LAST UPDATE: 08/02/2018 Rob

# Now running elevated so launch the script:

# install chocolatey, chocolatey apps

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(&#39;https://chocolatey.org/install.ps1&#39;))
choco install -y office365-2016-deployment-tool /Shared
# choco install -y adobe-creative-cloud
choco install -y sql-server-management-studio
choco install -y 7zip.install
choco install -y vlc
choco install -y googlechrome

# Done, now reboot
shutdown /t 0 /r&lt;/blockquote&gt;
You can obviously pick and choose from these examples as you wish.
</source:markdown>
    </item>
    
    <item>
      <title>Backup to the cloud.</title>
      <link>https://itsalwaysmyproblem.com/2018/08/26/backup-to-the.html</link>
      <pubDate>Sun, 26 Aug 2018 15:47:17 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/08/26/backup-to-the.html</guid>
      <description>&lt;h1&gt;Introduction&lt;/h1&gt;
So I think a lot of us take backups for granted. It&#39;s one of those things you look at once and then tend to not worry about too much. As long as its working, why worry?
&lt;p&gt;Except&amp;hellip; if you don&amp;rsquo;t look at it, how do you know how well its working? I&amp;rsquo;m talking from the viewpoint of a senior engineer or manager here of course, hopefully if you&amp;rsquo;re a junior engineer who has been put in charge of backups you&amp;rsquo;re making sure that the current system works well and telling people about any concerns you might have. If not, go do that now. I&amp;rsquo;ll still be here, I promise.&lt;/p&gt;
&lt;p&gt;So a couple of things have been stirring in my mind lately. Firstly is the incredible story of &lt;a href=&#34;https://www.theregister.co.uk/2017/06/28/petya_notpetya_ransomware/&#34;&gt;NotPetya&lt;/a&gt; and the impact it had on businesses all over the world. One especially poignant story is that of Maersk and it&amp;rsquo;s told very well in an &lt;a href=&#34;https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/&#34;&gt;incredible article&lt;/a&gt; on the Wired website.&lt;/p&gt;
&lt;p&gt;Now, I&amp;rsquo;m possibly tempting fate here but I can say that my employer has not had serious threats from this kind of malware attack. I&amp;rsquo;m going to put some of that down to good work by my team, some of that down to not being a very interesting direct target and some of that down to good old-fashioned grace-of-God (or luck if you prefer to call it that).&lt;/p&gt;
&lt;p&gt;But we shouldn&amp;rsquo;t be taking any of those things for granted. Not me, not you. So with thoughts of what malware might do to an on-site backup repository in mind, I was already thinking of alternatives.&lt;/p&gt;
&lt;p&gt;One of the issues my employer has, as an educational establishment, is funding to undertake major projects. We&amp;rsquo;ve had a quantum tape library on-site for some time and used it with Arcserve backup and this actually worked very well. I&amp;rsquo;ve got no complaints about either product. One issue we &lt;em&gt;did&lt;/em&gt; have due to funding was getting the money available to tackle both hardware and software components of our backup system at the same time, as the two items tended to have different life-cycles.&lt;/p&gt;
&lt;p&gt;One of the worst reasons I can think of to do something is &amp;ldquo;because that&amp;rsquo;s always what we&amp;rsquo;ve done&amp;rdquo; so after a bit of creative work on budgets and schedules, I was able to line up all the components of our backup system to be evaluated and replaced or renewed together.&lt;/p&gt;
&lt;p&gt;And I found something interesting.&lt;/p&gt;
&lt;h1&gt;The cost of backups&lt;/h1&gt;
One of my frequent &#34;go to&#34; phrases goes along the lines of &#34;if you think doing it right is expensive, you should see the real cost of being too cheap&#34; and this obviously applies to backups. You need a robust and reliable system that you can count on to work without too much day-to-day intervention. You need to carry out test restores from your system so that you can trust it. Most important of all, you need a backup environment your team understands and believes in, so that they can transfer that belief to others in the business.
&lt;p&gt;Now that we&amp;rsquo;ve established that whatever backup you choose needs to be one that works and that there&amp;rsquo;s more to cost than the price, we can talk about the price.&lt;/p&gt;
&lt;p&gt;The figures below reflect the college&amp;rsquo;s investigation into our needs some time ago. They should be taken as simple examples and comparisons and are not indicative of the prices that a supplier or vendor might be using now.&lt;/p&gt;
&lt;h4&gt;On-Premises backup to tape&lt;/h4&gt;
Tape backups have served the college well over time but I think they are becoming less useful and relevant to where we want to be as a college in 2018.
&lt;ul&gt;
	&lt;li&gt;Tapes deteriorate over time and both software and standards change. Simply having data on a tape from 6 years ago is no guarantee we can retrieve the data.&lt;/li&gt;
	&lt;li&gt;Tapes are currently stored on-site at some expense and require manual intervention to be changed. New tapes need to be purchased and old ones need to be retired. To achieve true business resilience, we need to store data off-site and this will cost at least £1,440 a year, plus our time managing that service.&lt;/li&gt;
	&lt;li&gt;We&lt;em&gt; don’t refer to the tape backups very often&lt;/em&gt;. We’ve been retaining data for several years but have only used tape to restore data a couple of times in the past few years, when it’s proven to be a lengthy experience.&lt;/li&gt;
&lt;/ul&gt;
If we keep going with tape we will need to replace the current tape library with a new one, as it has reached the end of its useful life; it was purchased in 2012 and is based around LTO5 and is out of manufacturer’s support.
&lt;p&gt;The figures below are for a similar replacement: 2 drives in a library that has a capacity of 50 drives (which we currently have) but only licenced for 25 slots. We &lt;em&gt;will&lt;/em&gt; need to upgrade the slot licence at some point in the life-cycle but we could start with the 25 slot licence.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.span.com/product/Quantum-Scalar-i3-LSC33-CSE2-L8NA-3U-Control-Module-25-licensed-slots-2x-IBM-LTO-8-Drives-6Gb-SAS~62659&#34;&gt;Quantum i3 tape library&lt;/a&gt;. This would cost £13,068. We would stick with Quantum because we’re familiar with it, we know it is compatible with our hardware (e.g. it should just plug into the server the current library is using) and we know it is compatible with the Arcserve software.&lt;/p&gt;
&lt;p&gt;We will also need &lt;a href=&#34;https://www.span.com/product/Quantum-Ultrium-LTO-8-Tape-MR-L8LQN-BC-20x-Library-pack-uncased-Custom-Pre-labelled-12TB-30TB~62908&#34;&gt;new tapes&lt;/a&gt;, fitting the new LTO 8 standard. To fill this library and have a complete set of replacements we will need three of the 20 tape library packs. The cost of these is £3,211 &lt;em&gt;each&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We will also need to continue the Arcserve licence, which will cost £11,996 &lt;em&gt;a year&lt;/em&gt;&lt;img class=&#34;alignnone size-full wp-image-864&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/tape-start-cost.png&#34; alt=&#34;tape start cost&#34; width=&#34;601&#34; height=&#34;90&#34;&gt;
&lt;u&gt;Ongoing costs&lt;/u&gt; would be the Arcserve licence and a box of tapes a year, so:&lt;img class=&#34;alignnone size-full wp-image-863&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/tape-on-cost.png&#34; alt=&#34;tape on cost&#34; width=&#34;606&#34; height=&#34;93&#34;&gt;&lt;/p&gt;
&lt;p&gt;If we consider the tape library to have a 6-year life span, we can divide the cost of the initial purchase of tapes and tape library over the lifespan of the device to get £3,785.50 and add that to the yearly costs to say that it would cost us &lt;span style=&#34;color:#ff0000;&#34;&gt;£20,230.50&lt;/span&gt; a year to continue tape backups for the next 6 years.&lt;/p&gt;
&lt;h4&gt;Backup to the Cloud&lt;/h4&gt;
After some thought we decided to look at Azure for our backup storage provider, so the rest of this article talks about the cost of using Azure for backups. You might have better reasons to use AWS or someone else than we did, and the prices again should be taken as an indicator based on when the research was first done, not a guarantee of what you might pay yourself at the time of reading.
&lt;p&gt;One thing that occurred to us with backup to the cloud is that we could use Microsoft System Center Data Protection Manager to manage our backups. This was a no-cost option for us due to the licence terms we already had with Microsoft. and this obviously makes a huge difference to the bottom line numbers.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Cloud backup&amp;rdquo; is something of a marketing term. We’re going to continue to use it here, but it’s worth remembering that what we’re talking about is more formally referred to as “using Microsoft Azure Backup to store backups and replicas of our systems and data off-site in EU and UK data centres”.&lt;/p&gt;
&lt;p&gt;With this proposal, we proposed deploying Microsoft’s backup software on-premise and have that create a backup of all our systems and data to an on-premises storage server. We will then choose to have some of these backups extended into the cloud so that they’re safely stored off-site.&lt;/p&gt;
&lt;p&gt;Systems that will only be backed up on-site will be “non-essential”, which typically means services that can be relatively easily rebuild in the event of a major incident. Systems and data that will be backed up to the cloud will include systems that would be extremely difficult to reconstruct and/or data that would be impossible to re-create.&lt;/p&gt;
&lt;p&gt;To give an example, the student CRM &amp;ldquo;Front End&amp;rdquo; server, which &lt;em&gt;only&lt;/em&gt; contains information about how to render CRM data would be backed up locally, as it would be trivial to reconstruct this after a major disaster. The data held and used by the CRM system, which is stored in one of our main database servers would be backed up to the cloud as part of the backup of the database server.&lt;/p&gt;
&lt;h4&gt;How does Azure work?&lt;/h4&gt;
Backup pricing in Azure is costed &lt;em&gt;fairly&lt;/em&gt; simply. You pay to use backup services to the tune of £7.50 a month for a 500Gb “instance”. This means that a basic application server that uses 200Gb of space will use 1 instance of £7.50 a month. A major file share server that uses 1200Gb of space will use 3 instances, £22.50 a month.
&lt;p&gt;On top of this, we also pay for storage we use, depending on redundancy and tiers.&lt;/p&gt;
&lt;p&gt;Redundancy levels refer to how Microsoft protect data stored in Azure. LRS, ZRS or GRS refers to how the data is replicated around the Azure infrastructure, and is explained in detail &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The choices for backup vaults seem to centre around LRS (Locally Replicated) and GRS (Globally Replicated). LRS means that the data is replicated only within the same datacentre, and GRS means that the data is replicated globally between several Microsoft data centres around the world, and costs more to use. We chose &amp;ldquo;LRS&amp;rdquo; for our backup vault as it seemed to us that the backup copy in Azure would be the &lt;em&gt;third&lt;/em&gt; copy of the data we would have in normal operating conditions (e.g. live working server, local backup, cloud backup) and that was good enough for us.&lt;/p&gt;
&lt;p&gt;You should make your own assessment of your requirements and base your decision on that. For example, if we had an extensive cloud deployment of VMs with irreplaceable data on them it would make sense to consider globally replicating the backup vault for &lt;em&gt;that&lt;/em&gt; data with GRS, just in case&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers&#34;&gt;&lt;em&gt;Tiers&lt;/em&gt;&lt;/a&gt; relate to speed and ease of access, and are referred to as “Hot”, “Cool” and “Archive” tiers. Archive tier is designed to be written to often and read from rarely and is costed favourably to that model. As we’re anticipating keeping backups on-site and only using Azure storage for recovery from a major disaster, we’re proposing that all our backups are made to Archive storage. If we find we’re reading backups from cloud for one or two systems on a regular basis then those systems should be migrated to backup to the ‘cool’ tier.&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-861&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/storage-pricing.png&#34; alt=&#34;storage pricing&#34; width=&#34;610&#34; height=&#34;103&#34;&gt;
&lt;p&gt;We can combine the pricing per tier with the pricing per instance to get example pricing for the 200Gb application server we mentioned before. (Note that you pay for instances in 500Gb steps but pay for the precise storage you use per Gb.&lt;/p&gt;
&lt;p&gt;So to backup the application server would cost £7.50 &lt;em&gt;plus&lt;/em&gt; archive storage (0.0017 * 200) £0.34 = &lt;em&gt;£7.84 per month.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To back up our example major file share server will use 3 instances (£22.50) plus archive storage (0.0017 * 1200) £2.04 = £24.52 per month.&lt;/p&gt;
&lt;p&gt;With all this in mind, we looked at the data we would be moving off-site and felt that it should cost about £2900 to implement the project as a one-off cost in the first year, with storage costing £7000 p.a. assuming our storage space needs stay roughly neutral (1). This represents a notable saving in the first year and we&amp;rsquo;ve gone down that road quite happily.&lt;/p&gt;
&lt;p&gt;DPM could be a little less moody to work with, admittedly, but we can re-assess whether we wish to use other backup software to write to our Azure data vault in the future.&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-862&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/backup.png&#34; alt=&#34;backup&#34; width=&#34;1300&#34; height=&#34;703&#34;&gt;
&lt;p&gt;In terms of business continuity, by moving backups off-site we have some isolation not just from the obvious (and probably least likely) disasters that people think about when talking about this kind of thing but also from malware that hijacks local servers and encrypts or deletes data. You&amp;rsquo;d have similar isolation from malware with tape of course, but you&amp;rsquo;d still need to get the data off-site.&lt;/p&gt;
&lt;p&gt;(1) Future storage requirements are an interesting one. Normally you anticipate growth when modelling storage and backup plans for the future but as we&amp;rsquo;ve migrated all our mailboxes to Office 365 in the past and we&amp;rsquo;ve just finished migrating our SharePoint sites in to Office 365 also, coupled with a strategy to push OneDrive for Business hard at our staff and students vs. our need for ever greater report generation and processing of CRM data, I can see our storage requirements staying neutral or even decreasing in terms of capacity, while the requirement for &lt;em&gt;faster&lt;/em&gt; storage to improve database performance increases.&lt;/p&gt;
</description>
      <source:markdown>&lt;h1&gt;Introduction&lt;/h1&gt;
So I think a lot of us take backups for granted. It&#39;s one of those things you look at once and then tend to not worry about too much. As long as its working, why worry?

Except... if you don&#39;t look at it, how do you know how well its working? I&#39;m talking from the viewpoint of a senior engineer or manager here of course, hopefully if you&#39;re a junior engineer who has been put in charge of backups you&#39;re making sure that the current system works well and telling people about any concerns you might have. If not, go do that now. I&#39;ll still be here, I promise.

So a couple of things have been stirring in my mind lately. Firstly is the incredible story of &lt;a href=&#34;https://www.theregister.co.uk/2017/06/28/petya_notpetya_ransomware/&#34;&gt;NotPetya&lt;/a&gt; and the impact it had on businesses all over the world. One especially poignant story is that of Maersk and it&#39;s told very well in an &lt;a href=&#34;https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/&#34;&gt;incredible article&lt;/a&gt; on the Wired website.

Now, I&#39;m possibly tempting fate here but I can say that my employer has not had serious threats from this kind of malware attack. I&#39;m going to put some of that down to good work by my team, some of that down to not being a very interesting direct target and some of that down to good old-fashioned grace-of-God (or luck if you prefer to call it that).

But we shouldn&#39;t be taking any of those things for granted. Not me, not you. So with thoughts of what malware might do to an on-site backup repository in mind, I was already thinking of alternatives.

One of the issues my employer has, as an educational establishment, is funding to undertake major projects. We&#39;ve had a quantum tape library on-site for some time and used it with Arcserve backup and this actually worked very well. I&#39;ve got no complaints about either product. One issue we &lt;em&gt;did&lt;/em&gt; have due to funding was getting the money available to tackle both hardware and software components of our backup system at the same time, as the two items tended to have different life-cycles.

One of the worst reasons I can think of to do something is &#34;because that&#39;s always what we&#39;ve done&#34; so after a bit of creative work on budgets and schedules, I was able to line up all the components of our backup system to be evaluated and replaced or renewed together.

And I found something interesting.
&lt;h1&gt;The cost of backups&lt;/h1&gt;
One of my frequent &#34;go to&#34; phrases goes along the lines of &#34;if you think doing it right is expensive, you should see the real cost of being too cheap&#34; and this obviously applies to backups. You need a robust and reliable system that you can count on to work without too much day-to-day intervention. You need to carry out test restores from your system so that you can trust it. Most important of all, you need a backup environment your team understands and believes in, so that they can transfer that belief to others in the business.

Now that we&#39;ve established that whatever backup you choose needs to be one that works and that there&#39;s more to cost than the price, we can talk about the price.

The figures below reflect the college&#39;s investigation into our needs some time ago. They should be taken as simple examples and comparisons and are not indicative of the prices that a supplier or vendor might be using now.
&lt;h4&gt;On-Premises backup to tape&lt;/h4&gt;
Tape backups have served the college well over time but I think they are becoming less useful and relevant to where we want to be as a college in 2018.
&lt;ul&gt;
	&lt;li&gt;Tapes deteriorate over time and both software and standards change. Simply having data on a tape from 6 years ago is no guarantee we can retrieve the data.&lt;/li&gt;
	&lt;li&gt;Tapes are currently stored on-site at some expense and require manual intervention to be changed. New tapes need to be purchased and old ones need to be retired. To achieve true business resilience, we need to store data off-site and this will cost at least £1,440 a year, plus our time managing that service.&lt;/li&gt;
	&lt;li&gt;We&lt;em&gt; don’t refer to the tape backups very often&lt;/em&gt;. We’ve been retaining data for several years but have only used tape to restore data a couple of times in the past few years, when it’s proven to be a lengthy experience.&lt;/li&gt;
&lt;/ul&gt;
If we keep going with tape we will need to replace the current tape library with a new one, as it has reached the end of its useful life; it was purchased in 2012 and is based around LTO5 and is out of manufacturer’s support.

The figures below are for a similar replacement: 2 drives in a library that has a capacity of 50 drives (which we currently have) but only licenced for 25 slots. We &lt;em&gt;will&lt;/em&gt; need to upgrade the slot licence at some point in the life-cycle but we could start with the 25 slot licence.

&lt;a href=&#34;https://www.span.com/product/Quantum-Scalar-i3-LSC33-CSE2-L8NA-3U-Control-Module-25-licensed-slots-2x-IBM-LTO-8-Drives-6Gb-SAS~62659&#34;&gt;Quantum i3 tape library&lt;/a&gt;. This would cost £13,068. We would stick with Quantum because we’re familiar with it, we know it is compatible with our hardware (e.g. it should just plug into the server the current library is using) and we know it is compatible with the Arcserve software.

We will also need &lt;a href=&#34;https://www.span.com/product/Quantum-Ultrium-LTO-8-Tape-MR-L8LQN-BC-20x-Library-pack-uncased-Custom-Pre-labelled-12TB-30TB~62908&#34;&gt;new tapes&lt;/a&gt;, fitting the new LTO 8 standard. To fill this library and have a complete set of replacements we will need three of the 20 tape library packs. The cost of these is £3,211 &lt;em&gt;each&lt;/em&gt;.

We will also need to continue the Arcserve licence, which will cost £11,996 &lt;em&gt;a year&lt;/em&gt;&lt;img class=&#34;alignnone size-full wp-image-864&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/tape-start-cost.png&#34; alt=&#34;tape start cost&#34; width=&#34;601&#34; height=&#34;90&#34;&gt;
&lt;u&gt;Ongoing costs&lt;/u&gt; would be the Arcserve licence and a box of tapes a year, so:&lt;img class=&#34;alignnone size-full wp-image-863&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/tape-on-cost.png&#34; alt=&#34;tape on cost&#34; width=&#34;606&#34; height=&#34;93&#34;&gt;

If we consider the tape library to have a 6-year life span, we can divide the cost of the initial purchase of tapes and tape library over the lifespan of the device to get £3,785.50 and add that to the yearly costs to say that it would cost us &lt;span style=&#34;color:#ff0000;&#34;&gt;£20,230.50&lt;/span&gt; a year to continue tape backups for the next 6 years.
&lt;h4&gt;Backup to the Cloud&lt;/h4&gt;
After some thought we decided to look at Azure for our backup storage provider, so the rest of this article talks about the cost of using Azure for backups. You might have better reasons to use AWS or someone else than we did, and the prices again should be taken as an indicator based on when the research was first done, not a guarantee of what you might pay yourself at the time of reading.

One thing that occurred to us with backup to the cloud is that we could use Microsoft System Center Data Protection Manager to manage our backups. This was a no-cost option for us due to the licence terms we already had with Microsoft. and this obviously makes a huge difference to the bottom line numbers.

&#34;Cloud backup&#34; is something of a marketing term. We’re going to continue to use it here, but it’s worth remembering that what we’re talking about is more formally referred to as “using Microsoft Azure Backup to store backups and replicas of our systems and data off-site in EU and UK data centres”.

With this proposal, we proposed deploying Microsoft’s backup software on-premise and have that create a backup of all our systems and data to an on-premises storage server. We will then choose to have some of these backups extended into the cloud so that they’re safely stored off-site.

Systems that will only be backed up on-site will be “non-essential”, which typically means services that can be relatively easily rebuild in the event of a major incident. Systems and data that will be backed up to the cloud will include systems that would be extremely difficult to reconstruct and/or data that would be impossible to re-create.

To give an example, the student CRM &#34;Front End&#34; server, which &lt;em&gt;only&lt;/em&gt; contains information about how to render CRM data would be backed up locally, as it would be trivial to reconstruct this after a major disaster. The data held and used by the CRM system, which is stored in one of our main database servers would be backed up to the cloud as part of the backup of the database server.
&lt;h4&gt;How does Azure work?&lt;/h4&gt;
Backup pricing in Azure is costed &lt;em&gt;fairly&lt;/em&gt; simply. You pay to use backup services to the tune of £7.50 a month for a 500Gb “instance”. This means that a basic application server that uses 200Gb of space will use 1 instance of £7.50 a month. A major file share server that uses 1200Gb of space will use 3 instances, £22.50 a month.

On top of this, we also pay for storage we use, depending on redundancy and tiers.

Redundancy levels refer to how Microsoft protect data stored in Azure. LRS, ZRS or GRS refers to how the data is replicated around the Azure infrastructure, and is explained in detail &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json&#34;&gt;here&lt;/a&gt;.

The choices for backup vaults seem to centre around LRS (Locally Replicated) and GRS (Globally Replicated). LRS means that the data is replicated only within the same datacentre, and GRS means that the data is replicated globally between several Microsoft data centres around the world, and costs more to use. We chose &#34;LRS&#34; for our backup vault as it seemed to us that the backup copy in Azure would be the &lt;em&gt;third&lt;/em&gt; copy of the data we would have in normal operating conditions (e.g. live working server, local backup, cloud backup) and that was good enough for us.

You should make your own assessment of your requirements and base your decision on that. For example, if we had an extensive cloud deployment of VMs with irreplaceable data on them it would make sense to consider globally replicating the backup vault for &lt;em&gt;that&lt;/em&gt; data with GRS, just in case...

&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers&#34;&gt;&lt;em&gt;Tiers&lt;/em&gt;&lt;/a&gt; relate to speed and ease of access, and are referred to as “Hot”, “Cool” and “Archive” tiers. Archive tier is designed to be written to often and read from rarely and is costed favourably to that model. As we’re anticipating keeping backups on-site and only using Azure storage for recovery from a major disaster, we’re proposing that all our backups are made to Archive storage. If we find we’re reading backups from cloud for one or two systems on a regular basis then those systems should be migrated to backup to the ‘cool’ tier.

&lt;img class=&#34;alignnone size-full wp-image-861&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/storage-pricing.png&#34; alt=&#34;storage pricing&#34; width=&#34;610&#34; height=&#34;103&#34;&gt;

We can combine the pricing per tier with the pricing per instance to get example pricing for the 200Gb application server we mentioned before. (Note that you pay for instances in 500Gb steps but pay for the precise storage you use per Gb.

So to backup the application server would cost £7.50 &lt;em&gt;plus&lt;/em&gt; archive storage (0.0017 * 200) £0.34 = &lt;em&gt;£7.84 per month.&lt;/em&gt;

To back up our example major file share server will use 3 instances (£22.50) plus archive storage (0.0017 * 1200) £2.04 = £24.52 per month.

With all this in mind, we looked at the data we would be moving off-site and felt that it should cost about £2900 to implement the project as a one-off cost in the first year, with storage costing £7000 p.a. assuming our storage space needs stay roughly neutral (1). This represents a notable saving in the first year and we&#39;ve gone down that road quite happily.

DPM could be a little less moody to work with, admittedly, but we can re-assess whether we wish to use other backup software to write to our Azure data vault in the future.

&lt;img class=&#34;alignnone size-full wp-image-862&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/backup.png&#34; alt=&#34;backup&#34; width=&#34;1300&#34; height=&#34;703&#34;&gt;

In terms of business continuity, by moving backups off-site we have some isolation not just from the obvious (and probably least likely) disasters that people think about when talking about this kind of thing but also from malware that hijacks local servers and encrypts or deletes data. You&#39;d have similar isolation from malware with tape of course, but you&#39;d still need to get the data off-site.

(1) Future storage requirements are an interesting one. Normally you anticipate growth when modelling storage and backup plans for the future but as we&#39;ve migrated all our mailboxes to Office 365 in the past and we&#39;ve just finished migrating our SharePoint sites in to Office 365 also, coupled with a strategy to push OneDrive for Business hard at our staff and students vs. our need for ever greater report generation and processing of CRM data, I can see our storage requirements staying neutral or even decreasing in terms of capacity, while the requirement for &lt;em&gt;faster&lt;/em&gt; storage to improve database performance increases.
</source:markdown>
    </item>
    
    <item>
      <title>Tuning up Intune - Self Service Password Reset from the login screen.</title>
      <link>https://itsalwaysmyproblem.com/2018/08/23/tuning-up-intune.html</link>
      <pubDate>Thu, 23 Aug 2018 13:28:19 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/08/23/tuning-up-intune.html</guid>
      <description>&lt;h1&gt;Introduction&lt;/h1&gt;One of the new features in Windows 10 1803 is the ability for &#34;local Active Directory&#34; Domain joined workstations to allow users to reset their password from the login screen. This was introduced for Azure Active Directory joined systems in Windows 10 1709.
&lt;p&gt;In this post I&amp;rsquo;m quickly going to run through what you need to do in order to configure this for your domain. I&amp;rsquo;m making the following assumptions:&lt;/p&gt;
&lt;ol&gt;
 	&lt;li&gt;You have Azure AD configured, and have sync working for local AD users to AAD.&lt;/li&gt;
 	&lt;li&gt;You have the correct Office 365/Azure Azure Active Directory Premium, Intune / Enterprise Management Suite &lt;a href=&#34;https://azure.microsoft.com/en-gb/pricing/details/active-directory/&#34;&gt;licences&lt;/a&gt; already enabled and assigned to users.&lt;/li&gt;
 	&lt;li&gt;You have configured Self Service Password Reset for your Azure AD Domain, including password writeback (e.g. your test users can use &lt;a href=&#34;https://aka.ms/sspr&#34;&gt;https://aka.ms/sspr&lt;/a&gt; to reset their password from a web page). If not, &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-sspr-writeback&#34;&gt;see here&lt;/a&gt;. SSPR from the login screen will not work if SSPR isn&#39;t already properly configured.&lt;/li&gt;
 	&lt;li&gt;You have some Windows 10 1803 devices joined to your domain for testing.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;In order to configure SSPR on the Windows 10 login screen you will need to do the following:
&lt;ol&gt;
 	&lt;li&gt;Configure Hybrid Azure AD join for your target computers.&lt;/li&gt;
 	&lt;li&gt;Configure your devices to be managed by Intune, Microsoft&#39;s MDM component in Office 365/Azure Active Directory.&lt;/li&gt;
 	&lt;li&gt;Configure a couple of Intune Profiles with settings for your target computers, and apply these to the test computers.&lt;/li&gt;
 	&lt;li&gt;Assign your Intune SSPR profiles to your target computers.&lt;/li&gt;
 	&lt;li&gt;Test... and you&#39;re (hopefully) done.&lt;/li&gt;
 	&lt;li&gt;Troubleshooting&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Configuring Hybrid Azure AD Join&lt;/h2&gt;As you probably know if you&#39;re the kind of person who reads IT techie posts past the first few paragraphs, in order to manage computers in a traditional enterprise network, you would join them to a directory service such as Active Directory (AD), which would give you a central place to create and configure users to log on to those computers, along with settings for your users and devices. As you &lt;em&gt;probably&lt;/em&gt; know if you&#39;re looking at an article on configuring Microsoft Intune, you can also have users and devices connected to Azure Active Directory (AAD), which allows you to create and manage computers and users in AAD.
&lt;p&gt;It&amp;rsquo;s been possible with a variety of tools over the years to synchronise user accounts between your on-premise AD and AAD. This has typically been used to move user mailboxes to the Exchange Online component of Office 365 without having to maintain two different accounts for the same user, as this would be a huge pain for both the users and the IT department. The current tool that Microsoft provide for synchronising account details between AD and AAD is known as AD Connect. At the time of writing, the current version is 1.1.888.0, which was released to fix a really annoying bug with high CPU use in AD Connect 1.1.819.0.&lt;/p&gt;
&lt;p&gt;From the release of &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/devices/hybrid-azuread-join-plan&#34;&gt;AD Connect 1.1.819.0&lt;/a&gt;, Microsoft have greatly simplified &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/devices/hybrid-azuread-join-manual-steps&#34;&gt;the configuration of Hybrid AAD join&lt;/a&gt;, enabling you to complete all of the configuration steps from the AD Connect wizard in most cases. I&amp;rsquo;ve used this to configure our Hybrid AAD join and it did everything for me, including re-configuring our AD FS farm correctly which I know scares more than a few people away from configuring Hybrid AAD join.&lt;/p&gt;
&lt;p&gt;There are lots of good reasons to keep your AD Connect setup up-to-date and this is one more very important reason among other good reasons such as enabling automatic updates, general bug and performance fixes, etc. You can review the AD Connect release notes and version history and grab the latest copy from &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-version-history&#34;&gt;here&lt;/a&gt;, and if you use AD Connect at all I strongly suggest that you do so every few months.&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve configured Hybrid AAD join and allowed time/triggered an update in whatever method you&amp;rsquo;re using, you can verify that computers from Active Directory are being imported into AAD by opening your Azure Active Directory Portal, going to all devices and searching for a computer you know should be synchronised.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/aad-all-devices.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/aad-all-devices.png?w=1024&#34; class=&#34;wp-image-833 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;364&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hopefully you will find your device is now visible in AAD. Check the join type and it should say &amp;ldquo;Hybrid Azure AD joined&amp;rdquo;. This means that this has been syncronised from your local AD. If you&amp;rsquo;re doing this via AD Connect you should also be able to open the AD Connect &lt;em&gt;Synchronization Service&lt;/em&gt; &lt;em&gt;Manager&lt;/em&gt; and see the devices you&amp;rsquo;ve chosen to sync included as &amp;ldquo;Adds&amp;rdquo; in what will probably a fairly hefty Delta import job.&lt;/p&gt;
&lt;h2&gt;Configure your devices to be managed by Intune.&lt;/h2&gt;The next step after getting the devices in to AAD is to have them managed by Intune. If you&#39;re following this along with me, you&#39;ll need to configure Intune to act as your MDM Authority for the target devices and then use Intune to manage settings related to SSPR on those devices.
&lt;h3&gt;Enabling Intune&lt;/h3&gt;To enable Intune, if you&#39;ve not done so already, go to your &lt;a href=&#34;https://portal.azure.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Azure Portal&lt;/a&gt;, open Azure Active Directory and select &#34;Mobility (MDM and MAM)&#34;. From here, select &#34;Microsoft Intune&#34;. The Configuration options for Intune will appear.
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/mam_and_mdm.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/mam_and_mdm.png&#34; class=&#34;alignnone wp-image-839 size-full&#34; height=&#34;549&#34; alt=&#34;mam_and_mdm&#34; width=&#34;805&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note the two options for MDM (Mobile Device Management) and MAM (Mobile Application Management). If that confuses you then you&amp;rsquo;re not alone but broadly speaking, the difference is that MDM is targeted to managing &lt;em&gt;devices&lt;/em&gt; that your org controls and MAM is targeted to managing &lt;em&gt;Applications and data,&lt;/em&gt; whether or not you control the device.&lt;/p&gt;
&lt;p&gt;The main thing to consider for what we&amp;rsquo;re talking about here is that your MAM and MDM scopes cannot overlap. Users and devices need to be managed by one or the other and there cannot be a clash. You can choose to work with just MDM as in the example above where the scope for MDM is set to &amp;ldquo;All&amp;rdquo; and the MAM scope is set to &amp;ldquo;None&amp;rdquo;, or you can choose to just target some users and devices for MDM and target some others for MAM by selecting &amp;ldquo;Some&amp;rdquo; and targeting groups for MDM and MAM respectively.&lt;/p&gt;
&lt;p&gt;To add the Intune to your Azure portal shortcuts the way I&amp;rsquo;ve done here, go to &amp;ldquo;All Services&amp;rdquo;, search for &amp;ldquo;Intune&amp;rdquo; and &amp;ldquo;star&amp;rdquo; it as a favourite. Then drag to where you want it in your list.&lt;/p&gt;
&lt;h3&gt;Enrolling a device in Intune&lt;/h3&gt;In Azure Active Directory, create some test groups for users and devices you wish to target for Intune, and populate them with your test subjects. Being able to see computer accounts in AAD and assign them to groups is another test of the Hybrid Azure AD Join, by the way.
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/groups.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/groups.png?w=1024&#34; class=&#34;alignnone wp-image-840 size-large&#34; width=&#34;1024&#34; height=&#34;415&#34; alt=&#34;groups&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this example we have two groups for test devices, one that we&amp;rsquo;re using to apply general Windows 10 device profiles, and one that we&amp;rsquo;re using specifically to test SSPR.&lt;/p&gt;
&lt;p&gt;Next,  go to Intune to enroll your devices. From the main Intune home screen, select &amp;ldquo;Device Enrollment&amp;rdquo; and verify that your Tenant name looks right, that your MDM authority is set to Intune and your account status is Active.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-home.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-home.png?w=1024&#34; class=&#34;alignnone size-large wp-image-841&#34; width=&#34;1024&#34; height=&#34;595&#34; alt=&#34;intune home&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With that all in order, return to Intune Home, then go to Device Compliance, then Policies, then click &amp;ldquo;Create Policy&amp;rdquo;. Create a policy by giving it a name, setting the platform to target Windows 10 and later, and working through Device Health, Device Properties, System Security and Windows Defender ATP settings.Still in your policy, choose Assignments and under &amp;ldquo;Include&amp;rdquo;, assign your target &lt;em&gt;users (&lt;/em&gt;either &amp;ldquo;All Users&amp;rdquo; or a previously created and populated group of test users).&lt;/p&gt;
&lt;p&gt;Doing this will ensure you will get a view of the &amp;ldquo;device health&amp;rdquo; of devices that enroll into Intune.&lt;/p&gt;
&lt;p&gt;Now we&amp;rsquo;ve done the following:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Enabled Azure AD Hybrid Join for our on-prem Windows 10 devices, and verified that&#39;s worked.&lt;/li&gt;
 	&lt;li&gt;Enabled Intune and configured it to enroll our Windows 10 devices.&lt;/li&gt;
&lt;/ul&gt;We are now ready for the next step, configuring Auto-MDM enrollment group policy settings in our local AD.
&lt;ul&gt;
 	&lt;li&gt;Move your test devices to their own OU in Active Directory.&lt;/li&gt;
 	&lt;li&gt;Create and link a new GPO to this OU.&lt;/li&gt;
 	&lt;li&gt;In the GPO, open Computer Configuration, Policies, Administrative Templates, Windows Components, MDM.&lt;/li&gt;
 	&lt;li&gt;Set &#34;Auto MDM Enrollment with AAD Token&#34; to Enabled.&lt;/li&gt;
 	&lt;li&gt;(If you&#39;ve got it set to Enabled elsewhere) also set &#34;Disable MDM Enrollment&#34; to &#34;Disabled&#34;.&lt;/li&gt;
&lt;/ul&gt;For more information about this process, see &lt;a href=&#34;https://docs.microsoft.com/en-us/windows/client-management/mdm/enroll-a-windows-10-device-automatically-using-group-policy&#34;&gt;this Microsoft article&lt;/a&gt;.
&lt;p&gt;This will now create a set of scheduled tasks on each computer in that OU that will attempt to enroll that device into Intune.&lt;/p&gt;
&lt;p&gt;You can view these tasks in Task Scheduler, Microsoft, Windows, EnterpriseMgmt,{guid}. You can view how these tasks are behaving in the event viewer, under Applications and Services Logs, Microsoft, Windows, DeviceManagement-Enterprise-Diagnostics-Provider.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s normal to see a few errors here during the first attempts to connect to Intune, which are typically Event ID 76 messages in the Admin log here. All being well they should settle down and you should see successful enrollment messages (Event ID 72 and 75).&lt;/p&gt;
&lt;p&gt;If not, check your network firewall isn&amp;rsquo;t preventing your devices from reaching the URLs/IPs mentioned in &lt;a href=&#34;https://docs.microsoft.com/en-us/intune/network-bandwidth-use&#34;&gt;this article&lt;/a&gt;. If you&amp;rsquo;re still having trouble, I&amp;rsquo;ve found the &lt;a href=&#34;https://foxdeploy.com/2017/08/04/mdm-errors-failures-and-how-to-fix-them/&#34;&gt;foxdeploy article&lt;/a&gt; on Intune enrollment troubleshooting to be very useful.&lt;/p&gt;
&lt;p&gt;Once you have this working you can verify that the Intune console can see the device by going to Intune home, Devices, All Devices and searching for the device name.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-all-devices.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-all-devices.png?w=1024&#34; class=&#34;alignnone wp-image-842 size-large&#34; width=&#34;1024&#34; height=&#34;275&#34; alt=&#34;intune all devices&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the example above, devices 10370, 10745 and 10868 are all working correctly. They&amp;rsquo;re imported into Azure AD correctly and they&amp;rsquo;ve successfully run the MDM auto-enrollment task, changed their management authority to Intune and applied the compliance policy.&lt;/p&gt;
&lt;p&gt;10758 is an example of a problem you might have in a mixed SCCM/Intune environment where a machine has failed to change its MDM authority to Intune because it has the SCCM agent on it. I&amp;rsquo;ll be discussing how to fix that in another article.&lt;/p&gt;
&lt;h2&gt;Testing Intune Profile Management.&lt;/h2&gt;Before we proceed with deploying SSPR settings, it&#39;s wise to apply a test Intune profile and make sure that behaves as expected. Device or User profiles are how you apply settings to target
&lt;p&gt;You don&amp;rsquo;t have to do this but if you&amp;rsquo;re new to Intune then it&amp;rsquo;s a good idea to make sure you&amp;rsquo;re comfortable with applying a harmless setting before pushing out something that might cause issues.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re going to push out a profile to change the desktop wallpaper on managed computers. To do this, go to Intune Home, Device Configuration and Profiles. Select Create Profile. Give your profile a name and select &amp;ldquo;Windows 10 and later&amp;rdquo; under Platform. Under Profile type, select &amp;ldquo;Device Restrictions&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Under Device Restrictions, Select Locked Screen Experience and put in a URL that links directly to a &lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/rsqy3gl.jpg&#34;&gt;suitable&lt;/a&gt; graphics file.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-locked-screen-experience.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-locked-screen-experience.png?w=1024&#34; class=&#34;wp-image-849 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;303&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Click OK to close the Personalization window, Click OK to close Device Restrictions then on your profile&amp;rsquo;s property page, click &amp;ldquo;Save&amp;rdquo; to save the profile.&lt;/p&gt;
&lt;p&gt;Now we need to assign the policy. Click Assignments, choose an appropriate target device group under &amp;ldquo;Include&amp;rdquo; and click Save again. You may want to choose a more modest scope for your test deployment than I&amp;rsquo;m using below, though &amp;ldquo;All Users &amp;amp; All Devices&amp;rdquo; here does only refer to objects that are already enrolled in Intune.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note that the setting we&amp;rsquo;ve changed, the login screen wallpaper basically, applies to &lt;em&gt;devices&lt;/em&gt;. We need to test our ability to target devices rather than users, as SSPR is also a change to the &lt;em&gt;device&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-profile-assignment.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-profile-assignment.png&#34; class=&#34;alignnone size-full wp-image-845&#34; height=&#34;253&#34; alt=&#34;intune profile assignment&#34; width=&#34;833&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now we &lt;a href=&#34;https://www.youtube.com/watch?v=9JVNMmsN3Co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;play the waiting game&lt;/a&gt; while we wait for the test devices to receive and apply the updated profile.&lt;/p&gt;
&lt;h2&gt;Assign your Intune SSPR profiles to your target computers.&lt;/h2&gt;Now we&#39;ve proven that we can control Windows 10 devices via Intune and push profiles down and see them apply, we can create a couple of profiles to enable SSPR.
&lt;p&gt;There are two items to push down to your test devices, and each will require its own profile. Note that we are pushing these profiles down to groups of &lt;em&gt;devices&lt;/em&gt;, not people. We are changing the way the devices work, not configuring user options.&lt;/p&gt;
&lt;h4&gt;Creating your Windows 10 SSPR Device Configuration profile.&lt;/h4&gt;Go in to Device Configuration and create a new Intune profile as before, selecting Windows 10 and later for the Platform, and Custom for the Profile Type.
&lt;p&gt;We will now create a custom &lt;a href=&#34;https://docs.microsoft.com/en-us/intune/custom-settings-windows-10&#34;&gt;OMA-URI&lt;/a&gt; setting under the Settings tab.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-oma-uri.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-oma-uri.png?w=1024&#34; class=&#34;alignnone wp-image-846 size-large&#34; width=&#34;1024&#34; height=&#34;278&#34; alt=&#34;intune oma-uri&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Give the setting a meaningful name. Or not, it&#39;s not me who has to document it later.&lt;/li&gt;
 	&lt;li&gt;For OMA-URI, put &lt;em&gt;./Vendor/MSFT/Policy/Config/Authentication/AllowAadPasswordReset&lt;/em&gt;
&lt;/li&gt;
 	&lt;li&gt;For Data type select Integer&lt;/li&gt;
 	&lt;li&gt;For Value, type 1.&lt;/li&gt;
 	&lt;li&gt;OK out of this setting and save the profile.&lt;/li&gt;
 	&lt;li&gt;Under Assignments, assign this profile to your target devices.&lt;/li&gt;
 	&lt;li&gt;Save this profile and now you&#39;re ready for the next part.&lt;/li&gt;
&lt;/ul&gt;The next setting we need to deliver is a registry change. There&#39;s a number of ways to do this but I&#39;m going to walk through making the change via Intune, because I feel it makes sense to keep as much of the deployment settings in one place as possible, but if you have a preferred method for delivering registry changes to devices then go for it.
&lt;p&gt;Create a powershell .ps1 file with the code below in it and give it a sensible name:&lt;/p&gt;
&lt;blockquote&gt;#
# Rob 22/8/2018 Adds SSPR registry entry to Windows 10 computers (see [docs.microsoft.com/en-us/azu...](https://docs.microsoft.com/en-us/azure/active-directory/authentication/tutorial-sspr-windows))
# This script will create the registry path, key and value if they&#39;re not present. If it&#39;s present, it will update the value to ensure it&#39;s correct.
#
$registryPath = &#34;HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount&#34;
$Name = &#34;AllowPasswordReset&#34;
$value = &#34;1&#34;
IF(!(Test-Path $registryPath))
{
New-Item -Path $registryPath -Force | Out-Null
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null}
&lt;p&gt;ELSE {
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null}&lt;/p&gt;
&lt;/blockquote&gt;From Device Configuration, open PowerShell Scripts and choose &#34;Add&#34;. Give the PowerShell script profile a sensible name like &#34;SSPR Registry Setting&#34; and upload the .ps1 file we created previously.
&lt;p&gt;Under Settings, ensure that both &amp;ldquo;Run this script using logged on credentials&amp;rdquo; and &amp;ldquo;Enforce script signature check&amp;rdquo; are set to No. Once you&amp;rsquo;ve created the profile, assign it to your test machine group the same as we did for the OMA-URI profile.&lt;/p&gt;
&lt;p&gt;If you want to create the registry key by other means, the path you want is: &lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AzureADAccount&lt;/em&gt; (you may need to create the &amp;ldquo;AzureADAccount&amp;rdquo; key. You need to create a dword entry named &amp;ldquo;&lt;em&gt;AllowPasswordReset&lt;/em&gt;&amp;rdquo; here and assign the value &amp;ldquo;1&amp;rdquo; to it.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. Once the profiles we&amp;rsquo;ve just created have applied to your test machines, that&lt;strong&gt; in theory&lt;/strong&gt; is all you need to do.&lt;/p&gt;
&lt;h2&gt;Test... and you&#39;re (hopefully) done.&lt;/h2&gt;If all is well, you should see &#34;Reset Password&#34; under the normal Windows Login dialogue.
&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/login.jpg&#34; class=&#34;alignnone wp-image-847 size-full&#34; height=&#34;3024&#34; alt=&#34;login&#34; width=&#34;4032&#34;&gt;
&lt;p&gt;Select this and you should hopefully be taken through a SSPR interface that is similar to the web page SSPR process. Assuming this happens and it completes without errors, congratulations, you&amp;rsquo;ve read a fairly long blog post &lt;em&gt;and&lt;/em&gt; configured SSPR for your AD devices. I&amp;rsquo;d call that a decent job!&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;We&#39;re making the assumption at this point that you&#39;ve got devices enrolled successfully in to Intune.
&lt;h4&gt;No Reset Password link appears.&lt;/h4&gt;If the Reset Password link does not appear, this suggests the settings we created in the profiles above are either incorrect or are not being applied correctly. This is why assigning a test profile for something harmless like wallpaper is a good idea before trying to roll out more complex settings, so if you haven&#39;t done that already, try creating that test profile now, assign it to the same machine groups as your SSPR profiles and check that it applies as expected.
&lt;p&gt;To further troubleshoot, we can look at the profile we&amp;rsquo;ve created for SSPR, by going to Intune Home, Device Configuration, then Profiles. Now select the SSPR profile and you should be taken to the overview screen for this profile. In an ideal world this would be a nice big green circle like our example, showing that the target devices have all applied the profile correctly.&lt;/p&gt;
&lt;p&gt;If there&amp;rsquo;s an issue here, you should see a colour coded entry to tell you what went wrong.&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/sspr-status-1.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/sspr-status-1.png?w=1024&#34; class=&#34;wp-image-850 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;560&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can troubleshoot the powershell script profile in a similar way. You can also run regedit on a target machine and look for the registry entry (&lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AzureADAccount&lt;/em&gt;). If it&amp;rsquo;s not there and you don&amp;rsquo;t want to delay testing of SSPR you can then also cheat a little by manually creating the entry using the notes in the previous section.&lt;/p&gt;
&lt;h4&gt;Reset Password link is there but does not work.&lt;/h4&gt;I&#39;ve had some fun with this. It appears that SSPR on the desktop is rather sensitive to GPOs that change the login experience in any way. A symptom of this is that the Reset Password button appears, but clicking it doesn&#39;t result in the expected login to the SSPR recover page and instead you just get dropped back to the login screen.
&lt;p&gt;After a very long twitter conversation with Nick Wiley (@npwiley), in which we&amp;rsquo;ve discovered that we&amp;rsquo;ve both got things working by setting directly opposite settings at one point, I&amp;rsquo;m just thinking that the best approach is to not attempt to manage the login experience with GPOs at all and just use modern management. (See below for twitter thread.)&lt;/p&gt;
&lt;p&gt;So, this is something of an uncertain ground. From Nick&amp;rsquo;s tests (he&amp;rsquo;s done more of the heavy lifting here than I have, and deserves the credit), the main policy/setting to worry about at the login screen is the policy that blocks app notifications.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/npwiley/status/1022864616102219778&#34;&gt;twitter.com/npwiley/s&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/RobertoMoir/status/1032198736569683968&#34;&gt;twitter.com/RobertoMo&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/RobertoMoir/status/1032381736322195456&#34;&gt;twitter.com/RobertoMo&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/npwiley/status/1032422638495379457&#34;&gt;twitter.com/npwiley/s&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/npwiley/status/1032616389239037953&#34;&gt;twitter.com/npwiley/s&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/npwiley/status/1032619101322203143&#34;&gt;twitter.com/npwiley/s&amp;hellip;&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>&lt;h1&gt;Introduction&lt;/h1&gt;One of the new features in Windows 10 1803 is the ability for &#34;local Active Directory&#34; Domain joined workstations to allow users to reset their password from the login screen. This was introduced for Azure Active Directory joined systems in Windows 10 1709.

In this post I&#39;m quickly going to run through what you need to do in order to configure this for your domain. I&#39;m making the following assumptions:
&lt;ol&gt;
 	&lt;li&gt;You have Azure AD configured, and have sync working for local AD users to AAD.&lt;/li&gt;
 	&lt;li&gt;You have the correct Office 365/Azure Azure Active Directory Premium, Intune / Enterprise Management Suite &lt;a href=&#34;https://azure.microsoft.com/en-gb/pricing/details/active-directory/&#34;&gt;licences&lt;/a&gt; already enabled and assigned to users.&lt;/li&gt;
 	&lt;li&gt;You have configured Self Service Password Reset for your Azure AD Domain, including password writeback (e.g. your test users can use &lt;a href=&#34;https://aka.ms/sspr&#34;&gt;https://aka.ms/sspr&lt;/a&gt; to reset their password from a web page). If not, &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-sspr-writeback&#34;&gt;see here&lt;/a&gt;. SSPR from the login screen will not work if SSPR isn&#39;t already properly configured.&lt;/li&gt;
 	&lt;li&gt;You have some Windows 10 1803 devices joined to your domain for testing.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;In order to configure SSPR on the Windows 10 login screen you will need to do the following:
&lt;ol&gt;
 	&lt;li&gt;Configure Hybrid Azure AD join for your target computers.&lt;/li&gt;
 	&lt;li&gt;Configure your devices to be managed by Intune, Microsoft&#39;s MDM component in Office 365/Azure Active Directory.&lt;/li&gt;
 	&lt;li&gt;Configure a couple of Intune Profiles with settings for your target computers, and apply these to the test computers.&lt;/li&gt;
 	&lt;li&gt;Assign your Intune SSPR profiles to your target computers.&lt;/li&gt;
 	&lt;li&gt;Test... and you&#39;re (hopefully) done.&lt;/li&gt;
 	&lt;li&gt;Troubleshooting&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Configuring Hybrid Azure AD Join&lt;/h2&gt;As you probably know if you&#39;re the kind of person who reads IT techie posts past the first few paragraphs, in order to manage computers in a traditional enterprise network, you would join them to a directory service such as Active Directory (AD), which would give you a central place to create and configure users to log on to those computers, along with settings for your users and devices. As you &lt;em&gt;probably&lt;/em&gt; know if you&#39;re looking at an article on configuring Microsoft Intune, you can also have users and devices connected to Azure Active Directory (AAD), which allows you to create and manage computers and users in AAD.

It&#39;s been possible with a variety of tools over the years to synchronise user accounts between your on-premise AD and AAD. This has typically been used to move user mailboxes to the Exchange Online component of Office 365 without having to maintain two different accounts for the same user, as this would be a huge pain for both the users and the IT department. The current tool that Microsoft provide for synchronising account details between AD and AAD is known as AD Connect. At the time of writing, the current version is 1.1.888.0, which was released to fix a really annoying bug with high CPU use in AD Connect 1.1.819.0.

From the release of &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/devices/hybrid-azuread-join-plan&#34;&gt;AD Connect 1.1.819.0&lt;/a&gt;, Microsoft have greatly simplified &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/devices/hybrid-azuread-join-manual-steps&#34;&gt;the configuration of Hybrid AAD join&lt;/a&gt;, enabling you to complete all of the configuration steps from the AD Connect wizard in most cases. I&#39;ve used this to configure our Hybrid AAD join and it did everything for me, including re-configuring our AD FS farm correctly which I know scares more than a few people away from configuring Hybrid AAD join.

There are lots of good reasons to keep your AD Connect setup up-to-date and this is one more very important reason among other good reasons such as enabling automatic updates, general bug and performance fixes, etc. You can review the AD Connect release notes and version history and grab the latest copy from &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-version-history&#34;&gt;here&lt;/a&gt;, and if you use AD Connect at all I strongly suggest that you do so every few months.

Once you&#39;ve configured Hybrid AAD join and allowed time/triggered an update in whatever method you&#39;re using, you can verify that computers from Active Directory are being imported into AAD by opening your Azure Active Directory Portal, going to all devices and searching for a computer you know should be synchronised.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/aad-all-devices.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/aad-all-devices.png?w=1024&#34; class=&#34;wp-image-833 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;364&#34; alt=&#34;&#34;&gt;&lt;/a&gt;

Hopefully you will find your device is now visible in AAD. Check the join type and it should say &#34;Hybrid Azure AD joined&#34;. This means that this has been syncronised from your local AD. If you&#39;re doing this via AD Connect you should also be able to open the AD Connect &lt;em&gt;Synchronization Service&lt;/em&gt; &lt;em&gt;Manager&lt;/em&gt; and see the devices you&#39;ve chosen to sync included as &#34;Adds&#34; in what will probably a fairly hefty Delta import job.
&lt;h2&gt;Configure your devices to be managed by Intune.&lt;/h2&gt;The next step after getting the devices in to AAD is to have them managed by Intune. If you&#39;re following this along with me, you&#39;ll need to configure Intune to act as your MDM Authority for the target devices and then use Intune to manage settings related to SSPR on those devices.
&lt;h3&gt;Enabling Intune&lt;/h3&gt;To enable Intune, if you&#39;ve not done so already, go to your &lt;a href=&#34;https://portal.azure.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Azure Portal&lt;/a&gt;, open Azure Active Directory and select &#34;Mobility (MDM and MAM)&#34;. From here, select &#34;Microsoft Intune&#34;. The Configuration options for Intune will appear.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/mam_and_mdm.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/mam_and_mdm.png&#34; class=&#34;alignnone wp-image-839 size-full&#34; height=&#34;549&#34; alt=&#34;mam_and_mdm&#34; width=&#34;805&#34;&gt;&lt;/a&gt;

Note the two options for MDM (Mobile Device Management) and MAM (Mobile Application Management). If that confuses you then you&#39;re not alone but broadly speaking, the difference is that MDM is targeted to managing &lt;em&gt;devices&lt;/em&gt; that your org controls and MAM is targeted to managing &lt;em&gt;Applications and data,&lt;/em&gt; whether or not you control the device.

The main thing to consider for what we&#39;re talking about here is that your MAM and MDM scopes cannot overlap. Users and devices need to be managed by one or the other and there cannot be a clash. You can choose to work with just MDM as in the example above where the scope for MDM is set to &#34;All&#34; and the MAM scope is set to &#34;None&#34;, or you can choose to just target some users and devices for MDM and target some others for MAM by selecting &#34;Some&#34; and targeting groups for MDM and MAM respectively.

To add the Intune to your Azure portal shortcuts the way I&#39;ve done here, go to &#34;All Services&#34;, search for &#34;Intune&#34; and &#34;star&#34; it as a favourite. Then drag to where you want it in your list.
&lt;h3&gt;Enrolling a device in Intune&lt;/h3&gt;In Azure Active Directory, create some test groups for users and devices you wish to target for Intune, and populate them with your test subjects. Being able to see computer accounts in AAD and assign them to groups is another test of the Hybrid Azure AD Join, by the way.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/groups.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/groups.png?w=1024&#34; class=&#34;alignnone wp-image-840 size-large&#34; width=&#34;1024&#34; height=&#34;415&#34; alt=&#34;groups&#34;&gt;&lt;/a&gt;

In this example we have two groups for test devices, one that we&#39;re using to apply general Windows 10 device profiles, and one that we&#39;re using specifically to test SSPR.

Next,  go to Intune to enroll your devices. From the main Intune home screen, select &#34;Device Enrollment&#34; and verify that your Tenant name looks right, that your MDM authority is set to Intune and your account status is Active.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-home.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-home.png?w=1024&#34; class=&#34;alignnone size-large wp-image-841&#34; width=&#34;1024&#34; height=&#34;595&#34; alt=&#34;intune home&#34;&gt;&lt;/a&gt;

With that all in order, return to Intune Home, then go to Device Compliance, then Policies, then click &#34;Create Policy&#34;. Create a policy by giving it a name, setting the platform to target Windows 10 and later, and working through Device Health, Device Properties, System Security and Windows Defender ATP settings.Still in your policy, choose Assignments and under &#34;Include&#34;, assign your target &lt;em&gt;users (&lt;/em&gt;either &#34;All Users&#34; or a previously created and populated group of test users).

Doing this will ensure you will get a view of the &#34;device health&#34; of devices that enroll into Intune.

Now we&#39;ve done the following:
&lt;ul&gt;
 	&lt;li&gt;Enabled Azure AD Hybrid Join for our on-prem Windows 10 devices, and verified that&#39;s worked.&lt;/li&gt;
 	&lt;li&gt;Enabled Intune and configured it to enroll our Windows 10 devices.&lt;/li&gt;
&lt;/ul&gt;We are now ready for the next step, configuring Auto-MDM enrollment group policy settings in our local AD.
&lt;ul&gt;
 	&lt;li&gt;Move your test devices to their own OU in Active Directory.&lt;/li&gt;
 	&lt;li&gt;Create and link a new GPO to this OU.&lt;/li&gt;
 	&lt;li&gt;In the GPO, open Computer Configuration, Policies, Administrative Templates, Windows Components, MDM.&lt;/li&gt;
 	&lt;li&gt;Set &#34;Auto MDM Enrollment with AAD Token&#34; to Enabled.&lt;/li&gt;
 	&lt;li&gt;(If you&#39;ve got it set to Enabled elsewhere) also set &#34;Disable MDM Enrollment&#34; to &#34;Disabled&#34;.&lt;/li&gt;
&lt;/ul&gt;For more information about this process, see &lt;a href=&#34;https://docs.microsoft.com/en-us/windows/client-management/mdm/enroll-a-windows-10-device-automatically-using-group-policy&#34;&gt;this Microsoft article&lt;/a&gt;.

This will now create a set of scheduled tasks on each computer in that OU that will attempt to enroll that device into Intune.

You can view these tasks in Task Scheduler, Microsoft, Windows, EnterpriseMgmt,{guid}. You can view how these tasks are behaving in the event viewer, under Applications and Services Logs, Microsoft, Windows, DeviceManagement-Enterprise-Diagnostics-Provider.

It&#39;s normal to see a few errors here during the first attempts to connect to Intune, which are typically Event ID 76 messages in the Admin log here. All being well they should settle down and you should see successful enrollment messages (Event ID 72 and 75).

If not, check your network firewall isn&#39;t preventing your devices from reaching the URLs/IPs mentioned in &lt;a href=&#34;https://docs.microsoft.com/en-us/intune/network-bandwidth-use&#34;&gt;this article&lt;/a&gt;. If you&#39;re still having trouble, I&#39;ve found the &lt;a href=&#34;https://foxdeploy.com/2017/08/04/mdm-errors-failures-and-how-to-fix-them/&#34;&gt;foxdeploy article&lt;/a&gt; on Intune enrollment troubleshooting to be very useful.

Once you have this working you can verify that the Intune console can see the device by going to Intune home, Devices, All Devices and searching for the device name.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-all-devices.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-all-devices.png?w=1024&#34; class=&#34;alignnone wp-image-842 size-large&#34; width=&#34;1024&#34; height=&#34;275&#34; alt=&#34;intune all devices&#34;&gt;&lt;/a&gt;

In the example above, devices 10370, 10745 and 10868 are all working correctly. They&#39;re imported into Azure AD correctly and they&#39;ve successfully run the MDM auto-enrollment task, changed their management authority to Intune and applied the compliance policy.

10758 is an example of a problem you might have in a mixed SCCM/Intune environment where a machine has failed to change its MDM authority to Intune because it has the SCCM agent on it. I&#39;ll be discussing how to fix that in another article.
&lt;h2&gt;Testing Intune Profile Management.&lt;/h2&gt;Before we proceed with deploying SSPR settings, it&#39;s wise to apply a test Intune profile and make sure that behaves as expected. Device or User profiles are how you apply settings to target

You don&#39;t have to do this but if you&#39;re new to Intune then it&#39;s a good idea to make sure you&#39;re comfortable with applying a harmless setting before pushing out something that might cause issues.

We&#39;re going to push out a profile to change the desktop wallpaper on managed computers. To do this, go to Intune Home, Device Configuration and Profiles. Select Create Profile. Give your profile a name and select &#34;Windows 10 and later&#34; under Platform. Under Profile type, select &#34;Device Restrictions&#34;.

Under Device Restrictions, Select Locked Screen Experience and put in a URL that links directly to a &lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/rsqy3gl.jpg&#34;&gt;suitable&lt;/a&gt; graphics file.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-locked-screen-experience.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-locked-screen-experience.png?w=1024&#34; class=&#34;wp-image-849 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;303&#34; alt=&#34;&#34;&gt;&lt;/a&gt;

Click OK to close the Personalization window, Click OK to close Device Restrictions then on your profile&#39;s property page, click &#34;Save&#34; to save the profile.

Now we need to assign the policy. Click Assignments, choose an appropriate target device group under &#34;Include&#34; and click Save again. You may want to choose a more modest scope for your test deployment than I&#39;m using below, though &#34;All Users &amp;amp; All Devices&#34; here does only refer to objects that are already enrolled in Intune.

&lt;strong&gt;Note that the setting we&#39;ve changed, the login screen wallpaper basically, applies to &lt;em&gt;devices&lt;/em&gt;. We need to test our ability to target devices rather than users, as SSPR is also a change to the &lt;em&gt;device&lt;/em&gt;.&lt;/strong&gt;

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-profile-assignment.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-profile-assignment.png&#34; class=&#34;alignnone size-full wp-image-845&#34; height=&#34;253&#34; alt=&#34;intune profile assignment&#34; width=&#34;833&#34;&gt;&lt;/a&gt;

Now we &lt;a href=&#34;https://www.youtube.com/watch?v=9JVNMmsN3Co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;play the waiting game&lt;/a&gt; while we wait for the test devices to receive and apply the updated profile.
&lt;h2&gt;Assign your Intune SSPR profiles to your target computers.&lt;/h2&gt;Now we&#39;ve proven that we can control Windows 10 devices via Intune and push profiles down and see them apply, we can create a couple of profiles to enable SSPR.

There are two items to push down to your test devices, and each will require its own profile. Note that we are pushing these profiles down to groups of &lt;em&gt;devices&lt;/em&gt;, not people. We are changing the way the devices work, not configuring user options.
&lt;h4&gt;Creating your Windows 10 SSPR Device Configuration profile.&lt;/h4&gt;Go in to Device Configuration and create a new Intune profile as before, selecting Windows 10 and later for the Platform, and Custom for the Profile Type.

We will now create a custom &lt;a href=&#34;https://docs.microsoft.com/en-us/intune/custom-settings-windows-10&#34;&gt;OMA-URI&lt;/a&gt; setting under the Settings tab.

&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-oma-uri.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/intune-oma-uri.png?w=1024&#34; class=&#34;alignnone wp-image-846 size-large&#34; width=&#34;1024&#34; height=&#34;278&#34; alt=&#34;intune oma-uri&#34;&gt;&lt;/a&gt;
&lt;ul&gt;
 	&lt;li&gt;Give the setting a meaningful name. Or not, it&#39;s not me who has to document it later.&lt;/li&gt;
 	&lt;li&gt;For OMA-URI, put &lt;em&gt;./Vendor/MSFT/Policy/Config/Authentication/AllowAadPasswordReset&lt;/em&gt;
&lt;/li&gt;
 	&lt;li&gt;For Data type select Integer&lt;/li&gt;
 	&lt;li&gt;For Value, type 1.&lt;/li&gt;
 	&lt;li&gt;OK out of this setting and save the profile.&lt;/li&gt;
 	&lt;li&gt;Under Assignments, assign this profile to your target devices.&lt;/li&gt;
 	&lt;li&gt;Save this profile and now you&#39;re ready for the next part.&lt;/li&gt;
&lt;/ul&gt;The next setting we need to deliver is a registry change. There&#39;s a number of ways to do this but I&#39;m going to walk through making the change via Intune, because I feel it makes sense to keep as much of the deployment settings in one place as possible, but if you have a preferred method for delivering registry changes to devices then go for it.

Create a powershell .ps1 file with the code below in it and give it a sensible name:
&lt;blockquote&gt;#
# Rob 22/8/2018 Adds SSPR registry entry to Windows 10 computers (see [docs.microsoft.com/en-us/azu...](https://docs.microsoft.com/en-us/azure/active-directory/authentication/tutorial-sspr-windows))
# This script will create the registry path, key and value if they&#39;re not present. If it&#39;s present, it will update the value to ensure it&#39;s correct.
#
$registryPath = &#34;HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount&#34;
$Name = &#34;AllowPasswordReset&#34;
$value = &#34;1&#34;
IF(!(Test-Path $registryPath))
{
New-Item -Path $registryPath -Force | Out-Null
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null}

ELSE {
New-ItemProperty -Path $registryPath -Name $name -Value $value `
-PropertyType DWORD -Force | Out-Null}

&lt;/blockquote&gt;From Device Configuration, open PowerShell Scripts and choose &#34;Add&#34;. Give the PowerShell script profile a sensible name like &#34;SSPR Registry Setting&#34; and upload the .ps1 file we created previously.

Under Settings, ensure that both &#34;Run this script using logged on credentials&#34; and &#34;Enforce script signature check&#34; are set to No. Once you&#39;ve created the profile, assign it to your test machine group the same as we did for the OMA-URI profile.

If you want to create the registry key by other means, the path you want is: &lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AzureADAccount&lt;/em&gt; (you may need to create the &#34;AzureADAccount&#34; key. You need to create a dword entry named &#34;&lt;em&gt;AllowPasswordReset&lt;/em&gt;&#34; here and assign the value &#34;1&#34; to it.

That&#39;s it. Once the profiles we&#39;ve just created have applied to your test machines, that&lt;strong&gt; in theory&lt;/strong&gt; is all you need to do.
&lt;h2&gt;Test... and you&#39;re (hopefully) done.&lt;/h2&gt;If all is well, you should see &#34;Reset Password&#34; under the normal Windows Login dialogue.

&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/login.jpg&#34; class=&#34;alignnone wp-image-847 size-full&#34; height=&#34;3024&#34; alt=&#34;login&#34; width=&#34;4032&#34;&gt;

Select this and you should hopefully be taken through a SSPR interface that is similar to the web page SSPR process. Assuming this happens and it completes without errors, congratulations, you&#39;ve read a fairly long blog post &lt;em&gt;and&lt;/em&gt; configured SSPR for your AD devices. I&#39;d call that a decent job!
&lt;h2&gt;Troubleshooting&lt;/h2&gt;We&#39;re making the assumption at this point that you&#39;ve got devices enrolled successfully in to Intune.
&lt;h4&gt;No Reset Password link appears.&lt;/h4&gt;If the Reset Password link does not appear, this suggests the settings we created in the profiles above are either incorrect or are not being applied correctly. This is why assigning a test profile for something harmless like wallpaper is a good idea before trying to roll out more complex settings, so if you haven&#39;t done that already, try creating that test profile now, assign it to the same machine groups as your SSPR profiles and check that it applies as expected.

To further troubleshoot, we can look at the profile we&#39;ve created for SSPR, by going to Intune Home, Device Configuration, then Profiles. Now select the SSPR profile and you should be taken to the overview screen for this profile. In an ideal world this would be a nice big green circle like our example, showing that the target devices have all applied the profile correctly.

If there&#39;s an issue here, you should see a colour coded entry to tell you what went wrong.&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/sspr-status-1.png&#34;&gt;&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/08/sspr-status-1.png?w=1024&#34; class=&#34;wp-image-850 aligncenter size-large&#34; width=&#34;1024&#34; height=&#34;560&#34; alt=&#34;&#34;&gt;&lt;/a&gt;

You can troubleshoot the powershell script profile in a similar way. You can also run regedit on a target machine and look for the registry entry (&lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AzureADAccount&lt;/em&gt;). If it&#39;s not there and you don&#39;t want to delay testing of SSPR you can then also cheat a little by manually creating the entry using the notes in the previous section.
&lt;h4&gt;Reset Password link is there but does not work.&lt;/h4&gt;I&#39;ve had some fun with this. It appears that SSPR on the desktop is rather sensitive to GPOs that change the login experience in any way. A symptom of this is that the Reset Password button appears, but clicking it doesn&#39;t result in the expected login to the SSPR recover page and instead you just get dropped back to the login screen.

After a very long twitter conversation with Nick Wiley (@npwiley), in which we&#39;ve discovered that we&#39;ve both got things working by setting directly opposite settings at one point, I&#39;m just thinking that the best approach is to not attempt to manage the login experience with GPOs at all and just use modern management. (See below for twitter thread.)

So, this is something of an uncertain ground. From Nick&#39;s tests (he&#39;s done more of the heavy lifting here than I have, and deserves the credit), the main policy/setting to worry about at the login screen is the policy that blocks app notifications.

[twitter.com/npwiley/s...](https://twitter.com/npwiley/status/1022864616102219778)

[twitter.com/RobertoMo...](https://twitter.com/RobertoMoir/status/1032198736569683968)

[twitter.com/RobertoMo...](https://twitter.com/RobertoMoir/status/1032381736322195456)

[twitter.com/npwiley/s...](https://twitter.com/npwiley/status/1032422638495379457)

[twitter.com/npwiley/s...](https://twitter.com/npwiley/status/1032616389239037953)

[twitter.com/npwiley/s...](https://twitter.com/npwiley/status/1032619101322203143)
</source:markdown>
    </item>
    
    <item>
      <title>My Server’s been hacked – What do I do now? Pt 3.</title>
      <link>https://itsalwaysmyproblem.com/2018/03/14/201233.html</link>
      <pubDate>Wed, 14 Mar 2018 20:12:33 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/03/14/201233.html</guid>
      <description>&lt;p&gt;Finally. Finishing up after &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-1/&#34;&gt;Part 1&lt;/a&gt; and &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-2/&#34;&gt;Part 2&lt;/a&gt;, this is the end of my updated thoughts on an old Server Fault post with some final thoughts on reducing risks in the future.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Reducing the risk in the future.&lt;/h3&gt;
The first thing you need to understand is that security is a process that you have to apply throughout the entire life-cycle of designing, deploying and maintaining an Internet-facing system, not something you can slap a few layers over your code afterwards like cheap paint. To be properly secure, a service and an application need to be designed from the start with this in mind as one of the major goals of the project. I realise that&#39;s boring and you&#39;ve heard it all before and that I &#34;just don&#39;t realise the pressure man&#34; of getting your beta web2.0 (beta) service into beta status on the web, but the fact is that this keeps getting repeated because it was true the first time it was said and it hasn&#39;t yet become a lie.
&lt;p&gt;You can&amp;rsquo;t eliminate risk. You shouldn&amp;rsquo;t even try to do that. What you should do however is to understand which security risks are important to you, and understand how to manage and reduce both the impact of the risk and the probability that the risk will occur.&lt;/blockquote&gt;
Risk management for those who have never heard of risk before. I think this latter part of the original post reads as rather naive now&amp;hellip; and yet people still seem to struggle to break out of the traps that this advice is designed to prevent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;What steps can you take to reduce the probability of an attack being successful?&lt;/h3&gt;
For example:
&lt;ol&gt;
	&lt;li&gt;Was the flaw that allowed people to break into your site a known bug in vendor code, for which a patch was available? If so, do you need to re-think your approach to how you patch applications on your Internet-facing servers?&lt;/li&gt;
	&lt;li&gt;Was the flaw that allowed people to break into your site an unknown bug in vendor code, for which a patch was not available? I most certainly do not advocate changing suppliers whenever something like this bites you because they all have their problems and you&#39;ll run out of platforms in a year at the most if you take this approach. However, if a system constantly lets you down then you should either migrate to something more robust or at the very least, re-architect your system so that vulnerable components stay wrapped up in cotton wool and as far away as possible from hostile eyes.&lt;/li&gt;
	&lt;li&gt;Was the flaw a bug in code developed by you (or a contractor working for you)? If so, do you need to re-think your approach to how you approve code for deployment to your live site? Could the bug have been caught with an improved test system, or with changes to your coding &#34;standard&#34; (for example, while technology is not a panacea, you can reduce the probability of a successful SQL injection attack by using well-documented coding techniques).&lt;/li&gt;
	&lt;li&gt;Was the flaw due to a problem with how the server or application software was deployed? If so, are you using automated procedures to build and deploy servers where possible? These are a great help in maintaining a consistent &#34;baseline&#34; state on all your servers, minimising the amount of custom work that has to be done on each one and hence hopefully minimising the opportunity for a mistake to be made. Same goes with code deployment - if you require something &#34;special&#34; to be done to deploy the latest version of your web app then try hard to automate it and ensure it always is done in a consistent manner.&lt;/li&gt;
	&lt;li&gt;Could the intrusion have been caught earlier with better monitoring of your systems? Of course, 24-hour monitoring or an &#34;on call&#34; system for your staff might not be cost effective, but there are companies out there who can monitor your web facing services for you and alert you in the event of a problem. You might decide you can&#39;t afford this or don&#39;t need it and that&#39;s just fine... just take it into consideration.&lt;/li&gt;
	&lt;li&gt;Use tools such as tripwire and nessus where appropriate - but don&#39;t just use them blindly because I said so. Take the time to learn how to use a few good security tools that are appropriate to your environment, keep these tools updated and use them on a regular basis.&lt;/li&gt;
	&lt;li&gt;Consider hiring security experts to &#39;audit&#39; your website security on a regular basis. Again, you might decide you can&#39;t afford this or don&#39;t need it and that&#39;s just fine... just take it into consideration.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
Again, I don&#39;t  have much to add to this, except to say that it feels that this hasn&#39;t aged that well. In the era of &#39;&lt;a href=&#34;https://www.quora.com/Should-innovative-companies-move-fast-and-break-things&#34;&gt;Move fast and break things&lt;/a&gt;&#39; the idea that we have time to do most of this seems ludicrous. &lt;em&gt;Of course&lt;/em&gt; we&#39;re going to have a smooth deployment route for software from dev to test to prod&lt;em&gt; (Of course, everyone has a test and dev environment, but not everyone has a separate production environment)&lt;/em&gt; &lt;em&gt;.&lt;/em&gt; &lt;em&gt;Of course&lt;/em&gt; we&#39;re going to re-architect all our functions at the drop of a &lt;a href=&#34;https://news.ycombinator.com/&#34;&gt;Hacker News&lt;/a&gt; post about a new framework... but we don&#39;t have time to be formal about it.
&lt;p&gt;Again, we&amp;rsquo;re back to easy deployment of both systems and code, making both platforms disposable and easy to replace. This isn&amp;rsquo;t the holy grail of never being a victim of intrusions either, but it can help to mitigate some of the risks if it&amp;rsquo;s done well and you are certain your developers and the dev/test environments &lt;a href=&#34;https://www.theverge.com/2017/6/24/15867350/microsoft-windows-10-source-code-leak&#34;&gt;are secure&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;What steps can you take to reduce the consequences of a successful attack?&lt;/h3&gt;
If you decide that the &#34;risk&#34; of the lower floor of your home flooding is high, but not high enough to warrant moving, you should at least move the irreplaceable family heirlooms upstairs. Right?
&lt;ol&gt;
	&lt;li&gt;Can you reduce the amount of services directly exposed to the Internet? Can you maintain some kind of gap between your internal services and your Internet-facing services? This ensures that even if your external systems are compromised the chances of using this as a springboard to attack your internal systems are limited.&lt;/li&gt;
	&lt;li&gt;Are you storing information you don&#39;t need to store? Are you storing such information &#34;online&#34; when it could be archived somewhere else. There are two points to this part; the obvious one is that people cannot steal information from you that you don&#39;t have, and the second point is that the less you store, the less you need to maintain and code for, and so there are fewer chances for bugs to slip into your code or systems design.&lt;/li&gt;
	&lt;li&gt;Are you using &#34;least access&#34; principles for your web app? If users only need to read from a database, then make sure the account the web app uses to service this only has read access, don&#39;t allow it write access and certainly not system-level access.&lt;/li&gt;
	&lt;li&gt;If you&#39;re not very experienced at something and it is not central to your business, consider outsourcing it. In other words, if you run a small website talking about writing desktop application code and decide to start selling small desktop applications from the site then consider &#34;outsourcing&#34; your credit card order system to someone like Paypal.&lt;/li&gt;
	&lt;li&gt;If at all possible, make practising recovery from compromised systems part of your Disaster Recovery plan. This is arguably just another &#34;disaster scenario&#34; that you could encounter, simply one with its own set of problems and issues that are distinct from the usual &#39;server room caught fire/was invaded by giant server eating furbies&#39; kind of thing.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
Good business principles that I hope that most people who have a formal web presence are following for their Internet-facing systems. I still get lots of requests for help from people working in smaller businesses where this just isn&#39;t done... until it&#39;s too late.
&lt;h2&gt;Finally:&lt;/h2&gt;
I think the main shift in managing intrusions has been to data being the most important thing. Remember your legal obligations to the people whose data you hold, and remember to work on your deployments.
&lt;p&gt;If you are scared to rebuild any system or service in your business then this is a critical weakness, both in terms of intrusion and in terms of risk to the business if it fails through &amp;ldquo;natural&amp;rdquo; causes.&lt;/p&gt;
&lt;p&gt;Outsource where applicable. Microsoft Azure, Google Cloud and Amazon AWS are highly likely to be better than you at standing up virtual platforms for public web servers (don&amp;rsquo;t take this personally, they&amp;rsquo;re better than me too). Microsoft and Google are highly likely to be better than you at managing email services (again, don&amp;rsquo;t take it personally, me too).&lt;/p&gt;
&lt;p&gt;Each time you outsource &lt;em&gt;intelligently&lt;/em&gt; you&amp;rsquo;re buying into improved security and freeing up your time from mundane tasks to think about how to manage and protect the things that really matter; your business, its customers, and all your data.&lt;/p&gt;
</description>
      <source:markdown>Finally. Finishing up after &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-1/&#34;&gt;Part 1&lt;/a&gt; and &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-2/&#34;&gt;Part 2&lt;/a&gt;, this is the end of my updated thoughts on an old Server Fault post with some final thoughts on reducing risks in the future.
&lt;blockquote&gt;
&lt;h3&gt;Reducing the risk in the future.&lt;/h3&gt;
The first thing you need to understand is that security is a process that you have to apply throughout the entire life-cycle of designing, deploying and maintaining an Internet-facing system, not something you can slap a few layers over your code afterwards like cheap paint. To be properly secure, a service and an application need to be designed from the start with this in mind as one of the major goals of the project. I realise that&#39;s boring and you&#39;ve heard it all before and that I &#34;just don&#39;t realise the pressure man&#34; of getting your beta web2.0 (beta) service into beta status on the web, but the fact is that this keeps getting repeated because it was true the first time it was said and it hasn&#39;t yet become a lie.

You can&#39;t eliminate risk. You shouldn&#39;t even try to do that. What you should do however is to understand which security risks are important to you, and understand how to manage and reduce both the impact of the risk and the probability that the risk will occur.&lt;/blockquote&gt;
Risk management for those who have never heard of risk before. I think this latter part of the original post reads as rather naive now... and yet people still seem to struggle to break out of the traps that this advice is designed to prevent.
&lt;blockquote&gt;
&lt;h3&gt;What steps can you take to reduce the probability of an attack being successful?&lt;/h3&gt;
For example:
&lt;ol&gt;
	&lt;li&gt;Was the flaw that allowed people to break into your site a known bug in vendor code, for which a patch was available? If so, do you need to re-think your approach to how you patch applications on your Internet-facing servers?&lt;/li&gt;
	&lt;li&gt;Was the flaw that allowed people to break into your site an unknown bug in vendor code, for which a patch was not available? I most certainly do not advocate changing suppliers whenever something like this bites you because they all have their problems and you&#39;ll run out of platforms in a year at the most if you take this approach. However, if a system constantly lets you down then you should either migrate to something more robust or at the very least, re-architect your system so that vulnerable components stay wrapped up in cotton wool and as far away as possible from hostile eyes.&lt;/li&gt;
	&lt;li&gt;Was the flaw a bug in code developed by you (or a contractor working for you)? If so, do you need to re-think your approach to how you approve code for deployment to your live site? Could the bug have been caught with an improved test system, or with changes to your coding &#34;standard&#34; (for example, while technology is not a panacea, you can reduce the probability of a successful SQL injection attack by using well-documented coding techniques).&lt;/li&gt;
	&lt;li&gt;Was the flaw due to a problem with how the server or application software was deployed? If so, are you using automated procedures to build and deploy servers where possible? These are a great help in maintaining a consistent &#34;baseline&#34; state on all your servers, minimising the amount of custom work that has to be done on each one and hence hopefully minimising the opportunity for a mistake to be made. Same goes with code deployment - if you require something &#34;special&#34; to be done to deploy the latest version of your web app then try hard to automate it and ensure it always is done in a consistent manner.&lt;/li&gt;
	&lt;li&gt;Could the intrusion have been caught earlier with better monitoring of your systems? Of course, 24-hour monitoring or an &#34;on call&#34; system for your staff might not be cost effective, but there are companies out there who can monitor your web facing services for you and alert you in the event of a problem. You might decide you can&#39;t afford this or don&#39;t need it and that&#39;s just fine... just take it into consideration.&lt;/li&gt;
	&lt;li&gt;Use tools such as tripwire and nessus where appropriate - but don&#39;t just use them blindly because I said so. Take the time to learn how to use a few good security tools that are appropriate to your environment, keep these tools updated and use them on a regular basis.&lt;/li&gt;
	&lt;li&gt;Consider hiring security experts to &#39;audit&#39; your website security on a regular basis. Again, you might decide you can&#39;t afford this or don&#39;t need it and that&#39;s just fine... just take it into consideration.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
Again, I don&#39;t  have much to add to this, except to say that it feels that this hasn&#39;t aged that well. In the era of &#39;&lt;a href=&#34;https://www.quora.com/Should-innovative-companies-move-fast-and-break-things&#34;&gt;Move fast and break things&lt;/a&gt;&#39; the idea that we have time to do most of this seems ludicrous. &lt;em&gt;Of course&lt;/em&gt; we&#39;re going to have a smooth deployment route for software from dev to test to prod&lt;em&gt; (Of course, everyone has a test and dev environment, but not everyone has a separate production environment)&lt;/em&gt; &lt;em&gt;.&lt;/em&gt; &lt;em&gt;Of course&lt;/em&gt; we&#39;re going to re-architect all our functions at the drop of a &lt;a href=&#34;https://news.ycombinator.com/&#34;&gt;Hacker News&lt;/a&gt; post about a new framework... but we don&#39;t have time to be formal about it.

Again, we&#39;re back to easy deployment of both systems and code, making both platforms disposable and easy to replace. This isn&#39;t the holy grail of never being a victim of intrusions either, but it can help to mitigate some of the risks if it&#39;s done well and you are certain your developers and the dev/test environments &lt;a href=&#34;https://www.theverge.com/2017/6/24/15867350/microsoft-windows-10-source-code-leak&#34;&gt;are secure&lt;/a&gt;.
&lt;blockquote&gt;
&lt;h3&gt;What steps can you take to reduce the consequences of a successful attack?&lt;/h3&gt;
If you decide that the &#34;risk&#34; of the lower floor of your home flooding is high, but not high enough to warrant moving, you should at least move the irreplaceable family heirlooms upstairs. Right?
&lt;ol&gt;
	&lt;li&gt;Can you reduce the amount of services directly exposed to the Internet? Can you maintain some kind of gap between your internal services and your Internet-facing services? This ensures that even if your external systems are compromised the chances of using this as a springboard to attack your internal systems are limited.&lt;/li&gt;
	&lt;li&gt;Are you storing information you don&#39;t need to store? Are you storing such information &#34;online&#34; when it could be archived somewhere else. There are two points to this part; the obvious one is that people cannot steal information from you that you don&#39;t have, and the second point is that the less you store, the less you need to maintain and code for, and so there are fewer chances for bugs to slip into your code or systems design.&lt;/li&gt;
	&lt;li&gt;Are you using &#34;least access&#34; principles for your web app? If users only need to read from a database, then make sure the account the web app uses to service this only has read access, don&#39;t allow it write access and certainly not system-level access.&lt;/li&gt;
	&lt;li&gt;If you&#39;re not very experienced at something and it is not central to your business, consider outsourcing it. In other words, if you run a small website talking about writing desktop application code and decide to start selling small desktop applications from the site then consider &#34;outsourcing&#34; your credit card order system to someone like Paypal.&lt;/li&gt;
	&lt;li&gt;If at all possible, make practising recovery from compromised systems part of your Disaster Recovery plan. This is arguably just another &#34;disaster scenario&#34; that you could encounter, simply one with its own set of problems and issues that are distinct from the usual &#39;server room caught fire/was invaded by giant server eating furbies&#39; kind of thing.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
Good business principles that I hope that most people who have a formal web presence are following for their Internet-facing systems. I still get lots of requests for help from people working in smaller businesses where this just isn&#39;t done... until it&#39;s too late.
&lt;h2&gt;Finally:&lt;/h2&gt;
I think the main shift in managing intrusions has been to data being the most important thing. Remember your legal obligations to the people whose data you hold, and remember to work on your deployments.

If you are scared to rebuild any system or service in your business then this is a critical weakness, both in terms of intrusion and in terms of risk to the business if it fails through &#34;natural&#34; causes.

Outsource where applicable. Microsoft Azure, Google Cloud and Amazon AWS are highly likely to be better than you at standing up virtual platforms for public web servers (don&#39;t take this personally, they&#39;re better than me too). Microsoft and Google are highly likely to be better than you at managing email services (again, don&#39;t take it personally, me too).

Each time you outsource &lt;em&gt;intelligently&lt;/em&gt; you&#39;re buying into improved security and freeing up your time from mundane tasks to think about how to manage and protect the things that really matter; your business, its customers, and all your data.
</source:markdown>
    </item>
    
    <item>
      <title>My Server&#39;s been hacked - What do I do now? Pt 2.</title>
      <link>https://itsalwaysmyproblem.com/2018/03/14/193821.html</link>
      <pubDate>Wed, 14 Mar 2018 19:38:21 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/03/14/193821.html</guid>
      <description>&lt;p&gt;Following on from &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-1/&#34;&gt;Part 1&lt;/a&gt; of my revision of an old Server Fault post, we will continue on  to look at remediation after an intrusion.&lt;/p&gt;
&lt;p&gt;(&lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-3/&#34;&gt;Part 3&lt;/a&gt; available here)&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Understand the problem fully:&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Do NOT put the affected systems back online until this stage is fully complete, unless you want to be the person whose post was the tipping point for me actually deciding to write this article. I&#39;m not going to link to that post so that people can get a cheap laugh, but the real tragedy is when people fail to learn from their mistakes.&lt;/li&gt;
	&lt;li&gt;Examine the &#39;attacked&#39; systems to understand how the attacks succeeded in compromising your security. Make every effort to find out where the attacks &#34;came from&#34;, so that you understand what problems you have and need to address to make your system safe in the future.&lt;/li&gt;
	&lt;li&gt;Examine the &#39;attacked&#39; systems again, this time to understand where the attacks went, so that you understand what systems were compromised in the attack. Ensure you follow up any pointers that suggest compromised systems could become a springboard to attack your systems further.&lt;/li&gt;
	&lt;li&gt;Ensure the &#34;gateways&#34; used in any and all attacks are fully understood, so that you may begin to close them properly. (e.g. if your systems were compromised by a SQL injection attack, then not only do you need to close the particular flawed line of code that they broke in by, you would want to audit all of your code to see if the same type of mistake was made elsewhere).&lt;/li&gt;
	&lt;li&gt;Understand that attacks might succeed because of more than one flaw. Often, attacks succeed not through finding one major bug in a system but by stringing together several issues (sometimes minor and trivial by themselves) to compromise a system. For example, using SQL injection attacks to send commands to a database server, discovering the website/application you&#39;re attacking is running in the context of an administrative user and using the rights of that account as a stepping-stone to compromise other parts of a system. Or as hackers like to call it: &#34;another day in the office taking advantage of common mistakes people make&#34;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
This is where having a good incident manager is invaluable. It&#39;s her job to deal with pressure to get services back online quickly and balance that against the complexity of determining the extent of an intrusion.
&lt;p&gt;The technical team investigating the intrusion, determining damage, etc. should be carefully shielded from immediate interference by well-meaning executives who may be making decisions based on emotions or bad publicity. That isn&amp;rsquo;t to say that the technical team can take all the time in the world either; nothing undermines customer confidence like a slow response or services that are offline for a very long time. There&amp;rsquo;s a balance between the various priorities and it&amp;rsquo;s up to the incident manager to make sure everyone is aware of that balance.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to be thorough when investigating the root cause and the extent of an intrusion so that you can give a correct and concise response when customers (or the press if you&amp;rsquo;re a larger organisation) press you for information. No one likes uncertainty and people will want an accurate response to questions about what happened to their data and what they need to do next.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also important to understand the nature and extent of any intrusion in order to be sure you have correctly dealt with it. This again is a matter allowing competent people the time to be thorough in their examination of all potentially affected systems. This brings me back to my point in part 1 about worrying about services and &amp;ldquo;scale out&amp;rdquo; rather than small numbers of custom servers. This can both minimise exposure and improve your return to production; e.g. if intruders break into your front end web servers and the only thing they can directly access is web site code, you&amp;rsquo;ve hopefully minimised the impact of the intrusion (don&amp;rsquo;t misunderstand me, this is still very bad!) and hopefully you&amp;rsquo;ve also made it relatively easy to update the vulnerable front end code and redeploy new web servers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Why not just &#34;repair&#34; the exploit or rootkit you&#39;ve detected and put the system back online?&lt;/h3&gt;
In situations like this the problem is that you don&#39;t have control of that system any more. It&#39;s not your computer any more.
&lt;p&gt;The only way to be certain that you&amp;rsquo;ve got control of the system is to rebuild the system. While there&amp;rsquo;s a lot of value in finding and fixing the exploit used to break into the system, you can&amp;rsquo;t be sure about what else has been done to the system once the intruders gained control (indeed, its not unheard of for hackers that recruit systems into a botnet to patch the exploits they used themselves, to safeguard &amp;ldquo;their&amp;rdquo; new computer from other hackers, as well as installing their rootkit).&lt;/blockquote&gt;
Can&amp;rsquo;t think of much to change here except to say that this is more true now than it ever was, if anything. Once you&amp;rsquo;ve lost control of a server it can no longer be trusted. These days there are just too many ways to hide exploit code.&lt;/p&gt;
&lt;p&gt;And again, we now have greatly reduced cost and complexity for rebuilding servers. It&amp;rsquo;s now not only possible but &lt;em&gt;easy&lt;/em&gt; to completely script the build of an entire web application stack and have a new web service spun up before the hipsters in marketing have finished arguing about wht vrbs 2 drp (srry) from the new domain name.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Make a plan for recovery and to bring your website back online and stick to it:&lt;/h3&gt;
Nobody wants to be offline for longer than they have to be. That&#39;s a given. If this website is a revenue generating mechanism then the pressure to bring it back online quickly will be intense. Even if the only thing at stake is your / your company&#39;s reputation, this is still going generate a lot of pressure to put things back up quickly.
&lt;p&gt;However, don&amp;rsquo;t give in to the temptation to go back online too quickly. Instead move with as fast as possible to understand what caused the problem and to solve it before you go back online or else you will almost certainly fall victim to an intrusion once again, and remember, &amp;ldquo;to get hacked once can be classed as misfortune; to get hacked again straight afterwards looks like carelessness&amp;rdquo; (with apologies to Oscar Wilde).&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;I&#39;m assuming you&#39;ve understood all the issues that led to the successful intrusion in the first place before you even start this section. I don&#39;t want to overstate the case but if you haven&#39;t done that first then you really do need to. Sorry.&lt;/li&gt;
	&lt;li&gt;Never pay blackmail / protection money. This is the sign of an easy mark and you don&#39;t want that phrase ever used to describe you.&lt;/li&gt;
	&lt;li&gt;Don&#39;t be tempted to put the same server(s) back online without a full rebuild. It should be far quicker to build a new box or &#34;nuke the server from orbit and do a clean install&#34; on the old hardware than it would be to audit every single corner of the old system to make sure it is clean before putting it back online again. If you disagree with that then you probably don&#39;t know what it really means to ensure a system is fully cleaned, or your website deployment procedures are an unholy mess. You presumably have backups and test deployments of your site that you can just use to build the live site, and if you don&#39;t then being hacked is not your biggest problem.&lt;/li&gt;
	&lt;li&gt;Be very careful about re-using data that was &#34;live&#34; on the system at the time of the hack. I won&#39;t say &#34;never ever do it&#34; because you&#39;ll just ignore me, but frankly I think you do need to consider the consequences of keeping data around when you know you cannot guarantee its integrity. Ideally, you should restore this from a backup made prior to the intrusion. If you cannot or will not do that, you should be very careful with that data because it&#39;s tainted. You should especially be aware of the consequences to others if this data belongs to customers or site visitors rather than directly to you.&lt;/li&gt;
	&lt;li&gt;Monitor the system(s) carefully. You should resolve to do this as an ongoing process in the future (more below) but you take extra pains to be vigilant during the period immediately following your site coming back online. The intruders will almost certainly be back, and if you can spot them trying to break in again you will certainly be able to see quickly if you really have closed all the holes they used before plus any they made for themselves, and you might gather useful information you can pass on to your local law enforcement.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
I&#39;m mostly summarising earlier points here so I won&#39;t rehash them again. I will say that the plan I talk about for getting back into production should ideally be produced and &lt;a href=&#34;http://deloitte.wsj.com/cio/2014/09/22/an-introduction-to-cyber-war-games/&#34;&gt;wargamed&lt;/a&gt; before the incident occurs. We should be rehearsing all our &lt;a href=&#34;https://en.wikipedia.org/wiki/Business_continuity&#34;&gt;business continuity&lt;/a&gt; plans really, and successful hack incidents are really just another class of risk to the business.
</description>
      <source:markdown>Following on from &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-1/&#34;&gt;Part 1&lt;/a&gt; of my revision of an old Server Fault post, we will continue on  to look at remediation after an intrusion.

(&lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-3/&#34;&gt;Part 3&lt;/a&gt; available here)
&lt;blockquote&gt;
&lt;h3&gt;Understand the problem fully:&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Do NOT put the affected systems back online until this stage is fully complete, unless you want to be the person whose post was the tipping point for me actually deciding to write this article. I&#39;m not going to link to that post so that people can get a cheap laugh, but the real tragedy is when people fail to learn from their mistakes.&lt;/li&gt;
	&lt;li&gt;Examine the &#39;attacked&#39; systems to understand how the attacks succeeded in compromising your security. Make every effort to find out where the attacks &#34;came from&#34;, so that you understand what problems you have and need to address to make your system safe in the future.&lt;/li&gt;
	&lt;li&gt;Examine the &#39;attacked&#39; systems again, this time to understand where the attacks went, so that you understand what systems were compromised in the attack. Ensure you follow up any pointers that suggest compromised systems could become a springboard to attack your systems further.&lt;/li&gt;
	&lt;li&gt;Ensure the &#34;gateways&#34; used in any and all attacks are fully understood, so that you may begin to close them properly. (e.g. if your systems were compromised by a SQL injection attack, then not only do you need to close the particular flawed line of code that they broke in by, you would want to audit all of your code to see if the same type of mistake was made elsewhere).&lt;/li&gt;
	&lt;li&gt;Understand that attacks might succeed because of more than one flaw. Often, attacks succeed not through finding one major bug in a system but by stringing together several issues (sometimes minor and trivial by themselves) to compromise a system. For example, using SQL injection attacks to send commands to a database server, discovering the website/application you&#39;re attacking is running in the context of an administrative user and using the rights of that account as a stepping-stone to compromise other parts of a system. Or as hackers like to call it: &#34;another day in the office taking advantage of common mistakes people make&#34;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
This is where having a good incident manager is invaluable. It&#39;s her job to deal with pressure to get services back online quickly and balance that against the complexity of determining the extent of an intrusion.

The technical team investigating the intrusion, determining damage, etc. should be carefully shielded from immediate interference by well-meaning executives who may be making decisions based on emotions or bad publicity. That isn&#39;t to say that the technical team can take all the time in the world either; nothing undermines customer confidence like a slow response or services that are offline for a very long time. There&#39;s a balance between the various priorities and it&#39;s up to the incident manager to make sure everyone is aware of that balance.

It&#39;s important to be thorough when investigating the root cause and the extent of an intrusion so that you can give a correct and concise response when customers (or the press if you&#39;re a larger organisation) press you for information. No one likes uncertainty and people will want an accurate response to questions about what happened to their data and what they need to do next.

It&#39;s also important to understand the nature and extent of any intrusion in order to be sure you have correctly dealt with it. This again is a matter allowing competent people the time to be thorough in their examination of all potentially affected systems. This brings me back to my point in part 1 about worrying about services and &#34;scale out&#34; rather than small numbers of custom servers. This can both minimise exposure and improve your return to production; e.g. if intruders break into your front end web servers and the only thing they can directly access is web site code, you&#39;ve hopefully minimised the impact of the intrusion (don&#39;t misunderstand me, this is still very bad!) and hopefully you&#39;ve also made it relatively easy to update the vulnerable front end code and redeploy new web servers.
&lt;blockquote&gt;
&lt;h3&gt;Why not just &#34;repair&#34; the exploit or rootkit you&#39;ve detected and put the system back online?&lt;/h3&gt;
In situations like this the problem is that you don&#39;t have control of that system any more. It&#39;s not your computer any more.

The only way to be certain that you&#39;ve got control of the system is to rebuild the system. While there&#39;s a lot of value in finding and fixing the exploit used to break into the system, you can&#39;t be sure about what else has been done to the system once the intruders gained control (indeed, its not unheard of for hackers that recruit systems into a botnet to patch the exploits they used themselves, to safeguard &#34;their&#34; new computer from other hackers, as well as installing their rootkit).&lt;/blockquote&gt;
Can&#39;t think of much to change here except to say that this is more true now than it ever was, if anything. Once you&#39;ve lost control of a server it can no longer be trusted. These days there are just too many ways to hide exploit code.

And again, we now have greatly reduced cost and complexity for rebuilding servers. It&#39;s now not only possible but &lt;em&gt;easy&lt;/em&gt; to completely script the build of an entire web application stack and have a new web service spun up before the hipsters in marketing have finished arguing about wht vrbs 2 drp (srry) from the new domain name.
&lt;blockquote&gt;
&lt;h3&gt;Make a plan for recovery and to bring your website back online and stick to it:&lt;/h3&gt;
Nobody wants to be offline for longer than they have to be. That&#39;s a given. If this website is a revenue generating mechanism then the pressure to bring it back online quickly will be intense. Even if the only thing at stake is your / your company&#39;s reputation, this is still going generate a lot of pressure to put things back up quickly.

However, don&#39;t give in to the temptation to go back online too quickly. Instead move with as fast as possible to understand what caused the problem and to solve it before you go back online or else you will almost certainly fall victim to an intrusion once again, and remember, &#34;to get hacked once can be classed as misfortune; to get hacked again straight afterwards looks like carelessness&#34; (with apologies to Oscar Wilde).
&lt;ol&gt;
	&lt;li&gt;I&#39;m assuming you&#39;ve understood all the issues that led to the successful intrusion in the first place before you even start this section. I don&#39;t want to overstate the case but if you haven&#39;t done that first then you really do need to. Sorry.&lt;/li&gt;
	&lt;li&gt;Never pay blackmail / protection money. This is the sign of an easy mark and you don&#39;t want that phrase ever used to describe you.&lt;/li&gt;
	&lt;li&gt;Don&#39;t be tempted to put the same server(s) back online without a full rebuild. It should be far quicker to build a new box or &#34;nuke the server from orbit and do a clean install&#34; on the old hardware than it would be to audit every single corner of the old system to make sure it is clean before putting it back online again. If you disagree with that then you probably don&#39;t know what it really means to ensure a system is fully cleaned, or your website deployment procedures are an unholy mess. You presumably have backups and test deployments of your site that you can just use to build the live site, and if you don&#39;t then being hacked is not your biggest problem.&lt;/li&gt;
	&lt;li&gt;Be very careful about re-using data that was &#34;live&#34; on the system at the time of the hack. I won&#39;t say &#34;never ever do it&#34; because you&#39;ll just ignore me, but frankly I think you do need to consider the consequences of keeping data around when you know you cannot guarantee its integrity. Ideally, you should restore this from a backup made prior to the intrusion. If you cannot or will not do that, you should be very careful with that data because it&#39;s tainted. You should especially be aware of the consequences to others if this data belongs to customers or site visitors rather than directly to you.&lt;/li&gt;
	&lt;li&gt;Monitor the system(s) carefully. You should resolve to do this as an ongoing process in the future (more below) but you take extra pains to be vigilant during the period immediately following your site coming back online. The intruders will almost certainly be back, and if you can spot them trying to break in again you will certainly be able to see quickly if you really have closed all the holes they used before plus any they made for themselves, and you might gather useful information you can pass on to your local law enforcement.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
I&#39;m mostly summarising earlier points here so I won&#39;t rehash them again. I will say that the plan I talk about for getting back into production should ideally be produced and &lt;a href=&#34;http://deloitte.wsj.com/cio/2014/09/22/an-introduction-to-cyber-war-games/&#34;&gt;wargamed&lt;/a&gt; before the incident occurs. We should be rehearsing all our &lt;a href=&#34;https://en.wikipedia.org/wiki/Business_continuity&#34;&gt;business continuity&lt;/a&gt; plans really, and successful hack incidents are really just another class of risk to the business.
</source:markdown>
    </item>
    
    <item>
      <title>My Server&#39;s been hacked - What do I do now? Pt 1.&#39;</title>
      <link>https://itsalwaysmyproblem.com/2018/03/14/my-servers-been.html</link>
      <pubDate>Wed, 14 Mar 2018 19:01:37 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2018/03/14/my-servers-been.html</guid>
      <description>&lt;h1 class=&#34;votecell post-layout--left&#34;&gt;Introduction&lt;/h1&gt;
&lt;div class=&#34;answercell post-layout--right&#34;&gt;
&lt;div class=&#34;post-text&#34;&gt;
&lt;p&gt;In this series of posts I&amp;rsquo;m revisiting &lt;a href=&#34;https://serverfault.com/a/218011/7783&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;an answer&lt;/a&gt; to a question that appeared on &lt;a href=&#34;https://www.serverfault.com&#34;&gt;Server Fault&lt;/a&gt; way back in 2011. I&amp;rsquo;m pleased to say that it&amp;rsquo;s been viewed over 100,000 times, and I like to think its helped a few of them.&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s time to look again. Since I wrote that post, there have been some huge intrusions, such as the well known &lt;a href=&#34;https://en.wikipedia.org/wiki/Ashley_Madison_data_breach&#34;&gt;Ashely Madison&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Anthem_medical_data_breach&#34;&gt;Anthem Medical Data&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/2014_JPMorgan_Chase_data_breach&#34;&gt;JP Morgan&lt;/a&gt; breaches that affected millions of people.&lt;/p&gt;
&lt;h6&gt;[source: &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_data_breaches&#34;&gt;wikipedia list of data breaches&lt;/a&gt;]&lt;/h6&gt;
I&#39;m &lt;em&gt;not&lt;/em&gt; writing for the people who operate at the kind of scale of &lt;em&gt;those&lt;/em&gt; sites here. I&#39;m writing for the scores of people who manage small and medium enterprise systems which handle data and are if anything, despite being a &lt;em&gt;smaller&lt;/em&gt; target than the kinds of organisations I mention above, are likely to be under just as much pressure as they don&#39;t have the kinds of infosec budgets of a &lt;a href=&#34;https://en.wikipedia.org/wiki/Sony_Pictures_hack&#34;&gt;Sony&lt;/a&gt; or an &lt;a href=&#34;https://www.theguardian.com/business/2015/oct/01/experian-hack-t-mobile-credit-checks-personal-information&#34;&gt;Experian&lt;/a&gt; and could well be seen as a softer target. My original post text from Serverfault is quoted below, with my thoughts, revisions and edits added as new text.
&lt;p&gt;(&lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-2/&#34;&gt;Part 2&lt;/a&gt; and &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-3/&#34;&gt;Part 3&lt;/a&gt; are available)&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;&lt;strong&gt;Don&#39;t Panic&lt;/strong&gt;&lt;/h2&gt;
&lt;em&gt;First things first, there are no &#34;quick fixes&#34; other than restoring your system from a backup taken prior to the intrusion, and this has at least two problems.&lt;/em&gt;
&lt;ol&gt;
	&lt;li&gt;It&#39;s difficult to pinpoint when the intrusion happened.&lt;/li&gt;
	&lt;li&gt;It doesn&#39;t help you close the &#34;hole&#34; that allowed them to break in last time, nor deal with the consequences of any &#34;data theft&#34; that may also have taken place.&lt;/li&gt;
&lt;/ol&gt;
This question keeps being asked repeatedly by the victims of hackers breaking into their web server. The answers very rarely change, but people keep asking the question. I&#39;m not sure why. Perhaps people just don&#39;t like the answers they&#39;ve seen when searching for help, or they can&#39;t find someone they trust to give them advice. Or perhaps people read an answer to this question and focus too much on the 5% of why their case is special and different from the answers they can find online and miss the 95% of the question and answer where their case is near enough the same as the one they read online.
&lt;p&gt;That brings me to the first important nugget of information. I really do appreciate that you are a special unique snowflake. I appreciate that your website is too, as it&amp;rsquo;s a reflection of you and your business or at the very least, your hard work on behalf of an employer. But to someone on the outside looking in, whether a computer security person looking at the problem to try and help you or even the attacker himself, it is very likely that your problem will be at least 95% identical to every other case they&amp;rsquo;ve ever looked at.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t take the attack personally, and don&amp;rsquo;t take the recommendations that follow here or that you get from other people personally. If you are reading this after just becoming the victim of a website hack then I really am sorry, and I really hope you can find something helpful here, but this is not the time to let your ego get in the way of what you need to do.&lt;/blockquote&gt;
I still stand by this first part, more or less, though I will admit to borrowing the first two words from Douglas Adams.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;It&#39;s important to &lt;em&gt;reflect before you act&lt;/em&gt;. Before doing anything, you need to make sure that everyone concerned knows what their responsibilities are to the business, its customers, and the legal frameworks in the countries you operate in.You may have obligations to notify customers that they&#39;re victims of information theft, to notify legal/government departments, etc. and it&#39;s important that you don&#39;t act in haste and potentially lost information about the extent of an attack or destroy evidence of who was responsible, how they did it, etc.&lt;/li&gt;
	&lt;li&gt;
&lt;em&gt;It&#39;s important to appoint someone to manage the incident.&lt;/em&gt; It is their job to co-ordinate the technical, legal and operational responses of the business to the incident, which means that they cannot get bogged down in details from any one of those areas.&lt;/li&gt;
	&lt;li&gt;Therefore:&lt;em&gt; The incident manager should not be the technical lead in the investigation. &lt;/em&gt;It&#39;s tempting in a smaller business to put the &#34;IT manager&#34; in charge of the incident (that&#39;s fine) and then also expect the IT Manager to be her own technical lead, which is a gross error.The technical role should be delegated, possibly even outsourced to a specialist, and the manager needs to be taking a step back from worrying about technical trivia and instead concentrating on what the business needs to do to protect itself and its customers.&lt;/li&gt;
	&lt;li&gt;Don&#39;t take the attack personally. It&#39;s just business, even when it isn&#39;t. This is all about making good decisions. It&#39;s ok to be upset but it&#39;s not ok to make bad decisions because you&#39;re upset.Ability to step back from the emotional impact of things like this and work dispassionately should absolutely play a part in your choice of incident manager, technical lead, and so-on, in case you were wondering.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;strong&gt;You have just found out that your server(s) got hacked. Now what?&lt;/strong&gt;
&lt;p&gt;Do not panic. Absolutely do not act in haste, and absolutely do not try and pretend things never happened and not act at all.&lt;/p&gt;
&lt;p&gt;First: understand that the disaster has already happened. This is not the time for denial; it is the time to accept what has happened, to be realistic about it, and to take steps to manage the consequences of the impact.Some of these steps are going to hurt, and (unless your website holds a copy of my details) I really don&amp;rsquo;t care if you ignore all or some of these steps, that&amp;rsquo;s up to you. But following them properly will make things better in the end. The medicine might taste awful but sometimes you have to overlook that if you really want the cure to work.Stop the problem from becoming worse than it already is:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;The first thing you should do is disconnect the affected systems from the Internet. Whatever other problems you have, leaving the system connected to the web will only allow the attack to continue. I mean this quite literally; get someone to physically visit the server and unplug network cables if that is what it takes, but disconnect the victim from its muggers before you try to do anything else.&lt;/li&gt;
	&lt;li&gt;Change all your passwords for all accounts on all computers that are on the same network as the compromised systems. No really. All accounts. All computers. Yes, you&#39;re right, this might be overkill; on the other hand, it might not. You don&#39;t know either way, do you?&lt;/li&gt;
	&lt;li&gt;Check your other systems. Pay special attention to other Internet facing services, and to those that hold financial or other commercially sensitive data.&lt;/li&gt;
	&lt;li&gt;If the system holds anyone&#39;s personal data, immediately inform the person responsible for data protection (if that&#39;s not you) and URGE a full disclosure. I know this one is tough. I know this one is going to hurt. I know that many businesses want to sweep this kind of problem under the carpet but the business is going to have to deal with it - and needs to do so with an eye on any and all relevant privacy laws.&lt;/li&gt;
&lt;/ol&gt;
However annoyed your customers might be to have you tell them about a problem, they&#39;ll be far more annoyed if you don&#39;t tell them, and they only find out for themselves after someone charges $8,000 worth of goods using the credit card details they stole from your site.Remember what I said previously? The bad thing has already happened. The only question now is how well you deal with it.&lt;/blockquote&gt;
&lt;h3&gt;Disclosure is where it&#39;s at now.&lt;/h3&gt;
If I&#39;m going to criticise my 2011 self for anything, it&#39;s for failing to take disclosure seriously enough. Well that and waffling. But in 2018, disclosure has become a huge part of the response to a security breach and it&#39;s completely right that it should be.
&lt;p&gt;Intrusions into servers themselves while still a problem that needs to be addressed operationally, are almost unimportant these days, because &lt;em&gt;data&lt;/em&gt; and &lt;em&gt;services&lt;/em&gt; are now seen as the valuable commodities, more so than servers themselves(&lt;a href=&#34;#1&#34;&gt;1&lt;/a&gt;), and these days it should be fairly trivial to rebuild a server with tools like &lt;a href=&#34;https://puppet.com/&#34;&gt;puppet&lt;/a&gt;, &lt;a href=&#34;https://docs.microsoft.com/en-us/system-center/orchestrator/learn-about-orchestrator?view=sc-orch-1801&#34;&gt;Microsoft System Center&lt;/a&gt;, &lt;a href=&#34;https://chocolatey.org&#34;&gt;Chocolatey&lt;/a&gt; and &lt;a href=&#34;https://kubernetes.io/&#34;&gt;Kubernates&lt;/a&gt;. We should be treat servers as &lt;a href=&#34;https://devops.stackexchange.com/questions/653/what-is-the-definition-of-cattle-not-pets&#34;&gt;cattle, not as pets&lt;/a&gt;, we should be worrying about the services running on these servers and &amp;ldquo;scaling out&amp;rdquo; so that the loss of one server isn&amp;rsquo;t an issue as such, and this completely changes how we can approach an intrusion into any one server - of course it also increases the complexity of determining whether or not your entire farm is rooted, but there ain&amp;rsquo;t no such thing as a free lunch.&lt;/p&gt;
&lt;p&gt;There are a number of positions that need to be considered in disclosure and you need to be aware of how these are perceived throughout the world. If you&amp;rsquo;re a US company operating in the EU and holding data on EU B2C customers on systems that are local to you then you may have a very complex set of laws to consider, for example, and it may be difficult to know how to balance these requirements.&lt;/p&gt;
&lt;p&gt;One thing that might help, ironically, is the rise of cloud. If you can store and process personal data in the same legal zone as the customers who own that personal data then you will probably greatly reduce your legal complexity. I&amp;rsquo;m predominantly referring to the UK interpretation of the disclosure requirements for &lt;a href=&#34;https://gdpr-info.eu/&#34;&gt;GDPR&lt;/a&gt; in my examples here because I&amp;rsquo;m a UK citizen living and working in the UK/EU for an UK/EU employer who tasks me with securely storing and processing the data of UK/EU residents.&lt;/p&gt;
&lt;p&gt;This is &lt;em&gt;not any kind of legal advice or opinion and&lt;/em&gt; y&lt;em&gt;ou&lt;/em&gt; absolutely should check the legal requirements for the country you&amp;rsquo;re based in and the countries your company operates in.&lt;/p&gt;
&lt;p&gt;Legally, you may have an obligation to disclose any data breach that occurs on your site. In the EU we are obligated under &lt;a href=&#34;https://gdpr-info.eu/art-33-gdpr/&#34;&gt;Article 33&lt;/a&gt; of the GDPR regulations to notify our local &amp;ldquo;supervisory authority&amp;rdquo;, which is the information commissioner (&lt;a href=&#34;https://ico.org.uk/for-organisations/guide-to-pecr/communications-networks-and-services/security-breaches/&#34;&gt;ICO&lt;/a&gt;) in the UK and under &lt;a href=&#34;https://gdpr-info.eu/art-34-gdpr/&#34;&gt;Article 34 &lt;/a&gt;we&amp;rsquo;re also obligated to notify &amp;ldquo;data subjects&amp;rdquo; about any breach that&amp;rsquo;s likely to have resulted in any of their &amp;ldquo;personal data&amp;rdquo; being shared with others.&lt;/p&gt;
&lt;p&gt;If you read any of these articles you&amp;rsquo;re probably still not any wiser about when and whom to notify - what are the thresholds for notification? To that end, I&amp;rsquo;ll point you at &lt;a href=&#34;https://blog.varonis.com/guide-eu-gdpr-breach-notification-rule/&#34;&gt;this discussion&lt;/a&gt; on the Varonis blog which tries to break down what the thresholds mean and what actions you need to take.&lt;/p&gt;
&lt;p&gt;But there&amp;rsquo;s another angle. What is the ethical impact of your disclosure policy? If you feel that an incident doesn&amp;rsquo;t quite meet the legal requirements where you are to require you to disclose an intrusion/data theft, then what about &lt;a href=&#34;http://pwc.blogs.com/cyber_security_updates/2014/11/ethical-positions-in-breach-handling.html&#34;&gt;ethical obligations&lt;/a&gt;? What about &lt;a href=&#34;https://www.theguardian.com/technology/2015/aug/19/ashley-madison-hack-outcome&#34;&gt;customer confidence&lt;/a&gt;, which can be critically impacted when you&amp;rsquo;re caught &lt;a href=&#34;https://www.wsj.com/articles/ubers-hack-disclosure-raises-questions-about-timing-1511462671&#34;&gt;acting unethically&lt;/a&gt; around an intrusion? At this point I would suggest that disclosure of data loss or theft is the most important and complex part of your playbook should you suffer a security incident. Get it wrong and you may find yourself in legal difficulties and you will certainly lose credibility with your customers. Get it right&amp;hellip; and while it&amp;rsquo;s still never going to be fun to admit you suffered an intrusion, you can at least win respect from current and potential future customers by showing professional resolve and an ability to learn from your mistakes.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;answercell post-layout--right&#34;&gt;
&lt;div class=&#34;post-text&#34;&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;a name=&#34;1&#34;&gt;&lt;/a&gt;
(1) Though given the rise of &#34;&lt;a href=&#34;https://www.webroot.com/blog/2017/12/05/new-cryptojacking-tactic-may-stealing-cpu-power/&#34;&gt;cryptojacking&lt;/a&gt;&#34;, where hackers break into webservers to insert javascript into websites that allows them to use visitors to that website to mine cryptocurrency might start to swing things back the other way again. The only thing that stays the same in IT is change.
&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/03/pexels-photo-97077-e1521054044988.jpg&#34;&gt; 
</description>
      <source:markdown>&lt;h1 class=&#34;votecell post-layout--left&#34;&gt;Introduction&lt;/h1&gt;
&lt;div class=&#34;answercell post-layout--right&#34;&gt;
&lt;div class=&#34;post-text&#34;&gt;

In this series of posts I&#39;m revisiting &lt;a href=&#34;https://serverfault.com/a/218011/7783&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;an answer&lt;/a&gt; to a question that appeared on &lt;a href=&#34;https://www.serverfault.com&#34;&gt;Server Fault&lt;/a&gt; way back in 2011. I&#39;m pleased to say that it&#39;s been viewed over 100,000 times, and I like to think its helped a few of them.

But it&#39;s time to look again. Since I wrote that post, there have been some huge intrusions, such as the well known &lt;a href=&#34;https://en.wikipedia.org/wiki/Ashley_Madison_data_breach&#34;&gt;Ashely Madison&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Anthem_medical_data_breach&#34;&gt;Anthem Medical Data&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/2014_JPMorgan_Chase_data_breach&#34;&gt;JP Morgan&lt;/a&gt; breaches that affected millions of people.
&lt;h6&gt;[source: &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_data_breaches&#34;&gt;wikipedia list of data breaches&lt;/a&gt;]&lt;/h6&gt;
I&#39;m &lt;em&gt;not&lt;/em&gt; writing for the people who operate at the kind of scale of &lt;em&gt;those&lt;/em&gt; sites here. I&#39;m writing for the scores of people who manage small and medium enterprise systems which handle data and are if anything, despite being a &lt;em&gt;smaller&lt;/em&gt; target than the kinds of organisations I mention above, are likely to be under just as much pressure as they don&#39;t have the kinds of infosec budgets of a &lt;a href=&#34;https://en.wikipedia.org/wiki/Sony_Pictures_hack&#34;&gt;Sony&lt;/a&gt; or an &lt;a href=&#34;https://www.theguardian.com/business/2015/oct/01/experian-hack-t-mobile-credit-checks-personal-information&#34;&gt;Experian&lt;/a&gt; and could well be seen as a softer target. My original post text from Serverfault is quoted below, with my thoughts, revisions and edits added as new text.

(&lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-2/&#34;&gt;Part 2&lt;/a&gt; and &lt;a href=&#34;http://itsalwaysmyproblem.com/2018/03/14/my-servers-been-hacked-what-do-i-do-now-pt-3/&#34;&gt;Part 3&lt;/a&gt; are available)
&lt;blockquote&gt;
&lt;h2&gt;&lt;strong&gt;Don&#39;t Panic&lt;/strong&gt;&lt;/h2&gt;
&lt;em&gt;First things first, there are no &#34;quick fixes&#34; other than restoring your system from a backup taken prior to the intrusion, and this has at least two problems.&lt;/em&gt;
&lt;ol&gt;
	&lt;li&gt;It&#39;s difficult to pinpoint when the intrusion happened.&lt;/li&gt;
	&lt;li&gt;It doesn&#39;t help you close the &#34;hole&#34; that allowed them to break in last time, nor deal with the consequences of any &#34;data theft&#34; that may also have taken place.&lt;/li&gt;
&lt;/ol&gt;
This question keeps being asked repeatedly by the victims of hackers breaking into their web server. The answers very rarely change, but people keep asking the question. I&#39;m not sure why. Perhaps people just don&#39;t like the answers they&#39;ve seen when searching for help, or they can&#39;t find someone they trust to give them advice. Or perhaps people read an answer to this question and focus too much on the 5% of why their case is special and different from the answers they can find online and miss the 95% of the question and answer where their case is near enough the same as the one they read online.

That brings me to the first important nugget of information. I really do appreciate that you are a special unique snowflake. I appreciate that your website is too, as it&#39;s a reflection of you and your business or at the very least, your hard work on behalf of an employer. But to someone on the outside looking in, whether a computer security person looking at the problem to try and help you or even the attacker himself, it is very likely that your problem will be at least 95% identical to every other case they&#39;ve ever looked at.

Don&#39;t take the attack personally, and don&#39;t take the recommendations that follow here or that you get from other people personally. If you are reading this after just becoming the victim of a website hack then I really am sorry, and I really hope you can find something helpful here, but this is not the time to let your ego get in the way of what you need to do.&lt;/blockquote&gt;
I still stand by this first part, more or less, though I will admit to borrowing the first two words from Douglas Adams.
&lt;ul&gt;
	&lt;li&gt;It&#39;s important to &lt;em&gt;reflect before you act&lt;/em&gt;. Before doing anything, you need to make sure that everyone concerned knows what their responsibilities are to the business, its customers, and the legal frameworks in the countries you operate in.You may have obligations to notify customers that they&#39;re victims of information theft, to notify legal/government departments, etc. and it&#39;s important that you don&#39;t act in haste and potentially lost information about the extent of an attack or destroy evidence of who was responsible, how they did it, etc.&lt;/li&gt;
	&lt;li&gt;
&lt;em&gt;It&#39;s important to appoint someone to manage the incident.&lt;/em&gt; It is their job to co-ordinate the technical, legal and operational responses of the business to the incident, which means that they cannot get bogged down in details from any one of those areas.&lt;/li&gt;
	&lt;li&gt;Therefore:&lt;em&gt; The incident manager should not be the technical lead in the investigation. &lt;/em&gt;It&#39;s tempting in a smaller business to put the &#34;IT manager&#34; in charge of the incident (that&#39;s fine) and then also expect the IT Manager to be her own technical lead, which is a gross error.The technical role should be delegated, possibly even outsourced to a specialist, and the manager needs to be taking a step back from worrying about technical trivia and instead concentrating on what the business needs to do to protect itself and its customers.&lt;/li&gt;
	&lt;li&gt;Don&#39;t take the attack personally. It&#39;s just business, even when it isn&#39;t. This is all about making good decisions. It&#39;s ok to be upset but it&#39;s not ok to make bad decisions because you&#39;re upset.Ability to step back from the emotional impact of things like this and work dispassionately should absolutely play a part in your choice of incident manager, technical lead, and so-on, in case you were wondering.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;strong&gt;You have just found out that your server(s) got hacked. Now what?&lt;/strong&gt;

Do not panic. Absolutely do not act in haste, and absolutely do not try and pretend things never happened and not act at all.

First: understand that the disaster has already happened. This is not the time for denial; it is the time to accept what has happened, to be realistic about it, and to take steps to manage the consequences of the impact.Some of these steps are going to hurt, and (unless your website holds a copy of my details) I really don&#39;t care if you ignore all or some of these steps, that&#39;s up to you. But following them properly will make things better in the end. The medicine might taste awful but sometimes you have to overlook that if you really want the cure to work.Stop the problem from becoming worse than it already is:
&lt;ol&gt;
	&lt;li&gt;The first thing you should do is disconnect the affected systems from the Internet. Whatever other problems you have, leaving the system connected to the web will only allow the attack to continue. I mean this quite literally; get someone to physically visit the server and unplug network cables if that is what it takes, but disconnect the victim from its muggers before you try to do anything else.&lt;/li&gt;
	&lt;li&gt;Change all your passwords for all accounts on all computers that are on the same network as the compromised systems. No really. All accounts. All computers. Yes, you&#39;re right, this might be overkill; on the other hand, it might not. You don&#39;t know either way, do you?&lt;/li&gt;
	&lt;li&gt;Check your other systems. Pay special attention to other Internet facing services, and to those that hold financial or other commercially sensitive data.&lt;/li&gt;
	&lt;li&gt;If the system holds anyone&#39;s personal data, immediately inform the person responsible for data protection (if that&#39;s not you) and URGE a full disclosure. I know this one is tough. I know this one is going to hurt. I know that many businesses want to sweep this kind of problem under the carpet but the business is going to have to deal with it - and needs to do so with an eye on any and all relevant privacy laws.&lt;/li&gt;
&lt;/ol&gt;
However annoyed your customers might be to have you tell them about a problem, they&#39;ll be far more annoyed if you don&#39;t tell them, and they only find out for themselves after someone charges $8,000 worth of goods using the credit card details they stole from your site.Remember what I said previously? The bad thing has already happened. The only question now is how well you deal with it.&lt;/blockquote&gt;
&lt;h3&gt;Disclosure is where it&#39;s at now.&lt;/h3&gt;
If I&#39;m going to criticise my 2011 self for anything, it&#39;s for failing to take disclosure seriously enough. Well that and waffling. But in 2018, disclosure has become a huge part of the response to a security breach and it&#39;s completely right that it should be.

Intrusions into servers themselves while still a problem that needs to be addressed operationally, are almost unimportant these days, because &lt;em&gt;data&lt;/em&gt; and &lt;em&gt;services&lt;/em&gt; are now seen as the valuable commodities, more so than servers themselves(&lt;a href=&#34;#1&#34;&gt;1&lt;/a&gt;), and these days it should be fairly trivial to rebuild a server with tools like &lt;a href=&#34;https://puppet.com/&#34;&gt;puppet&lt;/a&gt;, &lt;a href=&#34;https://docs.microsoft.com/en-us/system-center/orchestrator/learn-about-orchestrator?view=sc-orch-1801&#34;&gt;Microsoft System Center&lt;/a&gt;, &lt;a href=&#34;https://chocolatey.org&#34;&gt;Chocolatey&lt;/a&gt; and &lt;a href=&#34;https://kubernetes.io/&#34;&gt;Kubernates&lt;/a&gt;. We should be treat servers as &lt;a href=&#34;https://devops.stackexchange.com/questions/653/what-is-the-definition-of-cattle-not-pets&#34;&gt;cattle, not as pets&lt;/a&gt;, we should be worrying about the services running on these servers and &#34;scaling out&#34; so that the loss of one server isn&#39;t an issue as such, and this completely changes how we can approach an intrusion into any one server - of course it also increases the complexity of determining whether or not your entire farm is rooted, but there ain&#39;t no such thing as a free lunch.

There are a number of positions that need to be considered in disclosure and you need to be aware of how these are perceived throughout the world. If you&#39;re a US company operating in the EU and holding data on EU B2C customers on systems that are local to you then you may have a very complex set of laws to consider, for example, and it may be difficult to know how to balance these requirements.

One thing that might help, ironically, is the rise of cloud. If you can store and process personal data in the same legal zone as the customers who own that personal data then you will probably greatly reduce your legal complexity. I&#39;m predominantly referring to the UK interpretation of the disclosure requirements for &lt;a href=&#34;https://gdpr-info.eu/&#34;&gt;GDPR&lt;/a&gt; in my examples here because I&#39;m a UK citizen living and working in the UK/EU for an UK/EU employer who tasks me with securely storing and processing the data of UK/EU residents.

This is &lt;em&gt;not any kind of legal advice or opinion and&lt;/em&gt; y&lt;em&gt;ou&lt;/em&gt; absolutely should check the legal requirements for the country you&#39;re based in and the countries your company operates in.

Legally, you may have an obligation to disclose any data breach that occurs on your site. In the EU we are obligated under &lt;a href=&#34;https://gdpr-info.eu/art-33-gdpr/&#34;&gt;Article 33&lt;/a&gt; of the GDPR regulations to notify our local &#34;supervisory authority&#34;, which is the information commissioner (&lt;a href=&#34;https://ico.org.uk/for-organisations/guide-to-pecr/communications-networks-and-services/security-breaches/&#34;&gt;ICO&lt;/a&gt;) in the UK and under &lt;a href=&#34;https://gdpr-info.eu/art-34-gdpr/&#34;&gt;Article 34 &lt;/a&gt;we&#39;re also obligated to notify &#34;data subjects&#34; about any breach that&#39;s likely to have resulted in any of their &#34;personal data&#34; being shared with others.

If you read any of these articles you&#39;re probably still not any wiser about when and whom to notify - what are the thresholds for notification? To that end, I&#39;ll point you at &lt;a href=&#34;https://blog.varonis.com/guide-eu-gdpr-breach-notification-rule/&#34;&gt;this discussion&lt;/a&gt; on the Varonis blog which tries to break down what the thresholds mean and what actions you need to take.

But there&#39;s another angle. What is the ethical impact of your disclosure policy? If you feel that an incident doesn&#39;t quite meet the legal requirements where you are to require you to disclose an intrusion/data theft, then what about &lt;a href=&#34;http://pwc.blogs.com/cyber_security_updates/2014/11/ethical-positions-in-breach-handling.html&#34;&gt;ethical obligations&lt;/a&gt;? What about &lt;a href=&#34;https://www.theguardian.com/technology/2015/aug/19/ashley-madison-hack-outcome&#34;&gt;customer confidence&lt;/a&gt;, which can be critically impacted when you&#39;re caught &lt;a href=&#34;https://www.wsj.com/articles/ubers-hack-disclosure-raises-questions-about-timing-1511462671&#34;&gt;acting unethically&lt;/a&gt; around an intrusion? At this point I would suggest that disclosure of data loss or theft is the most important and complex part of your playbook should you suffer a security incident. Get it wrong and you may find yourself in legal difficulties and you will certainly lose credibility with your customers. Get it right... and while it&#39;s still never going to be fun to admit you suffered an intrusion, you can at least win respect from current and potential future customers by showing professional resolve and an ability to learn from your mistakes.

 

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;answercell post-layout--right&#34;&gt;
&lt;div class=&#34;post-text&#34;&gt;

&lt;hr&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;a name=&#34;1&#34;&gt;&lt;/a&gt;
(1) Though given the rise of &#34;&lt;a href=&#34;https://www.webroot.com/blog/2017/12/05/new-cryptojacking-tactic-may-stealing-cpu-power/&#34;&gt;cryptojacking&lt;/a&gt;&#34;, where hackers break into webservers to insert javascript into websites that allows them to use visitors to that website to mine cryptocurrency might start to swing things back the other way again. The only thing that stays the same in IT is change.

&lt;img src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2018/03/pexels-photo-97077-e1521054044988.jpg&#34;&gt; 
</source:markdown>
    </item>
    
    <item>
      <title>Easy PC rebuilds with Chocolatey</title>
      <link>https://itsalwaysmyproblem.com/2017/09/09/easy-pc-rebuilds.html</link>
      <pubDate>Sat, 09 Sep 2017 09:51:57 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2017/09/09/easy-pc-rebuilds.html</guid>
      <description>&lt;p&gt;One of the things that I&amp;rsquo;ve always been interested in is automation, and being able to reproduce a &amp;lsquo;known state&amp;rsquo; reliably and consistently. This applies at work when building servers or workstations thanks to tools like SCCM and Fog, and should be in your grasp at home or in even the smallest office, thanks to &lt;a href=&#34;https://chocolatey.org/&#34;&gt;Chocolatey&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not to make a fine point of it, between my last post and this one I&amp;rsquo;ve rebuilt my PC, installing windows from scratch and all my applications, prepared breakfast for my partner and myself, started some laundry, &lt;em&gt;and&lt;/em&gt; dealt with the cat pulling the net curtains down in my study.&lt;/p&gt;
&lt;p&gt;The easiest part of that was the computer rebuild, with help from Chocolatey. Remember having to spend ages downloading and installing applications when you had to reinstall your Windows PC at home? Remember looking at Linux and (whatever other opinions on Linux you might or might not have) being envious of package managers like &lt;em&gt;&lt;a href=&#34;https://wiki.debian.org/Apt&#34;&gt;apt-get&lt;/a&gt;&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Well this is now perfectly possible in Windows. To reinstall my PC today I:&lt;/p&gt;
&lt;ol&gt;
 	&lt;li&gt;Made sure my backups of my documents folders were up-to-date (which these days is just a matter of making sure your cloud sync tool of choice is working).&lt;/li&gt;
 	&lt;li&gt;Formatted my system disk and re-installed windows with a &lt;a href=&#34;http://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool&#34;&gt;bootable&lt;/a&gt; windows 10 memory stick.&lt;/li&gt;
 	&lt;li&gt;Installed my password manager of choice in Edge so I could get into my accounts.&lt;/li&gt;
 	&lt;li&gt;Ran &#34;rob_choco_install.ps1&#34; from an administrative Powershell command line.&lt;/li&gt;
 	&lt;li&gt;That&#39;s it.&lt;/li&gt;
 	&lt;li&gt;Well not entirely. I&#39;m still not happy that apps from the windows store install without my consent on a new PC and take effort to tidy up. If you want us to use the store, here&#39;s a suggestion Microsoft: &lt;em&gt;Genuinely&lt;/em&gt; compelling applications and content. Just a thought.&lt;/li&gt;
&lt;/ol&gt;
&lt;strong&gt;So what&#39;s &#34;rob_choco_install.ps1&#34; then?&lt;/strong&gt; Simple, a bit of powershell that contains the instructions below:
&lt;blockquote&gt;Set-ExecutionPolicy AllSigned; iex ((New-Object System.Net.WebClient).DownloadString(&#39;[chocolatey.org/install.p...](https://chocolatey.org/install.ps1&#39;)))
&lt;p&gt;choco install -y malwarebytes
choco install -y opendns-updater
choco install -y spotify
choco install -y itunes
choco install -y office365proplus
choco install -y adobe-creative-cloud
choco install -y steam
choco install -y uplay
choco install -y chrome
choco install -y chromium
choco install -y palemoon
choco install -y firefox
choco install -y vlc
choco install -y notepadplusplus
choco install -y windirstat
choco install -y adblockplus-firefox
choco install -y adblockpluschrome
choco install -y plexmediaserver
choco install -y plex-home-theater
choco install -y handbrake.install&lt;/blockquote&gt;
So the first line installs Chocolatey from Chocolatey.org&amp;rsquo;s server. The subsequent lines install about 90% of all the applications I use on this computer as Application Packages. An application package is an application, plus installation steps for Chocolatey to use to install the application. I could have all those application packages on one line but I personally prefer to split them up, but if you wanted, one line like the example below would be just as valid as my example above.&lt;/p&gt;
&lt;blockquote&gt;choco install -y windirstat vlc firefox notepadplusplus steam uplay&lt;/blockquote&gt;
Sure, some of these packages are just tiny little applications, but there are some heavy hitters in there too, for example:
&lt;blockquote&gt;choco install -y office365proplus
choco install -y adobe-creative-cloud&lt;/blockquote&gt;
Yes, those are &lt;em&gt;full&lt;/em&gt; installers for the Office 365 full &#39;Click to Run&#39; package, and Adobe&#39;s Creative Cloud manager. So that&#39;s the full version of Microsoft Office and Adobe&#39;s Creative Cloud suite, along with other applications like iTunes, Steam, my many web browsers, all installed automatically while I was off poaching eggs and asparagus for breakfast.
&lt;p&gt;This means that if you have good backups of your data (and if not, &lt;em&gt;why not&lt;/em&gt;), a good password manager (and again, if not &lt;em&gt;why not&lt;/em&gt;) and the will to try something new, your computer at home can be rebuilt from scratch in slightly less than an hour &lt;em&gt;without you having to do much of anything except log in&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What about security?&lt;/strong&gt; Good question. The free to use open source package repository does make checks of the packages but you should still carry out your own due diligence. Luckily, there &lt;em&gt;is&lt;/em&gt; a virus scanning service in the opt-in paid for subscription versions of Chocolatey, along with the ability for all of us to look at the packages we&amp;rsquo;re installing and what they do before installing them.&lt;/p&gt;
&lt;p&gt;[caption id=&amp;ldquo;attachment_739&amp;rdquo; align=&amp;ldquo;alignleft&amp;rdquo; width=&amp;ldquo;300&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/choco_o365.png&#34;&gt;&lt;img class=&#34;alignleft size-medium wp-image-739&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/choco_o365.png?w=300&#34; alt=&#34;choco_o365&#34; width=&#34;300&#34; height=&#34;243&#34;&gt;&lt;/a&gt; Office 365 Package on Chocolatey[/caption]&lt;/p&gt;
&lt;p&gt;For example, where I mention Office 365 ProPlus above, it would surely be a problem to install that from a compromised source. Luckily, I can go to the package repository, search for &amp;lsquo;office365proplus&amp;rsquo; and see what &lt;a href=&#34;https://chocolatey.org/packages/Office365ProPlus&#34;&gt;the package&lt;/a&gt; contains and does. I can expand the &amp;lsquo;files&amp;rsquo; option and inspect the files and notice the download source is a Microsoft.com site, and I can check the configuration file to ensure nothing suspicious is happening&amp;hellip; and I can do this for all the packages in the repository.&lt;/p&gt;
&lt;p&gt;In my opinion and with some caveats, this is a &lt;em&gt;good&lt;/em&gt; option for security. While it&amp;rsquo;s fairly easy to get reasonable providence for packages like Microsoft Office and Adobe Creative Cloud, it might be more difficult for less computer savvy people to wade through deceptive ads when they go online and just search for &amp;ldquo;Malwarebytes&amp;rdquo; in their new computer&amp;rsquo;s default web browser&amp;hellip;&lt;/p&gt;
&lt;p&gt;[caption id=&amp;ldquo;attachment_740&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;300&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/malwarebytes-search.png&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-740&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/malwarebytes-search.png?w=300&#34; alt=&#34;malwarebytes search&#34; width=&#34;300&#34; height=&#34;233&#34;&gt;&lt;/a&gt; &amp;ldquo;I just went on the Internet, and I found this&amp;rdquo;[/caption]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What about keeping it all updated?&lt;/strong&gt; Good question. Many of these applications will update themselves once they&amp;rsquo;re installed anyway. Steam and Spotify are good examples that lots of people will be familiar with on a home PC of how this can work.&lt;/p&gt;
&lt;p&gt;For everything else installed through Chocolatey, it&amp;rsquo;s still not too bad.&lt;/p&gt;
&lt;blockquote&gt;Choco upgrade all&lt;/blockquote&gt;
Yes, running that from a powershell command line (or if you&#39;re feeling fancy, a powershell job in your task scheduler) will update all applications installed via Chocolatey to the latest version published in the Chocolatey repository.
&lt;p&gt;&lt;strong&gt;What about removing old software?&lt;/strong&gt; Again, not too bad&amp;hellip;&lt;/p&gt;
&lt;blockquote&gt;Choco uninstall &lt;em&gt;package-name&lt;/em&gt;
&lt;/blockquote&gt;
What about a GUI to manage this with? Ah yes. I have to admit I felt the same way when I started playing with Chocolatey, though I find myself using it less and less now, but still, you&#39;ve got options.
&lt;blockquote&gt;Choco install -y chocolateygui&lt;/blockquote&gt;
... will install a graphical interface for Chocolatey. This really only allows you to do the basic stuff such as install, upgrade, remove and search for packages. Luckily, that&#39;s about 90% of what most people want to do.
&lt;p&gt;[caption id=&amp;ldquo;attachment_765&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;300&amp;rdquo;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/chocolatey.png&#34;&gt;&lt;img class=&#34;aligncenter size-medium wp-image-765&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/chocolatey.png?w=300&#34; alt=&#34;chocolatey&#34; width=&#34;300&#34; height=&#34;169&#34;&gt;&lt;/a&gt; Chocolatey Gui allows you to do basic installation and management of packages.[/caption]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What about business use?&lt;/strong&gt; I could tell you my thoughts now, but this article is getting long and it&amp;rsquo;s time to go to the gym, so wait for part 2.&lt;/p&gt;
</description>
      <source:markdown>One of the things that I&#39;ve always been interested in is automation, and being able to reproduce a &#39;known state&#39; reliably and consistently. This applies at work when building servers or workstations thanks to tools like SCCM and Fog, and should be in your grasp at home or in even the smallest office, thanks to &lt;a href=&#34;https://chocolatey.org/&#34;&gt;Chocolatey&lt;/a&gt;.

Not to make a fine point of it, between my last post and this one I&#39;ve rebuilt my PC, installing windows from scratch and all my applications, prepared breakfast for my partner and myself, started some laundry, &lt;em&gt;and&lt;/em&gt; dealt with the cat pulling the net curtains down in my study.

The easiest part of that was the computer rebuild, with help from Chocolatey. Remember having to spend ages downloading and installing applications when you had to reinstall your Windows PC at home? Remember looking at Linux and (whatever other opinions on Linux you might or might not have) being envious of package managers like &lt;em&gt;&lt;a href=&#34;https://wiki.debian.org/Apt&#34;&gt;apt-get&lt;/a&gt;&lt;/em&gt;?

Well this is now perfectly possible in Windows. To reinstall my PC today I:
&lt;ol&gt;
 	&lt;li&gt;Made sure my backups of my documents folders were up-to-date (which these days is just a matter of making sure your cloud sync tool of choice is working).&lt;/li&gt;
 	&lt;li&gt;Formatted my system disk and re-installed windows with a &lt;a href=&#34;http://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool&#34;&gt;bootable&lt;/a&gt; windows 10 memory stick.&lt;/li&gt;
 	&lt;li&gt;Installed my password manager of choice in Edge so I could get into my accounts.&lt;/li&gt;
 	&lt;li&gt;Ran &#34;rob_choco_install.ps1&#34; from an administrative Powershell command line.&lt;/li&gt;
 	&lt;li&gt;That&#39;s it.&lt;/li&gt;
 	&lt;li&gt;Well not entirely. I&#39;m still not happy that apps from the windows store install without my consent on a new PC and take effort to tidy up. If you want us to use the store, here&#39;s a suggestion Microsoft: &lt;em&gt;Genuinely&lt;/em&gt; compelling applications and content. Just a thought.&lt;/li&gt;
&lt;/ol&gt;
&lt;strong&gt;So what&#39;s &#34;rob_choco_install.ps1&#34; then?&lt;/strong&gt; Simple, a bit of powershell that contains the instructions below:
&lt;blockquote&gt;Set-ExecutionPolicy AllSigned; iex ((New-Object System.Net.WebClient).DownloadString(&#39;[chocolatey.org/install.p...](https://chocolatey.org/install.ps1&#39;)))

choco install -y malwarebytes
choco install -y opendns-updater
choco install -y spotify
choco install -y itunes
choco install -y office365proplus
choco install -y adobe-creative-cloud
choco install -y steam
choco install -y uplay
choco install -y chrome
choco install -y chromium
choco install -y palemoon
choco install -y firefox
choco install -y vlc
choco install -y notepadplusplus
choco install -y windirstat
choco install -y adblockplus-firefox
choco install -y adblockpluschrome
choco install -y plexmediaserver
choco install -y plex-home-theater
choco install -y handbrake.install&lt;/blockquote&gt;
So the first line installs Chocolatey from Chocolatey.org&#39;s server. The subsequent lines install about 90% of all the applications I use on this computer as Application Packages. An application package is an application, plus installation steps for Chocolatey to use to install the application. I could have all those application packages on one line but I personally prefer to split them up, but if you wanted, one line like the example below would be just as valid as my example above.
&lt;blockquote&gt;choco install -y windirstat vlc firefox notepadplusplus steam uplay&lt;/blockquote&gt;
Sure, some of these packages are just tiny little applications, but there are some heavy hitters in there too, for example:
&lt;blockquote&gt;choco install -y office365proplus
choco install -y adobe-creative-cloud&lt;/blockquote&gt;
Yes, those are &lt;em&gt;full&lt;/em&gt; installers for the Office 365 full &#39;Click to Run&#39; package, and Adobe&#39;s Creative Cloud manager. So that&#39;s the full version of Microsoft Office and Adobe&#39;s Creative Cloud suite, along with other applications like iTunes, Steam, my many web browsers, all installed automatically while I was off poaching eggs and asparagus for breakfast.

This means that if you have good backups of your data (and if not, &lt;em&gt;why not&lt;/em&gt;), a good password manager (and again, if not &lt;em&gt;why not&lt;/em&gt;) and the will to try something new, your computer at home can be rebuilt from scratch in slightly less than an hour &lt;em&gt;without you having to do much of anything except log in&lt;/em&gt;.

&lt;strong&gt;What about security?&lt;/strong&gt; Good question. The free to use open source package repository does make checks of the packages but you should still carry out your own due diligence. Luckily, there &lt;em&gt;is&lt;/em&gt; a virus scanning service in the opt-in paid for subscription versions of Chocolatey, along with the ability for all of us to look at the packages we&#39;re installing and what they do before installing them.

[caption id=&#34;attachment_739&#34; align=&#34;alignleft&#34; width=&#34;300&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/choco_o365.png&#34;&gt;&lt;img class=&#34;alignleft size-medium wp-image-739&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/choco_o365.png?w=300&#34; alt=&#34;choco_o365&#34; width=&#34;300&#34; height=&#34;243&#34;&gt;&lt;/a&gt; Office 365 Package on Chocolatey[/caption]

For example, where I mention Office 365 ProPlus above, it would surely be a problem to install that from a compromised source. Luckily, I can go to the package repository, search for &#39;office365proplus&#39; and see what &lt;a href=&#34;https://chocolatey.org/packages/Office365ProPlus&#34;&gt;the package&lt;/a&gt; contains and does. I can expand the &#39;files&#39; option and inspect the files and notice the download source is a Microsoft.com site, and I can check the configuration file to ensure nothing suspicious is happening... and I can do this for all the packages in the repository.

In my opinion and with some caveats, this is a &lt;em&gt;good&lt;/em&gt; option for security. While it&#39;s fairly easy to get reasonable providence for packages like Microsoft Office and Adobe Creative Cloud, it might be more difficult for less computer savvy people to wade through deceptive ads when they go online and just search for &#34;Malwarebytes&#34; in their new computer&#39;s default web browser...

[caption id=&#34;attachment_740&#34; align=&#34;aligncenter&#34; width=&#34;300&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/malwarebytes-search.png&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-740&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/malwarebytes-search.png?w=300&#34; alt=&#34;malwarebytes search&#34; width=&#34;300&#34; height=&#34;233&#34;&gt;&lt;/a&gt; &#34;I just went on the Internet, and I found this&#34;[/caption]

&lt;strong&gt;What about keeping it all updated?&lt;/strong&gt; Good question. Many of these applications will update themselves once they&#39;re installed anyway. Steam and Spotify are good examples that lots of people will be familiar with on a home PC of how this can work.

For everything else installed through Chocolatey, it&#39;s still not too bad.
&lt;blockquote&gt;Choco upgrade all&lt;/blockquote&gt;
Yes, running that from a powershell command line (or if you&#39;re feeling fancy, a powershell job in your task scheduler) will update all applications installed via Chocolatey to the latest version published in the Chocolatey repository.

&lt;strong&gt;What about removing old software?&lt;/strong&gt; Again, not too bad...
&lt;blockquote&gt;Choco uninstall &lt;em&gt;package-name&lt;/em&gt;
&lt;/blockquote&gt;
What about a GUI to manage this with? Ah yes. I have to admit I felt the same way when I started playing with Chocolatey, though I find myself using it less and less now, but still, you&#39;ve got options.
&lt;blockquote&gt;Choco install -y chocolateygui&lt;/blockquote&gt;
... will install a graphical interface for Chocolatey. This really only allows you to do the basic stuff such as install, upgrade, remove and search for packages. Luckily, that&#39;s about 90% of what most people want to do.

[caption id=&#34;attachment_765&#34; align=&#34;aligncenter&#34; width=&#34;300&#34;]&lt;a href=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/chocolatey.png&#34;&gt;&lt;img class=&#34;aligncenter size-medium wp-image-765&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/09/chocolatey.png?w=300&#34; alt=&#34;chocolatey&#34; width=&#34;300&#34; height=&#34;169&#34;&gt;&lt;/a&gt; Chocolatey Gui allows you to do basic installation and management of packages.[/caption]

&lt;strong&gt;What about business use?&lt;/strong&gt; I could tell you my thoughts now, but this article is getting long and it&#39;s time to go to the gym, so wait for part 2.
</source:markdown>
    </item>
    
    <item>
      <title>Malware emails - doing it wrong.</title>
      <link>https://itsalwaysmyproblem.com/2017/09/09/malware-emails-doing.html</link>
      <pubDate>Sat, 09 Sep 2017 06:12:09 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2017/09/09/malware-emails-doing.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m currently reading /r/sysadmin on reddit at the moment, specifically &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/&#34;&gt;this post&lt;/a&gt; from someone ranting that a user complain that &amp;ldquo;malware spam e-mail&amp;rdquo; went to their mail client&amp;rsquo;s spam folder. While this is classed as a &lt;em&gt;rant&lt;/em&gt; on the site and not intended as deep analysis of a problem, their entire comment on this was:&lt;/p&gt;
&lt;blockquote&gt;What the hell? This is exactly what it should have done!&lt;/blockquote&gt;
I&#39;m really not sure what to say to this, or to the responses that suggest telling the &#34;user&#34; that they&#39;re &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmr0pxw/&#34;&gt;too dumb to have a job involving computers,&lt;/a&gt; except to say that this is wrong-headed thinking of the highest order.
&lt;p&gt;If an email is known to be &amp;lsquo;bad&amp;rsquo;, that is, if we can say with certainty that it contains malware, or links to malware, then it simply shouldn&amp;rsquo;t be delivered to the mailbox at all. If something is in the mailbox then it&amp;rsquo;s a fair possibility it will be opened. Not because &amp;lsquo;users are dumb&amp;rsquo; but because we&amp;rsquo;re all human and can click on anything by accident or at the end of a long day. And a simple scan of /r/sysadmin will show that &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6vkrn7/domain_admin_just_ran_a_malicious_attachment/&#34;&gt;IT professionals are not immune to doing this themselves&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Leaving aside the issue of things going undetected by your security systems, if your email security scans &lt;em&gt;can&lt;/em&gt; identify something with 90% confidence or more as malware-related, or phishing, or even &amp;lsquo;good old-fashioned spam&amp;rsquo; then it should be possible to tell it to simply not deliver the email. It should also be possible to quarantine these messages in an area that is separate from the mailbox and prevent non-technical users from being able to release malware by allowing the network manager to control who has access to which types of blocked content.&lt;/p&gt;
&lt;p&gt;If your email scanner cannot do that then you have a bad email scanner. If your email scanner &lt;em&gt;can&lt;/em&gt; do that but &lt;em&gt;known bad&lt;/em&gt; emails end up being delivered to mailboxes anyway then whoever is in charge of that scanner is doing a bad job.&lt;/p&gt;
&lt;p&gt;Another &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmqjhsj/&#34;&gt;post on this thread&lt;/a&gt; sums up the reason why a lot of &amp;lsquo;users&amp;rsquo; (I do prefer the term &amp;lsquo;customer&amp;rsquo;) dislike IT professionals quite well:&lt;/p&gt;
&lt;blockquote&gt;At some point, these mouth breathers have to take some personal goddamn responsibility. If you walked out into the road without looking because the light said you could, then you get run over, guess what? You&#39;re still dead.&lt;/blockquote&gt;
Charmed, I&#39;m sure. Actually, I agree that people do need to take responsibility for their own actions. I won&#39;t, in fairness, defend people who &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmqgbfc/&#34;&gt;store important email messages in their mail client&#39;s &#39;trash&#39; folder&lt;/a&gt; and expect it to still be there the next day.
&lt;p&gt;But responsibility is a two-way thing. I&amp;rsquo;m responsible for providing the best service to my customers that I can with the budget I have. To me, that includes not delivering known malicious emails to their mailbox, &lt;em&gt;and&lt;/em&gt; not calling the &lt;em&gt;customers&lt;/em&gt; stupid when my systems get it wrong.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s so rare that malware breaks through into our email accounts where I work that our customers pretty much all tell me straight away&amp;hellip;&lt;/p&gt;
&lt;p&gt;And you know what? &lt;em&gt;I&amp;rsquo;m glad they tell me&lt;/em&gt; and I always thank them politely and assure them they&amp;rsquo;ve done the right thing by putting a ticket in about it, because that&amp;rsquo;s much better than guessing for themselves and running malware code.&lt;/p&gt;
</description>
      <source:markdown>I&#39;m currently reading /r/sysadmin on reddit at the moment, specifically &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/&#34;&gt;this post&lt;/a&gt; from someone ranting that a user complain that &#34;malware spam e-mail&#34; went to their mail client&#39;s spam folder. While this is classed as a &lt;em&gt;rant&lt;/em&gt; on the site and not intended as deep analysis of a problem, their entire comment on this was:
&lt;blockquote&gt;What the hell? This is exactly what it should have done!&lt;/blockquote&gt;
I&#39;m really not sure what to say to this, or to the responses that suggest telling the &#34;user&#34; that they&#39;re &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmr0pxw/&#34;&gt;too dumb to have a job involving computers,&lt;/a&gt; except to say that this is wrong-headed thinking of the highest order.

If an email is known to be &#39;bad&#39;, that is, if we can say with certainty that it contains malware, or links to malware, then it simply shouldn&#39;t be delivered to the mailbox at all. If something is in the mailbox then it&#39;s a fair possibility it will be opened. Not because &#39;users are dumb&#39; but because we&#39;re all human and can click on anything by accident or at the end of a long day. And a simple scan of /r/sysadmin will show that &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6vkrn7/domain_admin_just_ran_a_malicious_attachment/&#34;&gt;IT professionals are not immune to doing this themselves&lt;/a&gt;.

Leaving aside the issue of things going undetected by your security systems, if your email security scans &lt;em&gt;can&lt;/em&gt; identify something with 90% confidence or more as malware-related, or phishing, or even &#39;good old-fashioned spam&#39; then it should be possible to tell it to simply not deliver the email. It should also be possible to quarantine these messages in an area that is separate from the mailbox and prevent non-technical users from being able to release malware by allowing the network manager to control who has access to which types of blocked content.

If your email scanner cannot do that then you have a bad email scanner. If your email scanner &lt;em&gt;can&lt;/em&gt; do that but &lt;em&gt;known bad&lt;/em&gt; emails end up being delivered to mailboxes anyway then whoever is in charge of that scanner is doing a bad job.

Another &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmqjhsj/&#34;&gt;post on this thread&lt;/a&gt; sums up the reason why a lot of &#39;users&#39; (I do prefer the term &#39;customer&#39;) dislike IT professionals quite well:
&lt;blockquote&gt;At some point, these mouth breathers have to take some personal goddamn responsibility. If you walked out into the road without looking because the light said you could, then you get run over, guess what? You&#39;re still dead.&lt;/blockquote&gt;
Charmed, I&#39;m sure. Actually, I agree that people do need to take responsibility for their own actions. I won&#39;t, in fairness, defend people who &lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/6yu9pw/just_had_a_user_complaining_that_a_malware_spam/dmqgbfc/&#34;&gt;store important email messages in their mail client&#39;s &#39;trash&#39; folder&lt;/a&gt; and expect it to still be there the next day.

But responsibility is a two-way thing. I&#39;m responsible for providing the best service to my customers that I can with the budget I have. To me, that includes not delivering known malicious emails to their mailbox, &lt;em&gt;and&lt;/em&gt; not calling the &lt;em&gt;customers&lt;/em&gt; stupid when my systems get it wrong.

It&#39;s so rare that malware breaks through into our email accounts where I work that our customers pretty much all tell me straight away...

And you know what? &lt;em&gt;I&#39;m glad they tell me&lt;/em&gt; and I always thank them politely and assure them they&#39;ve done the right thing by putting a ticket in about it, because that&#39;s much better than guessing for themselves and running malware code.
</source:markdown>
    </item>
    
    <item>
      <title>Office 365 email migration gotchas</title>
      <link>https://itsalwaysmyproblem.com/2017/08/08/office-email-migration.html</link>
      <pubDate>Tue, 08 Aug 2017 10:13:19 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2017/08/08/office-email-migration.html</guid>
      <description>&lt;p&gt;One of the things I&amp;rsquo;m working on at the moment is moving the remainder of our Exchange organisation over to Office 365 / Exchange Online.&lt;/p&gt;
&lt;p&gt;We moved the bulk of our accounts some time ago; students here have been on Office 365 Exchange email for a few years, but staff and &amp;lsquo;role&amp;rsquo; email accounts have been held on local Exchange servers until this month.&lt;/p&gt;
&lt;p&gt;The things I&amp;rsquo;ve seen people worry about on these migrations have actually been the least of my worries. All my mailbox accounts migrated using the Exchange Online migration tools without any real difficulty. The few gotchas I found here are that users with an online archive mailbox cannot be migrated &amp;lsquo;as is&amp;rsquo;, and users who do not have a &amp;lsquo;&lt;em&gt;@domain.mail.onmicrosoft.com&lt;/em&gt;&amp;rsquo; address defined in their email addresses.&lt;/p&gt;
&lt;p&gt;The most common cause for the email address is the default email address policy not being applied to that user, which is a tickbox in the EMC on your Exchange server &lt;em&gt;recipients / mailbox user / email addresses&lt;/em&gt; dialogue, or can be enabled via powershell with:
&lt;span style=&#34;color:#ff0000;&#34;&gt; Get-RemoteMailbox &amp;lt;name of mailbox&amp;gt; | Set-RemoteMailbox -EmailAddressPolicyEnabled $True&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Or if you wish to apply this to all mailboxes (ensure it hasn&amp;rsquo;t been disabled for a reason if you have a large number of mailboxes in this state):
&lt;span style=&#34;color:#ff0000;&#34;&gt;Get-mailbox –resultsize unlimited | Set-Mailbox -EmailAddressPolicyEnabled $true&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Another issue is with password complexity rules and role /  service mailbox accounts. Based on our experience here, where an account has been set up some time ago, and subsequently the password complexity rules for your domain have changed so that the account&amp;rsquo;s password would &lt;em&gt;no longer be valid&lt;/em&gt;, then even though it still is valid as far as your local domain is concerned and you can log into a domain workstation with the &amp;lsquo;old&amp;rsquo; credentials, login to Office 365 may well fail. The answer is to update the password to one that meets your new complexity requirements.&lt;/p&gt;
&lt;p&gt;Lastly, and again this might be an issue with older service accounts, ensure that the &lt;a href=&#34;https://www.codetwo.com/kb/upn/&#34;&gt;UPN&lt;/a&gt; is sensible (I suggest it should match the email address, and I think most people would &lt;a href=&#34;http://blogs.perficient.com/microsoft/2015/07/office-365-why-your-upn-should-match-your-primary-smtp-address/&#34;&gt;agree with me&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve been able to update things like database email settings, role mailboxes and third-party apps to send SMTP mail directly via Office 365, rather than a local relay, using those caveats around passwords and the mail server settings below:&lt;/p&gt;
&lt;p&gt;SMTP Server : smtp.office365.com
Port                 : 587
SSL / TLS      : Yes (note that if your app uses really old SSL 2.0 and nothing newer you may have trouble. It&amp;rsquo;s time to upgrade)&lt;/p&gt;
&lt;p&gt;Authenticate with:&lt;/p&gt;
&lt;p&gt;Username : &lt;a href=&#34;mailto:user@domain.com&#34;&gt;user@domain.com&lt;/a&gt; (should be the full UPN as defined in Active Directory User &amp;amp; Computers)
Password  : {Active Directory Password}&lt;/p&gt;
</description>
      <source:markdown>One of the things I&#39;m working on at the moment is moving the remainder of our Exchange organisation over to Office 365 / Exchange Online.

We moved the bulk of our accounts some time ago; students here have been on Office 365 Exchange email for a few years, but staff and &#39;role&#39; email accounts have been held on local Exchange servers until this month.

The things I&#39;ve seen people worry about on these migrations have actually been the least of my worries. All my mailbox accounts migrated using the Exchange Online migration tools without any real difficulty. The few gotchas I found here are that users with an online archive mailbox cannot be migrated &#39;as is&#39;, and users who do not have a &#39;&lt;em&gt;@domain.mail.onmicrosoft.com&lt;/em&gt;&#39; address defined in their email addresses.

The most common cause for the email address is the default email address policy not being applied to that user, which is a tickbox in the EMC on your Exchange server &lt;em&gt;recipients / mailbox user / email addresses&lt;/em&gt; dialogue, or can be enabled via powershell with:
&lt;span style=&#34;color:#ff0000;&#34;&gt; Get-RemoteMailbox &amp;lt;name of mailbox&amp;gt; | Set-RemoteMailbox -EmailAddressPolicyEnabled $True&lt;/span&gt;

Or if you wish to apply this to all mailboxes (ensure it hasn&#39;t been disabled for a reason if you have a large number of mailboxes in this state):
&lt;span style=&#34;color:#ff0000;&#34;&gt;Get-mailbox –resultsize unlimited | Set-Mailbox -EmailAddressPolicyEnabled $true&lt;/span&gt;

Another issue is with password complexity rules and role /  service mailbox accounts. Based on our experience here, where an account has been set up some time ago, and subsequently the password complexity rules for your domain have changed so that the account&#39;s password would &lt;em&gt;no longer be valid&lt;/em&gt;, then even though it still is valid as far as your local domain is concerned and you can log into a domain workstation with the &#39;old&#39; credentials, login to Office 365 may well fail. The answer is to update the password to one that meets your new complexity requirements.

Lastly, and again this might be an issue with older service accounts, ensure that the &lt;a href=&#34;https://www.codetwo.com/kb/upn/&#34;&gt;UPN&lt;/a&gt; is sensible (I suggest it should match the email address, and I think most people would &lt;a href=&#34;http://blogs.perficient.com/microsoft/2015/07/office-365-why-your-upn-should-match-your-primary-smtp-address/&#34;&gt;agree with me&lt;/a&gt;).

We&#39;ve been able to update things like database email settings, role mailboxes and third-party apps to send SMTP mail directly via Office 365, rather than a local relay, using those caveats around passwords and the mail server settings below:

SMTP Server : smtp.office365.com
Port                 : 587
SSL / TLS      : Yes (note that if your app uses really old SSL 2.0 and nothing newer you may have trouble. It&#39;s time to upgrade)

Authenticate with:

Username : user@domain.com (should be the full UPN as defined in Active Directory User &amp;amp; Computers)
Password  : {Active Directory Password}
</source:markdown>
    </item>
    
    <item>
      <title>Keeping Children Safe in Education</title>
      <link>https://itsalwaysmyproblem.com/2017/06/11/keeping-children-safe.html</link>
      <pubDate>Sun, 11 Jun 2017 11:09:25 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2017/06/11/keeping-children-safe.html</guid>
      <description>&lt;p&gt;So I recently did a podcast with SonicWall on Safeguarding and the statutory guidance on Keeping Children Safe in Education (&lt;a href=&#34;https://www.gov.uk/government/publications/keeping-children-safe-in-education--2&#34;&gt;KCSiE&lt;/a&gt;). You can listen to it &lt;a href=&#34;https://www.brighttalk.com/webcast/12593/258497&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Invaluable resources:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Safer Internet Centre&#39;s &lt;a href=&#34;https://www.saferinternet.org.uk/advice-centre&#34;&gt;Advice section&lt;/a&gt;.&lt;/li&gt;
 	&lt;li&gt;Internet Watch Foundation (&lt;a href=&#34;https://www.iwf.org.uk/&#34;&gt;IWF&lt;/a&gt;)&lt;/li&gt;
 	&lt;li&gt;
&lt;a href=&#34;https://www.thinkuknow.co.uk/&#34;&gt;Thinkuknow&lt;/a&gt; website.&lt;/li&gt;
&lt;/ul&gt;
</description>
      <source:markdown>So I recently did a podcast with SonicWall on Safeguarding and the statutory guidance on Keeping Children Safe in Education (&lt;a href=&#34;https://www.gov.uk/government/publications/keeping-children-safe-in-education--2&#34;&gt;KCSiE&lt;/a&gt;). You can listen to it &lt;a href=&#34;https://www.brighttalk.com/webcast/12593/258497&#34;&gt;here&lt;/a&gt;.

Invaluable resources:
&lt;ul&gt;
 	&lt;li&gt;Safer Internet Centre&#39;s &lt;a href=&#34;https://www.saferinternet.org.uk/advice-centre&#34;&gt;Advice section&lt;/a&gt;.&lt;/li&gt;
 	&lt;li&gt;Internet Watch Foundation (&lt;a href=&#34;https://www.iwf.org.uk/&#34;&gt;IWF&lt;/a&gt;)&lt;/li&gt;
 	&lt;li&gt;
&lt;a href=&#34;https://www.thinkuknow.co.uk/&#34;&gt;Thinkuknow&lt;/a&gt; website.&lt;/li&gt;
&lt;/ul&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Upgrading Windows PKI from SHA1 to SHA2</title>
      <link>https://itsalwaysmyproblem.com/2017/06/07/upgrading-windows-pki.html</link>
      <pubDate>Wed, 07 Jun 2017 09:35:48 +0000</pubDate>
      
      <guid>http://robmo.micro.blog/2017/06/07/upgrading-windows-pki.html</guid>
      <description>&lt;p&gt;As I&amp;rsquo;m sure most of us know by now, SHA1 cryptography hashes have been increasingly under attack, and are now regarded as &lt;a href=&#34;https://www.theverge.com/2017/2/23/14712118/google-sha1-collision-broken-web-encryption-shattered&#34;&gt;fully broken&lt;/a&gt;. In fact, my use of &amp;ldquo;now&amp;rdquo; kinda understates the point; you should be urgently looking to upgrade to SHA2 if you have any devices or servers using certificates.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re not aware of these risks then please look around. There are some good &lt;a href=&#34;https://www.entrust.com/series/sha-2-migration/&#34;&gt;introductory articles&lt;/a&gt; on the entrust website that talk about this issue, but please note that these articles are from 2014 and somewhat understand the urgency of the issue.&lt;/p&gt;
&lt;p&gt;Upgrading your public facing websites and services that use public certificates (e.g. certificates you purchase from a public Certificate Authority, aka &amp;ldquo;CA&amp;rdquo;, online) is actually fairly easy; buy a new certificate from a competent supplier, install it, remove old certificate. Job done&amp;hellip; (though as ever the devil is in the details).&lt;/p&gt;
&lt;p&gt;For those who are running a Windows Certificate Authority (CA) to issue private certificates to servers and devices on your network, there is potentially a different problem: How do you ensure that your private CA is able to issue SHA2 certificates, and if not, how do you upgrade it so that it can?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to discuss the methods I use, which are designed for a Windows PKI infrastructure with several levels (a root CA and subordinate &amp;ldquo;issuing&amp;rdquo; CAs).&lt;/p&gt;
&lt;p&gt;In a lot of ways, this really isn&amp;rsquo;t difficult at all. The steps you need to perform to actually complete the upgrade are extremely simple but the preparation you should carry out beforehand needs to be painstakingly done.&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
I&#39;m assuming that you&#39;re fairly knowledgeable and comfortable with manipulating certificates, and understand basic processes around managing private Windows CAs on your network. If this doesn&#39;t describe you then I strongly advise you to get help, hire a consultant if need be, before proceeding. While I&#39;m actually quite confident that the processes I outline below are robust and that the articles I link to are good, well written articles from knowledgeable people, you will still to be able to understand the concepts we&#39;re talking about and be able to adopt instructions to your environment before starting the upgrade process.
&lt;p&gt;First of all, you need to examine your environment. If you&amp;rsquo;re using Windows XP machines and Windows 2003 servers then you will have problems with SHA2 certificates. There is a &lt;a href=&#34;https://support.microsoft.com/en-us/help/968730/windows-server-2003-and-windows-xp-clients-cannot-obtain-certificates-from-a-windows-server-2008-based-certification-authority-ca-if-the-ca-is-configured-to-use-sha2-256-or-higher-encryption&#34;&gt;hotfix available&lt;/a&gt; but if this describes your environment then certificate hashes are probably the least of your security worries. You should also review appliances and applications on your network that use certificates issued by your CAs and ensure that they can handle the update to SHA2. This &lt;em&gt;should&lt;/em&gt; apply to most modern systems that are kept reasonably up-to-date, but &amp;ldquo;most modern systems&amp;rdquo; isn&amp;rsquo;t the same as &amp;ldquo;all&amp;rdquo;, so make sure you&amp;rsquo;ve checked this before starting work.&lt;/p&gt;
&lt;p&gt;Ideally your Certificate Authorities should be running the newest version of Windows Server possible, and I&amp;rsquo;d strongly suggest a bare minimum of Windows 2012 to cover all bases. It&amp;rsquo;s perfectly possible to upgrade a 64-bit version of Windows 2008 server all the way through to Windows 2016 server if you need to. Whether or not you feel that&amp;rsquo;s a good idea is possibly another question, but you&amp;rsquo;ve hopefully kept your CAs isolated and  free from other roles and that should help make upgrading the CA servers in place more viable.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re using an older 32 bit version of Windows Server then you cannot upgrade directly to Windows 2012 or newer. If this is you, there is an article on &lt;a href=&#34;https://technet.microsoft.com/en-us/library/ee126140(WS.10).aspx&#34;&gt;migrating your CA to a new server&lt;/a&gt; on Technet which you can follow to upgrade to a modern CA.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d also suggest that CAs are a good candidate for virtualisation, which will make some of the operations I&amp;rsquo;m about to discuss easier, and in any case you don&amp;rsquo;t want your PKI infrastructure to die because of a dodgy hard drive in a server from 2006. My guides below assume you&amp;rsquo;re working with &lt;em&gt;at least&lt;/em&gt; Windows Server 2012 (my examples were tested on Windows Server 2016) and that you&amp;rsquo;ve ensured that your Cryptographic provider is already upgraded to Microsoft Key Storage Provider.&lt;/p&gt;
&lt;img class=&#34; wp-image-452 alignleft&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-csp.png&#34; alt=&#34;CA CSP&#34; width=&#34;359&#34; height=&#34;482&#34;&gt;
&lt;p&gt;To ensure that you&amp;rsquo;re ready to upgrade, go to each CA on your network, open the Certificate Authority Admin GUI, right-click on the CA name and select Properties.&lt;/p&gt;
&lt;p&gt;Here we&amp;rsquo;re interested in two things. The &lt;strong&gt;Hash Algorithm&lt;/strong&gt; is set to SHA-1 which means it needs upgrading, and the &lt;strong&gt;Provider&lt;/strong&gt; is set to &amp;ldquo;Microsoft Strong Cryptographic Provider&amp;rdquo; (CSP), which means that you need to upgrade the provider to &amp;ldquo;Microsoft Key Storage Provider&amp;rdquo; (KSP).&lt;/p&gt;
&lt;p&gt;Think of this as a two-step process if it helps explain the process: before you can upgrade the root certificate you need to upgrade the container that holds it.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not covering how to upgrade from a CSP to a KSP in this article because there are plenty of wonderfully written articles out there which cover how to do both the CSP -&amp;gt; KSP and SHA1 -&amp;gt; SHA2 upgrades together and I wanted to offer something that had clear steps for people who were already at the KSP stage. I suggest following &lt;a href=&#34;https://technet.microsoft.com/en-us/library/dn771627%28v=ws.11%29.aspx&#34;&gt;this Technet article on migrating from a CSP to a KSP&lt;/a&gt; if you need to update your cryptographic provider.&lt;/p&gt;
&lt;h2&gt;A typical installation&lt;/h2&gt;
A typical Windows server based PKI setup should contain at least two CAs; a root CA which should ideally be offline (e.g. not a domain member and not part of the general network) and certainly should be as isolated and secure as possible) which is used to validate the other CAs on your network, and one (or more) issuing CAs which handle the task of receiving certificate requests and issuing certificates to users and workstations on your network.
&lt;p&gt;To upgrade this kind of setup is a 6 stage process:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Upgrade the root CA cryptographic algorithm to SHA-2.&lt;/li&gt;
	&lt;li&gt;Use the upgraded root CA to issue a SHA-2 root certificate, and verify this certificate is correct.&lt;/li&gt;
	&lt;li&gt;Import the new SHA-2 root certificate into AD, ensure the subordinate CAs update their certificate stores, and can see the updated root certificate.&lt;/li&gt;
	&lt;li&gt;Upgrade the subordinate CA cryptographic algorithm to SHA-2.&lt;/li&gt;
	&lt;li&gt;Request new certificates for each subordinate CA from the root CA, and verify this certificate is correct.&lt;/li&gt;
	&lt;li&gt;Verify that new certificates issued by the subordinate CAs are fully trusted SHA-2 certificates.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;The upgrade process itself.&lt;/h2&gt;
Remember, we&#39;re only handling the SHA1 to SHA2 conversion here. If you also need to migrate your CA from a CSP to a KSP then please use &lt;a href=&#34;https://technet.microsoft.com/en-us/library/dn771627%28v=ws.11%29.aspx&#34;&gt;this technet article&lt;/a&gt;.
&lt;p&gt;Ensure that you have good backups of all your CAs taken using your backup software of choice. Do a test restore and make sure you&amp;rsquo;re happy with the quality of these backups (You can always use a test restore to an isolated VM to practice the CA upgrade process).&lt;/p&gt;
&lt;p&gt;Note that following this process will leave you with SHA1 CA certificates sitting alongside your new SHA2 CA certificates on your CAs. This is fine, both certificates will be valid for the natural lifetime of the SHA1 CA certificate, at which point the SHA2 certificate will be the only valid one and can be renewed as normal in your own timeframes.&lt;/p&gt;
&lt;h3&gt;On the Root CA:&lt;/h3&gt;
&lt;h4&gt;Ensure you can &#39;roll back&#39; by backing up the CA.&lt;/h4&gt;
To back up the CA database and root certificate itself, open an admin powershell prompt and run the following commands.
&lt;pre&gt;mkdir c:\CAUpgradebackup
$filepath = &#34;c:\CAUpgradebackup\Backups&#34;
$password = &#34;MyPassword&#34;&lt;/pre&gt;
This creates the environment you will need to back up your CA configuration in a folder on your c drive named &#34;CAUpgradebackup&#34;. You can (and probably should) customise both this file path and the password for your needs rather than just going with my defaults.
&lt;p&gt;You are now ready to backup certificate database and certificates. All the commands here are carried out at your powershell prompt you created above.&lt;/p&gt;
&lt;pre&gt;certutil -p $password -backup $filepath&lt;/pre&gt;
&lt;p&gt;Then export your current CA service config from registry:&lt;/p&gt;
&lt;pre&gt;Reg export hklm\system\currentcontrolset\services\certsvc\configuration $FilePath\CAConfiguration.reg /y&lt;/pre&gt;
&lt;p&gt;And back up your CRLs (I&amp;rsquo;m assuming they&amp;rsquo;re published to the default file path here):&lt;/p&gt;
&lt;pre&gt;Copy-Item -Path &#34;C:\Windows\System32\certsrv\certenroll\*.crl&#34; -Destination $FilePath&lt;/pre&gt;
&lt;p&gt;You’ve now backed up your root CA. You can now navigate to the folder specified in $filepath above and verify that you have good data.&lt;/p&gt;
&lt;h4&gt;Upgrading the Cryptographic Algorithm&lt;/h4&gt;
When you are sure that your backup was successful and you can recover data, you are ready to upgrade your cryptographic algorithm to SHA-2. If you are using virtual servers for your CAs, now would be a good time to take a snapshot, just in case.
&lt;ol&gt;
	&lt;li&gt;Ensure the Certificate Server service is running&lt;/li&gt;
	&lt;li&gt;Carry out the upgrade by typing the command below into your powershell prompt:
&lt;pre&gt;certutil -setreg ca\csp\CNGHashAlgorithm SHA256&lt;/pre&gt;
&lt;/li&gt;
	&lt;li&gt;Stop, and then restart the Certificate Server service.&lt;/li&gt;
&lt;/ol&gt;
You can now verify the upgrade worked by opening the Certificate Authority Admin GUI, right-clicking on the CA name, and select Properties.&lt;img class=&#34; wp-image-453 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-ksp.png&#34; alt=&#34;CA KSP&#34; width=&#34;368&#34; height=&#34;495&#34;&gt;
&lt;p&gt;You should see something similar to my example here, the provider should still read &amp;ldquo;Microsoft Software Key Storage Provider&amp;rdquo;, but the Hash Algorithm should now read SHA256.&lt;/p&gt;
&lt;p&gt;With that done, you have just two things left to do on the root CA, update the root CA&amp;rsquo;s own CA certificate, and publish the certificate to AD.&lt;/p&gt;
&lt;p&gt;To do the first part, simply cancel out of the properties dialogue we were looking at above, right-click the CA name again, and select &amp;ldquo;Renew CA certificate&amp;rdquo;. Follow this process, allowing the CA to stop, issue itself a new CA certificate, and restart.&lt;/p&gt;
&lt;p&gt;You should now see a new certificate listed in the CA Certificates list. Select it and choose &amp;ldquo;View Certificate&amp;rdquo;. You should be able to see the new certificate issued as a SHA-2/SHA256 certificate, as per the example below.&lt;img class=&#34;alignnone size-full wp-image-550&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/rootca1.png&#34; alt=&#34;rootCA&#34; width=&#34;728&#34; height=&#34;643&#34;&gt;&lt;/p&gt;
&lt;p&gt;Lastly, at least as far as the root CA goes, you need to upload this certificate to Active Directory in order for the subordinate CAs (and downstream clients for that matter) to be able to find this certificate in the chain when validating newly issued SHA2 certificates. If your root is &amp;lsquo;online&amp;rsquo;, e.g. connected to AD, this will happen automatically. If your root CA is offline then you will need to publish the root certificate to AD yourself. Rather than make this article longer than needed, I will simply point you at &lt;a href=&#34;https://serverfault.com/questions/607912/publish-root-ca-and-sub-ca-certificate-to-the-trusted-root-certificate-store&#34;&gt;this serverfault article&lt;/a&gt; if you don&amp;rsquo;t already know how to do that.&lt;/p&gt;
&lt;h3&gt;On each Subordinate/Issuing CA in turn&lt;/h3&gt;
Ensure that the new SHA2 certificate from your root CA is visible in the Local Computer&#39;s &#34;Trusted Root Certification Authorities&#34; store. You can use the Certificates MMC snap-in for this. If it is not visible, ensure you&#39;ve published the root certificate correctly and from a command line use gpupdate /force to update the available certificates. Do &lt;em&gt;not&lt;/em&gt; proceed until you have the updated root certificate available and you&#39;ve verified that it shows as OK.
&lt;h4&gt;Ensure you can &#39;roll back&#39; by backing up the CA.&lt;/h4&gt;
To back up the CA database certificate, open an admin powershell prompt and run the backup commands we used earlier (see earlier instructions for detailed explanations for each step).
&lt;pre&gt;mkdir c:\CAUpgradebackup
$filepath = &#34;c:\CAUpgradebackup\Backups&#34;
$password = &#34;MyPassword&#34;&lt;/pre&gt;
This creates the environment you will need to back up your CA configuration in a folder on your c drive. You are now ready to backup certificate database and certificates.
&lt;pre&gt;# backup the CA database and cert
certutil -p $password -backup $filepath
# export the CA registry configuration
Reg export hklm\system\currentcontrolset\services\certsvc\configuration $FilePath\CAConfiguration.reg /y
# backup CRLs
Copy-Item -Path &#34;C:\Windows\System32\certsrv\certenroll\*.crl&#34; -Destination $FilePath&lt;/pre&gt;
Backup CA Templates (This is a new step for subordinate/issuing CAs)
&lt;pre&gt;certutil -catemplates | Out-File -FilePath &#34;$FilePath\Templates.txt&#34;&lt;/pre&gt;
You’ve now backed up your subordinate CA. Verify that you have good data in the backup folder before proceeding.
&lt;h4&gt;Upgrading the Cryptographic Algorithm&lt;/h4&gt;
When you are sure that your backup was successful and you can recover data, you are ready to upgrade your cryptographic algorithm to SHA-2. If you are using virtual servers for your CAs, now would be a good time to take a snapshot, just in case.
&lt;ol&gt;
	&lt;li&gt;Ensure the Certificate Server service is running&lt;/li&gt;
	&lt;li&gt;Carry out the upgrade by typing the command below into your powershell prompt:
&lt;pre&gt;certutil -setreg ca\csp\CNGHashAlgorithm SHA256&lt;/pre&gt;
&lt;/li&gt;
	&lt;li&gt;Stop, and then restart the Certificate Server service.&lt;/li&gt;
&lt;/ol&gt;
You can now verify the upgrade worked by opening the Certificate Authority Admin GUI, right-clicking on the CA name, and select Properties.&lt;img class=&#34; wp-image-453 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-ksp.png&#34; alt=&#34;CA KSP&#34; width=&#34;368&#34; height=&#34;495&#34;&gt;
&lt;p&gt;You should see something similar to my example here, the provider should still read &amp;ldquo;Microsoft Software Key Storage Provider&amp;rdquo;, but the Hash Algorithm should now read SHA256.&lt;/p&gt;
&lt;p&gt;With that done, you have just one thing left to do on the subordinate CA, update the CA certificate, and publish the certificate to AD.&lt;/p&gt;
&lt;p&gt;To do this, simply cancel out of the properties dialogue we were looking at above, right-click the CA name again, and select &amp;ldquo;Renew CA certificate&amp;rdquo;. Follow &lt;a href=&#34;http://support.risualblogs.com/blog/2014/05/13/renew-issuingsubordinate-ca-certificate/&#34;&gt;this process&lt;/a&gt;, allowing the CA to stop, issue a certificate request which you can then fulfill on the root CA and then install the newly issued certificate on your subordinate CA.&lt;/p&gt;
&lt;p&gt;You should now see a new certificate listed in the CA Certificates list. Select it and choose &amp;ldquo;View Certificate&amp;rdquo;. You should be able to see the new certificate issued as a SHA-2/SHA256 certificate, similar to the example above for a root CA.&lt;/p&gt;
&lt;p&gt;Repeat this process for all subordinate/issuing CAs&lt;/p&gt;
&lt;h3&gt;Test your new certificate servers&lt;/h3&gt;
You can now test your new SHA 2 pki infrastructure by logging on to a test workstation, opening the certificates MMC, ensuring the root and subordinate CA certificates appear in the Trusted Root Certification Authorities and Intermediate Certification Authorities sections for the local computer, and then going to personal certificates and renewing one of the certificates you see there. It should renew without errors, obviously, and show both signature algorithm and signature hash algorithm as SHA256.
&lt;p&gt;I know this is along and drawn-out process, but it&amp;rsquo;s like a lot of things, the precautions usually aren&amp;rsquo;t needed but lets face it, if you ring up Microsoft and say &amp;ldquo;I just hosed all my CAs following a process that&amp;rsquo;s only semi-official at best, and don&amp;rsquo;t have a backup&amp;rdquo; they&amp;rsquo;re going to record the call, dub it over comedy &amp;ldquo;ommpah-ooompah&amp;rdquo; trombone noises and play it at the support Christmas party forever.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
      <source:markdown>As I&#39;m sure most of us know by now, SHA1 cryptography hashes have been increasingly under attack, and are now regarded as &lt;a href=&#34;https://www.theverge.com/2017/2/23/14712118/google-sha1-collision-broken-web-encryption-shattered&#34;&gt;fully broken&lt;/a&gt;. In fact, my use of &#34;now&#34; kinda understates the point; you should be urgently looking to upgrade to SHA2 if you have any devices or servers using certificates.

If you&#39;re not aware of these risks then please look around. There are some good &lt;a href=&#34;https://www.entrust.com/series/sha-2-migration/&#34;&gt;introductory articles&lt;/a&gt; on the entrust website that talk about this issue, but please note that these articles are from 2014 and somewhat understand the urgency of the issue.

Upgrading your public facing websites and services that use public certificates (e.g. certificates you purchase from a public Certificate Authority, aka &#34;CA&#34;, online) is actually fairly easy; buy a new certificate from a competent supplier, install it, remove old certificate. Job done... (though as ever the devil is in the details).

For those who are running a Windows Certificate Authority (CA) to issue private certificates to servers and devices on your network, there is potentially a different problem: How do you ensure that your private CA is able to issue SHA2 certificates, and if not, how do you upgrade it so that it can?

I&#39;m going to discuss the methods I use, which are designed for a Windows PKI infrastructure with several levels (a root CA and subordinate &#34;issuing&#34; CAs).

In a lot of ways, this really isn&#39;t difficult at all. The steps you need to perform to actually complete the upgrade are extremely simple but the preparation you should carry out beforehand needs to be painstakingly done.
&lt;h2&gt;Prerequisites&lt;/h2&gt;
I&#39;m assuming that you&#39;re fairly knowledgeable and comfortable with manipulating certificates, and understand basic processes around managing private Windows CAs on your network. If this doesn&#39;t describe you then I strongly advise you to get help, hire a consultant if need be, before proceeding. While I&#39;m actually quite confident that the processes I outline below are robust and that the articles I link to are good, well written articles from knowledgeable people, you will still to be able to understand the concepts we&#39;re talking about and be able to adopt instructions to your environment before starting the upgrade process.

First of all, you need to examine your environment. If you&#39;re using Windows XP machines and Windows 2003 servers then you will have problems with SHA2 certificates. There is a &lt;a href=&#34;https://support.microsoft.com/en-us/help/968730/windows-server-2003-and-windows-xp-clients-cannot-obtain-certificates-from-a-windows-server-2008-based-certification-authority-ca-if-the-ca-is-configured-to-use-sha2-256-or-higher-encryption&#34;&gt;hotfix available&lt;/a&gt; but if this describes your environment then certificate hashes are probably the least of your security worries. You should also review appliances and applications on your network that use certificates issued by your CAs and ensure that they can handle the update to SHA2. This &lt;em&gt;should&lt;/em&gt; apply to most modern systems that are kept reasonably up-to-date, but &#34;most modern systems&#34; isn&#39;t the same as &#34;all&#34;, so make sure you&#39;ve checked this before starting work.

Ideally your Certificate Authorities should be running the newest version of Windows Server possible, and I&#39;d strongly suggest a bare minimum of Windows 2012 to cover all bases. It&#39;s perfectly possible to upgrade a 64-bit version of Windows 2008 server all the way through to Windows 2016 server if you need to. Whether or not you feel that&#39;s a good idea is possibly another question, but you&#39;ve hopefully kept your CAs isolated and  free from other roles and that should help make upgrading the CA servers in place more viable.

If you&#39;re using an older 32 bit version of Windows Server then you cannot upgrade directly to Windows 2012 or newer. If this is you, there is an article on &lt;a href=&#34;https://technet.microsoft.com/en-us/library/ee126140(WS.10).aspx&#34;&gt;migrating your CA to a new server&lt;/a&gt; on Technet which you can follow to upgrade to a modern CA.

I&#39;d also suggest that CAs are a good candidate for virtualisation, which will make some of the operations I&#39;m about to discuss easier, and in any case you don&#39;t want your PKI infrastructure to die because of a dodgy hard drive in a server from 2006. My guides below assume you&#39;re working with &lt;em&gt;at least&lt;/em&gt; Windows Server 2012 (my examples were tested on Windows Server 2016) and that you&#39;ve ensured that your Cryptographic provider is already upgraded to Microsoft Key Storage Provider.

&lt;img class=&#34; wp-image-452 alignleft&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-csp.png&#34; alt=&#34;CA CSP&#34; width=&#34;359&#34; height=&#34;482&#34;&gt;

To ensure that you&#39;re ready to upgrade, go to each CA on your network, open the Certificate Authority Admin GUI, right-click on the CA name and select Properties.

Here we&#39;re interested in two things. The &lt;strong&gt;Hash Algorithm&lt;/strong&gt; is set to SHA-1 which means it needs upgrading, and the &lt;strong&gt;Provider&lt;/strong&gt; is set to &#34;Microsoft Strong Cryptographic Provider&#34; (CSP), which means that you need to upgrade the provider to &#34;Microsoft Key Storage Provider&#34; (KSP).

Think of this as a two-step process if it helps explain the process: before you can upgrade the root certificate you need to upgrade the container that holds it.

I&#39;m not covering how to upgrade from a CSP to a KSP in this article because there are plenty of wonderfully written articles out there which cover how to do both the CSP -&amp;gt; KSP and SHA1 -&amp;gt; SHA2 upgrades together and I wanted to offer something that had clear steps for people who were already at the KSP stage. I suggest following &lt;a href=&#34;https://technet.microsoft.com/en-us/library/dn771627%28v=ws.11%29.aspx&#34;&gt;this Technet article on migrating from a CSP to a KSP&lt;/a&gt; if you need to update your cryptographic provider.
&lt;h2&gt;A typical installation&lt;/h2&gt;
A typical Windows server based PKI setup should contain at least two CAs; a root CA which should ideally be offline (e.g. not a domain member and not part of the general network) and certainly should be as isolated and secure as possible) which is used to validate the other CAs on your network, and one (or more) issuing CAs which handle the task of receiving certificate requests and issuing certificates to users and workstations on your network.

To upgrade this kind of setup is a 6 stage process:
&lt;ol&gt;
	&lt;li&gt;Upgrade the root CA cryptographic algorithm to SHA-2.&lt;/li&gt;
	&lt;li&gt;Use the upgraded root CA to issue a SHA-2 root certificate, and verify this certificate is correct.&lt;/li&gt;
	&lt;li&gt;Import the new SHA-2 root certificate into AD, ensure the subordinate CAs update their certificate stores, and can see the updated root certificate.&lt;/li&gt;
	&lt;li&gt;Upgrade the subordinate CA cryptographic algorithm to SHA-2.&lt;/li&gt;
	&lt;li&gt;Request new certificates for each subordinate CA from the root CA, and verify this certificate is correct.&lt;/li&gt;
	&lt;li&gt;Verify that new certificates issued by the subordinate CAs are fully trusted SHA-2 certificates.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;The upgrade process itself.&lt;/h2&gt;
Remember, we&#39;re only handling the SHA1 to SHA2 conversion here. If you also need to migrate your CA from a CSP to a KSP then please use &lt;a href=&#34;https://technet.microsoft.com/en-us/library/dn771627%28v=ws.11%29.aspx&#34;&gt;this technet article&lt;/a&gt;.

Ensure that you have good backups of all your CAs taken using your backup software of choice. Do a test restore and make sure you&#39;re happy with the quality of these backups (You can always use a test restore to an isolated VM to practice the CA upgrade process).

Note that following this process will leave you with SHA1 CA certificates sitting alongside your new SHA2 CA certificates on your CAs. This is fine, both certificates will be valid for the natural lifetime of the SHA1 CA certificate, at which point the SHA2 certificate will be the only valid one and can be renewed as normal in your own timeframes.
&lt;h3&gt;On the Root CA:&lt;/h3&gt;
&lt;h4&gt;Ensure you can &#39;roll back&#39; by backing up the CA.&lt;/h4&gt;
To back up the CA database and root certificate itself, open an admin powershell prompt and run the following commands.
&lt;pre&gt;mkdir c:\CAUpgradebackup
$filepath = &#34;c:\CAUpgradebackup\Backups&#34;
$password = &#34;MyPassword&#34;&lt;/pre&gt;
This creates the environment you will need to back up your CA configuration in a folder on your c drive named &#34;CAUpgradebackup&#34;. You can (and probably should) customise both this file path and the password for your needs rather than just going with my defaults.

You are now ready to backup certificate database and certificates. All the commands here are carried out at your powershell prompt you created above.
&lt;pre&gt;certutil -p $password -backup $filepath&lt;/pre&gt;
Then export your current CA service config from registry:
&lt;pre&gt;Reg export hklm\system\currentcontrolset\services\certsvc\configuration $FilePath\CAConfiguration.reg /y&lt;/pre&gt;
And back up your CRLs (I&#39;m assuming they&#39;re published to the default file path here):
&lt;pre&gt;Copy-Item -Path &#34;C:\Windows\System32\certsrv\certenroll\*.crl&#34; -Destination $FilePath&lt;/pre&gt;
You’ve now backed up your root CA. You can now navigate to the folder specified in $filepath above and verify that you have good data.
&lt;h4&gt;Upgrading the Cryptographic Algorithm&lt;/h4&gt;
When you are sure that your backup was successful and you can recover data, you are ready to upgrade your cryptographic algorithm to SHA-2. If you are using virtual servers for your CAs, now would be a good time to take a snapshot, just in case.
&lt;ol&gt;
	&lt;li&gt;Ensure the Certificate Server service is running&lt;/li&gt;
	&lt;li&gt;Carry out the upgrade by typing the command below into your powershell prompt:
&lt;pre&gt;certutil -setreg ca\csp\CNGHashAlgorithm SHA256&lt;/pre&gt;
&lt;/li&gt;
	&lt;li&gt;Stop, and then restart the Certificate Server service.&lt;/li&gt;
&lt;/ol&gt;
You can now verify the upgrade worked by opening the Certificate Authority Admin GUI, right-clicking on the CA name, and select Properties.&lt;img class=&#34; wp-image-453 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-ksp.png&#34; alt=&#34;CA KSP&#34; width=&#34;368&#34; height=&#34;495&#34;&gt;

You should see something similar to my example here, the provider should still read &#34;Microsoft Software Key Storage Provider&#34;, but the Hash Algorithm should now read SHA256.

With that done, you have just two things left to do on the root CA, update the root CA&#39;s own CA certificate, and publish the certificate to AD.

To do the first part, simply cancel out of the properties dialogue we were looking at above, right-click the CA name again, and select &#34;Renew CA certificate&#34;. Follow this process, allowing the CA to stop, issue itself a new CA certificate, and restart.

You should now see a new certificate listed in the CA Certificates list. Select it and choose &#34;View Certificate&#34;. You should be able to see the new certificate issued as a SHA-2/SHA256 certificate, as per the example below.&lt;img class=&#34;alignnone size-full wp-image-550&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/rootca1.png&#34; alt=&#34;rootCA&#34; width=&#34;728&#34; height=&#34;643&#34;&gt;

Lastly, at least as far as the root CA goes, you need to upload this certificate to Active Directory in order for the subordinate CAs (and downstream clients for that matter) to be able to find this certificate in the chain when validating newly issued SHA2 certificates. If your root is &#39;online&#39;, e.g. connected to AD, this will happen automatically. If your root CA is offline then you will need to publish the root certificate to AD yourself. Rather than make this article longer than needed, I will simply point you at &lt;a href=&#34;https://serverfault.com/questions/607912/publish-root-ca-and-sub-ca-certificate-to-the-trusted-root-certificate-store&#34;&gt;this serverfault article&lt;/a&gt; if you don&#39;t already know how to do that.
&lt;h3&gt;On each Subordinate/Issuing CA in turn&lt;/h3&gt;
Ensure that the new SHA2 certificate from your root CA is visible in the Local Computer&#39;s &#34;Trusted Root Certification Authorities&#34; store. You can use the Certificates MMC snap-in for this. If it is not visible, ensure you&#39;ve published the root certificate correctly and from a command line use gpupdate /force to update the available certificates. Do &lt;em&gt;not&lt;/em&gt; proceed until you have the updated root certificate available and you&#39;ve verified that it shows as OK.
&lt;h4&gt;Ensure you can &#39;roll back&#39; by backing up the CA.&lt;/h4&gt;
To back up the CA database certificate, open an admin powershell prompt and run the backup commands we used earlier (see earlier instructions for detailed explanations for each step).
&lt;pre&gt;mkdir c:\CAUpgradebackup
$filepath = &#34;c:\CAUpgradebackup\Backups&#34;
$password = &#34;MyPassword&#34;&lt;/pre&gt;
This creates the environment you will need to back up your CA configuration in a folder on your c drive. You are now ready to backup certificate database and certificates.
&lt;pre&gt;# backup the CA database and cert
certutil -p $password -backup $filepath
# export the CA registry configuration
Reg export hklm\system\currentcontrolset\services\certsvc\configuration $FilePath\CAConfiguration.reg /y
# backup CRLs
Copy-Item -Path &#34;C:\Windows\System32\certsrv\certenroll\*.crl&#34; -Destination $FilePath&lt;/pre&gt;
Backup CA Templates (This is a new step for subordinate/issuing CAs)
&lt;pre&gt;certutil -catemplates | Out-File -FilePath &#34;$FilePath\Templates.txt&#34;&lt;/pre&gt;
You’ve now backed up your subordinate CA. Verify that you have good data in the backup folder before proceeding.
&lt;h4&gt;Upgrading the Cryptographic Algorithm&lt;/h4&gt;
When you are sure that your backup was successful and you can recover data, you are ready to upgrade your cryptographic algorithm to SHA-2. If you are using virtual servers for your CAs, now would be a good time to take a snapshot, just in case.
&lt;ol&gt;
	&lt;li&gt;Ensure the Certificate Server service is running&lt;/li&gt;
	&lt;li&gt;Carry out the upgrade by typing the command below into your powershell prompt:
&lt;pre&gt;certutil -setreg ca\csp\CNGHashAlgorithm SHA256&lt;/pre&gt;
&lt;/li&gt;
	&lt;li&gt;Stop, and then restart the Certificate Server service.&lt;/li&gt;
&lt;/ol&gt;
You can now verify the upgrade worked by opening the Certificate Authority Admin GUI, right-clicking on the CA name, and select Properties.&lt;img class=&#34; wp-image-453 aligncenter&#34; src=&#34;https://itsalwaysmyproblem.com/wp-content/uploads/2017/06/ca-ksp.png&#34; alt=&#34;CA KSP&#34; width=&#34;368&#34; height=&#34;495&#34;&gt;

You should see something similar to my example here, the provider should still read &#34;Microsoft Software Key Storage Provider&#34;, but the Hash Algorithm should now read SHA256.

With that done, you have just one thing left to do on the subordinate CA, update the CA certificate, and publish the certificate to AD.

To do this, simply cancel out of the properties dialogue we were looking at above, right-click the CA name again, and select &#34;Renew CA certificate&#34;. Follow &lt;a href=&#34;http://support.risualblogs.com/blog/2014/05/13/renew-issuingsubordinate-ca-certificate/&#34;&gt;this process&lt;/a&gt;, allowing the CA to stop, issue a certificate request which you can then fulfill on the root CA and then install the newly issued certificate on your subordinate CA.

You should now see a new certificate listed in the CA Certificates list. Select it and choose &#34;View Certificate&#34;. You should be able to see the new certificate issued as a SHA-2/SHA256 certificate, similar to the example above for a root CA.

Repeat this process for all subordinate/issuing CAs
&lt;h3&gt;Test your new certificate servers&lt;/h3&gt;
You can now test your new SHA 2 pki infrastructure by logging on to a test workstation, opening the certificates MMC, ensuring the root and subordinate CA certificates appear in the Trusted Root Certification Authorities and Intermediate Certification Authorities sections for the local computer, and then going to personal certificates and renewing one of the certificates you see there. It should renew without errors, obviously, and show both signature algorithm and signature hash algorithm as SHA256.

I know this is along and drawn-out process, but it&#39;s like a lot of things, the precautions usually aren&#39;t needed but lets face it, if you ring up Microsoft and say &#34;I just hosed all my CAs following a process that&#39;s only semi-official at best, and don&#39;t have a backup&#34; they&#39;re going to record the call, dub it over comedy &#34;ommpah-ooompah&#34; trombone noises and play it at the support Christmas party forever.

 
</source:markdown>
    </item>
    
  </channel>
</rss>
