教你入侵16

教你入侵16
2010年07月21日
  大入侵检测系统高风险事件及其处置对策
  内联网入侵检测系统(以下简称“IDS系统”)能够及时发现一些内联网内的网络病毒、系统漏洞、异常攻击等高风险事件并进行有效处置,从而增强了内联网的安全性,有力地保障了各重要业务系统的正常运行。为了切实加强内联网管理、充分发挥“IDS系统”的作用,下面笔者根据安全监控高风险事件来分析问题、提出对策,以供大家参考。
    事件1 Windows 2000/XP RPC服务远程拒绝服务攻击
    漏洞存在于Windows系统的DCE-RPC堆栈实现中,远程攻击者可以连接TCP 135端口,发送畸形数据,可导致关闭RPC服务,关闭RPC服务可以引起系统停止对新的RPC请求进行响应,产生拒绝服务。
    [对策]
    1、临时处理方法:使用防火墙或Windows系统自带的TCP/IP过滤机制对TCP 135端口进行限制,限制外部不可信任主机的连接。
    2、彻底解决办法:打安全补丁。
    事件2 Windows系统下MSBLAST(冲击波)蠕虫传播
    感染蠕虫的计算机试图扫描感染网络上的其他主机,消耗主机本身的资源及大量网络带宽,造成网络访问能力急剧下降。
    [对策]
    1、下载完补丁后断开网络连接再安装补丁。
    2、清除蠕虫病毒。
    事件3 Windows系统下Sasser(震荡波)蠕虫传播
    蠕虫攻击会在系统上留下后门并可能导致Win 2000/XP操作系统重启,蠕虫传播时可能导致被感染主机系统性能严重下降以及被感染网络带宽被大量占用。
    [对策]
    1、首先断开计算机网络。
    2、然后用专杀工具查杀毒。
    3、最后打系统补丁。
  事件4 TELNET服务暴力猜测用户口令
    TELNET服务是常见远程登录仿真服务,用户可以使用TELNET远程登录系统,执行任意命令。此事件属获取权限类攻击。攻击者可能正在尝试猜测有效的TELNET服务用户名和口令,如果成功,攻击者可以登录到系统执行各种命令甚至完全控制系统。
    [对策]
    密切留意攻击来源的进一步活动,如果觉得有必要阻塞其对服务器的连接访问。
    事件5 TELNET服务用户认证失败
    TELNET服务往往是攻击者入侵系统的渠道之一。大多数情况下,合法用户在TELNET登录过程中会认证成功。如果出现用户名或口令无效等情况,TELNET服务器会使认证失败。如果登录用户名为超级用户,则更应引起重视,检查访问来源是否合法。如果短时间内大量出现TELNET认证失败响应,则说明主机可能在遭受暴力猜测攻击。
    [对策]
    1、检查访问来源的IP、认证用户名及口令是否符合安全策略。
    2、密切关注FTP客户端大量失败认证的来源地址的活动,如果觉得有必要,可以暂时禁止此客户端源IP地址的访问。
    事件6 TELNET服务用户弱口令认证
    攻击者可能利用扫描软件或人工猜测到TELNET服务的弱口令从而非法获得FTP服务的访问,也可能结合TELNET服务器的本地其他漏洞获取主机的控制权。
    [对策]
    1、提醒或强制相关的TELNET服务用户设置复杂的口令。
    2、设置安全策略,定期强制用户更改自己的口令。
    事件7 Microsoft SQL 客户端SA用户默认空口令连接
    Microsoft SQL数据库默认安装时存在sa用户密码为空的问题,远程攻击者可能利用这个漏洞登录到数据库服务器对数据库进行任意操作。更危险的是由大多数MS-SQL的安装采用集成Windows系统认证的方式,远程攻击者利用空口令登录到SQL服务器后,可以利用MS-SQL的某些转储过程如xp_cmdshell等以LocalSystem的权限在主机上执行任意命令,从而取得主机的完全控制。
    [对策]
    1、系统的安全模式尽量使用“Windows NT only”模式,这样只有信任的计算机才能连上数据库。
    2、为sa账号设置一个强壮的密码;
    3、不使用TCP/IP网络协议,改用其他网络协议。
    4、如果使用TCP/IP网络协议,最好将其默认端口1433改为其他端口,这样攻击者用扫描器就不容易扫到。
  事件8 POP3服务暴力猜测口令攻击
    POP3服务是常见网络邮件收取协议。
    发现大量的POP3登录失败事件,攻击者可能正在尝试猜测有效的POP3服务用户名和口令,如果成功,攻击者可能利用POP3服务本身漏洞或结合其他服务相关的漏洞进一步侵害系统,也可能读取用户的邮件,造成敏感信息泄露。
    [对策]
    密切留意攻击来源的进一步活动,如果觉得有必要阻塞其对服务器的连接访问。
    事件9 POP3服务接收可疑病毒邮件
    当前通过邮件传播的病毒、蠕虫日益流行,其中一些邮件病毒通过发送带有可执行的附件诱使用户点击执行来传播,常见的病毒附件名后缀有:.pif、.scr、.bat、.cmd、.com ,带有这些后缀文件名附件的邮件通常都是伪装成普通邮件的病毒邮件。
    邮件病毒感染了主机以后通常会向邮件客户端软件中保存的其他用户邮件地址发送相同的病毒邮件以扩大传染面。
    此事件表示IDS检测到接收带可疑病毒附件邮件的操作,邮件的接收者很可能会感染某种邮件病毒,需要立即处理。
    [对策]
    1、通知隔离检查发送病毒邮件的主机,使用杀毒软件杀除系统上感染的病毒。
    2、在邮件服务器上安装病毒邮件过滤软件,在用户接收之前就杀除之。
    事件10 Microsoft Windows LSA服务远程缓冲区溢出攻击
    Microsoft Windows LSA是本地安全授权服务(LSASRV.DLL)。
    LSASS DCE/RPC末端导出的Microsoft活动目录服务存在一个缓冲区溢出,远程攻击者可以利用这个漏洞以SYSTEM权限在系统上执行任意指令。
    [对策]
    1、临时处理方法:使用防火墙对UDP端口135、137、138、445及TCP端口135、139、445、593进行过滤。
    2、打系统补丁、升级。
  数据库防黑客入侵技术综述
  1. 前言
    随着计算机技术的飞速发展,数据库的应用十分广泛,深入到各个领域,但随之而来产生了数据的安全问题。各种应用系统的数据库中大量数据的安全问题、敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要,关系到企业兴衰、国家安全。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,已经成为业界人士探索研究的重要课题之一,本文就安全防入侵技术做简要的讨论。
    数据库系统的安全除依赖自身内部的安全机制外,还与外部网络环境、应用环境、从业人员素质等因素息息相关,因此,从广义上讲,数据库系统的安全框架可以划分为三个层次:
    ⑴ 网络系统层次;
    ⑵ 宿主操作系统层次;
    ⑶ 数据库管理系统层次。
    这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。下面就安全框架的三个层次展开论述。
    2. 网络系统层次安全技术
    从广义上讲,数据库的安全首先依赖于网络系统。随着Internet的发展和普及,越来越多的公司将其核心业务向互联网转移,各种基于网络的数据库应用系统如雨后春笋般涌现出来,面向网络用户提供各种信息服务。可以说网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络系统的支持,数据库系统的用户(如异地用户、分布式用户)也要通过网络才能访问数据库的数据。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。网络入侵试图破坏信息系统的完整性、机密性或可信任的任何网络活动的集合,具有以下特点:
    a) 没有地域和时间的限制,跨越国界的攻击就如同在现场一样方便;
    b) 通过网络的攻击往往混杂在大量正常的网络活动之中,隐蔽性强;
    c) 入侵手段更加隐蔽和复杂。
    计算机网络系统开放式环境面临的威胁主要有以下几种类型:
    a) 欺骗(Masquerade);
    b) 重发(Replay);
    c) 报文修改(Modification of message);
    d) 拒绝服务(Deny of service);
    e) 陷阱门(Trapdoor);
    f) 特洛伊木马(Trojan horse);
    g) 攻击,如透纳攻击(Tunneling Attack)、应用软件攻击等。这些安全威胁是无时、无处不在的,因此必须采取有效的措施来保障系统的安全。
  从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火墙、入侵检测、协作式入侵检测技术等。
    ⑴ 防火墙。防火墙是应用最广的一种防范技术。作为系统的第一道防线,其主要作用是监控可信任网络和不可信任网络之间的访问通道,可在内部与外部网络之间形成一道防护屏障,拦截来自外部的非法访问并阻止内部信息的外泄,但它无法阻拦来自网络内部的非法操作。它根据事先设定的规则来确定是否拦截信息流的进出,但无法动态识别或自适应地调整规则,因而其智能化程度很有限。防火墙技术主要有三种:数据包过滤器(packet filter)、代理(proxy)和状态分析(stateful inspection)。现代防火墙产品通常混合使用这几种技术。
    ⑵ 入侵检测。入侵检测(IDS―Instrusion Detection System)是近年来发展起来的一种防范技术,综合采用了统计技术、规则方法、网络通信技术、人工智能、密码学、推理等技术和方法,其作用是监控网络和计算机系统是否出现被入侵或滥用的征兆。1987年,Derothy Denning首次提出了一种检测入侵的思想,经过不断发展和完善,作为监控和识别攻击的标准解决方案,IDS系统已经成为安全防御系统的重要组成部分。
    入侵检测采用的分析技术可分为三大类:签名、统计和数据完整性分析法。
    ① 签名分析法。主要用来监测对系统的已知弱点进行攻击的行为。人们从攻击模式中归纳出它的签名,编写到IDS系统的代码里。签名分析实际上是一种模板匹配操作。
    ② 统计分析法。以统计学为理论基础,以系统正常使用情况下观察到的动作模式为依据来判别某个动作是否偏离了正常轨道。
    ③ 数据完整性分析法。以密码学为理论基础,可以查证文件或者对象是否被别人修改过。
    IDS的种类包括基于网络和基于主机的入侵监测系统、基于特征的和基于非正常的入侵监测系统、实时和非实时的入侵监测系统等。
    ⑶ 协作式入侵监测技术
    独立的入侵监测系统不能够对广泛发生的各种入侵活动都做出有效的监测和反应,为了弥补独立运作的不足,人们提出了协作式入侵监测系统的想法。在协作式入侵监测系统中,IDS基于一种统一的规范,入侵监测组件之间自动地交换信息,并且通过信息的交换得到了对入侵的有效监测,可以应用于不同的网络环境。
    3. 宿主操作系统层次安全技术
    操作系统是大型数据库系统的运行平台,为数据库系统提供一定程度的安全保护。目前操作系统平台大多数集中在Windows NT和Unix,安全级别通常为C1、C2级。主要安全技术有操作系统安全策略、安全管理策略、数据安全等方面。
    操作系统安全策略用于配置本地计算机的安全设置,包括密码策略、账户锁定策略、审核策略、IP安全策略、用户权利指派、加密数据的恢复代理以及其它安全选项。具体可以体现在用户账户、口令、访问权限、审计等方面。
    用户账户:用户访问系统的“身份证”,只有合法用户才有账户。
    口令:用户的口令为用户访问系统提供一道验证。
    访问权限:规定用户的权限。
    审计:对用户的行为进行跟踪和记录,便于系统管理员分析系统的访问情况以及事后的追查使用。
    安全管理策略是指网络管理员对系统实施安全管理所采取的方法及策略。针对不同的操作系统、网络环境需要采取的安全管理策略一般也不尽相同,其核心是保证服务器的安全和分配好各类用户的权限。
    数据安全主要体现在以下几个方面:数据加密技术、数据备份、数据存储的安全性、数据传输的安全性等。可以采用的技术很多,主要有Kerberos认证、IPSec、SSL、TLS、VPN(PPTP、L2TP)等技术。
  4. 数据库管理系统层次安全技术
    数据库系统的安全性很大程度上依赖于数据库管理系统。如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好。目前市场上流行的是关系式数据库管理系统,其安全性功能很弱,这就导致数据库系统的安全性存在一定的威胁。
    由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的安全技术措施。
    数据库管理系统层次安全技术主要是用来解决这一问题,即当前面两个层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。
    我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层。
    ⑴ 在OS层加密。在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难。所以,对大型数据库来说,在OS层对数据库文件进行加密很难实现。
    ⑵ 在DBMS内核层实现加密。这种加密是指数据在物理存取之前完成加/解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。
    定义加密要求工具
    DBMS
    数据库应用系统
    加密器
    (软件或硬件)
    ⑶ 在DBMS外层实现加密。比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加/解密处理:
    定义加密要求工具加密器
    (软件或硬件)
    DBMS
    数据库应用系统
    采用这种加密方式进行加密,加/解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。
    下面我们进一步解释在DBMS外层实现加密功能的原理:
    数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加/解密引擎实现对数据库表的加密、脱密及数据转换等功能。数据库信息的加/解密处理是在后台完成的,对数据库服务器是透明的。
    加密字典管理程序
    加密系统
    应用程序
    数据库加解密引擎
    数据库服务器
    加密字典
    用户数据
  按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。
    数据库加/解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加/解密处理,对应用开发人员和操作人员来说是透明的。数据加/解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加/解密引擎由三大模块组成:加/解密处理模块、用户接口模块和数据库接口模块。其中,“数据库接口模块”的主要工作是接受用户的操作请求,并传递给“加/解密处理模块”,此外还要代替“加/解密处理模块”去访问数据库服务器,并完成外部接口参数与加/脱密引擎内部数据结构之间的转换。“加/解密处理模块”完成数据库加/解密引擎的初始化、内部专用命令的处理、加密字典信息的检索、加密字典缓冲区的管理、SQL命令的加密变换、查询结果的脱密处理以及加脱密算法实现等功能,另外还包括一些公用的辅助函数。
    数据加/解密处理的主要流程如下:
    1) 对SQL命令进行语法分析,如果语法正确,转下一步;如不正确,则转6),直接将SQL命令交数据库服务器处理。
    2) 是否为数据库加/脱密引擎的内部控制命令?如果是,则处理内部控制命令,然后转7);如果不是则转下一步。
    3) 检查数据库加/脱密引擎是否处于关闭状态或SQL命令是否只需要编译?如果是则转6),否则转下一步。
    4) 检索加密字典,根据加密定义对SQL命令进行加脱密语义分析。
    5) SQL命令是否需要加密处理?如果是,则将SQL命令进行加密变换,替换原SQL命令,然后转下一步;否则直接转下一步。
    6) 将SQL命令转送数据库服务器处理。
    7) SQL命令执行完毕,清除SQL命令缓冲区。
    以上以一个例子说明了在DBMS外层实现加密功能的原理。
    5. 结束语
    本文对数据库系统安全防入侵技术进行综述,提出了数据库系统的安全体系三个层次框架,并对三个层次的技术手段展开描述。文中还以在DBMS外层实现加密功能的原理为例,详细说明了如何应用数据库管理系统层次的安全技术。
    数据库系统安全框架的三个层次是相辅相承的,各层次的防范重点和所采取的技术手段也不尽相同,一个好的安全系统必须综合考虑核运用这些技术,以保证数据的安全。
  如何查看系统记录以及追踪系统入侵者之一
  在局域网络上可能你听过所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连结的所有网络设备皆为收信对象。但是这仅仅在局域网络上能够实行,因为局域网络上的机器不多(和Internet比起来)。如果象是Internet上有数千万的主机,本就不可能实施资料广播(至于IP Multicast算是一种限定式广播 Restricted Broadcast,唯有被指定的机器会收到,Internet上其他电脑还是不会收到)。假设Internet上可以实施非限定广播,那随便一个人发出广播讯息,全世界的电脑皆受其影响,岂不世界大乱?因此,任何局域网络内的路由器或是类似网络设备都不会将自己区域网络内的广播讯息转送出去。万一在WAN Port收到广播讯息,也不会转进自己的LAN Port中。
    而既然网络皆有发信站与收信站,用以标示信息发送者与信息接收者,除非对方使用一些特殊的封包封装方式或是使用防火墙对外连线,那么只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算) 你就应该会知道 对方的位址,如果对方用了防火墙来和你通讯,你最少也能够知道防火墙的位置。也正因为只要有人和你连线,你就能知道对方的位址,那么要不要知道对方位置只是要做不做的问题而已。如果对方是透过一台UNIX主机和你连线,则你更可以透过ident查到是谁和你连线的。
    在实行TCP/IP通讯协定的电脑上,通常可以用netstat指令来看到目前连线的状况。
    各位朋友可以在win95、Novell以及UNIX试试看,在下面的连线状况中,netstat指令是在win95上实行的,可以看到目前自己机器(Local Address处)的telnetport有一台主机workstation.variox.int 由远端(Foreign Address处)连线进来并且配到1029号tcp port.而cc unix1主机也以ftpport连到workstation.variox.int去。所有的连线状况看得 一清二楚。(如A、B)
    A.在UNIX主机(ccunix1.variox.int)看netstat
    B.另一端在Windows95(workstation.variox.int)看netstat, 虽然是不同的作业系统,但netstat是不是长得很像呢?
  通信过程的纪录设定
    当然,如果你想要把网络连线纪录给记录下来,你可以用cron table定时去跑:
    netstat>>filename
    但是UNIX系统早已考虑到这一个需求,因此在系统中有一个专职记录系统事件的
    Daemon:syslogd,应该有很多朋友都知道在UNIX系统的/var/adm下面有两个系统纪录档案:
    syslog与messages,一个是一般系统的纪录,一个是核心的纪录。但是这两个档案是从哪边来的,又要如何设定呢?
  系统的纪录基本上都是由syslogd (System Kernel Log Daemon)来产生,而syslogd的控制是由/etc/syslog.conf来做的。syslog.conf以两个栏位来决定要记录哪些东西,以及记录到哪边去。下面是一个 Linux系统所附上的yslog.conf档案,这也是一个最标准的syslog.conf写法:
    格式就是这样子,第一栏写「在什么情况下」以及「什么程度」。然后用TAB键跳下一栏继续写「符合条件以后要做什么」。这个syslog.conf档案的作者很诚实,告诉你只能用TAB来作各栏位之间的分隔(虽然看来好像他也不知道为什么)。 第一栏包含了何种情况与程度,中间小数点分隔。另外,星号就代表了某一细项中的所有选项。详细的设定方式如下:
    1.在什么情况:各种不同的情况以下面的字串来决定。
    auth 关于系统安全与使用者认证方面
    cron 关于系统自动排程执行(CronTable)方面
    daemon 关于背景执行程式方面
    kern 关于系统核心方面
    lpr 关于印表机方面
    mail 关于电子邮件方面
    news 关于新闻讨论区方面
    syslog 关于系统纪录本身方面
    user 关于使用者方面
    uucp 关于UNIX互拷(UUCP)方面
    上面是大部份的UNIX系统都会有的情况,而有些UNIX系统可能会再分出不同的项目出来。
    2.什么程度才记录:
    下面是各种不同的系统状况程度,依照轻重缓急排列。
    none 不要记录这一项
    debug 程式或系统本身除错讯息
    info 一般性资讯
    notice 提醒注意性
    err 发生错误
    warning 警告性
    crit 较严重的警告
    alert 再严重一点的警告
    emerg 已经非常严重了
    同样地,各种UNIX系统可能会有不同的程度表示方式。有些系统是不另外区分crit与alert的差别,也有的系统会有更多种类的程度变化。在记录时,syslogd 会自动将你所设定程度以及其上的都一并记录下来。例如你要系统去记录 info等级的事件,则notice、err.warning、crit、alert、emerg等在info等级以上的也会一并被记录下来。 把上面所写的1、2项以小数点组合起来就是完整的「要记录哪些东西」的写法。
    例如 mail.info表示关于电子邮件传送系统的一般性讯息。auth.emerg就是关于系统安全方面相当严重的讯息。 lpr.none表示不要记录关于列表机的讯息(通常用在有多个纪录条件时组合使用)。另外有三种特殊的符号可供应用:
    1.星号(*) 星号代表某一细项中所有项目。例如mail.*表示只要有关mail的,不管什么程度都要记录下来。而*.info会把所有程度为info的事件给记录下来。
    2.等号(=)等号表示只记录目前这一等级,其上的等级不要记录。例如刚刚的例子,平常写下info等级时,也会把位于info等级上面的notice、err.warning、crit、alert、emerg等其他等级也记录下来。但若你写=info则就只有记录info这一等级了。
    3.惊叹号(!) 惊叹号表示不要记录目前这一等级以及其上的等级。
  记录到哪边去?
    一般的syslogd都提供下列的管道以供您记录系统发生的什么事:
    1.一般档案
    这是最普遍的方式。你可以指定好档案路径与档案名称,但是必须以目录符号「/」开始,系统才会知道这是 一个档案。例如/var/adm/maillog表示要记录到/var/adm下面一个称为maillog的档案。如果之前没有这个档案 ,系统会自动产生一个。
    2.指定的终端机或其他设备
    你也可以将系统纪录写到一个终端机或是设备上。若将系统纪录写到终端机,则目前正在使用该终端机的使 用者就会直接在萤幕上看到系统讯息(例如/dev/console或是/dev/tty1.你可以拿一个萤幕专门来显示系统讯息 )。若将系统纪录写到印表机,则你会有一长条印满系统纪录的纸(例如/dev/lp0)。
    3.指定的使用者
    你也可以在这边列出一串使用者名称,则这些使用者如果正好上线的话,就会在他的终端机上看到系统讯息( 例如root,注意写的时候在使用者名称前面不要再加上其他的字)。
    4.指定的远端主机
    这种写法不将系统讯息记录在连接本地机器上,而记录在其他主机上。有些情况系统碰到的是硬碟错误,或是万一有人把主机推倒,硬碟摔坏了,那你要到哪边去拿系统纪录来看呢?而网络卡只要你不把它折断,应该是比硬碟机耐摔得多了。因此,如果你觉得某些情况下可能纪录没办法存进硬碟里,你可以把系统纪录丢到其他的主机上。如果你要这样做,你可以写下主机名称,然后在主机名称前面加上「@」符号(例如@ccunix1.variox.int,但被你指定的主机上必须要有syslogd)。
    在以上各种纪录方式中,都没有电子邮件这项。因为电子信件要等收件者去收信才看得到, 有些情况可能是很紧急的, 没办法等你去拿信来看(BSD的Manual Page写着「when you got mail,it’s already too late...」 :-P)。以上就是syslog各项纪录程度以及纪录方式的写法,各位读者可以依照自己的需求记录下自己所需要的内容。但是这些纪录都是一直堆上去的,除非您将档案自行删除掉,否则这些档案就会越来越大。有的人可能会在syslogd.conf里面写:*.*/var/log/everything要是这样的话,当然所有的情况都被你记录下来了。但是如果真的系统出事了,你可能要从好几十MB甚至几百MB的文字中找出到底是哪边出问题,这样可能对你一点帮助都没有。因此,以下两点可以帮助你快速找到重要的纪录内容:
    1.定期检查纪录
    养成每周(或是更短的时间,如果你有空的话)看一次纪录档的习惯。如果有需要将旧的纪录档备份,可以 cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,将过期的纪录档依照流水号或是日期存起来,未来考察时也比较容易。
    2.只记录有用的东西
    千万不要像前面的例子一样,记录下*.*。然后放在一个档案中。这样的结果会导致档案太大,要找资料时根本无法马上找出来。有人在记录网络通讯时,连谁去ping他的主机都记录。除非是系统已经遭到很大的威胁,没事就有人喜欢尝试进入你的系统,否则这种鸡毛蒜皮的小事可以不用记录。可以提升些许系统效率以及降低硬盘使用量(当然也节省你的时间)。
  如何查看系统记录以及追踪系统入侵者之二
  地理位置的追踪
    如何查出入侵者的地理位置?光看IP地址可能看不出来,但是你常看的话,会发现也会发现规律的。在固接式的网络环境中,入侵者一定和网络提供单位有着密切的关系。因为假设是局域网络,那么距离绝对不出几公里。就算是拨接好了,也很少人会花大笔钱去拨外县市甚至国外的拨接伺服器。因此,只要查出线的单位,入侵者必然离连线单位不远。
    拨接式的网络就比较令人头疼了。有许多ISP为了吸引客户,弄了很多什么网络卡。
    User这边只要买了固定的小时数,不需须另外向ISP那边提出申请,就可以按照卡片上的说明自行拨接上网。这样当然可以吸引客户,但是ISP就根本无从得知是谁在用他们的网路。也就是说,虽然以网络卡提供拨接服务给拨接使用者带来相当大的便利,但却是系统安全的大敌,网络管理员的恶梦。如果入侵你的人是使用网络卡来上网,那……,要从拨号的地点查吗?入侵者可以不要用自己家里的电话上网。管它是偷是抢,或是盗打王八机,反正查到的发话来源绝不是入侵者自己的电话。
    来话者电话侦测(Caller ID)
    各位读者家中有ISDN吗?如果你用过ISDN的Caller ID功能,会发现真是方便极了,对方的号码马上就显示出来给你看。看到女朋友打电话来,马上就接了起来;而杂志社的打来催稿,就打开电话答录机假装不在家…… :-P.但是Caller ID依然有失效的时候。有以下测试,是看CallerID可以显示出哪些号码的(受测机种为Zyxel,终端机使用Windows NT的Hyper Terminal):要显示来话方号码的前提是,对必须是透过数位交换机打到你这边,有些地区目前仍然使用机械式交换机,如果你打电话的交换路径中,有经过这些机械式的交换机,那么依然无法显示出号码来。其他电话还没有做测试。
    如何靠IP地址或Domain Name找出入侵者位置?
    虽然电话不一定查得出来,但是至少你会知道他的IP地址。IP地址的使用必须向InterNIC登记,而Domain Name要向当地直属的网络管理中心登记。在Internet上的网路管理中心共有三个层级(单位性质一定为NET):
    1.国际等级
    国际等级只有InterNIC一个,全球各国的NIC以及洲际NIC均由其管理。
    2.洲际等级
    InterNIC并不直接管理整个Internet,其下的网络资源会再做分区。例如台湾、日本、香港等亚太地区国家 ,由亚太洲际网络管理中心(Asian-PacificNIC,APNIC,位于日本)来管理,并不直接由InterNIC管理 。
    3.国家等级
    Domain Name后面不挂国码的不是由InterNIC管理就是由洲际的NIC管理,但是有挂国码的由当地国家之NIC管理,惯例是两位国码加上NIC就是该国NIC之名称。例如中国的国码为CN,则中国网络管理中心为CNNIC,但由于InterNIC位于美国,因此美国的DomainName由InterNIC直辖。有一个特别的例外是挂.mil的美国军方网络的资料是由ddn.mil(美国军事防卫网络)来管理,不由InterNIC管理,当您得到某个Domain Name或是IP地址后,可以使用whois来查出资料,语法如下:
    whois -h<whois服务器><查询对象>
    例如向whois.internic.net查询hp.com,需输入:
    whois -h whois.internic.nethp.com whois
    也可能使用下列语法:
    whois <查询对象>@<whois伺服器>
    例如向whois.twnic.net查询ntu.edu.tw需输入:
    whois ntu.edu.tw@whois.twnic.net
    目前在Slackware Linux附上的为后者。
  Domain Name命名的三种情况
    虽然同样是 Domain Name,可能你会遇到三种命名的不同情况。在许多国家*.edu.*是由NIC以外的单位所管理( 如育部),而属性也不一定是三个字母,甚至没有属性。在判断单位性质时读者宜多加注意,以免找不到资料。
    1.标准国码+三码属性码(或没有国码,仅有属性码)
    普遍使用于欧洲,美洲国家以及部份东南亚国家。如台湾常见*.edu.tw、*.com.tw,美国的*.com、*.edu。
    2.标准国码+二码属性码
    以日本例,公司属性为co,社团属性为or,和三码定义的com、org略有不同。如日本万代公司之Homepage 为www.bandai.co.jp,如果读者要使用公司名称拼凑出完整主机名称时,需注意日本为仅有两码属性码之地区,否则若猜测其为www.bandai.com.jp就会发生错误(注:在国际通信范例中,无论是无线电通信、国际越洋电 话、乃至于网际网络等,均将台湾与中国大陆划分为两个不同国家。在此将中国大陆与台湾区分,除突显此一 特性外,并无其他涵义,请大家勿需自行揣测其他意义)。
    3.仅有标准国码,未有任何属性码
    如澳洲的主机均为仅有*.au之主机名称,未有任何其他的com、co、或任何单位属性码后面直接接上单位名称。
    由Domain Name查出连线单位资料
    在Internet上惯例由whois服务来查询连线单位的登记资料,whois本来应该是用来查某人的电话或是其他资料的,但是在NIC方面是用来查出连线单位的电话以及住址,技术联络人等。符合该NIC管理权限的单位资料 会存放于该单位的whois主机中,惯例是whois+NIC名称+net。例如亚太地区网络管理中心whois server为whois.apnic.net,台湾网络中心whois server为whois.twnic.net,我过网络中心whois server是whois.cnnic.net。当你知道某台主机的Domain Name以后,可以依照下面顺序查出连线单位的电话住址等资料。
    第一步,先看有没有国码。
    没有国码的,向whois.internic.net问;有国码的,向whois.国码nic.net问
  (ex.whois.twnic.net)。
    另外,如果你要查美国军事单位的联络明细(假如某天你发现有人利用美国海军的网络来入侵你的电脑)则你需要向nic.ddn.mil查询,方可查到资料。例如查出美国陆军的资料:但FBI等调查机构属政府单位,非军事单位,查询时需注意:由DomainName查出资料,如您能从nslookup查出某一IP地址之FQDN,则可以直接向当地NIC查出入侵者网络之资料:
    1.由美国入侵的例子:
    由 xxx.aol.com入侵由主机名称发现未有国码, 因此直接向InterNIC查询。由此我们可以查到America Online的技术负责人以及电话、传真等资料,把你的系统纪录档准备好,发封传真去告洋状吧!
    2.由台湾入侵的例子:
    由HopeNet入侵(cded1.hope.com.tw)由于TWNIC目前whois资料库不知怎么的不见了,故请改由 dbms.seed.net.tw查出hope.com.tw之中文名称,再打104询问该公司的电话!现在如果直接由whois.twnic.net 查询会这样:
  只有IP地址的查法
    若某天您发现由168.95.109.222有人入侵,假设您不知道这是哪里的网络,而这个IP地址也没有Domain Name 的话,则须先将IP地址分等级,再向InterNIC查询: (以下作为范例之位址均为虚构,如有雷同,纯属巧合)。
    1.由15.4.75.2入侵的例子:
    此IP地址是15开头,为一个ClassA网络,故向InterNIC查询15.0:查出此IP地址为惠普公司所有
    2.由140.111.32.53入侵的例子:
    此IP地址为ClassB,需查询两次。先向InterNIC查询140.111.0:查出为台湾教育部所有。再向 whois.twnic.net查询140.111.32.0:
    3.由203.66.35.1入侵的例子
    这是一个ClassCIP,因此必须查询至少二次,一般是三次。顺序为国际->洲际->所属国家。先查203.0:出来一大堆,怎么办?有的情况只好再追问ClassB。由于InterNIC将部份ClassC交给洲际管理机构来负责配给,因此有些ClassC的资料会在洲际管理机构,此时先向InterNIC查出所属洲际管理机构(用ClassB问)。问到 203.66为亚太地区洲际网络,于是向whois.apnic.net询问203.66.35.0:查了三次以后,终于查到203.66.35.0 为:
    在一堆资料中查到203.66.35.1,此一IP地址为ForwardnessTechnologyCo.Ltd.所有,电话地址也一并附在上面。
    由以上的查法,可以由任一主机名称或IP地址查到连线者网络单位的资料,如果您发现该网络单位下属主机对您的网络有攻击行为,请检具资料告诉对方的系统管理员(对方不一定接受)。下面是Windows95的hosts档案:当您没有DNS的时候,您可以拿这个来将DomainName<->IP地址的对应工作做好。写法就和UNIX一样。Microsoft的这个hosts档案写的是给chicago用的,这是windows95的开发代号,看见没?(看来Microsoft出windows95时太赶,忘了修正这些小东西), 不过各位读者要注意的是,原先的hosts档案档名是hosts.sam,您要自己将档名改成hosts才能用。
    注:几乎所有使用TCP/IP通讯协定的机器都会有hosts、network等档案。这是所有TCP/IP系统的共通习惯(但只有 Microsoft的软体会有lmhosts来配合Microsoft自己的wins域名解译系统)。如果读者有注意到的话,可以发现 Novell Netware服务器也有一个etc目录,还有hosts等档案!
  在Windows 2000系统中预防Ping攻击
  在Win2000中如何关闭ICMP(Ping)
    ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报文协议,这个协议主要是用来进行错误信息和控制信息的传递,例如著名的Ping和Tracert工具都是利用ICMP协议中的ECHO request报文进行的(请求报文ICMP ECHO类型8代码0,应答报文ICMP ECHOREPLY类型0代码0)。
    ICMP协议有一个特点---它是无连结的,也就是说只要发送端完成ICMP报文的封装并传递给路由器,这个报文将会象邮包一样自己去寻找目的地址,这个特点使得ICMP协议非常灵活快捷,但是同时也带来一个致命的缺陷---易伪造(邮包上的寄信人地址是可以随便写的),任何人都可以伪造一个ICMP报文并发送出去,伪造者可以利用SOCK_RAW编程直接改写报文的ICMP首部和IP首部,这样的报文携带的源地址是伪造的,在目的端根本无法追查,(攻击者不怕被抓那还不有恃无恐?)根据这个原理,外面出现了不少基于ICMP的攻击软件,有通过网络架构缺陷制造ICMP风暴的,有使用非常大的报文堵塞网络的,有利用ICMP碎片攻击消耗服务器CPU的,甚至如果将ICMP协议用来进行通讯,可以制作出不需要任何TCP/UDP端口的木马(参见《揭开木马的神秘面纱三》)......既然ICMP协议这么危险,我们为什么不关掉它呢?   
    我们都知道,Win2000在网络属性中自带了一个TCP/IP过滤器,我们来看看能不能通过这里关掉ICMP协议,桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->高级->选项->TCP/IP过滤,这里有三个过滤器,分别为:TCP端口、UDP端口和IP协议,我们先允许TCP/IP过滤,然后一个一个来配置,先是TCP端口,点击"只允许",然后在下面加上你需要开的端口,一般来说WEB服务器只需要开80(www),FTP服务器需要开20(FTP Data),21(FTP Control),邮件服务器可能需要打开25(SMTP),110(POP3),以此类推......接着是UDP,UDP协议和ICMP协议一样是基于无连结的,一样容易伪造,所以如果不是必要(例如要从UDP提供DNS服务之类)应该选择全部不允许,避免受到洪水(Flood)或碎片(Fragment)攻击。最右边的一个编辑框是定义IP协议过滤的,我们选择只允许TCP协议通过,添加一个6(6是TCP在IP协议中的代码,IPPROTO_TCP=6),从道理上来说,只允许TCP协议通过时无论UDP还是ICMP都不应该能通过,可惜的是这里的IP协议过滤指的是狭义的IP协议,从架构上来说虽然ICMP协议和IGMP协议都是IP协议的附属协议,但是从网络7层结构上ICMP/IGMP协议与IP协议同属一层,所以微软在这里的IP协议过滤是不包括ICMP协议的,也就是说即使你设置了“只允许TCP协议通过”,ICMP报文仍然可以正常通过,所以如果我们要过滤ICMP协议还需要另想办法。
    刚刚在我们进行TCP/IP过滤时,还有另外一个选项:IP安全机制(IP Security),我们过滤ICMP的想法就要着落在它身上。
    打开本地安全策略,选择IP安全策略,在这里我们可以定义自己的IP安全策略。
    一个IP安全过滤器由两个部分组成:过滤策略和过滤操作,过滤策略决定哪些报文应当引起过滤器的关注,过滤操作决定过滤器是“允许”还是“拒绝”报文的通过。要新建IP安全过滤器,必须新建自己的过滤策略和过滤操作:右击本机的IP安全策略,选择管理IP过滤器,在IP过滤器管理列表中建立一个新的过滤规则:ICMP_ANY_IN,源地址选任意IP,目标地址选本机,协议类型是ICMP,切换到管理过滤器操作,增加一个名为Deny的操作,操作类型为"阻止"(Block)。这样我们就有了一个关注所有进入ICMP报文的过滤策略和丢弃所有报文的过滤操作了。需要注意的是,在地址选项中有一个镜像选择,如果选中镜像,那么将会建立一个对称的过滤策略,也就是说当你关注any IP->my IP的时候
    熟悉网络的人都知道Ping,Ping是用于检测网络连接性、可到达性和名称解析的疑难问题的主要TCP/IP命令。Ping最主要的用处就是检测目标主机是否可连通。
    黑客要入侵,就得先锁定目标,一般都是通过使用Ping命令来检测主机,获取相关信息,然后再进行漏洞扫描。如何不受别人的攻击?那就是阻止别人Ping自己的电脑,让攻击无从着手。笔者介绍四种常见的阻止Ping的方法,供大家参考:
  一、用高级设置法预防Ping
    默认情况下,所有Internet控制消息协议(ICMP)选项均被禁用。如果启用ICMP选项,您的网络将在 Internet 中是可视的,因而易于受到攻击。
    如果要启用ICMP,必须以管理员或Administrators 组成员身份登录计算机,右击“网上邻居”,在弹出的快捷菜单中选择“属性”即打开了“网络连接”,选定已启用Internet连接防火墙的连接,打开其属性窗口,并切换到“高级”选项页,点击下方的“设置”,这样就出现了“高级设置”对话窗口,在“ICMP”选项卡上,勾选希望您的计算机响应的请求信息类型,旁边的复选框即表启用此类型请求,如要禁用请清除相应请求信息类型即可。
    二、用网络防火墙阻隔Ping
    使用防火墙来阻隔Ping是最简单有效的方法,现在基本上所有的防火墙在默认情况下都启用了ICMP过滤的功能。在此,以金山网镖2003和天网防火墙2.50版为蓝本来说明。
    对于使用金山网镖2003的网友,请用鼠标右击系统托盘中的金山网镖2003图标,在弹出的快捷菜单中选择“实用工具”中的“自定义IP规则编辑器”,在出现的窗口中选中“防御ICMP类型攻击”规则,消除“允许别人用ping命令探测本机”规则,保存应用后就发挥效应。
    如果您用的是天网防火墙,在其主界面点击“自定义IP规则”,然后不勾选“防止别人用ping命令探测”规则,勾选“防御ICMP攻击”规则,然后点击“保存/应用”使IP规则生效。
    三、启用IP安全策略防Ping
    IP安全机制(IP Security)即IPSec 策略,用来配置 IPSec 安全服务。这些策略可为多数现有网络中的多数通信类型提供各种级别的保护。您可配置 IPSec 策略以满足计算机、应用程序、组织单位、域、站点或全局企业的安全需要。可使用 Windows XP 中提供的“IP 安全策略”管理单元来为 Active Directory 中的计算机(对于域成员)或本地计算机(对于不属于域的计算机)定义 IPSec 策略。
    在此以WINDOWS XP为例,通过“控制面板”―“管理工具”来打开“本地安全策略”,选择IP安全策略,在这里,我们可以定义自己的IP安全策略。一个IP安全过滤器由两个部分组成:过滤策略和过滤操作。要新建IP安全过滤器,必须新建自己的过滤策略和过滤操作,右击窗口左侧的“IP安全策略,在本地机器”,在弹出的快捷菜单中选择“创建IP安全策略”,单击“下一步”,然后输入策略名称和策略描述。单击“下一步”,选中“激活默认响应规则”复选项,单击“下一步”。开始设置响应规则身份验证方式,选中“此字符串用来保护密钥交换(预共享密钥)”选项,然后随便输入一些字符(后面还会用到这些字符的),单击“下一步”,就会提示已完成IP安全策略,确认选中了“编辑属性”复选框,单击“完成”按钮,会打开其属性对话框。
    接下来就要进行此新建安全策略的配置。在“Goodbye Ping 属性”对话窗口的“规则”选项页中单击“添加”按钮,并在打开安全规则向导中单击“下一步”进行隧道终结设置,在这里选择“此规则不指定隧道”。单击“下一步”,并选择“所有网络连接”以保证所有的计算机都Ping不通。单击“下一步”,设置身份验证方式,与上面一样选择第三个选项“此字符串用来保护密钥交换(预共享密钥)”并填入与刚才上面相同的内容。单击“下一步”即打开“IP筛选器列表”窗口,在“IP筛选器列表”中选择“新IP筛选器列表”,单击右侧的“编辑”,在出现的窗口中点击“添加”,单击“下一步”,设置“源地址”为“我的IP地址”,单击“下一步”,设置“目标地址”为“任何IP地址”,单击“下一步”,选择协议类型为ICMP,单击“完成”后再点“确定”返回如图9的窗口,单击“下一步”,选择筛选器操作为“要求安全”选项,然后依次点击“下一步”、“完成”、“确定”、“关闭”按钮保存相关的设置返回管理控制台。
    最后在“本地安全设置”中右击配置好的“Goodbye Ping”策略,在弹出的快捷菜单中选择“指派”命令使配置生效。
    经过上面的设置,当其他计算机再Ping该计算机时,就不再Ping通了。但如果自己Ping本地计算机,仍可Ping通。在Windows 2000中操作基本相同。
  四、修改TTL值防Ping
    许多入侵者喜欢用TTL值来判断操作系统,他们首先会Ping一下你的机子,如看到TTL值为128就认为你的系统为Windows NT/2000,如果TTL值为32则认为目标主机操作系统为Windows 95/98,如果为TTL值为255/64就认为是UNIX/Linux操作系统。既然入侵者相信TTL值所反应出来的结果,那么我们不妨修改TTL值来欺骗入侵者,达到保护系统的目的。方法如下:
    打开Windows自带的“记事本”程序,编写如下所示的批处理命令:
    @echo REGEDIT4>>ChangeTTL.reg
    @echo.>>ChangeTTL.reg
    @echo [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters]>>ChangeTTL.reg
    @echo "DefaultTTL"=dword:000000ff">>ChangeTTL.reg
    @REGEDIT /S /C ChangeTTL.reg
    另存为以.bat为扩展名的批处理文件,点击这个文件,你的操作系统的缺省TTL值就会被修改为ff,即十进制的255,即把你的操作系统人为地改为UNIX系统了!
    "DefaultTTL"=dword:000000ff"是用来设置系统缺省TTL值的,如果你想将自己的操作系统的TTL值改为其它操作系统的ICMP回显应答值,请改变"DefaultTTL"的键值,要注意它的键值为16进制。
    如何禁止别人ping自己的主机(2000自带)
    我的电脑-控制面板-管理工具-本地安全策略-ip安全策略
    这是2000给我们的配置ip管理的工具,我这里只说一下如何禁止别人ping我的主机。
    共有四个步骤:
    1。建立禁ping 规则
    2。建立禁止/允许规则
    3。把这两个规则联系在一起
    4。指派
    详细:
    1。右击ip安全策略-管理ip筛选器表和筛选器操作-ip筛选器列表-添加:名称:ping;描述:ping;(勾选“使用添加向导”),---添加-下一步:指定源/目的ip ,协议类型(icmp),下一步直至完成,关闭此对话框。
    2。管理ip筛选器表和筛选器操作-管理筛选器操作-添加(勾选“使用添加向导”)-下一步:名称:refuse;描述:refuse--下一步:阻止-下一步直至完成。
    3。右击ip安全策略-创建ip安全策略-下一步:名称:禁止ping;--下一步:取消激活默认响应规则-下一步:选中选中“编辑属性“-完成。然后再“禁止ping属性“上-添加(勾选“使用添加向导”)-下一步直至“身份验证方法”;选第三项,输入共享字串-下一步:在ip筛选器列表里选“ping"--下一步:选“refuse"-下一步到完成。
    这是你在“本地安全设置“右侧会看到“禁止ping“这条规则,但是现在他还没有起作用。
    4。右击“禁止ping“--指派。
    这回一条禁止别人ping自己的机器的ip策略完成了。
    赶快找个机器试试,自己的机器不行。会提示:请求超时(timeout).
    以上只是一条小得的ip过滤。你可以自己制作其他的ip策略。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值