在Android Signed apk中响应本机安全问题。 2个问题:1)应用创建临时文件&2)使用TCP套接字)

时间:2018-12-04 16:10:01

标签: react-native tcp

环境 作业系统: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中的安全问题,并且遇到了以下安全问题:

  1. App创建一个临时文件: 您需要解决此问题,因为:

敏感数据可能会写入临时文件。 您可以通过更改代码来解决此问题。

避免创建临时文件。 常见弱点枚举

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); }
  1. 检测到TCP套接字使用情况

    您需要解决此问题,因为: TCP套接字需要加密,否则可能容易受到以下攻击机制的影响:DoS攻击,重播攻击,中间人(MITM)攻击,窃听和随后的模拟。强烈建议使用TLS或其他方法来保护您的连接。 常见弱点枚举 CWE-941 —该软件创建了一个通信通道来发起对演员的外发请求,但是它没有正确指定该演员的预期目的地。 可以在CWE网站上查看更多信息

    符合PCI。

    此应用可能违反了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;
    

    请提出我们如何解决这些问题的建议。

    谢谢

0 个答案:

没有答案