来自 网络 2022-06-09 16:30 的文章

cdn防护_高防美国vps_如何解决

cdn防护_高防美国vps_如何解决

整个EnterprisePlantirFollownov 14,2017·15分钟阅读

每个有效的事件响应团队都需要能够向车队中的一个或多个主机"提问",并获得及时准确的答案。跨数千台主机的事件检测和响应需要深入了解跨用户、应用程序和设备的操作和行为。虽然端点检测和保护工具可以提供一些开箱即用的功能,但深入了解和分析安全相关事件对于检测高级威胁至关重要。Palantir目前跨Windows、Mac和Linux系统维护osquery部署,以回答这些问题。osquery是一个开源工具,最初由Facebook开发,它以关系数据库表的形式公开操作系统配置数据。通过对这些表发出类似SQL的查询,用户可以收集关于系统当前状态的有价值的数据,ddos防御模拟,以及随着时间的推移对其应用的更改。这篇博文的目标有两个:第一,为多平台osquery部署提供配置指导,第二,描述我们的开源osquery配置集:https://github.com/palantir/osquery-configuration. GitHub项目提供了必要的构建块,为组织快速评估osquery并将其部署到生产环境提供了有用的参考。我们的配置代表了一个基线安全标准,当与集中式日志平台结合使用时,它可以为检测和响应提供即时的安全结果。2017年,发生了几起值得注意的公共事件,需要对端点和应用程序配置进行快速响应和深入反思:

公开发布的工具允许不熟练的对手利用Windows系统中以前未知的漏洞进行攻击少数Chrome扩展被劫持以服务于恶意代码发布CCleaner.exe与恶意后门打包,在dnsmasq中发现多个RCE漏洞;广泛使用的应用程序

这些事件中的每一个都要求能够向整个车队提出一系列"问题",以识别受影响的系统。

案例研究:dnsmasq漏洞

在谷歌安全团队发布其博客,详细介绍了dnsmasq的众多漏洞之后,我们的信息安全团队致力于在安装dnsmasq的任何地方删除它,ddos防御的意义,并在仍然需要的地方将dnsmasq升级到补丁版本。为了使情况更加复杂,一些开发团队将dnsmasq Docker映像作为其开发工作流程的一部分,因此识别dnsmasq安装不会像搜索已安装的程序那样简单。为了确保我们能够彻底清点安装了任何形式的dnsmasq的每台主机,我们使用了四个单独的查询:

通过枚举相关的启动plist来查找通过自制或MacPorts安装的dnsmasq:从启动中选择*名称,如"%dnsmasq%";查找名称中包含dnsmasq的正在运行的Docker容器:从Docker_容器中选择名称,其中的名称类似于"%dnsmasq%";发现在本地主机端口53上有dnsmasq侦听的主机:从进程中选择DISTINCT(processs.name)、process_open_sockets.local_port使用(pid)连接process_open_sockets,其中local_port=53和processs.name='dnsmasq';查找通过Homebrew安装dnsmasq的用户:从Homebrew_软件包中选择*,其中name='dnsmasq';

这种方法比简单地枚举主机上已安装的包要彻底得多。在开始之前,我们已经准备好了其中两个查询,添加另外两个特定于dnsmasq的查询只需几分钟。在24小时内,我们得到了一份安装了dnsmasq的主机的全面列表,cc可以防御,可以将其作为删除/更新的目标。

osquery基础知识

osquery在一组预定义表中收集和聚合系统的日志和状态信息。用户可以通过对这些表的SQL查询来查询系统状态。查询可以通过osqueryi(一种交互式SQL环境)或osqueryd(一种用于执行重复的预定查询的长期守护进程)发出。以下是给定系统的主机名和CPU类型的示例查询:

$osqueryiosquery>从系统_信息中选择主机名、CPU_类型;+-------------+------------------+------------+|主机名| cpu | U类型|+--------------+--------------+--------------+----+----我的计算机| x86 | U 64 |+--------------+-----------+

可用表的列表可以使用.tables命令进行探索:

osquery>.tables=>acpi|u tables=>ad|u config=>alf=>alf=>alf|u异常=>alf|u显式授权

。每个表都有一个指定的https://osquery.io/schema/ schema,标识可用列、列类型和描述性详细信息。可以使用.schema命令查看表的架构:

osquery>.schema os_version;创建表os_version(`name`TEXT,`version`TEXT,`major`INTEGER,`minor`INTEGER,`patch`INTEGER,`build`TEXT,`platform`TEXT,`platform_like`TEXT,`codename`TEXT);

除了简单的单表查询外,osquery还可以跨多个表聚合和关联信息,例如使用SQL JOIN命令:

osquery>选择hash.md5、path、file.filename、file.uid、,使用(path),其中path='/bin/ls';+------------------------------------------------------------+------------------+------------------+--------+--------+------+++--------------从哈希连接文件中获取file.gidmd5 | path | filename | uid | gid |+------------------------------------------------------------------------------------------+---------------------------------------------+----------------------------+--------------------------------------+--------------528722ae3e3e6087b453560e8d025f76 |/bin/ls | ls | 0 |+-------------------------------------------------------------------------+--------+---------+--------+---------++--------------+-+

基于事件的表格