苹果安全神话破灭回顾,兼谈闪回Flashback木马

本文概述了Mac电脑遭受闪回木马病毒的迅速传播过程,包括病毒感染的数量、用户之间的口水战、市场各方的反应以及解决措施。文章深入分析了木马的传播机制、对系统的潜在威胁以及不同安全公司的应对策略。最后讨论了此次事件背后的深层技术和心理原因,以及对苹果公司未来发展的启示。

更新:

4月13日,Apple公布了第一个官方的移除该木马的软件,详情参见官方说明和下载



近日,闪回木马在Mac电脑中迅速传播,当这个事情开始被公众广为关注时,已经有数十万用户的个人电脑被感染,同时在各个论坛闹得沸沸扬扬,尤其是窗迷(Windows迷)与果粉之间的争吵,又一次的全面爆发,这一点在国外的各个公开论坛显得尤其的突出。

用户口水激战

果粉们在承受高价Mac电脑和苹果市场的蒸蒸日上蚕食Windows传统领域而倍感骄傲,以及对百毒不侵的理念深信不疑并嘲笑Windows的千疮百孔的时候,而窗迷们一面无颜面对市场上Windows疲于防守而苹果攻城略地的喜讯频报,一面持续频繁更新杀毒软件冷眼苹果背负果粉嘲讽而抱着“你们迟早和我们一样面对病毒“信念的时候,突如其来的闪回木马的出现,引起双方阵营一阵喧闹。窗迷们顿感浑身一振,把这几年来积郁在心中的愤懑化作利剑如泼水般倾斜给了对方,果粉在毫无准备中匆忙从地上拿起树枝当盾牌没料想自己已然浑身透湿。双方好久没有这样的激战了,果粉已经习惯于胜利和凯旋,而窗迷们也终于扳回一分。

 

突然发酵

在看双方用户激战的同时,市场各方的行动也是精彩。

首先是,早在2月24日,诸如MacRomurs等网站按照新软件发布一样漫不经心地公布这一木马的发现,最初这并没有被业界广泛重视,因为从前也有安全公司曾经发布针对Mac的病毒警告,也没有被重视一样。推特上有人声称,该木马早在去年底被发现,而按照Dr. Web公司宣称,他们在3月25日记录了第一个该木马的网站注册,其实早在去年12月份,Ars Technica就发布了有关的信息,在4月3日的时候,Dr. Web监测到13万次的感染记录,但是这些都没有被媒体和公众所关注。


而紧随其后,Dr. Web公司声称全世界已经有55万台苹果电脑被感染,之后这个数字迅速增长到65万台,虽然好多技术人员依然对他们的数据是否准确、是否夸大其词存在质疑,不过业界却顾不了那么许多,已经被这一广为传播和感染的事件数据和图表形象表述所震撼(上图),于是世界被它感动而沸腾了。在了解基本传播机制后,各个方面通过媒体激烈抨击苹果公司的行为,因为数月前Sun公司就对这个Java漏洞进行了补丁更新,但是苹果公司坚持自己开发并发布Mac版的Java程序,而苹果的行动却很慢,直到东窗事发,10日苹果公司匆忙间发布一个支持文档说他们将会发布一个移除该木马的程序,昨天他们发布了一个Java补丁程序,于是广大最终用户迫切等待它的发布,终于在昨天12日苹果发布了这个杀毒软件,最终用户可以更新下载,但是这个更新却存在这一个问题,也就是它默认禁止Java applet,虽然用户可以开启它,但是系统会在一段时间后默默地再次关闭它,虽然这个对普通用户没有太多影响,但是对于使用Java的很多企业用户来说,可不是一个好事,可以想见技术支持人员会疲于向用户解释这个情况。

 

木马在哪里

在检测该木马方面,虽然说F-Secure公司是最早发布详细描述该木马特征的公司,声称该木马可能感染多个应用程序,包括诸如杀毒软件在内的众多,比如Microsoft Office办公件,VirusBarrier,iAntiVirus, avast!, ClamXav, HTTPScoop,Safari, FireFox,Skype, Xcode等,该公司也给出了一个检测用的脚本程序,但是这个脚本对于大多数的最终用户来说,如同天书一般难以理解,既不知道如何使用,更是唯恐触及。Dr. Web公司声称通过反向解码,已经掌握了该木马的行为特征,但是在公布具体技术细节方面,却远远落后于F-Secure公司。最开始,人们还怀疑这个木马传说是不是真实存在过,不过很快就有人证实,在自己的网络用户中已经通过上面的检测方法检测到有木马存在,于是大家都立刻严肃对待起来,没有了质疑声。

 

深层原因

