Insights.
Short technical write-ups from real work.
Reference guides
Defensive & advisory
What to fix in SharePoint before you turn on Microsoft 365 Copilot
Copilot grants nobody new access and removes the effort of finding, which turns old SharePoint permission defects into visible answers. The signals that mark a risky site, the difference between containing an exposure and fixing it, and the stopgap that can no longer be switched on after 31 July 2026.
Defensive & advisory
What Australian cyber insurers check before they quote you
A cyber proposal form asks binary questions about controls that are never binary in a real environment. This note walks the recurring questions, the evidence that answers each one, and how a declaration gets tested against system timestamps after a loss.
Software engineering
RBAC vs ABAC, and where the permission check belongs
Authorisation is one question with four parts, and the decision that shapes everything after it is whether that question gets answered in one place or re-answered in every handler. Two reference tables compare the models and the layers a check can sit in.
Compliance readiness
What a government tender means when it asks for the Essential Eight
A map from Australian government buyer to the security artefact they actually want, what each one evidences and fails to evidence, and how to answer a schedule asking for something you do not yet have.
Breach remediation
Deciding whether to rebuild or restore after ransomware
Once containment holds, the question is which parts of the environment you are willing to trust again. A decision table for clean, selective rebuild or full rebuild, the order credentials get rotated in, and what has to be true before anyone declares normal operation.
Defensive & advisory
An incident severity matrix you can actually use
Most incident plans skip the decision that shapes every other decision: how bad is this. A four-level severity matrix for Australian businesses, with first actions, internal escalation and the external notification clocks per level.
Secure development
Shipping AI-written code without shipping its mistakes
AI coding tools produce working applications in the same confident tone whether the security is right or wrong. A guide to the eight places AI-generated code typically fails, the pre-ship checks a competent developer can run, and the point where a professional review is warranted.
Offensive testing
Choosing the right security assessment: what each type actually answers
Seven assessment types compared on what they find, what they cannot, and what you receive, plus how to match them to your maturity, sequence them over a year, and read a proposal before signing.
Compliance readiness
The Australian cyber compliance map: what applies to your business
One reference table mapping the Privacy Act, the NDB scheme, the SOCI Act, CPS 234, PCI DSS and the voluntary assurance frameworks to the businesses they bind, with a workable order for tackling them.
Self-serve tools
All toolsCompliance readiness
Essential Eight self-check
Twenty-four questions against the eight strategies. See where you actually stand.
Secure development
AI-built app risk check
Shipped something AI-assisted? Sixteen questions before it holds real data.
Breach remediation
Breach notification helper
Walk the Notifiable Data Breaches test the way the OAIC frames it.
Secure development
Security headers check
Paste your response headers. Get a straight read on what is missing.
Defensive & advisory
Incident cost estimator
Put your own figures in and see what a bad week actually costs.
Defensive & advisory
Cyber insurance answer check
Twenty-two control questions, answered the way a proposal form asks them.
Offensive testing
Penetration test scope builder
Answer the scoping questions once and send the same brief to every provider.
Compliance readiness
Security questionnaire translator
Paste the questions. See what each one is actually asking for and what evidence answers it.

Defensive & advisory28 July 2026
What to fix in SharePoint before you turn on Microsoft 365 Copilot
Copilot grants nobody new access and removes the effort of finding, which turns old SharePoint permission defects into visible answers. The signals that mark a risky site, the difference between containing an exposure and fixing it, and the stopgap that can no longer be switched on after 31 July 2026.

Defensive & advisory27 July 2026
What Australian cyber insurers check before they quote you
A cyber proposal form asks binary questions about controls that are never binary in a real environment. This note walks the recurring questions, the evidence that answers each one, and how a declaration gets tested against system timestamps after a loss.

Software engineering25 July 2026
RBAC vs ABAC, and where the permission check belongs
Authorisation is one question with four parts, and the decision that shapes everything after it is whether that question gets answered in one place or re-answered in every handler. Two reference tables compare the models and the layers a check can sit in.

Compliance readiness23 July 2026
What a government tender means when it asks for the Essential Eight
A map from Australian government buyer to the security artefact they actually want, what each one evidences and fails to evidence, and how to answer a schedule asking for something you do not yet have.

