越界攻击——来自MSSQL的无域之敌(无域控 mssql)
在最近的一次安全需求分析中,百度的安全团队发现MSSQL数据库运行的地方存在一种极端危险的类型的越界攻击,这种无域之敌极有可能在没有被发现的情况下对MSSQL系统进行攻击,进而给MSSQL系统带来极大的安全隐患。
所谓“越界攻击”,指的是一种可能在程序运行时绕过容错性检查机制而导致系统缓冲区中的有效数据被改变或覆盖的安全风险。由于MSSQL数据库很容易受到这种越界攻击的影响,它们存在着极大的安全隐患。
关于MSSQL的越界攻击,百度安全团队专门提出了以下解决方案:
1. 实施“内存检索”安全功能,可以防止越界攻击导致有效数据被覆盖掉。
2. 对来自网络的恶意攻击进行反向追踪。
3. 对数据库安全加固措施进行及时更新,在系统安装完毕之后,经常对系统进行更新,避免出现新的漏洞。
4. 充分考虑安全性,将安全放在系统设计的第一位,避免出现越界攻击的情况。
另外,还应该采用以下的代码保护,来预防MSSQL的越界攻击:
// 检测输入是否正确
if (!InputVerification(userInput)) ThrowNewException("输入不正确");
// 定义缓冲区char buf[BUF_SIZE];
// 检查输入的长度if (userInput.Length() >= BUF_SIZE)
ThrowNewException("输入过长");
// 将输入字符串拷贝到缓冲区strcpy_s(buf, BUF_SIZE, userInput.c_str());
// 预处理缓冲区中的数据processBuffer(buf);
// 将缓冲区中的数据存储到MSSQL中saveBufferToMSSQL(buf);
通过上述措施实施越界攻击的预防,可以有效防止MSSQL系统受到攻击。百度提醒大家,在系统开发过程中,始终把安全放在第一位,以防止出现轻则数据被篡改,重则系统被入侵等安全问题。