背景是最近有海外合规的需求,然后我按 ADA:https://appdefensealliance.dev/casa/tier-2/ast-guide/static-scan 提供的方法,跑了一下,发现报错了。报错信息如下:
报错信息
at /nix/store/j686cwms907knr9i90x8kq4587zmgmrg-nixpkgs-src/lib/modules.nix:507:28:
506| builtins.addErrorContext (context name)
507| (args.${name} or config._module.args.${name})
| ^
508| ) (lib.functionArgs f);
… while evaluating the module argument `attrPaths' in "/nix/store/h0r02kl3yzml49x5470id43yk5dx512q-source/src/evaluator/modules/default.nix":
… while evaluating anonymous lambda
at /nix/store/j686cwms907knr9i90x8kq4587zmgmrg-nixpkgs-src/lib/modules.nix:505:44:
504| context = name: ''while evaluating the module argument `${name}' in "${key}":'';
505| extraArgs = builtins.mapAttrs (name: _:
| ^
506| builtins.addErrorContext (context name)
… from call site
… while evaluating the attribute 'value'
就这这个报错信息,我找到了这个帖子:
https://github.com/NixOS/nixpkgs/issues/240509
按帖子上面的描述,我修改了一些,最后是这样跑了起来:
有效的扫描方法
docker run -v /home/yeshen/masa/export:/working-dir ghcr.io/fluidattacks/makes/amd64:latest m gitlab:fluidattacks/universe@trunk /skims scan ./config.yaml
docker run -v /home/yeshen/masa/export:/working-dir ghcr.io/fluidattacks/makes/amd64:latest m gitlab:fluidattacks/universe@trunk /skims scan ./config.yaml
文件目录结构
/home/yeshen/masa/export
|- config.yaml
|- app/src/main/java # 源代码
|- app/src/main/AndroidManifest.xml # 源代码
|- app/org.yeshen.test.apk # apk
config.yaml
amespace: OWASP
output:
file_path: ./Fluid-Attacks-Results.csv
format: CSV
working_dir: .
sast:
include:
- .
- .
apk:
include:
- /app/org.yeshen.test.apk
checks:
- F001
- F004
- F008
- F009
- F010
- F011
- F012
- F015
- F016
- F017
- F020
- F021
- F022
- F023
- F031
- F034
- F035
- F037
- F042
- F043
- F052
- F055
- F056
- F058
- F073
- F075
- F079
- F080
- F082
- F085
- F086
- F089
- F091
- F092
- F094
- F096
- F098
- F099
- F100
- F103
- F107
- F112
- F120
- F127
- F128
- F129
- F130
- F131
- F132
- F133
- F134
- F143
- F160
- F176
- F177
- F182
- F200
- F203
- F206
- F207
- F211
- F234
- F239
- F246
- F247
- F250
- F252
- F256
- F257
- F258
- F259
- F266
- F267
- F268
- F277
- F281
- F300
- F313
- F320
- F325
- F333
- F335
- F338
- F346
- F363
- F372
- F380
- F381
- F393
- F394
- F396
- F398
- F400
- F401
- F402
- F406
- F407
- F408
- F409
- F411
- F412
- F413
- F414
- F416
- F418
language: EN
扫描结果:
─────────────────────────────────── Running ────────────────────────────────────
[INFO] Official documentation: https://help.fluidattacks.com/portal/en/kb/find-security-vulnerabilities/use-the-cli
[WARNING] Some keys were not recognized: apk.The analysis will be performed only using the supported keys
[WARNING] Although skims does not collect any sensitive information, if you do not want to send any data to our servers, set the `tracing_opt_out` key to `True` in your configuration file
[INFO] Scan started at 2025-05-20 03:02:35 (UTC+00:00)
[INFO] Namespace: OWASP
[WARNING] Unable to find commit HEAD on analyzed directory
[INFO] Startup directory is: /working-dir
[INFO] Moving working dir to: /working-dir
[INFO] Starting SAST analysis
[INFO] Performing basic SAST analysis on 1238 paths
[INFO] Basic SAST analysis completed!
[INFO] Performing advanced SAST analysis on 6850 paths
[INFO] Generating SBOM for this project
[INFO] Determining queries to execute
[INFO] Advanced SAST analysis completed!
[INFO] Analyzing unverifiable and non-upgradable paths
[INFO] SAST analysis completed!
[INFO] Analysis finished, writing results
[INFO] An output file has been written: /working-dir/Fluid-Attacks-Results.csv
[INFO] Scan finished at 2025-05-20 03:04:43 (UTC+00:00). Duration: 02 min 07 sec.
[INFO] Summary: 22 vulnerabilities were found in your targets.
───────────────────────────────── 🍾 Success! ──────────────────────────────────
获得执行结果(大约小半个小时)(看到Running块,即开始检测了),按照这样扫描后,我就得到了一份报告,在 /home/yeshen/masa/Fluid-Attacks-Results.csv
这个位置。
fluidattacks
顺便看了一下 fluidattacks 这个的官网介绍,如下:
https://fluidattacks.com/blog/casa-approved-static-scanning
要点总结:
- 组织背景:App Defense Alliance由谷歌等安全公司组成,专注提升应用安全性。
- 工具认证:Fluid Attacks的CLI工具通过认证,可用于CASA框架的二级合规验证。
- 合规框架:
- MASA:针对移动应用,基于OWASP MASVS标准。
- CASA:针对云应用,本文的核心讨论对象。
应用防御联盟(App Defense Alliance)将Fluid Attacks的CLI应用添加为官方认可的应用安全测试(AST)工具。该联盟由谷歌等企业合作成立,旨在确保Android应用对用户的安全性。我们的开源版本可免费用于静态扫描,并已被正式接受为联盟云应用安全评估(CASA)框架二级要求的合规验证工具。
应用防御联盟的成立目的
应用防御联盟(ADA)成立于2019年,成员包括谷歌、ESET、Lookout、Zimperium,以及近期加入的McAfee和Trend Micro。这一合作伙伴关系致力于确保Google Play商店中的应用不存在大量安全漏洞。
为实现这一目标,ADA要求开发者验证其应用是否符合行业安全标准。针对移动应用,ADA推出了**移动应用安全评估(MASA)框架;针对云应用,则建立了云应用安全评估(CASA)**框架。
MASA框架旨在验证应用是否符合**OWASP移动应用安全验证标准(MASVS)**中定义的安全控制措施。(顺带一提,我们在其他文章中列明了移动应用面临的主要风险,并定义了移动应用安全测试(MAST)的作用——若您选择我们的服务,可帮助您检查是否符合MASVS及更高标准。)
不过,本文重点将放在CASA框架上,接下来我们将对其进行更深入的解析。
Cloud Application Security Assessment (CASA)
ADA推出CASA框架的初衷是让Android应用能够符合OWASP移动应用安全验证标准(ASVS)提出的安全控制措施。通过这一框架,其主要目标是确保云到云集成的安全性,同时提升其扩展性和包容性。
由于不同应用访问的数据敏感性、用户规模及开发企业的风险承受能力差异较大,该框架采用了一种基于风险的多层级评估模式。简而言之,CASA的三个层级(1、2、3)直接对应安全要求的严格程度。
框架的使用方(如谷歌)会要求开发者验证其应用是否符合CASA标准。但评估层级的决定权在需求方(如谷歌)而非开发者。当然,开发者也可以主动发起评估,但在此模式下,只有通过层级3(Tier 3)的评估才能获得有效的CASA认证。该层级要求开发者选择一家授权评估机构,由其付费对应用进行全面的安全测试。
若团队仅需满足层级1或层级2的要求,则可以使用CASA推荐的扫描工具来检测常见漏洞。而这里有个好消息:
我们的工具已被纳入CASA静态扫描流程!您可免费使用我们通过认证的开源CLI工具,执行静态应用安全测试(SAST)。
Our CLI app can be leveraged for vulnerability scanning
Fluid Attacks Machine 是我们的命令行(CLI)工具,开发者可通过配置它来运行源代码分析,评估Web应用及其他攻击面。该工具能够执行漏洞扫描,并生成报告——其中包含检测到的漏洞名称(基于Fluid Attacks标准化分类)、对应的CWE ID,以及漏洞在源代码中的具体位置。若需了解如何配置和使用此CLI工具进行漏洞扫描,请参考我们的操作指南。
若CASA框架使用方(如谷歌)要求您通过层级2(Tier 2)的安全验证,请务必遵循ADA官方描述的流程操作。按照联盟官网的指引,使用Machine工具扫描您的应用。
需注意的是,您需要每年重新验证一次应用的合规性。但请记住,安全并非仅在此刻才需关注。每一次应用变更都应伴随安全考量。通过持续进行安全测试,您可以及时发现并修复常见漏洞。我们愿为此提供全程支持。
Secure your applications with Fluid Attacks
我们提供持续黑客(Continuous Hacking)服务,即在您的软件开发生命周期(SDLC)中全程执行应用安全测试(AST)。通过配置Machine工具,我们能精准检测应用漏洞。您可以在我们的平台上查看所有检测结果及详细信息(包括修复建议),并通过实时聊天随时联系我们获取支持。
持续黑客服务的核心优势
安全与效率并存:
确保每次部署的安全性,且不延误产品上市时间。
合规无忧:
满足多项国际标准(如PCI DSS、GDPR、CCPA)要求。
赋能云原生DevSecOps:
助力您在云端实现开发、安全与运维的深度集成。
付费方案选择
我们提供两种付费计划:
基础版(Essential Plan):
包含持续的静态应用安全测试(SAST)、动态应用安全测试(DAST)及软件成分分析(SCA),仅使用自动化扫描工具。
高级版(Advanced Plan):
在基础版上增加AI优先级排序与持续人工渗透测试。我们的白帽黑客团队会挖掘对应用威胁最大的漏洞。因此,我们建议您超越自动化测试,选择以攻击者视角进行的深度安全评估。
若想体验我们的解决方案,可先免费试用基础版21天,并随时升级至高级版。