Реагировать на собственные проблемы безопасности в Android Подпись apk.2 проблемы: 1) приложение создает временный файл и 2) используется сокет TCP) - PullRequest
0 голосов
/ 04 декабря 2018

Среда ОС: macOS High Sierra 10.13.4 Узел: 10.1.0 Пряжа: Не найдено npm: 5.6.0 Сторож: 4.9.0 Xcode: Xcode 9.3.1 Версия сборки 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. Приложение создает временнуюfile: Вам необходимо это исправить, потому что:

Конфиденциальные данные могут быть записаны во временный файл.Вы можете исправить это, изменив это в своем коде.

Избегайте создания временных файлов.Перечисление общей слабости

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.

Это приложение может нарушать 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;

Пожалуйста, предложите, как мы можем решить эти проблемы.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...