2021年1月13日incaseformat蠕虫病毒的消息席卷朋友圈,该病毒不具备加密文件危害,同时该病毒也并非新型病毒,而是存在已久,病毒主要传播方式为U盘等移动存储器设备,不会通过U盘以外的网络共享、漏洞等常见蠕虫传播方式传播。看到有安全公司在写到如何防范该病毒时提了到321备份原则,我们先来了解一下什么是321备份原则。
3份备份数据
也许有企业会认为三份数据备份有点过度,但假设数据故障是独立事件,同时遗失三份数据的机率便是百万分之一,并非是只有一份备份时的百份之一,这样可大大提高可靠性。另一个需要多于两份备份的原因,是可将主副本及备份存于不同地方。
存于2种不同的媒介
用2种不同媒介保存可确保不会因为使用同一装置存储数据而引起相同的故障。由于同一存储方案的不同硬盘有可能连续发生故障,建议将数据存于至少2种存储媒介,而且媒介需要位于不同地方。
1个备份存于异地
由于火灾等意外即可损坏所有硬本备份,一个近年普及的存储选项是把数据存放于云端上,这个选项有其必要性。
对于 “2” 我也有新的理解,并且适用于防范大部分病毒造成的后果,计算机病毒的定义是编制者在计算机程序中插入的破坏计算机功能或者数据的代码 ,既然是计算机代码,那就需要有一定的运行环境,比如这次的incaseformat蠕虫病毒主要是两个由delphin编写的tasy.exe和ttry.exe文件,既然是.exe的文件,那么我们知道它就不可能在Unix系的操作系统上运行,并且该病毒的攻击手段密切结合了Windows的注册表和盘符,这些在Unix系操作系统里面都是完全不同的,那我们就可以考虑将Windows上的重要文件拷贝到Linux的系统上备份,这也就是我理解的“2”,2种异构的平台,如果是windows的病毒,在没有额外的备份设备的情况下,将文件备份到另一台windows系统上,那么就算是3份数据、异地保存也没有办法防范,病毒可能会和重要文件一起被拷贝到新的windows环境中,等到爆发的那一天,所有的重要文件都会烟消云散。
下面我们来看下如何将Windows的文件备份到Linux的系统上(此处Linux我们以CentOS7为例),提供一种相对简单的方法。
注意配置文件中=两边都有空格
hosts allow是允许远程访问的主机ip
port是远程访问的端口
[backup]是一个定义的备份模块,其中包含了备份的路径,backup名字可改 path是备份的路径,默认系统E:\oraclebackup_script\backup_file要写成/cygdrive/e/oraclebackup_script/backup_file
read only只读,建议true,不能在服务端写入数据
auth users远程访问的用户,就是刚刚我们安装时设置的账号名字
secrets file远程访问用户的密码存放位置,如下图放置位置是C:\Program Files (x86)\ICW\etc\rsync_db.ps中,此处是设置安装目录的相对位置路径,比如root的密码是Hello1@3World,那么在rsync_db.ps文件中就要加入root:Hello1@3World这行
\#!/bin/expect
set timeout 30
spawn /usr/bin/rsync -r --progress --port=873 root@ x.x.x.x ::backup / backup
expect "Password:"
send " Hello1@3World \r" #检测到“Password:”后发送密码
interact
按照如上的方式将shell在crontab计划任务中调用,确保调用时间是被备份的服务器完成备份的时间,然后到了计划任务执行时间,服务器上的目录就会被同步到/backup目录中,这样的备份方式在服务器本身出现故障时无法启动时可以确保有备份数据,并且遇到 incaseformat 这样的蠕虫病毒一般是没有影响的,当 incaseformat 删除除C盘外的所有内容时会连子目录一起删除,当rsync找不到对应备份的目录,那备份操作也就失败,Linux上的备份数据也不会丢。但是如果备份的内容在除C盘外的其他盘符的根目录下,或者遇到的是勒索病毒,或者是rsync操作是在 incaseformat 蠕虫执行过程中,那么同步到Linux上的文件同样会受到影响,那么我们可以考虑企业级的备份是怎么做的,它们会在不同的时间点创建不同的全量备份,并保存好几份,甚至以IO变化量的形式去备份,方便后期精准的恢复,那么我们可以按照全量备份多次的方式解决前面介绍备份方式中的问题。
我们先改进一下之前的expect脚本
\#!/bin/expect
set timeout 30
set date [ clock format [ clock seconds ] -format "%Y%m%d" ]
set secon [ clock seconds ]
set yestoday_secon 0
set yestoday_secon [expr {$secon - 86400} ]
set yestoday [ clock format [ expr {$yestoday_secon} ] -format "%Y%m%d" ]
system "mkdir / backup/backup -$yestoday" #创建以日期为时间戳的备份目录,时间戳格式是年月日,比如20210115
spawn /usr/bin/rsync -r --progress --port=873 root@ x.x.x.x ::backup / backup/backup-$yestoday #将每次备份到对应时间戳的目录下
expect "Password:"
send " Hello1@3World \r"
interact
然后我们在通过crontab调用的时候,会自动在/backup目录下创建带时间戳的自目录,只要空间足够,那就可以备份足够的内容,如果空间不够可以再写别的shell去删除老的备份,设置好保留几份。虽然有了异构的备份,但是备份是否成功,是否可用还需要我们定期的检查,如上介绍的备份方法适用于没有专业备份工具的环境中,做到以最简单最经济的方式实现目标。
备份是解决病毒造成结果后的最后一道保障,我们有备份,当然也不希望去用备份,我们还是需要在前期针对病毒做好防范工作,日常的杀毒软件安装、杀毒库及时更新、定期杀毒、不使用陌生的移动介质、定期修改账号密码等安全规范都需要我们一一落实,安全问题、黑客攻击有水桶效应,他们都会找大家最薄弱的地方进行攻击,而这些最薄弱的地方也是我们日常最容易改正并且要坚持的,希望大家都能不受病毒所害。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论