WEB安全之威胁解析

本文章转载自 http://www.xuebuyuan.com/60198.html

主要威胁:

暴力攻击(brute-force attack):这些攻击通过尝试所有可能的字符组合,以发现用户证书。首先尝试使用字典单词、常用密码或可预测的字符组合,优化暴力攻击。

账户劫持(account hijacking):这种威胁包括接管合法用户的账户,有时甚至会拒绝合法用户访问自己的账户。

社会工程(social engineering):这是使用软技巧(而不是软件和硬件技术获得敏感信息(例如:密码)的过程,这些信息可用于影响系统的安全性。

垃圾邮件(spamming):我们都很熟悉这种威胁。它是将大量无用电子邮件发送给用户或Web站点,从而堵塞因特网,有时甚至会引起服务器崩溃。

1.2 建立用户证书

1.2.1 实施强密码

小结:使用技术性方法和策略来确保强用户密码。

威胁:暴力攻击、账户劫持

可靠密码策略:

  • 实施最小长度为8位字符的密码
  • 不限制密码的最大长度
  • 需要多种字符集,包括小写字母、大写字母、数字和标点符号
  • 允许用户在他们的密码中使用任意键盘字符,包括空格
  • 不允许字典单词
  • 不允许密码中出现用户名

攻击工具:

http://neworder.box.sk/codebox.links.php?key=wwwcrks

http://www.securityfocus.com/tools/1127

字典:

http://www.gattinger.org/wordlists/download.html

http://neworder.box.sk/codebox.links.php?key=passdict

1.2.2 避免使用易于猜测的证书

小结:易于猜测的用户名和密码将使用账户容易受到攻击

威胁:暴力攻击、账户猜测、账号劫持

安全策略:

  • 不允许客服人员为客户选择密码
  • 如果随机生成密码,则该密码不要遵循可预测的模式或基于用户名
  • 绝对不要在任何系统上使用默认密码
  • 不要使用可预测的或连续的用户账户名      
  • 不要为管理账户使用明显的名称        

禁止使用听起来“官方化”的名字(如:administrator,support,root,postmaster,abuse,webmaster,security等

1.2.3 防止证书获取

小结:证书获取将用户暴露在各种攻击之下

威胁:暴力攻击、社会工程、垃圾邮件

安全策略:        

  • 绝对不要使用电子邮件地址作为用户名,并且避免在其他地方显示用户的电子邮件地址Ø        
  • 避免使用公有的用户目录和白页        
  • 允许用户在需要时改变他们的用户名        
  • 允许用户将一个或多个公有别名赋给他们的账户        
  • 允许探测暴力攻击或获取攻击
  • 1.2.4 限制空闲的账户

    小结:空闲的账户更容易成为电脑黑客的目标

    威胁:账户劫持

    安全策略:

    若账户长时间空闲,应该对其进行控制,这需要一个类似于密码检索过程的重新激活过程

    避免将任何表明某个账户是空闲的信息提供给其他人

    在改变任何账户信息,或者执行重要事务后,通过电子邮件、信件或其他方式通知用户,以防该动作不是同用户本人完成的

    使用反欺骗技术,例如:监控殿堂的账户活动

    不要自动地为使用离线账户的客户激活在线账户访问

    1.3 管理密码

    1.3.1 存储密码

    小结:对于应用程序和其他人来说,存储在数据库中的密码是一种危险

    威胁:账户劫持、潜在的可能性

    安全策略:

    绝对不要在普通文本中存储密码,也不要使用可逆加密方法

    使用强哈希算法,例如MD5、SHA-1,SHA256或SHA512

    1.3.2 密码时效和历史记录

    小结:旧密码或重用的密码将给攻击者提供更多的机会

    威胁:暴力攻击、账户劫持

    安全策略:

    设置适合于应用程序和用户的最长密码时效

    保持最近密码列表,以防止密码重用

    如果可能,实施密码重新设置之间的最短时间间隔

    1.3.3 改变密码

    小结:简化并鼓励用户定期改变密码

    威胁:暴力攻击、账户劫持

    安全策略:

    总是允许用户自己改变密码

    用户可以直观并简单地改变密码

    提醒或强迫用户定期改变密码

    需要知道原有的密码才能改变新密码

    需要用户输入两次新密码,以确保准确性

    通过电子邮件或其他通信方式确认账户改变

    改变密码后,终止所有活动的会话,并且要求验证

    1.4 重新设置丢失或被贵忘的密码

    1.4.1 重新设置密码

    小结:按照精心计划的过程重新设置被丢失或遗忘的密码

    威胁:暴力攻击、账户劫持

    安全策略:

    将重新设置密码作为安全事件对待,记录客户端的IP地址,并且采取其他实际的安全措施

    绝对不要找回用户的密码;只允许用户设置新密码

    绝对不要使用密码提示来提醒用户实际密码

    通过回答安全问题或提供与账户相关的信息,请求用户表明对该账户的了解程序。绝对不允许匿名重新设置密码

    发送给用户一封电子邮件,确认重新设置密码,提供一个安全链接以完成该过程

    如果可行的话,清除任何使用账户存储的敏感信息,例如:信用卡号

    在重新设置密码后终止所有现有的会话

    1.4.2 通过电子邮件发送信息

    小结:电子邮件是不安全的,不应该使用它传送敏感信息

    威胁:敏感信息泄漏、账户劫持、用户隐私

    安全策略:

    绝对不要通过电子邮件发送敏感信息,例如:用户证书或信用卡信息

    绝对不要只依赖电子邮件来验证用户的身份

    不要使用电子邮件来保存包含敏感信息的Web表单提交结果

    如果可能的话,数字化签名或加密电子邮件通信

    1.4.3 分配临时密码

    小结:除非强迫执行,否则用户不会改变临时密码

    威胁:账户劫持、密码猜测

    安全策略:

    避免允许客服代表设置临时密码
    如果必须使用临时密码,则使用强随机密码生成器

    如果必须使用临时密码,则提供很短的过期日期,或者将密码设置为已经过期

    1.4.4 使用秘密问题

    小结:秘密问题并不是密码的代替品

    威胁:敏感信息泄漏、账户劫持、用户隐私

    比较好的秘密问题示例:

    a)
    第一个男朋友或女朋友的姓名是什么?

    b)
    在童年时代,印象最深的电话号码是哪一个?

    c)
    在孩童年代,最喜欢去的地方是哪儿?

    d)
    喜爱的演员、音乐家和艺术家分别是谁?

    安全策略:

    秘密问题自身并不安全,绝对不应该等同于密码进行使用

    允许用户在需要的时候改变秘密问题和答案

    检测对秘密问题的暴力攻击

    1.5 授权用户

    1.5.1教育用户

    小结:用户必须知道如何保护他们的账户

    威胁:账户劫持、社会工程、身份窃取

    安全策略:

    通过各种媒体,教育用户使用Web应用程序时所涉及的各种安全风险

    如果可能的话,给用户提供一个论坛来讨论安全问题
    绝对不要发送给用户的电子邮件中提供链接或表单,要求他们登录到账户

    1.5.2 让用户置身其中

    小结:让用户参与安全性防护将提高用户对安全性的理解,并且有助于限制各种攻击

    威胁:账户劫持、社会工程

    安全策略:

    允许用户访问安全事务和事件的历史记录

    提供给用户一种清楚并简单的方法来报告安全事故,并且要求他们报告任何可疑事件
    如果可能的话,给用户提供一个论坛来讨论安全问题和事故
    允许需要使用高级安全安全选项的用户访问这些选项
    给用户提供一种方法来废除他们不再希望使用的账户

