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

Decide on security analysis tools #36

Closed
carjug opened this issue Jun 16, 2021 · 16 comments · Fixed by #100
Closed

Decide on security analysis tools #36

carjug opened this issue Jun 16, 2021 · 16 comments · Fixed by #100
Assignees

Comments

@carjug
Copy link
Contributor

carjug commented Jun 16, 2021

We want to decide on security tools that we can integrate into our development and continuous integration processes.

Type of Check Alex Carly Amy
Dependency scanning GitHub Dependabot Snyk, but open to hearing about others! Snyk
Static analysis for security GitHub CodeQL Not sure. Open to opinions Bandit
Application scanning OWASP Zap OWASP Zap Not sure, Open to anything you choose
@ninamak ninamak added this to the Milestone 0 milestone Jul 12, 2021
@alexsoble
Copy link
Contributor

Moved over the dependency scanning and static analysis rows from #35.

@alexsoble
Copy link
Contributor

Also added a new line for application scanning, this is the category that OWASP ZAP would fall into. Here's how I would think about the different kinds of tools:

  • Dependency scanning: Reads our dependency files, lets us know when a dependency needs an upgrade due to a vulnerability.
  • Static analysis for security: Reads our source code, looks for patterns in the code that tend to be associated with unsafe coding practices.
  • Application scanning: Visits the application [either a local version spun up during CI/CD, or a deployed development site, or prod] and scans for common security misconfigurations.

@carjug
Copy link
Contributor Author

carjug commented Jul 13, 2021

Sounds good to me, Alex! Thanks for moving things over.

@alexsoble
Copy link
Contributor

☝️ All 3 engineers have already started adding ideas here async, so I'm going to move this from TODO to In Progress!

@alexsoble
Copy link
Contributor

We can learn from the TANF Data Portal project here.

They started off with Snyk but then moved to GitHub Native Dependabot.

The team wrote about their reasons why in an ADR!

https://github.com/raft-tech/TANF-app/blob/raft-tdp-main/docs/Architecture%20Decision%20Record/016-dependabot-dependency-management.md

@alexsoble
Copy link
Contributor

... however, it looks like GitHub Native Dependabot isn't quite ready for Enterprise yet: dependabot/dependabot-core#2149

@alexsoble
Copy link
Contributor

... but I do see TTA SmartHub using it via the HHS GitHub org! So looks like it's likely available after all! HHS/Head-Start-TTADP#487

@alexsoble
Copy link
Contributor

Using GitHub-provided Dependabot and GitHub-provided CodeQL would simplify the compliance. (See discussion over in #55, #55 (comment).) Also, CodeQL is getting some rave reviews over in Slack and catching security bugs that weren't caught by other layers of tooling/review.

@carjug
Copy link
Contributor Author

carjug commented Jul 15, 2021

I'm all for using the GitHub-provided services given the simplicity of keeping things all in one place and also the fact that people are loving 💓

@amymok
Copy link
Contributor

amymok commented Jul 16, 2021

It looks like Snyk does have more functionalities than Dependabot. Dependabot mostly focus on dependencies, but Snyk also scan the code for other types of security issues. The question would be, can other tools we are using here also can fill in those functions?

@alexsoble
Copy link
Contributor

@amymok CodeQL can fill in the static analysis code-scanning piece!

@alexsoble
Copy link
Contributor

@amymok @carjug Do we have consensus that GitHub Dependabot and GitHub CodeQL will be our preferred third-party tools, or are there questions/concerns we want to discuss at next week's eng cowork? Either way is OK with me

@carjug
Copy link
Contributor Author

carjug commented Jul 16, 2021

Dependabot and CodeQL are good with me :) open to either as well though.

@amymok
Copy link
Contributor

amymok commented Jul 16, 2021

I don't have any concerns. I am good with Dependabot and CodeQL. I am assuming we also have the consensus on OWASP Zap? Do we need to check compliance or anything on that?

@alexsoble
Copy link
Contributor

@amymok OWASP ZAP gets pulled in as a Docker image, as opposed to being a third-party external service that we integrate with. So kind of similarly to flake8 or coverage.py, I'd treat it as a library we're using, not an external service we need to get compliance sign-off on.

@alexsoble
Copy link
Contributor

I'll pick this one up since we finished out the ADR for CI/CD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants