Dev.to Security 🔐 Cybersecurity 👁 0 📖 2 min read

We planted 34 flaws in Azure and ran three scanners. Here's what each one caught.

We maintain a small Azure "flaw lab": a Terraform estate where every resource is deliberately misconfigured in one known way. Last week we used it to compare three free, read-only tools on the same 34 planted flaws: - *


We maintain a small Azure "flaw lab": a Terraform estate where every resource is deliberately misconfigured in one known way. Last week we used it to compare three free, read-only tools on the same 34 planted flaws:

- **Azure Advisor**, built into every subscription
- **Azure Quick Review (azqr)**, Microsoft's open-source scanner
- **Skyveda Scan**, our open-source scanner

To be upfront: it's our lab, built to test our own checks, so treat it as one data point, not a benchmark.

### The results

| Tool | Planted flaws caught |
|---|---|
| Skyveda Scan | 34 / 34 |
| azqr | 15, plus 4 partly ("use private endpoints") |
| Azure Advisor | 0, but Advisor refreshes about once a day, so it wasn't a fair fight |

**What azqr missed:**
- SSH open to the Internet
- database ports open to the Internet
- an Azure SQL firewall rule allowing the whole Internet
- anonymous blob access
- storage shared-key access
- Key Vault network access
- web apps allowing TLS below 1.2 or CORS from any origin

These are the findings that tend to fail a customer's security questionnaire.

**What azqr did better.** It reported 64 kinds of issue, against our 60 checks. It covered things we don't check yet: diagnostic settings, zone redundancy, backups and soft delete. Those are now on our backlog. If you run Azure, run azqr too; it's good.

### Finding is the easy part

The new thing in 0.4 is `skyveda fixes`. It turns findings into a ranked plan and **one script per resource**, with:
- the risk and expected downtime
- what to check before you start
- a rollback and a verify step
- every command **commented out**, so a person has to read and enable each one. The tool itself never changes anything.

We applied the generated fix for the SSH rule in the lab and rescanned: the check went from **fail to pass**.

### Also in 0.4

Every check now maps to the **Microsoft cloud security benchmark** and the **Azure Well-Architected Framework**. The report shows a pass/fail summary per control and per pillar. (It's a mapping, not a certification.)


bash
pip install "skyveda[azure]"
skyveda scan --provider azure --subscription --out ./out --pdf
skyveda fixes ./out/findings.json --out ./fixes




Code (Apache 2.0): https://github.com/skyvedahq/skyveda

Which checks should we add next? Tell us in the comments.

*Microsoft and Azure are trademarks of the Microsoft group of companies. Skyveda is not affiliated with or endorsed by Microsoft.*
📰 Read the original article on Dev.to Security

Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.