<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZIA Networks</title>
    <description>The latest articles on DEV Community by ZIA Networks (@zianetworksinsight).</description>
    <link>https://dev.to/zianetworksinsight</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4011910%2F6fad64e0-ba58-4d28-aae4-8df4a180a4eb.jpeg</url>
      <title>DEV Community: ZIA Networks</title>
      <link>https://dev.to/zianetworksinsight</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zianetworksinsight"/>
    <language>en</language>
    <item>
      <title>Git Is Not a Backup: Cloud Backup vs Local Backup for Developers</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Fri, 23 Oct 2026 11:10:06 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/git-is-not-a-backup-cloud-backup-vs-local-backup-for-developers-51ip</link>
      <guid>https://dev.to/zianetworksinsight/git-is-not-a-backup-cloud-backup-vs-local-backup-for-developers-51ip</guid>
      <description>&lt;p&gt;A few years ago I would have told you my code was "backed up" because it was on GitHub. Then I started thinking about everything that isn't in the repo: the &lt;code&gt;.env&lt;/code&gt; files, the local database, the client assets, the notes, and the config that only exists on my laptop.&lt;/p&gt;

&lt;p&gt;If you freelance, run a small agency, or look after IT for a small business, the &lt;strong&gt;cloud backup vs. local backup&lt;/strong&gt; question is worth ten minutes of your time. Here's a developer-friendly way to think about it, plus a setup you can copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, a myth: Git is not a backup
&lt;/h2&gt;

