diff --git a/docs/basics/common-threats.md b/docs/basics/common-threats.md index 890006930b..e10b6d482f 100644 --- a/docs/basics/common-threats.md +++ b/docs/basics/common-threats.md @@ -78,7 +78,7 @@ There are few ways in which this type of attack might be carried out: These sorts of attacks can require a lot of time and preparation to perform and are risky because they can be detected, particularly in open source projects if they are popular and have outside interest. Unfortunately they're also one of the most dangerous as they are very hard to mitigate entirely. We would encourage readers only use software which has a good reputation and makes an effort to reduce risk by: 1. Only adopting popular software that has been around for a while. The more interest in a project the greater likelihood that external parties will notice malicious changes. A malicious actor will also need to spend more time gaining community trust with meaningful contributions. -2. Make sure software you use builds released binaries with widely-used, trusted build infrastructure platforms (i.e. GitHub workflows) as opposed to developer workstations or self-hosted servers. This is in order to reduce the attack surface and give confidence that the binaries produced are in fact produced correctly. +2. Finding software which releases binaries with widely-used, trusted build infrastructure platforms, as opposed to developer workstations or self-hosted servers. Some systems like GitHub Actions let you inspect the build script that runs publicly for extra confidence. This lessens the likelihood that malware on a developer's machine could infect their packages, and gives confidence that the binaries produced are in fact produced correctly. 3. Code signing on individual commits and releases increases an auditable trail of who did what. For example: Was the malicious code in the software repository? Which developer added it? Was it added during the build process? 4. In open source projects the code should have meaningful commit messages (such as [conventional commits](https://conventionalcommits.org)) which explain what the change is supposed accomplish. Clear messages make it easier for outsiders to the project to verify, audit and find bugs. 5. Noting the number of contributors or maintainers a program has. A lone developer may be more susceptible to being coerced into adding malicious code by an external party, or to negligently enable undesirable behavior. This may very well mean software developed by "Big Tech" has more scrutiny than a lone developer who doesn't answer to anyone.