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

简介:

监控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

相关文章
|
2月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
166 0
|
5月前
|
SQL 监控 数据库连接
实现基于内网管理监控软件的用户身份验证系统的PHP代码详解
随着信息技术的不断发展,内网管理监控软件的需求也日益增长。为了确保系统的安全性,用户身份验证成为了至关重要的一环。本文将详细介绍如何通过PHP代码实现基于内网管理监控软件的用户身份验证系统,并提供一些代码示例。
230 0
|
存储 关系型数据库 MySQL
【网络安全】——系统敏感文件路径汇总
最近在巩固和提高自己的内网渗透能力,但在做一些靶场时,做不出来去找攻略,结果发现是自己错过了一些系统的敏感文件,一眼望过去,却没有认出来它,殊不知里面放着的敏感文件就是这个靶场的关键,所以总结了一下windows和linux的系统敏感路径,时不时看看,先混个眼熟哈哈,希望对你们也有帮助,建议收藏
458 0
【网络安全】——系统敏感文件路径汇总
|
机器学习/深度学习 网络协议 安全
【网络安全】利用samba服务绕过未开启文件包含配置
利用samba服务绕过未开启文件包含配置
128 0
【网络安全】利用samba服务绕过未开启文件包含配置
|
SQL 缓存 安全
WordPress 站点地址被恶意篡改的防护方案讨论
关键词:WordPress,篡改,挂马,恶意,攻击,注入,跳转,重定向,网址,siteurl,home,url,hacked,jump,redirect 摘要:WordPress 站点稍有不慎就有可能受到恶意攻击。一种常见的手段是通过篡改站点的地址,用户访问网站时将会被重新定向到恶意网站。长老将分析两种常见的攻击手段:修改文件和修改数据库,并分享一些安全防护的小技巧。
555 0
|
存储 算法
Confluence 6 附件存储文件系统的分级
从 Confluence 3.0 开始,附件的存储方式有了重大的改变和升级。如果你是从 Confluence 2.10 及其早期版本升级上来的,请参考 Upgrading Confluence 页面中推荐的升级路径,同时请阅读 Confluence 3.0 文档中 Hierarchical File System Attachment Storage 页面来获得新系统文件存储结构的相关信息。
1239 0
|
数据库 数据格式 XML
Confluence 6 恢复一个站点有关使用站点导出为备份的说明
推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。
867 0
|
存储 XML 数据格式
Confluence 6 如何备份存储文件和页面信息
备份的 ZIP 文件包含有 entities.xml,这个 XML 文件包含有 Confluence 的所有页面内容和存储附件的目录。
925 0
|
数据中心 数据安全/隐私保护
Confluence 6 恢复一个站点问题解决
如果你在导入的时候遇到了问题,检查下面的一些提示。 你的文件太大而不能上传?这个是非常常见的错误。出现的原因是备份文件不能在规定的时间内上传到服务器上。
1051 0
|
数据库
Confluence 6 恢复一个站点
这个页面对如何从一个 XML 导出文件中恢复到一个已经存在的 Confluence 站点进行描述。 如果你希望导入数据倒一个新的站点,请参考 restoring from backup during setup 页面中的内容。
1102 0