时间: 2024-08-09 02:20:46

WEB安全之威胁解析的相关文章

C++请求web service与xml解析

1. C++解析XML的开源库 在项目中XML的解析使用的是开源的第三方库,TinyXML:这个解析库的模型通过XML文件,然后再内存中生成DOM模型,从而让我们可以很方便的遍历这颗XML树. DOM模型即文档对象模型,是将整个文档分成多个元素(如:书.章.节.段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系.先看一下TinyXML中的主要类和XML文档之间的对应关系,下图是TinyXML中主要class的类图,反应各个类之间的静态关系. TiXmlBase是所有类的基类,TiX

C# WEB.API 接收并解析保存base64格式的图片

using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Runtime.Serialization.Formatters.Binary; using System.Web; using System.Web.Http; namespac

web.xml加载顺序与web.xml常用节点解析

web.xml加载顺序 应用服务器启动时web.xml加载过程,至于这些节点在xml文件中的前后顺序没有关系,不过有些应用服务器,我曾碰到过的 websphere就严格要求web.xml的节点顺序,否则部署不成功,所以还是赞成按照web.xml标准格式写 总的来说, web.xml 的加载顺序是:context-param --> listener --> filter --> servlet 其中, 如果 web.xml 中出现了相同的节点, 则是按照在配置文件中出现的先后顺序来加载的

黑客攻防技术宝典web实战篇:解析应用程序习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当解析一个应用程序时,会遇到以下 URL:https://wahh-app.com/CookieAuth.dll?GetLogon?curl=Z2Fdefault.aspx据此可以推论出服务器使用何种技术?该技术的运作方式可能是怎样的? 文件名 CookieAuth.dll 说明应用程序正使用 Microsoft ISA Server.这是登录功能的 URL,成功登录后,应用程序将重定向

【Web基础】XML解析工具比较

DOM解析: 一次全部读入内存,随意存放修改,读取任何部分,次数无限制,异于开发,系统为开发者自动建立DOM树,XML对象模型由系统自动提供.缺点:需要一次读入内存,受文件大小限制,耗内存. SAX解析: 优点:顺序读入一部分进内存,不会一次加载,不受文件限制,由于部分读取.缺点:只能对文件按顺序读取解析,不能随机存取,不能修改,开发复杂,用户需自己定义时间处理.但开发比较灵活,可以用SAX建立自己的XML对象模型. JDOM:综合DOM解析和SAX解析的优点. DOM4J:强大,Hiberna

web service json 数组解析

?? boolean workexpMark = true; // 美发师工作经历json数组解析 org.json.JSONObject jsonObject = new org.json.JSONObject( workExperience); String array = jsonObject.getString("workExperence"); org.json.JSONArray jsonArray = new org.json.JSONArray(array); int

第三节:Web爬虫之BeautifulSoup解析库

Beautiful Soup官方说明: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序. Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码.你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了.然后,你仅仅需要说明一下原始编码方

web开发技术点解析

一.控件篇 1.radio控件 在创建单选控件时,要做到多个radio有单选功能,必须把多个radio的name属性值设置为相同的,否则,多个radio之间是没有联系的. 二.样式篇 1.获取图片中的部分图片 background: transparent url(tupian.gif) 0px -50px no-repeat; 2.外边线式样 outline-style:solid;outline-color:#CDE6FE; 3.横向显示 display:inline; 4.设置圆角 bor

死磕Tomcat7源码之一:解析web.xml

熟悉java web开发的同学都清楚,tomcat作为一款非常流行的servlet容器,开源,流行,配置简单,不需要赘述.个人认为,web.xml作为webapp的入口,弄清楚该文件的底层解析过程,进而可以窥探tomcat的底层工作机制,搞明白tomcat对servlert规范的实现机理. 通过本文,可以知道以下部分内容 webapp部署3种部署方式 webapp web.xml解析流程 webapp Context对象信息的生成(不包括对象的生成) 总体来说,webapp部署有三种方式:XML