Breach remediation21 July 2026
Deciding whether to rebuild or restore after ransomware
Once containment holds, the question is which parts of the environment you are willing to trust again. A decision table for clean, selective rebuild or full rebuild, the order credentials get rotated in, and what has to be true before anyone declares normal operation.

Compliance readiness20 July 2026
How to answer a vendor security questionnaire without stalling the deal
The reviewer on the other side of the sheet is testing four things and cross-checking your answers against each other and against everything public. A working method for answering, including how to answer no in a way a buyer accepts, and the artefact pack that closes most rows before the sheet arrives.

Defensive & advisory18 July 2026
What to check in an Entra ID app registration security review
App registrations and service principals authenticate as themselves, with no user and no multi-factor claim for a conditional access policy to evaluate. A review of that plane asks which app-only permissions are granted, which credentials can use them, who can quietly add another one, and what the tenant settings do about the next grant.

Offensive testing16 July 2026
What a penetration test attestation letter has to say, and what stays in the report
The report and the attestation letter answer different questions, and sending the wrong one either stalls a deal or hands a stranger a working attack path into your own systems. What each has to state, and how to re-rank severity against your real exposure.

Defensive & advisory14 July 2026
An incident severity matrix you can actually use
Most incident plans skip the decision that shapes every other decision: how bad is this. A four-level severity matrix for Australian businesses, with first actions, internal escalation and the external notification clocks per level.

Secure development13 July 2026
Shipping AI-written code without shipping its mistakes
AI coding tools produce working applications in the same confident tone whether the security is right or wrong. A guide to the eight places AI-generated code typically fails, the pre-ship checks a competent developer can run, and the point where a professional review is warranted.

Offensive testing12 July 2026
Choosing the right security assessment: what each type actually answers
Seven assessment types compared on what they find, what they cannot, and what you receive, plus how to match them to your maturity, sequence them over a year, and read a proposal before signing.

Compliance readiness10 July 2026
The Australian cyber compliance map: what applies to your business
One reference table mapping the Privacy Act, the NDB scheme, the SOCI Act, CPS 234, PCI DSS and the voluntary assurance frameworks to the businesses they bind, with a workable order for tackling them.

Secure development9 July 2026
A content-security policy that blocks something
Why default-permissive content-security policies are theatre, and the engineering discipline behind a CSP that actually contains script injection.

Compliance readiness9 July 2026
What an Essential Eight self-assessment actually takes
The practitioner view of self-assessing against the ASD Essential Eight: what each strategy really tests, what evidence stands up, and how to sequence an uplift without freezing delivery.

Software engineering9 July 2026
Tenant isolation that survives a bad query
PostgreSQL row-level security as the tenant isolation layer in clinical software: the policy pattern, the operational cost, and why WHERE clauses are not a model.

Software engineering9 July 2026
An audit ledger nobody can quietly edit
Why mutable audit tables collapse under scrutiny, and the append-only audit ledger pattern, machine-enforced on every state change, that we run in production for GRM LAW.

Compliance readiness8 July 2026
SMB1001 or Essential Eight: Which Should You Do First?
The Essential Eight measures technical hardening and SMB1001 certifies whole-of-business practice. For most smaller Australian businesses the right answer is a deliberate sequence, not a choice.

Offensive testing6 July 2026
What an API penetration test finds that a web application test misses
A browser-driven test exercises the API through the one path the interface allows. This sets out what a separate API engagement adds: the authorisation matrix across roles and tenants, mass assignment, versions nobody retired, GraphQL cost limits, and tokens issued to machines.

Defensive & advisory3 July 2026
Alerts Worth Waking Up For: Detection Without a SOC
Small teams don't need more detections. They need a short list of alerts someone will genuinely act on, and the discipline to delete the rest.

Breach remediation30 June 2026
What to do when your vendor has a data breach
A supplier breach leaves you holding the legal obligation and almost none of the visibility. What to put in writing on day one, what you can contain unilaterally, how to assess when the vendor will not confirm anything, and who notifies when more than one entity holds the data.

Software engineering26 June 2026
Patching Without Breaking Production: A Field Guide
The flaw that gets exploited is usually one with a fix already published. A working system of triage, rings, rollback and standing windows makes patching fast and boring.

