APP下载

网络登录接口安全攻防模式研究

2021-03-04魏兵海

电脑知识与技术 2021年34期

魏兵海

摘要:网络登录接口安全攻防是最为常见的网络安全类问题。该文重点探讨了登录接口暴力破解与字典破解攻防、登录接口中間人拦截抓包攻击攻防、登录接口重播攻击攻防、登录接口SQL注入攻击攻防以及登录接口框架注入攻击攻防等五种策略模式,对其攻击原理和多种防御方式进行了细致研讨,供相关技术人员参考,以不断促进网络登录安全水平的提高。

关键词:登录接口;安全攻防;策略模式

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2021)34-0059-03

网络登录接口是用户登录进入网络的第一道门户。在网络安全攻防对抗中,用户名/密码视角的网络登录接口攻守通常是一个重要的前沿节点。接口的安全处理尤为重要[1]。但在网络系统设计开发过程中,往往更多考虑的是页面显示、数据库连接调用等应用功能的逻辑实现,安全设计往往是最容易在有意无意中被忽视甚至被直接无视。

网络登录接口安全不应该仅仅只是简单的用户名/密码设置防护,还应该有其他附加模块的补充防护和强化防护[2]。为强化网络登录接口安全,本研究重点探讨一些常用的网络登录接口安全设计攻防策略和模式,包括:暴力破解与字典破解、中间人拦截抓包攻击、登录接口重播攻击、登录接口SQL注入攻击以及框架注入攻击等攻防策略模式。

1 登录接口暴力破解与字典破解攻防模式

暴力破解是使用自动软件程序遍历试错,穷尽所有用户名/密码排列组合的网络安全攻击模式,字典破解则是暴力破解的缩减版,即使用已知可能的字符/数字(如姓名/身份证号码/出生年月日/吉祥数字8-6等)等构建字典,再使用自动软件程序遍历试错字典内所有字符/数字等排列组合的网络安全攻击模式,通过遍历穷举获取密码等信息。暴力破解与字典破解是登录接口攻击常用的两种攻击模式[3]。

为了防御这种遍历穷尽类型的粗放攻击模式,阻止自动软件程序的无限试错次数是一种有效的解决方法。常用的策略模式列举如下:

登录次数限制模式:硬性质模式的登录次数限制即是在登录错误达到限定的次数(如5次/3次/6次等)之后,阻止该用户其后的登录尝试,或者,一段时间之后再恢复该用户的登录尝试权限。但如此设定的防御模式容易引发攻击者成功的饱和攻击,即攻击自动程序遍历尝试所有用户的限定次数攻击,引发所有用户的登录被阻止。此后,改进了这类限定次数失败后的用户登录阻止防御模式,变成为限定次数失败后的用户IP地址阻止防御模式,即攻击者多次登录失败,达到限定次数后,对登录IP地址的再登录实施阻入,防止同一攻击者尝试不同用户名/密码的无数次试错。如此,有效防止了特定IP的自动程序遍历饱和攻击。

验证码核检校验模式:验证码是一种完全的公共全自动程序,验证码核检校验模式能够有效测试出尝试登录者是计算机自动程序还是人类,从而阻止自动程序模式的遍历试错。比如网站登录设计时,在输入用户名/密码之后,还要求输入验证码—滑动滑块、选点图片、填写数字运算结果等,以阻止可能的计算机自动程序遍历试错。或者,在用户名/密码输入错误一定次数(如5次/3次/6次等)之后,再要求输入验证码,在实现阻止计算机自动程序遍历试错意图的同时,减少用户登录使用时的繁难,即用户一定次数的登录尝试仍未成功时,开始繁难的验证码核检校验,校验失败,则阻止之后的登录尝试,也可在一定时间之后恢复用户的登录尝试。

身份证校验模式:在银行、保险等金融网络系统,劳保、医疗卫生等民生保障系统中,考虑到姓名和身份证号码的互验证对应性以及身份证号码的非随意自动生成的特定设计,在用户名/密码登录要求之后,还增加身份证号码填报要求,从而阻止计算机自动程序模式的遍历试错。

手机短信校验模式:考虑智能手机实名制政策规定,特定手机号码绑定特定实体使用人。向特定手机号发送一个校验码,填写正确校验码方能登录通行,不失为一种遍历尝试试错攻击的防御策略。

