精华内容
下载资源
问答
  • windows 进程守护软件

    2018-10-30 09:10:44
    进程守护软件,简易操作,程序断开后5秒内自动启动。方便快捷
  • 为代码资产管理者提供一个审视安全的基本框架

    本文作者:王振威 - CODING 研发总监
    CODING 创始团队成员之一,多年系统软件开发经验,擅长 Linux,Golang,Java,Ruby,Docker 等技术领域。近两年来一直在 CODING 从事系统架构和运维工作。

    不同类型的企业资产有不同的管理办法,但守护资产的安全性无一例外都是重中之重,但对如何保障代码资产安全并没有形成统一认知。本文将就“代码资产的安全性”这一话题展开全面的阐述,尝试从代码管理的生命周期进行全链路分析,读者可以据此来审视自己企业的代码资产安全。

    代码资产安全是什么

    代码资产安全不等于信息安全

    代码资产安全不等于信息安全,这是很容易理解的。整个企业的信息系统组成不仅仅是代码资产,甚至可以说大多数情况下不涉及代码资产。企业的信息系统往往由基础计算设施、网络平台、软件、数据库等方面组成。信息安全重点是关注上述信息设施在投产之后运行过程中的安全问题。而大多数软件运行的程序包是经由源代码编译的结果,跟源代码本身是分割开来的。信息安全关注的方面更为全面,代码资产安全只是其中的一部分,而且往往不是最为关注的一部分。

    代码资产安全不等于代码安全

    代码资产安全不等于代码安全,这不太容易理解。代码安全往往指代代码本身的安全性,如代码中是否有远程过程执行漏洞,注入漏洞等等。而代码资产安全是一个管理概念,强调管理过程的安全,而非代码本身安全,例如某研究机构需要研究某种计算机病毒,他们需要在源码库中存放对应病毒的源码。这病毒的源码就是这个机构的重要资产。

    代码管理系统不审视源码中的漏洞或者恶意行为,而是必须忠实地确保存储的代码的原始文件

    代码资产管理是围绕代码仓库的全生命周期管理

    代码资产管理的核心是代码仓库。仓库里存放着企业的全部代码,配置文件以及全部历史版本。守护代码资产安全的核心就是围绕代码仓库的三个关键环节构建起全链路的安全能力,这三个环节分别是检入,存储和检出

    检入安全

    检入可以理解为开发者在开发环境上编辑好代码,并且把代码传送到代码仓库的过程。这个环节关注两个方面,分别是机密性完整性

    机密性

    机密性是指开发者把开发环境中的代码检入代码仓库的过程不被第三方窃取,一般通过传输过程加密来实现。Git 代码仓库最常用的是 HTTPS 和 SSH 传输协议。

    HTTPS 协议是通过 HTTP 协议加上传输层安全协议(TLS)实现的。HTTP 协议是明文传输协议,这意味着如果没有 TLS,网络节点中的路由设备都可以轻松窃取代码。TLS 可以在 TCP 协议之上建立双向加密能力,配合 HTTP 协议上就是 HTTPS。HTTPS 客户端和服务端先通过非对称加密协商加密算法和密钥,再使用协商的算法和密钥来进行对称加密传输。本文不涉及具体算法的安全性介绍,不过随着密码学的发展,算法在与时俱进,我们可以认为加密算法本身是安全的。

    然而这一过程并不完备,攻击者可以制作中间服务器,使得客户端在发起连接的时候误连接了中间服务器,从而跟这个中间服务器进行加密通信。这将导致即便是加密传输,但最终还是会被恶意服务器窃取,这就形成了中间人攻击

    行业推出了 CA(证书授权机构)机制应对此问题,即服务器在提供加密传输服务前,要把自己的公钥和服务的域名绑定,并且在全球公信的 CA 处登记。这样一来,HTTPS 客户端在尝试建立加密链接的时候,会要求服务器出示 CA 签发的证书,客户端可以使用预安装在操作系统或者浏览器内的 CA 公钥进行验证,确认服务器对域名的所有权,这样一来就可以确保不会有中间人攻击。有行业公信力 CA,也有企业内部 CA,而后者需要在客户端安装企业内部 CA 的证书文件。

    知名安全机构 Qualys 可以在线对 HTTPS 服务器进行 SSL/TLS 多方面的报告评估,如下图为两家国内云计算公司推出的代码托管服务器的评估:

    HTTPS 虽然解决了传输安全,但在认证用户身份这里,Git 代码仓库还是依赖 Basic Auth 机制来实现。Git 代码仓库会要求 HTTPS 客户端提供账号密码,并附在请求体中一并传输给服务器,由服务器来确认操作者身份。在传输过程中,账号和密码是被 TLS 一并加密传输的,我们不必担心传输过程的密码泄露问题。但开发者通常为了不必每次操作都输入账号密码,会让电脑记住密码,如果不妥善处理,可能会导致泄露。这里重点是一定不能把账号密码拼接在远程仓库访问地址里面,正确的做法是使用 Git 在各种操作系统下的 凭据管理器,如 macOS 是使用钥匙串管理,Windows 是使用 Git Credential Manager for Windows 来进行管理。

    SSH 是一种常用于远程管理 Linux/Unix 服务器的安全加密协议,其功能非常多样。以 Git 为基础的代码托管也常使用这个协议进行加密代码传输。使用者提前把自己的公钥文件配置在服务器上后,可以在后续的传输过程中确认身份。

    SSH 使用非对称加密(用户的公钥)确认身份,用对称加密传输数据。跟 HTTPS 不同的是,SSH 协议无法指定域名,所以无法引入 CA 机制来防止中间人攻击。

    但 SSH 客户端在与未知服务器进行连接时,会提示服务器的公钥指纹信息,使用者应当对比服务供应商官方提供的公钥公告和命令行提示信息来确认服务器身份,确保不被中间人攻击。

    如图展示腾讯云 CODING SSH 服务器的公钥指纹公示:

    如图所示,SSH 客户端尝试连接服务器时给出的服务器公钥指纹确认:

    在用户确认身份(输入 yes 并按下回车)后,SSH 客户端会把服务器的公钥信息记录在 ~/.ssh/known_hosts 中,下次即可直接连接,不再询问。

    要点小结

    • 代码的传输要使用双向加密协议,HTTPS 和 SSH 都可以
    • HTTPS 协议需要关注服务器的证书签发方(CA)的权威性
    • HTTPS 协议需要关注客户端是否安装了不受信任的 CA 文件(防止 CA 欺诈)
    • 使用 Git 凭据管理器保管 Git HTTPS 协议的账号密码
    • SSH 协议在使用的时候需要仔细比对服务器提供的公钥指纹跟服务提供商公告的公钥指纹是否完全一致,防止中间人攻击
    • 客户端需要注意防止攻击者恶意篡改 ~/.ssh/known_hosts 文件内容或者 SSH 的客户端配置(可以通过忽略服务器公钥信任机制)
    • 妥善保管 SSH 私钥文件(往往存放于 ~/.ssh/id_rsa),如 Linux 下确保此文件的权限是 400 等,防止他们读取

    完整性

    代码检入的完整性包含两个方面:

    1. 开发者一次提交的代码变动是否完整(内容不被篡改)
    2. 某次提交是否确为某开发者做出的变动(不被冒名顶替)

    以 Git 为例子,这个代码版本控制软件已经从内生机制上确保了内容不被篡改。Git 采用一种类 Merkel 哈希树的机制来实现分层校验。

    哈希是一种把任意数据映射成等长数据的算法,且不可逆。哈希算法有的特点是原始数据发生一点变化,映射的结果会产生较大变化,而且这一变化毫无规律。映射后的等长的数据被称为指纹。

    哈希算法非常适合用来快速比较两段数据是否完全一致(指纹一致几乎可以推断原文一致)。在我们上文中提到的对比 SSH 服务器出示的公钥指纹,和服务提供商公告的指纹就是这种原理的应用。

    Merkel 哈希树:

    Git 对仓库中的每一个文件内容和其基本信息整合进行哈希。会将一个目录树下的所有文件路径和文件哈希值组合再哈希形成目录树的哈希。会把目录树和提交信息组合再哈希,此哈希结果就是 Git 的版本号。这意味着每次提交都产生一个完全不同的版本号,版本号即哈希。在给定一个版本号,我们可以认为这个版本背后对应的全部文件内容,历史记录,提交信息,目录结构都是完全一致的。对于确定的版本号就没有篡改的可能性

    哈希算法小概率会产生冲突(同一个指纹对应多个不同原始数据的情况),这时可能导致一致性校验失效。所以哈希算法也在与时俱进,如当下 MD5 算法已经几乎过时,Git 当前正在使用 SHA1 算法,未来可能会升级到更为安全的 SHA256 算法。

    如图展示 Git 中的某个目录树的内容信息:

    即便开发者自己提交的版本经过 Git 的层层哈希,可以确保内容不被恶意篡改,但仍然有被冒名顶替的危险

    因为 Git 在提交过程不需要验证用户身份,而且提交可以被不同的人在各种传输过程中传输和展示。设想攻击者冒充公司员工制造一个提交,却被公司其他员工认为是公司内部人士会有多可怕。目前基于 Git,业界的普遍做法是引入 GPG 签名机制

    GPG 是基于非对称加密算法的一个应用,其原理是使用私钥处理一段信息,得到一段新的信息,这段新的信息只能由私钥生成,而且可以使用对应的公钥来识别这段新的信息的生成来源,这段新的信息就被称为数字签名。

    简单来说,信息发布者使用自己的私钥(私人印章)对要发布的信息(待签名文件)进行签名,并且把原始文件和数字签名一并发送给使用方。使用方持有发布方的公钥,对收到的数字签名和原始文件进行校验就可以确认确实是发布方发出的,未被冒名顶替。这类似给要发布的信息盖了个章。

    如图展示 Git 中某个提交被开发者添加 GPG 签名的效果:

    要点小结

    • Git 本身的哈希机制可确保内容不被篡改
    • 使用 GPG 为提交签名可防止冒名顶替
    • 服务器端要校验 Git 提交邮箱声明和 GPG 签名

    存储安全

    存储安全是指当代码被检入到代码仓库后,如何保证数据的机密性,完整性和可用性。抛开基础设施的安全性不谈,对于代码存储来说,数据往往由数据库数据和代码库文件组成,这里重点讨论代码文件存储安全问题。

    机密性

    代码仓库中的代码大多直接存放于操作系统的磁盘中,在服务器软件进行读写操作的时候,不涉及网络传输的机密性风险,但直接写入磁盘上的文件在未做控制的情况下,往往可以被操作系统上的很多不相关进程随意读写,这些非预期的代码读写会造成额外的风险。

    一种做法是去控制每一个文件的读写权限,如统一设置为 600,另一种做法是干脆只允许服务器上运行一个业务进程,实现操作系统级别隔离。

    容器技术提供了一种良好的隔离进程方案:如在 Kubernetes 体系下,代码仓库存储在 PV 上,并只被挂载进代码仓库的应用容器内读写,而且基于容器的调度和弹性特性可以较好的支持高可用并避免资源浪费。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JyEXSXbD-1638353370628)(https://help-assets.codehub.cn/enterprise/20211201104942.png)]

    完整性和可用性

    我们知道 Git 本身会通过哈希校验机制来确保仓库的完整性,但前提是仓库文件是完备的。如果仓库的文件丢失或者损坏,Git 的哈希校验也将无法工作。数据的完整性有很多种解决方案,最常见的冷备,半实时备份,实时备份,磁盘快照等方案都是为了确保文件在丢失或者损坏的时候可以找回,来确保仓库的完整性的。不过总的来说,备份往往是事后的恢复手段,无法实现即时的自愈,最终依据备份机制来进行数据修复往往会影响可用性。

    虽然业界没有针对代码仓库的通用高可用方案,但数据库主从策略和 RAID 机制是两个可以参考的做法,这里来做下简要介绍。

    数据库主从策略,一种做法是数据写入主库,从库自动增量同步数据。当主库发生故障时,从库自动替代。代码存储类似,可以把存储节点分为主节点和从节点。

    RAID 机制是一种磁盘分片存储的冗余机制,有多种做法,如 RAID5,分片存储,并存储一份校验信息,当任意一块磁盘坏掉,可以通过校验信息来复原数据。

    腾讯云 CODING DevOps 在这方面进行了深入研究,并结合了主从和 RAID 的思路,实现了针对代码仓库的高可用策略,可妥善保障仓库的完整性。

    如图所示,对于 D 仓库来说,他的主仓库 D(m) 存放于第二个节点,他的从仓库 D(s) 存放于第一个节点(实质上还可以设定更多从仓库,这里为了图示方便,只显示了一个)。这样的设计让各个节点都可以不闲置计算资源,而且任意一个节点出现损坏都可以快速恢复。

    检出安全

    代码检出后才能使用,而检出也涉及传输机密性问题,这点与检入部分没有区别。而对于 Git 仓库来说,检出环节的仓库完整性会由 Git 的哈希校验机制保证,也不会有太大问题。检出环节的安全问题往往是因为不合适的权限策略和密钥管理导致代码泄露

    企业内部代码通常有如下四个场景:

    1. 检出开发
    2. 阅读评审
    3. 自动执行(CI,自动化测试等)
    4. 管理审计

    检出开发权限

    需要区分开发者能读写的权限范围,保护好关键资源和密钥,按如下原则:

    • 按照业务、组件等进行分门别类的存放,仓库隔离
    • 根据所处的部门和组织关系配置仓库的权限
    • 为分支设定读写权限,只允许有权限的成员写入
    • 使用文件锁定方式保护敏感文件不被误修改
    • 统一传输协议,如只允许 HTTPS 或者 SSH
    • 为个人密码,令牌,公钥等设定有限期
    • 审计密码,令牌,公钥等的使用记录
    • 为目录设定读写权限,只允许指定开发者读取或者写入某些目录
    • 禁止强制推送策略,防止代码被回退

    如图所示,设置仓库内的目录权限:

    阅读评审权限

    诉求是看源码和辅助信息,并做出自己的评审结果,不涉及写入代码,按如下原则:

    • 区分读写和只读成员群体,禁用后者的写入权限
    • 区分深入评审和轻量级评审,禁用后者的代码检出权限,只允许其 Web 页面查看源码
    • 使用 CODEOWNERS 机制自动指定评审成员

    如图所示,设置仓库的 CODEOWNERS:

    自动执行权限

    自动检出,检出行为背后不对应一个人,不涉及代码写回,按如下原则:

    • 禁止成员把自己的密码,令牌,密钥用于自动执行
    • 使用项目/仓库令牌,部署公钥机制确保令牌和密钥只对指定仓库有权限
    • 为不同场景设置专用的令牌,不得混用,也不得用于其他用途
    • 为令牌,公钥等设置有效期
    • 为令牌,公钥等设置禁止写入权限
    • 审计令牌,公钥等的使用记录

    如图所示,设置令牌的权限和有效期:

    管理审计权限

    这种场景是非技术人员希望了解仓库统计信息,活跃情况,了解研发过程进度等,按如下原则:

    • 给成员开放所管辖的仓库列表和仓库详情的 Web 页访问权限
    • 禁止成员使用 HTTPS/SSH 协议把源码检出到本地
    • 禁止成员在网页端下载源码包

    如图所示,设置禁止仓库写入等权限

    总结

    代码资产管理是个体系化的工程,这个过程中的安全性不是某个单点可以完全保障的,需要从检入,存储,检出三个环节对全链条进行风险分析。很多企业在这些方面很重视,但聚焦错了方向,可能付出了很大努力,但实质上依然冒着代码资产的丢失和泄露的巨大风险。希望此文可以帮助企业正视代码资产安全,为代码资产管理者提供一个审视安全的基本框架。

    让 CODING 为您的代码资产保驾护航

    展开全文
  • FairGuard打击外挂,守护游戏安全

    千次阅读 2020-08-10 14:58:50
    FairGuard 守护游戏安全 公司开发团队都是前网易安全部门核心人员,创始人为前网易高级技术专家,有10年以上的游戏安全从业经历, 从 0 到 1 主导了网易手游保护项目,为网易内外部数百个游戏提供了加固服务。...

          据 Sensor Tower 商店情报数据,2019 年全球移动游戏仅在 App Store 和 Google Play 的总收入就达到 617 亿美元,较 2018 年增长14.8%, 中国手游市场在 2019 年依然处于上升通道。在巨大的利益驱使下, 手游黑灰产已经形成并且来势汹汹, 对游戏公司造成了难以估量的经济损失。

          FairGuard 正是针对这一场景而创建的游戏安全加固产品。公司成员都是来自前网易游戏加固团队的核心骨干。专注于游戏加固及反外挂,致力于打造业界顶尖的游戏加固产品。

          FairGuard支持 Android/iOS/PC 多个平台,适应于Unity/Cocos/UE 等多种游戏引擎游戏上线前, 我们加固游戏防止破解; 游戏上线后, 我们监控新外挂/外挂变种, 动态下发特征打击外挂。

     

    一. 外挂带来的损失

    1. 手游破解版/外挂泛滥, 严重破坏游戏平衡, 导致玩家迅速流失, 大幅减少游戏收益。

    比如对于 FPS 游戏, 外挂肆意修改内存, 可以实现许多匪夷所思的功能飞天、遁地、透视、爆头, 无所不能。外挂玩家毫不意外将秒杀正常玩家, 大大打击正常玩家的积极性, 最终导致玩家流失。另一方面, 被外挂行为蛊惑的正常玩家也可能购买使用外挂, 进一步破坏游戏环境, 使游戏环境陷入恶化循环。

    image001.png

    比如对于 SLG/RPG 游戏, 外挂可以利用模拟点击实现全天 24 小时不休息刷副本, 最后将得到的装备/角色出售获利。这种外挂行为在造成游戏服务器高负载、增加公司 IT 成本之外, 还可能引起游戏装备系统/经济系统通胀, 如不及时遏制, 最终可能导致游戏经济系统崩溃。

    image003.png

     

    2. 破解/外挂行为增加公司运行成本, 影响公司/品牌形象。

    游戏公司将花费大量的人力和技术手段监控游戏中的外挂行为, 花费大量的客服资源处理来自正常玩家的投诉。 

     

    3. 游戏代码/美术资源被竞争对手反编译后抄袭/盗用, 快速复制并上线运营, 对游戏公司造成难以估量的损失。

    手游公司在研发前期为了快速出游戏原型, 很可能从市面上已有的类似游戏中获取美术资源。比如一款 unity3d 游戏, 如果它的资源没有加密过, 通过 AssetStudio 等工具分分钟就可以提取出原始美术素材。

    image005.png

    <<光环 4>>在去年就发生过美术素材被抄袭事件。

     

    二. FairGuard 守护游戏安全

    公司开发团队都是前网易安全部门核心人员,创始人为前网易高级技术专家,有10年以上的游戏安全从业经历, 从 0 到 1 主导了网易手游保护项目,为网易内外部数百个游戏提供了加固服务。我们重新出发,只为给用户提供更优质的游戏安全服务。

    我们的游戏加固产品 FairGuard,经过与用户的适配打磨,经过数十个版本迭代, 经过与线上数百款外挂对抗,已经达到国内外反外挂顶尖水平。下面简单介绍下 FairGuard 的功能与优势。

     

    1. 深入操作系统底层

    在一开始, 我们就定位我们的对手是国内外最顶尖的外挂制作者,他们具有深厚的逆向分析能力。而越底层的接口代码,越不容易被 hook 篡改; 混淆、加密强度越高的代码,越难被逆向分析。所以我们深入研究操作系统底层从系统底层 api 出发甚至手写汇编实现最基础的功能再配合私有的代码混淆技术/虚拟化技术以保证这些基础功能的可靠性,甚至我们研发了国内独有的 so 无导入函数加密来保护代码安全。FairGuard 从底层避免被逆向分析的问题。如下图所示,我们的基础功能代码难以被逆向分析:

    image007.png

    市面上有些同类产品正是因为基础功能的不可靠才导致溃于蚁穴的事经常发生

     

    2. 深入研究游戏引擎

    我们深入研究了各种常见的游戏引擎,最终实现了与引擎底层紧密耦合的加固功能。与引擎底层绑定有几个优点:

    1)可以实现更强大的防护功能。比如我们实现了国内独有的支持 Android/iOS 双平台的 unity3d assetbundle 资源加密功能;比如我们为 mono dll 实现了高强度的结构虚拟化。如下所示,虚拟化后的 dll 无法被 dnspy 分析:

    image009.png

    2)不易被破解者摘除保护功能。正是因为与引擎底层耦合,如果破解者尝试摘除我们的保护功能,那么引擎代码也会被破坏,导致游戏无法运行。

     

    3. 防破解全面

    我们反复研究了市面上不同类型游戏遇到的各种破解问题提炼出破解方向进行防御于是我们在可靠的基础功能上实现了一系列防破解功能

    常见的防破解功能有:

    1)防盗版

    签名和文件完整性多重校验,防止游戏被植入恶意模块、剔除广告等

    2)防内购破解

    防止篡改支付过程绕过付费或者替换收款帐号掠夺玩家付费

    3)反调试

    防止外挂作者对进行调试,阻止对游戏的静态或动态分析

    4)防内存篡改

    防止通过篡改游戏内存,改变游戏属性的作弊行为,防止修改器的使用

    5)防地理位置篡改

    禁用地理位置模拟操作,防止LBS类型玩法的作弊

    6)反ROOT反越狱

    禁用ROOT(越狱)手机,或对ROOT(越狱)进行检测

    7)加密游戏资源

    加密游戏美术资源、数值配置文件,防止被盗用、抄袭

     

    4. 反外挂智能

    我们提供的传统反外挂功能有:

    我们提供的传统反外挂功能有:

    1)反修改器

    独创技术精准识别各种修改器,包含GG修改器、八门神器等及其变种

    2)反变速器

    独创的无导入函数引擎加固,使得在游戏中使用任何变速器、加速器不产生效果

    3)反虚拟机

    独创技术精准识别VirtualAPP、平行空间、VirtualXposed等虚拟机或多开器

    4)反云手机

    精准识别红手指、蓝光云、河马云等云手机,打击影响游戏平衡的挂机

    5)反挂机挂

    禁止玩家使用按键精灵、蜂窝助手等模拟点击脚本、挂机挂等外挂

    6)反注入器

    禁止使用Xposed、Frida等各种外挂模块注入器,防止注入后修改游戏内存等各种恶意行为

    7)反模拟器

    采用底层技术精准识别市面所有模拟器,打击作弊、自动化挂机等行为

     

    在传统反外挂功能之外,还可以通过后台大数据分析自动发现异常,我们再提炼外挂行为、特征动态下发,有效打击新型外挂、外挂变种。

    image011.png

     

    三. 游戏保护效果展示

    自 FairGuard 运营以来我们解决了用户线上遇到的各种各样的被破解/外挂问题这里向大家分享几个具有代表性的用户案例

     

    1.   某主要营收来源于广告的休闲类游戏

    问题:

    在接入 FairGuard 前, 网络上出现了很多去除广告破解版, 甚至有些破解版本更改了广告 id。

    解决方案:

    1) 对游戏包加固, 防止破解者改包

    2) 对 unity3d dll 做高强度虚拟化, 防止被篡改游戏逻辑

    效果: 该游戏接入 FairGuard加固 ,对unity加密,上线后至今,各个破解版平台未再出现破解版本,游戏官方下载量增长30%

     

    2.   某百万级用户量的 Unity3d 引擎二次元游戏

    问题:

    1) 游戏脚本未做加密,被破解修改后重打包,破解版提供无敌、秒杀、过图等功能。

    2) 游戏通讯协议简单,协议被破解,出现使用挂 VPN 方式的伪脱机挂

    3) 存在很多的工作室盈利行为,对游戏营收造成严重影响

    解决方案:

    1) 对游戏的 Unity 脚本做最高强度的结构虚拟化加密,防止游戏逻辑被篡改。

    2) 此类游戏修改内存会实现变态的功能,为此配置了反内存修改、反加速、反虚拟机功能,防止玩家使用此类外挂。

    3) 针对通讯协议被破解,我们提供数据签名SDK让游戏接入,通过安全强度极高的数据校验算法,来防止脱机伪造通讯包。

    4) 通过智能化的威胁数据分析,定位到多个工作室和专业破解者。

    效果该游戏接入 FairGuard 加固上线后,游戏方运营反馈,客户外挂投诉量立马减少95%

     

     

    3.   某百万级用户量的 cocos单机游戏

    问题:

    1) 游戏被破解解密出脚本,去除游戏方自带的签名校验。

    2) 游戏脚本被修改后,把充值接口和界面进行替换,做成私服,私服方做成道具收费自己运营

    3) 除了私服外,还有很多修改器、加速器等外挂,对游戏营收造成严重影响

    解决方案:

    1) 对游戏引擎做定制化混淆和加固,防止脚本被解密。

    2) 增加防修改器、防加速器、防破解重打包功能。

    3) 通过云特征来做线上动态防御。

    效果本来游戏更新后,私服五天即会更新对应的私服版本,该游戏接入 FairGuard 加固上线后,至今已经2个多月都未更新版本。游戏营收相比未接入前增长30%。

     

    四. 结语

    FairGuard 在与游戏外挂对抗中不断升级持续为用户提供优质的防破解/反外挂服务,守护游戏安全

    欢迎访问 www.fair-guard.com 获取更多信息

    展开全文
  • 行在 Windows IIS 6/7/7.5 ASP/PHP下(Linux Apache2 PHP5 的支持将视情况尽快开发完毕),无须在服务器端安装任何应用程序 。也就是说,只要您的服务器能够运行网站程序就能运行本程序。  本程序的诸多业内首创...
  • 火绒安全为回馈大家一直以来对火绒个人版和企业版的关注与支持,特在2022年开年之际,赠送新老用户大福利。本次活动不论是新用户购买还是老用户续约,以及个人用户都有专属福利! 活动一:购买有礼“新用户买就赠,0...

    Aloha!火绒安全为回馈大家一直以来对火绒个人版和企业版的关注与支持,特在2022年开年之际,赠送新老用户大福利。本次活动不论是新用户购买还是老用户续约,以及个人用户都有专属福利!

    活动一:购买有礼“新用户买就赠,0元购等你来”

    活动对象:首次购买“火绒终端安全管理系统V2.0”的企业新用户
    活动时间:2022年1月13日-2022年3月31日
    参与方式:点击下方链接并注册后即可参与“超值买赠券抽奖”。100%中奖!最高赠送购买点数的20%,买的越多赠的越多! 不仅如此,还有惊喜免单——0元购等你来
    https://app.ma.scrmtech.com/svip/IndexCustomerForm/CustomerIndex?pf_uid=24908_2009&is_follow=yes&pf_type=3&id=7943&channel=25814

    活动规则:
    1)如何使用:在2022年5月31日(含)前购买“火绒终端安全管理系统V2.0”即可使用该买赠券,并可赠送最终购买点数的相应比例的点数。如:抽中20%买赠券,最终购买1000点,可额外获赠200点。
    2)使用条件:每家企业限用一张,不叠加不累计,仅限新用户使用。
    3)查看中奖:您可在抽奖页面的“活动锦囊”中查看您的中奖情况。

    活动二:续约有礼“老用户专享,感恩回馈899礼盒”
    活动对象:续约企业版的老用户
    活动时间:2022年1月13日-2022年5月31日
    参与方式:点击下方链接注册并填写续约信息 。5月31日(含)前,火绒企业版老用户一次性续约三年,可免费升级到“火绒终端安全管理系统V2.0”产品,并额外赠送价值899元的虎年高级定制礼盒!数量有限,先到先得。
    https://app.ma.scrmtech.com/svip/IndexCustomerForm/CustomerIndex?pf_uid=24908_2009&is_follow=yes&pf_type=3&id=7944&channel=25814

    活动规则:
    1)续约礼盒获得条件:2022年5月31日(含)以前续约并付款成功,即可获赠礼盒,每单限定一个礼盒。礼盒在签约付款后1个月内发放完毕。

    活动三:转发有礼“转发达人榜,TOP3赢豪礼”
    活动对象:所有个人
    活动时间:2022年1月13日-2022年3月31日
    参与方式:点击下方链接成为会员,自动进入“任务中心”找到本次活动文章,转发到朋友圈或好友。文章获得点击数量最多的TOP3会员,更可获得价值399元的虎年定制礼盒!
    https://app.ma.scrmtech.com/svip/IndexCustomerForm/CustomerIndex?pf_uid=24908_2009&is_follow=yes&pf_type=3&id=7945&channel=25814

    活动说明:
    个人扫码注册将成为火绒安全服务号会员。本服务号配置多项功能与福利:有汇集火绒独家干货报告的内容中心;有可用积分兑换好礼的积分商城,多重好礼任你挑;更有任务中心等多种积分方式,等你来参与!
    火绒安全服务号拥有丰富的干货报告/白皮书、安全资讯、行业洞察,以及火绒产品的客户案例,产品介绍,视频演示……会员可免费收藏,查阅,下载资料到邮箱!均可赚取积分。

    狂欢盛典 火“礼”全开。金虎送福 欣欣向“绒”。 期待大家的参与!

    展开全文
  • 长安“战疫”网络安全卫士守护赛部分wp 然后就是朴实无华的取证那个题 不知道是大小写的原因还是啥交不上,无字天书卡到最后那个长得好像摩斯密码的地方,收获满满,继续努力。

    摘要:长安“战疫”网络安全卫士守护赛部分wp
               然后就是朴实无华的取证那个题 不知道是大小写的原因还是啥交不上,无字天书卡到最后那个长得好像摩斯密码的地方,收获满满,继续努力。

    misc:

        八卦迷宫

        西安加油

        binary 

    密码 :

        no_cry_no_can

        no_can_no_bb

    RE

       hello_py

       cute_dog 

    misc:

                                                            八卦迷宫

    走迷宫,路线即是答案,但是要把中文转化成拼音才能交上flag,哈哈哈,当时还在那疑惑了:

            

    cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang}

                                                                西安加油

    打开流量包,然后导出http到文件夹:

     然后里面有一个secret.txt:

    打开:

    很明显base64

    解密:

    是一个压缩包,导出:

    都是照片,一张一张看发现每一张都有涂鸦,拼一块就行:

    cazy{make_XiAN_great_Again}

                                                                    binary 

    给了个234的未知文件,看题目是说是二进制,用ida打开看看:

    Javavm,Java逆向,用jadx-gui打开:

    只有一个主函数,里面是一个数组

    思来想去的说是二进制,那么把这一些数都转换成二进制数据流得到

    "0000000101110000000011111101110000000011111010110101011111000111011011111001000101000011110001110101101101000100100010110000011000111000001010100010010001011101101100110110101111010001001111101011101000000010010000101111100000000101010101010101010101010000000111111110010000000010011001111111111111000101010100001011111101000000110000101101000110010010000100110101011101101100000100111100110001101000001001011101111111100101011010001101010111001010110001110000000110100000000000010011010100100010001101110101110111110100101001001111111011100001100101000100010001101110110110011001100110011101111010011000111111101101001100000001000001110101000111000001011011111101111101100110101101001100010100110000100010100100111100100000100111001001011101010100110001110001100100000101010001001101111101110110010011111101011101110110001011100000010111011000101101000110010001111011000111101001001111010101000001110101110110101111110100010010101101100100100000011010001001111101101000100011100101100110111110011000111001111100000010110110111001111100010011001011001010001011101100000000011111111010110011100111001010111010110000000111000111011010110001010100100011111011100110101011010110001110111101000101001100001100110100000000000100100010101111101100011111111110100111010001010110111111110000001010101011001111101111110001011010011110001101100000000111111011110110000000100011000"

     然后试了好多种方法最后在网上找资料的时候找到大佬的二进制数据流转化成二维码的脚本:

     还得是大佬哈哈哈

    mport PIL
    from PIL import Image
    
    MAX = 37
    img = Image.new("RGB",(MAX,MAX))
    i = 0
    str = "0000000101110000000011111101110000000011111010110101011111000111011011111001000101000011110001110101101101000100100010110000011000111000001010100010010001011101101100110110101111010001001111101011101000000010010000101111100000000101010101010101010101010000000111111110010000000010011001111111111111000101010100001011111101000000110000101101000110010010000100110101011101101100000100111100110001101000001001011101111111100101011010001101010111001010110001110000000110100000000000010011010100100010001101110101110111110100101001001111111011100001100101000100010001101110110110011001100110011101111010011000111111101101001100000001000001110101000111000001011011111101111101100110101101001100010100110000100010100100111100100000100111001001011101010100110001110001100100000101010001001101111101110110010011111101011101110110001011100000010111011000101101000110010001111011000111101001001111010101000001110101110110101111110100010010101101100100100000011010001001111101101000100011100101100110111110011000111001111100000010110110111001111100010011001011001010001011101100000000011111111010110011100111001010111010110000000111000111011010110001010100100011111011100110101011010110001110111101000101001100001100110100000000000100100010101111101100011111111110100111010001010110111111110000001010101011001111101111110001011010011110001101100000000111111011110110000000100011000"
    
    for x in range(MAX):
        for y in range(MAX):
            if(str[i] == '1'):
                img.putpixel([x,y],(0,0,0))
            else:
                img.putpixel([x,y],(255,255,255))
            i = i+1
    img.show()
    img.save("3.png")

    得到图片:

     然后扫码得到:

    cazy{932b2c0070e4897ea7df0190dbf36ece}

    密码 :

                                            ​​​​​​​        ​​​​​​​        no_cry_no_can

    下载下来打开是一个python脚本:

    分析一下 就是key有五位 然后这个加密函数的功能就是 将flag里面的每一位与key按位进行异或5个一循环,那么要先求出来key,因为给出来flag的前五位cazy{ 和加密后的c

    很容易求出来key,求出来key之后就可以写脚本了:

    s='cazy{'
    a='<pH\x86\x1a&"m\xce\x12\x00pm\x97U1uA\xcf\x0c:NP\xcf\x18~l'
    print(len(a))
    key=[]
    for i in range(len(s)):
        key.append(ord(s[i])^ord(a[i]))
    print(key)
    m=''
    for i in range(len(a)):
        m+=chr(ord(a[i])^key[i%5])
    print(m)

     cazy{y3_1s_a_h4nds0me_b0y!}

                                                    no_can_no_bb

    下载下来打开依旧是一个python脚本,很明显的AES加密

    这个是多次(2**20)加密直接写脚本爆破:

    前面不变后面把加密函数换成自己写的解密函数,结果如下:

    mport random
    from Crypto.Util.number import long_to_bytes
    from Crypto.Cipher import AES
    def pad(m):
        tmp = 16-(len(m)%16)
        return m + bytes([tmp for _ in range(tmp)])
    c = b'\x9d\x18K\x84n\xb8b|\x18\xad4\xc6\xfc\xec\xfe\x14\x0b_T\xe3\x1b\x03Q\x96e\x9e\xb8MQ\xd5\xc3\x1c'
    for i in range(1,2**20):
        key = pad(long_to_bytes(i))
        aes = AES.new(key,AES.MODE_ECB)
        m = aes.decrypt(c)
        if m[:5] ==b'cazy{':
            print(m)

     cazy{n0_c4n,bb?n0p3!}

    RE

                                                            hello_py

    下载下来是一个.pyc的程序,在线反汇编一下

    得到:

    #!/usr/bin/env python
    # visit https://tool.lu/pyc/ for more information
    import threading
    import time
    
    def encode_1(n):
        global num
        if num >= 0:
            flag[num] = flag[num] ^ num
            num -= 1
            time.sleep(1)
        if num <= 0:
            pass
        
    
    
    def encode_2(n):
        global num
        if num >= 0:
            flag[num] = flag[num] ^ flag[num + 1]
            num -= 1
            time.sleep(1)
        if num < 0:
            pass
        
    
    Happy = [
        44,
        100,
        3,
        50,
        106,
        90,
        5,
        102,
        10,
        112]
    num = 9
    f = input('Please input your flag:')
    if len(f) != 10:
        print('Your input is illegal')
        continue
    flag = list(f)
    j = 0
    print("flag to 'ord':", flag)
    t1 = threading.Thread(encode_1, (1,), **('target', 'args'))
    t2 = threading.Thread(encode_2, (2,), **('target', 'args'))
    t1.start()
    time.sleep(0.5)
    t2.start()
    t1.join()
    t2.join()
    if flag == Happy:
        print('Good job!')
        continue
    print('No no no!')
    Continue

    然后分析一下这个python脚本的功能

    就是对输入的flag进行异或 下标为奇数用自己异或下标,下标为偶数则用自己异或下一个,然后和Happy比较

    逻辑很简单

    逆向过来就行,脚本如下:

    Happy = [
        44, 100, 3, 50, 106, 90, 5, 102, 10, 112]
    flag=''
    for i in range(len(Happy)):
        if i%2!=0:
            flag+=chr(Happy[i]^i)
        else:
            flag+=chr(Happy[i+1]^Happy[i])
    print(flag)

    flag{He110_cazy}

                                                                 cute_dog 

    经典第一步查壳:

    无壳64位,扔ida64:

    主函数没啥东西,shitf f12看看:

     可疑字符串,去它函数里面看看:

    也没啥特殊函数,就猜测是加密之后的字符串,先试一下base64:

    得到答案: flag{Ch1na_yyds_cazy}


    展开全文
  • 守护进程: ...使用场景 例如qq进程 有一个下载任务 交给了一个子进程 但是过程中 qq退出了 下载进程也可以随之关闭了 import time from multiprocessing import Process def task(): print("...
  • 这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Web渗透的第一步工作,涉及网站信息、域名信息、端口信息、敏感信息及指纹...
  • USB闪存盘守护者##版

    2011-06-10 11:19:00
    USB闪存盘守护者一共有5个版本:无+版、+版、++版、#版和##版。没错,这些符号看得我都晕了。其实这些版本主要是功能上的不同。例如无+版仅支持4G以下的U盘,并只能支持FAT格式分区。##版支持500G容量,并支持NTFS...
  • 本文是“网络安全提高篇”第一篇文章,将带领大家了解网络安全攻防知识点,并以医疗数据安全为基础进行总结,具体内容包括: 一.网络空间安全与溯源 二.网络安全攻防技巧 三.APT攻击经典案例 四.医疗数据安全防护 ...
  • DC-5靶机练习.rar

    2020-01-08 19:05:24
    本压缩包分为三个文档 一个是自己在靶机实战过程的总结 以及漏洞利用的源码 生成的利用代码三个文档 同时靶机实战步骤详细
  • socks5基础

    千次阅读 2019-05-29 15:14:40
    什么是socks5 socks是”SocketS”的缩写,因此socks5也叫sockets5。 socks是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型来划分,SOCKS属于会话层协议,位于表示层与传输层...
  • CentOS7 系统安全加固实施方案介绍

    万次阅读 2015-09-23 12:43:48
    CentOS7.0系统安全加固手册 目录 一、用户帐号和环境……………………………………………………………………………………. 2二、系统访问认证和授权………………………………………………………………………………...
  • 网络安全类学习资源

    千次阅读 2020-11-20 21:41:12
    目录分类 媒体社区类 安全公司类 应急响应类 安全团队类 高校社团类 ...i春秋 :- 专业的网络安全、信息安全、白帽子技术的培训平台及学习社区,78万安全用户的精准推荐。 合天智汇 :- 为广大信息安.
  •  强大的守护中心功能: 守护中心涵盖帐号安全守护、远程桌面守护、文件目录保护、应用程序守护、系统资源守护与定时操作等功能。为用户提供从远程桌面登录,到帐号、文件管理、再到应用程序、系统服务守护为一体的...
  • 大学专科,大学本科,网络安全课程,信息安全技术课程,期末考试复习题。
  • Xshell5下利用sftp上传下载传输文件

    万次阅读 2016-06-16 15:36:50
    TransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至Blogger 伺服器的安全方式。其实在SSH软件包中...
  • 1-1、Android安全模型 直接上图吧,这种一对多的表格一直不会编辑。 1-2、系统的安全结构 Android层级和安全措施: 层级 安全措施 应用层 接入权限、代码保护 框架层 数字证书 虚拟机层 沙箱机制 ...
  • web安全测试概述

    千次阅读 2018-08-24 14:19:12
    一、关于安全 1、安全问题的根源: 1)、分层思想,这个分层包括网络分层和软件分层等,分层可以将大的问题划分为不同的层次,层次与层次之间通过一定的接口标准进行信息交换,从而将一个大问题拆分开来由不同层次...
  • 目录 一、kerberos简介 二、kerberos认证原理 ...5.测试kerberos安装是否成功 6.kerberos常用命令 一、kerberos简介 Kerberos是一种计算机网络认证协议,此协议可以保护网络实体免受窃听和重复攻击,它允许某...
  • 网络安全图书馆文件下载

    千次阅读 2014-05-27 09:01:28
     网络渗透测试-保护网络安全的技术、工具和过程    BackTrack4:利用渗透测试保证系统安全    Metasploit渗透测试魔鬼训练营    Metasploit渗透测试指南    Web渗透技术及...
  • 作为Web渗透的初学者,Linux基础知识和常用命令是我们的必备技能,本文详细讲解了Linux相关知识点及Web...安全领域通常分为网络安全(Web渗透)和系统安全(PWN逆向)两个方向。非常基础的一篇文章,希望能够帮助到您!
  • 在上一模块中,我们重点讲解了,在开发过程中经常要接触或使用的平台、工具的安全功能。这些平台和工具包括:Linux 系统、网络、容器、数据库和分布式平台。 那通过对这些平台和工具的安全功能分析,相信你已经知道...
  • DC-5靶机练习

    千次阅读 2020-01-08 19:18:10
    DC-5靶机练习 文件下载链接 第一部分 信息收集 第一步 信息收集 第二步扫描开放的端口 第三步 访问80端口 [ 打开Contact页面,发现是一个留言板块,在留言板块输入内容并提交] 第四步:观察网页 第二部分 ...
  • 信息安全常见名词解释

    万次阅读 多人点赞 2016-10-06 10:17:36
    5.  网页敏感内容检测:对网页内容,包括关键词等进行自动化检测,给用户以提示。 6.  网页变更检测:检测网页内容、链接等是否被篡改。 7.  网页坏链:即点了这个链接,没有跳到这个链接指向的网站...
  • SEAndroid安全机制中的进程安全上下文关联分析

    万次阅读 多人点赞 2014-07-28 00:59:17
    但是在SEAndroid中,除了要给文件关联安全上下文外,还需要给进程关联安全上下文,因为只有当进程和文件都关联安全上下文之后,SEAndroid安全策略才能发挥作用。也就是说,当一个进程试图访问一个文件时,SEAndroid...
  • 把下面的题目全部背会,保你轻松过三级信息安全! 第九套题: 1.1972 Anderson 2.智能卡目前难以推广 ...5.视图机制的安全保护功能往往不太精细,不能达到应用系统的要求 6.RESOURSE权限:能创建基本表和视图,不...
  • Harbor集成Clair镜像安全扫描原理探知

    千次阅读 2019-10-21 16:34:59
    上一篇文章中我们简单了解了Harbor集成Clair的安装...该工具可以交叉检查Docker镜像的操作系统以及上面安装的任何包是否与任何已知不安全的包版本相匹配。漏洞是从特定操作系统的通用漏洞披露(CVE)数据库获取。 通...
  • Centos7系统安全漏洞及修复方案

    千次阅读 2021-04-06 10:49:40
    内网升级服务及命令版本方法 内网环境,无法使用yum命令 —— 则离线升级安装rpm包 Centos的rpm包地址(大多数包可在这找到):CentOS Mirror 若是包版本不全,可使用此博客的4.1方法下载安装升级包:Docker系列之...
  • 基于网络安全相关的开源项目技术预研分析报告 1 1. 预研背景 3 2. 预研目的和意义 3 3. 预研目标 3 4. 预研技术描述 3 4.1 态势感知或安全运营中心-OSSIM 3 4.1.1 OSSIM简介 3 4.1.2 OSSIM的功能 4 4.1.3 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,564
精华内容 12,225
关键字:

安全守护5下载