Jupyter Notebook sin instalar y gratis


Colaboratory, también llamado «Colab», permite ejecutar y programar en Python en un navegador con las siguientes ventajas:

  • No requiere configuración
  • Da acceso gratuito a GPUs
  • Permite compartir contenido fácilmente

Colab puede facilita pues  su trabajo, ya sea estudiante, científico de datos o investigador de IA pues como vemos es una palataforma «en la nube » que nos permite  implementar y probar código  sin tener que instalar nada  en nuestro equipo ademas con la certeza de que la plataforma siempres esta actualizada

Los cuadernos de Colab  permiten combinar código ejecutable y texto enriquecido en un mismo documento, además de imágenes, HTML, LaTeX y mucho más. Los cuadernos que creas en Colab se almacenan en su cuenta de Google Drive de modo qu e  puedes compartir sus cuadernos de Colab fácilmente con compañeros de trabajo o amigos, lo que les permite comentarlos o incluso editarlos (consulte más información en Información general sobre Colab).

Colab ademas es una herramienta muy utilizada en la comunidad de aprendizaje automático. Estos son algunos ejemplos de las aplicaciones que tiene Colab:

  •  Dar los primeros pasos con TensorFlow
  •  Desarrollar y entrenar redes neuronales
  •  Experimentar con TPUs
  •  Divulgar datos de investigación sobre IA
  •  Crear tutoriales

 

Primeros pasos

Para crear un cuaderno de Colab, puedes usar el menú Archivo que aparece arriba o bien acceder al enlace para crear un cuaderno de Colab.Los cuadernos de Colab son cuadernos de Jupyter alojados en Colab (puede obtener más información sobre el proyecto Jupyter en  jupyter.org).

 Un cuaderno es una lista de celdas que contienen texto explicativo o código ejecutable y su salida: simplemente tenemos que hacer clic en una celda para seleccionarla.

 Una vez que el botón de la barra de herramientas indique CONECTADO, haga clic en la celda para seleccionarla y ejecutar el contenido de las siguientes maneras:

  • Haga clic en el icono Reproducir en el margen izquierdo de la celda;
  • Escriba Cmd / Ctrl + Enter para ejecutar la celda en su lugar;
  • Escriba Shift + Enter para ejecutar la celda y mover el foco a la siguiente celda (agregando una si no existe ninguna);
  • Escriba Alt + Enter para ejecutar la celda e inserte una nueva celda de código inmediatamente debajo de ella.
  • Hay opciones adicionales para ejecutar algunas o todas las celdas en el menú Runtime.

En las celdas de texto puede hacer doble clic para editar esta celda. Las celdas de texto usan sintaxis  reducida . También puede agregar matemáticas a las celdas de texto usando LaTeX para ser renderizadas por MathJax. Simplemente coloque la declaración dentro de un par de signos $. Por ejemplo, $ \ sqrt {3x-1} + (1 + x) ^ 2 $ se convierte en 3x − 1 −−−−− √ + (1 + x) 2.

 

 Agregar y mover celdas

Puede agregar nuevas celdas usando los botones ** + CÓDIGO ** y ** + TEXTO ** que se muestran cuando se desplaza entre las celdas. Estos botones también se encuentran en la barra de herramientas sobre el cuaderno, donde se pueden usar para agregar una celda debajo de la celda seleccionada actualmente. Puede mover una celda seleccionándola y haciendo clic en ** Celda arriba ** o ** Celda abajo ** en la barra de herramientas superior. Las celdas consecutivas se pueden seleccionar mediante «selección de lazo» arrastrando desde fuera de una celda y a través del grupo. Las celdas no adyacentes se pueden seleccionar simultáneamente haciendo clic en una y luego manteniendo presionada la tecla Ctrl mientras hace clic en otra. De manera similar, usar Shift en lugar de Ctrl seleccionará todas las celdas intermedias.

Alias del sistema Jupyter incluye atajos para operaciones comunes, como ls:

Eso probablemente generó una gran salida. Puede seleccionar la celda y borrar la salida mediante las dos siguintes acciones:

  •  Haciendo clic en el botón borrar salida (x) en la barra de herramientas sobre la celda;
  • Haga clic con el botón derecho en el margen izquierdo del área de salida y seleccione «Borrar salida» en el menú contextual.

Ejecute cualquier otro proceso usando! con interpolación de cadenas de variables de Python, y tenga en cuenta que el resultado se puede asignar a una variable:

Colaboratory comparte la noción de magia de Jupyter. Hay anotaciones abreviadas que cambian la forma en que se ejecuta el texto de una celda. Para obtener más información, consulte la página de magia de Jupyter.

 

Finalizaciones automáticas y exploración de código

Colab proporciona finalizaciones automáticas para explorar atributos de objetos de Python, así como para ver rápidamente cadenas de documentación. Como ejemplo, primero ejecute la siguiente celda para importar el módulo numpy.

import numpy as np

