我目前正在参加 Offensive Security 的“使用 Kali 进行渗透测试”课程,该课程针对渗透测试的新手。这门课程很棒,有很多例子/练习,还有一个很棒的虚拟实验室环境,让我可以通过 VPN 连接并练习我们一直在学习的所有内容。
我注意到的一件事是,我们一直在研究/实践的许多漏洞都存在于较旧的系统上,例如 Windows XP/2003 系统、较旧的 Linux 版本,或者依赖于配置错误的系统(如果配置正确,将会是更安全)或已知存在严重缺陷的协议。
我很清楚这些系统的较新版本也有自己的漏洞。我还猜测,许多旧系统仍然在组织内继续使用。然而,放在旧系统上的学习材料的重量让我想知道,随着开发人员在编写他们的协议/应用程序/操作系统时变得更加安全意识,渗透测试是否必然会变得不那么有用或需要改变其方法,并且随着他们的工具变得更加先进。例如,许多高级语言为开发人员管理内存,使得缓冲区溢出的可能性大大降低,即使对于粗心的开发人员也是如此。此外,我认为现代操作系统比它们的前辈安全得多(尽管我可能错了,但我不是专家)。
我知道任何系统都会在某处存在一些缺陷,但是作为专业级别的渗透测试似乎根据定义涉及对已知漏洞的某种程度的标准化扫描/利用。 那么我的问题是,随着应用程序/协议/操作系统开发人员的安全意识增强以及他们工具的内置安全性提高,专业渗透测试人员的表面积是否会缩小?
我并不是暗示我认为渗透测试会“消失”,但例如它可能开始更多地依赖社会工程,而不是网络或软件中的实际技术漏洞。