Defensive & advisory22 June 2026
What Australian director duties require a board to show about cyber risk
Cyber risk reaches directors through the ordinary care and diligence duty, and the Australian decision on point judged adequacy on expert evidence rather than the licensee's own view of itself. What a board has to produce is a record of the questions it asked, the answers it received, and what changed.

Compliance readiness19 June 2026
Privacy by Design Starts With Collecting Less Data
The record you never collected costs nothing to secure. A field note on data minimisation under the APPs, retention schedules that actually execute, and delete-by-default engineering.

Software engineering16 June 2026
Shadow IT and the SaaS you cannot see
Unsanctioned SaaS holds company data whether or not anyone can see it. Field notes on finding it through identity logs, DNS and expense reports, reining in OAuth grant sprawl, and why a fast sanctioning path works better than a ban.

Offensive testing12 June 2026
Red Team or Penetration Test: Which Do You Need?
A penetration test measures the security of a system. Adversary simulation measures whether your organisation can detect and stop an intruder, and most buyers need the first before the second.

Secure development9 June 2026
AI coding agent security starts with what it can already reach
A coding agent runs with the credential set of whoever launched it, and it takes instructions from whatever it reads, so a dependency README, a ticket comment and a tool description are all places an instruction can be planted. What an agent holds, how injected instructions reach it, and which boundaries genuinely bound it.

Software engineering5 June 2026
Microsoft Entra Conditional Access That Actually Holds
Entra's policy engine is default allow: a sign-in that matches no conditional access policy walks straight in. A field note on building a policy set with no seams.

Compliance readiness2 June 2026
Ransomware and the question of paying
A ransom demand puts an unrehearsed decision in front of the business. What the law says about paying, who must be told within 72 hours, what the insurer will require, and the preparation that means the decision is never made under pressure.

Secure development29 May 2026
What a Human Reviewer Catches That a Scanner Misses
Static analysis is fast, cheap, and blind to meaning. Where automated scanning genuinely helps, where it structurally cannot, and the kinds of serious flaw that only a reviewer who understands the system will ever find.

Secure development26 May 2026
Who should own the Azure tenant when someone else builds your system
Account custody decides who can revoke access and who can produce the audit trail. The accounts that matter on a custom build, what least privilege for the builder should look like, and an exit test that proves ownership in an afternoon.

Defensive & advisory22 May 2026
What a Web Application Firewall Cannot Do
A web application firewall is a useful layer that quietly convinces teams they are covered. What it actually stops, the whole classes of serious flaw it is blind to, and how to treat it without leaning on it.

Compliance readiness19 May 2026
The Privacy Act for software teams
The Privacy Act sets outcomes and engineering decisions determine whether you meet them. How the APPs translate into schema, logging, region and product choices, and where reform is heading.

Compliance readiness15 May 2026
What an ISO 27001 Auditor Actually Checks
Certification audits fail on evidence, not documents. Where the auditor samples, what the Statement of Applicability commits you to, and how to make Stage 2 uneventful.

Compliance readiness12 May 2026
What a SOC 2 report actually tells you
A vendor's SOC 2 is evidence only if someone reads it properly. This note maps where the opinion, period, scope, carve-outs and exceptions sit in the report, and the questions no SOC 2 answers.

Compliance readiness8 May 2026
What You Must Do When Personal Data Leaks
When personal information is exposed, the Privacy Act sets a clock running. What an eligible data breach is, the assessment obligation, who you must tell, and the preparation that makes the day survivable rather than chaotic.

Offensive testing5 May 2026
Social engineering has left the inbox
Phishing filters watch the inbox while attackers ring the helpdesk, text personal phones and bomb users with push prompts. A field note on the channels email controls never see, and the verification culture that stops them.

Defensive & advisory1 May 2026
Backups That Survive Ransomware, Not Just Disk Failure
A backup an attacker can reach or delete is not a backup. What ransomware actually does to your recovery position, and the handful of properties that decide whether you pay or restore.

Secure development28 April 2026
The API key you shipped to every customer
Any secret compiled into a mobile binary or bundled into frontend JavaScript is published the day you ship it. Field notes on how keys get extracted, what attackers do with them, the backend-for-frontend pattern, and the scoping, rotation and monitoring that contain the ones that must ship.

