软WAF的另一种思路:根据Openresty+Naxsi的WAF完成

访客5年前黑客文章985

现在软WAF的开发,大部分都选用Nginx+Lua根据openresty的 *** ,安全防护战略如果是根据lua正则匹配http恳求内容的话,在加载了很多的防护规矩后,nginx的功用会大大下降。
本文选用了lua+naxsi整合的 *** ,运用lua来完成如cc进犯的防护、IP拜访频率约束等相对杂乱的安全防护战略,运用Naxsi来防护相对简略的http恳求内容战略规矩,有用的取长补短,大大提高nginx 防护功用。
0×01 WAF功用
Naxsi在本WAF中首要完成根据http恳求内容的防护战略规矩,用于防护一些常见的缝隙,如:
SQL注入进犯 XSS进犯 目录遍历缝隙 指令注入进犯 虚拟补丁 扫描器进犯等
Lua在本waf中首要担任完成相对杂乱的安全防护战略,如cc进犯防护、大局IP拜访频率约束、特定url拜访频率约束、ip是非名单防护、url白名单防护、http恳求转发等功用。
WAF办理后台可完成WAF节点的统一办理,本WAF能够根据云WAF方式布置或许直接嵌入到使用现有的nginx的 *** 布置。
0×02 WAF架构

0×03 WAF办理后台
因为WAF运用了两个独立的nginx模块,所以需求两套彻底不同的装备文件。naxsi模块的防护规矩装备需求以文件的方式下发到nginx节点,Lua代码也需求以文件的方式下发到nginx节点。为完成文件的下发和同步,咱们将装备文件放到WAF的办理端,由WAF的nginx节点定时经过http拜访办理端下载装备文件。
其间naxsi的装备文件建议和lua的代码分隔寄存。

装备文件的办理,为了避免修正装备文件犯错而形成nginx运转反常,咱们经过python脚本结合nginx查看装备文件是是否正确,而且做到了装备文件有更新才去服务端拉取文件而且reload nginx,避免了频频的reload nginx节点。
def get_rules_file(rulesdir,rulesfile):
    for filename in os.listdir(rulesdir):
        if filename not in  ['files.txt', 'files.md5', 'get_naxsi-rules.py', 'install_naxsi_rules.py']:
            CalcMD5(rulesdir,filename,rulesfile)
def CalcMD5(path,filename,rulesfile):
    filepath = path + filename
    with open(filepath,'rb') as f:
        md5obj = hashlib.md5()
        md5obj.update(f.read())
        hash = md5obj.hexdigest()
        rulesfile.write(filename + ';,' + hash + 'n')
        print filename + ';,' + hash
def calc_files_md5(filedir,fimename):
    files_md5 = open(fimename,"w")
    filepath = filedir + 'files.txt'
    with open(filepath,'rb') as f:
        md5obj = hashlib.md5()
        md5obj.update(f.read())
        hash = md5obj.hexdigest()
        files_md5.write(hash)
    f.close()
def check_rules():
    check = commands.getstatusoutput("/usr/local/nginx/ *** in/nginx -t")
    if check[0] == 0:
        pattern = re.compile(r'test is successful')
        match = pattern.search(check[1])
        if match:
            msg = "rules update successful"
            print msg
            get_rules_file(rulesdir,naxsi_rulesfile)
            naxsi_rulesfile.close()
            calc_files_md5(rulesdir,naxsi_md5_file)
            get_rules_file(lua_waf_dir, lua_waf_file)
            lua_waf_file.close()

[1] [2]  黑客接单网

相关文章

提取字符串方法在恶意软件分析中的应用-黑客接单平台

现在逆向工程师、安全剖析人员和事情呼应人员在剖析歹意软件二进制文件时,现已具有了许多老练的东西。在进行歹意软件剖析时,为了逐渐搜集有关二进制文件功用的头绪,规划对应的检测办法,并确认终究的环境办法,他...

阿里云、腾讯云、金山云、ucloud安全防护产品调研之静态数据篇

  前语   随同国内公有云商场的快速开展,入局的厂商越来越多,咱们挑选了几家公有云厂商,针对他们供给的安全才能进行了横向比照。挑选的公有云厂商为阿里云、腾讯云、金山云、ucloud。安全产品的技术参...

专业接单黑客联系方电话,攻击私彩的黑客联系方式,个人信息被泄露找黑客帮忙

总的来说,咱们所发现的感染状况可以分为两类,这也就意味着进犯者在侵略方针站点的过程中,或许会运用两种不同的感染载体。 Fuzz成果:经过1.e这种特别的数值方法,可成功绕过union select防护...

二十四小时接单黑客_黑客在哪找啊

附录1、2018热门勒索病毒事情所以删去主线程的作业负载会对运转速度有很大的协助。 在某些状况下,ArrayBuffers能够削减主线程所需的作业量。 SplashData供给以下主张来增强上网的安全...

我哥因为赌博压给庄家一条金项链,然后钱输了。想

ubuntu3、受影响范围· https://www.shodan.io/search?query=port%3A3389+os%3A%22Windows+7+or+8%22exp地址: https:...

微信朋友圈强制查看器,黑客如探知他人微信的联系人,我在网上找的黑客

缝隙剖析:一.实践总结:/var/www/crossdomain // JNDI 获取 RMI 上的办法目标并进行调用存在后门的网站数量大幅攀升在whorunscoinhive.com查...