#security #security-testing #static-analysis #yaml #cybersecurity #sca #sast

app Hela

此工具可帮助您在项目中运行静态代码分析(SCA)、静态应用安全测试(SAST)、秘密扫描和许可证合规性扫描。它还允许您使用YAML格式编写自己的策略文件,以便在检测到安全问题时在管道中实施阻止。

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测试

MIT 许可证

78KB
1K SLoC

Hela

此工具可帮助您在项目中运行静态代码分析(SCA)、静态应用安全测试(SAST)、秘密扫描和许可证合规性扫描。它还允许您使用YAML格式编写自己的策略文件,以便在检测到安全问题时在管道中实施阻止。

Docker安装

如果您不想从源代码构建并安装Rust依赖项,可以使用Docker运行工具。请按照以下说明操作

  1. 拉取Docker镜像
docker pull rohitcoder/hela
  1. 使用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

💪 贡献者

感谢您不断使此工具变得更好!🙏

贡献

在开始之前,请阅读贡献指南,并在您遇到任何挑战或问题时告诉我们。

HelaRohit Kumar (@rohitcoder)维护。

谢谢!

依赖项

~35–49MB
~1M SLoC