Si ahora inserta el cursor después de np y presiona Punto (.), Verá la lista de finalizaciones disponibles dentro del módulo np. Las terminaciones se pueden abrir nuevamente usando Ctrl + Espacio.

np

Si escribe un paréntesis abierto después de cualquier función o clase en el módulo, verá una ventana emergente de su cadena de documentación:

np.ndarray

La documentación se puede abrir nuevamente usando Ctrl + Shift + Espacio o puede ver la documentación del método colocando el mouse sobre el nombre del método. Al pasar el cursor sobre el nombre del método, el enlace Abrir en pestaña abrirá la documentación en un panel persistente.

El enlace Ver fuente navegará hasta el código fuente del método.

Formato de excepción

Las excepciones están bien formateadas en las salidas de Colab:

Comentar  en una celda

Puede comentar en un cuaderno de Colaboratory como lo haría en un documento de Google. Los comentarios se adjuntan a las celdas y se muestran junto a la celda a la que hacen referencia.

Si tiene permisos de solo comentarios, verá un botón de comentario en la parte superior derecha de la celda cuando pase el cursor sobre él.

Si tiene permisos de edición o comentario, puede comentar en una celda de una de estas tres formas:

  • Seleccione una celda y haga clic en el botón de comentario en la barra de herramientas sobre la esquina superior derecha de la celda.
  • Haga clic con el botón derecho en una celda de texto y seleccione
  • Agregar un comentario en el menú contextual. Use el atajo Ctrl + Shift + M para agregar un comentario a la celda seleccionada actualmente.

Puede resolver y responder a los comentarios, y puede orientar los comentarios a colaboradores específicos escribiendo + [dirección de correo electrónico] (por ejemplo, [email protected]). Se enviará un correo electrónico a los colaboradores a los que se dirija. El botón Comentar en la esquina superior derecha de la página muestra todos los comentarios adjuntos al cuaderno.

 

Resultados ricos e interactivos

Hasta ahora, todos los resultados generados han sido texto, pero pueden ser más interesantes, como el cuadro a continuación.

 

Integración con Drive

Colaboratory está integrado con Google Drive. Le permite compartir, comentar y colaborar en el mismo documento con varias personas:

El botón COMPARTIR (arriba a la derecha de la barra de herramientas) le permite compartir la libreta y controlar los permisos establecidos en ella.

  • Archivo-> Hacer una copia crea una copia del cuaderno en Drive.
  • Archivo-> Guardar guarda el archivo en la unidad.
  • Archivo-> Guardar y el punto de control fija la versión para que no se elimine del historial de revisión.
  • Archivo-> Historial de revisiones muestra el historial de revisiones del portátil.

Algunos enlaces sobre  Colaboratory  para  mostrar la potencia  que tiene esta potente herramienta incluso corriendo en la red: 

 

Ciencia de datos

Con Colab, tambien puede aprovechar toda la potencia de las bibliotecas más populares de Python para analizar y visualizar datos. La celda de código de abajo utiliza NumPy para generar datos aleatorios y Matplotlib para visualizarlos. Para editar el código, solo tiene que hacer clic en la celda.

 

Puede importar tus propios datos a los cuadernos de Colab desde su cuenta de Google Drive, incluidas las hojas de cálculo, y también desde GitHub y muchas fuentes más.

Aqui algunos enlaces sobre uso de los datos:

 Aprendizaje automático

Con Colab, puedesimportar un conjunto de datos de imágenes, entrenar un clasificador de imágenes con dicho conjunto de datos y evaluar el modelo con tan solo usar unas pocas líneas de código. Los cuadernos de Colab ejecutan código en los servidores en la nube de Google, lo que te permite aprovechar la potencia del hardware de Google, incluidas las GPU y TPU, independientemente de la potencia de su equipo pues lo único que necesita es un navegador.

A continuación, se muestran algunos cuadernos del curso online de Google sobre aprendizaje automático. Para obtener más información, consulta el sitio web del curso completo.

 

Por cierto , toda esta informacion de este post podemos verla en ingles directamente en los propios notebook  gratuitos de Google  (observe que la mayoria de los enalces  suelen tener  extension  ipynb tipica de los noetbooks de Jupiter ) 

Anuncio publicitario

Instalacion de Jupyter Notebook en Ubuntu


Jupyter Notebook, es una estupenda aplicación web de código abierto, que constituye un  desarrollo interactivo basado en web para cuadernos, código y datos de Jupyter.  Permite crear y compartir  código interactivamente,  asi como espectaculares  visualizaciones y otros recursos. Esta herramienta puede utilizarse con varios lenguajes de programación, como Python, Julia, R, Haskell y Ruby .  JupyterLab es flexible,  extensible y modular gracias aomplementos que agregan nuevos componentes y se integran con los existentes.

Ademas esta herramienta es ampliamente usada por Google  y tambien en ambiente universitario  usandose muy  menudo  para trabajar con datos, modelos estadísticos, y aprendizaje automático .

