安全信息和事件管理系统 (SIEM) 想要访问遗留应用程序中的日志文件和其他数据通常比较困难。下面是一些能够提高可见性的方法。
随着公司越来越善于通过分析日志数据发现潜在的安全威胁,遗留应用程序会带来难以覆盖的盲区。数据安全公司Spirion的首席创新官Gabriel Gumbs表示:现代SIEM (Security Information and Event Management,安全信息和事件管理)已经超越了它们自己的传统功能集,成为了先进的威胁检测和响应平台。
他表示遗留应用程序提供的日志数据并不总是能够有效的迁移到这些平台上。例如,遗留应用程序可能会报告谁有权访问系统,但不会报告他们有权访问这些系统中的哪些内容。这个可见性问题需要解决,他说道。
当必须监控遗留应用程序来发现威胁时,问题会更加严重。例如,这些应用程序被构建时的安全需求可能与我们今天的需求大不相同,或者它们是在广泛使用最佳实践前被构建的。
这些遗留应用程序还可能拥有已知的漏洞,需要过时和不安全的基础设施,或访问敏感数据或关键系统。“以能源行业为例”,总部位于英国的初创企业 Furnace Ignite(该公司使得从遗留应用程序中收集数据并将其提供给 SIEM 变得更加容易)首席网络安全工程师 David Mound 表示,他们有SCADA基础设施,这些东西已经存在很多年了。
避免不必要的惊喜
David Mound 表示公司有时不想接触正在运行的应用程序。不仅仅是在能源领域。
一般来说,当我从事咨询工作时,大多数公司似乎都有一些遗留的应用程序。薪酬之类的东西,多年来一直没动过。 |
遗留应用程序常常不能提供公司所需的监控。例如,它们可能会生成性能数据,但不能详细说明哪些用户访问了哪些数据,或者缺少了安全研究人员赖以发现事件的环境。如果它们生成了日志,这些日志可能也是以某种专有的、难以使用的格式存储的。
网络安全公司 Trustwave 负责威胁情报和检测的全球主管 Jeremy Batterman 表示:特别是内部开发的遗留应用程序,将会存在明显的可见性问题。
他说当有网络安全事件发生并需要进行调查时,这是一个大问题。他说:在我处理过的事件响应案例中,往往是一次性的应用程序导致了问题。
此外,缺少日志记录可能会加剧遗留应用程序的其他安全问题。例如,在一个案例中,一个公司有一个既连接到互联网又连接到其内部网络的遗留应用程序,而没有把它放在 DMZ 中。
他们也没有意识到,他们使用的是旧版本的 JBoss 和 Apache,这对于攻击者来说是轻而易举的。一旦它被入侵,因为没有可见性,攻击者很容易就能在网络上移动。 |
在调查事故期间,Batterman 表示他经常问公司,他们为什么要保留这个遗留应用程序。“通常和钱有关”,他说道。“更常见的情况是,这种方法适用于他们,所以为什么要改变它呢?”埃森哲 (Accenture) 对联邦 IT 主管的一项调查显示,37% 的人表示遗留应用程序对他们抵御网络威胁是一个阻碍,85% 的人表示除非他们更新技术,否则他们所在组织机构在未来将受到威胁。
网络安全咨询公司 BTB Security 的管理合伙人 Ron Schlecht 表示,为了发现环境中有多少遗留应用程序,企业应该把它们作为威胁和漏洞评估的一部分。他说有时候企业很清楚自己的遗留应用程序不安全,因为他们在试图摆脱它们。
遗留应用程序有时会被忽略。在大多数情况下,这些应用程序很少会被使用,或者仅被较小的部门使用,因为没有任何问题,人们会继续使用它们。
有时候应用程序已经被替换了,但是遗留版本仍然在运行,这往往让人惊讶。有时候,他们只是忘了关掉它。有时候,他们仍然希望能够在应用程序中访问旧的历史数据。
Schlect 表示无论是哪个原因,这些应用程序和服务器都处于闲置状态。任何时候只要环境中有这些存在,就有可能会有人滥用它们。如果应用程序正在以管理员权限运行,或者具有可用于升级访问权限的功能,则尤其危险。如果应用程序在旧服务器上,那么其环境中也可能存在漏洞。
现代化遗留应用程序
Schlecht 表示,第一步是确定原始供应商是否能够帮忙将日志数据从遗留系统迁移到 SIEM。也许供应商可以提供一个 API 或者至少一些文档。如果没有,可以通过定制开发工作来尝试从应用程序中获取日志。
另一个策略是使整个应用程序现代化,而不仅仅是日志功能。这样不仅满足了公司的网络安全需求,还能够满足合规、可扩展性和其他业务需求。根据 Gartner的一份报告,到 2020 年,在数字商业创新上每投入一美元,就至少有其三倍的资金花在了传统应用程序的现代化上。这笔投资是值得的。除了安全风险之外,遗留应用程序可能无法满足当今的业务需求,无法跟上技术变革的步伐,难以进行扩展,可能会产生合规风险,而且维护成本过高。
根据 Gartner 的另一份报告,实现遗留应用程序现代化的主要方法有七种:
- 将其封装,并作为服务提供。
- 重新托管。
- 将其移动到一个新的运行平台。
- 重构代码。
- 重新架构应用程序。
- 完全重建或进行重写。
- 替换应用程序,考虑到新的要求和需求。
过度策略
当无法对传统应用程序进行现代化或替换时,企业可以采用一些过度策略来解决一些可见性问题。例如,如果一个应用程序有一个后端数据库,那么人们就有可能从数据库本身获取访问和使用信息,Trustwave 的 Batterman 说道,如果有流量进出应用程序,网络传感器可以用来捕获数据包。
Batterman 表示无论采用哪种过度策略,企业也应该为其遗留应用程序进行特别保护。
也许我们可以建立一个更封闭的系统,或者只提供一小部分服务。他们可以做一些架构调整,防止它们出现在前线。 |
例如,BTB 的 Schlecht 表示,很多企业面临着不得不维护一个旧的、不安全的应用程序的问题,他们会将其沙箱化,并将其放到虚拟环境或云环境中。这样,如果它受到攻击,对组织机构其他部分的影响将会是最小的。
【本文是51CTO专栏作者“李少鹏”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】