扫码登录模式:替代用户名/密码登录模式,通过使用可信任安全授信的微信扫码、QQ扫码方式验证用户身份,核实成功后通过登录,即未取得信任的非授信用户登录网络时,通过微信扫码、QQ扫码等可信任安全授信信息转移验证方式登录。扫码登录的“一键登录”模式比传统的用户名/密码手工字符键入模式操作更简便,安全性更高,一定程度上解决了传统的用户名/密码登录模式存在的弱强度风险、撞库风险和钓鱼风险。

上述多种攻击防御模式,根据实际应用场景需求,可单重模式使用,也可以多重复合模式使用。

2 登录接口中间人拦截抓包攻防模式

中间人拦截抓包攻击即是在登录接口前端向服务器后端传送“用户名/密码”信息包过程中,第三方特定攻击程序通过嗅探扫描、中途拦截获取“用户名/密码”信息包,开包获得“用户名/密码”信息。

为了防御这种中间人拦截抓包攻击模式,“https加密传输” “时间戳+密码+md5”是两种常用的有效解决方法。具体策略模式列举如下:

https加密传输:http是网络上最开始使用至今也是最为广泛普遍使用的传输协议,采用明文未加密方式传输内容信息包,中途被截获后,内容容易被直接解读获取[4]。https则是http的后来进阶版本,即HTTP +SSL,SSL为安全套接层协议,采用“加密传输+身份认证”方式提升安全强度。在https加密传输模式中,即使传输内容信息包被中间人中途截获,其内容因加密而一般难以解读。在现代银行、保险、社保、医疗等金融支付以及电子邮箱等保密要求较高的场景中,https加密传输模式应用较多。

“时间戳+密码+md5”防御模式:在普通加密传输模式中,即使“用户名/密码”信息包被加密,但有时中途被截获后,攻击方可以通过一定手段反编译解密,密码内容同样也能被获取,针对于此,通过时间戳验证加md5加密手段使用签名算法阻止反编译解密[5],达成较https加密传输模式更为高安全强度的“用户名/密码”信息包传输,阻止中间人拦截抓包解密。

3 登录接口重播攻击攻防模式

传输信息被加密,中途窃听截获的信息数据包难以破译解密。但攻击者能够采取将不解密信息数据原包截获后重新发送到特定地址如原接收端、原发送端或其他地址等方式,完成特定攻击目的。如截获加密原包多次重放重播发送到原接收端造成原接收端产生重复支付、重复取款、重复订购等重复反应动作;截获发送端用户名/密码加密原包,原封不动存储留用,其后随时可用原包发送接收端实施冒充登录;多次甚至不限次发送截获的加密原包到接收端,类似饱和攻击,造成接收端处理任务过重瘫痪等等。

为防御重播攻击,阻断重播重放发生的链环,是有效的解决方式。

加随机码模式:在加密信息如密码后每次拼接一个不同随机数即盐值,接收端另外途径接受储存随机数盐值,与原储存的加密信息如密码拼接,作为验证核验包,攻击方截获拼接包,难以对应上随机数盐值包,重播攻击难以实施。

加时间戳同步时间模式:在发送端和接收端互送的加密信息包上增盖时间戳,送收双方通过加密包附载的时间戳进行时间同步来验证和核验真假,从而阻断重播攻击。

加流水号模式:在发送端和接收端互送的加密信息包上增添流水号,通过核验流水号报文连续与否、加插与否来审查真假,从而防范重播攻击。

口令鉴别模式:在传送/接收加密信息时,使用不同的一次性口令认证实施真假鉴别,从而有效阻止重播攻击。

4 登录接口SQL注入攻击攻防模式

SQL注入攻击模式是在登录框或Web表单等中,输入包含SQL语法特定组合的恶意指令的混合内容,欺骗或绕过服务器检查,从而引发SQL语句执行即产生攻击。混插有SQL命令的内容在输入后,实施各种恶意目的的操作[6]。如:绕过登录核查潜入内部,更改某些特定动作实现攻击目的,提权控制实施特定操作,或盗取修改删除数据库敏感数据信息达成攻击目标。

