本来是想考PTE的,贫穷限制了我的学习......先简单介绍一下CWASP CSSD:
“CWASP CSSP培训认证体系”由中国信息安全测评中心和深圳开源互联网安全技术有限公司联合研发,是国内业界首创的软件安全开发人员专业培训认证体系。“CWASP CSSD(注册软件安全开发人员)培训认证”是该培训认证体系下的重要认证之一,旨在提升软件开发从业人员有关“软件安全开发”的基本意识和技能,从软件诞生的源头减少软件的安全缺陷与漏洞,提高软件运行的安全性。
在考证的过程中还是学到了很多,证书不能说明什么,考证的过程就是学习的过程,以考代学也未尝不可,打铁还需自身硬。
部分常用知识点(有点乱,将就看...)“净化”是指检查在程序组件中要传递的数据,尤其是将恶意数据和不必要的数据清除干净。
“增加或删除用户账号”事件需要记录在日志中。
《安全编码规范检查列表》可用于对软件开发团队在编码过程提供安全指导。
ApacheStruts2S2-045(CVE-2017-5638)和 S2-046(CVE-2017-5638)远程执行漏洞 在 OWASPTop10 中属于“使用已知含有漏洞的组件”
BSIMM 和 SAMM 都是软件安全成熟度模型。
Cookie 中有这么一个值“Set-cookie: domain=.facebook.com”,该值说明此 cookie 在 facebook.com 的所有子域名中都有效。
OWASPDependencyCheck 是一个非常好的第三方组件安全漏洞检测工具。
OWASPTop10 的评估标准中包括哪些元素:a) 攻击向量 b) 漏洞的普遍性 c) 漏洞的可检测性 d) 技术影响
OWASPTop10 是业界公认的应用安全标准,描述了 10 类最常见的应用软件安全风险。
Retire.js 可以检测出 web 应用以及 Nodejs 中使用的 javascript 库的漏洞
SAMM 软件安全成熟度模型针对的业务功能,包括:a) 监管(Governace) b) 构建(Construction) c) 验证(Verification) d) 部署(Deployment)
S-SDLC 流程中的关键要素包括:a) 培训、政策和组织。 b) 设计审核、攻击面分析和威胁分析。 c) 安全开发、代码审核、安全测试、安全加固等
STRIDE 是一种有效的威胁模型。
X-Frame-Options:Deny 这个 http 头,可以防止点击劫持(clickjacking)攻击。
XSS 攻击可以被攻击用来做什么?a) 盗取用户 Cookie b) 篡改用户界面 c) 盗用用户身份
XSS 跨站有什么危害? a) 盗取会话 cookie b) 修改当前网站的内容 c) 钓鱼
X-XSS-Protection:1;block 这个 http 头,在某些情况下可以防止 XSS 攻击。
不要把文件上传到可以直接访问的web文件夹中,而是推荐上传到文件服务器或者数据库中去。
常见的密码策略包括: a) 设置最小长度。 b) 包含大小写字母。 c) 包含数字和特殊字符。
对 CSRF 跨站请求伪造攻击可以通过增加令牌环(token)来进行防范,这个 Token 有什么特点? a) 对于每个用户 Token 唯一 b)Token 不可预测 c)Token 不能用 GET 发送
对于 OWASPTop10 中的注入,假设下列值:攻击向量可利用性=1,漏洞的普遍性 =2,漏洞可检测性=2,漏洞的影响=1,则其风险=(1+2+2)/3*1=1.67。
攻击者发现一个链接是:?id=1001,其中 1001 是他 自己的账号 ID,他把 1001 改成 1009 并且可以查看到 1009 的账号信息,这种威胁 叫做“不安全的直接对象引用”。
攻击者可以操纵下列应用程序的引用,来访问他本没有权限访问的资源: a) 文件路径 b)URL 或表单参数 c) 数据库主键
关闭目录列表功能。
OWASPTop10 由 Open WebApplicationSecurity Project (OWASP)安全组织编制、 发布和维护。
OWASPTop10 的适用对象:适用于软件编码人员、软件测试人员、软件安全人员等与软件开发相关的各类人员。
OWASPTop10 中包含的 10 大类,是指 10 大软件安全风险
STRIDE 建模方法:S 指仿冒(Spoofing) , T 指篡改(Tampering) ,R 指抵赖(Repudiation),I 指信 息泄露(InformationDisclosure),D 指拒绝服务(DenialofService),E 指权限提升 (ElevationofPrivilege)。
仿冒(Spoofing),常用的技术方法是用户名/密码、IPSec、SSH 等。
拒绝服务(DenialofService) ,常用的技术方法是高可用性设计、访问控制、过滤等。
权限提升(ElevationofPrivilege),常用的技术方法是输入验证、基于角色的访 问控制。
企业级软件中经常根据用户的工作角色来设定权限。
权限的控制与设置跟企业的组织架构有关。
敏感数据传输时应使用 Post 而不是 Get。
定期移除服务器端存放的敏感数据文件。
检测异常的数据访问。
JSP、ASPX 和 PHP 均存在注入攻击风险
威胁建模步骤的逻辑顺序:绘制数据流图、威胁分析、缓解威胁、审核威胁模型。
计算 OWASPTop10 风险可以根据公式:风险 = 可能性 * 影响来进行计算。
将敏感信息如密码写在源代码里的危害: a) 攻击者可以反编译从而获取密码 b) 用户无法修改密码 c) 不符合软件安全开发最佳实践
跨站脚本简单的说就是用户输入的内容(如:javascript)在浏览器上被执行。
如果可能,尽量不要使用“+”来拼接 SQL 语句,以防止发生 SQL 注入。
如果使用第三方组件,在生产环境中,一定要修改默认的用户名和密码。
如果一个验证既需要密码,又需要令牌,则这个验证可以称为“双因子验证”。
软件安全成熟度模型包括: a)BSIMM 模型 b)SAMM 模型。
软件安全开发流程的阶段主要包括:设计、实施、验证、发布与响应。