Skip to content

Commit 79ea091

Browse files
committed
new file: .github/workflows/ci.yml
new file: .gitignore modified: README.md new file: docs/communication-plan.md new file: docs/escalation-matrix.md new file: docs/incident-response-policy.md new file: docs/security-program-overview.md new file: pyproject.toml new file: risk_register/risk_register.csv new file: risk_register/scoring_guide.md new file: runbooks/account-compromise.md new file: runbooks/lost-device.md new file: runbooks/phishing.md new file: runbooks/ransomware.md new file: runbooks/suspicious-login.md new file: templates/business-impact-assessment-template.md new file: templates/incident-report-template.md new file: templates/post-incident-review-template.md new file: templates/risk-assessment-template.md new file: templates/vendor-security-review-template.md new file: tests/test_risk_register.py new file: tools/validate_risk_register.py
1 parent 7104bf5 commit 79ea091

22 files changed

Lines changed: 933 additions & 0 deletions

.github/workflows/ci.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
validate:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-python@v5
13+
with:
14+
python-version: "3.11"
15+
- run: python -m pip install --upgrade pip
16+
- run: pip install -e ".[dev]"
17+
- run: ruff check tools tests
18+
- run: python tools/validate_risk_register.py risk_register/risk_register.csv
19+
- run: pytest

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.venv/
2+
__pycache__/
3+
*.pyc
4+
.pytest_cache/
5+
.coverage
6+
dist/
7+
build/
8+
*.egg-info/
9+
.DS_Store

README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,66 @@
11
# security-program-starter
22

