Articles of mod security

阻止不好的机器人

我发现这个脚本,并想知道这是否只是矫枉过正,甚至值得使用? 使用mod_security对我来说更好吗? # Generated using http://solidshellsecurity.com services # Begin block Bad-Robots from robots.txt User-agent: asterias Disallow:/ User-agent: BackDoorBot/1.0 Disallow:/ User-agent: Black Hole Disallow:/ User-agent: BlowFish/1.0 Disallow:/ User-agent: BotALot Disallow:/ User-agent: BuiltBotTough Disallow:/ User-agent: Bullseye/1.0 Disallow:/ User-agent: BunnySlippers Disallow:/ User-agent: Cegbfeieh Disallow:/ User-agent: CheeseBot Disallow:/ User-agent: CherryPicker Disallow:/ User-agent: CherryPickerElite/1.0 Disallow:/ User-agent: CherryPickerSE/1.0 Disallow:/ User-agent: CopyRightCheck […]

使用mod_security定制集合

我想创build一个基于用户的IP,会话ID或用户名以外的东西的mod_security集合。 具体来说,基于REQUEST_URI。 但是,mod_security 表明这是不可能的。 我的问题是是否可能有一些解决方法。 我尝试了以下,但不能得到它的工作: SetEnvIf Request_URI "^\/([a-z0-9]+)\/" account="$1" SecAction setsid:%{account},pass,nolog SecAction "phase:2,pass,setvar:session.count=+1,nolog" SecRule SESSION:COUNT "@gt 60" "phase:2,deny,status:503,skip:1,nolog" SecAction "phase:5,deprecatevar:session.count=1/1,pass,nolog" 上面应该从URL(第1行)提取帐户名称,并将其用作会话ID(第2行,这是行不通的)。 然后增加包含该账户名称的每个请求的请求计数(第3行)。 如果计数超过60(第4行),则返回503错误。 计数每1秒减less1(第5行)。

.htaccess只在一些主机scheme上忽略了两层

我有一个.htaccess文件这样做: RewriteRule ^system(.*)$ /system/app/$1 [QSA,L] …然后在/ system / app下面,我有另一个.htaccess文件这样做: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [QSA] 所以,当你连接到/ system和/ system / login时,在两种情况下都应该调用/system/app/index.php。 在我正在使用的大部分托pipe计划中,这是有效的。 但在一些客户托pipe计划,我得到一个不寻常的结果。 这种不寻常的结果是,我可以连接到/系统只是罚款和index.php加载,但如果我连接到/系统/login,我得到了404。我什至简化/system/app/index.php,并简单地做: <?php print_r($_SERVER); …但它只显示/系统上的结果,并显示404如果/系统/login。 现在,切换到另一个人的托pipe计划,它工作正常 – 这只是在一些托pipe计划。 你认为可能是什么问题? 是mod_security吗? 打开MultiView吗? 这是一个特定版本的Apache造成这个? 这是Apache的错误吗? 我很困惑。 编辑 :我几乎想知道是否有一个新的Apacheconfiguration,只会让你有一个.htaccess文件在根目录,或不会让你有一个.htaccess文件加载,然后调用另一个.htaccess文件在子文件夹。 编辑 :在尝试closures这个问题之前等待“太本地化”。 听我一分钟。 如果这是Apache或cPanel中的一个全新的选项,可以打开,创build这个问题,或者是一个新的mod_security的东西,你不觉得这将是一个问题,将影响人的吨,而不仅仅是HostGator的?

日志/转储响应正文

