Skip to content

Commit 01ae7a0

Browse files
author
İsmail Taşdelen
committed
master
1 parent 0108e84 commit 01ae7a0

2 files changed

Lines changed: 487 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
# Security Policy
2+
3+
## Overview
4+
5+
PathShield is a security tool designed to detect AWS privilege escalation paths. We take security seriously and appreciate the security research community's efforts to help keep PathShield and its users secure.
6+
7+
## Supported Versions
8+
9+
We provide security updates for the following versions:
10+
11+
| Version | Supported |
12+
| ------- | ------------------ |
13+
| 0.1.x | :white_check_mark: |
14+
| < 0.1 | :x: |
15+
16+
## Reporting a Vulnerability
17+
18+
We encourage responsible disclosure of security vulnerabilities. If you discover a security issue in PathShield, please follow these guidelines:
19+
20+
### How to Report
21+
22+
1. **DO NOT** create a public GitHub issue for security vulnerabilities
23+
2. **Email** security reports to: security@pathshield.io
24+
3. **Include** the following information:
25+
- Description of the vulnerability
26+
- Steps to reproduce the issue
27+
- Potential impact assessment
28+
- Suggested fix (if available)
29+
- Your contact information
30+
31+
### What to Expect
32+
33+
- **Acknowledgment**: We will acknowledge receipt of your vulnerability report within 48 hours
34+
- **Assessment**: We will assess the vulnerability and determine its severity within 5 business days
35+
- **Updates**: We will keep you informed of our progress throughout the investigation
36+
- **Resolution**: We aim to release a fix within 30 days for critical vulnerabilities
37+
- **Credit**: With your permission, we will publicly credit you for the discovery
38+
39+
### Response Timeline
40+
41+
| Severity | Initial Response | Fix Target |
42+
|----------|-----------------|------------|
43+
| Critical | 24 hours | 7-14 days |
44+
| High | 48 hours | 14-30 days |
45+
| Medium | 5 days | 30-60 days |
46+
| Low | 7 days | 60-90 days |
47+
48+
## Security Considerations
49+
50+
### AWS Credentials
51+
52+
**PathShield requires AWS credentials to function.** Users must be aware of the following:
53+
54+
1. **Read-Only Access**: PathShield only requires read-only IAM permissions
55+
2. **Credentials Storage**: Never hardcode AWS credentials in code or configuration files
56+
3. **Use IAM Roles**: When running on EC2 or containers, use IAM roles instead of access keys
57+
4. **Credential Rotation**: Regularly rotate AWS access keys used for scanning
58+
5. **Least Privilege**: Grant only the minimum permissions required for scanning
59+
60+
### Recommended IAM Policy
61+
62+
Use this least-privilege IAM policy for PathShield:
63+
64+
```json
65+
{
66+
"Version": "2012-10-17",
67+
"Statement": [
68+
{
69+
"Effect": "Allow",
70+
"Action": [
71+
"iam:GetUser",
72+
"iam:GetRole",
73+
"iam:GetGroup",
74+
"iam:ListUsers",
75+
"iam:ListRoles",
76+
"iam:ListGroups",
77+
"iam:ListAttachedUserPolicies",
78+
"iam:ListAttachedRolePolicies",
79+
"iam:ListAttachedGroupPolicies",
80+
"iam:GetPolicy",
81+
"iam:GetPolicyVersion",
82+
"ec2:DescribeInstances",
83+
"ec2:DescribeInstanceProfile",
84+
"lambda:ListFunctions",
85+
"lambda:GetFunction",
86+
"s3:ListAllMyBuckets",
87+
"s3:GetBucketPolicy",
88+
"kms:ListKeys",
89+
"kms:DescribeKey"
90+
],
91+
"Resource": "*"
92+
}
93+
]
94+
}
95+
```
96+
97+
### Running PathShield Securely
98+
99+
1. **Use Dedicated Scanning Role**: Create a dedicated IAM role for PathShield with minimal permissions
100+
2. **Enable CloudTrail**: Log all API calls made by PathShield for audit purposes
101+
3. **Secure Output**: Treat scan results as sensitive - they contain information about your security posture
102+
4. **Network Isolation**: When possible, run PathShield in an isolated network environment
103+
5. **Docker Security**: If using Docker, don't bind-mount sensitive directories unnecessarily
104+
105+
### Data Handling
106+
107+
PathShield collects the following data during scans:
108+
109+
- IAM user, role, and group names
110+
- IAM policy documents
111+
- EC2 instance metadata
112+
- Lambda function configurations
113+
- S3 bucket policies
114+
- KMS key metadata
115+
116+
**Data is never sent outside your AWS account unless you explicitly configure external integrations.**
117+
118+
## Known Security Limitations
119+
120+
1. **Policy Evaluation**: PathShield performs static analysis and may not detect all runtime permission conditions
121+
2. **Cross-Account**: Limited visibility into cross-account trust relationships without additional permissions
122+
3. **SCPs**: Service Control Policies (SCPs) are not currently evaluated
123+
4. **Permission Boundaries**: Complex permission boundary scenarios may not be fully analyzed
124+
5. **Temporary Credentials**: STS temporary credential expiration is not tracked in real-time
125+
126+
## Security Best Practices for Users
127+
128+
### Installation
129+
130+
- Always install from official sources (PyPI, GitHub releases)
131+
- Verify package integrity when possible
132+
- Use virtual environments to isolate dependencies
133+
- Keep PathShield updated to the latest version
134+
135+
### Configuration
136+
137+
- Store configuration files with appropriate permissions (chmod 600)
138+
- Never commit configuration files containing credentials to version control
139+
- Use environment variables or AWS credential provider chain
140+
- Enable verbose logging for security audits
141+
142+
### CI/CD Integration
143+
144+
- Use ephemeral credentials in CI/CD pipelines
145+
- Store API tokens and secrets in secure secret managers
146+
- Limit pipeline permissions to read-only access
147+
- Review and approve changes to security scanning workflows
148+
149+
### Output Handling
150+
151+
- Restrict access to scan results - they contain security-sensitive information
152+
- Sanitize results before sharing outside security teams
153+
- Store historical scan results securely for compliance
154+
- Use encrypted storage for SARIF and JSON outputs
155+
156+
## Vulnerability Disclosure Policy
157+
158+
### Our Commitment
159+
160+
- We will respond to security reports promptly
161+
- We will work with reporters to understand and resolve issues
162+
- We will keep reporters informed throughout the process
163+
- We will credit reporters publicly (unless anonymity is requested)
164+
165+
### What We Ask
166+
167+
- Give us reasonable time to address issues before public disclosure
168+
- Make a good faith effort to avoid privacy violations and data destruction
169+
- Do not exploit vulnerabilities beyond what is necessary for demonstration
170+
- Do not perform testing against systems you don't own
171+
172+
## Security Hall of Fame
173+
174+
We appreciate the following security researchers who have helped improve PathShield:
175+
176+
*List will be updated as vulnerabilities are responsibly disclosed and resolved.*
177+
178+
## Security Updates
179+
180+
Subscribe to security updates:
181+
182+
- Watch the GitHub repository for security advisories
183+
- Follow [@pathshield](https://twitter.com/pathshield) on Twitter
184+
- Subscribe to the security mailing list: security-announce@pathshield.io
185+
186+
## Contact
187+
188+
- **Security Issues**: security@pathshield.io
189+
- **General Questions**: team@pathshield.io
190+
- **GitHub Issues**: For non-security bugs and feature requests only
191+
192+
## PGP Key
193+
194+
For encrypted communications:
195+
196+
```
197+
-----BEGIN PGP PUBLIC KEY BLOCK-----
198+
[PGP key would be included here in production]
199+
-----END PGP PUBLIC KEY BLOCK-----
200+
```
201+
202+
## Compliance
203+
204+
PathShield is designed to help organizations improve their AWS security posture. However:
205+
206+
- PathShield is provided "as-is" without warranties
207+
- Users are responsible for ensuring compliance with their specific requirements
208+
- Scan results should be validated by security professionals
209+
- PathShield does not replace comprehensive security audits
210+
211+
## Legal
212+
213+
By using PathShield, you agree to:
214+
215+
- Use it only on AWS accounts you own or have authorization to scan
216+
- Not use it for malicious purposes
217+
- Comply with all applicable laws and regulations
218+
- Accept the terms of the MIT License
219+
220+
## Acknowledgments
221+
222+
We thank the security research community for their continued efforts to improve software security.
223+
224+
---
225+
226+
**Last Updated**: January 2024
227+
**Version**: 1.0
228+
229+
For questions about this security policy, contact: security@pathshield.io

0 commit comments

Comments
 (0)