初识osquery

初识osquery

osquery是一个由Facebook的开源用于对系统进行查询,监控以及分析的一款软件.
osquery对其的说明如下:
osquery将操作系统公开为高性能关系数据库。这允许您编写基于SQL的查询来探索操作系统数据。使用osquery,SQL表表示抽象概念,例如运行进程,加载的内核模块,开放网络连接,浏览器插件,硬件事件或文件哈希。
目前网上已经有非常多的相关资料供参考,这里整理下:
【初识osquery】:http://www.polaris-lab.com/index.php/archives/617

【Kolide Fleet osquery体验】: http://0cx.cc/managing-osquery-with-fleet.jspx

【Osquery检测入侵痕迹】https://evilanne.github.io/2019/02/20/Osquery检测入侵痕迹/

【osquery操作系统检测与分析】https://bloodzer0.github.io/ossa/infrastructure-security/host-security/ids-ips/osquery/

使用

搭建过程不再重来了,这里不是重点,如果搭建有问题找运维或网络帮忙解决即可
1、假设某木马执行后会在tmp目录释放指定的文件,这里可以快速对所有主机进行检查

SELECT * from file where directory="/tmp" and filename="xxx"

895028-20190916190227425-1739722777.png

查找有私钥证书的服务器
895028-20190916190251303-820641427.png

2、当有1day漏洞暴发时,可快速查找该软件的服务器进行确认
检查所有存在某软件的服务器

SELECT * FROM processes where name  like 'systemd';

上面是根据是在运行的进程进行判断,也可跟进安装的rpm包进行判断。
3、检测反弹shell

SELECT DISTINCT(processes.pid), processes.parent, processes.name, processes.path, processes.cmdline, processes.cwd, processes.root, processes.uid, processes.gid, processes.start_time, process_open_sockets.remote_address, process_open_sockets.remote_port, (SELECT cmdline FROM processes AS parent_cmdline WHERE pid=processes.parent) AS parent_cmdline FROM processes JOIN process_open_sockets USING (pid) LEFT OUTER JOIN process_open_files ON

如果需要告警功能,可将result文件打到logstash进行解析,在elk中配置告警。
更多的功能如文件完整性检查,后门检测等请自行摸索,

常见问题

1、如果使用docker部署,docker内的日志会很快打满,可以自行清理
2、服务端重启后,客户端会掉线,此时会恢复一部分,但大部分起不来,这是我这遇到的问题

可以在客户端上加上定时探活的脚本:

#!/bin/bash
#-*- coding:utf-8 -*-
process_id=$(ps -ef | grep "osqueryd --flagfile" | grep -v "grep"  | awk '{print $2}')
result=`echo -e "\n" | telnet X.X.X.X 8080 2> /dev/null | grep Connected | wc -l`
if [ $result ]; then
    kill -9 $process_id && nohup /usr/local/osq/launcher --hostname=X.X.X.X:8080 --enroll_secret=TznYHNYSD8ZoFUJOvH4s3pY7ZGuzz2x/ --insecure &
else
    echo "无法连接服务器"
fi

或使用运维工具进行手动启动

 ansible XX -m shell -a " pgrep osquery | xargs kill -s 9 && service osqueryd start && nohup /usr/local/osq/launcher --hostname=X.X.X.X:8080 --enroll_secret=TznYHNYSD8ZoFUJOvH4s3pY7ZGuzz2x/ --insecure & " 

转载于:https://www.cnblogs.com/nayu/p/11529044.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个议题来自于某互联网大厂的资深安全工程师spoock。Osquery是一个开源的全平台的信息采集软件,全平台意味着它能够适配于Windows,Linux,Mac,Ios,Andriod,并能够通过非常简单的Query语句进行系统信息查询,所以被广泛用于运维、监控,而由于其监控能力的丰富,也有越来越多的安全工程师开始利用osquery进行主机入侵侦测、终端准入访问控制的探索。Spoock带来的议题就是他们在尝试使用osquery作为主机入侵侦测系统agent过程中的一些心得和踩坑经历。 作为一个web渗透转型二进制的安全工程师,他很感慨的说:“人生不要给自己设限”。他一边详细阐述Osquery的原理,一边感谢来自于osquery社区的支持,同时也毫不客气的吐槽踩过的深坑,例如osquery自身监控机制watch dog与cgroup冲突导致CPU飙高的情况,单个db文件过大的问题等。每一点都显示出Spoock对于技术的热爱与执着。值得一提的是,Spoock打着石膏的脚和拄着的双拐在场内外都引起了不小的关注,在此提醒各位,过马路不要看手机… 最后,他还分享了其所在公司使用osquery作为HIDS的部署、使用情况。作为一家超大体量的互联网公司,需要充分考虑稳定性、兼容性、低损耗、低侵入性等问题,而作为一个自研的解决方案,osquery出色的完成了其设计初衷的使命。 •关于我 •Osquery介绍 •Osquery检测原理分析 •Osquery的优缺点 •Osquery?HIDS?
osquery 是 SQL 驱动的分析和监控操作系统的工具,是操作系统分析框架,支持 OS X 和 Linux 系统。osquery 能帮助监控和分析低水平的操作系统,提供更直观的性能监控。osquery操作系统中就像是一个高性能的关系数据库,允许你编写基于 SQL 的查询语句来洞察操作系统的数据。使用 osquery,SQL 表代表如下抽象概念:运行时的进程 加载内核模块开放网络连接 SQL 表通过一个简单的可扩展 API 实现,各种表已经存在并且还在不断增加。为了更好的理解 osquery,看看下面的 SQL 查询:-------------------------------------------------------- -- get the name, pid and attached port of all processes  -- which are listening on all interfaces -------------------------------------------------------- SELECT DISTINCT    process.name,    listening.port,    process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid WHERE listening.address = '0.0.0.0';-------------------------------------------------------- -- find every launchdaemon on an OS X host which  --   * launches an executable when the operating  --     system starts --   * keeps the executable running  -- return the name of the launchdaemon and the full  -- path (with arguments) of the executable to be ran. -------------------------------------------------------- SELECT    name,    program || program_arguments AS executable  FROM launchd  WHERE    (run_at_load = 'true' AND keep_alive = 'true')  AND    (program != '' OR program_arguments != '');这些查询可以:在特定条件下探索操作系统状态通过执行调度程序来监控操作系统的主机状态启动使用osquery api的自定义应用程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值