Software engineering24 April 2026
Shifting Security Left Without Slowing Delivery Down
Security gates fail when developers stop believing them. A field note on secret scanning, dependency checks and IaC gates that block only what matters.

Offensive testing21 April 2026
What a mobile app penetration test actually covers
A mobile engagement is three pieces of work usually quoted as one: the shipped package, what the app leaves on a device you do not control, and the API behind it. What each layer finds, what to hand the tester before the start date, and why remediation through a store review queue needs a server-side plan.

Defensive & advisory17 April 2026
Zero Trust for a Fifty-Person Company: Where to Start
Identity as the perimeter, device health as the second signal, standing privilege stripped out. The pragmatic zero trust path for an SMB, mostly on licensing you already own.

Defensive & advisory14 April 2026
The VPN appliance on your perimeter is now the target
The edge device that authenticates your remote workforce is the most exposed and least observable thing you own. A field note on the appliance exploitation wave, the compensating controls, and when retirement is the better call.

Offensive testing10 April 2026
A Penetration Test Is Not a Vulnerability Scan
Buyers often ask for one and pay for the other. A field note on where automated scanning stops and human testing begins, with a scoping guide for both.

Offensive testing7 April 2026
Scoping a penetration test properly
Most of a penetration test's value is fixed before testing starts. What a useful scope contains, the scoping mistakes that waste an engagement, and the questions a good scoping call asks.

Defensive & advisory3 April 2026
The Azure Storage Account That Was Public All Along
The storage account answered to the whole internet from the day it was created, and nobody had ever been asked to decide otherwise. Why Azure defaults are open windows, and how to close them without breaking production.

Offensive testing31 March 2026
How to security test an LLM feature already in production
The instructions that break a shipped model feature arrive in uploaded documents, ticket text and retrieved records, so a test plan that only fuzzes the chat box misses them. Where to plant payloads, why the retrieval index is an authorisation boundary, and what a pass means when the system is not deterministic.

Secure development27 March 2026
Broken Object Level Authorization: IDOR in Real Apps
Authentication proves who you are. Authorization proves you are allowed to touch this record. The gap between them is the flaw we report most.

Offensive testing24 March 2026
Password Spraying Still Works
Spraying one common password across every account sidesteps lockout policies that only count failures per user. A field note on the passwords that fall, the endpoints without MFA, and how to measure your exposure without locking staff out.

Defensive & advisory21 March 2026
Do you need to back up Microsoft 365, and what does it already keep
Microsoft holds your deleted data for a defined number of days, and the defaults decide whether recovery is possible at all. The documented timers across SharePoint, OneDrive, Exchange and Teams, and the four cases that settle whether you need a separate copy.

Defensive & advisory19 March 2026
The Logging You Will Actually Want in a Breach
Most environments log for uptime, not investigation. A field note on the five properties that decide whether anyone can answer how an attacker got in and what they touched.

Software engineering16 March 2026
Offboarding: the access that outlives the employee
Disabling the directory account is the easy part of offboarding. A field note on the shared logins, API keys, OAuth grants and SaaS accounts that outlive a leaver, and the quarterly hunt that finds them.

Breach remediation13 March 2026
How long Microsoft keeps the logs you will need after a breach
The documented retention defaults across Microsoft Entra ID, the Microsoft 365 unified audit log and Azure platform logs, the licence seams that decide which events exist at all, and why upgrading after an incident recovers nothing.

Software engineering11 March 2026
Secrets Management Past the .env File
The .env file fails at distribution, rotation and revocation, not storage. A field note on secret managers, managed identity, short-lived credentials and finding what has already leaked into git history.

Defensive & advisory9 March 2026
What a guest account can see in your Microsoft 365 tenant
The defaults decide how much of your organisation a single partner invitation exposes. What a guest can read, who is allowed to invite one, what inbound trust commits you to, and the partner access that creates no directory object at all.

Software engineering6 March 2026
Hardening Microsoft 365 on the licences you already have
The controls that stop commodity account takeover ship in every Microsoft 365 tier, and most of them default loose. What to set on Business Premium and below, and the short list that genuinely needs enterprise licensing.

Offensive testing3 March 2026
How Attackers Move Laterally in a Windows Network
The path from one compromised laptop to full domain control is a chain of credential reuse. This is how that chain gets built, and the few controls that reliably cut it.

