存档

  • Unix下rootkit

    传统的Rootkit是一种比普通木马后门更为阴险的木马后门。它主要通过替换系统文件来达到目的,这样就会更加隐蔽,使检测变得比较困难。传统的Rootkit主要针对Unix平台,例如Linux、AIX、 SunOs等操作系统,有些Rootkits可以通过替换DLL文件或更改系统来攻击Windows平台。Rootkit并不能让你直接获得权限,相反它是在你通过各种方法获得权限后才能使用的一种保护权限的措施,在我们获取系统根权限(根权限即root权限,是Unix系统的最高权限)以后, Rootkits提供了一套工具用来建立后门和隐藏行迹,从而让攻击者保住权限。
    传统Rootkit对Unix的攻击
    RootKits是如何实现后门的呢?为了理解 Rootkits后门,有必要先了解一下Unix的基本工作流程,当我们访问Unix时(不管是本地还是远程登录),/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的帐号和密码。Rootkits使用一个带有根权限后门密码的/bin/login来替换系统的 /bin/login,这样攻击者输入根权限后门的密码,就能进入系统。就算管理员更改了原来的系统密码或者把密码清空。我们仍能够使用后门密码以根用户身份登录。在攻入Unix系统后,入侵者通常会进行一系列的攻击动作,如安装嗅探器收集重要数据,而Unix中也会有些系统文件会监视这些动作,比如 ifconfig等,Rootkit当然不会束手就擒,它会同样替换一下这些系统文件,通常被Rootkit替换的系统程序有login, ifconfig,du,find,ls,netstart,ps等。由于篇幅问题,这些系统文件的功能就不一一罗列,有兴趣的读者可以自己去查找,现在 Rootkit的工具很多,里面基本都是包含一些处理过的系统文件来代替原来的系统文件的,像tOmkit等一些Rootkit就是比较优秀的了。

    2008年7月20日 | 归档于 Linux安全
    标签:
  • linux病毒发展史

    不要以为只有windows下才有病毒, linux操作系统等类unix操作系统家族一样避免不了病毒, 没有任何OS可以避免病毒
    1996年的Staog是Linux系统下的第一个病毒,它出自澳大利亚一个叫VLAD的组织(Windows 95下的第一个病毒程序Boza也系该组织所为)。Staog病毒是用汇编语言编写,专门感染二进制文件,并通过三种方式去尝试得到root权限。 Staog病毒并不会对系统有什么实质性的损坏。它应该算是一个演示版。它向世人揭示了Linux可能被病毒感染的潜在危险。Linux系统上第二个被发现的病毒是Bliss病毒,它是一个不小心被释放出来的实验性病毒。与其它病毒不同的是,Bliss本身带有免疫程序,只要在运行该程序时加上 “disinfect-files-please”选项,即可恢复系统。
      
      如果说刚开始时Linux病毒向人们展示的仅仅是一个概念,那么,在2001年发现的Ramen病毒,则已经开始引起很多人的担心。Ramen病毒可以自动传播,无需人工干预,所以和1988年曾使人们大受其苦的 Morris蠕虫非常相似。它只感染Red Hat 6.2和7.0版使用匿名FTP服务的服务器,它通过两个普通的漏洞RPC.statd和wu-FTP感染系统。
      
      表面看来,这不是一个危险的病毒。它很容易被发现,且不会对服务器做出任何有破坏性的事情。但是当它开始扫描时,将消耗大量的网络带宽。

    2008年7月20日 | 归档于 Linux安全
  • Linux下的高级隐藏技术

    本文涉及linux系统安全方面的知识, 主讲Linux环境下的高级隐藏技术
    隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻击者成功侵入一个系统后,有效隐藏攻击者的文件、进程及其加载的模块变得尤为重要。本文将讨论Linux系统中文件、进程及模块的高级隐藏技术,这些技术有的已经被广泛应用到各种后门或安全检测程序之中,而有一些则刚刚起步,仍然处在讨论阶段,应用很少。
    1、隐藏技术
    1.1.Linux下的中断控制及系统调用
    Intelx86系列微机支持256种中断,为了使处理器比较容易地识别每种中断源,把它们从0~256编号,即赋予一个中断类型码n,Intel把它称作中断向量。
    Linux用一个中断向量(128或者0×80)来实现系统调用,所有的系统调用都通过唯一的入口system_call来进入内核,当用户动态进程执行一条int0×80汇编指令时,CPU就切换到内核态,并开始执行system_call函数,system_call函数再通过系统调用表 sys_call_table来取得相应系统调用的地址进行执行。系统调用表sys_call_table中存放所有系统调用函数的地址,每个地址可以用系统调用号来进行索引,例如sys_call_table[NR_fork]索引到的就是系统调用sys_fork()的地址。
    Linux用中断描述符(8字节)来表示每个中断的相关信息,其格式如下:
    偏移量31….16一些标志、类型码及保留位
    段选择符偏移量15….0
    所有的中断描述符存放在一片连续的地址空间中,这个连续的地址空间称作中断描述符表(IDT),其起始地址存放在中断描述符表寄存器(IDTR)中,其格式如下:
    32位基址值界限
    其中各个结构的相应联系可以如下表示:
    通过上面的说明可以得出通过IDTR寄存器来找到system_call函数地址的方法:根据IDTR寄存器找到中断描述符表,中断描述符表的第0×80项即是system_call函数的地址,这个地址将在后面的讨论中应用到。
    1.2.Linux的LKM(可装载内核模块)技术
    为了使内核保持较小的体积并能够方便的进行功能扩展,Linux系统提供了模块机制。模块是内核的一部分,但并没有被编译进内核,它们被编译成目标文件,在运行过程中根据需要动态的插入内核或者从内核中移除。由于模块在插入后是作为Linux内核的一部分来运行的,所以模块编程实际上就是内核编程,因此可以在模块中使用一些由内核导出的资源,例如Linux2.4.18版以前的内核导出系统调用表(sys_call_table)的地址,这样就可以根据该地址直接修改系统调用的入口,从而改变系统调用。在模块编程中必须存在初始化函数及清除函数,一般情况下,这两个函数默认为init_module ()以及clearup_module(),从2.3.13内核版本开始,用户也可以给这两个函数重新命名,初始化函数在模块被插入系统时调用,在其中可以进行一些函数及符号的注册工作,清除函数则在模块移除系统时进行调用,一些恢复工作通常在该函数中完成。
    1.3.Linux下的内存映像
    /dev/kmem是一个字符设备,是计算机主存的映像,通过它可以测试甚至修改系统,当内核不导出sys_call_table地址或者不允许插入模块时可以通过该映像修改系统调用,从而实现隐藏文件、进程或者模块的目的。
    1.4.proc文件系统
    proc文件系统是一个虚拟的文件系统,它通过文件系统的接口实现,用于输出系统运行状态。它以文件系统的形式,为操作系统本身和应用进程之间的通信提供了一个界面,使应用程序能够安全、方便地获得系统当前的运行状况何内核的内部数据信息,并可以修改某些系统的配置信息。由于proc以文件系统的接口实现,因此可以象访问普通文件一样访问它,但它只存在于内存之中。
    2、技术分析
    2.1隐藏文件
    Linux系统中用来查询文件信息的系统调用是sys_getdents,这一点可以通过strace来观察到,例如stracels将列出命令 ls用到的系统调用,从中可以发现ls是通过sys_getedents来执行操作的。当查询文件或者目录的相关信息时,Linux系统用 sys_getedents来执行相应的查询操作,并把得到的信息传递给用户空间运行的程序,所以如果修改该系统调用,去掉结果中与某些特定文件的相关信息,那么所有利用该系统调用的程序将看不见该文件,从而达到了隐藏的目的。首先介绍一下原来的系统调用,其原型为:
    intsys_getdents(unsignedintfd,structdirent*dirp,unsignedintcount)
    其中fd为指向目录文件的文件描述符,该函数根据fd所指向的目录文件读取相应dirent结构,并放入dirp中,其中count为dirp中返回的数据量,正确时该函数返回值为填充到dirp的字节数。
    hacked_getdents函数实际上就是先调用原来的系统调用,然后从得到的dirent结构中去除与特定文件名相关的文件信息,从而应用程序从该系统调用返回后将看不到该文件的存在。
    应该注意的是,一些较新的版本中是通过sys_getdents64来查询文件信息的,但其实现原理与sys_getdents基本相同,所以在这些版本中仍然可以用与上面类似的方法来修改该系统调用,隐藏文件。

    2008年7月20日 | 归档于 Linux安全
  • 伪装linux为windows特性

    是的,linux已经很安全了,linux伪装的必要性这里就不讨论了,就是为了“没有绝对的安全”。可以伪装linux为windows的系统特性,叫外界的基本判断认为系统就是windows,至少是可以增加一些系统安全性的,呵呵。 网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击。
    通过伪装Linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一步提高计算机系统的安全性。下面以Red Hat Linux为例,针对几种黑客常用的途径介绍一些常用的Linux系统伪装的方法。
    针对HTTP服务
    通过分析Web服务器的类型,大致可以推测出操作系统的类型,比如,Windows使用IIS来提供HTTP服务,而Linux中最常见的是Apache。
    默认的Apache配置里没有任何信息保护机制,并且允许目录浏览。通过目录浏览,通常可以获得类似“Apache/1.3.27 Server at apache.linuxforum.net Port 80”或“Apache/2.0.49 (Unix) PHP/4.3.8”的信息。
    通过修改配置文件中的ServerTokens参数,可以将Apache的相关信息隐藏起来。但是,Red Hat Linux运行的Apache是编译好的程序,提示信息被编译在程序里,要隐藏这些信息需要修改Apache的源代码,然后,重新编译安装程序,以实现替换里面的提示内容。
    以Apache 2.0.50为例,编辑ap_release.h文件,修改“#define AP_SERVER_BASEPRODUCT \”Apache\””为“#define AP_SERVER_BASEPRODUCT \”Microsoft-IIS/5.0\””。编辑os/unix/os.h文件,修改“#define PLATFORM \”Unix\””为“#define PLATFORM \”Win32\””。修改完毕后,重新编译、安装Apache。
    Apache安装完成后,修改httpd.conf配置文件,将“ServerTokens Full”改为“ServerTokens Prod”;将“ServerSignature On”改为“ServerSignature Off”,然后存盘退出。重新启动Apache后,用工具进行扫描,发现提示信息中已经显示操作系统为Windows。
    针对FTP服务
    通过FTP服务,也可以推测操作系统的类型,比如,Windows下的FTP服务多是Serv-U,而Linux下常用vsftpd、proftpd和pureftpd等软件。
    以proftpd为例,修改配置文件proftpd.conf,添加如下内容:
        ServerIdent on \”Serv-U FTP Server v5.0 for WinSock ready…\” 
       存盘退出后,重新启动proftpd服务,登录到修改了提示信息的FTP服务器进行测试:
     
       C:\\>ftp 192.168.0.1  Connected to 192.168.0.1.  220 Serv-U FTP Server v5.0 for [...]

    2007年11月11日 | 归档于 Linux安全
  • linux的日志安全

    linux的安全的多方面的,您可以通过本文了解linux的日志记录情况,,以便于认识更为深层次的linux安全。
    登陆、连接时间日志–由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
    进程统计–由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。
    错误日志–由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。
     
    常用的日志文件如下:
      access-log       纪录HTTP/web的传输
      acct/pacct       纪录用户命令
      aculog          纪录MODEM的活动
      btmp          纪录失败的纪录
      lastlog         纪录最近几次成功登录的事件和最后一次不成功的登录
      messages       从syslog中记录信息(有的链接到syslog文件)
      sudolog        纪录使用sudo发出的命令
      sulog          纪录使用su命令的使用
      syslog         从syslog中记录信息(通常链接到messages文件)
      utmp         纪录当前登录的每个用户
      wtmp         一个用户每次登录进入和退出时间的永久纪录
      xferlog        纪录FTP会话
      utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键–保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文 件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有 的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以 一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束 后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。
      每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然 后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户 登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。
      下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。
    具体命令      wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。
      who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示
      chyang     pts/0 Aug     18 15:06
      ynguo     pts/2 Aug     18 15:32
      ynguo     pts/3 Aug     18 13:55
      lewis     pts/4 Aug     18 13:35
      ynguo     pts/7 Aug     18 14:12
      ylou     pts/8 Aug     18 14:15
      如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
      w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。
      USER   TTY    FROM     LOGIN@ IDLE JCPU PCPU  WHAT
      chyang pts/0 202.38.68.242  3:06pm [...]

    2007年11月6日 | 归档于 Linux安全
  • Selinux是什么?

    在新的基于RHEL一般都自带了selinux,多数情况下我们把selinux禁用了,事实上既然RHEL要集成它,必然有他的优点和长处,我们通过下文来了解selinux,也许你会喜欢用上它。英文原文来自www.RedHat.comby Russell Coker翻译:胡智江主要内容介绍:SELinux概览:SELinux深入研究:Fedora中策略的实现:Fedora的缺省SELinux策略:更多关于SELinux的资料:关于作者和译者:
    介绍:当今世界,无处不在高速互联网连接、如备有无线接入点的咖啡馆和在网上到处传播的各种黑客工具使得出于对计算机安全的考虑成为老生常谈。出于解决安全问题,NSA在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。这种体系叫做 Security-Enhanced Linux或简化为SELinux。
    SELinux概览:
    SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
    众所周知,标准的UNIX安全模型是”任意的访问控制”DAC。就是说,任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件仍到/tmp目录下,那么在DAC情况下没人能阻止他!
    而MAC情况下的安全策略完全控制着对所有资源的访问。这是MAC和DAC本质的区别。
    SELinux里实现的MAC允许程序在/tmp目录下建立文件,也允许这个文件按照UNIX权限字的要求对全世界可读,但是当UNIX许可检查应用后, SELinux许可检查还要进一步判断对资源的访问是否被许可。换句话说,尽管某些UNIX文件的权限被设定为0777但是你也许仍然会被禁止读,写和执行该UNIX文件。在只有DAC的情况下,用户可以查看或更改属于他的任何文件。SELinux则可以限制每一个进程对各种资源的访问,和访问的权级。就是说当一个程序在使用含有敏感数据时,这些数据会被禁止写入那些低权级进程可读的文件中。
    SELinux提供了比传统的UNIX权限更好的访问控制。
    例如,管理员可以只允许一个应用程序添加记录到一个日志文件但不允许其重写或者删除该日志文件的内容。虽然ext2和ext3文件系统有一个append-only标签(使用chattr设置),但是这属性不区分某一个进程(不能在为一个访问 append-only的同时,又允许另一个进程据有完全可写的权利);另一方面,一个应用程序可以被允许在一个文件夹中建立文件和向其写入数据,但不能删除文件:这种特性是没有SELinux的普通的Linux内核所不能做到的。还有,网络应用程序可以绑定到其需要的端口上(如BIND的53端口),但不能绑定其它端口。
    域-类型模型意味着在安全域中运行着的每一个进程和每一个资源(一般文件、目录文件和套接字等)都有一个与之相联系的”类型”(type)。
    在这基础之上建立了一系列规则,这些规则列出了某个域可以在每一个类型上执行的所有动作。 域-类型模型的一个优点就是我们可以对策略进行分析,从而判断出哪些信息有可能外溢。在标准的UNIX环境中,用户一般可以使用ps命令来互相查看彼此的进程列表,然而这也会为攻击者提供有价值的信息。甚至就算完全阻止用户使用ps命令,信息还是会意外的或故意的泄露,其实在一个给定的UNIX环境中,哪些信息会发生泄露是无法判断的。
    而在SELinux情况下,我们会有很多工具用来分析SELinux策略并判断哪些信息泄露是可能的。举个例子,假如有两个应用程序被允许向一个日志文件添加数据,且他们互相不能直接通信。那么如果一个其中进程又获得了对该日志的读权限的话,那么一个单方通信就有可能形成。
    对访问/etc/shadow文件做访问限制是个很好的例子,通过该例子我们可以看出策略分析的好处。如果你装了Fedora Core 3,并且选择了严格的SElinux策略配置,那么将会有17个域被允许访问shadow_t(/etc/shadow的type),其中有9个域据有写权利。这17个域中有2个可以从用户域(user domain)进入,他们是/usr/bin/passwd和 /sbin/unix_chkpwd(一个为无特权应用程序提供密码检查的辅助程序,比如向锁屏程序就需要使用到unix_chkpwd)。这17个域中的某些域是为一些不常见的应用程序准备的(如radius_t域就是为RADIUS服务器准备的),所以,也就是说,就算除去这个不常用的域,一般的系统中还有16个可访问的域能够访问/etc/shadow呢!
    值得注意的是,Fedora发型版的SELinux策略已经变得越来越灵活;未来版本的策略也许会使何以访问/etc/shadow的域超过17个,这取决于可调节选项的实际配置。还要注意的是,17这个数字是基于严格的策略设定之后而得出的,实际上一个默认的安装会大于这个数字。
    在一个没有SE的机器上,任何以root身份运行的进程都可以访问/etc/shadow文件。这意味着任何被”SETUID root”的二进制代码或以root身份运行的网络服务守护进程,它们所产生的任何安全问题都将会是灾难性的。
    SELinux允许我们限制这些守护进程只访问其所需:BIND只能在53端口提供服务、DHCP服务器可以使用原始套接字(raw network access)、DHCP客户端也可以使用原始套接字并可以改变网络接口,但是它们谁都别想访问/etc/shadow,/home,/root等等这些重要的资源。所以,在SElinux的情况下,如果BIND受到了危害,它最多也就是发送一些伪造的报文罢了。如果DHCPD受到了危害,最坏的可能就是你的ip地址分配被搞乱。这比root权力被远程滥用好多了!
    大家很清楚,一个进程可以援引另一个进程。
    在这种情况下,拿DHCPD为例,DHCPD也许会尝试援引 /sbin/unix_chkpwd对密码进行强力攻击。(But even that potential vulnerability is closed):SELinux能够提供”过渡”规则,这种规则可以用来判断各种域间过渡是否合法。有了”过渡”规则以后,由用户执行的屏幕保护程序可以顺利过渡到/sbin/unix_chkpwd这样一个特权域,然而DHCPD就别想了。
    上述这些限制功能可以使你对系统的状态了如指掌。如果你发现你的DHCP服务器有BUG,那你只要简单的升级DHCP服务器到新版本并且确定每一个客户端都能正常获得IP地址就可以了。可是如果没有SE的话,你还要考虑你的新服务器是否已被黑客入侵并擦除了痕迹。
          SElinux 对不同的域做了严格的隔离。我以前运行一个Debian系统有两年时间,在这期间我开放了他的root密码。最近两个月我在一个Fedora系统上做同样的事情。但这两个系统已经抵抗住了很多次以root身份的攻击(见httphttp://www.coker.com.au/selinux/play.html)。(译者注:这里有一些作者对其playmachine的介绍被忽略了)
    为了给RHEL4做代码测试,Fedora core 2已经尝试集成了SELinux,但是默认是关闭的。而且将来RHEL和Fedora Core的SE还会有非常大的差别的。我们计划在RHEL中,将把SELinux的策略设置的比Fedora Core要严格,我们相信这样做也符合用户的要求。未来的Fedora版本的SELinux策略将会越来越严格,但再严格也不会超过RHEL。
    SELinux深入研究:
    SELinux的策略数据库控制着SELinux的方方面面。它可以判断一个程序可能会运行在哪个域中,还可以说明某个域可以访问哪些资源。这种规定被叫做规则,一个典型的策略往往拥有100,000条规则。别被这数字吓坏,我们根本不必去关心它,因为当我们撰写策略时,我们可以使用高级宏,这些高级宏的一行就能生成10,000条规则。除了宏以外,还有一些工具,使用他们可以分析这些生成的规则是否能达到你对安全的要求。其实再和设置每个文件的UNIX 权限位这样的工作比起来,这100,000个规则也是相当小的工作量了。
    Fedora Core 2安全策略的目标是满足大多数用户无需改动就可以工作的要求,但也有一些普通的简单的选项可以调节策略,一般都是简简单单的一行选项。比如是否允许用户通过dmesg阅读内核的日志,是否允许管理员(sysadm_r)直接通过SSH登陆或登陆图形会话,还有是否允许用户绑定TCP套接字。那100,000个左右的规则存储在一个大约2.6MB的文件中,当系统启动时随内核一起装入内存并占用同样大小(大约2.6MB)的内核空间。 Fedora Core 3默认的strict策略有着多余290,000条规则,占用7MB的内核空间。Fedora Core 3默认的target策略有大约5,000条规则,占用150K的内核空间。
    目前,SELinux并没有在内存使用方面进行优化;但现在对这些优化工作已经有了计划和一些降低内存使用的方法。如果你不打算使用某些守护进程,你可以简单的将其对应的策略文件删除以便获得占用空间更少的策略。2003年,在Ottawa举办的一次Linux讨论会上,我提交过一篇文章,那是关于我在把 SELinux移植到HP iPAQ PDA上所做的工作的文章(在http //archive.linuxsymposium.org/ols2003/Proceedings/可以获得)。
    证明我可以使SELinux(且选择 strict策略)很好的工作在一台只有 64 MBs的RAM 和32 MBs 存储空间的小平台上,并且我相信我还可以使它运行在更小的平台上。针对Fedora Core2系统,我们只把目光定位在目前最常见的硬件平台,从而得出了默认的策略配置。但那些使用老机器的用户们也许会希望配置出最小限度的策略以便减少内存使用和提高性能。
    在使用了SELinux的系统中,每一个进程的上下文都包含三个组成部分:一个ID(identity),一个角色(role)和一个域(domain)
    ID是指这个进程的所有者,就是UNIX账户,但前提是这个账户必须被预先编译到SELinux策略中去使SELinux认识这个账户,不然的话SELinux默认地将那些未知的系统进程ID记为 system_u ,将那些未知的用户进程ID记为 user_u;角色用来判断某个处于此角色的ID可以进入哪些域,还用来防止某个处于此角色的ID进入其它不该进入的域。比如, user_r角色就不允许进入 sysadm_t (重要的系统管理域)。
    换句话说就是,那些只有 [...]

    2007年11月5日 | 归档于 Linux安全
  • linux下防范arp之欺骗攻击

    arp攻击已经泛滥成灾,各大机房也正为此而感到头痛,要彻底防范arp欺骗,还要细分网段,这样的工作量是很大的,linux下防范arp欺骗攻击有有一些基本的防范方法,可以防止一些简单的arp欺骗。下面就是转载一篇rurutia朋友的文章,供大家参考。前两天家里的网断断续续,发现有人在用arp欺骗,其实真正碰到有人在攻击的几率不大,大部分原因都是有人在用win下的诸如“P2P终结者”这样的软件导致的。再怎么bs那人也是没有用的,问题还是要解决,win下倒是好办,现成的软件多的是 ,linux下面就要自己动手了^^。
    arp欺骗的原理不多述,基本就是利用发 送假的arp数据包,冒充网关。一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的,假的arp包就会刷新这个缓存,导致本该发送到网关的数据包发到了欺骗 者那里。解决的办法就是静态arp。
    假设网关的IP是192.168.0.1,我们要 先得到网关的正确MAC,先ping一下网关:
    ping 192.168.0.1然后运行arp查看arp缓存中的网关MAC:
    localhost~$ arpAddress       HWtype  HWaddress        Flags Mask    Interface192.168.0.1   ether  00:12:34:56:78:9A    C             eth0这里得到的网关MAC假定 为00:12:34:56:78:9A,C代表这个绑定是保存在缓冲里的,我们要做的就是把这个IP和 MAC静态的绑定在一起,首先建立/etc/ethers文件,输入以下内容:
    192.168.0.1 00:12:34:56:78:9A保存退出,之后便是应 用这个静态绑定:
    localhost~$ arp -f再运行arp查看:
    localhost~$ arpAddress       HWtype  HWaddress        Flags Mask    Interface192.168.0.1   ether  00:12:34:56:78:9A    CM            eth0多了个M,表示静态网关 ,OK收工~
    另外,如果你不会和局域网内的用户通讯的话,那么可以干脆 把arp解析关掉,假定你的网卡是eth0,那么可以运行:
    localhost~$ ifconfig eth0 -arp这样对付那些终结者软件就可以了,但是真的有人 向攻击的话,这样还是不够的,因为攻击者还可以欺骗网关,解决的办法就是在网关和 局域网内机器上做双向绑定,原理方法同上,一般网吧里面也是这样做的。

    2007年11月5日 | 归档于 Linux安全
  • Linux/UNIX平台的病毒

    相比Windows平台,Linux/UNIX平台以更安全而被系统管理员们认可,即使有众多的Linux/UNIX平台的爱好者们在不断的给系统打着补丁,不断的改进着这一开源平台的代码,但是始终没有绝对的安全,作为系统管理员,只要要了解Linux/UNIX平台的安全部署工作,下面转载一篇关于Linux/UNIX平台的病毒的文章,以供参考。    不久以前,很多系统管理员还信誓旦旦的表示,Linux和其他基于UNIX的平台对于病毒和蠕虫事实上是无懈可击的。我不知道为什么他们对自己的威胁分析这么自信,特别是从第一个大型蠕虫在1988年被Robert Morris发明,在使用Sendmail程序的UNIX系统中被释放出来以后。我猜测每个人都变得热衷于批评微软的操作系统和软件,这已经成为越来越多病毒制造者的攻击目标,然而他们却遗忘了UNIX上的脆弱点。
    Linux/UNIX威胁 随着Klez病毒在Linux平台上传染的通告,防毒软件厂商开始提醒我们微软的操作系统不再是唯一易受病毒攻击的操作系统了。即使Linux和其他一些主流UNIX平台的用户可能不是微软捆绑应用软件的大用户,不可能通过这些软件造成病毒的泛滥,Linux和UNIX仍然有它们自身并不引人注目的脆弱点。
    除了Klez以外,其他Linux/UNIX平台的主要威胁有:Lion.worm、OSF.8759病毒、Slapper、Scalper、Linux.Svat和BoxPoison病毒,这些很少被提及。
    我记得曾经在两年前参加了一个由欧洲最大的财政机构完成的安全审计项目,当时我听见一个知名的安全专家告诉审计师,UNIX是不易受病毒攻击的。审计师只是简单的说了一句”okay”,然后纪录下”UNIX系统对于病毒是安全的”。那个时代已经过去了,你现在可以预料到,安全审计师和IT安全团队已经开始强烈的需要UNIX平台上的病毒策略了。
    一个叫Alexander Bartolich的奥地利学生甚至已经完成了如何一个编写Linux平台上ELF 病毒的指南。Bartolich 没有要求做一个Linux病毒先锋,他表示,他只是更有效的说明了和反映了病毒、蠕虫和木马威胁Linux 更好的途径,那些很早就已经在别处被说明了。有了这样具启发性的、在网上发布的文档,基于UNIX的病毒数量只会增长的更快,特别是自Linux 在服务器领域的应用越来越广泛之后。系统管理员也许希望,在亲自读过那本指南以后,对Linux 病毒的理解发生飞跃,从而能够更好的掌握Linux 的脆弱点。
    病毒的制造者是一些精通编写代码的黑客,他们远比那些胡乱涂改网站却对编写病毒知之甚少的黑客要危险。尽管一个被黑掉的网站可以很快的修好,病毒却加更隐蔽,会带来潜在的安全隐患。你也许不能相信,但是病毒会一直潜伏,直到它给系统带来不可挽回的损害。
    受影响的Linux/UNIX平台 不是所有版本的Linux/UNIX平台都已经被影响,但是下面这些是在从前已经被病毒侵害过的系统:
    # SuSE Linux # Mandrake Linux # Red Hat Linux # Debian GNU Linux # Slackware Linux # FreeBSD # HP/UX # IBM AIX # SCO Unixware # SCO OpenServer # Sun Solaris # SunOS
    越多的Linux/UNIX系统连接到局域网和广域网,你的单位就有越多受攻击的可能,这是因为很多UNIX 病毒正在快速的扩散着。使用WINE的 [...]

    2007年10月26日 | 归档于 Linux安全
  • Linux安全设置手册

    本文是一篇比较早期的经典linux安全设置介绍,但是其关于linux安全的论述和观点还是值得参考,它讲述了如何通过基本的安全措施,使你的Linux系统变得更为安全可靠。
    1、Bios Security 一定要给Bios设置密码,以防通过在Bios中改变启动顺序,而可以从软盘启动。这样可以阻止别人试图用特殊的启动盘启动你的系统,还可以阻止别人进入Bios改动其中的设置(比如允许通过软盘启动等)。
    2、LILO Security 在”/etc/lilo.conf”文件中加入下面三个参数:time-out,restricted,password。这三个参数可以使你的系统在启动lilo时就要求密码验证。
    第一步: 编辑lilo.conf文件(vi /etc/lilo.comf),假如或改变这三个参数: boot=/dev/hda  map=/boot/map  install=/boot/boot.b  time-out=00   #把这行该为00 prompt  Default=linux  restricted   #加入这行 password=   #加入这行并设置自己的密码 image=/boot/vmlinuz-2.2.14-12  label=linux  initrd=/boot/initrd-2.2.14-12.img  root=/dev/hda6  read-only 
    第二步: 因为”/etc/lilo.conf”文件中包含明文密码,所以要把它设置为root权限读取。 [root@kapil /]# chmod 600 /etc/lilo.conf 
    第三步: 更新系统,以便对”/etc/lilo.conf”文件做的修改起作用。 [Root@kapil /]# /sbin/lilo -v
    第四步: 使用”chattr”命令使”/etc/lilo.conf”文件变为不可改变。 [root@kapil /]# chattr +i /etc/lilo.conf  这样可以防止对”/etc/lilo.conf”任何改变(以外或其他原因)
    3、删除所有的特殊账户 你应该删除所有不用的缺省用户和组账户(比如lp, sync, shutdown, halt, news, uucp, operator, games, gopher等)。 删除用户: [root@kapil /]# userdel LP  删除组: [root@kapil /]# groupdel LP 
    4、选择正确的密码 在选择正确密码之前还应作以下修改: 修改密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把它设为8。修改最短密码长度需要编辑login.defs文件(vi /etc/login.defs),把下面这行 PASS_MIN_LEN    5  改为 PASS_MIN_LEN    8 login.defs文件是login程序的配置文件。
    5、打开密码的shadow支持功能: 你应该打开密码的shadow功能,来对password加密。使用”/usr/sbin/authconfig”工具打开shadow功能。如果你想把已有的密码和组转变为shadow格式,可以分别使用”pwcov,grpconv”命令。
    6、root账户 在unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,系统会自动注销。通过修改账户中”TMOUT”参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile),在”HISTFILESIZE=”后面加入下面这行: TMOUT=3600 3600,表示60*60=3600秒,也就是1小时。这样,如果系统中登陆的用户在一个小时内都没有动作,那么系统会自动注销这个账户。你可以在个别用户的”.bashrc”文件中添加该值,以便系统对该用户实行特殊的自动注销时间。 改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。
    7、取消普通用户的控制台访问权限 你应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。 [root@kapil /]# rm -f /etc/security/console.apps/  是你要注销的程序名。
    8、取消并反安装所有不用的服务 [...]

    2007年9月29日 | 归档于 Linux安全
  • 一些不错的国外linux安全站点

    linux安全专家经常光顾的地方,大家可以根据喜好则优选择
    http://www.megasecurity.orghttp://www.k-otik.com/ http://www.derkeiler.com/ http://www.backtrace.de/ http://sourceforge.net/ http://lists.netsys.com/ http://www.blackhat.com/ http://www.phenoelit.de/ http://www.hbgary.com/ http://www.immunitysec.com/ http://www.foundstone.com/ http://www.nextgenss.com/ http://www.securiteam.com/ http://packetstormsecurity.org/ http://www.securityportal.com/ http://www.securityfocus.com/ http://www.atstake.com/ http://www.self-evident.com/ http://www.eeye.com/ http://www.insecure.org/ http://www.sans.org/ http://teso.scene.at/ http://www.sqlsecurity.com/ http://www.ussrback.com/ http://www.technotronic.com/ http://www.ntbugtraq.com/ http://defaced.alldas.de/ http://www.incident-response.org/ http://secinf.net/ http://whitehats.com/ http://www.securityflaw.com/bible/ http://lsd-pl.net/ http://mixter.void.ru/ http://www.thehackerschoice.com/ http://www.bugnet.com/ http://www.hackbbs.com/ http://phrack.org/ http://sysinternals.com/ http://project.honeynet.org/ http://www.s0ftpj.org/ http://www.wiretrip.net/ http://www.ietf.org/ http://www.whitecell.org/ http://www.vulnwatch.org/netcat/  Netcathttp://www.insecure.org           Nmaphttp://winpcap.polito.it/         WinPcaphttp://www.sysinternals.com/      PsToolshttp://www.tamos.com/cv.htm       CommView 5.0 Build 452http://www.oxid.it/   Cain & Abel

    2007年9月29日 | 归档于 Linux安全
‘Linux安全’ 分类的存档