Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp ·
빠른 시작
# Install https://github.com/returntocorp/semgrep#option-1-getting-started-from-the-clibrewinstallsemgrep# Go to your repo code and scancdreposemgrepscan--configauto
# Run the paltform in dockerdockerrun-d--namesonarqube-eSONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true-p9000:9000sonarqube:latest# Install cli toolbrewinstallsonar-scanner# Go to localhost:9000 and login with admin:admin or admin:sonar# Generate a local project and then a TOKEN for it# Using the token and from the folder with the repo, scan itcdpath/to/reposonar-scanner \-Dsonar.projectKey=<project-name> \-Dsonar.sources=. \-Dsonar.host.url=http://localhost:9000 \-Dsonar.token=<sonar_project_token>
CodeQL
설치 가능한 무료 버전이 있지만 라이선스에 따라 무료 CodeQL 버전은 오픈 소스 프로젝트에서만 사용할 수 있습니다.
설치
# Download your release from https://github.com/github/codeql-action/releases## Examplewgethttps://github.com/github/codeql-action/releases/download/codeql-bundle-v2.14.3/codeql-bundle-osx64.tar.gz# Move it to the destination foldermkdir~/codeqlmvcodeql-bundle*~/codeql# Decompress itcd~/codeqltar-xzvfcodeql-bundle-*.tar.gzrmcodeql-bundle-*.tar.gz# Add to pathecho'export PATH="$PATH:/Users/username/codeql/codeql"'>>~/.zshrc# Check it's correctly installed## Open a new terminalcodeqlresolveqlpacks#Get paths to QL packs
빠른 시작 - 데이터베이스 준비
할 일은 데이터베이스를 준비하는 것입니다 (코드 트리 생성). 이후에 쿼리를 실행할 수 있습니다.
코드큐엘이 리포지토리의 언어를 자동으로 식별하고 데이터베이스를 생성하도록 허용할 수 있습니다.
codeqldatabasecreate<database>--language<language># Examplecodeqldatabasecreate/path/repo/codeql_db--source-root/path/repo## DB will be created in /path/repo/codeql_db
이렇게 하면 일반적으로 오류를 발생시킵니다. 두 개 이상의 언어가 지정되었다고 말하거나 자동으로 감지되었다고 합니다. 이를 해결하려면 다음 옵션을 확인하세요!
codeqldatabasecreate<database>--language<language>--source-root</path/to/repo># Examplecodeqldatabasecreate/path/repo/codeql_db--languagejavascript--source-root/path/repo## DB will be created in /path/repo/codeql_db
만약 귀하의 저장소가 1개 이상의 언어를 사용하고 있다면, 각 언어를 나타내는 언어별 1개의 DB를 생성할 수도 있습니다.
export GITHUB_TOKEN=ghp_32849y23hij4...codeqldatabasecreate<database>--source-root/path/to/repo--db-cluster--language"javascript,python"# Exampleexport GITHUB_TOKEN=ghp_32849y23hij4...codeqldatabasecreate/path/repo/codeql_db--source-root/path/to/repo--db-cluster--language"javascript,python"## DBs will be created in /path/repo/codeql_db/*
codeql에게 모든 언어를 식별하도록 허용할 수도 있습니다. 그러면 언어별로 DB를 생성합니다. GITHUB_TOKEN을 제공해야 합니다.
export GITHUB_TOKEN=ghp_32849y23hij4...codeqldatabasecreate<database>--db-cluster--source-root</path/to/repo># Exampleexport GITHUB_TOKEN=ghp_32849y23hij4...codeqldatabasecreate/tmp/codeql_db--db-cluster--source-root/path/repo## DBs will be created in /path/repo/codeql_db/*
빠른 시작 - 코드 분석
이제 마침내 코드를 분석할 시간입니다.
여러 언어를 사용했다면, 지정한 경로에 언어별 DB가 생성된 것을 기억하세요.
# Default analysiscodeqldatabaseanalyze<database>--format=<format>--output=</out/file/path># Examplecodeqldatabaseanalyze/tmp/codeql_db/javascript--format=sarif-latest--output=/tmp/graphql_results.sarif# Specify QL pack to use in the analysiscodeqldatabaseanalyze<database> \<qls pack>--sarif-category=<language> \--sarif-add-baseline-file-info \ --format=<format> \--output=/out/file/path># Examplecodeqldatabaseanalyze/tmp/codeql_db \javascript-security-extended --sarif-category=javascript \--sarif-add-baseline-file-info --format=sarif-latest \--output=/tmp/sec-extended.sarif
빠른 시작 - 스크립트화된
export GITHUB_TOKEN=ghp_32849y23hij4...export REPO_PATH=/path/to/repoexport OUTPUT_DIR_PATH="$REPO_PATH/codeql_results"mkdir-p"$OUTPUT_DIR_PATH"export FINAL_MSG="Results available in: "echo"Creating DB"codeqldatabasecreate"$REPO_PATH/codeql_db"--db-cluster--source-root"$REPO_PATH"for db in`ls "$REPO_PATH/codeql_db"`; doecho"Analyzing $db"codeqldatabaseanalyze"$REPO_PATH/codeql_db/$db"--format=sarif-latest--output="${OUTPUT_DIR_PATH}/$db).sarif"FINAL_MSG="$FINAL_MSG ${OUTPUT_DIR_PATH}/$db.sarif ,"echo""doneecho $FINAL_MSG
VSCode extension을 사용하여 VSCode 내에서 결과를 얻을 수도 있습니다. 여전히 데이터베이스를 수동으로 생성해야 하지만, 그런 다음에는 파일을 선택하고 Right Click -> CodeQL: Run Queries in Selected Files를 클릭할 수 있습니다.
# Installsudonpminstall-gsnyk# Authenticate (you can use a free account)snykauth# Test for open source vulns & license issuessnyktest [--all-projects]# Test for code vulnerabilities## This will upload your code and you need to enable this option in: Settings > Snyk Codesnyktestcode# Test for vulns in imagessnykcontainertest [image]# Test for IaC vulnssnykiactest
Java (Maven 및 Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# 및 Javascript (Node.js).
빠른 시작
# Check the correct release for your environment$wgethttps://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz$tar-xfinsider_2.1.0_linux_x86_64.tar.gz$chmod+xinsider$./insider--techjavascript--target<projectfolder>
이 도구는 ChatGPT 및 llama2와 같은 대형 언어 모델 및 기타 도구를 사용하여 Javascript 코드를 최소화 해제합니다. LLM은 구조적 변경을 수행하지 않음에 유의하십시오. 변수 및 함수의 이름을 바꾸는 힌트만 제공합니다. 코드가 1대 1 동등하게 유지되도록 AST 수준에서 Babel에 의해 무거운 작업이 수행됩니다.