Joern est une plateforme d'analyse du code source, du bytecode et des exécutables binaires. Il génère des graphiques de propriétés de code (CPG), une représentation graphique du code pour l'analyse de code multilingue. Les graphiques de propriétés de code sont stockés dans une base de données de graphiques personnalisée. Cela permet d'extraire du code à l'aide de requêtes de recherche formulées dans un langage de requête spécifique à un domaine basé sur Scala. Joern est développé dans le but de fournir un outil utile pour la découverte de vulnérabilités et la recherche en analyse de programmes statiques.
Site Web : https://joern.io
Documentation : https://docs.joern.io/
Spécification : https://cpg.joern.io
overflowdb.traversal.Traversal
. Ce changement n’est pas complètement rétrocompatible. Voir ici pour un article détaillé. wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern
██╗ ██████╗ ███████╗██████╗ ███╗ ██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║
██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║
██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
Version: 2.0.1
Type `help` to begin
joern>
Si le script d'installation échoue pour une raison quelconque, essayez
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
Pour exécuter Joern en mode serveur :
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 nécessite que le processeur prenne en charge SSE4.2. Pour la VM kvm64, utilisez plutôt la version Almalinux 8.
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
Une nouvelle version est créée automatiquement une fois par jour. Les contributeurs peuvent également exécuter manuellement le workflow de publication s'ils ont besoin de la version plus tôt.
Merci d'avoir pris le temps de contribuer à Joern ! Voici quelques directives pour garantir que votre pull request sera fusionnée dès que possible :
[javasrc2cpg] Addition Operator Fix
.sbt scalafmt Test/scalafmt
sbt
dans votre référentiel joern local, exécutez compile
et gardez-le ouvert - cela nous permettra d'utiliser la version BSP à l'étape suivanteBSP project
(c'est -à-dire pas sbt project
!)Build -> build project
ou exécuter un test ms-vscode-remote.remote-containers
Folder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
pour rouvrir le dossier dans le conteneur créé par le fichier .devcontainer/Dockerfile
scalameta.metals
dans VSCode et sélectionnez import build
dans BUILD COMMANDS
import build
réussie, vous êtes prêt à commencer à écrire du code pour Joern. Un moyen rapide de développer et de tester QueryDB :
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
La dernière commande imprime toutes les requêtes disponibles - ajoutez la vôtre dans querydb, exécutez à nouveau les commandes ci-dessus pour voir que votre requête a été déployée. Plus de détails dans le fichier readme séparé de querydb