Mostrando entradas con la etiqueta Artículos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Artículos. Mostrar todas las entradas

jueves, 21 de abril de 2016

Beneficios de la Robótica Educativa


Trabajar con robots es muy fácil y divertido, además de potenciar el trabajado en equipo, los diferentes campos del conocimiento, la sociabilización, etc., la robótica permite desarrollar habilidades blandas en estudiantes, las cuales son tan fundamentales para el desarrollo personal.

Algunas habilidades blandas que la robótica aporta:
  • Comunicación interna y externa.
  • Trabajo en equipo
  • Liderazgo
  • Emprendimiento
  • Innovación
  • Creatividad

¿Qué son las habilidades blandas?

Son habilidades que permiten el desarrollo social del individuo, capacidades comunicativas, de trabajo en equipo y adaptabilidad frente a un determinado trabajo.

¿Cómo se pueden potenciar?

Mediante talleres, que promuevan el trabajo cooperativo y colaborativo, junto a actividades que fomenten la comunicación entre estudiantes.

domingo, 11 de enero de 2015

La robótica


Decir que la robótica es un tema del futuro es una prueba fehaciente de miopía. Los robots están entrado por nuestras puertas, ventanas, cerraduras, y es inevitable que así sea. Desde lavarropas hasta los vehículos espaciales utilizan tecnologías muy vinculadas con la disciplina. Seguramente, comenzaron con investigaciones que en ese momento parecían desconectadas de la realidad (vieja excusa que utilizamos para aquellos que entran en nuestros laboratorios y nos preguntan ¿y eso que hace para qué sirve?). Es por eso que después de algunos años de investigación sobre este tema, y luego de escribir algunos artículos inentendibles, tuvimos ganas de abrir el juego. 

Mi relación con la robótica comenzó desde el ámbito educativo como un recurso concreto y tangible para enseñarles programación a jóvenes entre 13 y 17 años. En mi experiencia como docente de programación había llegado a una conclusión terrible: cuando enseñamos a programar, dentro del aula tenemos dos grupos de alumnos. Los que entienden todo sin que se les explique demasiado porque tienen una suerte de gen del programador y, con sólo recibir un par de ideas y algunos apuntes, al cabo de un mes regresaban con un sistema de control de centrales termonucleares. Y el otro conjunto de alumnos, más abultado, que a pesar de todos los recursos, inventos y triquiñuelas didácticas, no lograban superar el "HOLA MUNDO". Por lo tanto, mi tarea como docente era inútil en los dos casos: el primer grupo, porque no me necesitaban, y en el segundo, porque no les podía aportar cosas nuevas. En ese momento comencé a buscar algún mecanismo para que nadie se diera cuenta de esto y, a continuación, un recurso que permitiera mejorar la enseña de programación. Allí me crucé con los robots y con los entornos de objetos. Con el primer tema me casé y con el segundo tengo una relación de amante que espero oficializar en otro momento.

La robótica me ha dado inmensas satisfacciones, me ha permitido viajar a lugares que nunca creí que iba a conocer y ha pagado alguna que otra comida mía y de mi familia. Pero ante todo, me ha brindado la posibilidad de sorprenderme día tras día. Siempre hay algo nuevo, siempre hay otro desafió. Espero que en esta serie de artículos sirva como un punto de partida sencillo para viajar a obras mucho más completas que nos regalarán experiencias maravillosas.
  

domingo, 8 de junio de 2014

El firewall de Windows - Parte 1

Buenas a todos, hace algunas semanas dedicamos una cadena de posts a la instalación y configuración de firewalls físicos, mediante un simulador de Cisco. En el post hoy, queríamos seguir tratando la interesante temática de los firewalls, pero en esta ocasión os hablaremos del cortafuegos de Windows.


En Windows 2000 y XP el Firewall era muy rudimentario, con funcionalidades básicas de apertura y cierre de puertos, así cómo de unas pocas excepciones configuradas por defecto (escritorio remoto, compartición de impresoras, etc.). Sin embargo, desde Windows Vista disponemos de un Firewall avanzado (más parecido a los firewall físicos)





El nuevo cortafuegos de Windows dispone de la posibilidad de bloquear tanto conexiones entrantes como salientes. Algo muy necesario en la lucha contra los malware de tipo bot / troyanos reversos, que se conectan a un Panel de Control remoto (generalmente web).




Podemos arrancarlo llamando al programa “wf.msc” como administrador:




Desde el firewall podremos configurar varios tipos de perfiles:


  • Dominio: configurado para su uso en redes internas

  • Privado: destinado a un entorno privado (domicilio)

  • Público: configuración en redes desconocidas


Cada interfaz se asociará a un perfil.




Y la primera vez que se realice una conexión a una red, Windows nos preguntará el perfil que debe  usar.






