Evolución de Tecnología Operacional

Body

Mucha de la Tecnología Operacional actual evolucionó desde la inserción de capacidades de Tecnologías de Información en sistemas físicos existentes, frecuentemente reemplazando o complementando los mecanismos para control físico. Por ejemplo, los controles digitales integrados reemplazaron los controles mecánicos analógicos en máquinas y motores giratorios. Las mejoras en costos y desempeño han fomentado esta evolución, generando como resultado muchas de las tecnologías “inteligentes” actuales, como la red eléctrica inteligente, el transporte inteligente, los edificios inteligentes, la fabricación inteligente y el Internet de las cosas. Si bien esto aumenta la conectividad y la criticidad de estos sistemas, también crea una mayor necesidad de su adaptabilidad, resiliencia, seguridad, y protección.

La ingeniería en Tecnología Operacional continúa brindando nuevas capacidades mientras mantiene largos ciclos de vida típicos de estos sistemas. La introducción de capacidades en Tecnología de Información para sistemas físicos presenta un comportamiento emergente con implicaciones de seguridad. Los modelos y análisis de ingeniería están evolucionando para abordar estas propiedades emergentes, incluidas las interdependencias de seguridad, protección, privacidad, e impacto ambiental.

Fuentes:

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-82r3…

Descripción General de Tecnología Operacional

Body

La Tecnología Operacional (OT) abarca una amplio rango de sistemas y dispositivos programables los cuales interactúan con el entorno físico (o gestionan dispositivos los cuales interactúan con el entorno físico). Estos sistemas y dispositivos detectan o provocan un cambio directo a través de la vigilancia y/o control de dispositivos, procesos, y eventos. Ejemplos incluyen sistemas para control industrial, sistemas para automatización de edificios, sistemas para transporte, sistemas para control de acceso físico, sistemas para vigilancia del entorno físico, y sistemas para medición del entorno físico.

Los sistemas OT consisten de combinaciones para componentes de control (por ejemplo eléctricos, mecánicos, hidráulicos, neumáticos) los cuales actúan juntos para lograr un propósito (por ejemplo fabricación, transporte de materia, o energía). La parte del sistema ocupándose principalmente de producir un resultado se denomina proceso. La parte del sistema ocupándose principalmente de mantener la conformidad con las especificaciones se denomina controlador (o control). Los componentes para control del sistema incluyen la especificación de la salida o rendimiento deseado. El sistema se puede configurar de una de tres maneras:

Bucle abierto: La salida se controla mediante ajustes establecidos.

Bucle cerrado: La salida afecta a la entrada de tal manera se mantiene el propósito de control deseado.

Bucle manual: El sistema está completamente controlado por humanos.

Esta sección proporciona una descripción general de varios tipos de sistemas OT comunes, incluido el control para supervisión y adquisición de datos (SCADA), sistemas para control distribuido (DCS), controladores lógicos programables (PLC), sistemas para automatización de edificios (BAS), sistemas para control de acceso físico (PACS), e Internet industrial de las cosas (IIoT). Los diagramas representan la topología de la red, conexiones, componentes, y protocolos normalmente utilizados para cada tipo de sistema. Estos ejemplos sólo intentan identificar conceptos de topología nocionales. Las implementaciones reales de estos tipos de sistemas para control pueden ser híbridos que desdibujan las líneas entre estos. Tener en consideración los diagramas de esta sección no se centran en asegurar OT. La arquitectura de seguridad y los controles de seguridad se analizan en la Sección 5 y el Apéndice F de este documento, respectivamente.

Fuentes:

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-82r3…

Descargar Muestras de Malware desde MalwareBazaar

Body

MalwareBazaar es un proyecto de abuse.ch, cuyo propósito es compartir muestras de malware con la comunidad relacionada a seguridad de la información, proveedores de antivirus, y proveedores de inteligencia sobre amenazas.

¿Por qué MalwareBazaar?

En el área de las investigaciones en seguridad de TI, se utiliza en gran medida la información pública disponible (OSINT), con el propósito de detectar nuevas ciber amenazas. OSINT es un gran recurso para esta inteligencia sobre amenazas. Sin embargo frecuentemente es probable enfrentarte con un problema simple pero grave: las muestras de malware a las cuales se referencia en publicaciones de blogs, documentos técnicos, o mencionadas en redes sociales como Twitter (X) no suelen ser fácilmente posibles de ser accedidas. Debe registrarse en millones de diferentes motores de escaneo antivirus en línea, entornos sandbox, o bases de datos de malware, para finalmente obtener la muestra de malware necesarias para realizar el análisis. Esto está empeorando: pues algunas de estas plataformas vienen con restricciones de descarga (solo se puede descargar una cantidad específica de muestras de malware por día), otras plataformas solo están disponibles para usuarios quienes paguen. Esto puede ser un gran inconveniente para realizar un trabajo diario para muchos investigadores de seguridad en TI..

La motivación para publicsar MalwareBazaar, es tener un lugar donde los investigadores en seguridad de TI pueden compartir fácilmente muestras de malware con la comunidad, sin tener las restricciones de descarga, ni deber pagar costosas tarifas de suscripción.

La manera más simple de obtener (descargar) una muestra de malware es a través de su sitio web.

Habiendo ingresado al sitio web de MalwareBazaar, ingresar a la sección “Browse”

El buscador tiene una sintaxis para realizar búsquedas; como por ejemplo; md5, sha256, signature, tag, file_type, user, clamav, yara, serial_number, issuer_cn, imphash, tlsh, telfhash, gimphash, dhash_icon.

Para el siguiente ejemplo se utiliza “tag”, para buscar por etiquetas, seguido del texto “ransomware”, para buscar muestras de ransomware.

La descarga correspondiente a la muestra de malware requerida, se realiza haciendo clic en el ícono correspondiente a la columna de nombre “DL”.

En la página donde ya es factible descargar la muestra de malware, mediante el botón de nombre “Download”, se presenta una oportuna advertencia.

¡Precaución!

Está a punto de descargar una muestra de malware. Al hacer clic en "descargar", declara haber comprendido lo cual está haciendo, y MalwareBazaar no se hace responsable de ningún daño causado al descargar esta muestra de malware.

Así mismo indica la contraseña es: infected

Una vez descargado el archivo se procede a descomprimirlo. Luego de lo cual ya es posible analizar la muestra de malware.

Resulta interesante al momento de realizar la presente publicación, un antivirus como clamAV no lo detecta como malicioso. Un motivo para esto es el malware se publicó hace dos días, dado el hecho se considera un malware “reciente”, como consecuencia de esto clamAV no puede aún detectarlo.

MalwareBazaar incluye un API, lo cual permite integrar inteligencia de amenazas desde MalwareBazaar en un SIEM.

Así mismo en lo referente a la base de datos de MalwareBazaar, se puede obtener información, explorar la base de datos, y encontrar las más recientes adiciones.

También se pueden compartir las muestras de malware con la comunidad, lo cual ayuda a crear una Internet más segura.

Fuentes:

https://bazaar.abuse.ch/

cabextract

Body

cabextract es Software Libre para extraer archivos gabinete (cabinet) Microsoft, también llamados archivos .CAB. Se distribuye bajo la licencia GNU GPL y está basado en la librería portátil LGPL libmspack.

cabextract soporta todas las funciones y formatos de los archivos .CAB de Microsoft, además de los archivos de instalación de Windows CE. También se puede buscar dentro de otros archivos .CAB incorporados.

La opción “--help” proporciona un breve resumen del uso.

$ cabextract --help

Para evaluar la integridad del archivo (realizando el trabajo de extraer los archivos, pero sin guardar los resultados en ningún lugar), se utiliza la opción “-t”. Esto también imprime una suma de comprobación MD5 de cada archivo CAB.

$ cabextract -t sls.cab

Para enumerar o listar los archivos contenidos en el archivo CAB en lugar de extraerlos, utilizar la opción “-l”

$ cabextract -l sls.cab

Para extraer todos los archivos hacia un directorio específico, se define el directorio de salidacon la opción “-d”.

$ cabextract sls.cab -d /tmp/cab_files/

En caso el archivo extraído sea otro archivo CAB, se realiza el mismo procedimiento antes descrito.

