网络安全 频道

资深白帽子推荐五款卓越的开源安全工具

    【IT168 技术】说起开源工具,企业IT人员都很熟悉,因为目前大部分企业IT部门和个人技术人员都依靠开源软件,然而,尽管开源软件已经广泛应用于网络、开源系统和虚拟化,但企业安全平台仍然主要使用专有软件和供应商锁定,幸运的是这种状况正在发生改变。

资深白帽子推荐:5款不容忽视的开源工具

  开源软件的优势在于,很多这些工具来自由知名公司(例如领先的安全公司和主要云计算运营商)支持的项目,并且很多工具已经在最大最具挑战性的环境中经过测试。

  开源一直是安全专业人员的丰富工具来源,其中开源渗透测试框架Metasploit是最知名的工具,但信息安全不仅限于研究人员、调查人员和分析师的范畴,IT管理员和软件开发人员也发挥着关键作用,通过下面5款开源安全工具,他们可为企业安全带来显著改变。

  1、Commit Watcher:检查代码存储库中是否包含秘密信息

  秘密不属于开源代码存储库,但这并不会阻止开发人员存储秘密在其中。我们看到过很多这样的报道:有关人员将亚马逊云计算服务私钥、硬编码秘密或者API令牌上传到GitHub或者其他代码存储库而导致意外泄露。

  为了解决这个问题,SourceClear推出Commit Watcher,这个免费的开源工具可查找公共和私有Git存储库中潜在敏感信息。开发人员和管理员都可以使用Commit Watcher来监控自己的项目以防止意外泄露信息,并可监控他们定期使用的公共项目来确定是否有任何问题。例如,当公共项目更新“修复XSS攻击”之类的信息时,Commit Watcher会通知开发人员获取最新信息。

  Commit Watcher会定期检查项目新提交的内容,并查找与项目规则中定义的任何关键字及短语匹配的信息,这些规则包括文件名、代码模式、注释和作者名的正则表达式。Commit Watcher配有数十种预配置规则,用于查找AWS凭证、Salesforce凭证、SSH密钥、API令牌和数据库转储文件。

  2、Jak:加密你的秘密

  不要将机密信息放在代码中应该是开发人员的基本常识,而应该将信息保存在配置文件中,然后将配置文件添加到.gitignore列表中以防止将其提交到代码存储库中。连接支付系统、电子邮件发送器和虚拟机的密钥必须直接手动放置到应用服务器,它们需要完全独立于源代码进行管理。毕竟当共享这些密钥时会带来挑战。

  这是一个常见的情况:某个团队成员从代码存储库下载源代码,并通过带外方法接收密钥,就像处理纯文本电子邮件、聊天消息、USB记忆棒。是否有一种方法可保存这些密钥在存储库中,让它们易于共享,但又可对其加密而不会泄露?

  Python项目Jak通过让开发人员加密提交到Git的敏感文件来解决这个问题。开发人员会将敏感文件放在jakfile中,而不是.gigignore,当提交时,Jak可确保只有加密版本的文件才会提交到存储库。Jak会在必要时负责加密和解密文件,并自动生成和更新加密密钥。这些都是通过命令行来完成,所以开发人员在加密文件或者解密文件时无需更改窗口。

  目前Jak应用到生产环境还为时过早,但开发人员应该先熟悉这个工具。

  3、Yara: 使用模式匹配找到问题

  Yara是源自VirusTotal Víctor Manuel álvarez的开源项目,恶意软件研究人员喜欢使用Yara来识别和分类恶意软件文件样本。但其实Yara还可以做更多工作,它还可作为事件响应和取证调查的一部分。你可以创建规则--由文本字符串、十六进制值或者正则表达式组成,而Yara可扫描可疑目录和文件来查找任何匹配。扫描文件是最常见的用法,Yara还可使用这些规则来检查正在运行的进程。

  通过Yara分析文件,卡巴斯基和AlienVault的研究人员可关联索尼泄露事故与亚洲其他攻击。

  常见攻击技术是用冒名顶替文件替换系统文件以便在机器中建立后门程序。查看系统文件是否完整的一种方法是查看MD5和SHA-1散列,另一种方法是为系统文件中的多个字符串或值设置Yara规则,并定期扫描这些文件。如果扫描未能找到匹配,你就知道这些文件已被修改,则应该进行调查。如果攻击者已经上传命令副本到未知未知,Yara可查找这些副本。

  除了预先配置的规则和你创建的规则外,Yara还可使用开源防病毒工具ClamAV的病毒签名文件,以及社区维护的YaraRules资源库中提供的规则集。该资源库包含用于检测已知封装器或标记恶意进程的预定义规则。我们还可以使用VirusTotal专用API来设置触发器,当环境中扫描的文件匹配上传到VirusTotal恶意软件库的文件触发警报。Yara不需要从命令行界面运行;它有Python库将其整合到Python脚本中。

  Yara可发现异常变更或者检测敏感信息(社会安全号码、管理凭证等),它是功能强大的工具。基于签名的检测存在局限性,因此我们完全依靠Yara来查找恶意文件不是好办法,但考虑到它的灵活性,我们也不应该忽视这个工具。

  4、ProcFilter: 使用模式匹配阻止问题

  对于想要在感染后分析文件的取证调查人员和事件响应人员来说,Yara是非常有用的工具。然而,Yara无法有效抵御已知威胁。而来自GoDaddy的开源项目的ProcFilter可解决Windows环境中这一挑战。ProcFilter让你可应用Yara规则到运行的进程,以及基于匹配来阻止或记录可执行文件(并隔离相关文件)。

  ProcFilter作为Windows服务运行,并可整合微软的Event Tracing for Windows(ETW)API,以便它可记录自己的活动到Windows事件日志中。这个整合还意味着ProcFilter可创建规则,并在匹配时采取适当的操作。ProcFilter可配置为在进程创建或终止时或者加载可执行镜像时扫描文件和内存。

  ProcFilter并不能取代你的反恶意软件解决方案,而是帮助你消除特定已知威胁,例如同行企业遭受的网络钓鱼攻击。如果该企业共享Yara签名以帮助其他人避免相同的攻击,你可使用ProcFilter来在入站电子邮件中查找匹配信息,并阻止这些消息的传递。你还可以检测Word、Excel、PowerPoint和Adobe文件,查看并记录这些应用程序产生的所有子进程。

  5、OSquery: 查询端点了解系统状态

  想象一下,在你的Windows、MacOS和Linux端点中查找恶意进程、流氓插件或者软件漏洞就像编写SQL查询一样简单。这正是OSquery背后的理念,这个来自Facebook工程师的开源工具可收集操作系统信息,例如运行进程、加载内核模块、开放网络连接、浏览器插件、硬件事件以及文件散列。如果你可编写SQL查询,那么你就可以解答安全问题,而无需复杂的代码。

  例如,以下查询可查找正在监听网络端口的所有进程:

  SELECT DISTINCT process.name, listening.port, listening.address, process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid;

  这个查询可在地址解析协议(ARP)缓存中查找异常,其中包括IP地址信息以及解析以太网物理地址的信息:

  SELECT address, mac, COUNT (mac)AS mac_count FROM arp_cache GROUP BY mac HAVING COUNT(mac)>1;

  这比在Python中编码要简单得多,OSquery可以简单而优雅的方式解决了一个重要问题。这些组件包括OSqueryi--这个交互式外壳程序可结合Powershell使用,以及OSqueryd,这个程序可执行低级主机监控,并允许你调度查询。

  IT管理员无法使用开源安全工具有很多原因,包括对成熟度和支持方面的疑问。更重要的是信任问题。企业可能不愿意依靠他们完全不知道的开发人员的工具来保护他们的重要信息。

  本文中列出的开源安全项目都是由知名企业支持,这些工具可解决特定安全问题,可帮助提高你的企业安全性,不妨可以试一试。

1
相关文章