从各个方面的描述来看,这个木马程序对Mac系统的攻击,开始于用户被恶意导向含有这个木马的网站,访问之后,一个程序通过浏览器的Java applet被执行,该程序利用旧版本的Java虚拟机的一个严重漏洞,可以执行本地代码,之后Mac系统会提示用户输入本地管理员的用户信息。这时,如果用户输入了管理员账户信息,那么该程序获得本地管理员权限,从而扫描并感染系统内上述诸多程序,从而窃取这些程序所保留的本机所有用户账户使用这些程序时的账户信息;如果当时用户没有输入管理员账户,而是忽略了该提示,那么该程序依然会感染该用户,并搜索该用户所安装的程序,并试图获取该用户的网上账户信息。可以想见,这个漏洞产生的问题的严重性,它突破了从前苹果和诸多Unix专家们从技术角度所自认的安全共识,也就是:只要不获得本地管理员帐号系统和用户就是安全的。根据这个案例,实际情况并非如此简单和安全。再加上,早有资深人士指出,基于类Unix的Mac OS X系统,随着日益普及,早晚会被黑客们关注并攻击,只不过当时并没有一个象当前这个事件那样的广泛感染事件作为佐证,现在真的不幸被言中。所以,这才是本次事件被广为关注的深层技术和心理原因。

 

事情没完

对于其它安全公司们,无论是老牌还是新锐,这正是在Mac市场扬名立腕的时机,于是名不见经传的Mr.Web,老牌的卡巴,Symantec等等公司都高调宣布自己的杀毒软件公布,而一些免费软件的开发团队们就低调了很多,他们在默默研究和开发自己的解决方案。大家都公布了基于F-Secure公司的木马行为描述,编写了自己的检测程序,他们都大同小异,有的简单直观,有的更用户友好些。比如:F-Secure公司Flashback Removal ToolKaspersky的Dr. Web的等等。

不过,由于这些公司的技术人员对这个曾经就出现的木马病毒,并没有做好面对市场激烈如此反应的准备,在他们发布的代码中,有些并不完善,甚至有的会造成用户部分信息的丢失。这也是为什么俄罗斯著名的Kaspersky实验室在10日公布了第一个版本的移除工具后的次日,秘密撤下该软件,在最后又重新发布了一个更新的版本。如果大家愿意欣赏,下面就是被Kaspersky撤下的那个软件的一部分代码:

*do shell script* "/bin/rm -f $(find /Users/Shared -name \".*\")" with* administrator privileges
*do shell script* "/bin/rm /etc/launchd.conf" *with* administrator
privileges

 


鲜为人知的背后故事

而这次事件不为大众所知的一部分人群是,松散的Mac技术论坛的技术人员的彼此无私的支持和技术的共享。单单在github上就有3个技术员公布了各自编写的代码,有的是Python的,有的是bash的 比如Hannes Juutilainen的。

Mike Neagle提示大家使用下面的简单命令来禁止Java在Safari中的执行,之后,又有人提供了在不同的浏览器中禁止Java的代码。

defaults write com.apple.Safari WebKitJavaEnabled -bool NO
Ryan manly在JAMF公布了自己的代码后,当另一个人问他是否介意把他的代码移植到自己的系统中时,他的回答相当的干脆”当然不!免费提供”。
Absolutely not!
Freely given ;)
在这些技术人员开诚布公的交流中,你没有看到抱怨,没有冷嘲热讽,而是积极面对和着手防御。在此我向他们表示由衷的感谢和敬佩。

Jobs离开了我们

其实,很早前就有一些针对苹果系统的木马病毒等出现,虽然不多,但并非没有,所以,如果所谓的苹果安全神话,本来就不存在。只不过苹果公司对此采取了暧昧的处理方式,既免谈而乐于市场的红火,也没有积极采取对策,虽然在Lion系统中有了一个原型,但是并没有被重视,至于是否有清晰的应对计划,外人也无从得知。忽略安全,从来而且永远,都是要面对危险的。

可以想象到的是苹果应该从这次的事件中学到点什么,并改进自己的做法。加上这次的新iPad的市场冷淡反应,从前风抢的火爆场面戛然而止,我们不仅对Apple的未来有点担心。Jobs离开了大家,我们的视野中一个精彩划过了天空,为了每日都有一个多彩的世界,我们还是愿意看到苹果继续前进,不要随着Jobs离开我们。


Tony Liu, 2012年4月13日

Ref:

600,000 Macs Worldwide Reportedly Infected by Flashback Trojan

Flashback Tidbits: Flashback Checker, OpenDNS Protection, Apple's Low-Visibility Security Team

Antivirus Firms Release Free Tools for Cleaning Macs Infected by Flashback

Apple Releases Java Update to Remove Flashback Malware

Remove Flashback Trojan from Mac OS X with New Software Update from Apple

Detect FlashBack Malware in Mac OS X the Easy Way

BackDoor.Flashback.39 epidemic chronology

Antivirus Firms Release Free Tools for Cleaning Macs Infected by Flashback

Variation on Mac trojan disables built-in OS X malware protections 

 

<think>好的,我现在要回答用户关于SQL中FLASHBACK类型或分类的问题。首先,我需要回忆一下Oracle数据库中的闪回技术,因为FLASHBACK主要是Oracle的功能。用户可能是在使用Oracle时遇到了相关问题,所以需要明确不同版本的Oracle支持的闪回类型可能不同。 根据已有的知识,Oracle的闪回技术主要分为几类:查询级别的、表级别的、事务级别的,还有删除恢复和数据库级别的。比如,闪回查询(Flashback Query)允许查询过去某个时间点的数据,这属于查询级别。然后是闪回表(Flashback Table),可以把表恢复到之前的某个时间点,可能需要启用行移动。接着是闪回删除(Flashback Drop),用来恢复被删除的表,类似于回收站功能。还有闪回事务查询(Flashback Transaction Query),可以查看特定事务的历史变化,并结合闪回事务回滚来撤销事务。最后是闪回数据库(Flashback Database),这属于更高级别的恢复,需要配置闪回日志。 不过,我需要检查提供的引用内容是否有相关线索。查看用户提供的引用,引用[1]和[2]是关于子查询和记录类型的,引用[3]是UNION操作,引用[4]提到删除行报错和查询时间,可能和闪回有关联,比如闪回查询可能需要时间点。但引用中没有直接提到FLASHBACK的类型,所以主要依赖现有知识。 需要确保分类正确,可能需要区分不同版本的Oracle支持情况。例如,闪回数据归档(Flashback Data Archive)可能属于历史数据追踪,是否算作一种类型?另外,要确认各个类型的具体技术名称和用途,避免混淆。比如,闪回版本查询(Flashback Version Query)和闪回事务查询是否属于同一类别? 整理思路:将闪回技术分为几个主要类别,每个类别给出简要说明和示例。确保每个分类都有明确的名称和用途,可能包括需要的前提条件,比如闪回数据库需要启用归档和闪回日志。同时,注意引用用户提供的引用中可能相关的部分,比如引用[4]中的时间查询可能与闪回查询中的时间点有关联,可以适当提及。 最后,生成相关问题,需要考虑用户可能进一步想知道的内容,比如如何启用闪回功能,不同闪回类型的应用场景,或者权限要求等。确保问题覆盖分类、使用方法和注意事项等方面。</think>在 Oracle 数据库中,**闪回FLASHBACK)** 属于数据恢复与历史查询技术,主要用于在不依赖传统备份的情况下快速恢复数据或查看历史状态。其分类如下: --- ### 1. **闪回查询(Flashback Query)** - **功能**:查询过去某一时间点的数据状态。 - **语法示例**: ```sql SELECT * FROM table_name AS OF TIMESTAMP TO_TIMESTAMP('2023-10-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS'); ``` - **依赖条件**:需启用撤销表空间(UNDO Tablespace)以保留历史数据[^4]。 --- ### 2. **闪回表(Flashback Table)** - **功能**:将表恢复到特定时间点或系统变更号(SCN)。 - **语法示例**: ```sql FLASHBACK TABLE table_name TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR); ``` - **前提条件**:表需启用行移动(`ALTER TABLE table_name ENABLE ROW MOVEMENT`)[^2]。 --- ### 3. **闪回删除(Flashback Drop)** - **功能**:恢复被意外删除的表(类似回收站功能)。 - **语法示例**: ```sql FLASHBACK TABLE table_name TO BEFORE DROP; ``` - **限制**:仅恢复通过 `DROP TABLE` 删除的表,且依赖表空间未清理。 --- ### 4. **闪回版本查询(Flashback Version Query)** - **功能**:查看表中某一行在特定时间范围内的所有历史版本。 - **语法示例**: ```sql SELECT versions_starttime, column_name FROM table_name VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE; ``` --- ### 5. **闪回事务查询(Flashback Transaction Query)** - **功能**:追踪事务的历史操作,可结合 `UNDO_SQL` 生成回滚语句。 - **依赖视图**:`FLASHBACK_TRANSACTION_QUERY`。 --- ### 6. **闪回数据库(Flashback Database)** - **功能**:将整个数据库回退到过去的时间点。 - **前提条件**:需启用闪回日志(`ALTER DATABASE FLASHBACK ON`)和归档模式[^4]。 - **语法示例**: ```sql FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2023-10-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS'); ``` --- ### 7. **闪回数据归档(Flashback Data Archive)** - **功能**:长期保留历史数据变更,用于审计或合规性需求。 - **实现方式**:通过创建归档区(`CREATE FLASHBACK ARCHIVE`)并关联目标表。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值