Esta herramienta es compleja instalarla en sistemas windows , pero en Linux no es demasiado dificil como vamos a  ver, pues  sólo necesitaremos  disponer de una instancia de servidor de Ubuntu 18.04 nueva con un firewall básico y un usuario no root con privilegios sudo configurados.

Para los usuarios  que no dispongan de un maquina Linux pueden arrancar su ordenador con una unidad extraible con alguna distribucion de Linux ligera como Xubuntu  y a partir de ahi seguir los pasos que vamos a describir.

Como ya se ha comentado se ha popularizado tanto este entorno , que incluso lo podemos ejecutar Juniper Notebook de forma virtualizada en la nube de Google con la herramienta https://colab.research.google.com/notebooks/

 

Instalacion y primeros pasos

Para iniciar el proceso, instalaremos las dependencias que necesitamos para nuestro entorno de programación de Python desde los repositorios de Ubuntu. Ubuntu 18.04 viene con Python 3.6 previamente instalado.

Jupyter Notebook puede usarse con diferentes lenguajes( Python, Julia, R, Haskell y Ruby)  , pero en este caso  vamos a usar Python , por lo que usaremos el administrador de paquetes de Python pip para instalar componentes adicionales más tarde.

Necesitaremos primero actualizar el índice de paquetes local apt y luego descargaremos e instalaremos los paquetes:

sudo apt update

A continuación, instale pip y los archivos de encabezado de Python, utilizados por algunas dependencias de Jupyter:

sudo apt install python3-pip python3-dev

Ahora podemos proceder a configurar un entorno virtual de Python en el que instalaremos Jupyter.

Crear un entorno virtual de Python para Jupyter

Ahora Python 3, sus archivos de encabezado y pip están listos para comenzar, podemos crear un entorno virtual de Python para administrar nuestros proyectos. Instalaremos Jupyter en este entorno virtual.

Para ello, primero necesitaremos acceso al comando virtualenv, que podemos instalar con pip.

Actualice pip e instale el paquete escribiendo lo siguiente:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

El indicador -H garantiza que la política de seguridad defina la variable de entorno home como el directorio de inicio del usuario de destino.

Con virtualenv ya instalado, podemos comenzar a crear nuestro entorno. Cree un directorio en el que podamos guardar los archivos de nuestro proyecto y posiciónese en él: Daremos a este directorio el nombre my_project_dir, pero deberá usar un nombre que sea significativo para usted y para el trabajo que está desarrolle.

mkdir ~/my_project_dir
cd ~/my_project_dir

En el directorio del proyecto, crearemos un entorno virtual de Python. A los efectos de este tutorial, le daremos el nombre my_project_env, pero debería asignarle uno que se relacione con su proyecto.

virtualenv my_project_env

Con esto, se creará un directorio llamado my_project_env dentro de su directorio my_project_dir. Dentro de este, se instalarán una versión local de Python y una versión local de pip. Podemos usar esto para instalar y configurar un entorno aislado de Python para Jupyter.

Antes de instalar Jupyter, debemos activar el entorno virtual. Puede hacerlo escribiendo lo siguiente:

source my_project_env/bin/activate

Su línea de comandos cambiará para indicar que ahora realizará operaciones en un entorno virtual de Python. Tendrá un aspecto similar al siguiente: (my_project_env)[email protected]:~/my_project_dir$.

Con esto, estará listo para instalar Jupyter en este entorno virtual.

 Instalar Jupyter

Una vez activado su entorno virtual, instale Jupyter con la instancia local de pip.Ojo  cuando se active el entorno virtual (cuando (my_project_env) se encuentre al inicio de su línea de comandos), use pip en lugar de pip3, incluso si emplea Python 3. La copia del entorno virtual de la herramienta siempre se llama pip, independientemente de la versión de Python.

pip install jupyter

En este punto, habrá instalado con éxito todo el software necesario para ejecutar Jupyter. Ahora podremos iniciar el servidor de Notebook.

 

Instalar jupyterlab

Si  usa pip,  puede instalarlo con el siguinte coamndo:

pip install jupyterlab

Is instalando usa  pip install --user, debe añadir el directorio de nivel usuario  bin a la variable PATH en orden de lanzar jupyter lab. Si esta usando algun derivadode Unix  (FreeBSD, GNU / Linux, OS X), puede alamcenar este path usuando el comando

export PATH="$HOME/.local/bin:$PATH".

Ejecutar JupyterLab

Una vez instalado , lanze JupyterLab con:

jupyter-lab

 Ejecutar Jupyter Notebook

Ya dispone de todo lo que necesita para ejecutar Jupyter Notebook. Para ejecutarlo, introduzca el siguiente comando:

jupyter notebook

Se mostrará un registro de las actividades de Jupyter Notebook en el terminal. Cuando se ejecuta Jupyter Notebook, este funciona en un número de puerto específico. Normalmente, el primer notebook que ejecute usará el puerto 8888. Para verificar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte el resultado del comando utilizado para iniciarlo:

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Si ejecuta Jupyter Notebook en un pc local (no en un servidor), puede dirigirse a la URL que se muestra para conectarse a Jupyter Notebook. Si ejecuta Jupyter Notebook en un servidor, deberá establecer conexión con este usando túneles SSH c

