Perfil Mundial de Seguridad Cibernética de Costa Rica

flag

Buenas para todas y todos, se han preguntado que perfil de seguridad cibernética tiene nuestro país a nivel mundial, es decir: ¿Como nos visualizamos en el mundo en la seguridad cibernética?

Siendo nuestro país miembros de las Naciones Unidas (ONU) somos perfilados por “La Unión Internacional de Telecomunicaciones (UIT) organismo especializado de las Naciones Unidas (ONU) encargado de las cuestiones que afectan Tecnologías de la información y la comunicación” este organismo proporciona un perfil con una visión general de los niveles de desarrollo de la seguridad cibernética de cada países miembro sobre la base de los cinco pilares del Programa Global de Seguridad Cibernética, Medidas Técnicas, Medidas de Organización, Capacitación y Cooperación. También se cubre la información sobre la protección de niños en línea, una iniciativa clave de la UIT.

Les comparto el link: Perfil de Costa Rica

Saludos, Comparte y deja tu comentario.

 

 

 

 

Advertisements

Convenio de Budapest sobre Ciberdelincuencia en Costa Rica.

ciberdelinciencia.jpeg

Se aplaude la acción de la Asamblea Legislativa de Costa Rica, al firmar la aprobación al Convenio de Budapest sobre Ciberdelincuencia (Ley Nª 9452 publicada el pasado 3 julio por la Gaceta)

Se trata de un Tratado Internacional elaborado por el marco del Consejo de Europa es abierto a la adhesión a países no miembros de la Unión Europea. Costa Rica seria el país numero 56 al ratificar el convenio.

Con este convenio se complementa la ley actual 9048 de Delitos Informáticos y conexos del titulo VI del Código Penal para luchar contra la ciberdelincuencia.

Continuamos avanzando, Saludos.

Desarrollo de Software Seguro

codes.jpeg

Saludos para todas y todos, se habla mucho de software no seguro y vulnerable pero con que contamos para hacer mejor nuestro software;ayer conversando con un colega sobre desarrollo de software seguro surgió la siguiente lista de algunos recursos sobre el tema que me gustarías compartirles en esta entrada:

Concepto:

  • S-SDLC (Secure System Development Life Cycle)

Modelos Existentes S-SDLC:

  • Microsoft Trustworthy Computing SDL
  • OWASP CLASP (Comprehensive, Lightweight Application Security Process)
  • OWASP Software Assurance Maturity Model (SAMM)

Estándares:

  • ISO 27034
  • NIST 800-64

Buenas Practicas de Código Seguro:

Guias de Programación (Recomendaciones de Seguridad)

Tenemos material de sobra para hacer nuestro software mas seguro, si conoces mas sobre temas comparte tu comentario. Recuerda “el conocimiento nos hace libres”.

Saludos.

String vrs SecureString

Recomendación de Seguridad para las aplicaciones en .Net, para proteger de ataques de “RAM Scraping Attack” a aplicaciones .NET

“RAM Scraping Attack”: se entiende realizar un “raspado” en la memoria RAM en busca de datos en este caso “cadenas de texto” que pueden representar datos confidenciales.

A continuación un cuadro de resumen con las diferencias se “String vrs SecureString”

String SecureString
  • Representa texto como una secuencia de unidades de código UTF-16.
  • Una cadena es una colección secuencial de caracteres que se utiliza para representar texto.
  • Representa el texto que debe mantenerse confidencial.
  • String crea varios intermedios en la memoria.

 

  • SecureString crea sólo una instancia única en memoria.
  • La recolección de basura de objetos String no es determinista. Debido a que su memoria no está fijada, el recolector de basura realizará copias adicionales de valores de String al mover y compactar memoria.
  • La memoria asignada al objeto SecureString está fijada.
  • La clase de String es inmutable y, cuando ya no se necesita, no se puede planificar programáticamente para la recolección de basura; Es decir, la instancia es de sólo lectura después de que se crea, y no es posible predecir cuándo se eliminará la instancia de la memoria del equipo.
  • Un objeto String contiene información confidencial como una contraseña, un número de tarjeta de crédito o datos personales, existe el riesgo de que se revele la información después de que se utilice porque su aplicación no puede eliminar los datos de la memoria del equipo.
  • Un objeto SecureString se  realiza la eliminación de la memoria del equipo cuando ya no se necesite ya sea por su aplicación que llama al método Dispose o por el recolector de basura de .NET Framework.

Prueba de Concepto

Se realiza un programa muy sencillo llamado “SecureStrings.exe”, de consola en el lenguaje C# la función del programa es capturar una cadena de texto ingresada por el usuario y la procesa  en String o SecureString y luego mostrarla en pantalla, la finalidad de este programa es demostrar el uso, ventajas y desventajas de “String o SecureString,”

Gestionar una cadena de texto por medio de un String, realizando el volcado de memoria respectivo se logra encontrar la cadena ingresada.

Código Fuente (C#):

String1.png

Ejecución del Programa:

String2.png

String3.png

Volcado de memoria del Programa “SecureStrings.exe”, en la siguiente imagen se logra identificar la cadena de texto “secreta” que fue ingresada.

String4.png

Gestionar una cadena de texto por medio de un SecureString, realizando el volcado de memoria respectivo no se logra encontrar la cadena ingresada.

Código Fuente (C#):

SS1.png

Ejecución del Programa:

SS2.png

SS3.png

Volcado de memoria del Programa “SecureStrings.exe”, en la siguiente imagen no se logra identificar la cadena de texto “secreta” que fue ingresada.

SS4.png

Conclusiones:

  • Utilizar SecureString es más seguro que utilizar String, aún más seguro si se implementa alguna medida criptográfica al contenido de SecureString.
  • SecureString brinda medida manuales (Dispose) o automáticas (recolector de basura de .NET Framework) para eliminar rastros en la memoria.

Referencias

https://msdn.microsoft.com/es-es/library/system.security.securestring(v=vs.110).aspx

 

Petya o NoPetya este es el dilema!

Buenos días en esta entrega realice un cuadro resumen de los datos actuales del ransoware actual “Petya o NoPetya”, esto cuadro resumen es realizado de una recopilación de datos de Internet a la fecha de publicación de esta entrega.

Nombre WannaCry2, “variante de Petya”, NotPetya, “Schroedinger’s Pet(ya)” llamado así por Kaspersky, Petia, Petrwrap y exPetr
Familia Petya (sea Pteya.A, Petya.D, o PetrWrap),

WannaCry (que no lo es)

Ransom: Win32 / Petia

Países Afectados 64 países, entre ellos Ucrania, Rusia, Polonia, Italia, Bélgica, Brasil, Alemania, Rusia y los Estados Unidos.
Tipo Este tiene capacidades de gusanos, lo que permite que se mueva lateralmente a través de las redes infectadas.
Vectores de Ataque Vector de infección una campaña de correo de phishing en que se indica instalar una actualización de una versión troyanizadas de este software de contabilidad de la suite Médoc (empresa ucraniana).

 

Método Propagación Puede estar propagando a través de la EternalBlue exploit utiliza el exploit SMB únicamente en parte de la infección, haciendo uso de MimiKatz para la extracción de credenciales del proceso lsass.exe, y WMIC o PSExec para el movimiento lateral.
Funcionamiento El cifrado del sistema no se produce de manera inmediata, sino que espera un intervalo aleatorio entre diez y sesenta minutos para el reinicio del sistema, programado mediante schtasks y shutdown.exe. Tras el reinicio se cifra la tabla MFT en las particiones NTFS, sobreescribiendo de ese modo el MBR con un loader donde se incluye la nota del ransomware.

 

Extensiones Cifradas
.3 ds .7z Accdb .ai
.áspid .aspx .avhd .espalda
.bak .do .cfg .conf
.cpp .cs .ctl .dbf
.disco .djvu .doc .docx
.dwg .eml .fdb .gz
.marido .hdd .kdbx .correo
.mdb .msg nrg .ora
.ost .óvulo .ovf .pdf
.php .pmf .ppt .pptx
Pst .pvi .py .pyc
.rar .rtf .sln .sql
.alquitrán .vbox .vbs .vcb
.vdi .vfd .vmc vmdk
.vmsd .vmx .vsdx .vsv
.trabajo .xls .xlsx .xvd
.cremallera      
Forma de Pago Solicitan 300 dólares de rescate en bitcoin. (Teniendo actualmente 45 transacciones)

Seguimiento de Pagos:

http://blockchain.info/address/1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX

 

Contramedidas ·         Actualización de todos los parches de seguridad pendientes.

·         Mantener los antivirus y sistemas de seguridad actualizados.

·         Utilice un usuario sin privilegios en trabajo diario, usuario con permisos de administrador pera mantenimiento de sistemas.

·         No reutilizar contraseñas para diferentes servicios, y no compartir contraseñas entre varios usuarios.

·         Utilizar la función de AppLocker que desactiva la ejecución de un archivo llamado perfc.dat y la utilidad PSExec de Sysinternals Suite.

·         Instala todas las actualizaciones de seguridad para Windows. La que soluciona bugs explotados por EternalBlue.

·         Como una acción prioritaria la prevención, actualizar cualquier sistema con  MS17-010  (https://technet.microsoft.com/library/security/MS17-010), si es que aún no contienen el parche.

 

Solución Preventiva (No Validada) Creación de ficheros: C:\Windows\perfc, perfc.dll, perfc.dat

 

Recuperar los archivos ·  El virus cifra los archivos luego del reboot de la PC, si un sistema se afectó se puede apagar y no volver encender si la maquina enciende el proceso de cifrado inicia. Se podría utilizar un LiveCD para recuperar los archivos

·   Utilizar la herramienta llamada (gratuita) Petya Sector Extractor.

Imagen de referencia:

petya

Referencias:

 

 

Cifrado con SQLite

Esta vez les traigo un cuadro resumen de wrappers utilizados para cifrar SQLite en las plataformas de .Net y Java (Android). Para iniciar es importante tener presente en SQLite ¿que se deseamos cifrar/proteger?, contenido, estructura o ambos.

  1. Contenido: el dato almacenado dentro de las filas de la base de datos
  2. Estructura: la estructura de la base de datos (tablas, columna, tipo, etc.).

Para implementar cifrado en SQLite es necesario un componente o envoltura (Wrapper) para utilizarlos en plataformas de desarrollo de software, a continuación se presenta un cuatro resumen de envolturas utilizadas por la comunidad de Internet,

Nota: Todas las opciones del cuadro resumen implementan cifrado de estructura y contenido.

Nombre

Descripción

Java

.Net

Licencia

Referencias

Microsoft.Data.Sqlite

Implementaciones de SQLite de las interfaces System.Data.Common.

X

Licencia Apache

http://www.apache.org/licenses/LICENSE-2.0

Oficial:

https://github.com/aspnet/Microsoft.Data.Sqlite

https://www.nuget.org/packages/Microsoft.Data.Sqlite/

System.Data.SQLite

Utiliza su propia implementación de cifrado basada en un cifrado RSA de 128 bits (utilizando la API Crypto de Windows).

Esto no permitirá que ningún editor de GUI vea sus datos. SQLite versión 3

Ejemplo de Código:

SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test.db3”);

cnn.Open();

cnn.ChangePassword

(“mypassword”);

cnn.Close();

Cifrado que se puede utilizar especificando Password(o HexPassword)

X

Dominio público

Oficial:

https://system.data.sqlite.org


https://system.data.sqlite.org/index.html/doc/trunk/www/features.wiki

 

SEE(SQLite Encryption Extension)

Es un add-on a la versión de dominio público de SQLite que permite a una aplicación leer y escribir archivos de base de datos cifrados. Se admiten cuatro algoritmos de encriptación diferentes:

  • RC4

  • AES-128 en modo OFB

  • AES-128 en modo CCM

  • AES-256 en modo OFB

C.P

C.P

El costo de una licencia perpetua de código fuente para SEE es de US $ 2000. 

Oficial:

http://www.hwaci.com/sw/sqlite/see.html

SQLiteCrypt

La versión actual de SQLiteCrypt se basa en SQLite 3.13.

SQLiteCrypt es un complemento a la versión de dominio público de SQLite que añade soporte de cifrado AES 256 transparente para SQLite.

DotConnect para SQLite soporta totalmente la conexión a bases de datos cifradas SQLiteCrypt, sin embargo, no proporciona la propia extensión SQLiteCrypt. 

Para usar el cifrado de SQLiteCrypt necesitas comprar SQLiteCrypt por separado.

Compra de una licencia u Open Source

Precio actual de uno binario plataforma es US $ 128

Oficial:

http://sqlite-crypt.com/download.htm

http://sqlite-crypt.com/

http://sqlite-crypt.com/documentation.htm

WxSQLite

es un contenedor (wrapper) de C ++ alrededor de la base de datos SQLite 3.x de dominio público y está específicamente diseñado para su uso en programas basados ​​en la biblioteca wxWidgets.

C.P

C.P

Open Source

Oficial:

https://github.com/utelle/wxsqlite3

SQLCipher

es una alternativa de código abierto para SEE, es una extensión SQLite que proporciona cifrado AES de 256 bits transparente de los archivos de base de datos,

Utiliza el libcrypto de openSSL para implementar. agrega cifrado de base de datos completo

Compra de una licencia $499 por desarrollador u Open Source (Solo Android)

Oficial:
https://www.zetetic.net/sqlcipher/
https://github.com/sqlcipher/sqlcipher


Botansqlite3

Códec de cifrado Sqlite3 para permitir el cifrado completo de la base de datos utilizando los algoritmos soportados por Botan.

C.P

C.P

Open Source

Código: https://github.com/OlivierJG/botansqlite3

SQLiteCrypto

es la manera más fácil para cifrar base de datos SQLite

por AES-256 y SHA-256 
es una API completa del código fuente escrito en Java para bases de datos de Android SQLite que proporciona transparente cifrado AES de 256 bits de los campos de base de datos, los campos se cifran antes de escribirse disco y se descifran cuando se leen de atrás.

X

Compra de una licencia.

Oficial:

http://www.andbrain.com/sqlitecrypto-api/

Nota: C.P (Compilación Propia), mas información de cada uno de estos wrapper visitar la columna de referencias.

Alternativas de cifrado únicamente de contenido de la base de datos SQLite:

  • Debe implementarse un algoritmo criptográfico, para cifrar/descifrar los datos que permitan identificar (anonimizar) un elemento en particular.


Conclusiones:

  • Entre los wrappers más recomendados o mencionados en la comunidad de Internet se encuentran: SEE(SQLite Encryption Extension),SQLiteCrypt, y SQLCipher
  • Entre los wrappers SEE (SQLite Encryption Extension), Botansqlite3 y WxSQLite implican más investigación para ser implementados en ambas plataformas (.NET y Java), ya que implica compilar el wrapper o envoltura para cada plataforma, es decir, descargar código fuente y compilarlo.
  • El wrapper SQLiteCrypt es una opción OpenSource, soportada para ambas plataformas (.NET y Java) al cual requiere invertirse más tiempo de investigación o pruebas.

Glosario:

  • Wrappers: “es un programa que controla el acceso a un segundo programa. El Wrapper literalmente cubre la identidad de este segundo programa, obteniendo con esto un más alto nivel de seguridad. Estos programas nacieron por la necesidad de modificar el comportamiento del sistema operativo sin tener que modificar su funcionamiento.” Ref.: http://www.segu-info.com.ar/proteccion/proteccion.htm

Saludos, Comenta y Comparte.

 

Medidas preventivas antes Ransoware WannaCrypt

Buenas hoy les traigo algunas medidas preventivas para luchar contra el Ransoware Wannacrypt, una imagen graciosa primeramente:gracioso.jpgAlgunas medidas de preventivas ante el WannaCript:

1. La principal de las medidas es aplica actualizaciones al sistema operativo, referente con el Microsoft Security Bulletin MS17-010.

Mas detalle: https://technet.microsoft.com/en-us/library/security/ms-010.aspx

2. Mantener actualizado su antivirus, ya que gracias a algunos investigadores de seguridad se ha logrado obtener muestras del Ransoware, permitiendo que las casas de antivirus logren generar la firma de la muestra maliciosa para ser filtrado en los antivirus de los usuarios.

3.Deja de utilizar el protocolo SMBv1 ya que este Ransoware “Wannacrypt” se aprovecha de una vulnerabilidad en esta versión de protocolo SMBv1.

Para deshabilitar dicho protocolo se debe:

Ingresar a Panel de Control-> Programas y características -> Activar o desactivar las características de Windows -> “Compatibilidad con el protocolo para compartir archivos SMB 1.0/CIFS” desactivar dicha opción.

compatibilidad.png

IMPORTANTE: Dicha opción es de  Windows XP y Windows Server 2003 ellas utilizas exclusivamente la versión de SMBv1, otros sistemas operativos superiores tienen dicha opción activada por defecto. Esta utilidad funciona cuando tenemos pc’s con (Windows XP o Windows Server 2003) y se requiere compartir recursos entre pc’s con (Versiones de Windows actuales) esta función es un puente entre versiones de sistemas operativos para el protocolo SMB v1.

4. Aplicar un solución alternativa o “workaround” se debe aplicar desde powershell:

set-smbserverconfiguration -EnableSMB1Protocol $false

workaround.png

Saludos, comparte y comenta!