环境 作业系统:macOS High Sierra 10.13.4 节点:10.1.0 纱线:未找到 npm:5.6.0 守望者:4.9.0 Xcode:Xcode 9.3.1 Build版本9E501 Android Studio:3.2 AI-181.5540.7.32.5014246
Packages: (wanted => installed)
react: 16.3.1 => 16.3.1
react-native: 0.55.4 => 0.55.4
说明 我们正在使用Codified Security工具来查找已签名的apk中的安全问题,并且遇到了以下安全问题:
敏感数据可能会写入临时文件。 您可以通过更改代码来解决此问题。
避免创建临时文件。 常见弱点枚举
CWE-295-软件无法验证或错误地验证了以下内容: 证书。
在以下位置发现了问题
com/facebook/cache/disk/DefaultDiskStorage.java
try { paramString = new InserterImpl(paramString, paramObject.createTempFile(localFile)); return paramString; localStringBuilder.append(resourceId); localStringBuilder.append("."); return File.createTempFile(localStringBuilder.toString(), ".tmp", paramFile); }
com/facebook/react/modules/camera/ImageEditingManager.java
paramContext = localFile; } return File.createTempFile("ReactNative_cropped_image_", getFileExtensionForType(paramString), paramContext); } if ((localObject != null) && (! ((String)localObject).isEmpty())) { File localFile = ImageEditingManager.createTempFile(mContext, (String)localObject); ImageEditingManager.writeCompressedBitmapToFile(paramVarArgs, (String)localObject, localFile);
com/google/android/gms/common/data/BitmapTeleporter.java
try { localFile = File.createTempFile("teleporter", ".tmp", zali); }
检测到TCP套接字使用情况
您需要解决此问题,因为: TCP套接字需要加密,否则可能容易受到以下攻击机制的影响:DoS攻击,重播攻击,中间人(MITM)攻击,窃听和随后的模拟。强烈建议使用TLS或其他方法来保护您的连接。 常见弱点枚举 CWE-941 —该软件创建了一个通信通道来发起对演员的外发请求,但是它没有正确指定该演员的预期目的地。 可以在CWE网站上查看更多信息
此应用可能违反了PCI-DSS 2.2.3、2.3和4.1。 SSL和早期TLS(低于1.2版)不被视为强加密技术。 符合HIPAA。 传输安全 此应用可能违反了HIPAA加密要求。 SSL和早期TLS(低于1.2版)不被视为强加密技术。 符合GDPR。 此应用可能违反了GDPR加密要求。 SSL和早期TLS(低于1.2版)不被视为强加密技术。 符合OWASP。 OWASP M3:传输层保护不足 此应用可能违反了OWASP加密要求。
SSL和早期TLS(低于1.2版)不被视为强密码。 在以下位置发现了问题:
okio/Okio.java
import java.io.InterruptedIOException; import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketTimeoutException;
okhttp3/Connection.java
package okhttp3; import java.net.Socket;
okhttp3/ConnectionPool.java
import java.lang.ref.Reference; import java.net.Socket;
import java.util.ArrayDeque;
okhttp3/OkHttpClient.java
import java.net.Proxy;
import java.net.ProxySelector; import java.net.Socket;
import java.net.UnknownHostException
okhttp3/interal/Internal.java
import java.net.MalformedURLException;
import java.net.Socket;
import java.net.UnknownHostException;
okhttp3/internal/Util.java
import java.lang.reflect.Array; import java.net.IDN;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.IDN;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
okhttp3/internal/connection/RealConnection.java
import java.net.Proxy; import java.net.Proxy.Type;
import java.net.Socket;
import java.net.SocketException
Object localObject2 = route.address();
if ((((Proxy)localObject1).type() != Proxy.Type.DIRECT)
&& (((Proxy)localObject1).type() != Proxy.Type.HTTP)) {
localObject1 = new Socket((Proxy)localObject1);
} else {
okhttp3/internal/connection/StreamAllocation.java
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
import java.net.Socket;
import java.util.List;
okhttp3/internal/http2/Http2Connection.java
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Collection;
okhttp3/internal/platform/AndroidPlatform.java
import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.security.cert.Certificate;
okhttp3/internal/platform/Platform.java
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
okhttp3/internal/ws/RealWebSocket.java
import java.io.IOException;
import java.net.ProtocolException;
import java.net.Socket;
import java.util.ArrayDeque;
com/facebook/react/modules/network/TLSSocketFactory.java
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
请提出我们如何解决这些问题的建议。
谢谢