谦逊的计算机时钟的安全含义

你公司里每个电脑系统的时钟都是正确的吗?如果你的答案是否定的,那么你并不孤单。根据弗吉尼亚州詹姆斯麦迪逊大学(James Madison University)两位教授弗洛里安•布赫霍尔兹(Florian Buchholz)和布雷特•特贾登(Brett Tjaden) 2007年的一项研究,互联网上超过四分之一的网络服务器时钟慢了10秒以上。确保电脑设定正确的时间是那些看似微不足道的技术问题之一,如果操作不当,很不幸会产生严重的负面后果。这是因为关于时间及其流动的假设渗透到现代计算机系统中——包括软件、硬件和网络。桌面系统、服务器、移动设备和甚至嵌入式系统,如HVAC,警报系统和电子门窗

幻灯片:网络安全历史上最糟糕的10个时刻

Buchholz和Tjaden研究了Web服务器,因为它们特别适用于分析:每次从现代Web服务器请求页面时,服务器都会向一个名为“日期”的HTTP标题,表示服务器时钟的时间时间。但除非你的组织努力保持时间以准确和准确的方式,否则你的机会非常好,你做得不好。

你的服务器有时间吗?

拥有正确的时间对于安全性来说很重要,因为系统时钟不仅仅用于在组织的主页上显示当前时间。Web服务器将下载的每个页面的时间写入其日志文件:如果一天的时间时钟是错误的,日志文件也是错误的。(见也另一个看日志文件。)如果您试图弄清楚源于组织内部的攻击,这可能是一个问题。您可能希望在会议中在桌子上看到嫌疑人,或者已知从办公室脱离办公室。但对于源于您的组织以外的攻击,这也很重要。那是因为许多攻击者将从动态分配的IP地址安装攻击;如果您的时间在几分钟(或更多)下降了几分钟(或更多),则可能几乎不可能弄清楚攻击来自或谁负责的地方。

日志文件只是开头。每次修改文件,访问或具有其元数据已更改,现代计算机系统将更新文件所谓的“MAC次”。法医工具,如EnCase, FTK和Sleuth Kit能够读取一个计算机系统中的所有MAC时间,并将它们排序,创建一个单一的时间线。事件响应团队通常会使用这些时间线来确定入侵者浏览或修改了哪些文件。(参见Richard Bejtlich的著作事件检测、响应和取证.)

由于时钟经常设置不正确,一些鉴定工具将允许安全专业人员在构造日志文件时输入时间偏差或“增量”。但是这些工具假设计算机的时间偏差是恒定的——如果计算机今天慢了30分钟,它三个月前也慢了30分钟。不幸的是,这种假设是错误的。

在六个月的六个月的研究期间,Buchholz和Tjaden发现,具有错误时间经常漂移或跳跃的系统不可预测的方式。有些系统会稳步慢或更快,然后跳回正确的时间。其他系统是岩石固体的时间,但它们从正确的时间截止了几分钟,小时,天甚至几年。一些系统遵循了夏令时的错误规则。有些服务器似乎有多次错误的时间 - 也就是说,对服务器的一个查询将返回一次偏移量,而其他查询将返回完全不同的时间偏移,然后后续查询将在两者之间交替替换。(作者假设这些情况发生在通过某种负载平衡安排的不同时间偏移的两个或更多物理机器躲在单个IP地址后面。)您可以在www.dfrws.org/2007/上阅读整篇文章诉讼/ p31-buchholz.pdf。

在一个典型的服务器上,系统的时钟被许多其他进程和系统使用。由于服务器上的许多任务都以一天中的时间为关键,所以时间错误或不稳定的服务器可能无法执行自动例行维护,如记帐、定期清理临时文件或重建系统数据库。可能无法执行备份,或者备份不准确。安全补丁可能无法正确应用,自动更新脚本可能无法正常运行。如果时间错了,整个服务器都可能有问题。

