Skip to content

Code: Security code scanner #757

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: dev
Choose a base branch
from
Draft

Code: Security code scanner #757

wants to merge 1 commit into from

Conversation

graycraft
Copy link
Member

No description provided.

Copy link

vercel bot commented Apr 5, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
adamant-im ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 5, 2025 1:57pm

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Copy link

github-actions bot commented Apr 5, 2025

Deployed to https://msg-adamant-pr-757.surge.sh 🚀

@graycraft graycraft changed the title Add workflow for CodeQL scan Code: Security code scanner Apr 5, 2025
@graycraft
Copy link
Member Author

@graycraft graycraft marked this pull request as ready for review April 6, 2025 05:26
@graycraft graycraft requested a review from a team as a code owner April 6, 2025 05:26
@@ -0,0 +1,54 @@
name: CodeQL Scan
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it scan only our source code? What about scanning node_modules, in the /dist dir after build? Did you check how Metamask is dealing with that?

Copy link
Member Author

@graycraft graycraft Apr 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metamask uses own custom scanner, dist skipped because basically it has the same logic as src directory.
node_modules can be easily scanned by npm audit and it performs on every install

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't rely only on npm audit. If no one reported a malicious code inside the package, the NPM audit will not catch it.

I think we need to scan it additionally with CodeQL, either the node_modules or the dist dir.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also do a research about other open source projects (besides MetaMask), how they a dealing with that? @graycraft

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL: CodeQL can be configured to scan node_modules as well. This can help identify potential security issues that npm audit might miss. You can modify your workflow to include node_modules in the scan.

Suggested additions:

  • Add npm audit or even audit-ci in CI as a separate job.
  • Use a static analysis tool like Snyk or Socket.dev to catch malicious patterns (not just vulnerabilities).
  • Don’t scan dist — that’s compiled code. Instead, ensure your source code and build pipeline are secure.

Here are some examples you could explore:

  • MetaMask: custom pipeline + not relying on dist/node_modules.
  • Hardhat (Nomic Foundation): uses npm audit + some static analysis.
  • Ethers.js: relies on lightweight CI and minimal deps.
  • Zcash: uses CodeQL + other tools to scan for logic issues.
  • Brave Browser: runs both CodeQL and custom static scans with alerts for dependency changes.
  • Projects like Webpack, Next.js, and other popular JavaScript/TypeScript projects might have robust security practices that you can learn from.

TL;DR Suggestions:

  • Use CodeQL for source code.
  • Use audit-ci or snyk test to scan node_modules.
  • Don't scan dist, it's unnecessary duplication.
  • Consider adding npm audit --audit-level=high as a gate.
  • Review tools like Snyk, Socket.dev, or NodeSecure (https://github.com/nodesecure/nodesecure) for additional layer of scanning.

@bludnic bludnic marked this pull request as draft May 4, 2025 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants