|
1 | 1 | # Security Policy |
2 | 2 |
|
| 3 | +## Security Requirements |
| 4 | + |
| 5 | +This section outlines the security measures and requirements that the ArduPilot |
| 6 | +Methodic Configurator project implements to ensure the security and integrity |
| 7 | +of our software. |
| 8 | + |
| 9 | +### Dependency Management |
| 10 | + |
| 11 | +We maintain secure software supply chains by keeping dependencies up-to-date: |
| 12 | + |
| 13 | +- **Dependabot**: Automated dependency updates for GitHub ecosystem |
| 14 | +- **Renovate**: Comprehensive dependency management across all package managers |
| 15 | +- Regular monitoring and updates of Python packages and system dependencies |
| 16 | + |
| 17 | +### Static Code Analysis |
| 18 | + |
| 19 | +We use multiple static analysis tools to identify potential security issues and |
| 20 | +ensure code quality: |
| 21 | + |
| 22 | +- **[Ruff](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/ruff.yml)**: |
| 23 | + Fast Python linter and code formatter |
| 24 | +- **[MyPy](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/mypy.yml)**: |
| 25 | + Static type checker for Python |
| 26 | +- **[Pyright](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/pyright.yml)**: |
| 27 | + Microsoft's Python type checker |
| 28 | +- **[Pylint](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/pylint.yml)**: |
| 29 | + Comprehensive Python code analyzer |
| 30 | + |
| 31 | +### Automated Security Scanning |
| 32 | + |
| 33 | +Our CI/CD pipeline includes automated security scans: |
| 34 | + |
| 35 | +- **[GitHub CodeQL](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/codeql.yml)**: |
| 36 | + Advanced security vulnerability detection |
| 37 | +- **[Dependency Review](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/dependency-review.yml)**: |
| 38 | + Automated review of dependency changes for security issues |
| 39 | +- **[Anti-virus Scanning](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/gitavscan.yml)**: |
| 40 | + Regular malware detection using ClamAV |
| 41 | +- **[OpenSSF Scorecard](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/scorecard.yml)**: |
| 42 | + Automated security health metrics |
| 43 | + |
| 44 | +### Compliance and Best Practices |
| 45 | + |
| 46 | +We adhere to industry standards and best practices as documented in our |
| 47 | +[Compliance Guide](COMPLIANCE.md), including: |
| 48 | + |
| 49 | +- Secure coding practices |
| 50 | +- License compliance verification |
| 51 | +- Regular security audits |
| 52 | +- Open-source security guidelines |
| 53 | + |
| 54 | +### What Users Can Expect |
| 55 | + |
| 56 | +- **Secure Dependencies**: All dependencies are regularly updated and scanned for vulnerabilities |
| 57 | +- **Code Quality**: Static analysis ensures adherence to security best practices |
| 58 | +- **Vulnerability Response**: Prompt response to reported security issues (see below) |
| 59 | +- **Transparency**: Public disclosure of security processes and findings |
| 60 | + |
| 61 | +### Limitations |
| 62 | + |
| 63 | +- **Third-party Dependencies**: Security depends on the security practices of our dependencies |
| 64 | +- **User Environment**: Security of the end-user environment is outside our control |
| 65 | +- **Configuration**: Improper configuration by users may introduce security risks |
| 66 | +- **Physical Access**: Physical access to devices/flight controllers is not protected by this software |
| 67 | + |
3 | 68 | ## Supported Versions |
4 | 69 |
|
5 | 70 | Only the latest version is supported with security updates. |
6 | 71 |
|
7 | 72 | ## Reporting a Vulnerability |
8 | 73 |
|
9 | | -Select [security on the top of the github homepage](https://github.com/ArduPilot/MethodicConfigurator/security) to [report a vulnerability](https://github.com/ArduPilot/MethodicConfigurator/security/advisories/new). |
| 74 | +Select [security on the top of the github homepage](https://github.com/ArduPilot/MethodicConfigurator/security) |
| 75 | +to [report a vulnerability](https://github.com/ArduPilot/MethodicConfigurator/security/advisories/new). |
10 | 76 |
|
11 | 77 | If we deem it relevant, we will try to fix it ASAP, or at least reply to you ASAP. |
12 | 78 |
|
13 | 79 | ## Response Process |
14 | 80 |
|
15 | | -Once a vulnerability is reported, we will acknowledge receipt within 3 business days and provide an estimated timeline for review and remediation. |
| 81 | +Once a vulnerability is reported, we will acknowledge receipt within 3 business days |
| 82 | +and provide an estimated timeline for review and remediation. |
16 | 83 |
|
17 | 84 | ## Public Disclosure |
18 | 85 |
|
19 | | -We kindly request that you do not publicly disclose the vulnerability until we have had a reasonable opportunity to address it. |
20 | | -We aim to resolve vulnerabilities promptly and appreciate your cooperation in maintaining the security of our users. |
| 86 | +We kindly request that you do not publicly disclose the vulnerability until we have |
| 87 | +had a reasonable opportunity to address it. |
| 88 | +We aim to resolve vulnerabilities promptly and appreciate your cooperation in |
| 89 | +maintaining the security of our users. |
21 | 90 |
|
22 | 91 | ## Responsible Disclosure |
23 | 92 |
|
24 | 93 | We encourage responsible disclosure of security vulnerabilities. |
25 | | -Please provide detailed information about the vulnerability, including steps to reproduce it, affected components, and potential impact. |
| 94 | +Please provide detailed information about the vulnerability, including steps to |
| 95 | +reproduce it, affected components, and potential impact. |
26 | 96 | This will help us to effectively address the issue. |
| 97 | + |
| 98 | +<!-- Gurubase Widget --> |
| 99 | +<script async src="https://widget.gurubase.io/widget.latest.min.js" |
| 100 | + data-widget-id="uE4kxEE4LY3ZSyfNsF5bU6gIOnWGTBOL_e16KwDH-0g" |
| 101 | + data-text="Ask AI" |
| 102 | + data-margins='{"bottom": "1rem", "right": "1rem"}' |
| 103 | + data-light-mode="true" |
| 104 | + id="guru-widget-id"> |
| 105 | +</script> |
0 commit comments