|
| 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