4个版本
0.1.4 | 2023年8月31日 |
---|---|
0.1.3 | 2023年8月29日 |
0.1.1 | 2023年8月29日 |
0.1.0 | 2023年8月29日 |
110 在 测试 中
78KB
1K SLoC
Hela
此工具可帮助您在项目中运行静态代码分析(SCA)、静态应用安全测试(SAST)、秘密扫描和许可证合规性扫描。它还允许您使用YAML格式编写自己的策略文件,以便在检测到安全问题时在管道中实施阻止。
Docker安装
如果您不想从源代码构建并安装Rust依赖项,可以使用Docker运行工具。请按照以下说明操作
- 拉取Docker镜像
docker pull rohitcoder/hela
- 使用Docker运行工具
docker run rohitcoder/hela <tool-options>
添加您可能需要的任何Docker选项(例如,卷挂载),并使用下一节中解释的所需工具选项。
用法
要运行Hela工具,请使用以下命令
docker run rohitcoder/hela --path <path> --sast --sca --secret --license-compliance --policy-url <policy_url> --verbose
将 <path>
替换为您项目的路径,可以是本地文件夹路径或Git仓库URL。如果您想与私有仓库一起使用,请提供带有访问令牌的Git仓库路径。
将 <policy_url>
替换为您策略文件的URL(YAML格式)。该文件定义了在检测到特定安全问题时阻止管道的规则。
该工具将在您的项目中执行指定的扫描(--license-compliance
、--sast
、--sca
、--secret
)并实施策略文件中定义的策略。详细模式(--verbose
)将提供详细输出。
注意:API端点和启动服务器功能目前正在开发中,不可用。
从源代码构建和安装
克隆并构建项目
git clone https://github.com/rohitcoder/hela.git
cd hela
cargo build --release
命令行使用
要从命令行使用工具,请运行以下命令
cargo run -- [options]
将 [options]
替换为以下列表中所需的选项。
选项
选项 | 描述 |
---|---|
-v, --verbose | 启用详细模式。 |
-p , --code-path | 传递要扫描的项目路径(本地路径或HTTP Git URL)。 |
-t , --rule-path | 传递Semsgrep规则仓库的路径(本地路径或HTTP Git URL)。 |
-n , --no-install | 使用此选项在SCA扫描期间跳过项目的安装(当你已经在仓库中有了锁文件,并且想要节省时间时很有用)。 |
-r , --root-only | 如果你只想为根文件夹的清单运行SCA,请传递此标志。 |
-d , --build-args | 为SCA扫描提供任何额外的构建参数(这将注入到构建命令中,如mvn build或npm run)。 |
- , --manifests | 传递要扫描的清单类型列表(以逗号分隔的值)。例如:--manifests packages-lock.json,requirements.txt |
-i , --commit-id | 传递要扫描的提交ID(可选)。 |
-b , --branch | 传递要扫描的分支名称(可选)。 |
-s, --sast | 运行SAST扫描。 |
-u , --server-url | 传递要发送扫描结果的服务器URL。 |
-c, --sca | 运行SCA扫描。 |
-e, --secret | 运行秘密扫描。 |
-l, --license-compliance | 运行许可证合规性扫描。 |
-j, --json | 打印JSON输出。注意:这与管道检查实现不兼容。 |
-y , --policy-url | 传递要检查管道是否应该失败的策略URL。 |
编写Pipelien失败策略规则
您可以使用这些策略在CI/CD流程中使您的管道构建失败。扫描器会检查策略文件中定义的条件,如果满足任何条件,则会使管道失败。
## list in which conditions our pipeline should fail
sast:
critical_count:
operator: greater_than ## supports greater_than, less_than, equal_to
value: 2
high_count:
operator: greater_than
value: 2
sca:
critical_count:
operator: greater_than
value: 2
high_count:
operator: greater_than
value: 1
secret:
contains:
- JDBC # supports abbysale,abstract,abuseipdb,accuweather,adafruitio,adobeio,adzuna,aeroworkflow,agora,aha,airbrakeprojectkey,airbrakeuserkey,airship,airtableapikey,airvisual,aiven,alchemy,alconost,alegra,aletheiaapi,algoliaadminkey,alibaba,alienvault,allsports,amadeus,ambee,amplitudeapikey,anypoint,apacta,api2cart,apideck,apiflash,apifonica,apify,apilayer,apimatic,apiscience,apitemplate,apollo,appcues,appfollow,appointedd,appsynergy,apptivo,artifactory,artsy,asanaoauth,asanapersonalaccesstoken,assemblyai,atera,audd,auth0managementapitoken,auth0oauth,autodesk,autoklose,autopilot,avazapersonalaccesstoken,aviationstack,aws,axonaut,aylien,ayrshare,azure,bannerbear,baremetrics,baseapiio,beamer,beebole,besnappy,besttime,billomat,bitbar,bitcoinaverage,bitfinex,bitlyaccesstoken,bitmex,blablabus,blazemeter,blitapp,blocknative,blogger,bombbomb,boostnote,borgbase,braintreepayments,brandfetch,browserstack,browshot,bscscan,buddyns,bugherd,bugsnag,buildkite,buildkitev2,bulbul,bulksms,buttercms,caflou,calendarific,c...e,telnyx,terraformcloudpersonaltoken,testingbot,text2data,textmagic,theoddsapi,thinkific,thousandeyes,ticketmaster,tickettailor,tiingo,timecamp,timezoneapi,tineswebhook,tly,tmetric,todoist,toggltrack,tokeet,tomorrowio,tomtom,tradier,transferwise,travelpayouts,travisci,trelloapikey,tru,trufflehogenterprise,twelvedata,twilio,twist,twitch,twitter,tyntec,typeform,typetalk,ubidots,uclassify,unifyid,unplugg,unsplash,upcdatabase,uplead,uploadcare,uptimerobot,upwave,uri,urlscan,user,userflow,userstack,vatlayer,vbout,vercel,verifier,verimail,veriphone,versioneye,viewneo,virustotal,visualcrossing,voicegain,voodoosms,vouchery,vpnapi,vultrapikey,vyte,walkscore,weatherbit,weatherstack,webex,webflow,webscraper,webscraping,websitepulse,wepay,whoxy,wistia,wit,worksnaps,workstack,worldcoinindex,worldweather,wrike,yandex,yelp,youneedabudget,yousign,youtubeapikey,zapierwebhook,zendeskapi,zenkitapi,zenrows,zenscrape,zenserp,zeplin,zerobounce,zipapi,zipbooks,zipcodeapi,zipcodebase,zonkafeedback,zulipchat
license:
contains:
- AGPL
- GPL
- LGPL
示例工作命令
docker run rohitcoder/hela --path https://github.com/appsecco/dvja --license-compliance --sast --sca --secret --license-compliance --policy-url https://raw.githubusercontent.com/rohitcoder/code-security-policies/main/policy-fail.yaml --verbose
💪 贡献者
感谢您不断使此工具变得更好!🙏
贡献
在开始之前,请阅读贡献指南,并在您遇到任何挑战或问题时告诉我们。
Hela 由Rohit Kumar (@rohitcoder)维护。
谢谢!
依赖项
~35–49MB
~1M SLoC