混插入内容的SQL命令是SQL注入攻击的核心,作为防御手段,重点考虑SQL命令注入和SQL命令动作的阻止。

预编译语句集模式:预编译语句集是最常用的简易有效防御手段。预编译语句集模式通过预置在语句执行前期将输入符串作为数据过滤处置,混插进入的SQL命令不被解析从而不被启动以达到阻止攻击的目标。

正则表达式过滤模式:通过正则表达式命令过滤混插输入的SQL参数等,如检测过滤SQL命令元字符,达到阻止SQL命令完整进入的目的,从而防御SQL注入攻击。还有很多其他方式的输入过滤模式,如特定字符串过滤、非法字符过滤等,都是较为有效的SQL注入攻击防御模式。

5 登录接口框架注入攻击攻防模式

“框架”是包含多个“窗口”的对象,在“框架”创新推出以前,一个网站网页中只会有一个窗口处理对象,“框架”出现和应用之后,一个网站网页中嵌入一个“框架”,可能会包含多个窗口处理对象,一个框架中的动作如链接点击能够触发其他框架中的元素。

由于框架属性中的导航功能,框架重定向能够使框架网页重定向转向任何其他另外不同的网址,这一网址可能是攻击者事先设置的钓鱼网站或其他恶意功能网站,用户点击框架元素不知不觉中进入陷阱网址,输入用户名、账号、密码、身份证号、银行账号、银行存取款密码等等敏感隐私信息,被攻击者猎取。另外一种攻击方式Frame Hijacking是注入网站网页,将其重定向到其他不同的网址URL,通过该URL能够初始化改变网站网页顶部的导航栏等。

敏感特殊字符过滤模式:攻击者框架注入的关键元素之一是 frame 或 iframe 标记,该标记含有:& 并符号、 \反斜杠符号、()括号、<>(尖括号)、@符号、 %百分比符号、$美元符号等敏感特殊字符,在框架输入中过滤掉这些敏感特殊字符,能够有效阻止框架注入攻击。

综上,网络登录接口安全攻击方式较多,上面给出了一些对应的防御模式,但,总而言之,本文限于篇幅,不能穷尽所有,还有一些综合实用的防御模式也比较有效。比如:登录口强制规定用户设置高强度用户名和密码,即用户名和密碼必须包含数字、特殊符号、大小写字母等多种类字符并长度较长,增加攻击者破解成本和难度,这是常用的防御措施之一。此外,加强Web日志记录分析查验频次,强化异常捕获,及时发现攻击痕迹,有针对性地采取防火墙、卫士防护软件设置阻止屏蔽,也是常用的防御措施之一。登录IP地址限制、采用一次一密动态密码、Cookie即时清理、智能生物识别如面部识别、指纹识别等措施防御效果也很明显。

6 结束语

网络登录比如网站登录、Web表单提交等是最常见的网络进入初始动作,登录接口安全与否关乎网络系统整体安全,登录接口的安全是相关软件开发和软件验收安全检测中的重要考量内容。本文针对登录接口攻防的几种主要模式的主要策略进行了探讨和研究。但随着网络技术的飞速进步和快速发展,新架构新工具日新月异,更多模式的登录攻防手段不断涌现。在软件开发、网络使用以及渗透检测过程中,充分考虑登录攻防的多样性、复杂性和多变性,不断跟踪采用最先进的攻击防御技术和攻击防御手段,将有利于我们不断促进网络登录安全强度的提高。

参考文献:

[1] 崔喜萌,陈明.软件开发开放API接口的安全处理[J].网络安全技术与应用,2020(4):80-81.

[2] 王亚辉.软件开发过程中的信息安全管理[J].信息系统工程,2019(9):70.

[3] 赵莉,刘潇谊.Web安全登录方案研究[J].电脑编程技巧与维护,2016(1):36-38,52.

[4] 韦立蓉.网站建设中的网页设计安全问题探讨[J].电脑知识与技术,2017,13(29):31-32.

[5] 丁兆锟,林思成.Windows系统下微软帐户登录的绕密方法[J].电子技术,2021,50(4):38-39.

[6] 王云,郭外萍,陈承欢.Web项目中的SQL注入问题研究与防范方法[J].计算机工程与设计,2010,31(5):976-978,1016.

【通联编辑:代影】