第三方免费加固横向对比

原文:https://zhangjm05.coding.me/2016/11/20/thirdparty_reinforcement/

前言

基于java开发的android应用由于其语言的特性,所以很容易被反编译,虽然android提供了proguard,但是也只是增加了源码阅读的难度,其中业务逻辑依旧可以分析得出。有些人通过各种破解手段将apk文件破解、反编译,然后加入广告、病毒代码,重新打包投入市场,不明真相的用户将带病毒广告的apk下载下来,甚至因此造成利益损失。

一些个人开发者,小企业等并不会有这么多的资源精力投入在应用的安全方面,因此一些第三方的加固服务也应运而生,它们通过加壳、加密、逻辑混淆、代码隐藏等各类安全加固方法,增加移动安全应用的安全防护等级,防止移动App被逆向分析,反编译,以及防止二次打包潜入各类病毒、广告等恶意代码,并且应用加固是针对移动应用的安装包直接加固,无需开发者修改源代码或进行二次开发。

第三方免费加固

功能概述及其使用

1. 阿里聚安全 链接:http://jaq.alibaba.com/

  • 上传应用
  • 提供安全扫描(漏洞扫描、恶意代码扫描、仿冒应用扫描)
  • 可以从结果知道漏洞总数,如果是认证过的开发者,可以直接得知漏洞的具体位置。其中还有部分漏洞需要付费扫描。
  • 然后我们可以进行应用加固,其中分快速加固和多渠道加固,可以按需选择
  • 加固包下载(应用需要重新签名)

2. 腾讯云应用乐固 链接:https://www.qcloud.com/product/cr

  • 上传应用
  • 默认服务类型:
    1. 应用加固
    2. 漏洞检测
    3. 渠道监控
  • 可选服务类型:
    1. 适配分析(每天可以有一次)
    2. 质量跟踪(即接入腾讯的bugly进行异常追踪)
  • 之后我们可以得到应用的基本信息、加固包、缺陷分析、应用检测
  • 选择下载加固包(应用需要重新签名)的同时还提供了签名及多渠道打包工具、自动加固工具的下载使用

3. 360加固保 链接:http://jiagu.360.cn/

  • 上传应用
  • 提供加固基础服务:
    1. DEX文件加密
    2. 防二次打包
    3. APK大小优化
    4. 防DEX内存截取
    5. 应用盗版检测
    6. 加固数据分析服务
  • 可选增强服务:
    1. 崩溃日志分析(即接入360的bug追踪)
    2. 支持x86框架(约增大apk大小400k左右)
    3. 应用升级通知(一键接入增量更新,约增大apk大小20k左右,详情地址:http://jiagu.360.cn/qcmshtml/details.html#update)
  • 选择下载加固包(应用需要重新签名)的同时还提供了签名工具、加固工具(链接:http://jiagu.360.cn/qcmshtml/details.html#helper)的下载使用

4. 梆梆加固 链接:https://dev.bangcle.com/

  • 上传应用
  • 提供功能:安全评估(更多定制化的评估,需联系客户并且收费)、应用加固(认证过的开发者还提供:报告下载,多渠道打包)
  • 评估结果提供了风险的详情,位置及解决方案
  • 提供对加固后的包再进行快速评估
  • 选择下载加固包(应用需要重新签名)的同时还提供了加固工具的下载使用

5. 爱加密 链接:http://safe.ijiami.cn/

  • 上传应用并直接执行加密

    需要注意其中有一个选项:防止二次打包,请按需选择

    ijiami_tip

  • 可以对加固后的包申请渠道检测,除了加固包的下载,还提供了签名工具的下载

  • 使用智游爱加密服务的开发者APP,并已成功提交到Google 官方应用市场并上架的,可得到智游官方网站应用的下载推荐

对应用的影响

APK大小

Old Size 为原本的app包

New Size 为加固后的app包

  1. 阿里聚安全
    jiagu_ali
  2. 腾讯云应用乐固
    jiagu_legu
  3. 360加固保
    jiagu_360
  4. 梆梆加固
    jiagu_bang
  5. 爱加密
    jiami_ijiami
原本大小 阿里聚安全 腾讯云应用乐固 360加固保 梆梆加固 爱加密
16.6MB 18.2MB 17.3MB 17MB 18.4MB 17.7MB
兼容性

采用testin标准兼容测试,终端数100款

通过率如下:

原本 阿里聚安全 腾讯云应用乐固 360加固保 梆梆加固 爱加密
100% 100% 99% 98% 98% 97%
启动时间

采用testin标准兼容测试,终端数100款

原本 阿里聚安全 腾讯云应用乐固 360加固保 梆梆加固 爱加密
2.04s 2.00s 3.13s 3.05s 3.05s 2.49s
漏洞扫描结果

综合扫描质量,覆盖项广度等方面的考虑,采用了阿里聚安全的安全扫描

  原本 阿里聚安全 腾讯云应用乐固 360加固保 梆梆加固 爱加密
评分(100) 74.2 80.4 87.5 86.4 83.5 87.3
漏洞总数 50 44 17 20 10 23
高危漏洞 13 12 2 4 1 1
中危漏洞 19 16 2 4 2 1
低危漏洞 18 16 13 12 7 21

一开始用阿里聚安全加固后的包,再上传上去无法进行扫描,联系客服后发现它们那存在问题,在问题修复后再上传进行扫描,发现阿里扫阿里加固后的包竟然是这得分,这就有点尴尬了~

总结

体积(体积小的为优):360 > 腾讯 > 爱加密 > 阿里 > 梆梆

兼容性: 阿里 > 腾讯 > 360 = 梆梆 > 爱加密

启动速度(时间短为优): 阿里 > 爱加密 > 360 = 梆梆 > 腾讯

漏洞: 腾讯 > 爱加密 > 360 > 梆梆 > 阿里

app加固的好处是进一步保护了自己的核心代码,提升了盗版的难度,但同时也影响的应用的兼容性,程序的执行效率,还有部分的市场会拒绝加壳后的应用上架。所以请大家结合自身的情况来选择。

版权声明:

本文标题:第三方免费加固横向对比

作者:Rabtman

原始链接:https://zhangjm05.coding.me/2016/11/20/thirdparty_reinforcement/

本文采用署名-非商业性使用-禁止演绎4.0进行许可。

非商业转载请保留以上信息。商业转载请联系作者本人。

<think>我们正在讨论Nginx配置中的两个关键部分:upstream模块和server_tokens指令。根据用户的问题,他要求解释这两个部分的作用。同时,用户提供了几个引用,我们可以参考这些引用中的信息。 首先,我们来看引用[1]中关于Nginx配置结构的描述,其中提到了upstream块位于http块内,用于负载均衡配置。引用[2]则展示了upstream的具体用法,它定义了一个名为backend_servers的上游组,包含两个后端服务器,并在location中使用proxy_pass指令将请求代理到这个上游组。 对于server_tokens指令,引用[4]中并没有直接提到,但我们可以结合Nginx的知识来回答。server_tokens指令用于控制Nginx在错误页面和响应头中是否显示版本号。 下面,我将按照用户的要求,分别解释upstream模块和server_tokens off指令的作用。 ### 1. upstream模块的作用 `upstream`模块用于定义一组后端服务器,这些服务器可以处理来自客户端的请求。它通常用于负载均衡和反向代理配置。主要作用包括: - **负载均衡**:将客户端请求分发到多个后端服务器,以提高系统的处理能力和可靠性。Nginx支持多种负载均衡策略: - 轮询(默认):按顺序将请求分配给每个服务器。 - 加权轮询:根据服务器的权重分配请求,权重高的服务器处理更多请求。 - IP哈希:根据客户端IP地址的哈希值分配请求,确保同一客户端的请求总是发给同一服务器(适用于会话保持)。 - 最少连接:将请求分配给当前连接数最少的服务器。 - **健康检查**:通过第三方模块(如`nginx_upstream_check_module`)可以定期检查后端服务器的健康状态,自动剔除故障服务器,并在其恢复后重新加入。 示例配置(参考引用[2]): ```nginx http { upstream backend_servers { server 192.168.1.10:8080 weight=5; # 权重为5 server 192.168.1.11:8080; # 默认权重1 server backup.example.com:8080 backup; # 备份服务器,仅当主服务器不可用时启用 } server { location / { proxy_pass http://backend_servers; # 将请求转发到上游组 } } } ``` - 在这个例子中,请求会被分发到两个主服务器(权重不同),当它们都不可用时,才会使用备份服务器[^2]。 ### 2. server_tokens off指令的作用 `server_tokens`指令用于控制Nginx在错误页面和响应头中是否显示版本信息。默认情况下,该指令是开启的(`on`),会显示Nginx的版本号。 - **安全增强**:隐藏版本号可以避免攻击者利用特定版本的已知漏洞进行攻击(安全最佳实践)。 - **响应头变化**: - 开启时:`Server: nginx/1.16.1` - 关闭时:`Server: nginx` 配置位置: ```nginx http { server_tokens off; # 在http块中全局生效 } ``` 或 ```nginx server { server_tokens off; # 仅在当前server块生效 } ``` > **注意**:即使关闭`server_tokens`,某些错误页面(如404、500)仍可能显示Nginx标识(但不显示版本号)。若要完全隐藏,需自定义错误页面[^1]。 ### 总结对比表 | 配置项 | 作用域 | 主要功能 | 安全影响 | |------------------|--------------|-----------------------------------|--------------------------| | `upstream` | http块 | 定义负载均衡后端服务器组 | 提高系统可用性 | | `server_tokens` | http/server块| 隐藏Nginx版本号 | 减少针对版本漏洞的攻击 | ### 相关问题 1. Nginx负载均衡支持哪些算法?如何配置? 2. 如何为Nginx添加主动健康检查功能? 3. 除了`server_tokens off`,还有哪些提升Nginx安全性的配置? 4. 如何自定义Nginx的错误页面以隐藏所有服务器标识?</think>### Nginx配置中`upstream`模块与`server_tokens off`指令详解 #### 一、`upstream`模块:负载均衡核心 **作用**:定义后端服务器集群,实现请求分发和负载均衡[^1][^2]。 **配置结构**: ```nginx http { upstream backend { # 定义名为backend的服务器组 server 192.168.1.10:8080 weight=5; # 权重分配 server 192.168.1.11:8080; server backup.example.com:8080 backup; # 备用服务器 } server { location / { proxy_pass http://backend; # 请求转发到upstream组 } } } ``` **核心功能**: 1. **负载均衡算法**: - 轮询(默认):按顺序分发请求 - 加权轮询:`weight`参数指定服务器优先级 - IP哈希:`ip_hash`保持同一客户端会话 - 最少连接:`least_conn`选择当前连接最少的服务器 2. **健康检查**(需第三方模块): ```nginx upstream backend { server 192.168.1.10 check interval=3000 rise=2 fall=3; # 每3秒检查,成功2次标记存活,失败3次标记宕机[^3] } ``` 3. **故障转移**: - `backup`参数定义备用服务器 - `max_fails`和`fail_timeout`控制自动剔除故障节点 **应用场景**: - 横向扩展应用服务器 - 高可用集群部署 - 蓝绿发布/金丝雀发布 #### 二、`server_tokens off`指令:安全加固 **作用**:隐藏Nginx版本信息,增强服务器安全性[^1][^4]。 **配置位置**: ```nginx http { server_tokens off; # 全局生效 } server { server_tokens off; # 单虚拟主机生效 } ``` **安全影响对比**: | 配置状态 | 响应头示例 | 安全风险等级 | |----------------|-------------------------------|-------------| | 默认开启 | `Server: nginx/1.18.0` | 高 | | `server_tokens off` | `Server: nginx` | 中 | | 配合其他措施 | 完全移除`Server`头 | 低 | **安全价值**: 1. **防止针对性攻击**:隐藏具体版本号,避免攻击者利用特定版本漏洞 2. **减少信息泄露**:在错误页面(如404/500)中移除版本信息 3. **合规性要求**:满足PCI DSS等安全标准中对服务器信息的隐藏要求 **进阶加固方案**: ```nginx # 完全移除Server响应头(需headers-more模块) more_clear_headers 'Server'; # 自定义错误页面隐藏信息 error_page 404 /custom_404.html; location = /custom_404.html { internal; server_tokens off; } ``` ### 配置关联性 - `upstream`实现**流量分配**,是高性能服务的基石 - `server_tokens off`提供**安全防护**,两者协同保障服务稳定安全 - 生产环境建议同时启用: ```nginx http { upstream app_servers { ... } server_tokens off; server { location / { proxy_pass http://app_servers; } } } ``` ### 相关问题 1. 如何为Nginx upstream配置基于URI的动态路由? 2. 除了`server_tokens off`,还有哪些提升Nginx安全性的关键配置? 3. Nginx负载均衡中如何实现会话保持(session persistence)? 4. 如何验证`server_tokens off`是否生效?有哪些检测工具?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值