IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

安全

共 391 篇文章

IT 2014-10-15 22:54:26 / 累计浏览 1,941

FakeID签名漏洞分析及利用(Google Bug 13678484)

这篇讲的是作者如何提前深入分析了一个影响安卓多年的签名漏洞(Google Bug 13678484)。在BlueBox于Blackhat大会前夕披露该漏洞后,作者随即进行了复现与利用研究。 文章的核心在于剖析漏洞的根因:安卓系统在校验APK签名证书链时存在缺陷,未能严格验证所有证书的合法性。攻击者可利用这一点,构造包含伪造根证书的恶意签名。尽管APK本身的完整性校验不会被破坏,但系统中依赖证书来验证身份(如WebKit插件认证)的机制会被欺骗。 作者通过具体的攻击场景演示了危害:成功将自研APK伪装成Adobe Flash Player插件,注入到其他应用的WebView中。更进一步,文章指出单纯注入还不够,需遵循插件开发规范(如导出特定Native接口)才能在对方进程内触发代码执行,从而真正突破沙箱限制。 这篇文章的价值在于,它不仅揭示了一个长期存在的底层安全问题,还完整地展示了从原理分析到漏洞利用的技术路径,对理解安卓签名机制的安全边界很有启发。

本机暂存
IT 2014-09-17 13:58:03 / 累计浏览 14,553

cookie窃取和session劫持

这篇讲的是网络安全中一个经典但常被忽视的威胁——Cookie窃取与Session劫持。文章从基础讲起,细致梳理了Cookie在HTTP请求/响应中的传递机制,并解释了会话Cookie、持久Cookie、安全属性(Secure/HttpOnly)以及第三方Cookie、超级Cookie等多种类型的核心区别与应用场景。 其核心价值在于清晰剖析了风险:当用于维持用户登录状态的Session Cookie被窃取时,攻击者便能劫持整个会话,以你的身份操作系统。文章重点指出了最常见的攻击入口是XSS漏洞,攻击者可通过注入的恶意脚本直接读取Cookie并将其外传。 此外,文章还延伸介绍了Cookie用于个性化设置和用户行为追踪的用途,并提及了如“僵尸Cookie”等更复杂的持久化追踪技术。它不仅是前端开发者理解浏览器安全模型的重要参考,也为后端开发者配置安全的Cookie策略提供了直接依据。

本机暂存
IT 2014-09-17 13:42:04 / 累计浏览 1,943

launchAnyWhere: Activity组件权限绕过漏洞解析(Google Bug 7699048 )

这篇讲的是一个影响安卓2.3至4.3版本的权限绕过漏洞——“launchAnyWhere”。作者从AccountManagerService的工作机制切入,揭示了一个严重的设计问题:当应用请求添加账户时,系统服务会调起认证应用并转发一个Intent,但这个Intent的内容完全由认证应用控制。如果请求方是系统应用(如“设置”),它就会在用户不知情的情况下,执行攻击者精心构造的Intent,从而启动任意未导出的Activity。 漏洞的巧妙之处在于其利用链非常简洁:攻击者通过特定Intent调起“设置”中的AddAccountSettings,就能让系统自动完成从触发到启动目标组件的全过程。文章列举了几个危害场景,例如绕过验证直接重置手机PIN码,或利用未导出的WebView加载恶意页面。这本质上是一个权限委托的信任链被恶意劫持的案例。 对于移动安全研究者而言,这篇文章清晰地展示了如何从一个合法的系统服务接口中,挖掘出突破进程隔离限制的攻击面。它提醒开发者,即使是系统服务的“便利”设计,也可能在无意中成为危险的权限提升通道。

本机暂存
IT 2014-07-28 12:45:44 / 累计浏览 2,160

有用的linux命令——chattr

这篇讲的是Linux系统里一个容易被忽略但超实用的命令——chattr。 我们平时用的rwx权限,是操作系统层面的规定。但chattr管理的是ext文件系统赋予文件的“隐藏属性”,它有个关键区别:一旦设置,连root用户也要遵守规则,比如用chattr +i给文件加上“i”属性后,这个文件就变得“坚不可摧”:不能被删除、修改、重命名,也不能创建硬链接。文章通过实际命令截图演示了这个过程,哪怕用rm强制删除也会报错。 作者从这个防误删的实用场景切入,清晰说明了如何用lsattr查看属性、用chattr设置属性。对于运维人员或需要保护关键配置文件的开发者来说,这相当于给重要文件上了一道“系统保险锁”,能有效防止手滑或脚本误操作导致文件丢失。

本机暂存
IT 2014-05-27 23:00:55 / 累计浏览 2,662

RSA 算法是如何诞生的

这篇讲的是RSA算法背后那段堪比励志小说的诞生史。作者从三个性格迥异的发明者说起:痴迷新技术的Rivest、学啥都快的Shamir,以及起初只想当“泼冷水”评委的Adleman。 故事的核心冲突在于,他们为Diffie提出的公钥密码概念寻找可行的单向函数。从1976年底开始,Rivest和Shamir构想,Adleman负责破解,这个循环竟重复了42次。每一次方案被Adleman击破,都是一次挫折,但也排除了一条错误路径。 直到1977年逾越节派对后,Rivest在深夜获得关键灵感,一气呵成完成了最终方案,这次Adleman终于无法破解。更有趣的细节是,论文署名按字母顺序排列,若非Adleman的坚持,这个后来改变互联网安全的技术或许就叫“ARS”了。 文章还揭示了历史的另一个面貌:早在1973年,英国数学家Clifford Cocks在半小时内就得出了几乎相同的算法,却因政府保密协议,其成果被尘封了二十多年。这让RSA的荣耀与一段无名英雄的遗憾交织在一起,也让算法的诞生故事更显厚重。

本机暂存
IT 2014-05-27 22:51:30 / 累计浏览 1,681

安全无小事--技术团队防守一二三

这篇讲的是一个技术团队如何系统性构建安全防线,核心观点非常直接:安全无小事,且完全取决于团队日常工作的严谨程度,而非老板投入的资源多少。作者从使用某创业团队APP时的一次无心之举——发了条可能被误解的微博——切入,引出了对大型技术团队安全防守的深度思考。 文章围绕“内防”与“外攻”两大支柱展开。“内防”强调苦练内功,核心在于为上千人的团队建立固定流程。这包括统一的安全代码框架(如集成防XSS、SQL注入)、严格的网络与硬件环境管控、周期性的安全走查、对所用开源软件漏洞的快速跟进,以及对高风险项目和重要数据流动的绝对原则。“外攻”则承认内防可能仍有短板,因此要借助白帽平台等外部力量,并自建响应平台,以尽快发现并弥补漏洞。此外,文章还特别指出了非技术层面(如密码管理)的风险隔离问题。 作者的结论掷地有声:没有出过安全问题,不代表团队没有短板,更不代表用户数据绝对安全。真正的安全,藏在每一个开发人员的日常操作细节里——“不在乎有没有漏洞,就是认真。”

本机暂存
IT 2014-05-11 21:28:23 / 累计浏览 8,343

2014年1月21日中国互联网DNS瘫痪事件原因分析

这篇文章讲的是2014年1月21日中国互联网大规模DNS瘫痪事件的技术剖析。作者从一个普通用户的视角出发,描述了当时所有网站都打不开的异常现象,并以通俗的“电话本”比喻,解释了DNS作为互联网基础设施的核心作用。 作者详细梳理了从用户输入网址到获得IP地址的正常DNS解析流程,并与当天故障时的实际流程进行对比:所有查询都直接返回了同一个错误IP(65.49.2.178),跳过了正常的层层解析步骤。通过分析,作者排除了全球根域名服务器自身出错的可能,将原因锁定在“DNS劫持”上——即有人伪造了根服务器的响应。 文章进一步通过追踪那个错误IP的历史关联信息,发现其与特定组织及“无界浏览器”等翻墙工具存在关联,并指出这种大规模、快速的劫持手法与GFW(防火长城)的运作机制高度一致,从而提出了事件可能由某墙导致的观点。整个分析过程层层递进,从现象描述到技术原理拆解,再到幕后推断,为读者提供了一次生动的网络故障排查案例。

本机暂存
IT 2014-04-29 22:49:39 / 累计浏览 5,383

使用 OpenVPN Access Server 轻松搭建 VPN 服务器

这篇讲的是如何快速搭建一个可用的VPN服务器。作者指出,虽然传统方式如 ssh -D 或 sshuttle 能满足临时需求,但对新手而言,从头配置开源OpenVPN过程繁琐。因此,文章推荐了OpenVPN的商业版Access Server,其免费许可证支持2个并发用户,非常适合个人或小型使用场景。 文章的核心优势在于“开箱即用”。作者详细演示了在CentOS 6.x和Ubuntu 14.04上的安装流程,只需几条命令完成下载和安装。安装后会提供明确的管理后台和客户端访问地址,用户使用默认的“openvpn”账户登录后,几乎无需额外配置即可连接使用。 对于客户端选择,文章介绍了官方客户端和流行的开源客户端Tunnelblick的使用方法,并特别说明了在Mac上通过导入特定配置文件连接Tunnelblick的稍显特殊的步骤。整体来看,这是一篇面向实用主义者的快速入门指南,省去了复杂的配置过程,让需要临时或简单VPN服务的用户能迅速上手。

本机暂存
IT 2014-04-21 12:44:29 / 累计浏览 5,182

公钥私钥加密解密数字证书数字签名详解

这篇讲的是密码学里那些让人头晕的基础概念——公钥私钥、数字证书、数字签名。作者从自己最初的困惑出发,通过阅读和整理,最终把它们之间的关系和流程梳理得非常清晰。 核心在于理解两个相反的过程:加密解密与数字签名。公钥加密的数据只有私钥能解,保证了机密性;而用私钥对摘要进行“签名”,对方用公钥验证,则能确保数据的完整性和来源真实性。 但新的问题来了:接收方如何安全地获取并信任发送方的公钥?这引出了CA(证书颁发机构)的角色。CA用自己的私钥为用户的公钥签名,制作成数字证书,相当于为公钥提供了可信的“身份证”。接收方只需预先安装一次CA根证书,就能验证所有签发过的证书,从而安全地拿到对方公钥完成验证。 文章将抽象的流程与HTTPS的实际应用结合,最后提示,理解了密钥交换的全过程,也就明白了HTTPS安全通信的基石。它把一个复杂的知识网络拆解得层次分明,很适合用来建立清晰的第一印象。

本机暂存
IT 2014-04-15 22:38:13 / 累计浏览 3,160

OpenSSL HeartBleed漏洞原理漫画图解

OpenSSL的“心脏出血”漏洞曾引发全球网络安全界的震动,用户们最直接的担忧就是:我们的重要数据,比如支付宝里的钱,还安全吗? 这篇文章没有停留在事件表面的讨论,而是借助xkcd网站经典的漫画形式,用最生动直观的方式,拆解了这个漏洞的核心原理。它抓住了问题的关键——“心跳检测”机制。用户通过TLS加密链接向服务器发送“心跳”信号来确认其在线状态,服务器则会回应。漏洞就出在,如果用户发送的“心跳”信号中声称的数据长度(pad length)大于实际数据长度,服务器不仅不会报错,反而会返回同样规模的数据。这相当于允许攻击者越过边界,读取服务器内存中本不该被访问的信息。 文章将复杂的技术漏洞转化为一幅易懂的漫画,清晰地展示了这种“请求与响应”的不匹配如何导致内存信息泄露,帮助非安全领域的读者也能理解问题的本质,明白为何一个编程错误能引发如此广泛的危机。

本机暂存
IT 2014-04-07 22:48:15 / 累计浏览 2,722

CentOS iptables 报错解决办法

在CentOS系统中启动iptables服务时,不少运维或开发同学会遇到一个令人困惑的报错:“Setting chains to policy ACCEPT: security raw nat filter [FAILED]”。这篇文章就直面了这个具体的“坑”。 问题的根因非常微妙:CentOS系统在iptables中默认增加了一个名为“security”的表,但系统自带的启动脚本 `/etc/init.d/iptables` 中并没有包含这个表的处理逻辑。因此,当脚本尝试按顺序为所有表设置策略时,在处理到未定义的“security”表时就会失败。 作者提供了两种解决思路。一种是获取并应用作者准备好的补丁文件,一键修复。另一种更实用的方法是手动编辑 `/etc/init.d/iptables` 脚本,在脚本处理表的循环中,显式地添加对“security”表的策略设置。具体来说,需要在 `case` 语句里增加一段代码,指定对INPUT、OUTPUT和FORWARD链设置策略,并将其放在“raw”表之前。完成修改并保存后,重启iptables服务即可恢复正常。 这篇短文的价值在于,它不仅解决了由系统特定差异导致的常见报错,还给出了具体、可操作的代码级修改方案,对于使用CentOS并遇到同类问题的读者来说,非常实用。

本机暂存
IT 2014-04-07 22:24:29 / 累计浏览 2,360

抽奖类活动项目的一些技术Tips

这篇文章分享了设计高并发抽奖活动系统时,如何通过关键技术点来抵御刷奖风险、保障活动稳定性的实战经验。 作者从互联网抽奖活动常面临专业刷奖团伙的真实背景出发,系统性地提出了五层防护建议。核心思路是保持系统简单可靠:接入层用缓存(如Redis)限制IP和用户抽奖频率,避免直接冲击数据库;代码层采用最简单的算法做初筛,将最终发奖逻辑下沉至数据库层;数据层则采用“每日奖池”模式,强调使用有符号整型并利用事务与行锁(如 FOR UPDATE)确保奖品数量扣减的准确与并发安全。 此外,文章还给出了非常务实的运营建议,比如选择白天发放奖品、细化每个时间点的投放量,以及保留充足的活动规则解释空间。整体来看,这套从接入、逻辑、数据到测试的完整实践,对保障线上抽奖类活动的健壮性与公平性具有很高的参考价值,能帮助开发者避免很多“坑”。

本机暂存
IT 2014-03-19 23:03:04 / 累计浏览 13,025

自建DNS以防止GFW干扰

这篇讲的是如何通过自建本地DNS服务器,来规避GFW对DNS查询的干扰,从而恢复部分网站的访问。文章首先解释了问题根源:GFW会拦截并污染常见的UDP协议DNS请求,导致解析结果错误。而一个有效的对策是利用TCP协议的DNS查询,因为它目前不易被干扰。 作者推荐的具体方案是,使用开源软件Unbound在本地搭建一个DNS服务器。该服务器监听本地,接收程序发出的UDP请求,并将其转换为TCP查询转发给上游公共DNS(如8.8.8.8),从而绕过污染。文章给出了在Windows系统上的详细配置步骤,包括安装、修改配置文件、重启服务,并最终将系统DNS指向本地127.0.0.1,操作性很强。 对于更进一步的安全需求,文章末尾还提到了一个升级思路:可以结合SSL加密,在境外服务器上部署Unbound作为上游,实现查询流量的端到端加密,提供了更彻底的解决方案。

本机暂存
IT 2014-02-18 12:51:14 / 累计浏览 4,486

中国黑客传说:天生我材

