Been on Twitter for nearly 14 years. Met a bunch of people here and even got jobs through Twitter. Moving on now though. Find me on Mastodon at [email protected].
@geofflangdale Yes, for this application we want longest matches, not all matches. There is code in Nosey Parker's second stage to deduplicate all matches to the longest.
Part of my work from the past year is now open sourced!
Nosey Parker finds hardcoded secrets in Git history and textual data with few false positives. It runs quickly, able to scan 100GB of Linux kernel source history in 5 minutes on a laptop.
https://t.co/HacUmSRsgG
@geofflangdale I'm going to explore using SOM_LEFTMOST for the rules that we can, to get start locations from Hyperscan when possible. Should help Nosey Parker performance if I can get it working.
@geofflangdale Also, several patterns we have fail to compile with SOM_LEFTMOST, so at present we don't bother trying to get start locations from Hyperscan. Being able to get that reliably would help us.
@geofflangdale Nosey Parker also currently lacks any rule-level profiling at this point. I'm planning to add that eventually, which will give a much better picture of which rules are slower than others.
This is a reimplementation of the regex scanner part of the internal version used at @praetorianlabs in offensive security engagements. That internal version has additional ML capabilities to suppress false positives and identify secrets without needing explicit rules.
@ESultanik@jfischoff Amazing!
Yes, node collision seems different than a hashquine.
I've recently been working with Git history; lots of graph traversal. I suspect that no one explicitly checks for cycles—that property is taken for granted. Everyone's graph traversals would break given a cycle.
I wonder how feasible it would be to make a Git tree object that included itself as an entry.
(This would involve creating an object whose SHA-1 digest is included within itself)
I wonder how feasible it would be to make a Git tree object that included itself as an entry.
(This would involve creating an object whose SHA-1 digest is included within itself)