学习&&转载文章:隐私计算安全基座-数据库安全
用数据生命周期的全链路思考,可以得出如下的结论:
传统的安全是主要保护数据的存储态与传输态的安全,但是隐私计算正是扩展了数据计算态的安全能力,如此三态合一,即可保障数据的全链路的生命周期安全。
常见的数据库攻击手段包括SQL注入、拖库、洗库、撞库等
窃取信息:拖库;对窃取来的信息处理和使用:洗库、撞库
SQL注入就是通过把恶意的SQL命令插入到Web进行表单提交,并且达到欺骗服务器执行恶意的SQL命令的目标。这种情况会发生比较严重的安全问题隐患,造成信息的泄露、篡改与丢失等风险。
以下实例中,输入的用户名必须为字母、数字及下划线的组合,且用户名长度为 8 到 18 个字符之间:
if (preg_match("/^\w{8,18}$/", $_GET['username'], $matches))
{
$result = mysqli_query($conn, "SELECT * FROM users
WHERE username=$matches[0]");
}
else
{
echo "username 输入异常";
}
在没有过滤特殊字符的情况下,出现的恶意的SQL情况:
// 设定$name 中插入了恶意的SQL语句
$name = "Alice'; DELETE FROM users;";
mysqli_query($conn, "SELECT * FROM users WHERE username='{$name}'");
以上代码语句中,我们没有针对变量username进行过滤与限制,所以可以在变量username中插入了恶意的SQL语句,后果是将删除users表中的所有数据。
所以我们对这些用户的数据需要进行严格的验证。我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行严格的判别处理。
如何预防?
拖库就是指黑客通过各种手段,非法获取据库中的敏感信息,由于这些信息一般包含敏感信息,例如用户名、密码、姓名、证件、电子邮箱、电话、住址、金融信息等,一旦泄露将造成非常大的损失。
那么拖库是怎么做的呢?主要分为下面的三部曲:
综述整个过程通过扫描探查获取系统方面的漏洞,进而获取系统权限,进而打通一个数据传输的非法通路,进而获取数据。在黑客完成拖库以后,就要干大事了,下一步操作叫做“洗库”。
黑客在完成拖库以后,将会取得大量的用户数据,然后黑客会通过一系列的技术手段,并且结合黑色产业链将有价值的用户数据进行变现,这个步骤称作“洗库”。
综述整个过程通过拖库获取的庞大的数据,对于数据进行层级划分,针对各种不同价值的数据进行分别处理,非法获取价值。那么数据经历了拖库、洗库,接下来,还有剩余价值,这就是“撞库”。
在经历了上面的洗库环节,黑客已经获取了直接的收益,那么是否还有其他的剩余价值可以获利呢?
由于互联网绝大多数的用户在不同网站使用的是相同的帐号密码的习惯,所以黑客可以通过获取的在A网站的用户账户信息尝试登录B网址,这就可以理解为撞库攻击。
具体手段:撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试遍历并且批量登陆其他网站,得到一系列可以登录的用户,进行获取更多的网站的用户信息。