1、第2章 日志收集w w w.q i a n x i n.c o m2.1 概述2.2 收集对象2.3 收集方式2.4 日志收集器目录1.了解日志收集对象;2.了解典型日志收集方式的主要内容;3.了解典型的日志收集方式的异同;5.理解日志收集对象的特点;4.掌握日志收集器的流程;本章学习目标概述2.1(1)日志收集系统能够通过多种方式全面收集网络中各种设备、应用和系统的日志信息,确保用户能够收集并审计所有必需的日志信息,避免出现审计漏洞。(2)日志收集系统支持通过多种网络协议进行日志收集。(3)日志收集系统支持为用户提供一个软通用日志收集器(事件传感器)对无法通过网络协议发送给日志收集系统的用户
2、日志进行收集。日志收集系统收集对象2.2(1)认证(2)系统启动、关闭和重启。(3)服务启动、关闭和状态变化。(4)服务崩溃。(5)杂项状态消息。日志收集与分析系统需要支持采集各种主机操作系统记录的各种消息,这些操作系统包括Windows,Solaris,Linux,AIX,HP-UX,UNIX,AS400等,这些日志包括:操作系统生成的日志(1)可用于入侵检测,因为成功和失败的攻击通常在操作系统日志中留下独特的痕迹。通过收集这类消息,可以做出过去和将要出现的威胁的判断。(2)可用于事故响应,因为尽管有各种安全防护措施,成功的攻击仍然可能发生。操作系统消息被视为安全相关日志的原因(1)登录时间
3、日志子系统:登录时间日志通常会与多个程序的执行产生关联,一旦触发login等程序,就会对wtmp和utmp文件进行相应的更新,保证系统管理员能够有效地跟踪谁在何时登录过系统。(2)进程统计日志子系统:该类日志能够记录系统中各个基本的服务,可以有效地记录与提供相应命令在某一系统中使用的详细统计情况。(3)错误日志子系统:其主要由系统进程syslogd(新版Linux发行版采用rsyslogd服务)实现操作。它由各个应用系统的守护进程、系统内核来自动利用syslog向日志文件中进行添加,用来向用户报告不同级别的事件。UNIX/Linux的系统日志分类(1)基于syslogd的日志文件:该类型主要采
4、用syslog协议和POSIX标准进行定义,通常以ASCII文本形式存在,一般由日期、时间、主机名、IP地址和优先级等部分组成。(2)应用程序产生的日志文件:该类型的日志文件通常是ASCII码的文本文件格式。(3)操作记录日志文件:对各个终端的登录人员进行记录的日志信息lastlog,记录内容主要有:用户名、终端号、登入IP、登入使用时间等。对系统中的邮件服务器进行记录的日志maillog,记录内容主要有进程名、邮件代号、日期、时间、操作过程等。UNIX/Linux系统的主要日志文件格式(1)系统日志:主要是指Windows 2003/Windows 7等各种操作系统中的各个组件在运行中产生的
5、各种事件。(2)安全日志:主要记录各种与安全相关的事件。构成该日志的内容主要包括:各种对系统进行登录与退出的成功或者不成功信息、对系统中的各种重要资源进行的各种操作。(3)应用程序日志:主要记录各种应用程序所产生的各类事件Windows日志分类(1)网络设备包括路由器、交换机和其他将电脑桌面和服务器连接起来组成网络的设备。(2)网络设备的日志在安全中起到关键的作用。网络设备(1)登录和注销:登录是进入操作系统或应用程序的过程;注销是向系统发出清除现在登录的用户的请求,清除后即可使用其他用户来登录你的系统。(2)建立服务连接:建立服务连接是指通信双方在建立通信时事先建立的一条通信线路。(3)出站
6、和入站传输字节数:记录网络设备的传输字节数。(4)重新启动:主要作用是保存对系统的设置和修改以及立即启动相关服务等。(5)配置更改:对设备的配置进行更改的记录。常见网络设备消息类别(1)路由交换设备:是网络互连的核心设备,主要由路由处理器、交换结构、输入端口和输出端口组成,其基本功能可分为路由处理、数据包转发和其他处理。(2)防火墙:是一种位于内部网络与外部网络之间的网络安全系统,由服务访问规则、验证工具、包过滤和应用网关四部分组成,用于保护内部网免受非法用户的侵入。(3)入侵检测集系统:是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。常见网络设备的种
7、类 (1)安全设备包括防火墙、虚拟私人网络(Virtual Private Network,VPN)、IDS、IPS、防病毒网关、网闸、防分布式拒绝服务(Distributed Denial of Service,DDOS)攻击、WEB应用防火墙等在主机上运行的具备安全保护功能的应用程序或者设备。(2)安全设备所产生的日志与攻击、入侵、感染等相关。安全设备(1)检测到的侦察或者探查行为(2)对可执行文件的修改(3)检测到攻击(4)检测并拦截攻击(5)检测到成功入侵(6)不安全的系统重新配置或损坏(7)身份认证或者授权失败安全设备主要记录的事件类型(1)应用系统包括邮件、Web、FTP、Teln
8、et等。(2)应用系统可以记录业务应用系统上的每个账户的活动信息。(3)应用系统的日志经过有分析和深入挖掘之后能够最大限度地在系统管理人员及安全取证人员的工作中发挥重要作用。应用系统(1)权限管理日志:记录业务应用系统的用户权限分配的每一个更改活动,如用户/用户组权限的指派和移除。(2)账户管理日志:记录应用系统上的每个账户的管理活动,包括用户/用户组的帐户管理,如创建、删除、修改、禁用等,以及用户的帐户密码管理。(3)登录认证管理日志:记录业务应用系统的用户登录认证活动,包括成功的用户登录认证、失败的用户登录认证、用户注销、用户超时退出。(4)系统自身日志:记录业务应用系统在启动或关闭服务时
9、或者在发生影响业务应用系统故障的活动,包括服务启动、服务停止、系统故障等。(5)业务访问日志:记录业务应用系统的业务资源访问活动。应用系统日志分类(1)访问日志:记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式。(2)错误日志:记录下任何错误的处理请求,它的位置和内容由ErrorLog指令控制,通常服务器出现什么错误,首先对它进行查阅,是一个最重要的日志文件。Apache日志分类(1)客户端向Web服务器发出请求,根据HTTP协议,这个请求中包含了客户端的IP地址、浏览器的类型、请求的URL等一系列信息
10、。(2)Web服务器收到请求后,根据请求将客户要求的信息内容直接(或通过代理)返回到客户端。(3)Web服务器同时将访问信息和状态信息等记录到日志文件里。Apache日志记录过程Apache日志记录过程(1)数据库是按照数据结构来组织、存储和管理数据的仓库。(2)数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改。数据库(1)事务管理器控制查询处理器、日志系统以及缓冲区(2)日志在缓冲区生成,日志管理器在一定的时候控制缓冲区的刷盘操作。(3)当系统崩溃的时候,恢复管理器就被激活,检查日志并在必要时利用日志恢复数据。数据库事务系统工作模式(1)事务日志是数据库的重要组件,如果系
11、统出现故障,则可能需要使用事务日志将数据库恢复到一致状态。(2)在恢复日志时,事务工作分为两种:重做,这些事务写到数据库的新值会重写一次。撤销,就跟从来没有被执行过一样,数据库被恢复。事务日志(1)恢复个别的事务;(2)在数据库启动时恢复所有未完成的事务;(3)将还原的数据库、文件、文件组或页前滚至故障点;(4)支持事务复制支持备份服务器解决方案。事务日志支持的操作收集方式2.3(1)Syslog是一个在IP网络中转发系统日志信息的标准,目前已成为工业标准协议,可用它记录设备的日志。(2)Syslog属于一种主从式协议。(3)Syslog可以记录系统中的任何事件,管理者可以通过查看系统记录随时
12、掌握系统状况。(4)通过适当配置,还可以实现运行Syslog协议的机器之间的通信。Syslog%FACILITY-SUBFACILITY-SEVERITY-MNEMONIC:Message-text(1)FACILITY(特性):由2个或2个以上大写字母组成的代码,用来表示硬件设备、协议或系统软件的型号。(2)SEVERITY(严重性):范围为07的数字编码,表示了事件的严重程度。(3)MNEMONIC(助记码):唯一标识出错误消息的代码。(4)Message-text(消息文本):用于描述事件的文本串。消息中的这一部分有时会包含事件的细节信息,其中包括目的端口号、网络地址或系统内存地址空间中
13、所对应的的地址。Syslog消息格式 标准化的Syslog使用用户数据报(UDP)作为底层传输层协议。Syslog的UDP端口为514。其完整格式由三个可识别的部分组成。第一部分是PRI,第二部分是HEADER,第三部分是MSG。报文的总长度必须是1024字节之内。(1)PRI必须是三个,四个或五个字符,并且第一个和最后一个字符是尖括号。PRI部分以“”。数字的编码必须是7位ASCII格式。(2)HEADER部分包含时间戳以及设备的主机名或IP地址。Syslog的HEADER部分必须使用可见(可打印)的字符。字符集必须使用PRI中的ASCII字符集。(3)MSG部分是syslog报文的剩余部分
14、。通常它包含生成这个消息进程的其他信息,以及消息的文本内容。标准Syslog介绍 (1)SNMP是用来管理设备的协议,目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用。(2)SNMP是查询和配置设备的一种协议,SNMP陷阱和通知是设备在特定事件发生时生成的特殊的SNMP消息。(3)SNMP协议整体来说不是一个日志记录系统,SNMP陷阱和通知可以看作日志消息的类型。SNMP(1)SNMPv1:SNMP v1 是最初实施SNMP协议。SNMPv1 运行在像UDP,IP,OSI无连接网络服务(CLNS),DDP(AppTalk Datagram-Delivery),IPX(Nov
15、ell Internet Packet Exchange)之上.SNMPv1 广泛使用成为因特网上实际的网络管理协议。(2)SNMPv2:SNMP v2是1993年设计的,是v1版的演进版。Get,GetNext和Set操作相同于SNMPv1。然而,SNMPv2 增加和加强了一些协议操作。(3)SNMPv3:SNMP v3 在前面的版本上增加了安全能力和远程配置能力,SNMPv3结构为消息安全和VACM(View-based Access Control Model)引入了USM(User-based Security Model)。这个结构支持同时使用不同的安全机制,接入控制,消息处理模型。
16、SNMP版本(1)SNMP陷阱是SNMPv1协议的一部分。(2)SNMP通知是SNMPv2和SNMPv3协议的一部分。(3)陷阱和通知之间的关键区别是通知包含了接收者向发送者发回确认的功能。(4)设备必须经过配置才能产生消息,包括什么事件生成消息,向哪里发送消息。SNMP陷阱和通知 (1)SNMP协议允许“get”(获取)操作,可以用它从一个设备或者系统上读取信息,但是能得到什么信息这很大程度上取决于设备的实现。(2)当接收到某种SNMP陷阱,使用SNMP get 轮询设备以读取附加信息,进一步关联或者验证刚刚收到的陷阱。SNMP get(1)功能:SNMP set允许用户更改远程系统上的某个
17、数值。(2)示例:网桥实现某种规范,允许使用SNMP set 开关交换机端口。SNMP set (1)SNMP Trap是某种入口,到达该入口会使SNMP被管设备主动通知SNMP管理器,而不是等待SNMP管理器的再次轮询。(2)SNMP Trap是SNMP的一部分,当被监控段出现特定事件,如性能问题或者网络设备接口宕掉等,代理端会给管理站发告警事件。SNMP Trap(1)事件驱动,第一时间收到设备故障告警。(2)提供SNMP Trap的接收,并通过对Trap信息翻译,展现事件。(3)定制SNMP Trap告警规则触发告警,提供多种方式发送告警信息。(4)支持事件导出。(5)支持各类设备厂家信
18、息管理库(Management Information Base,MIB)的导入。SNMP Trap功能的特点 (1)JDBC(Java DataBase Connectivity,JAVA数据库连接),是JAVA平台的一个标准组成部分。(2)JDBC是 JAVA 程序连接和访问各种数据库的应用程序接口(Application Programming Interface,API),它由一组类和接口构成 (3)通过调用JDBC所提供的方法,可以实现 JAVA程序与各种数据库服务器之间的连接,用户可以使用完全相同的 JAVA 语法访问大量各种各样的 SQL 数据库。JDBC(1)JAVA程序:包括
19、JAVA应用程序和JAVA小应用程序,主要是根据JDBC方法实现对数据库的访问和操作。(2)JDBC驱动程序管理器:能够动态地管理和维护数据库查询所需要的所有驱动程序对象,实现JAVA程序与特定驱动程序的连接,从而体现JDBC的“与平台无关”这一特点。(3)驱动程序:用于处理JDBC方法,向特定数据库发送SQL请求,并为JAVA程序获取结果。在必要的时候,驱动程序可以翻译或优化请求,使SQL请求符合DBMS支持的语言。JDBC基本层次结构图JDBC基本层次结构(1)JDBC-ODBC Bridge Driver:这类驱动程序将JDBC的调用转换为对ODBC驱动程序的调用,再由ODBC驱动程序来
20、操作数据库。(2)Native API Driver:这个类型的驱动程序会以原生(Native)方式,调用数据库提供的原生程序库。(3)JDBC-Net Driver:这类驱动程序会将JDBC的方法调用,转换为特定的网络协议(Protocol)调用。(4)Native Protocol Driver:这类驱动程序实现通常由数据库厂商直接提供。JDBC驱动程序分类JDBC_ODBC桥结构示意图(1)此类驱动程序也称为JDBC-ODBC桥。(2)这类驱动程序将JDBC的调用转换为对ODBC驱动程序的调用,再由ODBC驱动程序来操作数据库;(3)由于利用现成的ODBC架构,只需要将JDBC 调用转换
21、为ODBC调用,所以要实现这种驱动程序非常简单。JDBC-ODBC Bridge Driver (1)这个类型的驱动程序以原生(Native)方式,调用数据库提供的原生程序库(通常由C+实现)。(2)JDBC的方法调用都会转换成以原生程序库中的相关API调用。JDBC驱动示意图Native API Driver (1)这个类型的驱动程序是个纯粹的JAVA客户程序。(2)该类驱动程序会将JDBC的方法调用,转换为特定的网络协议(Protocol)调用,目的是与远程数据库特定的中介服务器或组件进行协议操作,而中介服务器或组件再真正与数据库进行操作。JDBC驱动示意图JDBC-Net Driver
22、(1)这个类型的驱动程序实现通常由数据库厂商直接提供。(2)驱动程序实现会将JDBC的调用转换为与数据库特定的网络协议,以与数据库进行沟通操作。JDBC驱动示意图Native Protocol Driver (1)ODBC与JDBC一样,也是一种重要的数据库访问技术。(2)ODBC(Open DataBase Connectivity,开放式数据库连接)最初是Microsoft公司为实现MS Windows平台上的数据库透明访问而开发的。它以SQL Access Group(SAG,现属X/Open)的Call-Level Interface(CLI,调用级接口)为标准应用编程接口。(3)OD
23、BC是一个可以实现本地或远程数据库连接的函数集,提供一些通用的接口(API),以便访问各种后台数据库。ODBC(1)API:是应用程序与ODBC的接口,完成对应用程序所提出的SQL语法以及数据库类型的检查,并将检查后的结果移交驱动程序管理器。(2)驱动序管理器:根据前端客户的设置来确定目标数据库的驱动程序,并加载到Windows中执行初始化。(3)驱动程序:处理API调用、实现SQL请求的传送,也接收数据库的响应、送回前端客户。ODBC系统结构图ODBC的组成(1)ODBC 提供C接口,因而JAVA不能直接引用。如用JAVA来调用C代码,则有损于网上运行的安全性和可靠性;(2)ODBC的CAP
24、I运用了大量的指针,而JAVA消除了指针等认为网上运行不安全的因素且面向对象,因此JDBC成为面向对象的接口,并适用于JAVA编程;(3)JDBC是“纯JAVA”的ODBC解决方案,取代了ODBC发布必须在每台客户机上手工安装,而JDBC代码在所有JAVA平台上随运行环境自动安装,具有可移植性和安全性;(4)ODBC难以学习,而JDBC仅是JAVA 开发环境的一部分。(5)JDBC具有平台无关性,适用性强,可以跨平台与各种数据库连接进行访问,程序运行效率高。JDBC与ODBC不同点(1)文件传输协议(File Transfer Protocol,FTP),是用于在网络上进行文件传输的一套标准协
25、议,使用客户/服务器模式。(2)属于网络传输协议的应用层,用于Internet上的控制文件的双向传输。(3)属于一个应用程序(Application),基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。FTP(1)假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时,FTP通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。(2)如果在ASCII方式下传输二进制文件,系统会自动转译,从而造成数据损坏。ASCII 传输方式(1)在二进制传输中,需要保存文件的位序,以便原始和拷贝的是逐位一
26、一对应的。(2)如果在ASCII方式下传输二进制文件,系统会自动转译,从而造成数据损坏。二进制传输模式(1)FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。(2)PORT命令包含了客户端用什么端口接收数据。(3)在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。Standard模式 (1)建立控制通道,和Standard模式类似,但是在建立连接后发送Pasv命令。(2)服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,
27、客户端连接FTP服务器此端口,FTP服务器将通过这个端口传送数据。Passive模式 (1)生成文本日志的系统成本较低,现有的许多计算机语言中包含了可以很轻松地生成基于文本日志的框架。(2)记录类型丰富,许多流行的系统都采用了基于文本的日志文件格式。文本日志(1)代价低:应用程序写入基于文本的日志文件,从CPU以及I/O资源来说代价很低。(2)典型人类可读格式:可用常规文本工具(如grep和awk)处理和查阅。(3)易于管理和解析:许多常见的基于文本的日志格式已经存在,使得运营和安全团队易于使用一种通用法法来集中化以及解析日志,创造一个更完善的日志管理系统。文本日志格式的优点(1)扁平文本文件
28、在许多方面上是一个扁平的无模式文件,可以遵循某种常见模式或自由格式。(2)系统通常会创建一个新日志文件,并持续向其追加写入,直到磁盘空间不足或某个系统进程指示系统开始一个新日志文件并将当前文件存储。(3)这种格式倾向于以时间先后排序,最早发生的时间位于文件开始处,最近发生的时间位于文件末尾。扁平文本文件 (1)索引文本文件是一种从日志文件中组织数据的方式,它使日志的关键元素能被快速查询。(2)索引扁平文本文件具备扁平文本文件的许多优点,具备快速数据插入能力,并保持人类可读的数据格式。索引扁平文本文件(1)邮件:被动日志采集方式,通过事先在设备内设定好通告触发规则,当符合规则事件发生时,记录下发
29、生事件的具体信息,在某一时间内主动将日志信息以邮件的方式发送给日志接收服务器。(2)FTP:主动日志采集方式事先开发出客户端采集系统,每次抓取日志文本,并以的方式传回日志接收服务器。文本方式采集系统日志的方式 (1)Web Service是一个平台独立的、低耦合的、自包含的、基于可编程的Web应用程序 (2)Web Service可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,是用于开发分布式的互操作的应用程序。(3)Web Service技术能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。Web
30、 Service (1)第三方系统是指系统所接入的其他外部设备,日志收集与分析系统能够实现与外部系统的接口,实现与第三方系统的统一门户的集成。(2)接口支持标准的Portal标准,同时还支持基于Web2.0的meshup技术,实现与第三方系统统一门户基于URL的集成 (3)这些接口服务都内置安全机制,包括信息认证、信息加密等。第三方系统日志收集器2.4(1)日志收集器支持注册为服务,其状态支持同步到系统服务器,监控日志收集器的状态并能告警。(2)收集器支持自保护能力,防止非授权用户强行终止收集器的运行,防止非授权用户强制取消采集器在系统启动时自动加载,防止非授权用户强行卸载、删除或修改采集器。(3)系统能监视收集器的状态,并在审计日志中记录收集器的状态变更,如启动、终止。日志收集器(1)主要对象为服务器日志(2)对不同类型的服务器日志,执行不同的收集脚本(3)将收集的统一格式日志信息存储到索引中,统一存储、使用。日志收集流程