exp  ===  exploit     漏洞利用代码

中国 黑客发展的 几个阶段  启蒙时代  ,黄金时代 ,黑暗时代

启蒙时代  -- 大致在 20世纪 19年代 中国互联网刚起步  一些青年收外国黑客技术影响 开始研究安全漏洞  大多都是个人爱好

黄金时代 --   这个时代是以中美黑客大战为便签  黑客这个特殊的群体引起了光大人民的关注 吸引了无数的青少年走上了这题路

黑暗时代   --  一直延续到今天 为了利息 倒卖信息  黑客间缺乏信任  再也没有了资源共享

黑客技术的发展过程

早期   目标软件系统居多  因为这个时期的web技术还没发展起来 不够成熟 另一方面通过系统软件漏洞往往能获得很高的权限  这段时期 涌现了很多经典的exploit

早期  web网站 不是 多数 还是以ftp pop3 smtp 这些服务占多数  还有攻击web网站往往获得权限非常小 没有直接攻击系统软件带劲

紧接着  以防火墙技术的兴起改变互联网的格局

最终web服务开始兴起 成为了互联网的主流

web安全的兴起

web安全 有分几个阶段

web1.0时代  关注的更多是服务器端动态脚本的安全问题

sql注入的出现  最早出现在1999年 并很快的成为web安全的头号大敌

xss(跨站脚本攻击)重要性很sql注入差不多 2003年引起注意

web2.0时代的兴起  xss csrf等攻击变得更加强大  。web攻击也从服务器端撞到了客户端 转向了浏览器和用户

同时 也新兴了很多脚本语言  如python ruby nodejs等

手机技术 ,移动互联网的兴起 也给html带来了新的机遇和挑战

安全的三要素  简称 CIA

机密性(Confidentiality)  完整性 (Integrity) 可用性 (Availability)

机密性 要求保护数据内容 不能泄露 加密的实现机密性要求的常见手段

完整性 要求保护数据内容的完整,没有被窜开。常见的保证一致性的技术手段是数字签名

可用性 要求保护资源的“随需而得”

拒绝是服务攻击  简称DOS(Denial of service)

威胁分析

在进行 威胁分析时,要尽可能地不遗漏威胁

风险分析

风险的组成:Risk = Probability * Damage Potential

影响风险高低的因素,除了造成损失的大小外 ,还需要考虑到发生的可能性

DREAD   D(Damage Potentiql)R(Reproducibility)E(Exploitability)A(Affected users)D(Discoverability)

在DREAD模型中,每一个因素可以分成高中低三个等级

Secure By Default 原理

缺省安全

白名单 和 黑名单

最小权限原则

Secure By Default  另一层含义 就是“最小权限原则”

给普通用户普通权限 没必要给过高的的权限 这样普通用户窃取和管理员被窃取有很大区别的

纵深防御原则

与Secure By Default 一样,Defense in Depth(纵深防御)也试设计安全方案时的重要指导思想

纵深防御 在不同层面 不同方面施舍不同的安全方案 避免出现疏漏 不同方案之间进行相互配合 构成一个整体

也就是在正确的地方做正确的事

数据与代码分离原则

缓冲区溢出 可以认为是程序违背了这一原则的后果

程序在栈或者栈中讲用户数据当作代码执行 混淆了代码与数据的边界 从而导致安全问题的发生

根据数据与代码分离原则  在用户可操作的地方实施过滤。编码等手段 把可能造成和数据和用户输出的内容进行混淆做处理

不可预测原则  (Unpredictable)

原理 : 克服攻击方法的角度看问题

ASLR 原理 让进程中的栈基址随机变化 从而使攻击程序无法准确的判断到内存地址 大大提高了攻击的门槛  即使无法修复code 但是可以让她攻击无效

在ASLR的控制下 一个程序每次启动时,其进程的栈基址都不相同,具有一定的随机值,对于攻击者来说这就是 “不可预测性‘

安全是一门朴素的学问,也是一种平衡的艺术

最新文章

  1. ios 关于文件操作 获取 文件大小
  2. [python]decimal常用操作和需要注意的地方
  3. Java迭代 : Iterator和Iterable接口
  4. 1. 星际争霸之php面向对象(一)
  5. 【leetcode❤python】Binary Watch
  6. DD_belatedPNG,IE6下PNG透明解决方案
  7. 还在用ListView?
  8. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--Schema模式
  9. javascript中对象的不同创建方法
  10. js几种基本数据类型及之间转换与java的不同、js数组一些常见操作
  11. token 入门教程
  12. Struts2的整体回顾(Action, 拦截器, 值栈, OGNL表示式, ModelDriven)
  13. Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)
  14. docker常用指令01
  15. Django的模板语言
  16. Docker安装Tomcat镜像并部署web项目
  17. Win10系列:JavaScript综合实例2
  18. Unity 代码编译成dll 更新dll实现热更代码
  19. C51中的关键字和ANSIC标准关键字
  20. scala中json与对象的转换

热门文章

  1. ThinkPHP5 清除runtime缓存文件
  2. Vue.js实战学习笔记(中)
  3. ['1', '2', '3'].map(parseInt) what & why ?
  4. Java 学习笔记之 线程interrupt方法
  5. 虚拟机桥接模式下将虚拟IP设为静态IP
  6. javascript input只输入数字和字母
  7. vue 页面滚动到原位置
  8. 1.7.3.1版本ride乱码的解决方法
  9. Arduino学习笔记⑦ EEPROM断电保存数据
  10. QButtonGroup 的使用