IBM专家告诉你如何完成Linux 服务器加固与安全验证

在如今的技术领域中,做一个完全安全的系统是一个不可能实现的目标。正如 FBI 的 Dennis Hughes 所说,“真正安全的计算机是没有连线、锁在一个保险箱中、埋藏在一个秘密场所的地下 20 英尺处的计算机……我甚至不确定这样是否安全。”在不能选择通过拔掉线缆、锁住和掩埋计算机来保护系统的世界里,可通过以下步骤缩小 您系统的攻击面。Open Web Application Security Project (OWASP) 的 攻击面分析备忘录 提供了有关攻击面的更多信息。

sane 系统配置等流程可缩小攻击面,而渗透测试和模糊测试可帮助工程师加固系统,通过熟练利用漏洞和意外输入来攻破系统,从而查找可修复的漏洞。这些技术通过在有机会利用恶意实体之前检测和消除漏洞,提高了系统的安全性。

Sane 配置

Sane 配置是加固任何系统的关键,因为任何漏洞都可以在某种程度上被利用。例如,SSH(比如 arcfour)或一些协议(比如用于 Web 服务器的 TLSv1.0)对遗留密码的支持,是攻击者获取访问权并且损害系统的一种途径。为了阻止这些和其他漏洞,在执行用户授权时请遵循最少特权原则;为用户或进程提供能够完成需要任务所需的最小访问权和许可。关闭未用端口,以减少网络攻击者可访问的入口点,从而阻止来自网络的入侵。此外,确保启用了防火墙协议,从而进一步限制可能的网络攻击。使用某种工具(比如 seccomp)过滤系统调用对进程的可用性,减少暴露的内核表面。

未用的包没有提供任何额外功能,但却是潜在的攻击载体。确认安装的应用程序和包是必需的,删除不必要的应用程序和包。一个简单示例是,如果一个系统仅通过控制台访问,则删除所有未用的 GUI 支持。Center for Internet Security (CIS-CAT) 提供的 Configuration Assessment Tool 是一个有用的应用程序,允许用户运行不同深度的加固基准测试,以指出系统在哪些地方未满足想要的标准。强烈推荐使用 CIS-CAT 帮助您发现系统的细微配置加固漏洞。