有没有办法在Apache 2中logging响应主体? 我需要将被发送到用户浏览器的确切内容。 我尝试了mod_security审计日志logging,但它不会logging所有请求的响应正文。 (我真的很困惑,它logging了在一个目录中请求一个简单的PHP页面的响应主体,但是它不会在另一个目录中logging另一个文件的响应主体,它只logging响应和请求头。 更新:这里是主configuration文件(httpd.conf)中的mod_securityconfiguration: SecAuditEngine On SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecAuditLogParts ABCDEFGHZ SecAuditLog logs/sec.log

ModSecurity:collections_remove_stale:删除集合失败

环境: Ubuntu的服务器12.04 64位与Apache / 2.2.22(Ubuntu)和工人MPM的modsecurity 2.7.5和OWASP CRS的最新。 问题: 当服务器处于1500个并发用户的负载下时,Mod_Security开始在Apache的错误日志中显示以下错误,并且服务器CPU使用率升至危险级别。 [Wed Oct 02 21:21:52 2013] [error] [client xxx.xxx.xxx.xxx] ModSecurity: collections_remove_stale: Failed deleting collection (name "ip", key "xxx.xxx.xxx.xxx_9e4f93d096e2ca3744251c41dde47a1a7b26fa75"): Internal error [hostname "www.example.com"] [uri "/php5-fcgi/setting/student_collage_list.php"] [unique_id "UkxkMMaIMEoAADg9zw0AAAgr"] 文件(global.dir,global.pag,ip.dir,ip.pag)全部放在/ tmp /中,并由用户www-data拥有,我甚至为它们设置了777权限,以查看问题是否消失。 我可以看到这个问题已经修补,请参阅: https : //www.modsecurity.org/tracker/browse/MODSEC-97但我使用的是最新的modsecurity版本“2.7.5”,所以我不知道为什么会发生。 我还在https://www.modsecurity.org/tracker/browse/MODSEC-428上提交了一个错误报告,但这对我来说是一个非常严重的问题,所以我尽pipe我也可以在这里问。 任何想法是什么造成这个错误? 这个过程可以被禁用吗? 更新 :当启用mod_security时,服务器的CPU负载也非常高,对于高stream量网站优化mod_security的任何提示? 目前我有2000〜并发用户。

如何解决modsecurity_crs_16_session_hijacking.conf中的UNIQUE_IDvariables问题ubuntu 10.04

我一直在尝试使用modascurity以及来自owasp版本2.2.5的核心规则来加强ubuntu 10.04。 我已经使用他们的github包。 在optional_rules中的文件的符号链接到activated_rules之后,apache开始抱怨并且不会启动。 下面是这样说的: Syntax error on line 45 of /etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_16_session_hijacking.conf: Error creating rule: Unknown variable: UNIQUE_ID 有没有人有解决这个问题的解决方法。 我在Ubuntu 12.04上做了同样的事情,没有任何问题。 但是这次我不能控制在这里使用的Ubuntu的版本。 那是10.04。 我试图安装mod unique_id,但它已经安装,mod头。 所以我对可能的原因提出了一些想法。 一个小手会非常感激。 谢谢

Nginx和dynamicX-Forwarded-For的列表

我在代理后面运行Nginx。 我通过X-Forwarded-For HTTP请求头获取访问者的真实IP地址。 我想根据dynamic阻止列表阻止个别IP地址,最多可达10000多个IP。 我正在研究ModSecurity来做到这一点,但它看起来太复杂了,只是为了阻止IP阻塞而使用非常神秘而脆弱的configuration语言。 还有什么其他的select? 另外,生成包含在主要Nginxconfiguration中的Nginx规则configuration( ip-blocklist.conf )是可行的,例如每5分钟一次,然后正常地重新启动Nginx? Nginx的规则如何可伸缩,例如高达10K条目?

ModSecurity阶段不工作?

我已经安装了modsecurity(2.8)。 因此,我制定了我的第一条规则来阻止垃圾邮件: SecRule REQUEST_HEADERS:Referer "buttons\-for\-website\.com" "phase:1,deny,status:403,id:666521134" 然后,当我在Firefox中伪造我的引用来testing,我的网站加载正常,但只要我刷新页面或转到另一个页面,然后只有我的IP被阻止。 我将它设置为阶段:1,但由于某种原因,它仍然允许处理请求并在加载之前对网页进行阻止。 有没有办法在服务页面之前立即阻止请求? 由于这个引用者会popup我的分析报告。 我认为阶段1假设在头部接收时阻止它。

apache mod_evasive与mpm_prefork设置工作

我试图find所有的信息,我可以在这个,我理解mod_evasive不工作时,服务器是在mpm_prefork模式(而不是工人)的问题。 但是,我能够通过降低部分工作来部分工作 StartServers MinSpareServers MaxSpareServers 在configuration文件中。 所以我的问题是:如果我configurationmpm_prefork.conf : StartServers 1 MinSpareServers 0 MaxSpareServers 0 MaxRequestWorkers 150 MaxConnectionsPerChild 0 会基本上等于一个实例运行(就像“工人”),在这种情况下,mod_evasive仍然会运行,就好像服务器正在作为“工人”一样运行? 在这样的设置中是否有任何潜在的问题? (如很多合法请求没有被处理等)? 有没有其他选项可以满足我的基本要求(mod_security会有帮助吗?) 我知道这不是缓解攻击的最好方法,但我只是寻找自定义搜寻器的基本安全性,偶尔会使服务器每秒钟有数十个请求超载。

ModSecurity规则不扫描URI

我很难创build一个新的安全2.5规则。 我的部署:Apache服务器,安装程序作为反向代理。 (所以apache的web服务器__并不承载网站,而是将请求代理给另一个服务器来回应networking请求。) Web服务器使用authentication令牌将网站URL重写为安全的URL。 75.75.75.75 – – [01/May/2015:10:55:14 -0400] "GET /record/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh" 问题: Modsecurity当前扫描URI。 由于随机URI的性质,已经产生了很多误报。 为了防止这种情况,我想豁免所有的URIs扫描。 由于重写,redirect和身份validation令牌都在Web服务器上生成(我们如何保留它),所以如何通知mod安全性这些头文件是合法的,而不是扫描它们? 75.75.75.75 – – [01/May/2015:10:55:52 -0400] "GET /thing.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328 HTTP/1.1" 200 15100 "https://example.org/example.aspx?XOW%5eLdz%3c2%2f1%2f42%2527kbmhtbffJfx%3e0%2527qpkf%5ejc%3e2%2527Cfruho%60uhpmXOW%5eLdz%3c2%2f1%2f42%2527RptsbfVQU%60Jfx%3e193%2527qpkf%5ejc%3e2%2527RptsbfVQU%60Ejqts%60Bihmc%60Mblf%3cSdrtfru%1fTbpqjmh" 75.75.75.75 – – [01/May/2015:10:55:52 -0400] "GET /example/example.svc/js HTTP/1.1" 200 1786 "https://example.org/example.aspx?XOW%5eLdz%3c375%25cddnnd%60ttds%5ebt%60he%3c5%2f58328"