• 【安全运维】初识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"
    

    查找有私钥证书的服务器

    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 "
    " | 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 & " 
    
    
  • 相关阅读:
    SpringMVC-初学习
    Mybatis-随笔
    Mybatis-逆向工程generator
    Mybatis-动态sql和模糊查询
    Mybatis-resultMap的一些用法(映射,关联查询)
    Mybatis基本的CRUD
    Spring框架(一)
    restful风格以及异常处理。
    SpringMVC后台校验
    Spring添加文件
  • 原文地址:https://www.cnblogs.com/nayu/p/11529044.html
Copyright © 2020-2023  润新知