|
|
|
联系客服020-83701501

高级日志处理:处理你的入侵记录

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
低级日记处置:处置你的入侵记录

本文将供给日记收集和剖析的简要概述。详细而言,将并重于三个根蒂根底标题:日记传输、日记收集和日记剖析。同样会涉及到繁杂的日记存储和归档。编写此文的目的在于,紧接着《法庭现场剖析存留的Linux系统》的日记处置再次进一阵势论说。
日记传输
~~~~~~~~~
首先,让我们看看日记传输。关于保守的UNIX日记传输机制是UDP,514端口。日记动静发送和接收有系统日记保卫进程来实现。网络安全设备(岂但是基于UNIX)还经常把持UDP记录。此舆论最群体的标题是甚么呢?动静或者被注入,静默地坚持(或变动)和通报耽搁。别的,也没有确认发送或加密机制。考虑到这些标题,如许就很清楚明白了,UDP记录关于高度安全的环境是不恰当的,除非收集的质料是一个单独的网络日记。

首先,有一个可靠的系统日记传输标准。最繁杂的舆论是登录本地并定期复制到一个SSH就事器。有一些可用的积极口头来把持,下列所示:

1. 转储日记 – logrotate
2. 缩短 – gzip
3. 垄断校验和算法 – md5sum
4. 从主机复制日记到就事器 – scp
5. 再次运行md5sum并进行比较
6. 在安全之处存储日记文件并校验(很或者已加密)

无非,这种舆论最邃晓的弊病就是年光耽搁。差异的是基于UDP的系统日记,该日记复制舆论同意日记之间的生成和安全贮存以及剖析。无意偶尔须要即时看到相当严重的日记文件。

有一种舆论可能即时接见会面日记,那就是单纯。把持Netcat或者经由安全单纯UDP经由重定向syslog到TCP单纯。根蒂根底顺序下列所示:

生成日记的主机:

1. 编辑/etc/syslog.conf:
*.*??@localhost

2. 运行呼吁:
# nc??-l -u -p 514 | cryptcat 10.2.1.1 9999

收集日记的主机:

1. 短途接收syslog
2. 运行呼吁:
# cryptcat -l -p 9999 | nc -u localhost 514

别的,Stunnel的SSL封包,可垄断于Cryptcat。

假设如意意历久单纯筹算治理,或者须要更高的安全性(如更高的发送确认或加密日记的完整性验证),这或者是考虑syslog代替品的时候了。我们将看看两个众所周知的代替品:由BalabIT开发的syslog-ng和CORE SDI开发的msyslog。(还有第三个抉择,由Darren Reed编写的nsyslog,但仿佛没有积极地更新了。)它们的配合特色网罗TCP通道、更多过滤遵守(除了标准的紧迫程度和系统日记设施)和日记文件的完整反对。
msyslog

在TCP内容部署责任须要涉及到主机上的环境,下列所示:

客户端:

1. 修改/etc/syslog.conf
*.*??%tcp -a -h loghost -p 514??-m 30 -s 8192

取代

*.*??@loghost

2. 运行msyslogd -i linux -i unix,仅仅运行/etc/init.d/msyslog start即可实现。

就事器:

1. 运行msyslogd -i linux -i unix -i ‘tcp -a -p 514’,这个或者修改/etc/syslonfig/msyslog实现:
IM_LINUX=”-i linux”?????????????# 典范榜样:”-i linux”
IM_TCP=”-t tcp -a -p 514″???????# 典范榜样:”-i tcp accepted.host.com 514″
IM_UNIX=”-i unix”???????????????# 典范榜样:”-i unix”

其后果是未加密的TCP连贯(或者经由tcpdump proto TCP和514端口验证,即可看到日记动静)。在syslog的收集就事器中,散布着种种日记文件,须要进行如下工作:

1. 对syslog.conf减少一行:
*.info;mail.none;authpriv.none;cron.none %peo -l -k
/etc/.var.log.authlog.key %classic??/var/log/messages

