web应用安全入门

 

最近学了点web安全的东西,作为笔记记录一下。

 

1)关于web应用安全,最好的是一个网站OWASP ,开放web应用安全项目。

     这上面货色很多,大家可以尽情享用。我以前也总是想知道XSS,CSRF,SQL injection具体的攻击过程是怎样的的,WebGoat 提供了一个演示项目,里面有30几种常见的攻击演示。

     强烈建议大家去试试看。

 

2)攻击方式分类:

    a. 直接的方式。修改进程指令,等于修改内存地址。关于悬挂指针,黑客可以用撞大运的方式,将恶意代码地址写满内存,撞上悬挂指针就赚了。

  • 任意四字节内容写到任意地址,这种无悬念的控制整个过程。
  • 任意四字节内容写到特殊地址,Stack overflow,heap overflow
  • 受限制的四字节写到任意的地址,可以找个memcpy(),在长度检查后,执行前,把len给替换了。
  • 受限制的四字节写到受限制的地址,这个就看运气了。        

    b. 间接的方式。通过提供不同的参数和环境,让程序按自己预想的方式执行。

  • SQL Injection
  • XSS
  • CSRF
  • Directory traversal
  • HTTP header Injection
  • HTTP response splitting

3) 本质原因

    a. 冯诺依曼体系结构的原因,数据和代码是不做区分的,这是缓冲区溢出的根本原因。

    b. 对同一数据流的处理方式不同,如何应对用户的输入。非法输入会对系统造成损害,一个正常的数据递送过程,经过浏览器,web服务器,应用服务器,数据库服务器。举例:

  • 浏览器认为合法的,可能对web服务器造成伤害,比如%bf字符。
  • 浏览器认为合法的,web服务器也认为合法的,应用服务器也认为合法的,但对数据库服务器造成伤害,比如SQL Injection。

       扩展开去,就是数据流经的各部分存在信任边界:

  • 层与层之间存在信任边界。
  • 功能组件之间存在信任边界。
  • 用户与系统之间存在信任边界。
  • 用户与用户之间存在信任边界。

4)威胁模型(STRIDE)

     a. S poofing.伪装,冒充他人身份,属认证范畴。

     b. T ampering. 篡改,修改数据或代码,属完整性范畴。

     c. R epudiation. 抵赖,否认做过的事情,属不可抵赖范畴。

     d. I nformation Disclosure. 信息泄露,属机密性范畴。

     e. D enial of Service. 拒绝服务,属可用性范畴。

     f.  E levation  of Privilege. 未经授权的许可,属授权范畴。    

 

5)一点思考

    以前听说QFD,叫质量功能展开,我想,可不可以借鉴这个概念,对安全也这样分析和展开,我初步做了一下分类:

   a. 影响开发的。非法输入,SQL Injection,XSS。

   b. 影响运维的。

   c. 影响客服的。钓鱼

   d. 影响UI的。XSS,CSRF,CSS,Javascript。    

   e. 影响管理的。专岗专职。

   f.  影响决策的。

 

   互联网,充满诱惑和邪恶,行走其中确实要小心,切记,切记!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值