客户端时间

在您的客户端上获得时间很重要,而且不仅仅是安装了安全修补程序。SSL安全协议,安全Web浏览器和邮件下载的基础,要求您的客户知道正确的时间。这是因为SSL基于X.509公钥加密证书,并且每个SSL证书都有两个时间和日期标记 - 当证书开始有效并且在证书到期时。

时间显示在许多其他桌面应用程序中。许多日历程序以不同的颜色显示当前日期,并有一个按钮将日历的显示移动到“今天”。许多邮件客户端会根据邮件是在今天、昨天还是过去的某一天收到的而改变接收邮件日期的显示方式。如果时间设置不正确,这些功能就不能正常工作。

许多电子邮件客户端会自动将“来自未来”的信息归类为垃圾邮件;垃圾邮件发送者可能会将邮件中的日期标头设置为未来数小时、数天或数周,以使他们的垃圾邮件出现在用户邮箱的顶部。所以,如果你的电脑时钟在过去,它可能会认为它收到的每一条信息都是垃圾邮件。

许多独立设备也有内置时钟,但也经常出错。在不合适的时间设置恒温器可能会让你感到不合适的热或冷。最近,我不得不根据电子门锁的记录来判断谁在什么时候进入了房间。解析日志花费的时间比它应该花费的时间长得多,因为它关闭了1小时15分钟,而且当夏令时到来时,它没有自动调整。

如何获得时间?

获得和保持准确的时间实际上需要两个独立的操作。首先,计算机需要知道一个精确的时间点或标记;第二,计算机需要能够调整其时钟的频率或漂移,以与一些可能更精确的外部源保持同步。幸运的是,拥有准确的时间是如此重要,以至于Windows、MacOS、Linux、PalmOS和几乎所有其他现代操作系统都内置了对Internet网络时间协议(NTP)的支持,NTP可以自动执行这两项功能。

但是,尽管广泛部署了对NTP的支持,许多系统仍然禁用了NTP。更糟糕的是,当NTP关闭时,很少有系统会发出警报。更糟糕的是,当它们的时钟明显错误时,系统不会发出警报,尽管这样的警报很容易做到。在撰写本文时,我检查了5台Mac、2台PC和一个Linux系统上的NTP:只有一台Mac和一台PC启用了NTP。其他系统的关机时间是几分钟,不过Linux服务器的关机时间超过了两个小时。哎呦。

当它正常工作时,NTP系统应执行两个相关功能。当电脑靴时应要求当前时间的远程“时间服务器”并相应地设置计算机的时钟。一旦系统正在运行,NTP应定期监控远程时间服务器,并轻轻慢慢减慢或加速计算机的时钟,使其保持准确,因此在系统时间的明显通道中没有突然跳跃。(至少这是它所应该在实践中工作的方式。一些实现将系统的时钟大气复位到参考时钟。我已经看到了Palm的桌面日历等应用程序的问题。)

微软和苹果都有自己的时间服务器,这些时间服务器的名称都内置在各自的操作系统中。例如,MacOS将在北美使用服务器time.apple.com。许多大学和企业都有自己的时间服务器:使用本地服务器可以提供更准确的时间(因为网络延迟更少),还可以减少组织的网络流量。如果想运行本地时间服务器,可以从NTP池项目(www.pool.ntp.org)运行的公共NTP服务器中获取时间。2009年1月,全球有超过1734台公共服务器在运行,大部分在欧洲和美国。网站上有配置大多数操作系统以获得准确时间的详细说明。

具有讽刺意味的是,互联网上的大多数时间服务器从其他时间服务器中获取他们的时间。但NTP还支持所谓的“Stratum-0”时间设备,从而从一致的时间标准中获得时间参考。这些Stratum-0设备在Internet上连接到Stratum-1服务器。从Stratum-1服务器获取时间的服务器称为stratum-2服务器等。当我写这篇文章时,“time.apple .com”实际上是四个单独的stratum-2服务器,它可能会连接到Apple内的其他Stratum-1服务器。