En este punto, podrá mantener la conexión SSH abierta y Jupyter Notebook en ejecución, o bien cerrar la aplicación y volver a ejecutarla una vez que configure los túneles SSH. Optaremos por detener el proceso de Jupyter Notebook. Lo ejecutaremos de nuevo una vez que configuremos los túneles SSH. Para detener el proceso de Jupyter Notebook, presione CTRL+C, escriba Y y luego presione ENTER para confirmar. Se mostrará el siguiente resultado:

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Con esto, debería establecer conexión con este usando un navegador web. Jupyter Notebook es una herramienta muy poderosa que dispone de muchas características. En esta sección se mostrarán algunas de las características básicas para que comience a usar el Notebook. Jupyter Notebook mostrará todos los archivos y las carpetas en el directorio desde el que se ejecuta. Por ello, cuando trabaje en un proyecto asegúrese de iniciarlo desde el directorio del proyecto.

Para crear un nuevo archivo de Notebook, seleccione New > Python 3 en el menú desplegable que se encuentra en la parte superior derecha:

Crear un nuevo notebook de Python 3

Con esto se abrirá un Notebook. Ahora podemos ejecutar el código de Python en la celda o cambiar la celda a lenguaje de marcado. Por ejemplo, cambie la primera celda para aceptar el lenguaje de marcado haciendo clic en Cell > Cell Type > Markdown en la barra de navegación de la parte superior. Con esto, podremos escribir notas usando el lenguaje de marcado e incluso incluir ecuaciones escritas en LaTeX disponiéndolas entre los símbolos de $$. Por ejemplo, escriba lo siguiente en la celda después del cambio a lenguaje de marcado:

# First Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Para convertir el lenguaje de marcado en texto enriquecido, presione CTRL + ENTER. Deberían aparecer los siguientes resultados:

Resultados de lenguaje de marcado

Puede utilizar las celdas de lenguaje de marcado para crear notas y documentar su código. Implementaremos esa ecuación e imprimiremos el resultado. Haga clic en la celda superior y presione ALT+ENTER para añadir una celda debajo de esta. Ingrese el código siguiente en la nueva celda.

x = 2
y = x**2
print(y)

Para ejecutar el código, presione CTRL+ENTER. Obtendrá los siguientes resultados:

Resultado de la primera ecuación

Ahora podrá importar módulos y usar el Notebook como lo haría con cualquier otro entorno de desarrollo de Python.

Conclusión

¡Felicitaciones! Ahora debería poder escribir código y notas de Python que puedan reproducirse en lenguaje de marcado usando Jupyter Notebook. Si desea acceder a una visita rápida de Jupyter Notebook desde la interfaz, seleccione Help > User Interface Tour en el menú de navegación superior para obtener más información.

 

Seguridad en IOT


El término Internet de las Cosas, en inglés Internet of Things ,hace referencia a la digitalización de todo tipo de dispositivos:

  • Sensores y actuadores 
  • Objetos comunes como vehículos
  • Cámaras de grabación
  • implantes médicos, ropa, etc. 

La conectividad digital de estos dispositivos permite enviar y recibir información para realizar tareas que hasta no hace mucho podrían parecer imposibles como monitorizar el estado de una flota de vehículos ,ver las cámaras de seguridad de la empresa desde un Smartphone, controlar cualquier electrodoméstico de forma remota, etc

Crecimiento

La consultora Gartner  pronostica que para el año 2021 habrá unos 25 mil millones de dispositivos IoT conectados en sectores tan dispares como:

  • Domótica 
  • Salud
  • Transporte y logística 
  • Seguridad y vigilancia

Se podría decir que con el IoT se inicia una revolución en la forma en que vivimos y trabajamos.Sus aplicaciones son muy diversas: monitorización salud , domótica en edificios y ciudades, aplicaciones en industria 4.0.

El acceso a la tecnología ha democratizado el IoT   reduciendo los costes  y con capacidades  avanzadas

  • REDUCIDOS COSTES:
    Los chips para dar inteligencia a los objetos
    Los módulos para dar conectividad a los objetos
    Los entorno de desarrollo para programarlo
    Los costes de hacer un prototipo
  • CAPACIDADES AVANZADAS
    Soluciones de gran capacidad a bajos coste
    Infinidad de tecnologías de comunicación
    Enorme comunidad desarrolladora

El    problema  viene  con algunas aplicaciones de IOT donde nos cuestionamos  hasta que punto los riesgos son mayores que las ventajas  y marabillas en el uso de esta tecnologías: es decir Seguridad vs Confort o lo que es lo mismo RIESGO VS RECOMPENSA