$ cabextract /tmp/cab_files/environment.cab /tmp/cab_files2/

Luego de extraídos los archivos estos pueden analizados. En este caso es un archivo en formato XML.

cabextract también puede reparar algunos tipos de archivos dañados. Al utilizar la opción “--fix”, los datos perdidos se reemplazarán con ceros, y cabextract intentará continuar con bloques de datos posteriores, los cuales con suerte no estarán dañados.

Fuentes:

https://www.cabextract.org.uk
https://www.cabextract.org.uk/wince_cab_format/

upx

Body

UPX es un empaquetador ejecutable gratuito, seguro, portátil, ampliable, y de alto rendimiento, para varios formatos ejecutables.

UPX es un compresor avanzado de archivos ejecutables. UPX típicamente reducirá el tamaño de los programas y DLL entre un 50% y un 70%, reduciendo así el espacio en disco, tiempos de carga de la red, tiempos de descarga, y otros costos de distribución y almacenamiento.

Los programas y librerías comprimidos por UPX son completamente autónomos, y se ejecutan exactamente como antes, sin penalización en tiempo de ejecución ni memoria para la mayoría de los formatos compatibles.

UPX soporta un número de diferentes formatos ejecutables, incluyendo programas y DLL Windows, aplicaciones macOS, y ejecutables Linux.

UPX es software libre distribuido bajo los términos de la Licencia Pública General GNU. El código fuente completo está disponible.

UPX puede ser distribuido y utilizado libremente, incluso con aplicaciones comerciales.

Descripción General

Los puntos fuertes de UPX en pocas palabras:

  • Seguro: como UPX está documentado como Fuente Abierta desde hace muchos años, cualquier software relevante de Seguridad/Antivirus, puede mirar dentro de las aplicaciones comprimidas UPX para verificarlas.
  • Excelente relación de compresión: típicamente comprime mejor comparado con Zip, ¡Utilizar UPX para disminuir el tamaño de su distribución!
  • Descompresión muy rápida: más de 500 MB/s en cualquier máquina razonablemente moderna.
  • Sin sobrecarga de memoria para los ejecutables comprimidos, debido a la descompresión en el lugar
  • Fiable: se puede listar, probar, y descomprimir los ejecutables. Además se mantiene internamente un “checksum”, tanto del archivo comprimido como del descomprimido.
  • Universal: UPX puede empaquetar varios formatos ejecutables, incluidos programas y DLL Windows, aplicaciones macOS y ejecutables Linux.
  • Portátil: UPX está escrito en C++ portátil endian neutral
  • Extensible: debido al diseño de clases es muy fácil agregar nuevos formatos ejecutables o nuevos algoritmos para compresión
  • Libre: UPX se distribuye con el código fuente completo según los términos de la Licencia Pública General GNU v2+; ya sea bajo GPLv2+ puro o (a su elección) bajo GPLv+2 con excepciones y restricciones especiales para garantizar el uso gratuito de todos los binarios, incluidos los programas comerciales, como se indica en el Acuerdo de licencia UPX.

Al ejecutar la herramienta con la opción “-h” se muestra una ayuda bastante detallada.

$ upx -h

La definición para el nivel de comprensión es dictado por “-1” para una compresión más veloz, y un “-9” para una mejor compresión.

$ upx -9 /tmp/rv1.exe

Se resalta el hecho el tamaño del archivo disminuyó. Así mismo al ejecutar el comando “file” sobre el archivo se presenta el texto “UPX compressed.”

Al ejecutar upx con la opción “-t” se prueba el archivo comprimido.

$ upx -t /tmp/rv1.exe

La opción “-d” descomprime el archivo.

$ upx -d /tmp/rv1.exe

También es factible utilizar la opción “-l”, para listar el archivo comprimido.

$ upx -l /tmp/rv1.exe

upx incluye también diversas opciones para afinar la compresión, como también opciones específicas para watcom/le, win32/pe, win64/pe, rtm32/pe, y arm/pe, linux/elf.

Probablemente ahora se comprende la razón del nombre UPX, "Ultimate Packer for eXecutables".

Fuentes:

