|
| 1 | +--- |
| 2 | +slug: endor-labs |
| 3 | +append_help_link: true |
| 4 | +hide_table_of_contents: true |
| 5 | +displayed_sidebar: aboutSidebar |
| 6 | +tags: |
| 7 | + - Support |
| 8 | +description: >- |
| 9 | + See how Semgrep compares to Endor Labs. |
| 10 | +--- |
| 11 | + |
| 12 | +import TOCInline from "@theme/TOCInline" |
| 13 | + |
| 14 | +# Compare Semgrep to Endor Labs |
| 15 | + |
| 16 | +<TOCInline toc={toc} /> |
| 17 | + |
| 18 | +## Prioritization |
| 19 | + |
| 20 | +Both Endor Labs and Semgrep support the prioritization of findings so that AppSec teams focus on the most impactful findings. While both companies offer findings filters based on criteria like reachability and EPSS scores, Semgrep offers support for statuses in addition to the basic reachability statuses of **reachable** and **not reachable**, such as **always reachable** and **conditionally reachable**. |
| 21 | + |
| 22 | +Furthermore, Semgrep Assistant uses AI to help organization admins receive information on top backlog tasks, allowing them to prioritize findings from all products, including the SAST and SCA products, not just those resulting from dependency vulnerability scans. |
| 23 | + |
| 24 | +## Reachability for transitive dependencies |
| 25 | + |
| 26 | +Reachability has been a fundamental part of Semgrep Supply Chain from the beginning. Supply Chain offers advanced reachability analysis for direct dependencies in the form of dataflow reachability, offering accuracy beyond that offered by Endor Labs. This coverage is offered for seven languages and counting. |
| 27 | + |
| 28 | +## Vulnerable functions |
| 29 | + |
| 30 | +Semgrep doesn't just identify a vulnerability as reachable when a vulnerable function is called -- it also takes into account *how* the vulnerable function is called and what data flows into that function. These functions are achieved through the use of Semgrep's rule syntax; when a rule is written, all possible permutations of the vulnerability are encapsulated in the rule. This functionality is something that Endor Labs doesn't have. |
| 31 | + |
| 32 | +Semgrep's security research team doesn't just focus on analyzing a vulnerable function when writing rules. The team extends the scope of analysis to all the third-party callers of the vulnerable functions, not just the reported third-party function that's vulnerable. This extends the set of vulnerable functions greatly. The following rule demonstrates this functionality: |
| 33 | + |
| 34 | +```yaml |
| 35 | +--- |
| 36 | +rules: |
| 37 | + - id: ssc-a462c702-1797-4f92-a577-2232cc25ab08 |
| 38 | + message: Affected versions of paddlepaddle are vulnerable to Improper Limitation |
| 39 | + Of A Pathname To A Restricted Directory ('Path Traversal') in the |
| 40 | + `download` and `_check_exists_and_download` of `paddle.dataset.common`. |
| 41 | + severity: ERROR |
| 42 | + metadata: |
| 43 | + confidence: HIGH |
| 44 | + category: security |
| 45 | + cve: CVE-2024-0818 |
| 46 | + cwe: |
| 47 | + - "CWE-22: Improper Limitation of a Pathname to a Restricted Directory |
| 48 | + ('Path Traversal')" |
| 49 | + ghsa: GHSA-2rp8-hff9-c5wr |
| 50 | + owasp: |
| 51 | + - A01:2021 - Broken Access Control |
| 52 | + - A05:2017 - Broken Access Control |
| 53 | + - A06:2021 - Vulnerable and Outdated Components |
| 54 | + publish-date: 2024-03-07T15:30:38Z |
| 55 | + references: |
| 56 | + - https://github.com/advisories/GHSA-2rp8-hff9-c5wr |
| 57 | + - https://nvd.nist.gov/vuln/detail/CVE-2024-0818 |
| 58 | + sca-fix-versions: [] |
| 59 | + sca-kind: reachable |
| 60 | + sca-schema: 20230302 |
| 61 | + sca-severity: CRITICAL |
| 62 | + sca-vuln-database-identifier: CVE-2024-0818 |
| 63 | + technology: |
| 64 | + - python |
| 65 | + r2c-internal-project-depends-on: |
| 66 | + depends-on-either: |
| 67 | + - namespace: pypi |
| 68 | + package: paddlepaddle |
| 69 | + version: <=2.6.0 |
| 70 | + languages: |
| 71 | + - python |
| 72 | + patterns: |
| 73 | + - pattern-either: |
| 74 | + - pattern: paddle.dataset.common.download(...) |
| 75 | + - pattern: paddle.dataset.common._check_exists_and_download(...) |
| 76 | +``` |
| 77 | +
|
| 78 | +The vulnerable function is `download`, as shown by the [fix commit](https://github.com/PaddlePaddle/Paddle/commit/5c50d1a8b97b310cbc36560ec36d8377d6f29d7c). The function `_check_exists_and_download` calls `download`, which you can see in the [source code](https://github.com/PaddlePaddle/Paddle/blob/5c50d1a8b97b310cbc36560ec36d8377d6f29d7c/python/paddle/dataset/common.py#L223). Thus, both functions are flagged in the rule in the final three lines. |
| 79 | + |
| 80 | +Learn more about how the security research team writes rules in [A day in the life: Supply Chain Security Researcher](https://semgrep.dev/blog/2024/a-day-in-the-life-supply-chain-security-researcher) |
| 81 | + |
| 82 | +## Policies and flexibility |
| 83 | + |
| 84 | +Semgrep Supply Chain results in a failed CI job only when there are critical or high-severity findings. However, Semgrep supports notifications and integration with Jira to create tickets for all Supply Chain findings, and it offers the ability to only leave comments on PRs or block a change regarding license detection. |
| 85 | + |
| 86 | +The policies for Semgrep's other products, Semgrep Code and Semgrep Secrets, provide extensive flexibility, especially with respect to a developer's workflow, by allowing results to appear: |
| 87 | + |
| 88 | +- Only in the AppSec team’s view (monitor mode) |
| 89 | +- In the AppSec team's view **and** in the developer’s workflow, while not failing the CI job (comment mode) |
| 90 | +- In the AppSec team's view **and** in the developer’s workflow, while also failing the CI job (block mode) |
| 91 | + |
| 92 | +## Dependency lifecycle management |
| 93 | + |
| 94 | +To help you manage your findings, Semgrep provides information, including EPSS probabilities, severity levels, transitivity information, and multiple levels of dataflow reachability. |
| 95 | + |
| 96 | +## Accuracy of results |
| 97 | + |
| 98 | +Semgrep has reachability analysis for over 80% of critical CVEs dating back to 2017 and 100% of critical and high severity CVEs dating back to May 2022. Endor Labs' reachability data, however, dates back to 2018. |
0 commit comments