Safeguard
Security Guides•

How do you run SAST on a codebase you just acquired?

Scan an acquired codebase in a way that tells you what you own: inventory, one baseline scan, triage by weakness type, and a short risk note. A week plan.

Safeguard Security Team
7 min read

Treat the first scan as a survey, not a gate. Take inventory of languages and build setup, run one baseline scan, triage by weakness type instead of by count, and write a short risk note. Aim to learn what you now own within a week, not to fix everything.

What makes this different from a normal rollout

In a normal rollout you scan code your team knows. After an acquisition, nobody on your side knows where the odd corners are. The goal changes from "keep new code clean" to "understand the starting position." Expect a large first result and plan for it.

OWASP points out that many static tools have difficulty with code that cannot be compiled, because analysts frequently lack the right libraries, instructions or complete code. Acquired code often has exactly that problem, so budget time for build setup.

A week plan

DayActivityOutput
1Inventory repositories, languages, frameworks, build toolsA one page map
2Get builds working on a clean machineA list of repos that build and ones that do not
3Run the baseline scan on the repos that buildRaw findings, saved in an exportable format
4Triage by weakness type and by exposureA short list of themes
5Run dependency scanning on the same reposA separate list of vulnerable packages
6Sample and verify ten findingsA rough sense of false positive rate
7Write the risk noteA page for leadership

Triage by theme, not by count

A raw count says little. Group findings by weakness type, then by whether the code is exposed to the internet. Ten injection findings in a public API matter more than two hundred findings in an internal batch script.

Then verify a small sample by hand. Pick ten findings across themes and confirm each one by reading the code. That sample tells you how much to trust the rest. It is not a statistical estimate, only a calibration.

Do not forget what SAST does not cover

SAST looks at code the company wrote. The acquired code also pulls in third party packages, so run dependency scanning separately. And SAST will not find configuration problems or access control gaps well, so flag those areas for review.

Also look for signs the scan missed things: directories that were excluded, languages the tool skipped, repositories that failed to build. Those are blind spots, and a risk note should list them honestly.

What the risk note should contain

  1. What was scanned and what was not.
  2. The three to five themes that matter most.
  3. What you recommend fixing first and why.
  4. What you do not know yet.

Avoid false precision. A note that says "we scanned nine of fourteen repositories, found injection patterns in two exposed services, and could not build three legacy ones" is more useful than a dashboard.

After the first week

Set a baseline so that the team is judged on new findings, then burn the backlog down gradually. A ratchet approach, failing only on new issues, keeps pressure on without freezing delivery.

A worked example: week one on a fourteen repository acquisition

A company acquires a small software business. Engineering receives access to fourteen repositories on day one. The numbers below illustrate the shape of the exercise and are not from a real engagement.

Day 1: the inventory shows nine repositories in two main languages, three older ones in a third language, and two that look abandoned. The team tags each by owner, last commit date and whether it is deployed.

Day 2: builds work for eight repositories. Four need missing private packages. Two have no build instructions. The team writes the blockers in the inventory.

Day 3: baseline scans run on the eight that build. Results are exported and stored with the commit hashes.

Day 4: triage groups the findings. Injection patterns appear in two internet facing services. A cluster of findings sits in a vendored library that nobody owns.

Day 5: dependency scanning runs on all fourteen, including ones that SAST could not build. This gives a first view of the unbuildable repositories, because a dependency scan often needs only the manifest files.

Day 6: the team samples ten findings and confirms seven by reading code. Three are false alarms caused by a custom sanitizer the tool did not recognize.

Day 7: the risk note says what was scanned, what was not, the main themes, and the recommended first actions.

Why dependency scanning rescues the unbuildable repos

SAST often needs a working build. Dependency scanning usually reads manifest and lock files, so it can run on repositories that will not compile. That gives you partial visibility on day five even where SAST had to wait. Keep in mind that it answers a different question, known vulnerabilities in third party packages, and not flaws in the code the acquired team wrote.

What to ask the acquired team

QuestionWhy
Which services face the internet?Sets triage priority
Where are credentials and keys kept?Reveals blind spots for scanners
Which repositories are actually deployed?Avoids wasting time on dead code
What was scanned before, and what was found?Gives a history
Which known issues were deferred?Surfaces risks nobody wrote down

People often know about risks that no scan will show. Fifteen minutes with each team lead can save a day of analysis.

Handling the large first result

A first scan on unfamiliar code can return a large list. A few habits keep it useful:

  1. Do not circulate raw counts. Share themes and exposure instead.
  2. Mark vendored and generated code early so it does not drown the signal.
  3. Sample and verify to calibrate trust in the tool.
  4. Save the baseline, so future work is measured against it.
  5. Assign owners by service, even if the owner is temporary.

What not to promise in week one

Avoid promising that everything is fixed or that the code is clean. A week gets you a map, not a cure. Set the expectation that the second month is for fixing the top themes, and that some old repositories may be retired instead of repaired.

Reporting to leadership

Use a short structure: scope, three themes, recommended actions, unknowns. Add a line that says how the findings will be tracked, for example in the same issue tracker the rest of engineering uses. Leaders usually want to know what to decide, not a list of findings.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how an inventory of packages gives you a second view of the same codebase.

Quick check

Should the first scan block anything?

No. Use it to learn the starting position. Add gates later, focused on new findings.

What if half the repositories will not build?

Record them as blind spots in the risk note and plan build fixes, so the gap is visible rather than hidden.

Should we scan abandoned repositories?

Check whether they are deployed first. If not, consider archiving them. If they are, scan them, because forgotten services are often the ones nobody patches.

Safeguard offers asset discovery, SBOM and dependency scanning, and a free scan at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.