个人收获--安全世界观之web安全简史
在早期互联网(web1.0),web还不是主流应用时,因为基于smtp、pop3、ftp、irc等协议服务拥有着大多的客户,
黑客主要的攻击目标是网络、操作系统以及软件等领域;然后自网络设备厂商如Cisco、huawei等更重视网络安全,
再加上防火墙、acl技术的兴起,形成内网(网络环境)、域(管理环境),信任边界的树立,原本暴露在外的系统和数据库服务开始隐蔽起来,
然后随着web技术的成熟,web开始成为主流,针对这块的攻击又开始发展起来了:
sql注入,上世纪末,99年; xss,差不多是2003年开始受到重视的。------两个web安全史上的里程碑。
随着web2.0兴起,xss和csrf的变得更为强大,攻击目标从原来的服务端转向了客户端。
事件:2003年冲击波蠕虫,针对windows的rpc服务,感染主机后参与实行拒绝服务攻击。
2005年MySpace蠕虫,samy和他的一百万好友刷屏。(xss)
客户端软件安全:早期黑客喜欢针对用户常用软件(或者说装机量大的软件)进行攻击,如office系列、adobe的阅读器、多媒体、压缩软件,利用缓冲区溢出等,执行shellcode,下载木马,获取控制权。如今这个概念基本没有了,软件安全部分交由其自身软件供应商去完善,
如今已经有一套较完整的软件安全开发的流程了;而此概念在现在更多的是叫客户端安全。
安全三要素:
机密性:指只有授权用户可以获取信息。 --针对的是数据,(常见)技术是加密,掩盖的是信息。
完整性:不被非法授权修改和破坏。 --针对的同样是数据,维护的是其状态,防破坏和篡改。
可用性:合法用户对信息和资源的使用。
额外的:可审计性&可控性、不可抵赖&不可否认性。
安全评估:
资产等级划分 --根据业务划分侧重点。
威胁分析 --运用各种模型,例STRIDE模型,1999微软提出的。
风险分析 --同样运用模型,例DREAD模型,入门级别。
设计安全方案 --生成安全解决方案
其中,我们要把几个概念梳理清楚:
资产等级划分,是为了确定明确的目标,要保护的资源&数据,因为互联网的核心问题,是数据安全的问题。
威胁分析,是为了确定威胁来源,确定攻击面。ps:我们把可能造成危害的来源称为威胁;可能出现的损失称为风险;系统中可能被威胁利用以造成危害的称为漏洞。
风险分析,是为了评估风险的高低,划分损失的大小,同时权衡危害发生的可能性,综合排序风险。
设计安全方案,是为了生成好的,最适配问题的安全解决方案。ps:安全和业务其实并不冲突,相反,没有安全参与成长的产品是畸形的,不完整的,直接影响产品性能,间接影响业务需求,甚至是更重要的用户需求、体验。
白帽子兵法--Secure By Default:
1、白名单、黑名单
尽可能使用白名单策略,不使用黑名单。例如:要做限制过滤时,提供一份信任的白名单列表比提供一份不可信任的黑名单要好。
例如:服务器白名单准入安装软件、防火墙白名单限制对外开放的端口、处理用户提交的富文本时,只允许需要到的标签。
2、最小权限原则
原则:要求系统只授予主体必要的权限,而不要过度授权,这样能有效地减少系统、网络、应用、数据库出错的机会。
3、纵深防御原则
两层含义:
A: 在不同层面,不同方面实施安全方案。
例如:在设计安全方案时,尽可能考虑web应用安全、系统安全、数据库安全、网络环境安全等不同层面,共同组成防御体系。
B: 在正确的地方做正确的事情,即是要解决根本问题的地方实施有效地针对性方案。
例如:在对用户输入的html进行过滤时,要先进行语法树分析,而不是粗暴的进行字符过滤,以免造成用户本意想表达的错误,例如用户想表达1<2的意思,但是<被过滤。
4、数据与代码分离原则
这一原则广泛适用于各种由于“注入”而引发的安全场景;像HTML injection、SQL injection、CRLF injection、X-PATH injection均可以根据该原则设计出真正的解决方案。
5、不可预测原则
比如:windows系统设计的对抗缓冲区溢出等内存攻击的功能;使用DEP来保证堆栈不可执行,使用ASLR让进程的栈基址随机变化,从而无法准确地猜测到内存地址,大大提高攻击的门槛。
总结
Secure By Default,是时刻要牢记的总则;
纵深防御,是要更全面、更正确地看待问题;
数据与代码分离,是从漏洞成因上看问题;
不可预测性,是从克服攻击方法的角度看待问题;
安全的本质是信任问题
安全工程师的核心竞争力不在不在于他能拥有多少个0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。
__EOF__

本文链接:https://www.cnblogs.com/lfd-dnbh/p/16990565.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!