监控站点目录文件是否被篡改

简介:

监控web站点目录下的所有文件是否被恶意篡改,如果有改动就打印改动的文件名,发邮件给管理员,定时任务每隔3分钟执行一次


监控的站点目录是(/var/http/www)

解答:

1、什么是恶意篡改,只有为经过许可的改动都是篡改。

2、文件被篡改的特征

  a、大小可能会变化

  b、修改时间会变化,(文件测试符:ot、nt)

  c、文件内容会变化,md5sum指纹

  d、文件是否被增加或者删除

  

  

问题:

可能脚本无法区分哪些是开发正常的代码上线更改,哪些是黑客的二元篡改。

一般代码发布,都是有相关规定的,在代码发布时,我们可以不监控暂停。如果是MD5sum指纹对比,是否修改文件,我们也会在代码更新后,重新生成md5sum的对比源

1、代码发布方案:大公司或者规范的公司,不会时刻传代码,每天1-2次

2、脚本不严谨啊,工作中先解决问题,然后在解决好问题



解决方法:

1、根据md5sum 对比

2、用inotify监控,如果发生变化就把变化的文件同步到其他目录

3、根据文件内容长度比较.

4、根据文件大小比较.

################################################################################

################################################################################

1、根据md5sum 对比

 缺点:如果是新建的文件,因为之前没有指纹,所以无法检测,解决,我们可以在建立指纹库的时候,也把这个目录的文件数目记录下来。在脚本监控的时候,也把文件数目进行对比,如果文件数目发生变化,那也一样可以监控了

 

 

  a、人工控制指纹文件的建立,上线前执行建立指纹库的操作,并保存

     命令:md5su  路径 > 指纹文件

 #find /etc/ -type f -name "*" -exec md5sum {} > /tmp/checkmd5.db \;

 find /etc/ -type f -name "*" | xargs md5sum > /tmp/checkmd5.db

 

 取监控目录的文件数目

 ls -l /etc/ |wc -l

 ==================

 ls -l /etc/ >>site.log

  b、根据指纹库,对比是否发生变化

     md5sum -c /tmp/checkmd5.db

  

  c、过滤发生变化的文件

      md5sum -c /tmp/checkmd5.db |grep -i FAILED

  开发检查指纹识别的脚本

   #!/bin/sh

   num=`cat site.log|wc -l`

   md5num=`md5sum -c /tmp/checkmd5.db|grep -i FAILED|wc -l`

   filenum=`ls -l /etc/ |wc -l`

   if [  $md5num -ne 0 ]

      then

       echo "md5sum -c /tmp/checkmd5.db|grep -i FAILED"

   fi

   

   if [ $filenum -ne $num ]

      then

       echo "/etc/ dir is change"

   fi

     ###上面的site.log 和 /tmp/checkmd5.db 都是在监控前取到的数据

========================================================== 

把上面脚本变成定时任务,定时监控,或者写while 语句定时监控

[root@LAMP 04]# cat md5diff.sh 

#!/bin/sh

while true 

do

   num=`cat site.log|wc -l`

   md5num=`md5sum -c /tmp/checkmd5.db|grep -i FAILED|wc -l`

   filenum=`ls -l /etc/ |wc -l`

   if [  $md5num -ne 0 ]

   then

      echo "`md5sum -c /tmp/checkmd5.db|grep -i FAILED`"

   fi


   if [ $filenum -ne $num ]

   then

      echo "/etc/ dir is change"

   fi

   sleep 5

done

################################################################################

################################################################################

2、用inotify监控,如果发生变化就把变化的文件同步到其他目录

#!/bin/bash

#par

. /etc/init.d/functions

src=/data/

des=/tmp/data.log

inotify_home=/application/inotify


#${inotify_home}/bin/inotifywait -mrq  --format '%w%f' -e create,delete,close_write $src  >>$des


