黑客101:常见攻击以及如何阻止它们
#安全 #sql #database #hacking

欢迎使用一些常见的黑客策略的基础,概述了它们的工作方式以及可以为防御它们而采取的措施。

Image description
蛮力攻击

最古老的黑客策略之一是蛮力攻击。这涉及黑客测试不同的用户名和密码组合,直到一种起作用。尽管从技术上可以手动完成此操作,但可能的组合数量通常太耗时而无法现实。因此,黑客通常会使用某种形式的软件来随机生成密码,如果尚未使用密码,也可能使用用户名。

对策
从用户的角度来看,防御蛮力攻击的最佳方法是简单地拥有一个难以猜测的密码。大多数密码生成软件将首先尝试更常见的密码,例如“密码”一词的变化,开始或结束时随机数字的常见单词,某些字母的单词替换为相似的数字等,因此更随机您的密码是这样的程序可以迅速猜测的可能性。

如今,大多数组织都采用多种方法,这些方法使蛮力攻击变得困难甚至不可能,例如密码加密算法,两因素识别方法,或在太多失败的登录后几分钟锁定登录页面的访问尝试。

Image description
拒绝服务攻击

这些攻击有两个主要品种:DOS/DDOS攻击和DNS攻击。两者都可以做同样的事情:用这么多虚拟请求淹没目标服务器,无法处理合法的请求,有效地将其脱机。

DOS攻击是最基本的形式:黑客只需从其自己的计算机发送快速射击请求,经常使用程序来简化该过程。此版本可能会减慢服务器的速度,但是只有在网络安全性能够识别攻击之前,他们需要做的就是阻止黑客的IP地址以停止它。更高级的DDOS攻击通过招募了许多具有不同IP地址的“僵尸” PC来解决此问题。这通常是通过将某些形式的恶意软件分配给尽可能多的毫无戒心的设备来完成的,以便黑客可以同时激活它们以进行攻击。

虽然DNS攻击的目标是通过用虚拟请求淹没服务器的目标相同,但其方法却有些不同。这项攻击是通过欺骗DNS服务器来起作用的,这是将Internet域名转换为IP地址的方法,它通过将针对其他服务器的DNS查询重定向到目标服务器。此后,黑客通常会迅速发送旨在为DNS服务器生成大量答复的查询,从而有效地使服务器为他们完成肮脏的工作。尽管该方法还可以利用“僵尸” PC来提高效率,但查询响应比黑客有效发送的代码大得多,这意味着要达到服务器所需的关键质量所需的计算机更少。

对策
尽管很难直接防止这种攻击,但是有几种方法可以使它们降低效果。首先,他们拥有的带宽越多,黑客就越难工作以达到降低服务器所需的临界质量。转向云是一个良好的开端,因为云通常比专用网络具有更多的带宽和更强的安全性。对于DNS攻击,使用域名系统安全扩展程序(DNSSEC)添加了与DNS服务器交互的另一层安全性,以确保没有发生恶意重定向。除了这些选择之外,AL公司还可以做到的是监视其网络流量以证明这些攻击的证据,并为确保迅速响应做出的行动计划。

Image description
注射攻击

这些攻击涉及将网站欺骗到执行他们不打算以关键方式执行现有代码的代码。最常见的形式是针对服务器端代码的SQL注入和XSS攻击,它针对客户端代码。

XSS攻击涉及黑客利用漏洞将其脚本注入网页中的漏洞,后来受害者的浏览器加载该页面时将执行。可以做到这一点是为了窃取数据,安装病毒,在网页中添加网络钓鱼广告等等。例如,他们可能会记录受害者的登录信息,或者将受害者的计算机招募为“僵尸”以进行未来的DDOS攻击。

另一方面,

SQL攻击涉及将数据输入输入框中,以便欺骗SQL查询以执行黑客想要的事情。为了说明其工作原理,我们将使用一个简化的示例,从this YouTube video from channel NetworkChuck

说我们正在登录一个使用数据库存储数据的网站。我们可能会为用户名提供一个输入框,而另一个用于密码。输入这些并单击登录按钮后,系统可能会运行看起来像这样的查询:

SELECT * FROM users WHERE username='userNameInput' AND password='passwordInput'

因此,如果我们将“乔治”作为用户名和“ password123”作为密码,则查询看起来像这样:

SELECT * FROM users WHERE username='George' AND password='password123'

使用此查询,如果用户名和密码都与用户表中的数据都不匹配,则不会返回值,并且登录失败,但是如果有一个用户“乔治”的密码为“ password123”查询会找到它并成功登录。嗯,如果黑客想登录乔治的帐户,但不知道他们的密码怎么办?由于该黑客知道SQL查询是如何运行的以及某些字符如何影响它们,并且在收到输入后,要么知道或可以猜测哪些SQL查询正在运行,因此他们可能会为用户名字段使用以下输入:George'---- - 。现在,运行的查询看起来像这样:

SELECT * FROM users WHERE username='George'-- 'AND password='password123'

那么该查询是怎么回事?好吧,' - '是表示注释的SQL代码;从本质上讲,它的意思是“忽略此线上的所有内容”,这意味着根本没有执行“ and password ='password123'”行,从而允许黑客仅使用用户名登录!而且,自动登录甚至不是黑客使用此功能所做的最糟糕的事情。聪明的黑客可以使用它从数据库中获取所需的任何敏感数据,甚至可以删除关键信息!

对策
幸运的是,有多种方法可以防止这类攻击,尽管并非所有网站都雇用了它们。例如,防火墙可以通过不断修补网站来防止XSS攻击。至于SQL注入攻击,最直接的对策是“消毒”用户输入。本质上,这意味着阻止用户输入影响查询,例如,防止某些字符(例如“例如”)从用户输入中读取,在将用户输入输入查询之前逃脱,甚至构造在此类中执行查询的代码一种阻止用户输入被误解为代码的方法。

Image description

我希望这是黑客可以使用的一些更常见的攻击形式的启发性概述。请记住:使用防火墙/防病毒/防默软件程序,保持您的软件的最新状态,并小心点击!