En cada uno de estos perfiles se podrán configurar tanto conexiones entrantes como salientes. En ambas podremos filtrar:


  • Protocolos y puertos

  • Subredes

  • Usuarios

  • Equipos

  • Software

  • Etc.


Un punto interesante es la posibilidad de configurar el firewall de Windows para que únicamente salgan hacia Internet las aplicaciones que nos interesen.




Será útil para protegernos frente a malware de tipo bot, downloaders y otro software malicioso, que se intente conectar "sin nuestro permiso" a paneles de control remoto, alojados en distintos puntos de Internet.




Lo malo, es que es bastante “engorroso” de configurar, porque se deben dar de alta una a una cada aplicación que deseamos que salga hacia Internet (lista blanca)



Podemos habilitar estas reglas desde consola. Por ejemplo, si quisiéramos que saliese hacia Internet el navegador “Firefox”, podríamos añadir la siguiente regla:


netsh.exe advfirewall firewall add rule name=“Regla Firefox” dir=out action=allow program=“%programfiles%\Mozilla Firefox\firefox.exe”


Y para el caso contrario, evitar que salga hacia Internet, simplemente deberíamos cambiar "allow", por "deny".



Fuente: http://www.flu-project.com/2014/06/el-firewall-de-windows-parte-1.html

viernes, 30 de mayo de 2014

¿Cómo me puedo infectar con tan solo visitar un sitio web?

1-main


¿Te has preguntado cómo es posible que con sólo abrir una página web o un fichero creado para la ocasión, los delincuentes sean capaces de aprovecharse de una vulnerabilidad y tomar el control de un ordenador? Podemos tomar un ejemplo algo reciente de esto en el fallo de Internet Explorer descubierto hace unos meses. Un objeto Flash especialmente preparado que permite a un atacante tomar control de tu equipo como por arte de magia.


¿Qué está pasando en realidad en estos ataques? En este artículo extraído de "Gambeta" vamos a tratar de explicar sus fundamentos básicos: las técnicas que se usan en la práctica son bastante más complejas y enrevesadas, pero siempre responden a la misma idea, que es que se sobreescriban ciertos datos en memoria.



¿Cómo ejecuta un ordenador un programa?


Antes de entrar en materia tenemos que repasar un poquito, de manera simplificada, cómo funcionan los ordenadores y cómo ejecutan los programas.




[caption id="attachment_1778" align="aligncenter" width="334"]Un programa simple. En cursiva, las "instrucciones" para el procesador. Un programa simple. En cursiva, las "instrucciones" para el procesador.[/caption]

Los programas son, a grandes rasgos, un montón de instrucciones puestas una detrás de otra para que el procesador las ejecute. Supongamos que tenemos nuestro programa "Hola Mundo", el de la imagen de arriba, que simplemente pide al usuario que introduzca una cadena e imprima otra por pantalla. Ahí ves las instrucciones1 que ejecutaría el procesador junto con los datos necesarios, que están guardados en los tres primeros huecos.


Cuando ejecutemos el programa, el sistema operativo lo pondrá en una posición de memoria cualquiera, y le dirá al procesador que empiece a ejecutar las instrucciones a partir de la dirección 3, que es donde empieza el código que queremos ejecutar. Cuando termine, nuestro programa devolverá el control al sistema operativo con la última instrucción.


Básicamente así son todas las funciones en un programa. Una sección con datos, un código a ejecutar y una última instrucción para volver a la función anterior, cuya dirección está guardada en una posición de memoria.



¿Y si me paso al escribir?


Algún lector avispado habrá detectado ya el posible fallo en el programa anterior. Al procesador no le hemos dicho cuánto espacio tiene en la dirección 0 para guardar una cadena. ¿Qué pasa si yo escribo una cadena muy larga y guarda más de lo que puede? Pues lo que ves en la siguiente imagen.


overflow


El procesador, que es muy obediente (o estúpido, según se mire) copia la cadena de texto, y si no le dices donde parar, el procesador no se detiene y sigue escribiendo, aunque sobreescriba otras cosas. En este caso, podéis imaginar que ahora, en lugar de escribir "Hola mundo" escribirá lo que haya quedado en esa segunda posición, en este caso "larga y me he pasado".


Como curiosidad esto está bien pero no tiene mucho de fallo de seguridad. De momento. ¿Qué pasa si ponemos una cadena más larga aún? Sobreescribiría la dirección 2, que dice dónde tiene que volver. Es decir, que cuando el procesador llegue a la última instrucción volverá a una dirección aleatoria, la que indique el valor que haya quedado sobreescrito en esa posición.