Software engineering28 February 2026
What encryption at rest actually protects you from
Disk and database encryption stop a stolen drive and a copied backup, and they do nothing about a query your application is willing to run, which is the path almost every real exposure takes.

Defensive & advisory25 February 2026
What Belongs in an Incident Response Plan
Most incident response plans were written to satisfy an auditor and fail the first time someone opens them under pressure. The useful ones are short, name real people, and settle the hard decisions in advance.

Secure development23 February 2026
What an enterprise buyer means when the contract says SAML single sign-on
An enterprise single sign-on clause hands your customer's identity team authority over who holds an account in your product and how fast it stops working. What to build for SAML and OpenID Connect, the assertion validation that keeps one customer out of another customer's workspace, what SCIM has to do about leavers, and the credentials that survive enforcement.

Offensive testing20 February 2026
What to Measure in a Phishing Simulation
Attackers need one click; defenders need one report. Why report rate and time to report are the numbers that predict how a real phishing campaign ends.

Defensive & advisory17 February 2026
Token theft: when attackers skip the password entirely
Attackers increasingly arrive holding a valid session cookie or OAuth token and never see a login page. A field note on how tokens get stolen, what they are worth, and the binding, monitoring and revocation work that limits the damage.

Software engineering14 February 2026
The Azure database that is reachable from the internet by design
A managed database, cache or vault arrives with a public endpoint and a firewall in front of it, so private is a decision somebody has to make. What the allow Azure services rule really admits, why a private endpoint can still carry traffic over the public path, and the order that closes it without an outage.

Secure development12 February 2026
Threat Modelling Without the Theatre: A Working Method
Threat modelling that a five-person team will actually keep doing: one honest diagram, boundaries drawn where trust changes, and STRIDE run as a prompt list rather than a ceremony.

Defensive & advisory9 February 2026
The Anatomy of a Business Email Compromise
Business email compromise ends with a payment the victim authorised themselves. A field note on the quiet weeks before that transfer, the controls that break the chain, and what the first day after discovery should look like.

Secure development6 February 2026
Turning penetration test findings into work your engineers will finish
A report is ordered by severity because that is how a tester writes it, and a codebase changes by root cause. The re-sort, the rule that keeps a class shut once you close it, and the closure record a retester can check without asking you.

Defensive & advisory4 February 2026
The First Hour of an Incident
The instinct in a suspected breach is to wipe, reboot and reset. The first hour rewards a slower hand: isolate without powering off, preserve the record, and make three calls in the right order.

Compliance readiness1 February 2026
What a security schedule in a customer contract commits you to
A security schedule is an operative term of the contract, live for the whole term and usually past it, carrying a notification clock measured in hours, an audit right, a flow-down to every provider you use, and a deletion certificate somebody has to sign. This sets out what each clause family obliges, the evidence that discharges it, and where suppliers land.

Secure development28 January 2026
When the package name is the attack
Typosquats, dependency confusion and AI-invented package names all turn one wrong install command into code execution on a developer laptop or CI runner. What each attack looks like, and the checks that catch it before the install runs.

Compliance readiness26 January 2026
How long you must keep customer data, and when keeping it becomes the risk
The Privacy Act states no retention period anywhere, only a test for when disposal falls due, and a stack of other statutes pulls against it. How to reconcile both into one schedule, where deletion silently fails, and what proves it ran.

Defensive & advisory23 January 2026
Why MFA Still Gets Bypassed and What Actually Stops It
Most MFA bypasses never attack the factor itself. A field note on session token theft, AiTM kits, push fatigue and the conditional access work that actually stops account takeover.

Secure development19 January 2026
Reviewing AI-generated code before it ships
AI assistants produce fluent code with systematic security gaps: invented dependencies, inline secrets, missing authorisation checks and confidently wrong cryptography. A reviewer's posture for diffs where much of the code was generated.

Secure development14 January 2026
Supply Chain Risk in Your Dependencies
A compromised npm or PyPI package runs on your CI runner with your deploy tokens long before it reaches production. Field notes on lockfile discipline, provenance, SBOMs and what a dependency review actually checks.
Want this kind of engineering on your systems?
Australia-wide, from our Brisbane head office. Someone will contact you as soon as possible.