天天看点

Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)

一、口令攻击(Password attacks)

1.口令攻击

密码是当今绝大多数系统的安全保障。这种经过时间考验的方法确实为许多目的提供了足够的安全性,但它也有很多缺点。攻击者可以发动攻击,目标在破解存储在系统文件中的密码。许多攻击使用这种方法来窃取大量的用户账户。

在Linux系统中,密码文件包含了用户凭证。当用户试图登录一个系统时,登录过程会检查密码文件,以确定密码是否有效。现在,当然,该文件并不只是包含密码的副本。这样做很容易成为攻击者的目标,而且也会让系统管理员知道系统中所有的用户密码。相反,密码文件(Password file)包含一个密码哈希值,如图所示:

Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)

Hash值是用一个单向函数计算出来的。当用户登录时,登录程序会获取密码,计算出一个哈希值,然后将该哈希值与存储在文件中的哈希值进行比较。如果这两个哈希值匹配,用户就被登录了。现在,这种方法仍然容易受到密码破解尝试的影响,如果这个文件能够被公开访问,那么攻击者可以简单地开始猜测密码,并以暴力攻击的方式离线比较哈希值。确保这种方法安全的第一步是将密码哈希值从可公开访问的等密码文件中删除。

但在这种方法中,系统是如何登录用户的?这是因为哈希值仍然存在,但它们被存储在一个单独的文件中,称为影子密码文件(Shadow File)。与密码文件不同,影子文件只有超级用户root可以访问它。

Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)

2.散列函数

是一个数学函数,它接受一个可变长度的输入,并以一种抗碰撞的方式将其转换为固定长度的输出。散列函数的构造应使其满足几个标准:

  1. 输入的任何变化,无论多么微小,都必须产生一个完全不同的输出;
    Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)
  2. 从输出中反推输入散列函数的信息,在计算上必须是不可行的。这意味着哈希函数是不可逆的;
    Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)
  3. 不同的输入,不能产生同样的hash值。如果出现了这种情况,也被称为碰撞,但在极少情况下才会发生。

3.暴力破解(brute Force Attacks)

在暴力破解中,攻击者只是猜测所有可能的密码组合。现在,这种攻击只对短而不复杂的密码有效。暴力破解可以是针对被盗密码文件的离线攻击,也可以是简单地尝试重复登录系统的在线攻击。字典攻击假定人们使用单词作为密码,他们只是简单地针对密码文件尝试英语中所有的单词。混合攻击也考虑到了这些词的常见变化,比如在一个词的末尾加上一个年份,或者用数字0替换字母O。最后,彩虹表攻击更进一步,预先计算出常见的密码哈希值,在攻击过程中节省了一个计算步骤。

4.注意点

如果一个组织以纯文本、未加密的形式存储密码,这些都是不必要的。窃取密码文件的攻击者将可以访问该文件中列出的每个账户。密码是一种常见的认证机制,但如果实施不当,它们会有严重的安全缺陷。安全专业人员必须注意确保密码算法使用强散列,并确保文件得到保护。当安全是最重要的,密码应该只是多因素认证系统的一个组成部分。

二、密码喷洒和凭证填充(Password spraying and credential stuffing)

当用户对其密码管理不善时,还有两种类型的密码攻击会发生。

  1. 密码喷洒(Password spraying):攻击者会使用一个常用密码列表,然后用它们来尝试同时攻击许多不同的账户。例如,攻击者可以拿着一个存储在GitHub上的1000万个常用密码的列表,用它来尝试登录尽可能多的账户。如果一个目标系统没有阻止使用常用密码,那么攻击者最终至少会对一个账户成功。对密码喷洒攻击的最佳防御措施是将常用密码列表纳入访问控制系统,防止用户选择出现在列表中的密码。
  2. 凭证填充(credential stuffing):当用户在多个网站上重复使用同一个密码时,凭证填充攻击就成为可能。如果攻击者破坏了一个低安全性的网站并获得了一个用户名和密码列表,那么他们就可以尝试使用这些相同的用户名和密码组合来登录更安全的网站,因为许多用户在多个网站上重复使用相同的密码。这里最好的防御措施是终端用户避免重复使用密码。使用密码管理工具可以为所访问的每个网站轻松生成和维护强大、独特的密码。

通过要求密码以外的额外认证因素,多因素认证可以在认证过程中阻止这些攻击。我们可能会使用预测性分析(prescriptive analytics)来优化自动化制造过程的性能。

三、对抗性人工智能(Adversarial artificial intelligence)

机器学习是一门技术学科,旨在应用计算机科学和统计学的原理,发现隐藏在我们每天积累的数据中的知识。机器学习技术通过分析数据来发现趋势,对记录进行分类,并帮助我们更有效地经营业务。人工只能到预测性分析法(Prescriptive analytics)寻求通过模拟许多场景来优化我们的行为。例如,如果我们想确定分配营销资金的最佳方式,我们可能会对消费者的反应进行不同的模拟,然后使用算法来规定我们在这种情况下的行为。

随着人工智能对我们的企业变得越来越重要,攻击者寻求新的方法来破坏这项技术的使用。这就是所谓的对抗性人工智能。他们可能只是想侵犯我们机器学习算法的安全性,以窃取其中的商业机密,或者他们可能寻求将有污点的训练数据注入我们的机器学习建模过程,以歪曲我们的工作,破坏我们的效率。或者,在最坏的情况下,他们可能试图愚弄我们的算法。

例如,2020年,McAfee的研究人员展示了特斯拉之前用于自动驾驶的人工智能算法是如何被愚弄的。他们只是拿了一块黑色胶带,用它来延长一个35英里/小时限速牌上的三的中间部分。他们只是拿了一块黑色的胶带,用它来延长35英里/小时限速牌上三个数字的中间部分。现在对人的眼睛来说,这个标志仍然清楚地显示为35。然而,对特斯拉的算法来说,这个延长的中间环看起来更像是一个8,而不是一个3。你可以想象,如果一辆汽车行驶在居民区的街道上,将每小时35英里的限速误读为每小时85英里的高速路限速,可能会产生什么样的后果。随着企业更加依赖人工智能作为其业务流程的一部分,其必须考虑针对这些算法的潜在攻击,并建立强大的算法来防御这些可能的攻击。

Security+ 学习笔记5 常见的网络攻击一、口令攻击(Password attacks)二、密码喷洒和凭证填充(Password spraying and credential stuffing)三、对抗性人工智能(Adversarial artificial intelligence)

参考资料来源:

https://www.linkedin.com/learning/paths/become-a-comptia-security-plus-certified-security-professional-sy0-601

继续阅读