这是一篇关于一位传奇黑客“A君”成长与地下世界经历的深度故事,属于典型的事件复盘与观点呈现类文章。 作者从A君的启蒙时代讲起,他从小学学习编程,受2001年中美黑客大战影响投身黑客领域。文章细致刻画了他如何通过一本牛津字典啃国外技术论坛、用自制木马进行笨拙的“爱情攻击”,以及遇到一位美国师傅后技术视野的飞速提升。A君的故事真正“硬核”之处在于他加入地下组织后的实战:他们通过全球部署的上千台服务器蜜网系统,每年捕获数十万次攻击行为并挖掘0day漏洞;更早于2007年就通过劫持数百万台家用路由器的DNS并分析流量,实现了当时还被称为“商业智能”的数据挖掘变现。文章通过A君“入侵安全公司”来反向研究行业动态的视角,以及他们利用微软MAPP计划的POC编写Exploit的大胆操作,揭示了黑客技术前沿与安全行业之间“道高一尺,魔高一丈”的微妙博弈。 这不仅仅是一个天才少年的黑客梦,更是一幅关于自驱力、师徒传承与草根技术精英如何在灰色地带开辟道路的生动图景。它向读者揭示了真实世界中技术能力与机遇结合可能走向的极端,以及黑客文化中独特的生存法则与思维方式。

本机暂存
IT 2014-02-18 12:49:39 / 累计浏览 2,441

安全问题的本质

这篇从一则广泛流传的“手机丢失后支付宝资金安全”传闻切入,探讨了一个更根本的问题:安全问题的本质是什么?作者在自己的《白帽子讲Web安全》一书中,给出了核心论断——安全问题的本质,其实是信任问题。 以此视角审视支付宝,其安全模型在设计时,就将手机设定为所有可信任环节中的“最后一环”和优先级最高的一环。这并非疏忽,而是一种演进后的妥协:曾经使用的邮箱验证、数字证书等方式早已被黑客技术突破,变得不够可靠。但随着“余额宝”带来资金规模激增,手机作为唯一强信任锚点的风险也随之放大。 作者认为,单纯堆叠安全功能并不可取。他提出了几个解决方向:对大额资金用户,系统无法完美时可引入人工服务作为补充;应设置更严格的大额交易限制与异常冻结机制;最高境界或许是引入保险,从根本上解决用户“敢不敢放钱”的信任障碍。文章最终指向一个朴素的理念:让安全回归简单,或许是比复杂功能更重要的设计准则。

本机暂存
IT 2013-10-17 12:20:06 / 累计浏览 2,802

webgame中常见安全问题、防御方式与挽救措施

这篇讲的是网页游戏开发者在实际项目中遇到的安全“坑”与应对策略。作者从知乎上一个关于游戏安全的问题出发,结合自身经历(包括一次因整型溢出导致的刷钱bug),决定从研发者视角系统梳理安全问题。 文章聚焦几个核心场景:登录认证中hash字符串的时效性与绑定信息设计;联运游戏充值接口的签名验证,并以腾讯接口为例展示了严谨的签名逻辑;以及由于参数未过滤直接include导致的远程文件引入漏洞(RFI)。针对RFI,作者分享了其项目通过Gateway统一入口、结合类反射机制进行严格过滤的解决方案。此外,文章也简要提到了SQL注入在AMF等特定消息格式下可能被忽视的风险,并指出了解决方向。 作者特别强调,他修改了原知乎问题的描述,将重点从“如何入侵”转向“如何防御”与“事后最小化损失”,这也正是文章的核心价值:它不仅揭示漏洞原理,更侧重于提供可落地的防御编码实践与架构改进思路,旨在加固游戏安全壁垒,减少厂商与玩家损失。

本机暂存
IT 2013-10-15 13:45:26 / 累计浏览 2,442

挖漏洞有什么社会价值?

这篇源自安全圈的一场热议,探讨了一个看似矛盾却本质深刻的问题:挖掘漏洞究竟创造了何种社会价值? 从微博上的一则提问出发,多位安全专家给出了截然不同的视角。有观点认为,漏洞挖掘本质上是一种更深层的质量控制,类似于软件测试;也有观点从经济角度剖析,认为其价值在于引发“价值重分配”,攻击者与防护者在此过程中各获所需。更深入的讨论则将其置于人类社会发展的框架下:在信息化日益重要的今天,挖漏洞是实现层面的风险控制,旨在降低整个社会因系统脆弱而面临的减速甚至毁灭风险。 作者并未止步于此,而是将思考延伸至各类精巧的“黑客工具”。他坦言,若以当下普世价值观衡量,这些用于破坏的技术很难被赋予正面意义。但若将其视为人类历史进程中一个必然存在的、关于“安全”与“对抗”的古老命题的当代映射,或许能豁然开朗。正如历史上的冲突在带来灾难的同时也客观推动了技术飞跃,未来的某些重大突破,或许正孕育于这些当下被视为“邪恶”的技术探索之中。

本机暂存
IT 2013-10-08 12:15:24 / 累计浏览 2,802

防火墙的目标地址转换和源地址转换

作者从一起防火墙故障出发,探讨了目标地址转换与源地址转换的配置逻辑。故障表现为外网用户能成功发送请求到内网网站,却始终收不到响应。排查发现,根源在于内网服务器配置了两块同网段网卡且均设置了网关,导致返回数据包的源地址与请求进入时的目标地址不一致,防火墙因此无法将响应数据正确关联到原有会话。 要解决这一问题,需要理解防火墙的数据包处理流程。在常规的“外网访问内网”场景中,通常只需配置目标地址转换。但在上述网卡配置错误的特殊情况下,必须同时配置源地址转换,强制让内网服务器的返回流量经过防火墙,从而维持会话的对应关系。同样,当“内网通过域名访问另一内网服务器”时,源地址转换也是必需的,它避免了内网主机间直接通信导致防火墙无法跟踪连接状态的问题。 文章通过实例拆解了两种地址转换在不同场景下的必要性,核心在于确保返回数据包的路由路径能被防火墙正确识别和管理。作者最后指出,虽然具体防火墙机制各异,但基本原理相通:在规划地址转换时,必须考虑数据包返回的路径,否则可能导致通信失败或应用获取不到真实客户端IP。

本机暂存
IT 2013-09-23 13:35:29 / 累计浏览 1,682

基于语法分析的PHP webshell扫描工具–Pecker Scanner

这篇讲的是一个PHP webshell扫描工具——Pecker Scanner的开发思路与实现。作者从早年基于正则匹配的扫描尝试出发,反思了当时工具的不足,比如容易把注释或非恶意代码中的危险函数也标记为误报。为此,他详细对比了三种扫描方式:最基础但漏洞最多的特征关键字匹配、更精确但仍有漏报的正则表达式匹配,以及通过语法分析剥离注释、字符串和变量,仅对实际执行的危险函数进行检测的语法语义分析。 文章的核心在于介绍Pecker Scanner的设计选择。这款工具首先采用语法分析来解决漏报问题,并结合服务器云端判断,通过比对已知的恶意代码指纹和项目上下文,来进一步降低误报率。作者还展示了工具生成的扫描报告样例,并分享了其GitHub开源项目、最新版本下载地址以及如何参与贡献。 作为一个从个人遗憾中诞生的项目,Pecker Scanner的诞生故事也反映了作者对开源社区的热情,以及对代码安全检测技术从简单到严谨的演进思考。

本机暂存
IT 2013-09-07 15:39:56 / 累计浏览 5,383

深入浅出Session攻击方式之一 – 固定会话ID

这篇技术文章聚焦于Web安全中一种具体且危险的攻击手法:固定会话ID(Session Fixation)。作者从PHP应用普遍面临的安全挑战入手,深入剖析了攻击者如何诱使用户使用其预设的Session ID来访问系统,从而实现会话劫持。 文章不仅阐述了攻击原理——即攻击者通过URL参数(如`?PHPSESSID=1234`)等手段固定一个会话标识,并用直观的代码示例和测试过程演示了其危害性:只需访问特定链接,新浏览器就能“继承”之前浏览器的会话状态。更关键的是,文章给出了明确的防御方案:核心在于在用户登录、权限变更等关键节点,及时调用`session_regenerate_id()`函数重新生成Session ID,彻底切断攻击者的预设路径。 作者还进一步探讨了经验更丰富的攻击者可能先自行获取合法Session ID再实施固定攻击的场景,强调了防御措施需具备时效性和全面性。整篇文章由原理到实践,再到防御升级,为开发者提供了一份清晰的攻防路线图。

本机暂存