• ProxySQL SQL 注入引擎


    ProxySQL 2.0.9 引入了 libsqlinjection 作为识别可能的 SQL 注入攻击的机制。
    
    启用 S​​QL 注入检测
    
    要启用 SQL 注入检测,只需要启用变量 mysql-automaticdetectsqli
    
    SQL 注入检测和防火墙白名单
    
    即使启用了变量 mysql-automaticdetectsqli,SQL 注入引擎也不会检查所有的查询操作。因为,SQL 注入引擎不会检查防火墙白名单允许的操作。因为它已经是被认为是安全的,所以就不会检查。
    
    换句话说,如果启用了 SQL 注入的自动检测(mysql-automaticdetectsqli=1):
    
        如果防火墙白名单是关闭的,SQL 注入引擎会分析所有的操作。
        如果防火墙白名单是启用的,SQL 注入引擎只会分析白名单之外的操作,并且会以"DETECTING"模式为用户执行,实际上: - 模式为"OFF"的用户,所有的操作都被认为是白名单上的。 - 模式为"PROTECTING"的用户,不在白名单的操作会被拒绝。
    
    表 mysqlfirewallwhitelistsqlifingerprints
    
    libsqlinjection 解析查询,生成查询的指纹,并确定该指纹是已知的 SQL 注入攻击还是可能的攻击。
    
    尽管 libsqlinjection 能够检测到很多 SQL 注入,但是不幸的是,它还会产生很多误报。
    
    将 SQL 注入检测与防火墙白名单结合使用可以大大减少误报(所有列入白名单的查询都不会由 SQL 注入引擎处理),这是减少误报数量的最佳方法。
    
    减少误报数量的另一种方法是将 libsqlinjection 生成的某些指纹列入白名单。可以在表中将指纹列入白名单 mysqlfirewallwhitelistsqlifingerprints:
    
    CREATE TABLE mysql_firewall_whitelist_sqli_fingerprints (
        active INT CHECK (active IN (0,1)) NOT NULL DEFAULT 1,
        fingerprint VARCHAR NOT NULL,
        PRIMARY KEY (fingerprint) )
    
    active:定义是否为活动
    
    fingerprint:是 libsqlinjection 生成的指纹,我们希望(暂时)禁用它,允许查询与指定的指纹匹配
    
    目前获取指纹的唯一方法是通过错误日志,ProxySQL 会将打印指纹和失败的查询。例如:
    
    2019-11-28 16:17:23 MySQL_Session.cpp:3323:handler(): [ERROR] SQLinjection detected with fingerprint of 'Eoknk' from client pinkys_dbu@192.168.56.104 . Query listed below:
    SELECT * FROM users WHERE username='asdsad' AND password='e2a521bc01c1ca09e173bcf65bcc97e9'
    
    如果觉得这是正常的查询,那么可以使用 mysqlfirewallwhitelist_rules 将其加入白名单
    
      INSERT INTO mysql_firewall_whitelist_sqli_fingerprints VALUES (1, \'Eoknk\');
    
    mysqlfirewallwhitelistsqlifingerprints 是防火墙的一部分,因此,使用跟防火墙白名单一样的命令,将其载入到当前运行时:
    
      LOAD MYSQL FIREWALL TO RUNTIME
    
    mysqlfirewallwhitelistsqlifingerprints 对应运行时使用的表为
    
    runtimemysqlfirewallwhitelistsqli_fingerprints 。
    
  • 相关阅读:
    Rocketmq
    HTTPS 证书显示不安全
    js json 转为url参数
    Telnet 安装
    自己配置环境变量不起作用的问题
    Android笔记-Dalvik VM-1
    Fuzzy Logic/Expert System/Control
    PhD第一学期小结
    linux中的>、>>、2>&1、管道命令
    Hyper-v虚拟机设置静态IP
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/16394137.html
Copyright © 2020-2023  润新知