Estas son algunas  brechas que debemos superar:

  • Interacción humana de baja fricción
  • Identificación única de dispositivos
  • Autenticación de dispositivos
  • Asociación dispositivos-usuarios
  • Naturaleza de los datos

Ademas por si fuera poco, tenemos  grandes  retos  y desfios

  • Capacidades limitadas de encriptación
  • Recursos limitados (RAM/ROM)
  • Limitada sincronización
  • El fw debe ser actualizado tiempo al tiempo

Como vemos en la grafica de abajo  pues una de las grandes barreras  para adaptar el IOT es la seguridad:

 

Y es que el mal nunca descansa , como lo demuestran los innumerables ejemplos de  ataques:

Caso Mirai
La botnet Mirai ha sido utilizada en algunos de los ataques del tipo DDoS más grandes y bruscos de la historia, dentro de los que se incluyen el realizado al sitio web de Brian Krebs , y al proveedor Dyn en octubre de 2016.

Mirai es un malware de la familia de las botnets destinada a infectar los equipos conformantes del IoT.​ El objetivo principal de este malware es la infección de routers y cámaras IP, usando estos para realizar ataques de tipo DDoS

Amenazas para el propio dispositivo
Los dispositivos IoT pueden ser una presa fácil para los ciberdelincuentes que buscan este tipo de dispositivos como punto de entrada a las redes de las empresas o a otros puntos que se encuentran más protegidos.

Además, los propios dispositivos IoT no son inmunes a las amenazas pues los ciberdelincuentes pueden enfocar sus esfuerzos en atacar su funcionalidad, siendo la denegación de servicio uno de los principales peligros, dejándolos inoperativos o no accesibles.

Amenazas para el propio dispositivo
Las amenazas a los dispositivos IoT no se reducen a las derivadas de su conectividad a Internet. Muchos de estos aparatos cuentan también con capacidades de conexión inalámbrica como wifi, Bluetooth o Zigbee, lo que puede suponer otro vector de ataque para ciberdelincuentes si se encuentran dentro de su rango de acción

+Amenazas para el dispositivo

Consecuencias graves para la seguridad como:

  • Infectarlos para formar parte de una red zombi que los utilicen para realizar ciberataques, por ejemplo, de denegación de servicio distribuida o DDoS
  • Utilizarlos como puente o punto de entrada para atacar otros equipos de la misma red, para robar información o comprometer servidores o para realizar otras acciones delictivas
  • Reconfigurarlos para inhabilitarlos o cambiar sus condiciones de utilización

Como resumen , estos algunos de los vectores de ataque para los dispositivos IoT:

  • Fallos en la implementación
  • Interceptar datos de tránsito(ataque Man in the Middle)
  • Acceso a la plataforma de administración
  • Vulnerabilidad en el software
  • Configuraciones por defecto
  • Acceso físico al dispositivo
  • Los propios usuarios por ingeniería social

 

Medidas de seguridad

En los dispositivos IoT no se suelen utilizar las soluciones habituales de ciberseguridad como antivirus o cortafuegos; por ello, las siguientes medidas de seguridad están destinadas a proteger el propio dispositivo y, por consiguiente, toda la organización:

  • Acceso seguro al dispositivo (evitar conf. por defecto)
  • Comunicaciones seguras
  • Actualizaciones de seguridad
  • Dispositivos de seguridad perimetral
  • Seguridad física ( ej.: puertos, usb,sd, etc)
  • Concienciación en seguridad de los usuarios

