Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Achieve CII Best Practices Badge #319

Open
8 of 33 tasks
jorgeyp opened this issue Oct 17, 2017 · 0 comments
Open
8 of 33 tasks

Achieve CII Best Practices Badge #319

jorgeyp opened this issue Oct 17, 2017 · 0 comments

Comments

@jorgeyp
Copy link
Collaborator

jorgeyp commented Oct 17, 2017

Further info

  • Have a stable website, which says:
    • what it does
    • how to get it
    • how to give feedback
    • how to contribute and preferred styles
  • Explicitly specify a FLOSS license
  • Support HTTPS on the project sites
  • Document how to install and run (securely), and any API
  • Have a distributed **public version control system,
  • including changes between releases**:
    • Give each release a unique version, using semantic versioning format
    • Give a summary of changes for each release, identifying any fixed vulnerabilities
  • Allow bug reports to be submitted, archived and tracked:
    • Acknowledge/respond to bugs & enhancement requests, rather than ignoring them
    • Have a secure, documented process for reporting vulnerabilities
    • Respond within 14 days, and fix vulnerabilities, within 60 days if they're public
  • Have a build that works, using standard open-source tools
    • Enable (and fix) compiler warnings and lint-like checks
    • Run other static analysis tools and fix exploitable problems
  • Have an automated test suite that covers most of the code/functionality, and officially require new tests for new code
  • Automate running the tests on all changes, and apply dynamic checks:
    • Run memory/behaviour analysis tools (sanitizers/Valgrind etc.)
    • Run a fuzzer or web-scanner over the code
  • Have a developer who understands secure software and common vulnerability errors
  • If cryptography is used:
    • Use public protocols/algorithm
    • Don't re-implement standard functionality
    • Use open-source cryptography
    • Use key lengths that will stay secure
    • Don't use known-broken or known-weak algorithms
    • Use algorithms with forward secrecy
    • Store any passwords with iterated, salted, hashes using a key-stretching algorithm
    • Use cryptographic random number sources
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant