潘多拉魔盒:禁令为什么反而让人更想打开
一封写着“千万别点开”的邮件邮箱里躺着一封信,标题是《离职员工薪资表,请勿外传》。发件人是一个不认识的地址。 大部分人会点开。不是因为相信它,恰恰是因为那句“请勿外传”。 正常的邮件可以留到下午再看,这封不行。它被标注成秘密,于是它变成了一件需要立刻确认的事:里面是谁,有没有我,会不会牵扯到我。 点击这个动作,跟好奇心有关,但更准确的说法是:发信人把一个普通附件,包装成了一个信息缺口。 罐子,不是盒子潘多拉的故事出自赫西俄德,写在《工作与时日》和《神谱》里,时间大约是公元前 700 年前后。 故事的背景是普罗米修斯盗火。宙斯为了报复,命令火神赫菲斯托斯用泥土造了第一个女人,众神各送她一样东西:雅典娜教她织布,阿佛洛狄忒给她魅力,赫尔墨斯给她一张会说话的嘴和一个说谎的心。她的名字叫潘多拉,意思是“所有的礼物”。 宙斯把她送给普罗米修斯的弟弟厄庇米修斯。普罗米修斯警告过弟弟,不要接受宙斯送的任何东西,厄庇米修斯没听。潘多拉带来了一个容器,里面装着疾病、劳苦、纷争这些灾祸。她打开盖子,灾祸飞了出去,只有“希望”留在了罐底。 这里有个流传很广的误会:原文里那个容器不是盒子,是 pitho...
烽火戏诸侯:权威信号是怎么被自己用废的
用广播喊紧急集合的校长假设学校的广播每天早上七点半响一次,内容是”全体紧急集合”。第一天全体下楼,第二天大部分人下楼,一周之后只剩新生还在跑。一个月后,真出了事,广播响了三遍,操场上只有几个人。 这件事的特别之处不在学生麻木,而在于:发广播的是校长。学生可以不信同学传的话,但很难不信校长的广播。所以当校长的广播失效时,学校就没有第二个可用的大喇叭了。 史书里的那一次《史记》一共 130 篇,卷四《周本纪》里记着这样一件事。 周幽王(前 781 年至前 771 年在位)的王后褒姒不爱笑,幽王想尽办法逗她,她都不笑。当时周朝在边境设有烽燧,遇到敌情就点起烽火,诸侯看到就带兵来救。幽王为了让她笑,就点了一次烽火。诸侯的军队赶到,发现没有敌人,乱哄哄地又回去了。褒姒看见这场面,大笑。幽王很高兴,后来又点了几次。等犬戎真的打过来,幽王再点烽火,诸侯的兵一个都没来。公元前 771 年,幽王被杀在骊山脚下,西周结束。第二年周平王东迁洛邑,东周开始。 故事讲到这里就结束了,读的人一般会得出两个结论:一是不能拿正事开玩笑,二是失去信用会有代价。 这两个结论都对,但这个故事本身有一个问题要先说清楚。...
狼来了与警报疲劳:误报是怎么把真警报一起拖下水的
每周三下午的消防演习假设学校规定每周三下午两点拉一次消防警报,全体到操场集合。第一周大家都跑,第二周开始有人慢悠悠走,第四周有人干脆不动,只在窗边看一眼。第八周,真的着火了,警报响起来,教室里的人先看了一眼时间,两点整,周三。 这不是纪律问题。人在面对同一个信号反复出现、又反复没有后果的时候,反应会自然衰减,这个过程在心理学里叫习惯化。消防演习的组织者其实知道这件事,所以规定演习不能太频繁,也不会提前通知具体日期。 但很多做安全的人忘了这一条。 那个喊狼的孩子《伊索寓言》里有一则很短的故事,中文一般叫《狼来了》,英文是 The Boy Who Cried Wolf,在佩里索引里编号 210。 故事说的是一个放羊的孩子,觉得无聊,就朝村里喊狼来了。村民们拿着农具跑出来,发现没有狼,孩子笑得很开心。过了几天他又喊了一次,村民又跑了一趟,还是没有狼。第三次,狼真的来了,孩子拼命喊,没有人再出来。羊被吃了。 寓言通常被读成一句话:不要撒谎,否则没人信你。这个读法没错,但它只讲了道德,没讲机制。在安全领域,这则寓言还有一层意思:牧童不是突然变成一个骗子的,他是被一个允许他反复试错的机制惯出...
特洛伊木马:一个传了三千年的骗局与一类以它命名的程序
一个拆开的快递箱假设你在网上买了一台二手路由器,卖家说刷好了固件,插电就能用。价格比新的便宜一半,评价也不错,快递两天就到了。 你插上电,它确实能用。设置界面正常,网速正常,说明书也对得上。唯一不正常的地方在你看不见的那一层:它把你家宽带的账号密码,连同同一网段里其他设备的名称,一起发到了某个陌生邮箱。 整个过程里没有人撬门,没有人猜你的密码。是你自己把它请进屋,还给它插上了电。 这个套路很老。三千年前,地中海东岸有一座城,也是这样丢的。 那匹木马故事发生在小亚细亚西北角的特洛伊。古代把这座城陷落的时间定在公元前一一八四年。希腊联军为了一个叫海伦的女人围攻这座城,打了十年没打下来。城墙很厚,守军很顽强,正面强攻的代价谁都付不起。 第十年,希腊人里有个叫奥德修斯的人想了一个办法。他们造了一匹巨大的木马,把一批士兵藏在里面,然后烧掉营帐,把舰队开到附近的海岛后面躲起来,只在海岸上留下一匹马和一个人。 留下的人叫西农。他的任务是让特洛伊人相信:希腊人认输了,这匹马是献给女神的祭品,把它拉进城就能得到庇佑。 特洛伊人信了。有人提醒过他们。祭司拉奥孔跑过来喊,说哪怕希腊人送礼也要提防,还拿...
用淀粉自制葡萄糖:糖苷键的三种断法与产率
网上关于自制糖浆的做法不少,大致都是淀粉加水调开,加一点白醋,小火煮一两个小时,煮到挂勺。做出来的东西是甜的,粘度也上来了,看起来像是成功了,但那个甜味主要不是葡萄糖。 醋的酸度太弱,煮的温度也不够,淀粉只有一小部分被切断,断出来的东西主要是糊精和麦芽糖。这两样都有甜味,所以尝起来是甜的,成分和葡萄糖却不是一回事。要拿到葡萄糖,需要让糖苷键在特定的位置断开,这跟酸的强弱、温度的高低、用哪种酶都有关系。 淀粉是葡萄糖串起来的链,串法有两种淀粉的分子式写作 (C₆H₁₀O₅)ₙ。这个式子只能看出元素比例,看不出连接方式。它的实际结构是几百到几千个葡萄糖分子连成的链,连接的地方叫糖苷键。 连接有两种。一种是一个葡萄糖的第 1 位碳连着下一个的第 4 位碳,叫 α-1,4 键,这样连出来是一条直链。另一种是一个葡萄糖的第 1 位碳连着链上另一个葡萄糖的第 6 位碳,叫 α-1,6 键,这样连出来是分叉。 玉米淀粉里,直链部分大约占 27%,剩下的 73% 是带分支的支链淀粉,平均每 20 到 25 个残基分一次叉。 水解就是把这两种键一个一个加进水分子拆开。 \mathrm{(C_6H...
社会工程学:人性的漏洞
在网络安全领域,我们习惯于寻找漏洞。 一个开放的端口、一段存在缺陷的代码、一个配置错误的服务,都可能成为入口。我们通过扫描、审计、测试和修复,不断缩小技术系统中那些可以被利用的薄弱环节。 但如果一个系统没有明显的技术漏洞呢? 服务器经过加固,身份认证已经启用,安全设备持续运行,日志也在被实时监控。此时,一个人收到了一封看似正常的工作邮件,接到了一个自称来自管理部门的电话,或者面对一项要求立即完成的任务。 他没有破解密码,没有绕过防火墙,也没有执行任何看起来明显危险的操作。他只是相信了某个身份,接受了一个解释,并按照自己认为合理的方式完成了工作。 问题可能就从这里开始。 把这类事件归结为安全意识不足是最省事的做法,也是最没有用的一种。它的潜台词是:只要员工足够谨慎、足够专业,就能避免。但现实中的人不是始终保持高度警觉的分析仪器。我们依赖经验理解世界,依赖信任维持协作,也会在时间压力和信息不完整的情况下作出判断。这些能力让日常生活得以正常运转,却不意味着每一次判断都能得到正确的结果。 社会工程学研究的,就是人与信息、信任和行为之间的关系。它提醒我们,安全风险不只存在于代码和配置之中,...
社会工程学:人为什么会忽略安全警告
公司今年做了两次安全意识培训。第二次的考试,小李考了 96 分,还剩 4 分扣在一道关于附件的多选题上。 同一个月的某天上午,他在会议室里听汇报,手机上收到一条提醒,说他的身份验证令牌今天到期,需要重新绑定一下。他点开了。 事后他自己也说不清为什么。他知道这类提醒可能是伪造的,考试里那道类似的题他做对了,培训上讲过的案例他还记得。 这就是本文要回答的问题:知道风险存在,为什么仍然可能做出不安全的选择? 知道和做到之间隔着四步把这件事拆开看,从「知道有风险」到「做出动作」,中间有四个环节。 第一步是知道这个风险。这一步是培训能覆盖的部分,也是唯一能被考试测出来的部分。 后面三步都是条件问题。当时的场景里有没有想起来;想起来了会不会被别的东西压住;判断的时候依据对不对;判断本身有没有足够的注意力支撑。 四个断点里,第二个最容易在事后被当成道德问题。「他明知道还这么做」,听起来像不在乎。实际上更常见的情况是,在当时那几秒钟里,另一个东西的分量更大:客户在等答复、领导站在旁边、手上三件事同时到期。 四个断点合起来可以写成一句话: \text{是否做出不安全的选择} = f(\text{...
社会工程学:信任是如何被建立的
一个人站在机房门口。工牌是对的,制服是对的,说辞也对得上流程,还顺口提了一句 8 月中旬来装过空调。保安登记了一下,前后 4 分钟,放他进去了。 事后查出来,工牌是印的,制服是网上买的,流程是他自己打听来的。 这类事情里,最容易被忽略的地方在于:那个请求从头到尾都很合理。他没有提任何奇怪的要求,没有催,没有吓人,也没有说错话。他做的只是让自己看起来像那么个人,然后提了一个在这个场景下本来就该被提出来的请求。 所以核心问题是这样的:为什么一个看起来合理的请求,不一定是一个可信的请求? 合理不等于可信要回答这个问题,得先看清一个请求里其实有两层信息。 业务层回答的是:这件事本身说得通吗。资产盘点、系统升级、合同归档、设备巡检,这些都是真实存在的流程,一个外部的人只要稍微了解这行的常识,就能把话说得像模像样。 身份层回答的是另外两个问题:提这件事的人,是他说的那个人吗;这件事情,该不该由他提。 这两层可以写成一句话: \text{一个请求} = \text{事情(说得通吗)} + \text{来源(是他吗、有资格提吗)} 说人话:一件事合不合理,和提这件事的人是谁,是两套互不相干的判...
社会工程学:提问的艺术
下面这段对话一共 6 轮,从头到尾没出现过任何敏感词。 对方:您好,我是集团 IT 服务中心的,最近在做一次网络设备清点。您这边是行政前台吧?前台:对,是我。对方:麻烦帮我确认一下,你们 3 号楼机柜上的路由器是什么型号?上面应该贴了标签。前台:这个我不清楚,得问我们网管。对方:没关系。那您能把网管的联系方式给我吗?我们系统里登记的那个好像过期了。前台:他姓王,电话我找一下…… 从头到尾,没人问密码,没人问内网地址,没人问系统名称。前台也没有被威胁、被催促,甚至觉得帮了个小忙。 但对方拿到了 2 样东西:网管的姓氏和电话。再叠上前面那句「办公区机柜上有路由器、上面贴了标签」,一个外部的人就已经知道该找谁、怎么开口了。 这就是社会工程学里提问的基本形态:用问题引导,让对方自己说。 图里右边那一列,是每一轮对话之后对方手上多了什么。可以看到信息是分三轮给出的,每一轮比上一轮更靠近他真正想拿的东西。 信息是怎么在对话里流动的要理解这件事,得先接受一个事实:对话里双方都在补充信息,只是目的不同。 接电话的前台想的是「帮他把事情办完」,提问题的人想的是「这段对话能换来什么」。两个人都...
飞秋(FeiQ)3.0.0.2 远程拒绝服务漏洞审计
飞秋 3.0.0.2 在处理图片和文件的分片接收时,会用三个取自网络报文的数值做内存操作:分配大小、目的偏移、拷贝长度。这三项都没有边界校验。任意一台与目标网络可达的主机发送一个构造报文,就能造成堆越界写,进程随后以 0xC0000374(STATUS_HEAP_CORRUPTION)终止。 审计在受控实验网络内完成,目标是自己搭建的同一版本样本,没有涉及第三方资产。 项目 结论 漏洞类型 堆缓冲区溢出(CWE-787 / CWE-122) 触发前提 无。不需要认证、不需要交互、不需要目标侧任何操作 网络条件 与目标网段可达即可,走 UDP 2425 打击面 4 个 UDP 报文,合计约 32 KB 失效耗时 远程实测 2.9 秒 崩溃表现 0xC0000374,目标机事件日志可查 恢复方式 只能人工重启,飞秋没有自愈或自动重启机制 可否持续压制 可以,目标恢复后 8 秒内可再次打掉 样本 项 值 文件名 FeiQ.3.0.0.2.exe 格式 PE32(x86),GUI 子系统 编译器 MSVC 10.0...