3+
A portfolio-ready security program repository that demonstrates practical cybersecurity governance, incident response planning, and lightweight risk management.
4+
5+
This repository is designed to showcase an employer-friendly blend of:
6+
- Incident response documentation
7+
- Security operations process design
8+
- Risk register management
9+
- Business-aligned security communication
10+
- Documentation quality and maintainability
11+
12+
It is intentionally defensive and organizational in nature. It does not include exploit code, offensive tooling, or destructive capabilities.
13+
14+
## What is included
15+
16+
### 1. Incident response program documents
17+
Core program documents that define how an organization prepares for, responds to, and learns from security incidents.
18+
19+
### 2. Runbooks
20+
Actionable, scenario-specific playbooks for common security events:
21+
- Ransomware
22+
- Phishing
23+
- Account compromise
24+
- Lost device
25+
- Suspicious login activity
26+
27+
### 3. Templates
28+
Reusable forms and structured templates for:
29+
- Incident reporting
30+
- Post-incident reviews
31+
- Risk assessments
32+
- Vendor security reviews
33+
- Business impact assessments
34+
35+
### 4. Lightweight risk register
36+
A simple CSV-based risk register suitable for small businesses, startups, student projects, or early-stage governance programs.
37+
38+
### 5. Validation tooling
39+
A small Python validation script and tests to ensure the risk register has the expected structure and scoring values.
40+
41+
## Why this repository matters
42+
43+
Many technical portfolios focus only on code. This repository demonstrates the ability to:
44+
- Build repeatable security processes
45+
- Communicate clearly with leadership and stakeholders
46+
- Align operational security with business risk
47+
- Create documentation that teams can actually use
48+
- Think like a future security analyst, GRC professional, incident responder, or security manager
49+
50+
## Quick start
51+
52+
Clone the repository and review these files first:
53+
54+
- `docs/security-program-overview.md`
55+
- `docs/incident-response-policy.md`
56+
- `runbooks/ransomware.md`
57+
- `risk_register/risk_register.csv`
58+
59+
To validate the risk register locally:
60+
61+
```bash
62+
python -m venv .venv
63+
source .venv/bin/activate
64+
pip install -e ".[dev]"
65+
python tools/validate_risk_register.py risk_register/risk_register.csv
66+
pytest

docs/communication-plan.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Security Incident Communication Plan
2+
3+
## Purpose
4+
5+
This plan defines how incident-related information should be communicated during and after a security event.
6+
7+
## Communication Principles
8+
9+
- Communicate facts, not assumptions.
10+
- Keep messages concise and audience-specific.
11+
- Avoid speculation about cause until evidence supports it.
12+
- Escalate communication needs early for regulated or high-visibility incidents.
13+
14+
## Core Audiences
15+
16+
### Internal Technical Teams
17+
Need actionable detail on systems, indicators, impact, and required response actions.
18+
19+
### Leadership
20+
Need concise summaries of business impact, severity, decision points, and recovery outlook.
21+
22+
### Employees
23+
Need clear behavioral guidance, especially during phishing, password reset, or system outage scenarios.
24+
25+
### Customers / Clients
26+
Need carefully approved communication if their data, service availability, or contractual obligations are affected.
27+
28+
### Regulators / Legal / Insurance
29+
Need timely, accurate information based on applicable requirements and contractual triggers.
30+
31+
## Initial Internal Update Template
32+
33+
- Incident title:
34+
- Severity:
35+
- Time identified:
36+
- Current status:
37+
- Known affected systems:
38+
- Known business impact:
39+
- Actions underway:
40+
- Next update time:
41+
42+
## External Communication Considerations
43+
44+
Before external communication, confirm:
45+
- What is known versus unknown
46+
- Whether legal review is required
47+
- Whether notification thresholds are met
48+
- Whether language aligns with contractual obligations
49+
- Whether communications are approved by leadership
50+
51+
## Update Cadence
52+
53+
Suggested cadence during active major incidents:
54+
- Severity 1: every 30 to 60 minutes
55+
- Severity 2: every 2 to 4 hours
56+
- Severity 3: daily or as needed
57+
58+
## Approved Spokespersons
59+
60+
Only designated leadership, communications, legal, or approved incident response leadership should issue external statements.

docs/escalation-matrix.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Escalation Matrix
2+
3+
## Purpose
4+
5+
This matrix provides example triggers for escalating a security issue beyond the immediate technical team.
6+
7+
## Escalation Triggers
8+
9+
| Trigger | Escalate To | Example |
10+
|---|---|---|
11+
| Suspected ransomware | Leadership, legal, IT leadership, incident coordinator | Multiple systems encrypted |
12+
| Suspected credential theft affecting privileged accounts | Security lead, IAM lead, leadership | Admin account compromise |
13+
| Exposure of regulated or sensitive data | Legal, compliance, leadership | Customer PII exposure |
14+
| Widespread phishing campaign | IT support, communications, security lead | Multiple users report same lure |
15+
| Lost or stolen corporate device | IT support, asset owner, security lead | Laptop missing during travel |
16+
| Business-critical outage with security indicators | Leadership, operations, incident coordinator | ERP unavailable after suspicious activity |
17+
18+
## Severity Guidance
19+
20+
| Severity | Typical Escalation |
21+
|---|---|
22+
| 1 | Immediate leadership notification |
23+
| 2 | Management notification within the same business day |
24+
| 3 | Team-level handling with management awareness as needed |
25+
| 4 | Track and monitor unless trend or context warrants escalation |
26+
27+
## Notes
28+
29+
This matrix should be tailored to the organization’s actual reporting structure, legal obligations, and operational risk tolerance.

docs/incident-response-policy.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Incident Response Policy
2+
3+
## Purpose
4+
5+
This policy establishes the organizational approach for identifying, reporting, triaging, investigating, containing, eradicating, and recovering from information security incidents.
6+
7+
## Policy Statement
8+
9+
The organization will maintain a documented incident response capability to ensure security incidents are managed consistently, efficiently, and in a manner that supports business continuity, legal obligations, and stakeholder communication.
10+
11+
## Objectives
12+
13+
The incident response process aims to:
14+
- Detect and validate incidents quickly
15+
- Reduce harm to systems, data, users, and operations
16+
- Preserve evidence when appropriate
17+
- Support timely internal and external communications
18+
- Capture lessons learned for future improvement
19+
20+
## Incident Lifecycle
21+
22+
The organization will manage incidents using the following lifecycle:
23+
24+
1. Preparation
25+
2. Identification
26+
3. Containment
27+
4. Eradication
28+
5. Recovery
29+
6. Lessons Learned
30+
31+
## Severity Levels
32+
33+
### Severity 1
34+
Critical business impact, major outage, ransomware, widespread compromise, regulated data exposure, or executive-level escalation.
35+
36+
### Severity 2
37+
Confirmed compromise with meaningful operational or security impact, but not enterprise-critical.
38+
39+
### Severity 3
40+
Limited scope event, suspicious activity, or contained issue with low immediate business impact.
41+
42+
### Severity 4
43+
Informational event, false positive, or issue requiring tracking but not formal escalation.
44+
45+
## Roles and Responsibilities
46+
47+
### Incident Coordinator
48+
Leads overall response, ensures documentation is maintained, and drives decision-making.
49+
50+
### Technical Response Lead
51+
Performs technical investigation, containment, and recovery coordination.
52+
53+
### IT Support / System Owners
54+
Assist with affected assets, restoration, and validation of service recovery.
55+
56+
### Management / Leadership
57+
Approves high-impact business decisions and external communications when needed.
58+
59+
### Legal / Compliance / HR
60+
Engaged as appropriate for regulatory, contractual, employee, or legal considerations.
61+
62+
## Reporting Requirements
63+
64+
All suspected incidents must be reported as soon as possible through the organization’s designated reporting channel. Reports should include:
65+
- Date and time observed
66+
- Reporting individual
67+
- Systems or users involved
68+
- Observable symptoms
69+
- Any actions already taken
70+
71+
## Evidence Handling
72+
73+
When evidence preservation may be necessary:
74+
- Do not alter impacted systems unnecessarily
75+
- Record all response actions and timestamps
76+
- Preserve relevant logs, screenshots, emails, and artifacts
77+
- Coordinate with legal or forensics personnel where applicable
78+
79+
## Post-Incident Review
80+
81+
All Severity 1 and Severity 2 incidents should receive a documented post-incident review. Severity 3 and 4 events may receive a review when recurring patterns or control weaknesses are identified.

docs/security-program-overview.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Security Program Overview
2+
3+
## Purpose
4+
5+
This repository represents a lightweight, practical security program foundation suitable for a small business, startup, nonprofit, student lab, or internal department.
6+
7+
The purpose of this program is to reduce security risk by establishing:
8+
- Clear response procedures for common incidents
9+
- Consistent documentation standards
10+
- Basic communication and escalation paths
11+
- A repeatable method for identifying and tracking risk
12+
13+
## Program Objectives
14+
15+
The security program is designed to achieve the following objectives:
16+
17+
1. Improve organizational readiness for security incidents.
18+
2. Reduce confusion during high-pressure events.
19+
3. Ensure incidents are documented consistently.
20+
4. Support appropriate escalation to leadership and stakeholders.
21+
5. Track material risks in a simple and maintainable format.
22+
6. Encourage continuous improvement after incidents occur.
23+
24+
## Scope
25+
26+
This starter program covers:
27+
- Incident response planning
28+
- Operational runbooks
29+
- Incident documentation
30+
- Post-incident review
31+
- Lightweight risk tracking
32+
33+
This starter program does not yet include:
34+
- Full business continuity planning
35+
- Disaster recovery architecture
36+
- Detailed compliance mappings
37+
- Third-party audit evidence collection
38+
- Formal governance committee structures
39+
40+
## Intended Users
41+
42+
This repository is useful for:
43+
- Security analysts
44+
- IT managers
45+
- Cybersecurity students
46+
- Security operations teams
47+
- Small business technology leaders
48+
- GRC and risk professionals
49+
50+
## Operating Principles
51+
52+
The following principles guide the program:
53+
54+
- Keep procedures simple enough to use under stress.
55+
- Escalate early when business risk is uncertain.
56+
- Preserve evidence and document actions as they occur.
57+
- Communicate clearly and factually.
58+
- Focus on business impact, not just technical symptoms.
59+
- Learn from every incident and refine the process.
60+
61+
## Program Components
62+
63+
### Policies and Core Documents
64+
These define expectations, roles, and governance direction.
65+
66+
### Runbooks
67+
These provide scenario-specific guidance for common security events.
68+
69+
### Templates
70+
These standardize documentation and reporting.
71+
72+
### Risk Register
73+
This records and prioritizes identified risks.
74+
75+
## Maintenance Approach
76+
77+
The repository should be reviewed at least quarterly and after any major incident, organizational change, or control failure.
78+
79+
Suggested maintenance cadence:
80+
- Monthly: review open risks and update statuses
81+
- Quarterly: review runbooks and escalation contacts
82+
- After incidents: complete lessons learned and update related documentation
83+
84+
## Portfolio Value
85+
86+
This repository is intentionally structured to demonstrate that security is not only a technical discipline. It is also a documentation, communication, and risk management discipline.

pyproject.toml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[project]
2+
name = "security-program-starter"
3+
version = "1.0.0"
4+
description = "Portfolio-ready incident response runbooks, templates, and lightweight risk register."
5+
readme = "README.md"
6+
requires-python = ">=3.10"
7+
license = { text = "MIT" }
8+
authors = [
9+
{ name = "Nick", email = "nick@example.com" }
10+
]
11+
dependencies = []
12+
13+
[project.optional-dependencies]
14+
dev = [
15+
"pytest>=8.0.0",
16+
"ruff>=0.6.0",
17+
]
18+
19+
[tool.ruff]
20+
line-length = 100
21+
target-version = "py310"
22+
23+
[tool.pytest.ini_options]
24+
testpaths = ["tests"]

risk_register/risk_register.csv

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
risk_id,title,description,asset_or_process,threat,vulnerability,existing_controls,likelihood,impact,inherent_score,residual_likelihood,residual_impact,residual_score,owner,treatment,status,target_date
2+
R-001,Weak MFA Adoption,Remote access accounts are not consistently protected by multifactor authentication,Remote Access,Credential Theft,Inconsistent MFA enforcement,Password policy and limited MFA,4,5,20,2,4,8,IT Manager,Mitigate,In Progress,2026-06-30
3+
R-002,Single Admin Account Dependency,Too few staff have documented administrative backup coverage,Identity and Access Management,Operational Disruption,Key person dependency,Admin procedures exist but are informal,3,4,12,2,3,6,Security Lead,Mitigate,Open,2026-07-15
4+
R-003,Inadequate Phishing Awareness,Users may not identify malicious email attempts,Email and User Accounts,Phishing,Limited awareness training,Spam filtering and user reporting mailbox,4,4,16,3,3,9,HR and IT,Mitigate,Open,2026-08-01
5+
R-004,Untracked Vendor Access,Third-party support access is not centrally reviewed,Vendor Management,Unauthorized Access,Incomplete vendor inventory,Ad hoc approval process,3,4,12,2,3,6,Operations Manager,Mitigate,Open,2026-07-31
6+
R-005,Endpoint Encryption Gaps,Some portable devices may not have confirmed full disk encryption enabled,Mobile Devices,Data Exposure,Inconsistent asset verification,Asset inventory and baseline standards,3,5,15,2,3,6,Endpoint Administrator,Mitigate,In Progress,2026-06-20
7+
R-006,Backup Restoration Uncertainty,Backups exist but restoration testing is not consistently documented,Backup and Recovery,Extended Outage,Insufficient recovery validation,Daily backups,3,5,15,2,4,8,Infrastructure Lead,Mitigate,Open,2026-09-01

0 commit comments

Comments
 (0)