&lt;p&gt;Git is great at history and collaboration. It is a poor backup for the whole machine because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Untracked and ignored files (&lt;code&gt;.env&lt;/code&gt;, local databases, and build artefacts you can't regenerate) aren't in it.&lt;/li&gt;
&lt;li&gt;A force-push or deleted remote can wipe history.&lt;/li&gt;
&lt;li&gt;If your remote account is locked or compromised, your copy is only as safe as that account.&lt;/li&gt;
&lt;li&gt;Your documents, client files, and system config aren't in any repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep using Git. Just don't call it your backup plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local vs cloud in one minute
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Local backup&lt;/strong&gt; copies data to hardware you control: an external SSD, a NAS, another machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fast restores, works offline, no monthly storage bill&lt;/li&gt;
&lt;li&gt;❌ Same building as the original, so theft, fire, flood, or a power surge can take both&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cloud backup&lt;/strong&gt; sends encrypted copies to a provider's storage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Offsite, automatic, scalable&lt;/li&gt;
&lt;li&gt;❌ Slow for huge restores, ongoing cost, depends on credentials and the vendor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither is enough alone. They cover different failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3-2-1 rule
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3&lt;/strong&gt; copies of your data (the original plus two backups)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2&lt;/strong&gt; types of storage (local disc plus cloud, for example)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1&lt;/strong&gt; copy offsite&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A simple dev workstation setup
&lt;/h2&gt;

&lt;p&gt;Here's a minimal version using tools that are already on most Linux and macOS machines, plus &lt;code&gt;rclone&lt;/code&gt; for cloud storage. Adjust paths to suit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local: versioned snapshots with rsync
&lt;/h3&gt;

&lt;p&gt;This keeps dated snapshots, using hard links so unchanged files don't take extra space.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-euo&lt;/span&gt; pipefail

&lt;span class="nv"&gt;SRC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/projects/"&lt;/span&gt;
&lt;span class="nv"&gt;DEST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/mnt/backup/projects"&lt;/span&gt;
&lt;span class="nv"&gt;TODAY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%F&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DEST&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

rsync &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="nt"&gt;--delete&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="s1"&gt;'node_modules/'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="s1"&gt;'.cache/'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--link-dest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DEST&lt;/span&gt;&lt;span class="s2"&gt;/latest"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SRC&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DEST&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;$TODAY&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt;

&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-sfn&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DEST&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;$TODAY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DEST&lt;/span&gt;&lt;span class="s2"&gt;/latest"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Skipping &lt;code&gt;node_modules&lt;/code&gt; saves a lot of space because you can rebuild it from your lockfile. Don't exclude anything you can't regenerate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Offsite: encrypted copy with rclone
&lt;/h3&gt;

&lt;p&gt;Configure a remote once with &lt;code&gt;rclone config&lt;/code&gt; (many providers are supported, and you can layer a &lt;code&gt;crypt&lt;/code&gt; remote on top for client-side encryption). Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rclone copy &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/projects"&lt;/span&gt; remote:backups/projects &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="s1"&gt;'node_modules/**'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="s1"&gt;'.cache/**'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--progress&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I used &lt;code&gt;copy&lt;/code&gt; rather than &lt;code&gt;sync&lt;/code&gt; on purpose. &lt;code&gt;sync&lt;/code&gt; mirrors deletions, so an accidental delete or a ransomware encryption could propagate to the cloud. If you do use &lt;code&gt;sync&lt;/code&gt;, turn on versioning or object lock at the provider, or use &lt;code&gt;--backup-dir&lt;/code&gt; so overwritten and deleted files are kept.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schedule it
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crontab &lt;span class="nt"&gt;-e&lt;/span&gt;
&lt;span class="c"&gt;# Local snapshot at 1:30 AM, cloud copy at 2:30 AM&lt;/span&gt;
30 1 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; /home/you/bin/local-backup.sh &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /home/you/backup.log 2&amp;gt;&amp;amp;1
30 2 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; rclone copy /home/you/projects remote:backups/projects &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="s1"&gt;'node_modules/**'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /home/you/backup.log 2&amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add something that tells you when it fails: a notification, an email, or a health-check ping. Silent failure is how people discover three months later that nothing has run.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part everyone skips: test the restore
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Restore a folder from the latest local snapshot to a scratch location&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /tmp/restore-test
rsync &lt;span class="nt"&gt;-a&lt;/span&gt; /mnt/backup/projects/latest/my-important-project/ /tmp/restore-test/

&lt;span class="c"&gt;# Try to open and run it&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp/restore-test &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do the same from the cloud copy at least twice a year, and time it. That number is your real recovery time, and it's usually longer than you'd guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things worth thinking about if you're a small business or work in a region like northern New Mexico
&lt;/h2&gt;

&lt;p&gt;I live with a few real-world hazards in mind when advising local businesses: summer storms and power surges, wildfire season, dry dust, and older buildings. They all argue for the same thing: keep at least one copy somewhere other than your office, and put surge protection on anything that stores data.&lt;/p&gt;

&lt;p&gt;If you handle client health or financial data, check which regulations apply and whether your backup provider meets them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Code is in Git, and Git is &lt;strong&gt;not&lt;/strong&gt; my only backup.&lt;/li&gt;
&lt;li&gt;[ ] I have a local snapshot with some version history.&lt;/li&gt;
&lt;li&gt;[ ] I have an encrypted offsite copy&lt;/li&gt;
&lt;li&gt;[ ] Deleted files can't instantly vanish from every copy.&lt;/li&gt;
&lt;li&gt;[ ] Secrets are stored in a password manager, not just a local``&lt;/li&gt;
&lt;li&gt;[ ] Backup failures notify me.&lt;/li&gt;
&lt;li&gt;[ ] I've restored from backup in the last six months.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;For the &lt;strong&gt;cloud backup vs local backup&lt;/strong&gt; question, the practical answer is both. Local for speed, cloud for survival, and a restore test to prove it works.&lt;/p&gt;

&lt;p&gt;What's in your backup setup? Let me know what tools you use in the comments.&lt;/p&gt;

</description>
      <category>backup</category>
      <category>devops</category>
      <category>linux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Passkeys vs. Passwords: What Small Business Teams Should Actually Do</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Thu, 22 Oct 2026 06:47:18 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/passkeys-vs-passwords-what-small-business-teams-should-actually-do-2lpb</link>
      <guid>https://dev.to/zianetworksinsight/passkeys-vs-passwords-what-small-business-teams-should-actually-do-2lpb</guid>
      <description>&lt;p&gt;Most small businesses have no security team. They have a handful of people, fifty-ish logins, and one person who happens to be "good with computers." If that person is you, this post is for you.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;passkeys vs. passwords&lt;/strong&gt; debate has moved past theory. Passkeys are supported across Apple, Google, and Microsoft platforms, and many major services now offer them. The real question is how to adopt them without breaking your team's workflow.&lt;/p&gt;

&lt;p&gt;I'm writing this on behalf of &lt;strong&gt;ZIA Networks&lt;/strong&gt;, where we help small businesses make practical security decisions, so I'll keep it grounded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why passwords keep failing small teams
&lt;/h2&gt;

&lt;p&gt;Passwords have three problems that training only partly fixes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reuse.&lt;/strong&gt; One leaked password from an unrelated site can unlock a business account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phishing.&lt;/strong&gt; A convincing fake login page can capture a typed password in seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overhead.&lt;/strong&gt; Resets, lockouts, and shared spreadsheets cost time every week.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The weakness is structural: a password is a shared secret that can be typed anywhere, real or fake.&lt;/p&gt;

&lt;h2&gt;
  
  
  How passkeys work (the short version)
&lt;/h2&gt;

&lt;p&gt;Passkeys are built on the &lt;strong&gt;WebAuthn&lt;/strong&gt; and &lt;strong&gt;FIDO2&lt;/strong&gt; standards and use public-key cryptography.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;During registration, the user's device creates a key pair.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;private key&lt;/strong&gt; stays on the device (or in a synced credential manager).&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;public key&lt;/strong&gt; is stored by the service.&lt;/li&gt;
&lt;li&gt;At sign-in, the service sends a challenge; the device signs it after the user verifies with a biometric or PIN, and the service checks the signature.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two properties matter for security:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The credential is &lt;strong&gt;bound to the site's domain&lt;/strong&gt; (the relying party ID), so a lookalike domain can't use it.&lt;/li&gt;
&lt;li&gt;A server breach exposes &lt;strong&gt;public keys only&lt;/strong&gt;, which are useless to an attacker.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What registration looks like in code
&lt;/h2&gt;

&lt;p&gt;If you build or maintain a web app for your business, here is a simplified browser-side registration call. The options come from your server, and the &lt;code&gt;challenge&lt;/code&gt; must be random and single-use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;credential&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;credentials&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;challenge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;challengeFromServer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;        &lt;span class="c1"&gt;// ArrayBuffer, generated server-side&lt;/span&gt;
    &lt;span class="na"&gt;rp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Example Co&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userIdBytes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                     &lt;span class="c1"&gt;// stable, opaque user handle&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dana@example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dana&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;pubKeyCredParams&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;public-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;alg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;     &lt;span class="c1"&gt;// ES256&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;public-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;alg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;257&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;   &lt;span class="c1"&gt;// RS256&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="na"&gt;authenticatorSelection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;residentKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;required&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;             &lt;span class="c1"&gt;// creates a discoverable passkey&lt;/span&gt;
      &lt;span class="na"&gt;userVerification&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;preferred&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="c1"&gt;// Send the result to your server, which must verify it and store the public key.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One important note: &lt;strong&gt;don't write the server-side verification yourself.&lt;/strong&gt; Use a well-maintained library (SimpleWebAuthn is a popular option for Node.js) and review its documentation carefully. Cryptographic code is easy to get subtly wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where passkeys win
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Passwords&lt;/th&gt;
&lt;th&gt;Passkeys&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Phishing resistance&lt;/td&gt;
&lt;td&gt;Weak&lt;/td&gt;
&lt;td&gt;Strong (domain-bound)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Breach impact&lt;/td&gt;
&lt;td&gt;Reusable secrets can leak&lt;/td&gt;
&lt;td&gt;Only public keys stored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reuse and guessing&lt;/td&gt;
&lt;td&gt;Common problem&lt;/td&gt;
&lt;td&gt;Not applicable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sign-in speed&lt;/td&gt;
&lt;td&gt;Typing and resets&lt;/td&gt;
&lt;td&gt;Touch or glance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where passkeys fall short
&lt;/h2&gt;

&lt;p&gt;I'd rather be honest than hype this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not universal.&lt;/strong&gt; Older software and niche tools may only support passwords, so you'll run both for a while.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery needs design.&lt;/strong&gt; Synced passkeys (iCloud Keychain, Google Password Manager) make device loss easier to handle, but that account becomes a high-value target. Protect it well.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared accounts are awkward.&lt;/strong&gt; Passkeys are built around individuals. Shared logins are better handled with a business password manager or separate user seats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adoption takes a little training.&lt;/strong&gt; A short walkthrough prevents confusion.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A practical rollout plan
&lt;/h2&gt;

&lt;p&gt;You don't need a big-bang migration:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inventory your accounts&lt;/strong&gt; and mark which ones would hurt most to lose: email, cloud storage, accounting, and banking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable passkeys on those first&lt;/strong&gt;, and test sign-in before removing anything else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep a business password manager&lt;/strong&gt; for tools without passkey support, with long, unique passwords.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep MFA on&lt;/strong&gt; every account that still uses a password.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write a recovery plan&lt;/strong&gt;: who helps when a phone is lost, and where recovery info is stored.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brief the team&lt;/strong&gt; in 15 minutes. Keep it simple.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review quarterly&lt;/strong&gt;, since more services add support all the time.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Where they're supported, passkeys are the safer choice: they resist phishing, leave nothing reusable in a breach, and make sign-in faster. Passwords still have a place as a backup for tools that haven't caught up.&lt;/p&gt;

&lt;p&gt;If you'd like help deciding which accounts to move first or setting up recovery without disrupting your team, &lt;strong&gt;ZIA Networks&lt;/strong&gt; can walk you through it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Have you rolled out passkeys for a team or a product yet?&lt;/li&gt;
&lt;li&gt;Which tools in your stack still don't support them?&lt;/li&gt;
&lt;li&gt;How do you handle shared accounts and recovery?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>authentication</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>HIPAA Security Rule Updates 2026: A Developer's Guide for Santa Fe Clinics</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Mon, 12 Oct 2026 07:04:28 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/hipaa-security-rule-updates-2026-a-developers-guide-for-santa-fe-clinics-282k</link>
      <guid>https://dev.to/zianetworksinsight/hipaa-security-rule-updates-2026-a-developers-guide-for-santa-fe-clinics-282k</guid>
      <description>&lt;p&gt;If you build or maintain systems for healthcare clinics, the &lt;strong&gt;HIPAA Security Rule updates 2026&lt;/strong&gt; probably landed in your backlog as a vague "we need to be ready". Here is what is actually happening and what to do about it, from the team at &lt;strong&gt;ZIA Networks&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The big security rule overhaul is &lt;strong&gt;still only proposed&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The current rule &lt;strong&gt;stays enforceable&lt;/strong&gt; until a final rule replaces it.&lt;/li&gt;
&lt;li&gt;The proposal points to encryption, MFA, network segmentation, and documentation. Build for those now.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where the rule stands
&lt;/h2&gt;

&lt;p&gt;HHS's Office for Civil Rights published the proposed update on January 6, 2025. A final rule was targeted for May 2026, but HHS has delayed final action until at least July 2027.&lt;/p&gt;

&lt;p&gt;The existing security rule remains fully in effect and enforceable until a final rule replaces it. And penalties are real: after the 2026 inflation adjustment, they run from $145 to over $73,000 per violation, with annual caps above $2.1 million per category.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is already mandatory in 2026
&lt;/h2&gt;

&lt;p&gt;The updated Notice of Privacy Practices requirement, tied to the 42 CFR Part 2 final rule, became mandatory on February 16, 2026. If your clinic's patient portal or website links to an old notice, update it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the proposal signals for your stack
&lt;/h2&gt;

&lt;p&gt;The proposal would require specific technical standards such as encryption, multifactor authentication, and network segmentation. It would also convert several "addressable" safeguards into "required" controls. And it would require written documentation for all policies, procedures, plans, and analyses.&lt;/p&gt;

&lt;p&gt;In engineering terms, that looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Proposed direction&lt;/th&gt;
&lt;th&gt;What to build or check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Encryption&lt;/td&gt;
&lt;td&gt;TLS in transit, encrypted storage and backups, encrypted endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MFA&lt;/td&gt;
&lt;td&gt;Enforce on email, EHR, VPN, admin consoles, cloud dashboards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network segmentation&lt;/td&gt;
&lt;td&gt;VLANs or separate subnets for clinical systems, guest Wi-Fi isolated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Asset inventory&lt;/td&gt;
&lt;td&gt;Auto-discovered list of devices, servers, and SaaS tools touching ePHI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;Policies, runbooks, and risk analysis kept in version control or a managed wiki&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A starter checklist
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;hipaa_readiness_2026&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;risk_analysis&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;documented, reviewed at least annually&lt;/span&gt;
  &lt;span class="na"&gt;mfa&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;enabled on all remote and admin access&lt;/span&gt;
  &lt;span class="na"&gt;encryption&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;at_rest&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;in_transit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;backups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;asset_inventory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;maintained and current&lt;/span&gt;
  &lt;span class="na"&gt;network_segmentation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;clinical vs guest vs office&lt;/span&gt;
  &lt;span class="na"&gt;backups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tested restores, not just scheduled jobs&lt;/span&gt;
  &lt;span class="na"&gt;incident_response_plan&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;written and rehearsed&lt;/span&gt;
  &lt;span class="na"&gt;business_associates&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;agreements reviewed&lt;/span&gt;
  &lt;span class="na"&gt;staff_training&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;phishing and data handling&lt;/span&gt;
  &lt;span class="na"&gt;nm_breach_rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;confirmed with legal counsel&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inadequate risk analysis is the most common security rule deficiency OCR cites in enforcement investigations. If you only do one thing from this list, do that one, and write it down. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why not wait until 2027?
&lt;/h2&gt;

&lt;p&gt;The delay gives organisations more time to build asset inventories, encryption coverage, and MFA rollouts. Ransomware and phishing won't wait for a final rule, and every item above reduces your breach risk today. &lt;/p&gt;

&lt;h2&gt;
  
  
  How ZIA Networks can help
&lt;/h2&gt;

&lt;p&gt;Small clinics rarely have a dedicated security team. ZIA Networks helps review network and security setups, spot compliance gaps, and prioritise fixes in a practical order.&lt;/p&gt;

&lt;p&gt;Have questions about &lt;strong&gt;HIPAA Security Rule updates 2026&lt;/strong&gt; or your clinic's setup? Drop them in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: This post is general information, not legal advice. Consult a qualified HIPAA compliance professional or healthcare attorney for guidance specific to your clinic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>Your Backups Probably Haven't Been Tested: The 3-2-1 Rule and a Simple Restore Check</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Thu, 08 Oct 2026 06:47:03 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/your-backups-probably-havent-been-tested-the-3-2-1-rule-and-a-simple-restore-check-3c70</link>
      <guid>https://dev.to/zianetworksinsight/your-backups-probably-havent-been-tested-the-3-2-1-rule-and-a-simple-restore-check-3c70</guid>
      <description>&lt;p&gt;Almost everyone has backups. Far fewer people have ever &lt;em&gt;restored&lt;/em&gt; one.&lt;/p&gt;

&lt;p&gt;That gap is where backup plans fail. The job ran every night, the dashboard showed green, and then the day came when someone needed the data and the files were empty, corrupted, or missing the one folder that mattered.&lt;/p&gt;

&lt;p&gt;This post covers the 3-2-1 rule, a few ways backups quietly fail, and a small script you can adapt to check that your restores actually work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3-2-1 rule
&lt;/h2&gt;

&lt;p&gt;It's an old rule because it holds up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3&lt;/strong&gt; copies of your data (the live copy plus two backups)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2&lt;/strong&gt; different types of storage (for example, a local disc and the cloud)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1&lt;/strong&gt; copy off-site, so a fire, theft, or flood can't take everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A common modern addition is that at least one copy should be &lt;strong&gt;immutable or offline&lt;/strong&gt;. Ransomware can encrypt anything it can reach, including a backup drive mounted on the same network.&lt;/p&gt;

&lt;h2&gt;
  
  
  How backups fail without anyone noticing
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The job runs but backs up the wrong thing.&lt;/strong&gt; A moved folder or a new drive that was never added to the selection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The backup is corrupt.&lt;/strong&gt; Silent errors on disk or in transit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credentials expired.&lt;/strong&gt; The cloud target rejects uploads and the alert goes to an unused inbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ransomware reaches the backup.&lt;/strong&gt; It's writable from the same machine, so it gets encrypted too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nobody knows the restore procedure.&lt;/strong&gt; The data exists, but the one person who knew how to recover it left.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery is too slow.&lt;/strong&gt; A full restore takes three days and the business can't wait that long.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most of these only show up when you try a restore.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple restore check
&lt;/h2&gt;

&lt;p&gt;The idea: restore the latest backup into a scratch folder, pick a few random files from the live data, and compare checksums against the restored copies.&lt;/p&gt;

&lt;p&gt;Adjust the paths and the restore command for your tool. The example assumes a tool like &lt;code&gt;restic&lt;/code&gt; that restores files under their original path inside the target folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-euo&lt;/span&gt; pipefail

&lt;span class="nv"&gt;SOURCE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/srv/company-data"&lt;/span&gt;
&lt;span class="nv"&gt;RESTORE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/tmp/restore-test"&lt;/span&gt;
&lt;span class="nv"&gt;SAMPLE_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;5

&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$RESTORE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$RESTORE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# 1. Restore the latest backup into a scratch folder.&lt;/span&gt;
&lt;span class="c"&gt;#    Replace this line with your backup tool's restore command.&lt;/span&gt;
&lt;span class="c"&gt;# restic restore latest --target "$RESTORE_DIR"&lt;/span&gt;

&lt;span class="c"&gt;# 2. Pick random files that haven't changed in the last day,&lt;/span&gt;
&lt;span class="c"&gt;#    so recent edits don't cause false alarms.&lt;/span&gt;
&lt;span class="nb"&gt;mapfile&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; FILES &amp;lt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;find &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SOURCE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-mtime&lt;/span&gt; +1 | &lt;span class="nb"&gt;shuf&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SAMPLE_SIZE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;FILES&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-eq&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"FAIL: no sample files found in &lt;/span&gt;&lt;span class="nv"&gt;$SOURCE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  &lt;span class="nb"&gt;exit &lt;/span&gt;1
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nv"&gt;failures&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0

&lt;span class="k"&gt;for &lt;/span&gt;f &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;FILES&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nv"&gt;restored&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$RESTORE_DIR$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$restored&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"MISSING: &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nv"&gt;failures&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;failures &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;continue
  fi

  &lt;/span&gt;&lt;span class="nv"&gt;live_sum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;sha256sum&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'{print $1}'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;backup_sum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;sha256sum&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$restored&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'{print $1}'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$live_sum&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$backup_sum&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"MISMATCH: &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nv"&gt;failures&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;failures &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
  &lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"OK: &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  &lt;span class="k"&gt;fi
done

&lt;/span&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$RESTORE_DIR&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$failures&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-gt&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Restore check FAILED (&lt;/span&gt;&lt;span class="nv"&gt;$failures&lt;/span&gt;&lt;span class="s2"&gt; problem(s))"&lt;/span&gt;
  &lt;span class="nb"&gt;exit &lt;/span&gt;1
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Restore check passed"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it from cron or a scheduled task, and send failures somewhere a human will actually see them, such as email, a chat channel, or a monitoring tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  What this script doesn't prove
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It checks a &lt;strong&gt;sample&lt;/strong&gt;, not every file.&lt;/li&gt;
&lt;li&gt;It doesn't test &lt;strong&gt;databases&lt;/strong&gt; or application consistency.&lt;/li&gt;
&lt;li&gt;It doesn't measure &lt;strong&gt;how long&lt;/strong&gt; a full restore takes.&lt;/li&gt;
&lt;li&gt;It doesn't cover &lt;strong&gt;bare-metal recovery&lt;/strong&gt; (rebuilding a whole machine).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat it as a smoke test, and still do a full recovery drill on a schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] At least one copy is off-site.&lt;/li&gt;
&lt;li&gt;[ ] At least one copy can't be modified from your everyday network or accounts.&lt;/li&gt;
&lt;li&gt;[ ] Backup credentials are separate from daily-use admin accounts.&lt;/li&gt;
&lt;li&gt;[ ] Failure alerts go to a monitored channel.&lt;/li&gt;
&lt;li&gt;[ ] A sample restore runs automatically.&lt;/li&gt;
&lt;li&gt;[ ] A full restore drill happens at least a couple of times a year.&lt;/li&gt;
&lt;li&gt;[ ] The recovery steps are written down where someone else can find them.&lt;/li&gt;
&lt;li&gt;[ ] You know how long recovery takes and how much data you could lose&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where this shows up outside engineering
&lt;/h2&gt;

&lt;p&gt;Small teams without a dedicated ops person often assume "the cloud" is handling it. That's worth checking. Many SaaS tools have limited retention or no easy way to recover from accidental deletion, and "synced" isn't the same as "backed up".&lt;/p&gt;

&lt;p&gt;For a non-technical take you can share with a manager or client, see &lt;a href="https://www.zianetworks.net/blog/cloud-backup-vs-local-backup-which-is-better-for-small-businesses/" rel="noopener noreferrer"&gt;Cloud Backup vs Local Backup: Which Is Better for Small Businesses?&lt;/a&gt; and &lt;a href="https://www.zianetworks.net/blog/is-your-business-data-really-backed-up-what-most-business-owners-get-wrong/" rel="noopener noreferrer"&gt;Is Your Business Data Really Backed Up?&lt;/a&gt;. If you'd rather hand it off, &lt;a href="https://www.zianetworks.net/services/data-backup/" rel="noopener noreferrer"&gt;Zia Networks&lt;/a&gt; manages backups for small businesses in New Mexico.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Don't trust a backup until you've restored from it. Automate a small check, alert a human on failure, and practice the full recovery before you need it.&lt;/p&gt;

&lt;p&gt;What does your restore testing look like today? Let me know in the comments.&lt;br&gt;
Before you publish&lt;br&gt;
Cover image: add one, since posts with images tend to get more clicks. A simple diagram of "3 copies, 2 media, 1 off-site" works.&lt;br&gt;
Set published: true only after you've previewed it.&lt;br&gt;
Don't set a canonical URL. This is original content, so it shouldn't point to your blog.&lt;br&gt;
Test the script on a throwaway folder before you tell readers it works. Make sure the restore command matches your tool.&lt;br&gt;
Tags: dev.to allows 4. Backup, security, DevOps, and beginners are all active.&lt;br&gt;
Tips&lt;br&gt;
Engage in comments. Replying to the first few comments helps the post get seen.&lt;br&gt;
Keep the promotion light. I kept it to one short paragraph near the end, since Dev.to readers dislike ads.&lt;br&gt;
Check link behaviour. Inspect the published page to see whether your links are followed.&lt;br&gt;
Add a series. A follow-up on offboarding access or patching would build your profile.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
    </item>
    <item>
      <title>How to Audit Microsoft 365 Mailboxes for Hidden Forwarding Rules</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Tue, 06 Oct 2026 07:52:31 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/how-to-audit-microsoft-365-mailboxes-for-hidden-forwarding-rules-1l</link>
      <guid>https://dev.to/zianetworksinsight/how-to-audit-microsoft-365-mailboxes-for-hidden-forwarding-rules-1l</guid>
      <description>&lt;p&gt;When a business mailbox gets compromised, resetting the password is only half the job. Attackers often leave behind &lt;strong&gt;forwarding rules&lt;/strong&gt; that quietly copy every new email to an outside address, even after the password has changed.&lt;/p&gt;

&lt;p&gt;This guide shows how to audit for those leftovers in Microsoft 365 using PowerShell.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;Common persistence tricks after account takeover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inbox rules that forward or redirect mail externally&lt;/li&gt;
&lt;li&gt;Mailbox-level forwarding (&lt;code&gt;ForwardingSmtpAddress&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Rules that move replies to hidden folders so the owner never sees them&lt;/li&gt;
&lt;li&gt;OAuth apps with mailbox permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you only reset the password, these can keep working.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An admin account with permission to read mailbox settings&lt;/li&gt;
&lt;li&gt;The Exchange Online module
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ExchangeOnlineManagement&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scope&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;CurrentUser&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Connect-ExchangeOnline&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Test in a non-production tenant or on a single mailbox first, and follow your organization's change policy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. Check mailbox-level forwarding
&lt;/h2&gt;

&lt;p&gt;This lists every mailbox that forwards mail somewhere else:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ResultSize&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Unlimited&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardingSmtpAddress&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-ne&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardingAddress&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-ne&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DisplayName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ForwardingSmtpAddress&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ForwardingAddress&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DeliverToMailboxAndForward&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anything pointing to an external address you don't recognise deserves a closer look.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Check inbox rules for one mailbox
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-InboxRule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;yourdomain.com&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardAsAttachmentTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RedirectTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Enabled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ForwardTo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ForwardAsAttachmentTo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;RedirectTo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Check inbox rules across all mailboxes
&lt;/h2&gt;

&lt;p&gt;For larger tenants, loop through mailboxes (this can take time):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ResultSize&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Unlimited&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ForEach-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Get-InboxRule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UserPrincipalName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ForwardAsAttachmentTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RedirectTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Mailbox'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MailboxOwnerId&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Enabled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ForwardTo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;RedirectTo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Remove a suspicious rule
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Remove-InboxRule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;yourdomain.com&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Identity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Rule Name"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To clear mailbox-level forwarding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Set-Mailbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Identity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;yourdomain.com&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForwardingSmtpAddress&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForwardingAddress&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Sign out active sessions
&lt;/h2&gt;

&lt;p&gt;Using the Microsoft Graph PowerShell module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Connect-MgGraph&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scopes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"User.ReadWrite.All"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Revoke-MgUserSignInSession&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-UserId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;yourdomain.com&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Post-incident checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Reset the password from a trusted device.&lt;/li&gt;
&lt;li&gt;[ ] Enforce MFA for the account.&lt;/li&gt;
&lt;li&gt;[ ] Remove unknown forwarding rules and mailbox forwarding.&lt;/li&gt;
&lt;li&gt;[ ] Revoke active sessions.&lt;/li&gt;
&lt;li&gt;[ ] Reviewed connected apps and consented to OAuth permissions&lt;/li&gt;
&lt;li&gt;[ ] Review recently sent items for fraud attempts.&lt;/li&gt;
&lt;li&gt;[ ] Check whether regulated data was exposed (e.g., HIPAA, PCI-DSS).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prevent it next time
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Block automatic external forwarding with an outbound spam policy&lt;/li&gt;
&lt;li&gt;Turn on audit logging and alerts for new inbox rules.&lt;/li&gt;
&lt;li&gt;Require MFA for every user&lt;/li&gt;
&lt;li&gt;Run this audit on a schedule, not only after incidents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Hidden forwarding is one of the most common ways account takeovers continue silently. A short scheduled audit catches it early.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm Paul, founder of &lt;a href="https://www.zianetworks.net/" rel="noopener noreferrer"&gt;Zia Networks&lt;/a&gt;, a managed IT provider supporting small businesses across New Mexico. We also publish a free version for non-technical owners.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What other persistence tricks have you seen after mailbox compromises? Share in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>software</category>
      <category>development</category>
    </item>
    <item>
      <title>LinkedIn Scams Are Targeting Your Employees: How to Stop Them</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Mon, 05 Oct 2026 10:06:56 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/linkedin-scams-are-targeting-your-employees-how-to-stop-them-23jg</link>
      <guid>https://dev.to/zianetworksinsight/linkedin-scams-are-targeting-your-employees-how-to-stop-them-23jg</guid>
      <description>&lt;p&gt;LinkedIn scams are no longer just a problem for HR or the sales team. Developers, sysadmins, and IT staff are now top targets, because one compromised laptop or stolen token can open the door to code repositories, cloud consoles, and production systems.&lt;/p&gt;

&lt;p&gt;At ZIA Networks, we often see the same pattern: the breach doesn't start with a clever exploit. It starts with a friendly LinkedIn message.&lt;/p&gt;

&lt;p&gt;Why LinkedIn works so well for attackers&lt;/p&gt;

&lt;p&gt;Public profiles reveal job titles, tech stacks, coworkers, and company news. A scammer can read a profile for ten minutes and write a message that feels personal and relevant.&lt;/p&gt;

&lt;p&gt;LinkedIn messages also arrive outside your company email, so many filters and security tools never see them.&lt;/p&gt;

&lt;p&gt;Common LinkedIn scams&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The fake recruiter with a "coding test"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A "recruiter" offers a great role and asks you to clone a repo, run a project, or install a package for a "technical assessment." The code can contain malware, steal credentials, or grab SSH keys and API tokens.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The cloned executive&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Someone copies a real manager's name and photo, then asks an employee for a quick payment, gift cards, or a confidential file.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Phishing links&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A hacked account shares a fake "document" or "invoice" that leads to a counterfeit login page.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Investment and crypto schemes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A friendly stranger builds trust over weeks, then pushes a "guaranteed" return.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quiet information gathering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some scammers ask for nothing at first. They collect details about your company and tools to plan a bigger attack later.&lt;/p&gt;

&lt;p&gt;Red flags to know&lt;/p&gt;

&lt;p&gt;A new profile with very few connections&lt;br&gt;
A job offer for a role you never applied for&lt;br&gt;
Pressure to act fast&lt;br&gt;
A request to move the chat to WhatsApp, Telegram, or personal email&lt;br&gt;
Unknown people sending files, repos, or links&lt;br&gt;
Writing or details that feel slightly off&lt;br&gt;
A quick safety checklist&lt;/p&gt;

&lt;p&gt;[ ] Never run unknown code on a work machine.&lt;br&gt;
[ ] Use a sandbox or virtual machine for any "coding test".&lt;br&gt;
[ ] Never log in through a link in a message&lt;br&gt;
[ ] Use unique passwords and a password manager.&lt;br&gt;
[ ] Turn on multi-factor authentication (MFA).&lt;br&gt;
[ ] Verify odd requests by phone or through IT.&lt;br&gt;
[ ] Report suspicious messages right away.&lt;/p&gt;

&lt;p&gt;How to protect your team&lt;/p&gt;

&lt;p&gt;Train with real examples. Short and practical beats long and boring.&lt;br&gt;
Set clear rules. No files from strangers, no logins through messages.&lt;br&gt;
Require MFA on every business and developer account.&lt;br&gt;
Use endpoint protection to block harmful downloads early.&lt;br&gt;
Make reporting easy. Fast reports mean smaller damage.&lt;br&gt;
Monitor 24/7. Attackers don't keep office hours.&lt;/p&gt;

&lt;p&gt;How ZIA Networks can help&lt;/p&gt;

&lt;p&gt;ZIA Networks helps businesses with 24/7 security monitoring, endpoint protection, employee security awareness training, and rapid incident response. We act as an extension of your team, spotting threats early so they don't become costly problems.&lt;/p&gt;

&lt;p&gt;Final thoughts&lt;/p&gt;

&lt;p&gt;LinkedIn scams keep getting smarter, but a prepared team can stay ahead. Your people are your first line of defence, so give them the knowledge and tools to use it.&lt;/p&gt;

&lt;p&gt;Want to protect your people and network? Contact ZIA Networks today.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>security</category>
    </item>
    <item>
      <title>How Much Does IT Downtime Really Cost a Small Business in Santa Fe?</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Thu, 01 Oct 2026 07:22:09 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/how-much-does-it-downtime-really-cost-a-small-business-in-santa-fe-4kng</link>
      <guid>https://dev.to/zianetworksinsight/how-much-does-it-downtime-really-cost-a-small-business-in-santa-fe-4kng</guid>
      <description>&lt;p&gt;IT downtime is easy to underestimate.&lt;/p&gt;

&lt;p&gt;A computer stops working. The internet goes down. Employees can't access a shared application. Email suddenly becomes unavailable.&lt;/p&gt;

&lt;p&gt;At first, it may seem like a small technical inconvenience.&lt;/p&gt;

&lt;p&gt;But for a small business, even a few hours of disruption can affect employee productivity, customer service, sales, project deadlines, and data access.&lt;/p&gt;

&lt;p&gt;So, what does IT downtime actually cost?&lt;/p&gt;

&lt;p&gt;A Simple Way to Calculate Downtime Cost&lt;/p&gt;

&lt;p&gt;One useful starting point is to calculate the productivity lost while employees cannot work normally:&lt;/p&gt;

&lt;p&gt;Affected employees × hourly labour cost × downtime hours&lt;/p&gt;

&lt;p&gt;For example, imagine a business has 10 employees affected by an outage for three hours, with an average labour cost of $30 per hour.&lt;/p&gt;

&lt;p&gt;10 employees × $30 × 3 hours = $900&lt;/p&gt;

&lt;p&gt;That's approximately $900 in employee productivity costs.&lt;/p&gt;

&lt;p&gt;But the real cost may be higher.&lt;/p&gt;

&lt;p&gt;The business could also lose sales, delay customer work, miss appointments, pay overtime, or spend additional hours recovering from the outage.&lt;/p&gt;

&lt;p&gt;What Are the Hidden Costs of IT Downtime?&lt;br&gt;
Lost Employee Productivity&lt;/p&gt;

&lt;p&gt;When employees can't access their computers, business applications, files, email, or network, they may be unable to complete their normal responsibilities.&lt;/p&gt;

&lt;p&gt;And productivity doesn't always return immediately after the system is restored. Employees may still need time to catch up on delayed tasks.&lt;/p&gt;

&lt;p&gt;Missed Revenue Opportunities&lt;/p&gt;

&lt;p&gt;Technology problems can affect customer communication and sales.&lt;/p&gt;

&lt;p&gt;For example, an outage could prevent customers from:&lt;/p&gt;

&lt;p&gt;Contacting the business&lt;br&gt;
Making an appointment&lt;br&gt;
Completing an online payment&lt;br&gt;
Accessing a customer portal&lt;br&gt;
Receiving a timely response&lt;/p&gt;

&lt;p&gt;For a small business, these missed opportunities can add up.&lt;/p&gt;

&lt;p&gt;Delayed Projects&lt;/p&gt;

&lt;p&gt;An IT outage can interrupt projects that depend on digital systems.&lt;/p&gt;

&lt;p&gt;A short technical problem can therefore create a longer business delay, particularly when several employees or customers depend on the same work.&lt;/p&gt;

&lt;p&gt;Recovery Time&lt;/p&gt;

&lt;p&gt;Fixing the original IT problem is only part of the recovery process.&lt;/p&gt;

&lt;p&gt;Employees may need to restore files, recreate lost work, check systems, respond to customers, and catch up on tasks that were postponed during the outage.&lt;/p&gt;

&lt;p&gt;Customer Experience&lt;/p&gt;

&lt;p&gt;Customers expect businesses to be available and responsive.&lt;/p&gt;

&lt;p&gt;Repeated technology interruptions can make it harder to provide a consistent customer experience and communicate effectively.&lt;/p&gt;

&lt;p&gt;Why Small Businesses Can Be More Vulnerable&lt;/p&gt;

&lt;p&gt;A small business may not have a large internal IT department or redundant systems for every critical service.&lt;/p&gt;

&lt;p&gt;That means one network problem, hardware failure, software issue, or security incident can affect a significant part of the business.&lt;/p&gt;

&lt;p&gt;This is why IT management should focus on prevention as well as troubleshooting.&lt;/p&gt;

&lt;p&gt;How Can a Santa Fe Business Reduce IT Downtime?&lt;/p&gt;

&lt;p&gt;There isn't one solution that prevents every outage, but several basic practices can reduce risk and improve recovery.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep Systems Updated&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Operating systems, applications, network devices, and security tools should be maintained and updated regularly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Back Up Important Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Business-critical information should have reliable backups.&lt;/p&gt;

&lt;p&gt;A backup strategy can help a business recover from accidental deletion, hardware failure, data corruption, or certain security incidents.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Monitor Important Systems&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Proactive monitoring can help identify certain technical problems before they become larger disruptions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Improve Cybersecurity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cybersecurity is also part of business continuity.&lt;/p&gt;

&lt;p&gt;Businesses should consider practices such as:&lt;/p&gt;

&lt;p&gt;Multi-factor authentication&lt;br&gt;
Endpoint protection&lt;br&gt;
Firewall management&lt;br&gt;
Security updates&lt;br&gt;
Strong password policies&lt;br&gt;
Employee security awareness&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have a Recovery Plan&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ask an important question before an outage happens:&lt;/p&gt;

&lt;p&gt;"What would we do if our most important system stopped working today?"&lt;/p&gt;

&lt;p&gt;A basic recovery plan can help employees respond more quickly and reduce confusion during an incident.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have Reliable IT Support&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When a technical problem occurs, having access to experienced IT support in Santa Fe can reduce troubleshooting delays and help employees return to normal operations.&lt;/p&gt;

&lt;p&gt;How Much Is One Hour of Downtime Worth to Your Business?&lt;/p&gt;

&lt;p&gt;Every company is different.&lt;/p&gt;

&lt;p&gt;To estimate your potential cost, consider:&lt;/p&gt;

&lt;p&gt;Employees affected&lt;br&gt;
+&lt;br&gt;
Lost productivity&lt;br&gt;
+&lt;br&gt;
Potential lost sales&lt;br&gt;
+&lt;br&gt;
Recovery time&lt;br&gt;
+&lt;br&gt;
Additional business costs&lt;/p&gt;

&lt;p&gt;You don't need a perfect number.&lt;/p&gt;

&lt;p&gt;Even a rough estimate can help you understand how much your business depends on reliable technology.&lt;/p&gt;

&lt;p&gt;Where Managed IT Services Can Help&lt;/p&gt;

&lt;p&gt;For businesses that don't have a large internal IT team, managed IT services can provide ongoing technology support and maintenance.&lt;/p&gt;

&lt;p&gt;This can include areas such as:&lt;/p&gt;

&lt;p&gt;IT help desk support&lt;br&gt;
Network management&lt;br&gt;
System monitoring&lt;br&gt;
Cybersecurity&lt;br&gt;
Data backup&lt;br&gt;
Disaster recovery&lt;br&gt;
Software and patch management&lt;br&gt;
Cloud support&lt;/p&gt;

&lt;p&gt;ZIA Networks provides IT support and managed technology services for businesses in Santa Fe and across New Mexico.&lt;/p&gt;

&lt;p&gt;The focus is on helping businesses maintain reliable, secure, and productive technology environments.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;IT downtime isn't simply a computer problem.&lt;/p&gt;

&lt;p&gt;It can become a business problem when employees can't work, customers can't reach you, projects are delayed, or important information becomes unavailable.&lt;/p&gt;

&lt;p&gt;For a small business in Santa Fe, understanding the potential IT downtime cost is a useful first step toward improving IT reliability.&lt;/p&gt;

&lt;p&gt;Regular maintenance, backups, cybersecurity, monitoring, recovery planning, and dependable IT support can all contribute to a more resilient business environment.&lt;/p&gt;

&lt;p&gt;The goal isn't to assume that IT problems will never happen. The goal is to be prepared when they do.&lt;/p&gt;

&lt;p&gt;About ZIA Networks&lt;/p&gt;

&lt;p&gt;ZIA Networks provides IT support, managed IT services, cybersecurity, network support, backup and recovery, and other technology services for businesses in Santa Fe and across New Mexico.&lt;/p&gt;

&lt;p&gt;Learn more about the company's business IT services at ZIA Networks.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>development</category>
      <category>security</category>
    </item>
    <item>
      <title>AI-Generated Emails Are Getting Better. How Should Developers Detect Them?</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:41:01 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/ai-generated-emails-are-getting-better-how-should-developers-detect-them-d88</link>
      <guid>https://dev.to/zianetworksinsight/ai-generated-emails-are-getting-better-how-should-developers-detect-them-d88</guid>
      <description>&lt;p&gt;AI can now generate emails that look surprisingly normal.&lt;/p&gt;

&lt;p&gt;The grammar is clean. The tone sounds professional. The request may even match something your company actually does.&lt;/p&gt;

&lt;p&gt;That creates an interesting security problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do we distinguish a legitimate vendor email from an AI-assisted phishing attempt?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why traditional red flags are becoming less useful
&lt;/h2&gt;

&lt;p&gt;For years, people were told to look for things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Poor grammar&lt;/li&gt;
&lt;li&gt;Strange wording&lt;/li&gt;
&lt;li&gt;Urgent requests&lt;/li&gt;
&lt;li&gt;Suspicious attachments&lt;/li&gt;
&lt;li&gt;Unprofessional formatting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those checks are still useful, but AI makes some of these signals much harder to rely on.&lt;/p&gt;

&lt;p&gt;An attacker can use an LLM to rewrite an email, improve its tone, translate it into another language, and make the message look more natural.&lt;/p&gt;

&lt;p&gt;So instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Does this email sound suspicious?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We may need to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can I independently verify what this email is asking me to do?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A simple verification workflow
&lt;/h2&gt;

&lt;p&gt;When an email requests something sensitive, I think the safest approach is to separate the email itself from the verification process.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Check the sender domain
&lt;/h3&gt;

&lt;p&gt;Don't only look at the display name.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;John from Example Company &lt;a href="mailto:john@example-company-support.com"&gt;john@example-company-support.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>security</category>
    </item>
    <item>
      <title>Remote &amp; Hybrid Work Security: What Small Businesses in New Mexico Get Wrong</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Mon, 28 Sep 2026 08:09:35 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/remote-hybrid-work-security-what-small-businesses-in-new-mexico-get-wrong-amg</link>
      <guid>https://dev.to/zianetworksinsight/remote-hybrid-work-security-what-small-businesses-in-new-mexico-get-wrong-amg</guid>
      <description>&lt;p&gt;If you're the developer, freelancer, or "computer person" at a small business, you probably also became the IT department. Remote and hybrid work made that job bigger: company data now lives on home routers, personal laptops, and cloud accounts nobody audits.&lt;/p&gt;

&lt;p&gt;I'm writing this with New Mexico small businesses in mind, but the fixes apply anywhere. Most small business breaches aren't sophisticated. They come from the same five gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Passwords are the only lock
&lt;/h2&gt;

&lt;p&gt;A stolen or reused password is the easiest way in. Whoever controls email can reset nearly everything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix it this week:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turn on MFA for email first, then banking, payroll, and cloud storage.&lt;/li&gt;
&lt;li&gt;Prefer authenticator apps or hardware keys over SMS where possible.&lt;/li&gt;
&lt;li&gt;Roll out a business password manager so nobody reuses passwords.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Unmanaged devices and home Wi-Fi
&lt;/h2&gt;

&lt;p&gt;An outdated laptop and a router with its default admin password are an open door.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix it this week:&lt;/strong&gt; require updates, a screen lock, and full-disc encryption on every device that touches company data. Quick status checks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS: is FileVault on?&lt;/span&gt;
fdesetup status

&lt;span class="c"&gt;# Linux: look for crypto_LUKS in the FSTYPE column&lt;/span&gt;
lsblk &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (run as administrator): check BitLocker status&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;manage-bde&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-status&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also send staff a short home Wi-Fi checklist: change the router admin password, use WPA2 or WPA3, update the firmware, and put guests and smart devices on a separate network.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. "Urgent" requests get through
&lt;/h2&gt;

&lt;p&gt;At home, there's no coworker nearby to ask, "Did you get this weird email too?" Fake invoices and messages that look like the boss are common.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix it this week:&lt;/strong&gt; make it a written rule that any request to send money or change payment details is confirmed by phone, using a number you already have. Make reporting a mistake safe, because delays make incidents worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Backups nobody has tested
&lt;/h2&gt;

&lt;p&gt;A backup you've never restored is a hope, not a backup. Use the 3-2-1 rule: three copies, two storage types, and one offline or off-site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix it this week:&lt;/strong&gt; restore something. For example, with restic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Confirm snapshots exist and the repository is healthy&lt;/span&gt;
restic snapshots
restic check

&lt;span class="c"&gt;# Restore one folder to a scratch location and verify it opens&lt;/span&gt;
restic restore latest &lt;span class="nt"&gt;--target&lt;/span&gt; /tmp/restore-test &lt;span class="nt"&gt;--include&lt;/span&gt; &lt;span class="s2"&gt;"/path/to/important/folder"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put a recurring reminder on the calendar to repeat this twice a year.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Legal duties are unclear
&lt;/h2&gt;

&lt;p&gt;New Mexico's Data Breach Notification Act expects businesses that hold residents' personal information to use reasonable security and to notify affected people after a breach. HIPAA, PCI DSS, or federal contractor requirements (like NIST SP 800-171 and CMMC) may also apply depending on the industry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix it this week:&lt;/strong&gt; write a one-page incident response plan with phone numbers for your IT provider, cyber insurance carrier, and an attorney. Confirm current requirements with legal counsel, since laws and thresholds change.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you only have an hour
&lt;/h2&gt;

&lt;p&gt;Turn on MFA for your business email. It's the highest-impact change most small businesses can make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free help
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Small Business Development Centers (SBDC) in New Mexico&lt;/li&gt;
&lt;li&gt;CISA's free resources for small organisations&lt;/li&gt;
&lt;li&gt;Your cyber insurance carrier, which may offer free risk assessments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;General education only, not legal advice.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;p&gt;What's the one security gap you keep finding at small businesses? Share it in the comments, and I'll cover the most common ones in a follow-up.&lt;/p&gt;

</description>
      <category>security</category>
      <category>development</category>
      <category>cybersecurity</category>
      <category>ai</category>
    </item>
    <item>
      <title>IT Support for Construction Companies in New Mexico: Managing Job Sites, Devices &amp; Data</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:23:50 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/it-support-for-construction-companies-in-new-mexico-managing-job-sites-devices-data-2mi</link>
      <guid>https://dev.to/zianetworksinsight/it-support-for-construction-companies-in-new-mexico-managing-job-sites-devices-data-2mi</guid>
      <description>&lt;p&gt;Construction technology has changed significantly over the last decade.&lt;/p&gt;

&lt;p&gt;A construction project today may depend on cloud applications, tablets, laptops, smartphones, digital plans, project-management platforms, communication tools, and large amounts of shared data. The challenge is that much of this technology has to work outside a traditional office environment.&lt;/p&gt;

&lt;p&gt;For construction companies, especially those managing multiple projects and remote job sites, IT support isn't simply about fixing a computer when something breaks. It is about keeping people connected, devices manageable, and business information secure.&lt;/p&gt;

&lt;p&gt;Why Construction IT Is Different&lt;/p&gt;

&lt;p&gt;A traditional office typically has a relatively predictable IT environment. Employees work from the same location, use managed networks, and connect to a centralised set of systems.&lt;/p&gt;

&lt;p&gt;Construction teams can have a very different setup.&lt;/p&gt;

&lt;p&gt;A project manager may work from an office in the morning, visit a job site in the afternoon, and access project files from a mobile device later in the day. Field workers may use tablets to access plans, submit information, communicate with the office, or update project-management systems.&lt;/p&gt;

&lt;p&gt;That creates several IT challenges:&lt;/p&gt;

&lt;p&gt;Multiple locations and networks&lt;br&gt;
Mobile and shared devices&lt;br&gt;
Unreliable connectivity at some job sites&lt;br&gt;
Remote employees and contractors&lt;br&gt;
Sensitive project and business information&lt;br&gt;
Different levels of technical knowledge among users&lt;/p&gt;

&lt;p&gt;A good IT strategy needs to account for all of these factors.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep Job Sites Connected&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Connectivity is one of the foundations of a modern construction project.&lt;/p&gt;

&lt;p&gt;When workers cannot access the systems they need, even a short outage can interrupt communication and slow down workflows.&lt;/p&gt;

&lt;p&gt;Depending on the location and project requirements, construction companies may need a combination of:&lt;/p&gt;

&lt;p&gt;Reliable internet connections&lt;br&gt;
Business-grade Wi-Fi&lt;br&gt;
Cellular connectivity&lt;br&gt;
Secure remote access&lt;br&gt;
Network monitoring&lt;br&gt;
Backup connectivity options&lt;/p&gt;

&lt;p&gt;The right approach depends on the site, the applications being used, and how critical connectivity is to daily operations.&lt;/p&gt;

&lt;p&gt;The important point is to treat connectivity as part of the project infrastructure rather than an afterthought.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manage Field Devices&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Laptops, tablets, and smartphones can quickly become difficult to manage when employees are working across multiple projects.&lt;/p&gt;

&lt;p&gt;Without a consistent device-management process, companies may face problems such as outdated software, missing security updates, inconsistent configurations, or employees using unauthorised applications.&lt;/p&gt;

&lt;p&gt;A basic device-management strategy should include:&lt;/p&gt;

&lt;p&gt;Standardised device configurations&lt;br&gt;
Regular operating-system and application updates&lt;br&gt;
Endpoint security&lt;br&gt;
User authentication&lt;br&gt;
Remote monitoring&lt;br&gt;
Procedures for lost or damaged devices&lt;br&gt;
Secure device disposal and replacement&lt;/p&gt;

&lt;p&gt;Centralised management becomes increasingly important as the number of devices and job sites grows.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Protect Construction Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Construction companies generate and exchange a significant amount of digital information.&lt;/p&gt;

&lt;p&gt;Project documents, contracts, financial information, employee records, designs, schedules, customer information, and communications may all be stored digitally.&lt;/p&gt;

&lt;p&gt;Protecting this information requires more than installing antivirus software.&lt;/p&gt;

&lt;p&gt;Companies should consider:&lt;/p&gt;

&lt;p&gt;Multi-factor authentication&lt;br&gt;
Strong password policies&lt;br&gt;
Role-based access&lt;br&gt;
Endpoint protection&lt;br&gt;
Secure cloud configurations&lt;br&gt;
Regular backups&lt;br&gt;
Employee security awareness&lt;br&gt;
Incident-response procedures&lt;/p&gt;

&lt;p&gt;Access should also be based on what a person actually needs to do their job.&lt;/p&gt;

&lt;p&gt;Not every employee, contractor, or temporary user needs access to every system or file.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build a Reliable Backup Strategy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A backup is useful only if it can actually be restored.&lt;/p&gt;

&lt;p&gt;Construction companies should regularly review what data needs to be protected, where backups are stored, how frequently they run, and whether restoration has been tested.&lt;/p&gt;

&lt;p&gt;A practical backup strategy can include:&lt;/p&gt;

&lt;p&gt;Identify → Back Up → Protect → Test → Recover&lt;/p&gt;

&lt;p&gt;Testing is particularly important.&lt;/p&gt;

&lt;p&gt;A company may discover that a backup process isn't working properly only after data has already been lost. Periodic restoration tests can help identify problems before an actual incident occurs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Support Cloud-Based Collaboration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cloud platforms allow construction teams to access information from different locations.&lt;/p&gt;

&lt;p&gt;Project managers, office employees, field teams, and authorised external partners can collaborate without relying entirely on a single physical office.&lt;/p&gt;

&lt;p&gt;But moving applications to the cloud doesn't eliminate IT responsibilities.&lt;/p&gt;

&lt;p&gt;Organisations still need to manage:&lt;/p&gt;

&lt;p&gt;User accounts&lt;br&gt;
Permissions&lt;br&gt;
Authentication&lt;br&gt;
File-sharing policies&lt;br&gt;
Device access&lt;br&gt;
Data retention&lt;br&gt;
Security settings&lt;/p&gt;

&lt;p&gt;Cloud technology can make collaboration easier, but it still needs proper administration.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don't Forget the Human Element&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Technology is only part of cybersecurity.&lt;/p&gt;

&lt;p&gt;Employees interact with email, files, applications, mobile devices, and external users every day. A convincing phishing message or compromised password can create problems even when technical security controls are in place.&lt;/p&gt;

&lt;p&gt;Short, practical security training can help employees recognise:&lt;/p&gt;

&lt;p&gt;Suspicious emails&lt;br&gt;
Unexpected login requests&lt;br&gt;
Malicious attachments&lt;br&gt;
Fake invoices&lt;br&gt;
Social-engineering attempts&lt;br&gt;
Unusual requests for sensitive information&lt;/p&gt;

&lt;p&gt;The goal isn't to turn every employee into a cybersecurity expert.&lt;/p&gt;

&lt;p&gt;It is to help people recognise situations that deserve additional attention.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an IT Plan Before Problems Occur&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the biggest mistakes a growing construction company can make is treating IT as something that is addressed only when something stops working.&lt;/p&gt;

&lt;p&gt;A better approach is proactive.&lt;/p&gt;

&lt;p&gt;Start by documenting:&lt;/p&gt;

&lt;p&gt;What devices the company owns&lt;br&gt;
Which applications do employees use?&lt;br&gt;
Where important data is stored&lt;br&gt;
Who has access to critical systems?&lt;br&gt;
How backups are handled&lt;br&gt;
How new employees receive devices and accounts&lt;br&gt;
What happens when an employee leaves?&lt;br&gt;
Who responds when technology fails?&lt;/p&gt;

&lt;p&gt;This creates a foundation for a more predictable IT environment.&lt;/p&gt;

&lt;p&gt;The Bigger Picture&lt;/p&gt;

&lt;p&gt;Construction technology isn't limited to software or hardware. It is part of how projects are coordinated, information is shared, and teams communicate.&lt;/p&gt;

&lt;p&gt;As construction companies become more digitally connected, IT support needs to address the entire environment:&lt;/p&gt;

&lt;p&gt;Job sites + Devices + Connectivity + Cloud + Security + Data&lt;/p&gt;

&lt;p&gt;A reliable IT strategy helps construction teams spend less time dealing with technology problems and more time focusing on their projects.&lt;/p&gt;

&lt;p&gt;For organisations operating across New Mexico and other distributed markets, this can be especially important because each project may introduce different connectivity, device, and support requirements.&lt;/p&gt;

&lt;p&gt;The most effective approach isn't simply having someone available when a computer breaks.&lt;/p&gt;

&lt;p&gt;It's building an IT environment that is secure, manageable, resilient, and ready to support the way construction teams actually work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>developer</category>
    </item>
    <item>
      <title>How to Choose an MSP in Albuquerque: 8 Questions Most Business Owners Forget to Ask</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Fri, 18 Sep 2026 06:35:50 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/how-to-choose-an-msp-in-albuquerque-8-questions-most-business-owners-forget-to-ask-5c6l</link>
      <guid>https://dev.to/zianetworksinsight/how-to-choose-an-msp-in-albuquerque-8-questions-most-business-owners-forget-to-ask-5c6l</guid>
      <description>&lt;p&gt;If you're a founder, dev lead, or the person who ends up owning "IT stuff" at a small company, you've probably weighed outsourcing infrastructure and support to a managed service provider (MSP). Most evaluations stop at price and scope. The questions below are the ones that actually predict whether the relationship holds up once something breaks in production — or at 2am on a Saturday.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What's the actual SLA—not the marketing version?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"Fast response" isn't a number. Get response and resolution times broken down by severity, and confirm they apply outside business hours. If there's no distinction between a P1 outage and a stuck printer, that's a red flag.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do they understand your compliance surface?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're touching HIPAA, PCI-DSS, SOC 2, or similar, ask for concrete examples of clients they support under the same requirements — not a checkbox "yes, we do compliance".&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dedicated engineer, or ticket queue roulette?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some MSPs route every ticket through a shared queue with no continuity. Others assign someone who actually knows your stack. For anything beyond commodity helpdesk work, this matters more than price.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What's excluded from the contract?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ask explicitly about:&lt;/p&gt;

&lt;p&gt;Employee onboarding/offboarding automation&lt;br&gt;
Hardware procurement&lt;br&gt;
After-hours emergency escalations&lt;br&gt;
Security incident response&lt;/p&gt;

&lt;p&gt;Undocumented scope is billed scope, later, as a surprise.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Walk me through your actual incident response process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not "if" — when. Ask for the real sequence: detection, containment, notification, and recovery. A team that can't answer this in specifics probably hasn't run the drill.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What's the offboarding story if we migrate providers?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Get clarity in writing on data portability and credential handoff before you need it — this is the equivalent of checking you can actually export your data before you commit to a SaaS vendor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can you connect me with a current client running a similar stack/size?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;References beat marketing copy every time.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What does proactive communication actually look like?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good MSPs surface findings before you ask — patch cadence reports, vulnerability scans, and capacity trends. If all communication is reactive (i.e., only when something's on fire), you're paying for a helpdesk, not a partner.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;Outsourcing IT/infra support is an architecture decision as much as a business one — it affects uptime, security posture, and how much on-call burden your team actually carries. These eight questions are a reasonable filter before signing anything.&lt;/p&gt;

&lt;p&gt;Disclosure: I work with &lt;a href="https://www.zianetworks.net/blog/how-to-choose-an-msp-in-albuquerque-8-questions-most" rel="noopener noreferrer"&gt;ZIA Networks&lt;/a&gt;, an MSP based in New Mexico — happy to answer questions on any of the above in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>service</category>
    </item>
    <item>
      <title>10 Essential Questions to Ask Before Signing an IT Support Contract</title>
      <dc:creator>ZIA Networks</dc:creator>
      <pubDate>Mon, 07 Sep 2026 11:33:09 +0000</pubDate>
      <link>https://dev.to/zianetworksinsight/10-essential-questions-to-ask-before-signing-an-it-support-contract-1epa</link>
      <guid>https://dev.to/zianetworksinsight/10-essential-questions-to-ask-before-signing-an-it-support-contract-1epa</guid>
      <description>&lt;p&gt;Choosing an IT support provider isn't simply a matter of comparing monthly prices.&lt;/p&gt;

&lt;p&gt;For a small or growing business, an IT support contract can affect everything from system uptime and cybersecurity to employee productivity and disaster recovery.&lt;/p&gt;

&lt;p&gt;The problem is that many contracts can look straightforward until something goes wrong.&lt;/p&gt;

&lt;p&gt;A business might discover that emergency support costs extra, certain security services aren't included, response times aren't guaranteed, or critical systems aren't covered by the agreement.&lt;/p&gt;

&lt;p&gt;At ZIA Networks, we believe the best IT support relationships start with clear expectations.&lt;/p&gt;

&lt;p&gt;Before signing an IT support contract, here are 10 questions worth asking.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What exactly is included in the monthly fee?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start with the basics.&lt;/p&gt;

&lt;p&gt;Ask the provider to clearly define what your monthly payment covers.&lt;/p&gt;

&lt;p&gt;Depending on the agreement, this might include:&lt;/p&gt;

&lt;p&gt;Help desk support&lt;br&gt;
Remote troubleshooting&lt;br&gt;
On-site support&lt;br&gt;
Network monitoring&lt;br&gt;
Endpoint management&lt;br&gt;
Software updates&lt;br&gt;
Security monitoring&lt;br&gt;
Backup monitoring&lt;br&gt;
Device management&lt;br&gt;
User onboarding and offboarding&lt;/p&gt;

&lt;p&gt;Don't assume that a service is included simply because the provider mentioned it during a sales conversation.&lt;/p&gt;

&lt;p&gt;Tip: Ask for a written list of included and excluded services.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What are the guaranteed response times?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When an employee can't access an important system, the difference between a 15-minute response and a four-hour response can be significant.&lt;/p&gt;

&lt;p&gt;Ask about the provider's Service Level Agreements (SLAs).&lt;/p&gt;

&lt;p&gt;You should understand:&lt;/p&gt;

&lt;p&gt;What counts as a critical issue?&lt;br&gt;
How quickly will critical issues receive a response?&lt;br&gt;
What happens with medium- and low-priority tickets?&lt;br&gt;
Is there a guaranteed resolution time?&lt;br&gt;
Do SLA times change outside normal business hours?&lt;/p&gt;

&lt;p&gt;A strong support agreement should define these expectations clearly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is support available 24/7?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not every company operates on a traditional 9-to-5 schedule.&lt;/p&gt;

&lt;p&gt;If your business operates outside standard working hours, ask how after-hours incidents are handled.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;What happens if our network goes down at 10 PM?&lt;/p&gt;

&lt;p&gt;The answer should be clearly documented in the contract.&lt;/p&gt;

&lt;p&gt;Also check whether 24/7 support is included in the monthly price or treated as an additional service.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How will cybersecurity incidents be handled?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Modern IT support should take cybersecurity seriously.&lt;/p&gt;

&lt;p&gt;Ask potential providers how they respond to incidents involving:&lt;/p&gt;

&lt;p&gt;Ransomware&lt;br&gt;
Malware&lt;br&gt;
Phishing&lt;br&gt;
Compromised accounts&lt;br&gt;
Unauthorised access&lt;br&gt;
Lost devices&lt;br&gt;
Data breaches&lt;/p&gt;

&lt;p&gt;It's also worth asking which security technologies and services are included.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Endpoint protection&lt;br&gt;
Email security&lt;br&gt;
Multi-factor authentication&lt;br&gt;
Security monitoring&lt;br&gt;
Vulnerability management&lt;br&gt;
Security awareness training&lt;br&gt;
Incident response&lt;/p&gt;

&lt;p&gt;Most importantly, understand who is responsible for what if a security incident occurs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How are backups created and tested?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A backup strategy is only useful if the data can actually be restored.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;How frequently are backups performed?&lt;br&gt;
Where are backups stored?&lt;br&gt;
Are backups encrypted?&lt;br&gt;
How long are they retained?&lt;br&gt;
Are multiple backup copies maintained?&lt;br&gt;
How often are restoration tests performed?&lt;br&gt;
Who monitors failed backups?&lt;/p&gt;

&lt;p&gt;A provider should be able to explain its backup and recovery process in practical terms.&lt;/p&gt;

&lt;p&gt;A useful question to ask&lt;/p&gt;

&lt;p&gt;"Can you show me how you would restore our critical systems after a major failure?"&lt;/p&gt;

&lt;p&gt;The answer can reveal much more than simply asking whether backups exist.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Who owns our data and administrative accounts?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This question is easy to overlook.&lt;/p&gt;

&lt;p&gt;Your business should understand who owns and controls its technology environment.&lt;/p&gt;

&lt;p&gt;Clarify ownership of:&lt;/p&gt;

&lt;p&gt;Business data&lt;br&gt;
Domains&lt;br&gt;
Cloud accounts&lt;br&gt;
Microsoft 365 or Google Workspace accounts&lt;br&gt;
Administrative credentials&lt;br&gt;
Network configurations&lt;br&gt;
Backup data&lt;br&gt;
Software licences&lt;br&gt;
Documentation&lt;/p&gt;

&lt;p&gt;This becomes especially important if you eventually change IT providers.&lt;/p&gt;

&lt;p&gt;You don't want your business to discover that critical accounts or configurations are controlled entirely by an outside company.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What costs are outside the contract?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A low monthly price can become expensive if many essential services are billed separately.&lt;/p&gt;

&lt;p&gt;Ask about additional charges for:&lt;/p&gt;

&lt;p&gt;Emergency support&lt;br&gt;
After-hours support&lt;br&gt;
On-site visits&lt;br&gt;
New employee setup&lt;br&gt;
Hardware installation&lt;br&gt;
Software installation&lt;br&gt;
Network changes&lt;br&gt;
Cloud migrations&lt;br&gt;
Major projects&lt;br&gt;
Additional licences&lt;/p&gt;

&lt;p&gt;Ask the provider to explain how extra work is approved and billed.&lt;/p&gt;

&lt;p&gt;Ideally, there should be no surprises on your invoice.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What proactive monitoring do you provide?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Reactive IT support waits for something to break.&lt;/p&gt;

&lt;p&gt;Proactive IT support attempts to identify problems before they become major incidents.&lt;/p&gt;

&lt;p&gt;Ask whether the provider monitors:&lt;/p&gt;

&lt;p&gt;Servers&lt;br&gt;
Workstations&lt;br&gt;
Network devices&lt;br&gt;
Storage&lt;br&gt;
Backup systems&lt;br&gt;
Security tools&lt;br&gt;
Device health&lt;br&gt;
Software updates&lt;/p&gt;

&lt;p&gt;For example, identifying a failing hard drive before it causes downtime is much better than discovering the problem after the server stops working.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What happens if we want to leave?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nobody likes to think about ending a vendor relationship before it begins.&lt;/p&gt;

&lt;p&gt;But you should.&lt;/p&gt;

&lt;p&gt;Read the contract carefully and look for:&lt;/p&gt;

&lt;p&gt;Contract length&lt;br&gt;
Renewal terms&lt;br&gt;
Cancellation notice&lt;br&gt;
Termination fees&lt;br&gt;
Data return procedures&lt;br&gt;
Credential handover&lt;br&gt;
Documentation requirements&lt;br&gt;
Equipment ownership&lt;br&gt;
Transition assistance&lt;/p&gt;

&lt;p&gt;A professional agreement should make the exit process as clear as the onboarding process.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can you provide references from similar businesses?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Experience matters.&lt;/p&gt;

&lt;p&gt;Ask whether the provider can provide references from businesses with similar:&lt;/p&gt;

&lt;p&gt;Company size&lt;br&gt;
IT requirements&lt;br&gt;
Number of employees&lt;br&gt;
Security needs&lt;br&gt;
Cloud environment&lt;br&gt;
Industry requirements&lt;/p&gt;

&lt;p&gt;When speaking with references, don't just ask:&lt;/p&gt;

&lt;p&gt;"Do you like the IT provider?"&lt;/p&gt;

&lt;p&gt;Ask more specific questions:&lt;/p&gt;

&lt;p&gt;How quickly do they respond?&lt;br&gt;
Are invoices predictable?&lt;br&gt;
How do they communicate during outages?&lt;br&gt;
Have they helped with security incidents?&lt;br&gt;
Do they proactively identify problems?&lt;br&gt;
Would you hire them again?&lt;/p&gt;

&lt;p&gt;These answers can provide valuable insight before you sign a contract.&lt;/p&gt;

&lt;p&gt;Red Flags to Watch For&lt;/p&gt;

&lt;p&gt;Some warning signs should make you slow down before signing.&lt;/p&gt;

&lt;p&gt;Be cautious if a provider:&lt;/p&gt;

&lt;p&gt;Cannot clearly explain what's included&lt;br&gt;
Avoids putting SLA commitments in writing&lt;br&gt;
Gives vague answers about cybersecurity&lt;br&gt;
Cannot explain its backup strategy&lt;br&gt;
Controls critical accounts without clear ownership terms&lt;br&gt;
Has unclear additional fees&lt;br&gt;
Makes it difficult to understand cancellation terms&lt;br&gt;
Focuses heavily on price instead of outcomes&lt;/p&gt;

&lt;p&gt;A good IT provider should be comfortable answering difficult questions.&lt;/p&gt;

&lt;p&gt;A Simple IT Support Contract Checklist&lt;/p&gt;

&lt;p&gt;Before signing, make sure you can answer yes to these questions:&lt;/p&gt;

&lt;p&gt;Do I know exactly what services are included?&lt;/p&gt;

&lt;p&gt;Are response expectations documented?&lt;/p&gt;

&lt;p&gt;Do I understand after-hours support?&lt;/p&gt;

&lt;p&gt;Is cybersecurity clearly addressed?&lt;/p&gt;

&lt;p&gt;Are backups monitored and tested?&lt;/p&gt;

&lt;p&gt;Does my business retain ownership of its data and accounts?&lt;/p&gt;

&lt;p&gt;Are additional charges clearly explained?&lt;/p&gt;

&lt;p&gt;Is proactive monitoring included?&lt;/p&gt;

&lt;p&gt;Do I understand the cancellation process?&lt;/p&gt;

&lt;p&gt;Have I checked relevant customer references?&lt;/p&gt;

&lt;p&gt;If several answers are unclear, ask for clarification before signing.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;An IT support contract isn't just another vendor agreement.&lt;/p&gt;

&lt;p&gt;It defines how your business will receive technical assistance, how problems will be handled, what security responsibilities exist, and what happens when something goes wrong.&lt;/p&gt;

&lt;p&gt;That's why businesses should evaluate more than the monthly price.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://www.zianetworks.net/" rel="noopener noreferrer"&gt;ZIA Networks&lt;/a&gt;, we believe transparency should be part of every IT support relationship. The goal isn't simply to find a provider that can fix problems. It's to find a technology partner that understands your environment, communicates clearly, and helps you reduce avoidable IT risks.&lt;/p&gt;

&lt;p&gt;Before signing your next IT support agreement, take the time to ask the difficult questions.&lt;/p&gt;

</description>
      <category>security</category>
      <category>software</category>
    </item>
  </channel>
</rss>
