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

安全

共 396 篇文章

IT 2016-02-08 19:50:03 / 累计浏览 3,019

内存寻址原理

这篇讲的是内存寻址的底层原理,作者从网络安全分析中遇到的寻址难题切入,直接点明这是理解漏洞分析和系统行为的关键基础。 文章的核心内容,是对CPU几种工作模式——实模式、保护模式与虚拟8086模式——进行了清晰的对比。它解释了实模式下1MB的寻址限制、所有内存均可直接访问的特性,以及它在系统启动阶段的作用;而保护模式则支持高达4G(32位)的地址空间,并通过段页式机制实现了内存隔离与保护,这是现代操作系统安全运行的基石。 在概念梳理上,文章厘清了逻辑地址、线性地址与物理地址的转换链条。特别是通过一个具体的程序地址实例,逐步拆解了段选择符如何从描述符表中定位段描述符,最终与偏移量相加得到线性地址的过程,让抽象的理论变得可视化。 理解这些寻址细节,对于追踪内存越界、分析指针漏洞以及编写底层驱动都至关重要。文章将计算机体系结构的演进需求与具体的内存管理实现结合起来,为开发者搭建了一个从逻辑地址到物理内存的完整认知地图。

本机暂存
IT 2016-02-07 14:41:36 / 累计浏览 2,904

SSL多域名绑定证书的解决方案

这篇讲的是如何在一个服务器上,为多个不同的域名部署HTTPS服务。传统上,一张SSL证书通常绑定一个域名,但在实际运维中,我们常常遇到一个服务器需要同时承载多个域名的情况。文章从这个现实背景出发,梳理了几种主要的解决方案。 最直接的方式是采用虚拟主机技术,为每个域名分配独立的IP地址并绑定各自证书,但这对IP资源要求较高。对于同级子域名,可以申请通配符证书,但它只能匹配二级子域名,无法覆盖更深层级或主域名本身。更灵活的方案是使用支持“使用者可选名字”(SAN)扩展的证书,通过XCA等工具,就能将多个不同的域名都写入同一张证书中。 如果必须为每个域名单独签发证书,那么SNI(服务器名称指示)技术就成了关键。它允许服务器在SSL握手阶段就识别出客户端请求的域名,从而返回正确的证书,实现“单IP、多证书”。文章指出,这项技术已获得主流浏览器和Web服务器的支持,为灵活部署HTTPS提供了坚实的基础。

本机暂存
IT 2016-02-07 14:05:27 / 累计浏览 1,891

说说下载劫持那些事儿

这篇从双十一“苹果6变6袋苹果”的梗出发,生动剖析了安卓应用下载劫持的技术原理。作者将网络下载类比为“网购”,把DNS服务器和运营商网关形象地称为“黄页”和“总机”,清晰拆解了从发起请求到文件传输的完整链路。 文章重点揭示了劫持发生的两个关键节点:一是DNS服务器被篡改,导致域名解析到“骗子服务器”;二是运营商网关通过302跳转机制,将用户引导至合作的推广服务器。这两种方式都会让用户最终下载到并非预期的应用包,可能被捆绑其他软件。 最后也提到了一个初步的解决方案——手动修改DNS,但运营商网关层面的劫持则更难规避。全文通过生活化比喻和流程图,把原本隐蔽的网络劫持手段讲得通俗明白,结尾幽默地回到了“六袋苹果”的调侃,读来轻松又有收获。

本机暂存
IT 2016-02-06 11:31:19 / 累计浏览 2,589

学习手册:浅析DDoS的攻击及防御