2. 停止syslog保卫进程并删除日记文件

3. 运行改顺序建立初始校验(把持内置的“peochk”顺序):
# peochk -g -k /etc/.var.log.authlog.key

4. 封闭syslog:/etc/init.d/msyslog start
测试一下:
peochk -f /var/log/messages -k /etc/.var.log.authlog.key

看:

(0) /var/log/messages文件是完好的

假设编辑“messages”文件(例如,删除一行),尔后重新测试,后果将是:

(1) /var/log/messages已败坏

msyslog的长处网罗:它把持雷同的/etc/syslog.conf文件作为常例系统日记,全体在UDP内容以及普及的正则评释式反对,这在部署进程中特别有用。

最安全的设置会涉及到一个存在解放的msyslog本地主机地址(127.0.0.1)和把持了SSH RSA/DSA认证的接见会面管制,以及关连日记就事器的哈希完整性查抄。另一个严重标题是缓冲。由于TCP供给可靠的传输(不像UDP),确保日记就事器不会泛起停机环境。Msyslog供给了可配置缓冲的选项。如上述配置:“-m 30 -s 8192”重试限制和缓冲区大小。
Syslog-ng

Syslog-ng反对TCP连贯、过滤动静、完整转发主机日记等等,大批文档均可用到。

为了使Syslog-ng可能责任,就必须把持一个转换货色,转换/etc/syslog.conf到syslog-ng的格式文件。呼吁下列所示:

# /usr/share/doc/syslog-ng-1.5.17/syslog2ng < /etc/syslog.conf > syslog-ng.conf

行之有效,摘录下列:

# 全局选项
options { use_dns(yes);
?????????use_fqdn(no);
?????????use_time_recvd(no);
?????????chain_hostnames(no);
?????????mark(0);
?????????sync(0);
};

source s_local { internal();
????????????????unix-stream(“/dev/log” keep-alive(yes) max-connections(10));
????????????????file(“/proc/kmsg”);
};

# *.*??@czyinvicta
destination d_2 {
???????tcp(“czyinvicta” port(514));
};

filter f_5 {
???????level(debug…emerg);
};

log { source(s_local); filter(f_5); destination(d_2); };

这很容易遵照逻辑,即使该文件与畸形的syslog差异。不论如何,亲身手工写入文件并把持低级选项须要进修一些常识。

Syslog-ng还存在更细小的接见会面管制身手,或者把持TCP封包来限制网络接见会面。该顺序还或者重定向动静的实时处置自定义顺序。例如,每个日记动静发送到标准输入的“correlate.sh”脚本,减少到配置文件:

log { source(s_local); destination(d_prg); };
destination d_prg { program(“/home/bin/correlate.sh -a”); };

第一次测试是进行交互把持性测试:syslog-ng客户端凋射发送UDP和TCP动静到msyslog就事器。

Syslog-ng陪伴着负荷测试货色(在一个大循环中调用“/usr/bin/logger”)。但是,显着TCP传输速率比UDP慢,甚至没有加密。理当指出,这对保守的syslog的UDP传输故障内容会组成动静散失。

总之,把持msyslog和syslog-ng实行安全性工作是一个不错的抉择。但是,在详细测试前,必须安置。

?

日记收集
~~~~~~~~~~
日记收集典范榜样的舆论是有一个特意记录日记的主机对许多机械的庞大日记文件进行定期缩短并收集。

数据库日记记录将把我们带到一个新的条理。Msyslog有本地数据库(MySQL和Postgress)记录反对。要把持就事器收集日记,须要配置如下内容:

0. 部署和启用MySQL:

# /etc/init.d/mysql start

1. 建立一个数据库实例:

# echo “CREATE DATABASE msyslog;” | mysql -u root -p

2. 定义日记存储表:

# cat syslog-sql.sql | mysql msyslog

该文件下列所示:

