Security commentary

Securing the World’s Software in the Age of AI

Make continuous defensive work practical across applications, dependencies and the teams responsible for them.

Securing the World’s Software in the Age of AI explanatory diagram
Explanatory diagram · Counterswarm

More software means more decisions

AI-assisted development can make it easier to generate code, but every new endpoint, package and integration still creates a security decision. Someone must understand what the software can access, which inputs it trusts and how it will be maintained. The important scaling challenge is not simply reviewing more lines. It is preserving context and ownership as systems and their dependencies change.

A practical defence programme starts with the software it can actually identify. Link repositories to deployed services, package inventories, data sensitivity and an accountable owner. An application that appears in a scanning dashboard but has no known deployment or maintainer is difficult to protect when a time-sensitive finding arrives.

Choose coverage around important boundaries

Prioritise operations whose misuse would expose sensitive information, change access, move money or disrupt an essential service. Review how those operations are implemented across application code, infrastructure and external integrations. A narrow code check may miss an overly powerful service account; an infrastructure review may miss a tenant-ownership check in a background job. Security evidence needs to cross those boundaries without losing the identity and permissions involved.

Include the software your team did not write. Transitive packages, container bases and embedded runtimes can introduce exposure outside the application manifest. Keep enough provenance to determine what is deployed and which team can replace it. Where a vendor supplies a backported fix, retain the package evidence rather than relying only on an upstream version string.

Connect discovery to repair

Treat a finding as the beginning of a workflow. It needs a reproducible description, a tested revision, a severity rationale and a next action. A proposed patch should explain the security property it changes. After deployment, retest the original issue and a legitimate neighbouring workflow. Closing a ticket because a commit merged leaves a gap if the repaired version never reaches the affected environment.

Use automation to reduce repetitive investigation and keep the evidence together. Maintain clear distinctions between generated hypotheses, attempted tests and confirmed results. When the system lacks access or context, an explicit incomplete assessment is preferable to an invented conclusion. The process should help an engineer make a decision, not merely increase the number of alerts.

Improve the shared ecosystem responsibly

When investigation reveals a possible issue in an external component, follow the maintainer's security reporting process and limit testing to authorised environments. Provide a minimal reproduction and enough context for the maintainer to assess the problem. Avoid publishing sensitive details before coordination has established an appropriate path. Maintain your own remediation plan while upstream work continues; the users of your application still depend on your deployment decisions.

Measure whether this operating model reduces time to evidence, time to ownership and time to verified repair. Review blind spots as deliberately as successful detections. Securing software at scale requires a repeatable collaboration between maintainers, product engineers and security teams. AI can assist that work, while the responsibility for scope, evidence and deployed changes remains concrete.

Sources and further reading

← All blog