Y  estas son algunas recomendaciones de seguridad:

  • Se comprobará cada cierto tiempo la visibilidad de los dispositivos IoT en Internet con herramientas específicas como Shodan.
  • Si el dispositivo lo permite se habilitará un registro de logs que guarde los eventos que se producen como accesos, cambios de contraseña, actualizaciones, etc.
  • En caso de ser posible, se ha de habilitar algún mecanismo de notificación cuando se produce un evento que pueda afectar a la seguridad del dispositivo.
  • Se monitorizarán de forma centralizada los dispositivos IoT para comprobar su correcto funcionamiento y que no se producen eventos que puedan afectar a su seguridad o a la de la empresa.
  • Se comprobará regularmente la web del fabricante en busca de nuevas actualizaciones de seguridad tanto de firmware como de software siempre que no exista un método alternativo que avise sobre ello
  • Uso de herramientas adicionales (ejemplo https://www.shodan.io)

DISEÑO en IOT:  REGLAS DE DISEÑO

En caso de estar diseñando un nuevo dispositivo IoT , algunos principios que de deberiamos  seguir

Seguridad:

  • CONSTRUIR CON SEGURIDAD INCLUIDA ( NO PUEDE SER AÑADIDA DESPUES)
  • Mantener mecanismos de seguridad simples
  • Usar estándares de seguridad
  • La oscuridad no provee seguridad
  • Encriptar datos sensibles en reposo y en transito
  • Usar bloques criptográficos bien estudiados
  • Identidad y gestión de acceso deben ser parte del diseño
  • Desarrollar un modelo de amenazas realista

Servicios de red

  • ASEGURARSE DE QUE DATOS Y CREDENCIALES SON ENCRIPTADOS MIENTRAS ESTAÑEN TRANSITO
  • USAR CANALES ENCRIPTADOS SEGUROS
  • USAR OPTIMAS LONGITUDES DE CLAVES Y BUENOS ALGORITMOS ( CURVA ELÍPTICA PROVEE UNA ENCRIPTACIÓN EFICIENTE)
  • PROTEGERSE CONTRA ATAQUES REPETITIVOS
  • Encriptación del transporte:
    • ASEGURAR SOLAMENTE LOS PUERTOS ABIERTOS NECESARIOS.
    • ASEGURAR QUE LOS SERVICIOS NO SON VULNERABLES.
    • DESPORDAMIENTO DE BUFEFR Y ATAQUES FUZZING.
    • ASEGURAR QUE LOS SERVICIOS NO SON VULNERABLES A ATAQUES DDNS

Privacidad como parte del diseño

  • Recolectar solamente los datos mínimos para el funcionamiento del dispositivo
  • Asegurarse que datos sensibles recogidos son protegidos con encriptación
  • Asegúrese de que el dispositivo protege adecuadamente los datos personales

Web, movilidad e interfaces cloud

  • No permita credenciales por defecto
  • Asumir accesos al dispositivos internamente y externamente
  • Las credenciales no deberían almacenarse en ficheros planos de texto ni viajar por canales no encriptados
  • Protegerse contra XSS,CSRF,SQLi
  • Implementar un sistema IAM/IRM
  • Protegerse contra la enumeración de cuentas e implementar el bloqueo de cuentas
  • Asegúrese de que su fw no contenga credenciales codificadas ni datos confidenciales
  • Utilice un canal seguro para transmitir el fw durante las actualizaciones
  • Asegúrese de que la actualización esté firmada y verificada antes de permitir la actualización.
  • No envíe la clave pública con el fw, use un hash
  • Asegúrese de que sus repositorios SVN/ GIT no contengan las claves privadas

SOFWARE/ FIRMWARE

  • Seguridad Física
  • Asegurar que el acceso físico a su dispositivo está controlado
  • Los puertos USB o SD accesibles pueden ser eficientes
  • ¿Se puede desmontar fácilmente para acceder al almacenamiento interno (RAM / ROM)?
  • Si los datos locales son confidenciales, considere la posibilidad de cifrarlos

 

Photo by Sebastian Palomino on Pexels.com

DECALOGO SOBRE RECOMENDACIONES DE SEGURIDAD

  1. Minimizar el uso de dispositivos IoT especialmente en empresas utilizando únicamente los que sean estrictamente necesarios.
  2. No usar, en la medida de lo posible, dispositivos IoT que transmitan información o cuya gestión se realice desde servidores externos aunque sea del fabricante.
  3. Comprobar las configuraciones por defecto del dispositivo, especialmente antes de permitir su acceso desde Internet y, de ser posible, elegir aquellos dispositivos que permitan un elevado
    nivel de seguridad.
  4. Si no es posible establecer configuraciones de seguridad robustas no se permitirá el acceso al dispositivo desde Internet y preferiblemente tampoco desde la red local.
  5. Establecer siempre contraseñas de acceso y administración robustas. Siempre que sea posible se forzará su uso.
  6. Establecer siempre contraseñas de acceso y administración robustas. Siempre que sea posible se forzará su uso.
  7. Mantener actualizado el dispositivo a la última versión.
  8. Mantener abiertos a Internet únicamente aquellos servicios que sean necesarios para su administración remota y los que no lo sean se deben deshabilitar. También hay que cambiar los puertos de los servicios cuando sea posible.
  9. Utilizar dispositivos de seguridad perimetral como cortafuegos para proteger la seguridad del dispositivo IoT.
    DECALOGO SOBRE RECOMENDACIONES DE SEGURIDAD
  10. Emplear mecanismos que permitan asegurar la autenticidad,integridad y confidencialidad de las comunicaciones especialmente si estas se realizan vía wifi.
  11. Auditar periódicamente los dispositivos IoT.
  12. Concienciar especialmente a los empleados sobre la importancia de la ciberseguridad en el día a día de su trabajo y en la administración y uso de este tipo de dispositivos.
  13. Comprobar la seguridad física del dispositivo y aplicar
    las medidas necesarias que eviten manipulaciones de terceros
    DECALOGO SOBRE RECOMENDACIONES DE SEGURIDAD

Fuentes
HTTPS://WWW.GARTNER.COM
HTTPS://WWW.INCIBE.ES
HTTPS://WWW.COMPUTING.ES
HTTPS://UNAALDIA.HISPASEC.COM
HTTPS://BLOG.F-SECURE.COM
HTTPS://SOLOELECTRONICOS.COM

 

 

 

Barra de progreso en PowerPoint


Para crear una barra de progreso en la parte inferior  de su presentación de PowerPoint  2018  en realidad  es un proceso muy sencillo ,  pues solo tiene que incluir en macros un sencillo  código en Visual Basic que vamos a  ver a continuación.

Para ello , desde Power Point 2018 tenenos que ir a la pestaña Vista  y pulsar en Macros.

Ahí escribiremos «Barra de Progreso » en la caja «nombre de la macro  y pulsaremos sobre  el  botón «Crear«

Ahora justo en la caja del código meteremos el siguiente  fragmento de código en VB para aplicaciones :

Sub BarraDeProgreso()
On Error Resume Next
Height = 10 ' cambiar este valor para modificar la altura de la barra de progreso
With ActivePresentation
For X = 1 To .Slides.Count
.Slides(X).Shapes("A").Delete
.Slides(X).Shapes("B").Delete
Set s = .Slides(X).Shapes.AddShape(msoShapeRectangle, _
0, .PageSetup.SlideHeight - Height, _
X * .PageSetup.SlideWidth / .Slides.Count, Height)
s.Fill.ForeColor.RGB = RGB(0, 153, 204) ' cambiar los valores de RGB para personalizar el color de la barra
s.Line.Visible = msoFalse
s.Name = "A"
Set s = .Slides(X).Shapes.AddShape(msoShapeRectangle, _
X * .PageSetup.SlideWidth / .Slides.Count, .PageSetup.SlideHeight - Height, _
.PageSetup.SlideWidth - X * .PageSetup.SlideWidth / .Slides.Count, Height)
s.Fill.ForeColor.RGB = RGB(255, 255, 255)
s.Line.Visible = msoFalse
s.Name = "B"
Next X:
End With
End Sub

Hecho esto ,guardaremos nuestro trabajo  ,pulsando en el  icono del «disquette» o simplemente pulsando  en Guardar.

 

Ahora, tan solo hay que ejecutar la macro que acabamos de crear  y la macro insertará automáticamente  en cada slide  una barra de progreso   de forma que variara  en función del numero de hoja de presentación de menos mas  llegando a su culminación al final de la ppt.

Como aspecto importante  no  debemos olvidar que cada vez que creemos una nueva hoja ,o alteremos el orden de las  hojas, debemos ejecutar la macro que acabamos de crear.

Para  terminar   si queremos almacenar la macro en el Powerpoint al guardar los cambios en la ppt , debemos asegurarnos de que el formato que elijamos (normalmente pptx)  lo permite ,porque si no lo hacemos  al   abrirla nuevamente  aunque la barra de progreso se mantendrá en las slides, la macro no estará y si cambiamos algo no podremos actualizar esta.

Como crear un USB de arranque desde linux


A veces nuestro equipo Windows o Linux puede tener ciertos problemas en funcionalidades que no sabemos achacar si es al propio sistema operativo, a alguna aplicacion que hayamos instalado qeu entre en conflicto con otra o quizas algun componente hardware. Pensando en estos casos una solucion muy interesante es arrancar con una unidad USB que contenga la maxima cantidad de drivers y sw basico para probar si es achacable al propio sistema operativo o algun aspecto del hardware que nos este fallando

En este post , pues vamos a ver como generar una unidad USB con la que salir de dudas y que seguro mas una vez nos podra sacar de algun apuro ¿le interesa el tema pues no nos demoremos mas y veamos los pasos a seguir?

1. Información general

Con una memoria USB de arranque de Ubuntu, puede:

  • Instalar o actualizar Ubuntu
  • Pruebe la experiencia de escritorio de Ubuntu sin tocar la configuración de su PC
  • Inicie Ubuntu en una máquina prestada o desde un cibercafé
  • Utilice las herramientas instaladas de forma predeterminada en la memoria USB para reparar o arreglar una configuración rota

Crear una memoria USB de arranque de Ubuntu es muy simple, especialmente desde Ubuntu mismo, y cubriremos el proceso en los siguientes pasos.

Alternativamente, también tenemos tutoriales para ayudarlo a crear una memoria USB de arranque desde Microsoft Windows y Apple macOS .

 

2. Requisitos

Necesitará:

  • Una memoria USB / unidad flash de 4 GB o más
  • Ubuntu Desktop 14.04 o posterior instalado
  • Un archivo ISO de Ubuntu. Consulte Obtener Ubuntu para obtener enlaces de descarga.
  • Xubuntu es un sistema operativo Linux elegante y fácil de usar basado en Ubuntu y desarrollado por la comunidad.. Xubuntu incluye Xfce, que es un entorno de escritorio estable, ligero y configurable.Es ideal para quien quiera lo mejor de sus PCs, portátiles y netbooks dándoles un aspecto moderno y obteniendo funcionalidades suficientes y eficientes para el día a día. Además, funciona bien en máquinas antiguas.Para más información, visite el sitio web de Xubuntu. Puede probar tambien la version Xubuntu 20.01 desde here.
Descarga una ISO de Ubuntu

Por cierto ,la «X» en Xubuntu proviene de Xfce, el ambiente de escritorio de Xubuntu. Así también la palabra «ubuntu» muestra la dependencia y el uso del núcleo de Ubuntu, que a su vez representa el núcleo filosófico del sistema operativo. Un significado aproximado de la palabra ubuntu es «humanidad hacia los demás». Para conocer más sobre la filosofía e ideales detrás de Ubuntu y Xubuntu puede ir a la página Filosofía de Ubuntu [En inglés].

Además de utilizar el núcleo de Ubuntu, Xubuntu también utiliza la infraestructura proporcionada y patrocinada por Canonical Ltd., una compañía fundada por Mark Shuttleworth.

3. Inicie Startup Disk Creator

Vamos a utilizar una aplicación llamada ‘Startup Disk Creator’ para escribir la imagen ISO en su memoria USB. Esto se instala de forma predeterminada en Ubuntu y se puede iniciar de la siguiente manera:

  1. Inserte su memoria USB (seleccione ‘No hacer nada’ si se lo solicita Ubuntu)
  2. En Ubuntu 18.04 y versiones posteriores, use el icono de la parte inferior izquierda para abrir ‘Mostrar aplicaciones’
  3. En versiones anteriores de Ubuntu, use el ícono superior izquierdo para abrir el tablero
  4. Utilice el campo de búsqueda para buscar Startup Disk Creator
  5. Seleccione Startup Disk Creator de los resultados para iniciar la aplicación
Buscar Startup Disk Creator

 

Si no lo tiene instalado ,para instalar la aplicación desde consola , ejecute los siguientes comandos:

sudo apt update
sudo apt install usb-creator-gtk

Además, si está ejecutando KDE o Kubuntu en lugar de Ubuntu o Ubuntu Gnome, probablemente debería usar en usb-creator-kdelugar de usb-creator-gtk:

sudo apt update
sudo apt install usb-creator-kde

Además, si está utilizando LXQT en Lubuntu, probablemente desee utilizar usb-creator-kde.

4. Selección de ISO y USB

Cuando se inicie, Startup Disk Creator buscará los archivos ISO en su carpeta de Descargas , así como cualquier almacenamiento USB adjunto en el que pueda escribir.

Es probable que tanto su ISO de Ubuntu como el dispositivo USB correcto se hayan detectado y configurado como ‘Imagen de disco de origen’ y ‘Disco para usar’ en la ventana de la aplicación. De lo contrario, use el botón ‘Otro’ para ubicar su archivo ISO y seleccione el dispositivo USB exacto que desea usar de la lista de dispositivos.

Haga clic en Crear disco de inicio para iniciar el proceso.

Hacer dispositivo USB

5. Confirme el dispositivo USB

Antes de realizar cambios permanentes, se le pedirá que confirme que el dispositivo USB que ha elegido es correcto. Esto es importante porque todos los datos almacenados actualmente en este dispositivo se destruirán.

Después de confirmar, se iniciará el proceso de escritura y aparecerá una barra de progreso.

Progreso de escritura USB

6. Instalación completa

¡Eso es todo! Ahora tiene Ubuntu en una memoria USB, de arranque y listo para funcionar.

Si desea instalar Ubuntu, eche un vistazo a nuestro tutorial de instalación de escritorio de Ubuntu .

Escritura USB completa

Buscando mas  ayuda

Si se queda atascado, la ayuda siempre está a mano. He  aquí algunas referencias que nos pueden ayudar:

 

Github rechaza unir historias no relacionadas


Photo by Sebastian Palomino on Pexels.com

Cuando el git bash nos dice: Github refusing to merge unrelated histories (Github rechaza unir historias no relacionadas) tal y como podria parecer una posible solución es

$git push origin master --allow-unrelated-histories

Ahora si lo que quiere es hacer merge:

$git merge origin master --allow-unrelated-histories

De esta manera, se garantiza que las historias no relacionadas o inconexas (unrelated-histories) puedan ser conectadas al repositorio.

Opcion B

Es posible que la solucion no siempre funcione, en realidad el problema es que no estamos especificando el `upstream’ a dónde enviar los cambios

$ git push origin master

Ahora según el error en la descripción es probable que la historia difiera por lo que puede forzar el push

$ git push origin master --force

Aunque lo mejor sería hacer un mergey después subir los cambios

$ git pull origin master
$ git push origin master

OPCION C

Pero si si su remoto tiene un commit que su local no tiene, y viceversa. No hay un ancestro común y por lo tanto no se puede hacer merge.

Si el código del remoto es ligeramente parecido a tu código local y efectivamente quiere hacer un merge, la solución sería:

git fetch --all
git reset --soft origin/master
git add --all
git commit -am "commit sobre l primer commit remoto"
git push origin master

Si de verdad los códigos no tienen nada que ver, puede hacer:

git push -f --set-upstream origin master

Y con eso va a pisar el remoto forzadamente con sus commits locales. Ojo que con esto se perderá lo que hay en el remoto.