会话管理不善
在某些Web应用程序中,会发行会话ID(用于识别用户的信息),并进行会话管理。如果会话ID的发行和管理存在缺陷,恶意人员可能会非法获取登录中用户的会话ID,伪装成该用户进行访问。这种利用问题的攻击方法被称为“会话劫持”。
此外,除了猜测和窃取之外,还有一种针对会话管理缺陷的攻击方法,称为“会话ID固定化(Session Fixation)”。恶意人员会事先准备会话ID,通过某种方法将其发送给用户。用户在不知情的情况下输入密码等登录,可能会导致这个问题。如果恶意人员成功进行这种攻击,他们可以使用事先准备好的会话ID,冒充用户访问网站。
可能发生的威胁
如果针对会话管理缺陷的攻击成功,攻击者可能会冒充用户,非法执行用户本人被授权的操作。具体来说,可能会发生以下威胁:
-
仅登录用户可使用的服务的滥用
- 非法转账、用户无意的商品购买、用户无意的退会处理等
-
仅登录用户可编辑的信息的篡改、新增注册
- 各种设置的非法更改(管理员界面、密码等)、在论坛上发布不当内容等
-
仅登录用户可查看的信息的查看
- 非法查看非公开个人信息、非法查看Web邮件、非法查看社区会员专用论坛等
需要注意的网站特征
无论运营主体或网站的性质如何,都需要关注具有登录功能的网站。对于在登录后进行支付处理等重要操作的网站,由于攻击造成的损失较大,需要特别注意。
-
涉及金钱处理的网站
- 网上银行、网上证券、购物、拍卖等
-
处理非公开信息的网站
- 求职网站、社区网站、Web邮件等
-
其他具有登录功能的网站
- 管理员界面、会员专用网站、日记网站等
根本解决方法
使会话ID难以预测
如果会话ID是基于时间信息等简单算法生成的,那么它的值很容易被第三方预测。如果恶意人员可以预测到用户登录时发行的会话ID的值,他们就可以使用该会话ID冒充用户访问本来只有用户才能访问的网站等。请使用加密伪随机数生成器等算法生成难以预测的会话ID。
使用提供会话管理功能的Web应用程序服务器产品时,只要使用该产品提供的会话管理功能,就不需要自己生成会话ID。建议使用这些Web应用程序产品,而不是自己构建会话管理功能。