Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/security-policy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
echo "$WEAK_CRYPTO"
fi

# Block HTTP URLs (except localhost)
HTTP_URLS=$(grep -rE 'https://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec' | head -5 || true)
# Block HTTP URLs (except localhost) - enforce HTTPS
HTTP_URLS=$(grep -rE 'http://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec\|schema' | head -5 || true)
if [ -n "$HTTP_URLS" ]; then
echo "⚠️ HTTP URLs found. Use HTTPS:"
echo "⚠️ Insecure HTTP URLs found. Use HTTPS:"
echo "$HTTP_URLS"
fi

Expand Down
14 changes: 9 additions & 5 deletions .well-known/security.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
Contact: mailto:security@ubicity.example.org
Contact: https://github.com/hyperpolymath/ubicity/security/advisories/new
Contact: mailto:hyperpolymath@proton.me
Expires: 2026-12-31T23:59:59Z
Preferred-Languages: en
Canonical: https://github.com/Hyperpolymath/ubicity/.well-known/security.txt
Canonical: https://github.com/hyperpolymath/ubicity/.well-known/security.txt
Policy: https://github.com/hyperpolymath/ubicity/security/policy

# Security Policy

Expand All @@ -19,9 +21,11 @@ Canonical: https://github.com/Hyperpolymath/ubicity/.well-known/security.txt

Instead:

1. **Email**: security@ubicity.example.org (PGP key available on request)
2. **Expected Response**: Within 48 hours
3. **Disclosure Timeline**: 90 days coordinated disclosure
1. **Preferred**: GitHub Security Advisories (private reporting)
https://github.com/hyperpolymath/ubicity/security/advisories/new
2. **Alternative**: Direct email to maintainer (hyperpolymath@proton.me)
3. **Expected Response**: Within 48 hours
4. **Disclosure Timeline**: 90 days coordinated disclosure

## Security Measures

Expand Down
43 changes: 32 additions & 11 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,41 @@

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
| 0.3.x | :white_check_mark: |
| 0.2.x | :white_check_mark: |
| < 0.2 | :x: |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.
**DO NOT** open a public GitHub issue for security vulnerabilities.

Instead, please:

1. **Email**: See `.well-known/security.txt` for contact information
2. **Expected Response**: Within 48 hours
3. **Disclosure Timeline**: 90-day coordinated disclosure

## Security Measures

- **Memory Safety**: WASM (Rust) provides memory safety guarantees
- **Type Safety**: ReScript compile-time types
- **Sandboxing**: WASM runs in isolated linear memory
- **Permissions**: Deno explicit permissions (`--allow-read`, `--allow-write`)
- **Data Privacy**: Local-first, no network calls, no telemetry
- **Offline-First**: Works completely air-gapped

## Security Documentation

- **Threat Model**: See `THREAT_MODEL.md`
- **Security Contact**: See `.well-known/security.txt`

## CVE Process

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.
If a CVE is assigned:
1. Acknowledgment within 24 hours
2. Patch development within 7-14 days
3. Security update release
4. Advisory on GitHub Security
5. CHANGELOG.md update
78 changes: 55 additions & 23 deletions STATE.scm
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
'((version . "0.1.0")
(schema-version . "1.0")
(created . "2025-12-15")
(updated . "2025-12-15")
(updated . "2025-12-17")
(project . "ubicity")
(repo . "github.com/hyperpolymath/ubicity")))

Expand All @@ -41,18 +41,23 @@

(define current-position
'((phase . "v0.1 - Initial Setup and RSR Compliance")
(overall-completion . 25)
(overall-completion . 30)

(components
((rsr-compliance
((status . "complete")
(completion . 100)
(notes . "SHA-pinned actions, SPDX headers, multi-platform CI")))

(security
((status . "complete")
(completion . 100)
(notes . "Security policy fixed, HTTP detection bug resolved, security.txt RFC 9116 compliant")))

(documentation
((status . "foundation")
(completion . 30)
(notes . "README exists, META/ECOSYSTEM/STATE.scm added")))
(completion . 35)
(notes . "README, META/ECOSYSTEM/STATE.scm, THREAT_MODEL.md complete")))

(testing
((status . "minimal")
Expand All @@ -62,13 +67,16 @@
(core-functionality
((status . "in-progress")
(completion . 25)
(notes . "Initial implementation underway")))))
(notes . "Initial implementation underway - ReScript migration pending")))))