除了系统加固之外,软件发布者还为用户提供了重要的软件和安全更新。代码修复和改进对系统安全有一定的影响。过时的系统是攻击者更容易攻击的目标。依据 United States Computer Emergency Readiness Team,如果受害者拥有恰当更新的系统,可以避免高达 85% 的针对性攻击 (https://www.us-cert.gov/ncas/alerts/TA15-119A)。如果系统得到恰当更新,可显著减少攻击成功率。普遍攻击,包括恶意的实体,都是众所周知的。尽责的供应商会努力及时发布补丁。但是,如果系统管理员未能应用更新,这些补丁就无法保护他们提供的系统和服务。必须尽力确保所有系统得到及时更新。

渗透测试

渗透测试是一种使用自动化工具或自定义攻击查找系统漏洞的方法。渗透测试的目标是破坏系统安全防护,在没有期望的权限或凭据的情况下通过非故意操作模式获得数据的访问权。这些攻击使用目标系统中存在的已知利用手段和漏洞。渗透测试需要一种与传统验证方法(比如验证测试)不同的思维。不同于更加传统的测试,渗透测试人员尝试使用恶意攻击者的工具和方法访问系统组件和数据。尽管渗透测试的原理看起来比较落后,但它提供了比单一传统测试更加透明和完整的系统安全概况。

渗透测试工具链包含一些示例,比如 Metasploit,这是一个功能全面的渗透测试框架,其中包含数据库中已知的漏洞和用于扫描网络和已暴露系统的工具。其他示例还有 Nmap 和 Wireshark,它们分别使用端口扫描或包检查来测试网络。这两个工具都提供了系统操作和响应网络的情况的详细信息。端口扫描显示可通过网络获得哪些应用程序和系统实用程序,显示哪些端口未用并应考虑阻止访问。可从网络访问的任何实体都是可能的目标,所以需要优先考虑禁止访问。以下工具非常有用,能在各种目标上执行自动化的漏洞检测:

  • IBM Security AppScan
  • Nexpose
  • OpenVAS
  • Nessus

除了扫描和工具之外,深入了解正在遭受攻击的系统始终有利无弊。创建特定的利用手段并手动执行有效负载,比定义许多形式的渗透测试的自动化过程复杂得多。一旦找到某种利用手段,就可以创建自动化测试和有效负载传送系统,但寻找这类攻击是一个艰苦的过程。

确定攻击的潜在目标可能很难。当尝试利用一个复杂系统时,需要确定哪些攻击载体比其他攻击载体更富有成效。如果一个正在运行的进程有一个 Web 接口或连网组件,它可能是比暴露面更小的应用程序更好的目标。一个额外的指标是:是否存在专业软件。无需尝试使用拥有既定社区和支持历史的载体,寻找符合特定用途的软件或为在冷门环境中运行而构建的软件可能是更好的选择。

模糊测试

OWASP 将模糊测试定义为 “以自动化方式注入格式错误/格式部分错误的数据来寻找实现漏洞” (https://www.owasp.org/index.php/Fuzzing),这是验证系统和支持的应用程序的稳定性的另一种方法。在应用程序上执行模糊测试的一个示例,可能是在仅接受整数作为输入的程序上执行测试。当输入是浮点、字符串或其他任何不想要的格式的数据时,会发生什么?理想情况下,应用程序可处理格式错误的输入。如果应用程序崩溃或出现其他意外情况,系统的稳定性和安全性可能面临风险。强烈推荐采用的一种应用程序模糊测试工具是 american fuzzy lop (AFL),它能在 QEMU、Clang、OpenSSH、Bash 和 Mozilla Firefox 等流行应用程序中找到多个 bug。AFL 可在任何可执行的应用程序上运行,使用用户提供的 “良好” 输入执行测试,这使用户能够自定义 AFL 执行模糊测试的初始环境。另一个工具是 OWASP Zap,它既是一个 Web 漏洞扫描器,也是一个 Web 应用程序模糊测试器。该应用程序在可用链接上抓取信息,发送模糊化的输入以及已知的恶意攻击。IBM Security Appscan 在 Web 应用程序上执行类似功能,但该软件还提供了使用模糊化输入测试应用程序源代码的版本。

运行任何模糊化应用程序,都会给系统资源造成巨大负担。除了系统资源需求之外,模糊化还需要一定时间才能交付结果。但是,即使拥有大量时间,使用的伪随机输入也无法确保能够发现所有潜在问题。

结束语

服务器加固和验证需要不断努力。随着每天都能发现新的利用手段和漏洞,您系统的安全时常处于危险之中。系统审计、渗透测试和模糊测试分别从独特的视角提供了系统状态信息。除了测试标准(比如单元测试和功能测试)之外,还应使用这些方法来帮助提高您对系统的信心。

作者:Ian Davis 来源:https://www.ibm.com/developerworks/cn/linux/l-server-hardening/index.html


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-10-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

秒杀系统架构优化思路

《秒杀系统架构优化思路》 上周参加Qcon,有个兄弟分享秒杀系统的优化,其观点有些赞同,大部分观点却并不同意,结合自己的经验,谈谈自己的一些看法。 一、为什么难...

3258
来自专栏养码场

找工作太麻烦?造个机器人吧!

这是基于go语言编写的一款boss直聘机器人软件(牛人版)。附上Python版本, 无需配置Go环境, 我会提供windows和macos的可执行程序。不喜勿喷...

844
来自专栏杨建荣的学习笔记

Greenplum数据仓库迁移小记

迁移无小事,所以从开始计划将公司的Greenplum集群迁移,到最后落地,整个过程虽然说不上是波折,但是也算是有不少的故事,各种准备和协调。

1773
来自专栏生信技能树

计算资源及编程-仅针对生信人员

第 5 章 计算资源及编程 5.1 硬件配置 理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windo...

48510
来自专栏微信公众号:Java团长

我的编码习惯 —— 日志规范

开发中日志这个问题,每个公司都强调,也制定了一大堆规范,但根据实际情况看,效果不是很明显,主要是这个东西不好测试和考核,没有日志功能一样跑啊。

962
来自专栏大数据架构师专家

从运维角度看中大型网站架构的演变之路

网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解。

1373
来自专栏SDNLAB

OpenNF:驱动网络功能控制创新

1 介绍 网络功能(NFs),或中间件是以复杂方式检测和更改数据包和流的系统。比如:入侵检测系统(IDSs),负载均衡器,缓存代理等。NFs在确保安全性,提高...

3584
来自专栏大魏分享(微信公众号:david-share)

挑战旧式思维----深入AWS、Azure安全组

大卫说:笔者前段时间刚刚参加过BSI Certified CSA start Auditor培训和认证考试(云安全评估师)。在培训中,对如何结合ISO27001...

4569
来自专栏服务端技术杂谈

重构系统的套路-微服务化

根据业务或组织架构进行基本服务拆分,每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例的地址来调用服务 API。不同服务也可...

1234
来自专栏数据和云

性能优化:MySQL 性能提升之降龙十八掌

作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数...

1813

扫码关注云+社区