https://upx.github.io/
https://github.com/upx/upx

TheZoo - Repositorio de Malware

Body

theZoo es un proyecto creado para hacer posible el análisis abierto de malware, y su disponibilidad al público. Dado el proyecto ha encontrado casi todas las versiones de malware difíciles de encontrar de una manera permita su análisis, se decidió recopilarlas todas de una manera accesible y segura. theZoo nació por Yuval tisf Nativ y mantenido ahora por Shahak Shalev.

Descargo de responsabilidad

El propósito de theZoo es permitir el estudio de malware y permitir las personas interesadas en el análisis de malware (o tal vez incluso como parte de su trabajo) tengan acceso hacia malware vivo, analicen las maneras en las cuales operan, y tal vez incluso permitan a personas avanzadas y conocedoras bloquear malware específico dentro de su propio entorno.

Nota: ¡Recordar se trata de malware vivo y peligroso! ¡Están encriptados y bloqueados por una razón! ¡NO deben ser ejecutados a menos se esté absolutamente seguro de lo cual está haciendo! ¡¡¡Deben utilizarse únicamente con fines educativos (¡Es en serio!)!!!

Se recomienda ejecutarlos en una máquina virtual la cual no tenga conexión hacia Internet (o una red virtual interna si es necesario), y sin adiciones de invitados ni equivalentes. Algunos de estos son gusanos y automáticamente intentarán propagarse. Ejecutarlos sin restricciones significa se infectará o a otros con malware peligroso y cruel.

Una vez descargado el archivo zip desde el repositorio oficial, se deben instalar los más recientes requerimientos necesarios.

$ git clone https:// www. github.com/ ytisf/theZoo
$ cd theZoo
$ pip install --user -r requirements.txt

Para ejecutar la consola ejecutar:

$ python theZoo.py

Luego de escribir “YES”, se tiene acceso a la consola.

El comando help permite visualizar los comandos disponibles

mdb #> help

Para buscar por malwares de acuerdo a un filtro se utilizado el comando “search”.

mdb #> search ransomware

El comando “use” selecciona el malware por su correspondiente ID. Así mismo el comando “info”, recolectar información sobre el malware.

mdb #> use 150
mdb #> info

Para descargar el archivo de malware seleccionado se utiliza el comando get.

mdb #> get

Por defecto el archivo se descarga en el directorio “theZoo”. Luego de lo cual se sugiere revisar los archivos conteniendo los hashes, para luego descomprimir el archivo de extensión “zip”, utilizando la respectiva contraseña.

Fuentes:

https://thezoo.morirt.com/
https://github.com/ytisf/theZoo

pdfinfo

Body

Es un extractor de información desde documentos PDF (Portable Document Format). Imprime el contenido del diccionario “Info” (además de alguna otra información útil), desde archivos PDF.

El diccionario “Info” contiene los siguientes valores:

  • Titulo
  • Asunto
  • Palabras clave
  • Autor
  • Creador
  • Productor
  • Fecha de creación
  • Fecha de modificación

Adicionalmente se imprime la siguiente información:

  • Etiquetado (si/no)
  • Formulario (AcroForm / static XFS / dynamic XFA / más)
  • Número de páginas
  • Opción de Encriptado (sí/no)
  • Permisos de copia e impresión (si está encriptado)
  • Tamaño y rotación de la página
  • Tamaño del archivos
  • Optimización (aka linealizado) (si/no)
  • Utiliza Javascript (si/no)
  • Versión PDF
  • Metadatos (solo si es requerido)

Se ejecuta pdfinfo con la opción “-h”, lo cual muestra información sobre el uso de la herramienta

$ pdfinfo -h

Se ejecuta la herramienta únicamente definiendo el nombre del archivo. Lo cual muestra la información del diccionario Info.

$ pdfinfo archivo.pdf

Al ejecutar pdfinfo utilizando la opción “-meta”, se imprimen los metados del documento (XML)

$ pdfinfo -meta archivo.pdf

pdfinfo es parte de proyecto de fuente abierta Xpdf, el cual incluye un visor de archivos PDF, además de una gran colección de herramientas en linea de comando.

Fuentes:

