软件安全基础知识
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件易于遭受的安全弱点:
SQL Injections Buffer Overflows Information Leakage Other Categories
软件安全弱点的底线:
Operations, Availability Compliance Credibility, Reputation
简单攻击方式演示
Firewall only allows applications on the web server to talk to application server.
Corporate Inside
Firewall only allows application server to talk to database server.
Discl osur e Patc h Rele ased
Scri pt in g
T ime
Average Curve of Number of Intrusions for a Security Bug Over Time, as Reported by Arbaugh, Fithen and McHugh, 2000.
演示如何通过攻击应用系统达到窃取商业信息和破坏应用系统 使用的攻击方式如下:
SQL Injection Cross-Site Scripting Privacy Violation System Information leakage
传统的教育弊端
传统学校关于安全技术的教育的原则: 用防火墙来定义系统的”边界”,把软件与外界隔离. 过分依赖加密技术 SSL+IPS+IDS 救火式:发布产品时候才去审查产品 这个阶段所做的都是 “Why did we do this like this?” 我们将以补丁(patch)的方式修复它. 我们已经了解到这个问题. 不允许高级技术使用: 如果它是新的,肯定有问题. 等,直到这种技术成熟了,保险了,我们才使用. 想尽一切办法去否定使用新技术的想法
不同时代不同的安全问题特点
Application
How involved have we been with software?
Host
In 1990’s, we secured the host In 1980’s, we secured the network
Network
上世纪的安全策略
软件安全问题越来越严重原因
软件安全风险管理
Software Security Risk Management: ----预先去识别/分析那些对商业有负面影响的软件缺陷,决 定花多少成本去修复它. 软件安全其实就是软件风险管理.
软件安全风险管理框架
软件安全风险管理框架分成如下六个步骤,在软件的全生命开 发周期去跟踪和消除安全风险 :
软件安全研究:
----了解产生软件安全风险的原因,并怎样去规避他们
构建安全软件:
----在软件的设计、开发、测试与管理等每一个环节都要保证软件的安全 性,同还要不断对开发人员,设计人员和用户进行安全知识的教育
“ Building secure software: designing software to be secure, make sure that software is secure ,educating software developers ,architects and users about how to build security in”
据CERT-CC报道:全球安全漏洞现在每天以40个漏洞速度 增长
为什么?
为什么我的努力毫无作用? 我们的安全建设都做了什么?
传统的安全建设投资
然而实际的问题
“75% of hacks occur at the application level” - Gartner, 2005 "92% of reported vulnerabilities are in apps, not networks" - NIST
Increase Internet protocol attacks, MailBomb, SPAM etc
1994
传统的软件安全防御方式
Hackers Worms & Viruses
Traditional network/perimeter defenses
Malicious Insiders
Critical Software Automation Of Key Operational Processes
Software Security
Fortify China Consultant:WangHong hwang@fortify.com
主要内容
软件安全基本概念 软件安全的重要性 分析软件安全越来越严重的原因和根源 解决软件安全问题的措施和方法
基本概念
软件安全:
----在软件受到恶意的攻击下,软件能够正常运行(功能/性能)
传统的防御方式的不工作的原因
Key Network Web Restrict Access Firewall Everyone has access Authenticate users Windows / Unix auth HTTP has WEAK authentication
Monitor for attacks IDS / IPS Critical traffic is in SSL Tunnel Track users (state) User of TCP/IP connections HTTP is stateless Block known attacks IPS (Self-defending networks) Web attacks are extremely hard to distinguish from normal activity
黑客(恶意的内部人员)使用软件
IDC数据统计:至 少75%的企业被成 功地攻击过。 而据CERT报告: 受攻击的企业中 55%攻击来自内部
SQL Injections Buffer Overflows Information Leakage Numerous other Categories……
人员
The network is the computer.
…is this complex program .NET This simple interface…
黑客攻击的演化方式
direct application attacks and Business Logic exploits.
Attack History
2008
Network protocols (DNS/TCP-IP) attacked
2004
Increase Application style attacks (SQL Injection, XSS etc)
2000
Internet Browsers & Social Engineering
1997
75% of hacks occur at the application level
Encryption Module
0% 1% 2% 2% 3% 15% 41%
Network Protocol Stack Other Communication Protocol Hardware Operating System Non-Server Applications
36%
Server Applications
Source: NIST
我们错误投资方向
Security
% of Attacks
Web Applications
Spending
% of Dollars 10%
75%
90%
25%
Sources: Gartner, IDC, Watchfire
Network Server
传统防御方式不完整
Internet
IIS SunOne Apache
DMZ
ASP .NET WebSphere Java
Trusted Inside
SQL Oracle DB2
HLeabharlann BaiduTP(S)
IMAP FTP SSH POP3 TELNET
Firewall only allows PORT 80 (or 443 SSL) traffic from the Internet to the web server. Any – Web Server: 80
限制责任和义务,满足法规和标准
incidents & exploits (#)
避免对公司品牌和声誉造成破坏
信息安全的现状
事实上: 我们每年都花了数百万的资金在信息安全上,但是效果并 不如意,我们遭遇的安全问题越来越多.
impact ($40B)
info-sec spending ($17B)
CERT 2007年报告
为什么软件安全如此重要?
信息安全的期望 信息安全的现状 软件安全漏洞的发展趋势 传统解决信息安全的方法 软件安全在信息安全中的重要地位
信息安全的期望
理论上: 我们花很多钱在信息安全建设上,安全问题应该被 少,安全事件发生机率应该被降低。
info-sec spending ($)
保护我们的业务不会被恶义的家伙破坏”
传统的教育弊端
传统的安全模式: 保护”边界” 网络安全 安全负责的人是 IT/MIS/CISSP等部门 被动式 新的安全模式: 构建安全的系统 设计安全的软件 软件开发人员和设计人员对安全负责 主动式
打补丁与渗透测试不能解决问题
Penetrate and Patch is Bad
Intr usions
软件安全问题根源
软件安全问题的产生的根源: 如今的黑客攻击主要利用软件本身的安全漏洞,这些漏 洞是由不良的软件架构和不安全的编码产生的。 软件工程=建筑工程
---开发软件 -- 造房子 ---软件实现(编码) -- 砌墙 ---软件架构 -- 房屋结构框架 ---软件开发人员 -- 建筑工人 ---在软件安全问题上,架构上的风险往往比实现上的风险更重要.
新的软件安全解决方案
软件安全涉及软件开发周期,编程语言,安全知识,软件工程等诸多方 面,.根据著名软件安全专家Gary Mc Graw的建议,解决软件安全主要要从 如下几个方面下手: Software Security Risk Management (软件安全风险管理) Software Security Best practices(软件安全最佳实践) Knowledge(安全知识)
黑客以正常用户方式进行攻击
Server www.mybank.com (64.58.76.230)
Client PC (10.1.0.123) IDS SSL Tunnel
Port: 443 or 80
Request
Response
Web App HTTP Network
黑客以正常用户方式进行攻击
软件自身变化 黑客攻击方式的进化 传统的分层保护方案减轻系统的风险 传统的基于网络的方案不工作 黑客可直接利用软件的弱点达到攻击系统 软件必须保护它们自己 传统学校关于安全技术的教育 软件补丁和软件安全攻击的关系 软件安全的根源问题。
软件自身变化
Connectivity(互联性) Extensibility(延展性) Complexity (复杂性)
新的软件架构——软件的应用因为业务和功能的需要必打破传统的保护
层,直接与外面的系统交互
Outsourcing Legacy App Integration Web Facing Applications Employee Self-Service Connectivity w/ Partners & Suppliers
软件自身变化
软件自身的变化,满足日益增长的需求为安全漏洞的滋长提供了天然的环境。
Connectivity The Internet is everywhere and most software is on it Complexity Networked, distributed, mobile code is hard Extensibility Systems evolve in unexpected ways and are changed on the fly