这篇讲的是DDoS攻击的完整图景——从基础概念到实战工具。作者从“拒绝服务”和“分布式”这两个核心点出发,解释了攻击如何演变成依靠“僵尸网络”进行的协同作战。文章梳理了DDoS的发展史:早期只是黑客的炫技游戏,后来被宗教和商业组织用于勒索与报复,最终甚至成为国家级网络战争的武器,其中中国和美国是受灾最严重的地区。 在技术层面,文章将攻击方式归纳为四类:耗尽网络带宽的流量洪水、针对TCP连接表的SYN洪水、专门攻击DNS和Web服务的应用层攻击,以及混合多种手段的综合性攻击。特别提到随着僵尸网络小型化,慢速应用层攻击正成为新的趋势。文章还介绍了几款知名的开源工具,比如曾被广泛使用的低轨道离子炮(LOIC)和专门产生HTTP流量的HULK,让读者直观了解攻击的实现手段。 整体而言,这篇文章不仅解释了DDoS“是什么”,更通过攻击工具和态势分析展现了“如何发生”,对于理解当前网络空间中的流量型威胁提供了清晰的框架。

本机暂存
IT 2016-02-06 11:19:22 / 累计浏览 1,635

文档安全加密系统的实现方式

这篇讲的是文档安全加密系统如何实现高效且透明的安全防护。文章从加密技术的基础出发,指出虽然DES、RSA等算法是核心,但真正决定系统效能的,是加密操作在系统中的实现方式。它重点对比了静态加密与动态加密:前者需要用户手动解密才能使用文件,后者则在后台实时处理,合法用户完全无感,文件访问体验与未加密时无异。 实现真正的动态加密极具挑战,因为它需要在操作系统内核层进行干预。文章清晰地剖析了Windows文件操作流程的四个层次,指出只有在内核层的文件过滤驱动程序中,才能拦截所有文件操作请求,从而实现实时加解密。位于应用层的方案本质上只是“伪动态”,无法做到真正的透明。 最后,文章以亿赛通SmartSec系统为例,展示了动态加密的落地架构:通过内核层的文件过滤驱动实现核心加解密,同时结合应用层进行访问控制和行为审计,两者配合既提升了安全性,也优化了系统性能。这种分层协同的设计思路,为构建企业级文档安全方案提供了清晰参考。

本机暂存
IT 2015-12-13 22:04:23 / 累计浏览 3,194

TLS 握手优化详解

这篇讲的是随着HTTPS成为主流,如何优化TLS握手带来的性能开销。作者从TLS握手需要消耗两个RTT(往返时间)的痛点出发,详细拆解了False Start优化技术——它允许客户端在握手尚未完全结束时就提前发送加密的应用数据,从而将握手延迟从两个RTT压缩至一个。文章还深入分析了证书链的优化策略,指出证书过长或中间证书缺失会导致额外开销,并推荐了使用ECC证书来显著减小证书体积。通过Wireshark抓包图,文章直观展示了这些优化前后的对比效果。对于正在部署HTTPS的开发者来说,这些关于握手流程和证书配置的实践细节,能有效帮助他们在不牺牲安全性的前提下提升连接速度。

本机暂存
IT 2015-12-13 22:02:17 / 累计浏览 2,047

Java反序列化漏洞被忽略的大规模杀伤利用

这篇讲的是Java反序列化漏洞被大家热议时,一个关键攻击面却被普遍忽略了。作者指出,焦点大多集中在Web中间件上,但实际上,像RMI这类在企业级Java CS架构中广泛使用的通信协议,其传输过程完全基于序列化,是漏洞大规模利用的“原罪”。 文章核心观点在于,攻击者只需找到开放的RMI服务端口(默认1099),配合Apache Commons Collections等常用库,就能轻易构造攻击载荷实现远程代码执行。作者批评了许多修复建议只是“治标不治本”,并特别点明了原始研究中关于RMI利用的部分被众多安全人员忽视的现象。 文中不仅分析了原理,还对比了通用利用工具(如ysoserial)在获取回显交互时的不足,并展示了作者为解决此问题而编写的、针对RMI的具体实现代码。这提醒安全研究者,漏洞的实际影响面往往比最初曝光的更广,在企业内网的分布式服务中,这类风险可能更为隐蔽和普遍。

本机暂存
IT 2015-11-02 22:34:43 / 累计浏览 1,383

数据防泄漏DLP技术深度剖析

这篇文章从企业数据保护的演进出发,剖析了数据防泄漏(DLP)技术从粗放式“全加密”管理,向智能化、精细化管控转变的历程。作者指出,DLP的核心在于“内容识别”,以此为基础构建对结构化与非结构化数据的区分防护能力。 文章重点拆解了DLP的基础检测技术(正则、关键字、文档属性)与高级检测技术(EDM、IDM、SVM)的关键差异。例如,精确数据比对(EDM)适用于保护数据库中的客户信息,可通过多字段组合精准触发策略;而文档指纹(IDM)与支持向量机(SVM)则分别通过文件特征学习和语义分类,应对复杂文档与代码的防护。此外,文章还阐述了文件级、网络级、磁盘级动态加密技术的实现原理与适用场景。 在产品形态上,文章梳理了DLP从早期“设备强管控”的囚笼型、聚焦文档加密的枷锁型,到行为审计的监察型,再到当前具备内容感知能力的智慧型产品的演变路径。最后提到,在国产化浪潮下,国内DLP产品正从萌芽走向成熟,市场潜力与挑战并存。

本机暂存
IT 2015-10-26 22:15:42 / 累计浏览 2,034

移动APP安全测试要点

这篇文章由绿盟科技移动APP安全测试专家侯绍岗、杨乔国撰写,以一次真实的Android APP安全测试为案例,系统拆解了移动应用可能面临的威胁与关键检测点。 作者从运营商APP自主开发越来越多但可能绕过应用市场审核这一现状切入,提出了从评估思路到自动化检测的完整框架。文章的核心在于具体的安全检测要点:比如,`allowBackup`属性设置不当可能导致用户数据被导出;WebView未限制方法调用,会为JavaScript攻击设备敞开大门;登录等关键数据若使用HTTP明文传输,则易被网络监听截获;甚至在注册环节,若服务器未验证提交的手机号与下发验证码的手机号是否一致,也可能被利用注册任意账号。 文章不仅给出了明确的整改建议(如将`allowBackup`设为`false`、对敏感数据加密传输),还深入探讨了检测中发现的争议点。例如,关于“关键数据明文传输”是否算漏洞,作者对比了金融、社交等不同平台的安全要求差异;而针对“登录界面可被钓鱼劫持”的风险,文章通过Android启动Activity机制的原理图解,演示了恶意程序如何抢先推送伪装界面,并对比了有无防劫持提示的APP表现,直观说明了该风险的实际危害与防御价值。 这篇技术复盘不仅罗列了漏洞清单,更通过原理分析、情景演示和行业讨论,为安全从业者提供了从识别、评估到整改的实践思路。

本机暂存
IT 2015-10-04 23:17:12 / 累计浏览 2,308

SSH 信任限制只能执行 rsync 命令

这篇讲的是如何在不全面开放SSH权限的前提下,实现服务器间安全的rsync文件同步。作者从一个常见的运维场景出发:Server A需要经常向Server B同步文件,但Server B不想配置复杂的rsyncd,同时出于安全考虑,也不能完全开放SSH登录权限。 文章提供的解决方案核心在于精细配置Server B上的`~/.ssh/authorized_keys`文件。通过将公钥的`command`字段指定为`rrsync`脚本,并附带目标目录路径,就能实现两个关键限制:一是SSH连接建立后,只能执行`rrsync`(受限的rsync)命令,无法获得shell;二是文件传输被严格限定在指定的目录(例如`/data/work/package/`)内。同时,配合一系列`no-`前缀选项,彻底禁用了端口转发、X11转发等可能产生安全隐患的功能。 具体步骤上,文章给出了清晰的操作指引:在Server A生成专用的ssh密钥对,在Server B部署`rrsync`脚本并编辑`authorized_keys`。最后通过一条包含密钥路径的rsync命令,即可完成从本地到远程指定目录的上传。这种方式既满足了自动化同步的业务需求,又将服务器的安全暴露面降到了最低,是一个实用且安全性较高的配置技巧。

本机暂存
IT 2015-09-21 14:27:15 / 累计浏览 19,391

IOS安全–浅谈关于IOS加固的几种方法

这篇讲的是iOS平台加固方法的梳理与对比。作者开篇就点明了iOS系统在未越狱时的相对安全性,但同时也指出,针对逆向分析与破解的加固需求并未消失。 文章重点对比了市面上几款iOS加固产品的早期形态:从被作者认为是“噱头”的爱加密IOS加密,到使用起来需要替换编译器的Safengine工具,再到体验相对较好、考虑更周全的白盒加密方案。通过这些产品演进,带出了当前iOS加固的主流技术方向。 核心内容围绕四种具体方法展开:一是字符串加密,防止明文信息被静态分析直接获取;二是类名与方法名混淆,让通过class-dump得到的接口难以被理解;三是基于Clang编译器IR层的代码混淆,增加反编译后的逻辑分析难度;四是集成安全SDK,提供反调试、注入检测、越狱检测等运行时防护能力。文章不仅指出了问题现状,也给出了部分方法的开源实现参考。 作者以亲身实践的角度,串联起了iOS加固从工具产品到具体技术实现的全景,为关注移动端安全的开发者提供了清晰的入门图景。

本机暂存
IT 2015-09-21 14:23:09 / 累计浏览 4,539

iOS安全系列之二:HTTPS进阶

这篇讲的是在iOS开发中如何让HTTPS连接更安全,作者从实际遇到的HTTPS问题出发,深入剖析了中间人攻击的几种常见形式。文章首先模拟了最简单的钓鱼式攻击,通过Charles代理工具详细演示了攻击者如何利用伪造证书窃取HTTPS流量,直观暴露了许多App仅依赖系统默认校验的安全隐患。 在此基础上,作者对比了SSL剥离等更具隐蔽性的攻击手段,并针对性地指出了防范关键:不仅要依赖系统校验,App内部更应对服务器证书进行本地的、硬编码的对比校验。文中还延伸讨论了iOS 9引入的App Transport Security(ATS)特性,以及如何使用Wireshark调试SSL/TLS通信,将理论与开发实践紧密结合。 对于希望加固应用网络安全的开发者而言,文章从攻击原理到防御代码都提供了具体思路,特别是关于WebView中易忽略的URL协议校验等细节,具有很强的实操参考价值。

本机暂存
IT 2015-09-21 13:45:43 / 累计浏览 1,233

Android安全–DexClassLoader动态加载分析

这篇讲的是DexClassLoader在Android动态加载中的具体实现机制。作者从DexClassLoader的构造函数切入,像侦探一样,一步步追踪代码执行流程。 他沿着构造函数进入父类BaseDexClassLoader,再到关键的DexPathList,最终锁定了加载dex文件的核心函数`loadDexFile`与`openDexFile`。这条路径清晰展示了参数如何被解析与传递。 最巧妙的部分在于,作者将分析延伸到了native层。在`openDexFileNative`函数中,系统会根据文件后缀,分别调用`dvmRawDexFileOpen`处理dex文件或`dvmJarFileOpen`处理jar包,最终返回一个统一的`DexOrJar`结构。这揭示了Android如何将不同格式的代码包归一化处理,巧妙地衔接了Java与Native层的实现。

本机暂存
IT 2015-09-21 13:37:31 / 累计浏览 2,243

说说 XcodeGhost 这个事

这篇文章围绕曾经引起广泛关注的“XcodeGhost”事件展开。作者并非单纯复述事件经过,而是从一个技术观察者的视角,深入剖析了这场安全风波背后的技术逻辑与行业生态。 文章指出,被植入木马的Xcode确实导致了大量国产App被污染,但其实际危害程度需要理性评估。作者核心观点在于,iOS系统自身的安全设计(例如iCloud密码的高优先级保护、沙盒机制)构筑了多道防线,有效限制了恶意代码所能造成的最坏后果。他详细解释了为何直接窃取iCloud密码极其困难,并指出了用户可识别的钓鱼特征,如对话框反常地要求输入完整的Apple ID。 更重要的是,作者将此事与国内开发者普遍集成不明第三方SDK的风气进行了对比,认为后者对App信任链的破坏远超XcodeGhost。他借此批评了行业安全意识的薄弱,并呼吁用户(尤其是国产安卓用户)加强基本防护,如开启二步验证、谨慎对待系统弹窗。文章最后回归到技术本质,强调了操作系统层面安全机制的关键作用,为读者提供了在恐慌情绪之外更为冷静和深入的安全思考。

本机暂存
IT 2015-09-04 21:39:16 / 累计浏览 1,960

Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用

文章从研究Android图形子系统时发现的一个整数溢出漏洞讲起,这个漏洞存在于libcutils库的native_handle_create函数中。作者龚广(@oldfresher)揭示了,当传入精心构造的numFds和numInts参数时,会导致堆内存分配大小计算溢出,进而引发堆破坏。具体来说,这个漏洞可通过Android图形系统的Binder接口(如IGraphicProducer的setSidebandStream)被低权限进程跨进程触发。 更巧妙的是,作者构建了一条清晰的提权路径:从普通应用出发,必须按顺序依次注入mediaserver、surfaceflinger,最终目标是获得system_server的“半神”权限。摘要中点明了这一“三步走”策略的必要性——每一步获取的权限是攻击下一步的门票。文中还提及了攻击过程需克服的ASLR、SELinux以及je_malloc堆管理器等现实障碍,并以mediaserver注入为例,详细拆解了从控制Binder服务线程到最终代码注入的五个步骤。整篇文章不仅定位了漏洞根源,更完整呈现了从漏洞发现到实现高权限提权的复杂工程化利用全貌。

本机暂存
IT 2015-09-04 21:35:34 / 累计浏览 3,797

Android安全–加强版Smali Log注入

这篇讲的是如何在Android逆向或调试时,更高效地向Smali代码注入日志打印。作者从实际场景出发:当我们需要在Smali中插入`Log.d()`来输出某个变量的值时,常规做法很繁琐,往往需要手动修改方法的寄存器数量,再添加多行指令,容易出错且效率低下。 为了解决这个痛点,作者提出了一种巧妙的“加强版”方案。核心思路是自己创建一个`crack.smali`工具类,并在其中预先定义好几个好用的日志输出函数(如`log1`、`log2`等)。这样一来,在需要注入日志的地方,只需简单调用这个类中对应的方法,并将要打印的变量作为参数传入即可。 这种方法将通用操作封装成了模块,避免了每次注入时重复编写和调整基础的Log代码,既降低了出错概率,也大幅提升了逆向分析或调试的效率。文章通过具体的Smali代码示例,清晰展示了从繁琐到简洁的转变过程,对于经常需要动态分析APK的开发者来说,是一个非常实用的技巧。

本机暂存
IT 2015-06-02 13:35:22 / 累计浏览 2,590

搭建自己的CA服务 – OpenSSL CA 实战

这篇讲的是如何用OpenSSL从零搭建一个私有CA服务,特别适合那些内部节点间需要SSL加密通信,又不想向公共CA支付证书费用的场景。 作者从“内部通信也需要安全认证但成本高昂”这一现实问题出发,提供了一份完整的OpenSSL自建CA实战指南。文章的核心是手把手的操作流程:从准备关键的openssl.conf配置文件开始,一步步创建CA自己的私钥、自签根证书,再到用这个CA为其他服务器颁发和签署证书。每一步都配有可直接运行的详细命令行示例,比如生成4096位RSA密钥、设置证书主体信息等,可操作性很强。 通过搭建自己的CA,你可以完全掌控内部系统的证书颁发与管理,既确保了节点间通信的安全性,又省去了向第三方CA申请证书的开销。对于需要快速为内部服务批量建立信任关系的运维和开发人员来说,这套自给自足的方案相当实用。

本机暂存
IT 2015-06-01 09:54:58 / 累计浏览 3,219

NodeJs下的Web安全

这篇文章聚焦于Node.js应用面临的Web安全威胁及防御之道。它系统地拆解了从基础到进阶的多种攻击模式,每种都清晰地阐述了攻击原理与具体防范措施。 比如,针对SQL注入,文章展示了恶意参数如何拼接出`drop table`的毁灭性语句,并强调对用户输入进行过滤是关键。对于XSS脚本攻击,作者提醒要保持对用户数据的怀疑,并推荐了具体的过滤模块。文章还深入讲解了CSRF请求伪造、HTTP管道洪水漏洞,以及包括Slowlori慢速攻击、超大Buffer耗尽内存在内的多种应用层DoS攻击手法。 除了这些经典问题,内容也延伸至Node.js开发中特有的风险点,如因直接拼接文件路径导致的目录遍历漏洞,以及MD5等传统加密方式因彩虹表而变得不安全的现状。文末的总结建议,将Node.js应用部署在Nginx之后、对输入进行严格过滤,是极具操作性的生产环境防护指南。

本机暂存
IT 2015-06-01 09:50:44 / 累计浏览 3,481

nginx访问控制Access Control的问题

这篇讲的是nginx中一个容易踩的坑:使用`allow`和`deny`配置IP访问控制时,规则可能出乎意料地“不生效”。 作者通过一个实际配置进行测试:在server块禁用了IP `211.81.175.6`,在`location /nginxacc`块禁用了IP `211.81.175.8`。预期结果是前者全站不可访问,后者仅目录受限。但实际测试发现,IP `211.81.175.6`竟然能访问`/nginxacc`,而IP `211.81.175.8`却可以访问根目录。 问题的根因在于nginx的访问控制规则继承机制。如果子级(如location块)定义了任何ACL规则,它就**不会**继承父级(如server块)的规则,而是完全使用自己定义的规则列表。这意味着,虽然IP `211.81.175.6`在server层被禁,但在`/nginxacc`这个location里没有重新声明禁止,因此该location的访问是被放行的。 文章引用了nginx源码作为依据。这个发现提醒我们,在设计多层级访问控制时,必须清楚理解规则的继承与覆盖逻辑,不能想当然地认为规则会自动累加。否则就可能出现安全策略漏洞,本该封锁的IP反而获得了访问权限。

本机暂存
IT 2015-05-29 20:06:50 / 累计浏览 17,510

微信扫码登录网页实现原理

这篇文章从作者的一次腾讯面试经历出发,深入剖析了微信扫码登录网页版的核心技术原理。作者通过浏览器工具抓包,逐步拆解了整个流程:首先,网页会生成一个包含唯一临时ID(uid)的二维码;同时,前端会通过创建一个长连接(长轮询)来持续监听该uid的扫描状态。如果扫码超时(约27秒),服务器会返回408状态码;一旦手机端扫码,即上报uid与手机令牌的绑定关系,长轮询便会收到201状态码,网页随即跳转至确认页面。最终用户在手机确认后,服务器才会下发授权令牌,完成整个登录交互。 文章的巧妙之处在于,它清晰地揭示了微信如何利用“长轮询”实时性好、轮询次数少的特点,高效同步了网页与手机端的状态。同时,通过临时uid、网络断开后令牌失效等机制,在便利性与安全性之间取得了不错的平衡。作者结合实际的网络请求代码片段和状态码截图,让这个看似复杂的流程变得直观易懂。

本机暂存