https://www.xpdfreader.com
https://www.xpdfreader.com/pdfinfo-man.html

SciTE

Body

SciTE es un editor de texto basado en SCIntilla. Originalmente creado para demostrar Scintilla, ha crecido hasta convertirse en un editor de utilidad general con funciones para crear y ejecutar programas. Se utiliza mejor para trabajos con configuraciones simples: utilizado para crear programas de prueba y demostración, así como SciTE y Scintilla.

La edición de texto en SciTE funciona de manera similar a la mayoría de editores en Macintosh o Windows, con la característica adicional de estilo de sintaxis automático. SciTE puede contener varios archivos en la memoria al unísono, pero sólo uno será visible. Se pueden seleccionar bloques rectangulares de texto en SciTE manteniendo presionada la tecla Alt en Windows, o la tecla Ctrl en GTK mientras se arrastra el mouse sobre el texto.

Existen dos paneles en SciTE, el panel de edición y el panel de salida. El panel de salida se encuentra en el lado derecho del panel de edición o debajo de este. Inicialmente tiene tamaño cero, pero se puede agrandar arrastrando el divisor entre este y el panel de edición. La acción “Options -> Vertical Split” puede ser utilizado para mover el panel de salida debajo del panel de edición.

SciTE puede ejecutar comandos para compilar o ejecutar archivos fuente, con el resultado de estos comandos dirigida hacia el panel de salida.

Se utiliza la opción “File -> Open…” para abrir un archivo.

Para ejecutar el código fuente, se utiliza la opción “Tools -> Go”

En el panel izquierdo (Panel de Salida) se muestra el resultado de ejecutar el código fuente.

SciTE está instalado en REMnux. El cual es una distribución Linux conteniendo un conjunto de herramientas para ingeniería reverse y análisis de software malicioso.

Fuentes:

https://www.scintilla.org/SciTE.html
https://www.scintilla.org/SciTEDoc.html

wxHexEditor

Body

wxHexEditor no es un editor hexadecimal ordinario, pues también puede trabajar como editor de disco de bajo nivel.

Si se tienen problemas con un disco duro o partición, es factible recuperar datos desde el disco duro o desde la partición, editando sectores en hexadecimal en bruto.

Puede editar sus tablas de particiones o recuperar archivos del sistema de archivos manualmente con la ayuda de wxHexEditor.

O quizás se requiera analizar grandes archivos binarios, particiones, dispositivos... Si se necesita una buena herramienta para ingeniería inversa como un buen editor hexadecimal.

wxHexEditor puede editar particiones o dispositivos de disco HDD/SDD en tamaños en bruto hasta exabytes.

