Security alerts on GitHub
github.com
github.com
The lack of Python requirements.txt support is a bit odd, since it's conceptually quite similar to the two supported mechanisms.
That allows you to run a check for vulnerable packages before each commit and via CI.
[0] https://docs.pipenv.org/advanced.html#detection-of-security-...
https://python-packaging.readthedocs.io/en/latest/dependenci...
Example: https://github.com/HearthSim/python-hslog/blob/master/setup....
Altho you can write to one of the other formats or read from it - you'd have to tell the scanner what the true build source is
[0] https://github.com/kennethreitz/pipenv/blob/master/Pipfile
[0] https://docs.pipenv.org/advanced.html#detection-of-security-...
I hope they go with Pipfile/Pipfile.lock [0] and pipenv [1] rigth away!
I don't see that happening.
If people get value from it, editing a simple text file once or twice a year wouldn't be difficult.
Option 1: Adding feature to npm/composer/gem/pip ad infinitum
Option 2: add per-language parser support to the alerting tool instead.
Option 2 doesn't necessitate a new (information-duplicating, still potentially error prone) standard, and can likely leverage available, tested libraries ;-)
* any non Javascript / ruby / go languages don't have standard packages, package names, etc.
* any non Javascript / ruby / go languages may be using one of many build systems. It's just too hard to troll through random build systems to see what dependencies are used
* therefore, a simple text file is what will work, and is what will be trivial for everyone to use
* if you find it too hard to update one line in a text file when you add (for example) a new dependency on libldap... you shouldn't be programming
Would have thought Maven popularized standard package names and build dependency (POM) files.
A text file that just declares that "this project uses lib 2.1". It isn't a part of the build system in any way.
That would be awesome.
And looking deeper into Github Marketplace pricing, I can see that Github takes a 25% cut (https://developer.github.com/apps/adding-integrations/managi...).
What is the benefit of getting anything via the Github marketplace that can be subscribed to outside of the marketplace ? What justifies that 25% cut appart from having a listing of apps ?
From a company/integration on the marketplace, the marketplace has been great in terms of building awareness and exposure. Can confidently say that we've been able to reach new users and customers that we wouldn't have otherwise had if we weren't on the marketplace.
From the perspective of a GitHub user/team, lots of teams prefer to consolidate everything together on a single invoice. If you're using GitHub for software development, you're almost certainly going to need a CI/CD tool and PM tool, so why not bring everything together on a single bill?
Potentially, your company might have a GitHub account you're allowed to add services to, but the finance department is less keen on new accounts. It also provides a well known company to complain to instead of yet another small vendor. Things enterprisey type customers tend to like. Manifold - https://www.manifold.co/ - is another player in this space.
https://github.com/facebook/react/blob/master/package.json
See Redux: https://github.com/reactjs/redux/blob/master/package.json#L3...
https://github.com/facebook/react/blob/master/packages/react...
I just checked 3 of my projects that use it, and all 3 are pointing to the correct "facebook react" repo.
{
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1"
}
}I presume in this scenario I need to either wait for a patch from the direct dependency or fork and submit a PR myself.
It's a great idea. I like it quite a bit. I just feel like the floodgates just got opened.
Would be great to see PHP and Python in there.
Right now GitHub, GitLab, Bitbucket, Microsoft, Gogs/Gitea, etc. all have something unique to them, but none of them, have the lock in power, like it was in the past with Perforce, ClearCase and other SCMs.
GitLab and other open source solutions, has turned core Git hosting functionality, into commodity features, that people expect to be good and cheap. So it only makes sense to start focusing on the not so hard things to do, which can't be easily duplicated.
mvn org.owasp:dependency-check-maven:check
Java FTW again :)
Lego forums (I don't know if they still exist though). Apparently they went to great lengths to make them safe and accessible for children.
That said though, if anyone can crack this problem, it will be awesome. Children are already social, and are increasingly on the internet. And there are very few, if any, kid-friendly (not kid-condescending, or kids-as-afterthought) resources.
Most of the other problems listed look like first-world problems.
Why not go one step further and automatically open a pull request fixing the issue? If you can build a model of the dependency graph, then changing the version to an up-to-date version should be trivial.
Of course, there's no guarantee that the commit in the pull request will successfully build, and you'd still need a project maintainer to fix issues in the build caused by the version change. But the data you get is invaluable. If the security alert is unfixable (from the project maintainer's perspective, since upstream hasn't released a fix yet), then why are you alerting a maintainer about something unfixable? If the proposed fix's build is green, then the alert should have a "higher volume" (so to speak), and if the proposed fix's build is red, then the "volume" of the alert should be turned down so that the team can focus on fixing the build so that the security patch should be applied.
But I'm also pretty sure Github is going to do that soon, it's an obvious next step.
Sometimes a vulnerability in a dependency doesn't affect you, because you're not using that feature, in other cases the issue does affect you but it's possible to work around it. For the latter case there isn't necessarily a patch that can be generated automatically.
The frustration is that my projects, and I suspect the bulk of projects the get these alerts, get them because of transitive dependency. At least from my first look I did not see the transitive dependency path mentioned, so although I didn't need to know anything to read the alert, I had to dig through NPM features to figure it out.
As the maintainer of "end-user" projects that depend on various big pieces of tooling, it turns out that I'm not really much of a position to do anything about the transitive dependencies anyway, other than manually track down the dependency path and then go open issues in each thing along the way.
Something like the following seems like it would help focus attention toward the points where things have to be fixed: a kind of leaderboard, a (gentle and friendly) "wall of shame". Projects would earn their way to the top of this wall by depending on vulnerable things themselves, and then being depended on by other projects directly or indirectly.
[1] https://github.com/rickhull?tab=repositories&type=source&lan...
I realize this is one more Github service with access to metadata about your code, so the attack surface is technically larger, but is the probability of leak that much greater from this service than it already is by having your code on their servers (which, I assume, are protected by the same security team)?
Maybe it's an oversimplification but my expectation is that any project with such sensitivity wouldn't be hosted on an external service at all.
There are plenty of open source alternatives such as https://github.com/RetireJS/retire.js for JavaScript.
It's absurd that companies are charging $100/mo just to run your dependency list against another public list of vulnerabilities. This service should be offered for free by GitHub.
http://fuzzyblog.io/blog/github/2017/11/17/enabling-github-s...
What alternative is there? Hoping you notice something on a listserv and realize its' one of your (possibly indirect) dependencies? That does not seem better. Automated monitoring and alert is the way to go.
And _everyone_ should _always_ be filing CVE's for their vulnerabilities, to make automated detection so much easier.
I agree, CVE would be _awesome_ in theory. In reality, very few file for CVE's and so the coverage is iffy (~11% of npm package vulns and about ~67% of rubygem vulns https://snyk.io/stateofossecurity/).
But it goes beyond that. There was a great paper earlier this year (https://arxiv.org/abs/1705.05347) that highlighted many other issues: lag between CVE and NVD (which is where all the useful info comes from), mismatched CPE's, nonexistent CPE's, etc.
I would love to see us get to a point where the CVE/NVD was enough, but we're far from it right now.
I think a great many people at non-large companies are using free tools that I think are unlikely to be better than github's. Or no tool at all.
Yup, that is the point I was trying to make.
Python support coming in 2018.This is because:
1) frameworks are minimalistic and they give you some large room for error.
2) javascript is very dynamic, and it is time consuming to validate types... unless you are using something like typescript.
3) people tend to use node for orchestration layers/api gateways... and focus their security on the underlying API. But exfiltrating at the orchestration layer is as severe.
Whether github is doing it or not, the baddies will be using similar tools to scan I'm sure.