Skip to content

Add security-model discoverability pointer to the project-wide CloudStack threat model#149

Open
potiuk wants to merge 2 commits into
apache:mainfrom
potiuk:asf-security/draft-threat-model-2026-05-30
Open

Add security-model discoverability pointer to the project-wide CloudStack threat model#149
potiuk wants to merge 2 commits into
apache:mainfrom
potiuk:asf-security/draft-threat-model-2026-05-30

Conversation

@potiuk
Copy link
Copy Markdown
Member

@potiuk potiuk commented May 30, 2026

Summary

Apache CloudStack's security model is project-wide, not per-repository. This PR replaces the earlier standalone draft-THREAT-MODEL.md in this repo with the standard discoverability chain so automated scanners find the one canonical model:

  • AGENTS.mdSECURITY.md → the project-wide model at
    https://github.com/apache/cloudstack/blob/main/THREAT_MODEL.md

The model lives in apache/cloudstack (see apache/cloudstack#13293); this repo inherits it via the pointer above rather than duplicating it — per the PMC's direction on #13293 to converge on the parent model first. The link resolves once that model lands on main. A thin repo-specific addendum can be added here later if this component needs one.

AGENTS.md carries a one-line SPDX header (it is read by agents on every session); SECURITY.md carries the full ASF header.

Adds a draft project-level security threat-model document
(draft-THREAT-MODEL.md) at repo root, improving discoverability
for automated security scanners running against this repository.
The file follows the rubric format used by several other ASF
projects piloting security-model discoverability.

The "draft-" prefix signals this is a proposal for the PMC to
review, correct, or reject — not a finalised maintainer-blessed
model. Every claim carries a provenance tag (documented /
inferred / maintainer) so reviewers can see where each claim
originates; §14 collects open questions for the maintainers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@potiuk potiuk force-pushed the asf-security/draft-threat-model-2026-05-30 branch from 0f8d4ea to b6579f6 Compare May 30, 2026 18:47
@yadvr yadvr requested review from DaanHoogland and vishesh92 June 1, 2026 07:17
@yadvr
Copy link
Copy Markdown
Member

yadvr commented Jun 1, 2026

There's a lot of details in the draft that needs a better set of eyes, so assigning @DaanHoogland @vishesh92 who're also PMC leads on the work.

@DaanHoogland
Copy link
Copy Markdown
Contributor

Thanks @yadvr, I think we should start with this one and work from there. I’ll look at the fields we need today cc @vishesh92 @potiuk

Comment thread draft-THREAT-MODEL.md Outdated
Comment on lines +277 to +278
**Q1.** Out-of-scope: where the caller stores `apiKey` / `secretKey`
on disk. Confirm.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

out of scope indeed

Comment thread draft-THREAT-MODEL.md Outdated
Comment on lines +280 to +281
**Q2.** Out-of-scope: revalidating management-server response
correctness in the SDK. Confirm.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a cloudstack issue only to the extend of the SDK used is delivered by the Apache CloudStack project, and assuming the reponse was given by a cloudstack installation of the targeted version. Any misdirection, mismatched version, or spoofed server is out of scope.

Comment thread draft-THREAT-MODEL.md Outdated
Comment on lines +283 to +285
**Q3.** `HTTPGETOnly` default and signature-in-URL leakage — is `false`
the default and is "do not log URLs when `HTTPGETOnly = true`" a
documented caller responsibility? *(maps to §5a, §6, §10, §11a)*
Copy link
Copy Markdown
Contributor

@DaanHoogland DaanHoogland Jun 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

confirmed (I.E. +1 for my part)

@DaanHoogland
Copy link
Copy Markdown
Contributor

Thanks @yadvr, I think we should start with this one and work from there. I’ll look at the fields we need today cc @vishesh92 @potiuk

Given that this “inherits” from cloudstack, i think (on second thought) we should start there.

@potiuk
Copy link
Copy Markdown
Member Author

potiuk commented Jun 2, 2026

Agreed @DaanHoogland — let's converge on the parent apache/cloudstack model (#13293) first; cloudstack-go then inherits via a discoverability pointer + a thin Go-SDK addendum rather than a full copy. I'll re-point this PR once the parent's shape is settled. Continuing on #13293.

…po copy

Drop the standalone draft-THREAT-MODEL.md and wire the discoverability chain
AGENTS.md -> SECURITY.md -> the project-wide model in apache/cloudstack
(apache/cloudstack#13293), so scanners find one canonical model and this repo
inherits it rather than duplicating it.

Generated-by: Claude Code
@potiuk potiuk changed the title Add draft project security threat-model document Add security-model discoverability pointer to the project-wide CloudStack threat model Jun 2, 2026
@potiuk
Copy link
Copy Markdown
Member Author

potiuk commented Jun 2, 2026

Note on the failing Apache RAT Check — it's the workflow's RAT-download step, not this PR. The job fetches apache-rat-0.17-bin.tar.gz from downloads.apache.org/creadur/…, which now returns a ~196-byte error page instead of the tarball (RAT 0.17 has rolled off the live mirror to archive.apache.org), so tar -xzf fails with gzip: stdin: not in gzip format before RAT ever runs. This PR only adds AGENTS.md + SECURITY.md (both carry license headers), so there's nothing RAT-relevant in the change itself. The same step is failing on the other cloudstack-* satellite PRs. Pointing the download at archive.apache.org/dist/creadur/… (or bumping to a version still on the live mirror) restores it — happy to open that workflow fix separately if useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants