当前位置: 首页 > 知识库问答 >
问题:

Google Play和OpenSSL警告消息

谷梁煌
2023-03-14

我刚刚收到一封来自Google play的电子邮件,内容是:

你好

您的一个或多个应用程序运行的OpenSSL版本过低,存在多个安全漏洞。您应该尽快更新OpenSSL。有关OpenSSL中最新安全漏洞的更多信息,请参阅http://www.openssl.org/news/secadv_20140605.txt.

请注意,虽然尚不清楚这些特定问题是否会影响您的应用程序,但存在漏洞的应用程序可能会被视为“危险产品”,并可能从Google Play中删除。

问候,

谷歌游戏团队

©2014 谷歌公司 1600 圆形剧场大路山景城, CA 94043

电子邮件首选项:您已收到此强制性电子邮件服务通知,通知您Google Play帐户的重要变更。

我没有在我的任何应用程序中明确包含OpenSSL。使用 Android NDK 的应用使用的是 NDK 9d(最新)。我使用的唯一外部原生库是 ffmpeg 和 OpenCV 以及一些不包含原生代码的广告库。

OpenSSL还可以包含在哪里导致此警告?

问候,

共有3个答案

尉迟俊能
2023-03-14

我也有这个问题,因为我使用的Facebook SDK版本没有更新。因此,如果你也在使用它,只需尝试使用Facebook SDK v3.21.1的更新版本,这个警告就解决了。

终子昂
2023-03-14

根据Eric Davis在Android Security Discussions邮件列表中对安全警报的回复:您正在使用一个极易受到攻击的OpenSSL版本:

  1. 您可以通过(“$ unzip -p YourApp.apk |确定哪些应用程序正在使用OpenSSL。字符串|grep “OpenSSL””)
  2. 请将 OpenSSL 的所有静态链接版本更新为 1.0.1h、1.0.0m 或 0.9.8za。(jww注意:随着OpenSSL新版本的发布,此版本将随着时间的推移而变化)。
  3. 如果您使用的是捆绑OpenSSL的第三方库,请通知第三方并与他们一起解决此问题。

收到此消息时,应更新正在使用的 NDK 和 IDE。我看过一些版本的 NDK 报告,包括下层标头。我还怀疑您使用的IDE可能提供下层OpenSSL版本(我不在Android上使用IDE,所以我没有遇到过)。

如果您没有直接使用OpenSSL,那么SDK正在提供易受攻击的OpenSSL版本。在这种情况下,您应该更新您的SDK。如果您需要在SDK中定位底层OpenSSL,请参阅如何检查哪些依赖导致OpenSSL漏洞。

谷歌还提供了更新您的安全提供商以防止SSL漏洞,但我怀疑它仍然会触发该消息,因为它似乎是一个基本的字符串搜索。

更新所有内容通常比试图找出谁在提供OpenSSL的下层版本更容易。在花时间确定谁在提供它之后,您的可操作项是相同的:更新 SDK。那么为什么要在上面浪费时间呢?只需更新所有这些并享受其他错误修复即可。

尽管如此,仍有一些悬而未决的问题:如果使用libcrypto(例如(RAND_bytes )中的加密,而不是

爱花蜂
2023-03-14

我编写了一个bash脚本,它将显示您的应用程序中静态链接的任何内容的OpenSSL版本,以及是否包含TLS心跳方法。

这对我扔给它的几个APK有效。OpenSSL版本字符串是专门提取的,带有版本号和日期。如果Google标记了APK,但找不到它,请将egrep命令中的OpenSSL正则表达式放宽为“OpenSSL”,看看这是怎么回事。

将以下内容放入文件中,例如testopenssl.sh

用法:./testopenssl.shAPK_File

#!/bin/bash
sslworkdir="ssl_work_dir"
if [ ! -d $sslworkdir ]; then
  mkdir $sslworkdir
fi
unzip -q "$1" -d $sslworkdir
#Set delimiter to ignore spaces
IFS=$'\r\n'
#Create an array of OpenSSL version strings
opensslarr=($(egrep --binary-files=text -o -R -e "OpenSSL\s\d+\.\d+\.\d+\w+\s\d+\s\w+\s\d+" $sslworkdir/*))
#Stackoverflow syntax highlight fix closing 'block comment' */
if [ ${#opensslarr[@]} -gt 0 ]; then
    echo "Found OpenSSL versions"
    printf "%s\n" "${opensslarr[@]}"
    heartbeatarr=($(grep -R -E "(tls1_process_heartbeat|dtls1_process_heartbeat|dtls1_heartbeat|tls1_hearbeat)" $sslworkdir/*))
    #Stackoverflow syntax highlight fix closing 'block comment' */
    if [ ${#heartbeatarr[@]} -gt 0 ]; then
        echo "Files that contains heartbeat methods:"
    printf "%s\n" "${heartbeatarr[@]}"
    else
        echo "No libraries contain heartbeat methods"
    fi
else
    echo "Did not find OpenSSL"
fi
rm -rf $sslworkdir
 类似资料:
  • 当我尝试通过在命令提示符下键入“ipython”从Linux shell执行“ipython”时,它会给我以下消息- 处理/home/user\u name/的第1行时出错。local/lib/python3.6/site-packages/matplotlib-2.2.3-py3.6-nspkg。pth: 回溯(最后一次调用):文件“/usr/lib/python3.6/site.py”,第17

  • 我们一直在开发游戏Cocos2DX,我们收到了谷歌女巫的警告: 本邮件末尾列出的您的应用程序使用的OpenSSL版本包含一个或多个安全漏洞。请尽快将您的应用迁移到OpenSSL 1.02f/1.01r或更高版本,并增加升级后的APK的版本号。从2016年7月11日开始,Google Play将阻止发布任何使用旧版本OpenSSL的新应用或更新。如果您使用捆绑了OpenSSL的第三方库,您需要将其升

  • 问题内容: 我正在验证器中发出很多警告,并且我想抑制stdout中的所有内容,除非提供给的消息。 即,现在我看到了: 我想看看这个: 编辑2: 覆盖工作: 问题答案: 具有您自己的自定义功能的Monkeypatch 。

  • 运行Websphere App server V8.5 Liberty配置文件。我找不到任何可以解决这些警告的帮助。我在Eclipse上。 [警告]CWWKC0022W:[com.ibm.ws.anno.info.internal.ClassInfoCache@957735840]对类[java.lang.Object]的扫描导致异常。消息是:[Class[java.lang.object]fro

  • 我使用hikaricp作为我的数据库连接池。当我完成我的SQL语句时,我将关闭连接,在连接上调用关闭,我相信您应该将连接代理返回到池。然而,我看到以下警告(不是错误)消息,我不得不怀疑这是否是一个需要解决的问题,因为我没有正确清理我的连接资源。我不是使用资源尝试,而是使用尝试捕获最后(我在最后关闭连接

  • 如果提到经常被开发者忽略的特性,那应该就是动态输出错误和提醒的功能了。事实上,Sass 自带三条自定义指令从标准输出系统(CLI,编译程序……)中打印内容: @debug; @warn; @error. 先让我们把 @debug 放一边,毕竟它主要是用作调试 SassScript,而这并不是我们的重点。然后我们就剩下了相互间没有明显差异的 @warn 和 @error,唯一的不同是其中一个可以中断