(working-features
("RSR-compliant CI/CD pipeline"
"Multi-platform mirroring (GitHub, GitLab, Bitbucket)"
"SPDX license headers on all files"
"SHA-pinned GitHub Actions"))))
"SHA-pinned GitHub Actions"
"Security policy with GitHub private reporting"
"Threat model documented"
"CodeQL + OSSF Scorecard integration"))))

;;;============================================================================
;;; ROUTE TO MVP
Expand All @@ -81,28 +89,40 @@
(milestones
((v0.2
((name . "Core Functionality")
(status . "in-progress")
(items
("Complete ReScript migration (TS/JS -> RSR)"
"Implement WHO/WHERE/WHAT capture CLI"
"Add Zod/WASM validation for schemas"
"Initial test coverage (30%)"))))

(v0.3
((name . "Analysis & Visualization")
(status . "pending")
(items
("Implement primary features"
"Add comprehensive tests"
"Improve documentation"))))
("Implement mapper.js analysis (hotspots, networks, journeys)"
"Generate static HTML visualizations"
"Export formats (CSV, GeoJSON, DOT)"
"Test coverage > 50%"))))

(v0.5
((name . "Feature Complete")
(status . "pending")
(items
("All planned features implemented"
"Privacy tools (anonymization, PII removal, GPS fuzzing)"
"Test coverage > 70%"
"API stability"))))

(v1.0
((name . "Production Release")
(status . "pending")
(items
("Comprehensive test coverage"
"Performance optimization"
"Security audit"
"User documentation complete"))))))))
("Comprehensive test coverage > 80%"
"Performance optimization (async I/O)"
"External security audit"
"User documentation complete"
"Encryption at rest (optional)"))))))))

;;;============================================================================
;;; BLOCKERS & ISSUES
Expand Down Expand Up @@ -151,13 +171,24 @@

(define session-history
'((snapshots
((date . "2025-12-15")
(session . "initial-state-creation")
(accomplishments
("Added META.scm, ECOSYSTEM.scm, STATE.scm"
"Established RSR compliance"
"Created initial project checkpoint"))
(notes . "First STATE.scm checkpoint created via automated script")))))
(((date . "2025-12-17")
(session . "security-review-and-roadmap")
(accomplishments
("Fixed SECURITY.md with correct version information"
"Fixed security-policy.yml HTTP URL detection bug (was checking https instead of http)"
"Updated security.txt with GitHub Security Advisories + real contact email"
"Verified all SCM files have valid syntax (balanced parens/quotes)"
"Updated STATE.scm with detailed roadmap and milestones"
"Added security component tracking to current-position"))
(notes . "Security review session - all critical security matters resolved"))

((date . "2025-12-15")
(session . "initial-state-creation")
(accomplishments
("Added META.scm, ECOSYSTEM.scm, STATE.scm"
"Established RSR compliance"
"Created initial project checkpoint"))
(notes . "First STATE.scm checkpoint created via automated script"))))))

;;;============================================================================
;;; HELPER FUNCTIONS (for Guile evaluation)
Expand Down Expand Up @@ -185,10 +216,11 @@
(define state-summary
'((project . "ubicity")
(version . "0.1.0")
(overall-completion . 25)
(next-milestone . "v0.2 - Core Functionality")
(overall-completion . 30)
(next-milestone . "v0.2 - Core Functionality (in-progress)")
(critical-blockers . 0)
(high-priority-issues . 0)
(updated . "2025-12-15")))
(security-status . "complete")
(updated . "2025-12-17")))

;;; End of STATE.scm
Loading