|
| 1 | +============================================================================== |
| 2 | +Integrating OpenSSF Scorecard into Scancode.io for Enhanced Vulnerability Analysis |
| 3 | +============================================================================== |
| 4 | + |
| 5 | +**Organization:** `AboutCode <https://aboutcode.org>`_ |
| 6 | + |
| 7 | +**Projects:** `Scancode.io <https://github.com/aboutcode-org/scancode.io>`_, |
| 8 | + `Scorecode <https://github.com/aboutcode-org/scorecode>`_ |
| 9 | + |
| 10 | +**Mentee:** `Pranay Das (404-geek) <https://github.com/404-geek>`_ |
| 11 | + |
| 12 | +**Mentors:** |
| 13 | +- `Philippe Ombredanne <https://github.com/pombredanne>`_ |
| 14 | +- `Ayan Sinha Mahapatra <https://github.com/AyanSinhaMahapatra>`_ |
| 15 | +- `Thomas Druez <https://github.com/thomasdruez>`_ |
| 16 | +- `Jonathan Yang <https://github.com/JonoYang>`_ |
| 17 | +- `Tushar Goel <https://github.com/tushar-goel>`_ |
| 18 | + |
| 19 | +-------------------------------------------------------------------------------- |
| 20 | + |
| 21 | +Overview |
| 22 | +-------- |
| 23 | + |
| 24 | +The primary objective of this project was to integrate the OpenSSF Scorecard into the Scancode.io platform, thereby enhancing its capabilities for vulnerability analysis. The project involved work on two key repositories: `Scorecode`, which was developed as a PyPI package, and `Scancode.io`, where the integration with Scorecard data was implemented within scanning pipelines. |
| 25 | + |
| 26 | +### Scorecode |
| 27 | + |
| 28 | +`Scorecode` serves as a PyPI package that encapsulates the business logic for fetching OpenSSF Scorecard data using the OpenSSF API. It also includes Django mixin models that can be extended and integrated into other platforms with databases, such as Scancode.io and PurlDB, ensuring seamless utilization of Scorecard data across various projects. |
| 29 | + |
| 30 | +### Scancode.io |
| 31 | + |
| 32 | +In the `Scancode.io` project, I developed a pipeline that interacts with the `Scorecode` package to fetch and store Scorecard data in the Scancode.io database. The data can then be exported into Bill of Materials (BOM) files in formats like CycloneDX and SPDX, providing comprehensive security insights in standardized formats. |
| 33 | + |
| 34 | +-------------------------------------------------------------------------------- |
| 35 | + |
| 36 | +Implementation |
| 37 | +-------------- |
| 38 | + |
| 39 | +**1. Scorecode Repository:** |
| 40 | + |
| 41 | + - Developed a PyPI package to interact with the OpenSSF API and fetch Scorecard data for various software packages. |
| 42 | + - Created Django mixin models to enable easy extension and integration of Scorecard data into platforms with databases like Scancode.io. |
| 43 | + |
| 44 | +**2. Scancode.io Integration:** |
| 45 | + |
| 46 | + - Developed a pipeline within Scancode.io to call `Scorecode` functions, retrieve Scorecard data, and save it in the Scancode.io database. |
| 47 | + - Enhanced the existing BOM export functionality to include Scorecard data, allowing for detailed security posture analysis in CycloneDX and SPDX formats. |
| 48 | + |
| 49 | +**4. Testing:** |
| 50 | + |
| 51 | + - Conducted comprehensive testing in both repositories to ensure accurate fetching, storage, and export of Scorecard data. |
| 52 | + - Verified seamless integration across different package ecosystems supported by Scancode.io. |
| 53 | + |
| 54 | +-------------------------------------------------------------------------------- |
| 55 | + |
| 56 | +Linked Pull Requests |
| 57 | +-------------------- |
| 58 | + |
| 59 | +.. list-table:: |
| 60 | + :widths: 10 60 30 |
| 61 | + :header-rows: 1 |
| 62 | + |
| 63 | + * - Sr. no |
| 64 | + - Link |
| 65 | + - Status |
| 66 | + * - 1 |
| 67 | + - https://github.com/aboutcode-org/scancode.io/pull/1294 |
| 68 | + - Open |
| 69 | + * - 2 |
| 70 | + - https://github.com/aboutcode-org/scorecode/pull/5 |
| 71 | + - Closed |
| 72 | + * - 2 |
| 73 | + - https://github.com/aboutcode-org/scorecode/pull/1 |
| 74 | + - Closed |
| 75 | + * - 2 |
| 76 | + - https://github.com/aboutcode-org/scorecode/pull/4 |
| 77 | + - Closed |
0 commit comments