Skip to main content

πŸ”’ GeneralUpdate Security Audit Guide

Comprehensive coverage of security risks in GeneralUpdate deployments. Based on code audit findings (17 CRITICAL/HIGH items) and best practices.


πŸ“‹ Pre-Audit Information Collection​

### Deployment Environment
- Deployment mode: ______ (Intranet / Public network / Hybrid)
- Tenant mode: ______ (Single-tenant / Multi-tenant)
- Number of clients: ______
- Client OS: ______ (Windows / Linux / macOS / Mixed)

### Server
- Backend type: ______ (GeneralSpacestation / Custom / OSS)
- Transport protocol: ______ (HTTP / HTTPS)
- Authentication: ______ (Bearer / Basic / HMAC / None)
- API publicly accessible: ______ (Yes/No, network isolated)

### Client
- GeneralUpdate version: ______
- Using IPC: ______ (Yes/No)
- Using Bowl: ______ (Yes/No)
- Using Differential: ______ (Yes/No)

Security Audit Matrix​

#CheckSeverityDescriptionRemediation
S01AppSecretKey StrengthπŸ”΄ CRITICALKey too short, all letters, identical to example codeUse β‰₯ 32 chars, mixed case+digits+symbols random key
S02IPC EncryptionπŸ”΄ CRITICALDefault IPC encryption key hardcoded in binaryEnsure unique AppSecretKey consistent server/client
S03HTTPS Transport🟠 HIGHUpdateUrl uses HTTP not HTTPSForce HTTPS in production; configure HSTS
S04ZipSlip Path TraversalπŸ”΄ CRITICALZIP extraction not validating ../ pathsVerify archive entry paths are within target directory
S05Multi-Tenant IsolationπŸ”΄ CRITICALServer not isolating tenants by ProductIdAdd tenant identity middleware on server
S06Event Log Leakage🟑 MEDIUMExceptionEventArgs logs may contain sensitive pathsSanitize before logging, filter paths and keys
S07Patch Signing🟠 HIGHDifferential patches have no digital signature verificationApply Authenticode signing to update packages
S08Temp Directory Permissions🟑 MEDIUMTemp extraction directory permissions may be too permissiveSet read/write for current user only
S09OSS Bucket Permissions🟠 HIGHUpdate package storage bucket set to public readSet to private, use pre-signed URLs
S10Dependency Vulnerabilities🟑 MEDIUMGeneralUpdate and its dependencies may have known CVEsRegularly check NuGet dependency security advisories
S11Rollback Attack🟠 HIGHAttacker can submit lower version to force install old versionServer must validate monotonic version increase
S12Download Integrity🟠 HIGHDownloaded update packages have no integrity checkEnsure Pipeline includes HashMiddleware
S13Bowl Privilege Escalation🟑 MEDIUMBowl crash daemon running at high privilege may be abusedRun Bowl with minimum required privileges
S14Information Leak via manifestπŸ”΅ LOWProductId, version numbers in manifest.json enumerableDon't expose manifest file in non-public environments

Audit Report Output Format​

After completing the audit, output in the following format:

## πŸ”’ GeneralUpdate Security Audit Report

### Summary
- Project: ______
- Audit Date: ______
- Overall Rating: A/B/C/D/F
- Critical issues: ______
- High risks: ______
- Medium risks: ______
- Low risks: ______

### Critical Issues (Must Fix Immediately)
- S01 AppSecretKey Strength: ⚠️ Current key length is X, needs β‰₯ 32
Fix: ______

### High Risks (Fix Soon)
...

### Medium Risks (Evaluate and Fix)
...

### Low Risks (Document)
...

### Remediation Priority
1. Immediate: S01, S03, S04
2. This Week: S05, S07, S09
3. This Month: S08, S10, S11

Security Configuration Checklist​

  • AppSecretKey length β‰₯ 32 characters, mixed case+digits+symbols
  • Use HTTPS in production
  • IPC file encoding set to Encoding.UTF8
  • Pipeline includes HashMiddleware for integrity verification
  • OSS Bucket permissions set to private
  • Server isolates tenants by ProductId
  • Version numbers strictly monotonically increasing
  • Update packages Authenticode signed
  • Zip extraction has path traversal protection
  • Logs don't record sensitive information

  • /generalupdate-init β€” Fix audit findings
  • /generalupdate-advanced β€” IPC replacement, custom authentication
  • /generalupdate-troubleshoot β€” Known security issues reference