<story><title>Show HN: Bearer – Open-source code security scanning solution (SAST)</title><text>Hi HN,&lt;p&gt;we’re the co-founders of Bearer, and today we launch an open-source alternative to code security solutions such as Snyk Code, SonarQube, or Checkmarx. Essentially, we help security &amp;amp; engineering teams to discover, filter and prioritize security risks and vulnerabilities in their codebase, with a unique approach through sensitive data (PII, PD, PHI).&lt;p&gt;Our website is at &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.bearer.com&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.bearer.com&lt;/a&gt; and our GitHub is here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;bearer&amp;#x2F;bearer&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;bearer&amp;#x2F;bearer&lt;/a&gt;&lt;p&gt;We are not originally Security experts but have been software developers and engineering leaders for over 15 years now, and we thought we could provide a new perspective to security products with a strong emphasis on the developer experience, something we often found lacking for security tools.&lt;p&gt;In addition to building a true developer-friendly security solution, we’ve also heard a lot of teams complaining about how noisy their static code security solutions are. As a result, they often have difficulties triaging the most important issues, and ultimately it’s difficult to remediate them. We believe an important part of the problem lies in the fact that we lack a clear understanding of the real impact of any security issues. Without that understanding, it’s very difficult to ask developers to remediate critical security flaws.&lt;p&gt;We’ve built a unique approach to this problem, by looking at the impact of security issues through the lens of sensitive data. Interestingly, most security team ultimate responsibility today is to secure those sensitive data and protect their organization from costly data loss and leakage, but until today, that connection has never been made.&lt;p&gt;In practical terms, we provide a set of rules that assess the variety of ways known code vulnerabilities (CWE) ultimately impact your application security, and we reconcile it with your sensitive data flows. At the time of this writing, Bearer provides over 100 rules.&lt;p&gt;Here are some examples of what those rules can detect:
- Leakage of sensitive data through cookies, internal loggers, third-party logging services, and into analytics environments.
- Non-filtered user input that can lead to breaches of sensitive information.
- Usage of weak encryption libraries or misusage of encryption algorithms.
- Unencrypted incoming and outgoing communication (HTTP, FTP, SMTP) of sensitive information.
- Hard-coded secrets and tokens.
- And many you can find see here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;reference&amp;#x2F;rules&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;reference&amp;#x2F;rules&amp;#x2F;&lt;/a&gt;&lt;p&gt;Rules are easily extendable to allow you to create your own, everything is YAML based. For example, some of our early users used this system to detect the leakage of sensitive data in their backup environments or missing application-level encryption of their health data.&lt;p&gt;I’m sure you are wondering how can we detect sensitive data flows just by looking at the code. Essentially, we also perform static code analysis to detect those. In a nutshell, we look for those sensitive data flows at two levels:
- Analyzing class names, methods, functions, variables, properties, and attributes. It then ties those together to detected data structures. It does variable reconciliation etc.
- Analyzing data structure definitions files such as OpenAPI, SQL, GraphQL, and Protobuf.&lt;p&gt;Then we pass this over to a classification engine that assess 120+ data types from sensitive data categories such as Personal Data (PD), Sensitive PD, Personally identifiable information (PII), and Personal Health Information (PHI). All of that is documented here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;explanations&amp;#x2F;discovery-and-classification&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;explanations&amp;#x2F;discovery-and-classific...&lt;/a&gt;&lt;p&gt;As we said before, developer experience is key, that’s why you can install Bearer in 15 seconds, from cURL, Homebrew, apt-get, yum, or as a docker image. Then you run it as a CLI locally, or as part of your CI&amp;#x2F;CD.&lt;p&gt;We currently support JavaScript and Ruby stacks, but more will follow shortly!&lt;p&gt;Please let us know what you think and check out the repo here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&lt;/a&gt;</text></story><parent_chain></parent_chain><comment><author>dang</author><text>Vote manipulation is against HN&amp;#x27;s rules and will get you banned here, so please don&amp;#x27;t do it again.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;g_montard&amp;#x2F;status&amp;#x2F;1633119734991405058&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;g_montard&amp;#x2F;status&amp;#x2F;1633119734991405058&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;g_montard&amp;#x2F;status&amp;#x2F;1633119274838392841&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;g_montard&amp;#x2F;status&amp;#x2F;1633119274838392841&lt;/a&gt;&lt;p&gt;This is the one point that&amp;#x27;s in both the site guidelines and the FAQ:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;newsguidelines.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;newsguidelines.html&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;newsfaq.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;newsfaq.html&lt;/a&gt;</text></comment>
<story><title>Show HN: Bearer – Open-source code security scanning solution (SAST)</title><text>Hi HN,&lt;p&gt;we’re the co-founders of Bearer, and today we launch an open-source alternative to code security solutions such as Snyk Code, SonarQube, or Checkmarx. Essentially, we help security &amp;amp; engineering teams to discover, filter and prioritize security risks and vulnerabilities in their codebase, with a unique approach through sensitive data (PII, PD, PHI).&lt;p&gt;Our website is at &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.bearer.com&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.bearer.com&lt;/a&gt; and our GitHub is here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;bearer&amp;#x2F;bearer&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;bearer&amp;#x2F;bearer&lt;/a&gt;&lt;p&gt;We are not originally Security experts but have been software developers and engineering leaders for over 15 years now, and we thought we could provide a new perspective to security products with a strong emphasis on the developer experience, something we often found lacking for security tools.&lt;p&gt;In addition to building a true developer-friendly security solution, we’ve also heard a lot of teams complaining about how noisy their static code security solutions are. As a result, they often have difficulties triaging the most important issues, and ultimately it’s difficult to remediate them. We believe an important part of the problem lies in the fact that we lack a clear understanding of the real impact of any security issues. Without that understanding, it’s very difficult to ask developers to remediate critical security flaws.&lt;p&gt;We’ve built a unique approach to this problem, by looking at the impact of security issues through the lens of sensitive data. Interestingly, most security team ultimate responsibility today is to secure those sensitive data and protect their organization from costly data loss and leakage, but until today, that connection has never been made.&lt;p&gt;In practical terms, we provide a set of rules that assess the variety of ways known code vulnerabilities (CWE) ultimately impact your application security, and we reconcile it with your sensitive data flows. At the time of this writing, Bearer provides over 100 rules.&lt;p&gt;Here are some examples of what those rules can detect:
- Leakage of sensitive data through cookies, internal loggers, third-party logging services, and into analytics environments.
- Non-filtered user input that can lead to breaches of sensitive information.
- Usage of weak encryption libraries or misusage of encryption algorithms.
- Unencrypted incoming and outgoing communication (HTTP, FTP, SMTP) of sensitive information.
- Hard-coded secrets and tokens.
- And many you can find see here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;reference&amp;#x2F;rules&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;reference&amp;#x2F;rules&amp;#x2F;&lt;/a&gt;&lt;p&gt;Rules are easily extendable to allow you to create your own, everything is YAML based. For example, some of our early users used this system to detect the leakage of sensitive data in their backup environments or missing application-level encryption of their health data.&lt;p&gt;I’m sure you are wondering how can we detect sensitive data flows just by looking at the code. Essentially, we also perform static code analysis to detect those. In a nutshell, we look for those sensitive data flows at two levels:
- Analyzing class names, methods, functions, variables, properties, and attributes. It then ties those together to detected data structures. It does variable reconciliation etc.
- Analyzing data structure definitions files such as OpenAPI, SQL, GraphQL, and Protobuf.&lt;p&gt;Then we pass this over to a classification engine that assess 120+ data types from sensitive data categories such as Personal Data (PD), Sensitive PD, Personally identifiable information (PII), and Personal Health Information (PHI). All of that is documented here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;explanations&amp;#x2F;discovery-and-classification&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.bearer.com&amp;#x2F;explanations&amp;#x2F;discovery-and-classific...&lt;/a&gt;&lt;p&gt;As we said before, developer experience is key, that’s why you can install Bearer in 15 seconds, from cURL, Homebrew, apt-get, yum, or as a docker image. Then you run it as a CLI locally, or as part of your CI&amp;#x2F;CD.&lt;p&gt;We currently support JavaScript and Ruby stacks, but more will follow shortly!&lt;p&gt;Please let us know what you think and check out the repo here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&lt;/a&gt;</text></story><parent_chain></parent_chain><comment><author>mdaniel</author><text>Elastic 2, for those who care about such things: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&amp;#x2F;blob&amp;#x2F;v1.0.0&amp;#x2F;LICENSE.txt&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;Bearer&amp;#x2F;bearer&amp;#x2F;blob&amp;#x2F;v1.0.0&amp;#x2F;LICENSE.txt&lt;/a&gt;</text></comment>