Ese es el primer paso para aprovecharse de los fallos: poder controlar qué es lo siguiente que va a ejecutar el procesador. El segundo es introducir el código que quiera ejecutar el atacante. Para ello, en lugar de una cadena normal introducimos una cadena que, en binario, son instrucciones para el procesador. Por continuar con nuestro programa de ejemplo, si introdujésemos "descarga malware.com, ejecuta el descargable, 0" nos quedaría algo como esto en memoria:


bufferoverflow


El procesador ejecutará la función normalmente. Cuando llegue al final, en lugar de volver a donde tenía que regresar, empezará a ejecutar las instrucciones que hay a partir de la posición 0, es decir, las que el atacante ha querido introducir.


Así de simple es este tipo de vulnerabilidad, también llamada de buffer overflow. Nos aprovechamos de un fallo en un programa que no comprueba bien hasta dónde escribe para sobreescribir ciertos datos que luego nos den el control sobre la ejecución (lo que se suele llamar un shellcode).


Por supuesto, en la realidad esto no es tan fácil, pero la idea básica es la misma. El problema de verdad no es las simplificaciones que hagamos aquí, sino las protecciones del sistema operativo.



DEP: Eso no se toca




[caption id="attachment_1781" align="aligncenter" width="470"]dep Problema resuelto. Bueno, casi.[/caption]


Desde hace unos años, los principales sistemas operativos cuentan con mecanismos de protección frente a este tipo de fallos, siendo el principal Data Execution Prevention (DEP, prevención de ejecución de datos). Con DEP, el sistema operativo impide que se ejecute nada en la parte de datos, de tal forma que aunque consigamos desbordar un búfer y sobreescribir la dirección de retorno, no seremos capaces de ejecutar nuestro código.


DEP dificulta mucho pero no termina de impedir la explotación de fallos de este tipo. Quizás no podamos ejecutar código que metamos nosotros, pero eso no quita que un programa tenga otro montón de funciones interesantes que podemos ejecutar. Por ejemplo, system, que permite ejecutar un comando cualquiera del sistema. Si modificamos la dirección de retorno (en el código de antes, el número en la instrucción 2) podemos hacer que se ejecuten funciones del sistema con los parámetros que queramos, y así tomar control de la ejecución.


Este tipo de ataques se denominan return-to-libc, y aunque así explicados parecen sencillos, no lo son tanto. El principal problema es que tenemos que saber en qué dirección está la función que queremos llamar, algo difícil teniendo en cuenta que sistemas operativos modernos tratan de distribuir aleatoriamente (el nombre técnico es Address Space Layout Randomization) la posición de estas funciones para evitar precisamente ese tipo de ataques.



¿Cómo funcionaba el exploit de Internet Explorer?


Hasta ahora hemos visto lo básico de este tipo de fallos y cómo un atacante puede ejecutar código en nuestro sistema sólo con hacernos abrir un archivo o ver una página web. Por supuesto, hay técnicas muchísimo más avanzadas como Return-OrientedProgramming, que permite ejecutar cualquier cosa sólo manipulando las direcciones de retorno, usando pedazosde códigos de librerías conocidas.


Pero ya que hemos empezado hablando de Internet Explorer, vamos a acabar el artículo hablando también de él y explicando el fallo que ha sufrido. FireEye ha publicado un análisis de cómo funciona el enrevesado exploit, nosotros vamos a verlo simplificado.


El primer paso es poner a ejecutar un archivo SWF (Flash), que crea varios objetos en memoria. Después, llama a una función de Javascript de Internet Explorer. Esta función tiene un fallo, y es que permite sobreescribir el campo que indica la longitud de un objeto en Flash.


layoutmemoria



Los atacantes no dejan nada al azar, por supuesto. Los objetos están creados de tal forma que tengan una distribución especial en memoria. Casualmente, el objeto que está detrás de nuestra cadena es un archivo de sonido que, entre otras cosas, tiene campos con direcciones de funciones a las que llamar para realizar ciertas tareas (técnicamente, esos campos pertenecen a la tabla de métodos virtuales).


Sobreescribe uno de esos campos con una llamada a la función de Windows ZwProtectVirtualMemory, que entre otras cosas puede desactivar la protección DEP de segmentos de memoria (siempre y cuando la política de seguridad lo permita, claro).


A partir de aquí todo va cuesta abajo y sin frenos. Sin protección de ejecución de datos y con acceso a la memoria, el exploit añade varias instrucciones que arreglan el estropicio y limpian las huellas, y que después descargan el malware de verdad como una imagen. FireEye no da muchos más detalles de qué hace ese archivo adicional, pero ya podéis imaginar que no es nada bueno.


Hasta aquí este artículo. Esperamos que haya servido como una introducción interesante a este tipo de ataques. Como siempre, si tenéis dudas o sugerencias podéis plantearlas en los comentarios.


Articulo original: Gambeta

emerge © , All Rights Reserved. BLOG DESIGN BY Sadaf F K.