Características

  • Utiliza descriptores de archivos de 64 bits (admite archivos o dispositivos de hasta 2^64 bytes, es decir, algunos exabytes, pero solo ha evaluado con un archivo de 1 PetaByte (todavía)
  • No copia el archivo completo hacia RAM. Esto lo torna rápido, pudiendo abrir archivos (cuyos tamaños son Multi Giga Tera Peta Exabytes)
  • Puede trabajar borrando/insertando bytes en un archivo, más de una vez, sin crear un archivo temporal
  • Puede abrir dispositivos en Linux, Windows o MacOSX
  • Utilización de memoria: actualmente ~25 megabytes mientras se abren varios archivos > ~8 GB
  • Puede operar con archivos a través de cifrado XOR
  • Tiene múltiples vistas para mostrar múltiples archivos al mismo tiempo
  • Tiene soporte desensamblador x86 (a través de la biblioteca udis86 integrada) para “hackear” las cosas algo más rápido
  • Tiene etiquetas coloridas para hacer la ingeniería inversa más fácil y divertida
  • Puede copiar/editar discos y sectores HDD. (Útil para rescatar archivos/particiones a mano)
  • Indicación de sector en dispositivos de disco, también tiene el cuadro de diálogo Ir al sector...
  • Copias formateadas como. Es fácil copiar parte de un archivo en formato HEX para fuente C/C++, fuente ASM, también admite formatos de página HTML, phpBB y Wiki con Etiquetas
  • Soporta la operación solo del editor de texto o hexadecimal. También puede desactivar la región del desplazamiento
  • Soporta colores y formatos personalizables de paneles hexadecimales
  • Permite operaciones para edición de memoria sobre procesos en Linux
  • Comparación de archivos binarios, permite fusionar resultados cercanos
  • Soporta diversas codificaciones, incluidas casi todas las CP de DOS/Windows/MacOS, además de conjuntos de caracteres múltiples como UTF8/16/32, Shift JIS, GBK, EUC_KR...
  • Modos de direccionamiento decimal, hexadecimal, octal y LBA ("Sector+Desplazamiento") (conmutables entre si haciendo clic con el botón derecho del ratón en el panel Desplazamiento)
  • Guardar la selección como una función de archivo volcado para hacer la vida más fácil
  • Funcionalidad "Buscar algunos bytes", para encontrar rápidamente los siguientes bytes significativos en el archivo/disco
  • Funciones para suma de comprobación MD/RIPEMD/SHA/TIGER/HAVAL/CRC/ADLER/GOST/WHRILPOOL/SNEFRU (a través de la biblioteca mhash integrada)
  • Soporte para importar y exportar TAG desde un archivo
  • Escrito con bibliotecas GUI de C++/wxWidgets, pudiendo utilizarse con otros sistemas operativos como Mac OS y Windows como aplicación nativa.

Fuentes:

https://www.wxhexeditor.org/
https://sourceforge.net/projects/wxhexeditor/

Actualizando la Distribución REMnux

Body

A menos se haya instalado REMnux en el modo “addon” o complemento, la distribución deshabilita los mecanismos automáticos de actualización para el sistema operativo Ubuntu. Esto permite controlar como y cuando su sistema REMnux intenta iniciar conexiones de red, y consecuentemente evitar problemas cuando REMnux está en una red aislada.

Para mantener REMnux actualizado, se debe ejecutar el siguiente comando de vez en cuando, como usuario normal, no root, para beneficiarse de las últimas mejoras. Es importante verificar se tenga una conexión hacia Internet

$ remnux upgrade

El anterior comando es la forma de obtener software REMnux más reciente en la mayoría de los casos. Sin embargo, incluso si el comando anterior mostrase "No existen actualizaciones disponibles", aún se pueden actualizar las herramientas. El siguiente comando se asegura de se esté ejecutando las últimas versiones de los paquetes de Debian y módulos de Python instalados, sin agregar ninguna herramienta nueva hacia el sistema:

$remnux update

En resumen, la opción “upgrade” actualiza todas las herramientas y agrega otras nuevas las cuales podrían haberse incorporado hacia la distribución REMnux. El comando “update” es un subconjunto, y actualiza los paquetes Debian y módulos Python existentes.

Anotación: Si está ejecutando la distribución REMnux en una máquina virtual, su sugiere realizar una instantánea antes de actualizar o actualizar la máquina virtual, para de esta manera sea factible volver hacia un buen estado en caso algo saliese fuera de lo normal.

Problemas al actualizar y actualizar la distribución REMnux

En caso se obtuviese un error al realizar los procedimientos antes descritos, primero se sugiere asegurarse de ejecutar el comando como un usuario normal, no root. Además de intentar reiniciar el sistema, e intentar nuevamente el proceso.

Si los problemas persisten, actualice la base de datos de su paquete APT, ejecutando los siguientes comandos, para luego intentar realizar nuevamente el proceso:

$ sudo apt update
$ sudo apt autoremove
$ sudo apt --fix-broken install

Si aún así el problema persiste, diagnostique el problema revisando el archivo de nombre “saltstack.log” ubicado en el directorio de nombre “/var/cache/remnux/cli” en el subdirectorio coincidiendo con la versión de archivos de estado de REMnux instalado. Buscar el archivo de registro por resultados: mensajes falsos y observar las 5 líneas circundantes o las 8 líneas encima de cada mensaje para ver el archivo de estado causante del problema. (grep -i -C 5 'result: false' or grep -i -B 8 'result: false').

Fuentes:

https://docs.remnux.org/install-distro/keep-the-distro-up-to-date
https://docs.remnux.org/behind-the-scenes/technologies/debian-packages