应用软件开发安全的专业领域
这篇文章主要说明软件开发的安全保障会涉及哪些专业领域?
从Microsoft SDL 定义的安全软件开发流程中主要有安全设计,安全编码, 安全测试等
这篇文章将探讨每个子领域的专业范围与相关的业界实践的参考
安全需求架构与设计
涵盖范围
这部分包含对于产品安全需求, 可分为下列几个方向:
- 必要基本安全要求: 这个基础性要求表示产品如果违反其中的安全需求, 该产品或服务就不能上线
- 隐私保护设计:
- 身份访问控制:
- 加密与密钥管理
- 操作系统, Web, 数据库加固:
- 威胁攻击与安全库:
- 威胁分析
笔者推荐可以以OWASP ASVS (Application Security Verification Standard) 为基础来延伸,
OWASP ASVS 为一个软件安全需求与架构分为19大类, 每一大类分别有三个等级,
实务应用上可以依据该软件安全等级(高 Level 3, 中 L2, 低L1) 特性来匹配使用,
https://github.com/OWASP/ASVS/tree/master/3.0.1
安全需求来源
除了上述OWASP ASVS可以为软件安全架构提供一个全貌之外,
甲方(非安全/防毒服务)应用软件的安全需求来源还需要考量:
- 行业规范与安全合规 (如 ISO, SAC, CSA)
- 法律法规, 例如个人隐私资料保护法, 中国网络法
- 漏洞发布
- 客户要求
- 业界实践 OWASP, Spring Security, Federation SSO…
一般来说, 甲方应用软件的安全需求为隐性特性, 比较不容易显现该安全需求的价值与特色
这是甲方软件应用安全与乙方安全服务软件在安全需求规划上有所不同
乙方的安全需求更多专注的是该安全服务要解决黑客或是病毒威胁的场景,
甲方的安全需求多半专注在软件本身的安全保障, 更多的是需要配合该软件本身与业务场景结合的安全需求与保障
业界实践与工具
业界实践 | 参考 | 说明 |
NIST 800-53 | http://csrc.nist.gov/publications/PubsSPs.html | NIST 有许多的安全设计方案可供参考, 其中NIST 800-53定义软件整体安全架构, AWS 云服务厂商依据这架构对标梳理安全需求
http://docs.aws.amazon.com/quickstart/latest/accelerator-nist/welcome.html |
NIST FIPS | http://csrc.nist.gov/publications/PubsFIPS.html | 软件开发中使用加密算法保护密钥, 密码与敏感性资讯等可以参考FIPS对于加密算法的建议与规范 |
OWASP ASVS | https://github.com/OWASP/ASVS/tree/master/3.0.1 | 为软件架构安全需求提供整体三个等级的建议 |
Microsoft SDL | https://msdn.microsoft.com/en-us/library/ff648644.aspx | 微软提出Secure Development Lifecycle软件开发的安全保障, 说明整个软件开发过程中需要进行的安全保障活动, 另外笔者很推荐这本书 “Improving Web Application Security: Threats and Countermeasures”
尽管这本书 2003年出版已经有一段历史, 该书本内容提出许多实用的安全架构, 安全需求, checklist等 对于目前 Web与Cloud 服务的时代还是很值得参考 PDF 电子版 https://www.microsoft.com/en-us/download/details.aspx?id=1330
|
CAPEC 攻击威胁库 | http://capec.mitre.org/data/definitions/1000.html | 为避免为了单纯引入安全技术而安全, 必须了解该安全需求的原始来源与需要解决的问题
因此, |
- Microsft Threat Modeling Tools https://www.microsoft.com/en-us/download/details.aspx?id=49168
- Web AppSensor https://www.owasp.org/index.php/AppSensor_DetectionPoints
- OWASP Cornucopia https://www.owasp.org/index.php/OWASP_Cornucopia#tab=Get_the_Cards
- Microsft Security Checklist https://msdn.microsoft.com/en-us/library/ff647464.aspx
- 德国电信 Privacy and Security Assessment process (PSA process) https://www.telekom.com/resource/blob/327540/d284622cddd1d6fb7ff784e1a46f9587/dl-security-requirements-data.zip
- https://www.telekom.com/en/corporate-responsibility/data-protection-data-security/security/security/privacy-and-security-assessment-process-358312
- OWASP Top 10 https://www.owasp.org/index.php/Top_10_2017-Top_10
- CWE Top 25 http://cwe.mitre.org/top25/archive/2010/2010_cwe_sans_top25.html#Listing
- Java/C++ Vulnerable sample code https://samate.nist.gov/SRD/testsuite.php#standalone
- 安全编译 参考笔者这篇 http://www.qa-knowhow.com/?p=4641
- https://cloudsecurityalliance.org/download/cloud-controls-matrix-v3-0-1/
- https://downloads.cloudsecurityalliance.org/assets/research/top-threats/Treacherous-12_Cloud-Computing_Top-Threats.pdf
- https://aws.amazon.com/whitepapers/#security
- https://developer.salesforce.com/devcenter/security
- https://developer.salesforce.com/page/Requirements_Checklist
- https://www.owasp.org/index.php/OWASP_SaaS_Rest_API_Secure_Guide
- https://safecode.org/publications/
安全编码
涵盖范围
业界实践与工具
- OWASP https://www.owasp.org/images/0/08/OWASP_SCP_Quick_Reference_Guide_v2.pdf
- OWASP Cheat Sheet https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series
- C/C++, Java, Perl CERT Secure Coding https://www.securecoding.cert.org/
- PHP – OWASP PHP Security Cheat Sheet
- Python – OWASP Python Security website
- Oracle Secure Coding for Java http://www.oracle.com/technetwork/java/seccodeguide-139067.html
- Andorid secure coding https://www.jssec.org/dl/android_securecoding_en.pdf
- Findbugs http://findbugs.sourceforge.net/
- Java bug patterns http://find-sec-bugs.github.io/bugs.htm
- https://projects.spring.io/spring-security/
- https://shiro.apache.org/
- https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
- VisualCodeGrepper https://github.com/nccgroup/VCG
- https://samate.nist.gov/SRD/testsuite.php
- https://samate.nist.gov/SRD/view.php
商用工具用在编码扫描比较知名的有
- Coverity
- Klocwork
- Fortify
- CodeMercury
安全测试
涵盖范围
业界实践与工具
- https://tools.kali.org/tools-listing
- https://sourceforge.net/projects/samurai/files/
- https://github.com/MobSF/Mobile-Security-Framework-MobSF
- https://manifestsecurity.com/appie/
- https://github.com/linkedin/qark
- https://nmap.org/
- https://portswigger.net/burp/
- https://www.concise-courses.com/hacking-tools/top-ten/
- https://www.owasp.org/index.php/AppSensor_DetectionPoints#AccessControlException
安全运维与监控
涵盖范围
业界实践与工具
- https://github.com/ossec/ossec-hids
- https://github.com/wazuh/wazuh
- https://www.graylog.org/
- https://github.com/Netflix/security_monkey
- CIS Security Benchmarks https://benchmarks.cisecurity.org/downloads/multiform/
- OpenSCAP https://www.open-scap.org/
- https://www.first.org/cvss/calculator/3.0
应急响应
涵盖范围
业界实践与工具
- SANS Investigative Forensic Toolkit (SIFT) https://digital-forensics.sans.org/community/downloads
- Cuckoosandbox https://www.cuckoosandbox.org/
- https://tools.kali.org/tools-listing
- https://sourceforge.net/projects/ocfa/
- http://www.caine-live.net/
- http://www.x-ways.net/investigator/index-m.html
- http://www.sleuthkit.org/
- http://www.volatilityfoundation.org/24
- https://github.com/volatilityfoundation/volatility
- http://www.xplico.org/about
- https://www.fireeye.com/services/freeware/redline.html
- http://www.plainsight.info/features.html
安全管理
涵盖范围
业界实践与工具
- BSIMM
- SAFECode,
- OpenSAMM,
- Microsoft SDL,
- ASVS.
- https://github.com/WebGoat/WebGoat
- https://www.owasp.org/index.php/OWASP_Security_Knowledge_Framework
- https://demo.securityknowledgeframework.org/knowledge-base