${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src  >> $des


if [ -s "$des" ]

  then

    action "web site change" /bin/true

cat /dev/null > $des

  else

    action "web site no change" /bin/true

fi  


################################################################################

################################################################################

3、根据文件内容长度比较

 a、在实施方案前,想取得要监控的目录的文件数目,以及每个文件的行数。甚至字节数,

 b、在实施时,就再去监控这个目录的文件数目,以及每个文件的行数,甚至字节数,

 c、对面监控前后,这些文件数目和每个文件行数,进行对比


获取文件数目,和每个文件长度的长度

#!/bin/sh

. /etc/init.d/functions

for file in `ls ./`

do 

   filelen=`cat $file|wc -l` 

   echo "$file ==========>  $filelen"  >> file.log

done

   dirlen=`ls -l /data/|wc -l`

   echo "data ==========>  $dirlen"  >> file.log  

  


################################################################################

################################################################################


3、根据文件大小比较

 a、在实施方案前,想取得要监控的目录大小,以及每个的文件大小

 b、在实施时,就再去监控这个目录大小,以及每个文件的大小

 c、对面监控前后的目录和文件的大小进行对比

 

################################################################################

################################################################################


本文出自 “奋斗吧” 博客,请务必保留此出处http://lvnian.blog.51cto.com/7155281/1701728



本文转自 fxl风 51CTO博客,原文链接:http://blog.51cto.com/fengxiaoli/1952024

相关文章
|
5月前
|
Linux
宝塔开启“网站防篡改程序”后根目录爆满,/www/server/panel/plugin/tamper_proof/sites内容过多是否可以删除,永久解决方案
宝塔开启“网站防篡改程序”后根目录爆满,/www/server/panel/plugin/tamper_proof/sites内容过多是否可以删除,永久解决方案
117 0
|
SQL 监控 数据库连接
实现基于内网管理监控软件的用户身份验证系统的PHP代码详解
随着信息技术的不断发展,内网管理监控软件的需求也日益增长。为了确保系统的安全性,用户身份验证成为了至关重要的一环。本文将详细介绍如何通过PHP代码实现基于内网管理监控软件的用户身份验证系统,并提供一些代码示例。
254 0
|
存储 JSON JavaScript
跨站点脚本(XSS)的介绍
跨站点脚本(XSS)的介绍
|
存储 供应链 安全
microweber/microweber 跨站点脚本漏洞(CVE-2022-1439)
microweber/microweber 跨站点脚本漏洞(CVE-2022-1439)
|
机器学习/深度学习 网络协议 安全
【网络安全】利用samba服务绕过未开启文件包含配置
利用samba服务绕过未开启文件包含配置
156 0
【网络安全】利用samba服务绕过未开启文件包含配置
|
安全 Windows
Resin远程信息泄露漏洞
受影响系统:   Caucho Technology Resin v3.1.0 for Windows   Caucho Technology Resin v3.
1669 0
|
SQL 缓存 安全
phpcms2008网站漏洞修复 远程代码写入缓存漏洞利用
SINE安全公司在对phpcms2008网站代码进行安全检测与审计的时候发现该phpcms存在远程代码写入缓存文件的一个SQL注入漏洞,该phpcms漏洞危害较大,可以导致网站被黑,以及服务器遭受黑客的攻击,关于这次发现的phpcms漏洞细节以及如何利用提权我们来详细剖析。
156 0
phpcms2008网站漏洞修复 远程代码写入缓存漏洞利用
|
SQL 缓存 安全
WordPress 站点地址被恶意篡改的防护方案讨论
关键词:WordPress,篡改,挂马,恶意,攻击,注入,跳转,重定向,网址,siteurl,home,url,hacked,jump,redirect 摘要:WordPress 站点稍有不慎就有可能受到恶意攻击。一种常见的手段是通过篡改站点的地址,用户访问网站时将会被重新定向到恶意网站。长老将分析两种常见的攻击手段:修改文件和修改数据库,并分享一些安全防护的小技巧。
636 0
|
数据库 数据格式 XML
Confluence 6 恢复一个站点有关使用站点导出为备份的说明
推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。
890 0
|
数据中心 数据安全/隐私保护
Confluence 6 恢复一个站点问题解决
如果你在导入的时候遇到了问题,检查下面的一些提示。 你的文件太大而不能上传?这个是非常常见的错误。出现的原因是备份文件不能在规定的时间内上传到服务器上。
1089 0