???????CREATE TABLE syslogTB (
????????facility char(10),???
????????priority char(10),???
????????date date,???????????
????????time time,???????????
????????host varchar(128),???
????????message??text,???????
????????seq??int unsigned auto_increment primary key
??????);

3. 编辑数据库日记模块syslog.conf:

*.*?????%mysql -s localhost -u snort -d msyslog -t syslogTB

4. 插入动静接见会面权限:

# echo “grant INSERT,SELECT on msyslog.* to?snort@localhost;” |??mysql -u root -p

5. 重新动员msyslog:

# /etc/init.d/msyslogd start

在PHPAdmin中发扬剖析的后果下列所示:

高级日志处理:如何处理犯罪记录

报文队列曾经在客户端中启用(上图发扬剖析的配置)。在某些环境下,假设把持TCP内容,有必要在重新动员就事器当前,再重启客户端。

别的syslog收集货色网罗SQLSyslogd,可定期把持syslog保卫进程。

在这里先容了收集数据库日记以纯文本存储的几个严重优势。数据库或者被设置为遭受更自制值的动静。
日记剖析
~~~~~~~~~
此刻让我们转向日记剖析这一部分。日记剖析经常被定义为在数据和日记文件中得到入侵遗迹。究竟后果上,有许多好的软件被写入到日记剖析纯文本文件。

日记剖析可分为实时剖析和定期剖析。如“swatch”或“logsurfer”货色可能进行实时处置,“logcheck”、“logwatch”货色可进行定期剖析,虽然,还有许多别的的货色。

假设日记存储到数据库,把持甚么技术或者剖析这些呢?经由活动并创建关连,而不是运行脚本或写一个繁杂的(或不那末繁杂,假设须要的话)SQL文件来剖析。

剖析日记,人们或者会想运行种种SELECT盘问,下列所示:

低级概述盘问:

—————————————————————————————-
|??number of events??????????????????????|??select count(*) from syslogTB;??????????????|
—————————————————————————————-
|??number of hosts that sent messages in |??select count( distinct host) from syslogTB; |
—————————————————————————————-
|??number of messages per host???????????|??select host, count(host) from syslogTB??????|
|????????????????????????????????????????|??group by host order by host desc;???????????|
—————————————————————————————-

来自于MySQL的输出:

Host

Count(host)

box1

20

box2.example.com

3147

详细呈报:

—————————————————————————————
|??Search Type?????????????|????SQL String?????????????????????????????????????????????|
—————————————————————————————
|??search by hostname??????|????select * from syslogTB where host like “%box1%”????????|
—————————————————————————————
|??search by message text??|????select * from syslogTB where message like “%restart%”; |
—————————————————————————————
|??search by combination???|????select * from syslogTB where message like “%restart%”??|
|???????????????????????????????and host like “box1”;??????????????????????????????????|
|??????????????????????????|????select * from syslogTB where message like “%restart%”??|
|???????????????????????????????and time like “10:51%”;????????????????????????????????|
—————————————————————————————

来自于MySQL的输出:

facility

priority

date

time

host

message

seq

NULL

NULL

2010-02-05

10:51:19

box2.example.com

syslogd: restart

1

NULL

NULL

2010-02-05

10:51:41

box2.example.com

syslogd: restart

3

一小我私家的构思力是唯一的限制,由于SQL语法特别活络,同意实行及其繁杂的盘问。只需记着,盘问一个装载数据库的大批动静须要一段年光(不论如何,比“grep”的纯文本文件要快)。
序幕
~~~~~~
作为序幕,我在此总结一些最好的系统记录应遵照的做法:
·把持专用记录主机
·确保阴险的接见会面管制,在各个就事器上启用日记记录
·加密日记
·尝试登录多个模块以前进可靠性
·把稳日记分区/存储的溢出
·认识存储媒介或非联网的合计机可否存在病毒

link:http://blog.sina.com.cn/s/blog_51af865b0100hekd.html

本文由网络安全攻防研究室(www.91ri.org)动静安全小组收集收拾整顿,转载请注明来因!

数安新闻+更多

证书相关+更多