如果你仔细看的话,你会发现上一段中有些地方可能会让你感到困惑——关于“约定的时间标准”的那部分,强调的是复数。虽然看起来应该只有一个时间标准,但遗憾的是有多个时间标准。美国官方时间是由美国国家标准和技术研究所的时间和频率部门和美国海军天文台的时间服务部门合作运行的。这两个机构都使用自己的高度精确的时钟,每周进行一次比较;这两个时钟之间的时间差一般在20纳秒之内,这对于大多数应用来说已经足够了。时间可以通过互联网、电话系统和三个无线电台(WWVB、WWV和WWVH)传送。如果你有一个可以根据收音机(或“原子钟”)自我调节的时钟,它可能正在收听WWVB。美国政府时间是UTC时间,也被称为协调世界时、GMT(格林尼治标准时间)或祖鲁时间。

但还有其他的时间系统。例如,有许多低成本的GPS接收器可以为你的电脑提供时间。还有一些蜂窝接收器可以接收斯普林特或威瑞森的时间,因为这些公司使用的CDMA电话系统也需要精确的时间。不幸的是,这些系统彼此之间略有不同步,但在实践中,这在大多数情况下不会影响到您。(几年前,我注意到斯普林特(Sprint)在波士顿的CDMA系统传输的时间正好差了5个小时;看起来好像有人没有正确地设置时区偏移。这个问题几个小时后才得到解决。

闰秒

不过,还有一个可能会影响你的小问题,那就是如何处理闰秒。记得增加闰秒是因为地球的自转由于潮汐的摩擦作用正在减慢;一百多年来,地球每天都没有86400秒(传统的测量方法)。为了应对这一不幸的情况,国际地球自转与参考系统服务中心(International Earth Rotation and Reference Systems Service),也被称为“时间领主”(Time Lords),会时不时地增加一个“闰秒”,以使气象日与计算机系统使用的日期保持同步。刚刚过去的12月,我们有了一个闰秒。计算机处理闰秒的标准方式是让时钟在1月1日00:00:00之前调到23:59:60 GMT。(在纽约市,闰秒实际上发生在美国东部时间12月31日18:59:60。)

闰秒可能会导致问题,因为尽管NTP和大多数现代操作系统的底层都知道秒有时是从0到60(而不是通常的0到59),但很少有程序员真正掌握正确时间的所有细节。

去年12月,运行Oracle集群准备服务(CRS)集群的系统在格林威治时间23:59:60崩溃,无法处理操作系统底层时间服务产生的闰秒。一些来自Slackware、Debian和Red Hat的Linux系统也挂起了,显然是因为一个底层内核错误。(这与2009年1月1日导致微软Zune播放器崩溃的漏洞无关。这个bug与2009年不是闰年有关。)

希望您对本文的善意回应是检查并确保组织中的所有计算机系统都有正确的时间——如果没有,请在安全人员的职责列表中添加适当的时间保持。当然,拥有可靠的时间对于良好的安全性来说很重要,但它也使其他类型的例行任务(如诊断电子邮件延迟和中断)变得更容易。

最终,时间是一个安全问题。有正确的时间是一个人被判有罪和被释放的区别。事实上,如果你的系统时钟是错误的,你甚至可能不知道已经发生了犯罪。

西姆森·加芬克尔(Simson Garfinkel)是加州蒙特利海军研究生院的副教授,也是哈佛大学工程与应用科学学院的副教授。本文件所表达的观点和意见代表作者的观点和意见,并不一定反映美国政府或国防部的观点和意见。

这个故事,“谦卑的计算机时钟的安全影响”最初发表于方案

加入网络世界社区有个足球雷竞技app脸谱网linkedin对自己最关心的话题发表评论。
有关的:

版权©2009Raybet2

工资调查:结果是