domingo, 25 de noviembre de 2012

Múltiples vulnerabilidades en Moodle

Se han publicado siete boletines de seguridad para Moodle que solucionan vulnerabilidades que podrían permitir la revelación de información sensible, secuestro de sesión, eludir restricciones de seguridad, y realizar ataques XSS.
Moodle es una aplicación web del tipo LMS (Learning Management System), escrita en PHP que se utiliza para la gestión de cursos en línea. Está publicada bajo licencia GNU GPL y ha sido traducida a más de 91 idiomas. Además de la comunicación entre profesorado y alumnos, dispone de distintas herramientas, como la subida de ficheros, calendario y foros.
Los siete boletines de seguridad de Moodle que se han dado a conocer son los siguientes:
  • MSA-12-0057 (CVE-2012-5471): cuando un usuario inicia sesión en Dropbox a través del repositorio de Moodle, dicha sesión permanece abierta hasta que se cierra el navegador a pesar de que el usuario se haya desconectado. Esto podría permitir que otros usuarios pudiesen acceder y utilizar los datos del primero. Ha sido descubierta por Alexander Bias.
       
  • MSA-12-0058 (CVE-2012-5472): existe un fallo en 'formslib.php' que podría permitir a un usuario remoto autenticado eludir restricciones de acceso modificando datos de un campo de un formulario ya enviado. El fallo ha sido reportado por Rossiani Wijaya.
      
  • MSA-12-0059 (CVE-2012-5473): un error de falta de filtrado en el módulo 'Database activity' podría permitir a un usuario ver la información de entradas creadas por miembros de otros grupos a los que él no pertenece a través de una búsqueda avanzada. Richard Meyer ha descubierto esta vulnerabilidad.
        
  • MSA-12-0060 Petr Škoda Jenny Donnelly han descubierto un error de falta de comprobación en la librería YUI 2 que podría permitir llevar a cabo ataques Cross-Site Scripting y ejecutar código HTML y javascript arbitrario en el navegador de un usuario en el contexto de un sitio afectado.
         
  • MSA-12-0061 (CVE-2012-5479): el plugin 'Portfolio' podría permitir la carga local de ficheros (Local File Inclusion, LFI) y ejecución de comandos de forma remota (RCE) a través de la respuesta de una llamada a la API especialmente manipulada. Cristóbal Leiva es el descubridor de este error.
        
  • MSA-12-0062 (CVE-2012-5480): Tabitha Roder ha descubierto un fallo en el módulo 'Database activity' de Moodle que podría permitir a cualquier usuario, incluso a los invitados, leer las entradas de otros usuarios.
        
  • MSA-12-0063 (CVE-2012-5481): Existe un fallo que permite revelar información en la página 'Check Permissions', al permitir que usuarios no administradores pudiesen ver los roles de todos los usuarios de la plataforma. ha sido descubierto por Jody Steele.

La mayoría de estas vulnerabilidades afectan a las versiones 2.1.x, 2.2.x y 2.3.x de Moodle. El boletín MSA-12-0058 no afecta a la rama 2.1, mientras que el MSA-12-0063 únicamente atañe a la 2.3. La rama 1.9 también se ve involucrada en el error reportado en el boletín MSA-12-0060.
Se encuentra disponible, en la página oficial, la última versión de Moodle que corrige las vulnerabilidades anteriores.
Más información:
MSA-12-0057: Access issue through repository
MSA-12-0058: Possible form data manipulation issue
MSA-12-0059: Information leak in Database activity module
MSA-12-0060: Cross-site scripting vulnerability in YUI2
MSA-12-0061: Remote code execution through Portfolio API
MSA-12-0062: Information leak in Database activity module
MSA-12-0063: Information leak in Check Permissions page
  
Juan José Ruiz
 
Fuente: Hispasec

Ejecución de código arbitrario en Opera 12

Opera Software ha publicado dos boletines de seguridad referentes a sendas vulnerabilidades que afectan a su navegador Opera. Éstas podrían ser explotadas de forma remota para revelar información sensible y ejecutar código arbitrario.
La primera vulnerabilidad, considerada crítica, se debe a un error de falta de comprobación de tamaño cuando Opera almacena la respuesta en un buffer, tras una petición HTTP. Esto podría causar un desbordamiento de memoria que podría ser aprovechado por un atacante remoto para provocar una denegación de servicio, e incluso ejecutar código arbitrario.
La otra vulnerabilidad es considerada de severidad baja. Se debe a un fallo al manejar las páginas de error que podría permitir determinar la existencia de archivos locales, revelando información que no debería ser accesible por estas páginas.
Por el momento no se ha asignado ningún identificador CVE a estas vulnerabilidades.
Ambas afectan a las versiones de Opera inferiores a la 12.11, que ha sido lanzada para corregir estas vulnerabilidades. Se puede descargar desde la página oficial.
Más información:
Advisory: HTTP response heap buffer overflow can allow execution of arbitrary code
Advisory: Error pages can be used to guess local file paths
Juan José Ruiz
 
Fuente: Hispasec

Enlaces de la SECmana - 150 (Seguridad Informática)

Fuente: securitybydefault

viernes, 23 de noviembre de 2012

Algunos consejos para mantener una cuenta profesional en Twitter

Mucho he comentado ya sobre Twitter, sobre sus usos, sobre sus posibilidades… incluso tenéis disponible un libro (PDF gratuito) que publiqué en 2009 sobre el tema, dando una visión general de la red, tanto para quien está empezando como quien quiere conocer algunas aplicaciones originales de esta red de contenido.
El caso es que después de mucho tiempo gestionando varias cuentas de Twitter, tanto profesionales como personales, quiero compartir con vosotros algunas lecciones que he aprendido con el tiempo. Espero que alguna de ellas os sirva de algo.
- Si mantenéis la cuenta de Twitter de una publicación online, intentad que los textos se publiquen con un intervalo de más de 45 minutos. En caso contrario la linea de tiempo de vuestros seguidores puede llenarse con vuestras noticias, dando la sensación de un monopolio de espacio que a nadie le gusta.
- Una cuenta de Twitter de una publicación, que mezcla noticias con mensajes personales a los seguidores, puede generar un volumen de información excesivo, estresando a los que leen las noticias y que no están muy interesados en las respuestas personales que se dan. Una solución podría ser la de crear dos cuentas distintas: una para informar y otra para responder mensajes y enviar textos de otro orden de relevancia. Es algo parecido a lo que hago yo con @wwwhatsnew (sólo noticias) y @juandiegopolo (respondo y comento asuntos personales).
- Usad el buscador de Twitter para encontrar posibles clientes. En search.twitter.com tenemos la posibilidad de filtrar mensajes de personas. Si alguien publica un texto “necesito alojamiento en Barcelona” y gestionamos la cuenta de un hotel en dicha zona, sería un error perder la oportunidad de ofrecer un servicio solicitado. No confundirlo con las ofertas de productos no solicitados, eso sería spam…
- Visitad el perfil de los usuarios antes de responder una cuestión. Si recibimos una pregunta de una persona, tenemos que responder, en 140 caracteres, de la mejor forma posible. Conociendo el perfil de quien pregunta podremos configurar la respuesta de forma más efectiva y personal.
- Tened siempre listo un formulario en la web donde los usuarios puedan realizar preguntas con más detalle. Muchas veces es necesario indicar la url de un formulario más completo para que los clientes puedan explicar mejor su problema o necesidad (algo muy difícil en el espacio disponible en Twitter).
- No transforméis Twitter en un chat. Es muy fácil engancharse en una conversación con un cliente, pero Twitter no es el lugar para hacer eso. Un flujo de mensajes direccionados a una misma persona puede tener un efecto negativo en los otros seguidores, que no están interesados en dicha conversación. De la misma forma que podéis tener un formulario web siempre listo, es fácil configurar una sala de chat para tratar asuntos más personales. Aquí os dejo algunas opciones preparadas para ello.
En fin, ya sé que la mayoría responden al sentido común, pero nunca viene mal recordar que lo que se escribe en Twitter lo pueden leer TODOS los seguidores.

Fuente: hatsnew

PasswordLive, generador online de contraseñas únicas a partir de una palabra clave


Si el crear contraseñas seguras y recordarlas te resulta un problema, puedes tener en cuenta a PasswordLive. Es una aplicación online que promete una contraseña segura a partir de una palabra clave, y con el bonus de no tener que recordarla.
El funcionamiento es simple, tienes que escribir una palabra clave secreta, señalar para que servicio deseas utilizarla y especificar algunos detalles, como por ejemplo la cantidad de caracteres, qué tipo de combinaciones deseas, entre otros. Ello dará como resultado una clave única basado en la palabra que señalamos y el servicio a utilizar.
Podemos utilizar la misma palabra clave para generar contraseñas a todos los servicios web que utilizamos, ya que irá generando una combinación diferente. De esa manera, si hemos olvidado la contraseña, podemos recurrir  a PasswordLive y con solo recordar la palabra secreta podremos tener acceso a todas las contraseñas creadas para los diferentes servicios
Según especifica el equipo de PasswordLive la aplicación se basa en el algoritmo de SHA-256, por lo que prometen generar contraseñas fuertes y seguras, aunque dependerá también de que cada usuario  utilice una palabra clave difícil de adivinar.
Enlace: PasswordLive

Fuente: hatsnew

lockerpress, una extensión de WordPress para hacer el sitio más seguro



Es difícil evitar un ataque hacker organizado a un sitio web, pero siempre hay detalles que podemos cuidar para evitar los más sencillos, principalmente en plataformas tan conocidas como WordPress.
La mayoría de invasiones llegan a través de la página de login de administración, página que puede cambiarse usando el plugin lockerpress que hoy os presentamos. Podemos hacer que los usuarios se identifiquen usando la página /entrar-secreto, por ejemplo, en lugar del clásico /wp-admin, o configurar el sistema para ser avisados por email cada vez que “algo raro” ocurra con nuestros archivos en el servidor.
LockerPress WordPress Security  protege el sitio ofreciendo más soluciones que las arriba mencionadas, como la posibilidad de habilitar reCAPTCHA en la página de login, deshabilitar el botón derecho del ratón, no mostrar mensajes de error, cambiar prefijos de base de datos y un largo etcétera que comentan en la página de wordpress.org

Fuente: hatsnew

Comandos para conocer el sistema (identificar hardware y algunas configuraciones de software)


Hace unos días vimos cómo instalar Debian 6. Ahora que tenemos instalado nuestro sistema vamos a conocerlo un poco más a fondo, explicando algunos comandos básicos que, en realidad, sirven para cualquier distribución. 

D4ny R3y es uno de los ganadores de nuestra competencia semanal: "Compartí lo que sabés sobre Linux". ¡Felicitaciones Dany!


Introducción

Un equipo de cómputo consta de dispositivos físicos llamados de forma global hardware, y componentes lógicos llamados software. Existen herramientas que permiten identificar ambas partes, ya sea para conocer las características del equipo como para medir su desempeño y/o diagnosticar posibles fallas.

Cuando existe la necesidad de solicitar apoyo en la resolución de problemas es importante poder aportar toda la información que sea posible y necesaria sobre el hardware y el software que conforman el equipo. En ese sentido, este artículo puede verse como una expansión de otro más antiguo en el que explicábamos dónde se encuentran los archivos de registro del sistema.


Justificación

A la hora de buscar respuestas a los problemas que puedas enfrentar al usar Linux es necesario proporcionar toda la información necesaria sobre el problema en cuestión, como por ejemplo: el tipo de computadora que tienes, versión de Debian, versión del kernel, sistema de escritorio, etc. Eso ayudará a describir los pasos que llevaste a cabo para provocar o solucionar el problema.

Es más fácil solicitar y obtener apoyo cuando se sabe cómo proporcionar dicha información, y este artículo pretende ofrecer una lista de comandos para alcanzar dicho objetivo. Muchos usuarios nuevos de Debian GNU/Linux no saben cómo aportar toda la información posible y podrían no recibir la ayuda adecuada, simplemente por no saber proporcionar la información adecuada.


Convenciones

En algunos comandos la información resultante excede la altura de la pantalla, así que para facilitar la lectura de dicha información se usa el paginador less y de esta manera es posible desplazarse hacia abajo y hacia arriba visualizando toda la información. Para salir del paginador simplemente se presiona la tecla Q (quit). A continuación 2 ejemplos de cómo se usará dicho paginador:

dmesg | less

y

less /etc/apt/sources.list


Información del fabricante y del modelo

Fabricante del equipo:

sudo dmidecode -s system-manufacturer

Nombre del producto:

sudo dmidecode -s system-product-name

Versión del producto:

sudo dmidecode -s system-version

Número de serie del equipo:

sudo dmidecode -s system-serial-number

SKU (Stock Keeping Unit) ó P/N (Part Number) del producto:

sudo dmidecode | grep -i sku

Más información detallada:

sudo dmidecode


Información del procesador

Mostrar el nombre del fabricante, modelo, y velocidad:

grep 'vendor_id' /proc/cpuinfo ; grep 'model name' /proc/cpuinfo ; grep 'cpu MHz' /proc/cpuinfo

Mostrar la arquitectura (32 o 64 bits):

sudo lshw -C CPU | grep width

Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Mostrar el tipo de máquina:

uname -m

Mostrar si el procesador soporta "Extensiones de Virtualización" (Intel-VT ó AMD-V), las cuales se activan desde la configuración de BIOS del equipo:

Si el procesador es Intel, se necesita saber si aparece el valor "vmx":

grep -i vmx /proc/cpuinfo

Si el procesador es AMD, se necesita saber si aparece el valor "svm":

grep -i svm /proc/cpuinfo


Información de la batería

acpi -bi

ó

acpitool -B

Nota: el comando acpitool no se encuentra instalado de forma predeterminada.


Memoria RAM y partición SWAP

Mostrar el total de memoria RAM y la partición swap (cambiar el último parámetro por: -b = Bytes, -k = Kilobytes, -m = Megabytes, -g = Gigabytes, según convenga):

free -o -m

y otra forma de hacerlo es así:

grep 'MemTotal' /proc/meminfo; grep 'SwapTotal' /proc/meminfo

Para mostrar en qué partición (y el tamaño) está el swap:

sudo swapon -s


Kernel

Mostrar el nombre y versión del kernel:

uname -sr


Shell

Mostrar el shell en uso:

echo $SHELL


Distribución

Mostrar el nombre, versión y nombre clave de la distribución:

lsb_release -idc


Entorno del usuario

Nombre del usuario actual:

echo $USER

Nombre del equipo:

echo $HOSTNAME

Directorio base del usuario actual:

echo $HOME

Directorio de trabajo actual:

echo $PWD

o

pwd


Hardware

Listar los dispositivos PCI / PCIe

lspci

Listar todos los dispositivos PCMCIA

/sbin/lspcmcia

Listar todos los dispositivos USB:

lsusb

Listar todos los dispositivos detectados como SCSI:

lsscsi

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Módulos que se han indicado al kernel que cargue durante el arranque:

cat /etc/modules

Listar todos los módulos que cargó el sistema:

lsmod | less

Listar el hardware (información resumida):

sudo lshw -short

Listar el hardware (información extensa):

sudo lshw | less

Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.


Medios de almacenamiento y arranque

Listar las particiones en los medios de almacenamiento:

sudo fdisk -l

Conocer el espacio usado y disponible en las particiones:

df -h

Conocer en qué partición (y el tamaño) está swap:

sudo swapon -s

Mostrar las entradas registradas para el gestor de arranque GRUB "Legacy" (hasta la versión 0.97):

sudo grep -i title /boot/grub/menu.lst | grep "#" -v

Mostrar las entradas registradas para el gestor de arranque GRUB 2:

sudo grep -i menuentry /boot/grub/grub.cfg | grep "#" -v

Mostrar la tabla de particiones (File System TABle) que el sistema monta automáticamente durante el arranque:

less /etc/fstab

Mostrar el valor UUID (Universally Unique IDentifier) de todas las particiones:

sudo blkid


Redes

Listar los dispositivos de red alámbricos PCI:

lspci | grep -i ethernet

Listar los dispositivos de red inalámbricos PCI:

lspci | grep -i network

Listar los dispositivos de red USB:

lsusb | grep -i ethernet ; lsusb | grep -i network

Mostrar los módulos cargados por el sistema, para controlar tarjetas de red inalámbricas:

lsmod | grep iwl

Mostrar información del controlador usado por un dispositivo de red específico (se debe sustituir la palabra interfaz por el nombre lógico de la tarjeta de red, por ejemplo eth0, wlan0, ath0, etc.):

sudo ethtool -i interfaz

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Configuración de las tarjetas de red y sus direcciones IP asignadas:

cat /etc/network/interfaces

Resolución de Nombres de Dominio:

cat /etc/resolv.conf

Mostrar el contenido del archivo HOSTS:

cat /etc/hosts

Nombre del equipo, tal y como se verá en la red local:

cat /etc/hostname

ó

grep 127\.0\.1\.1 /etc/hosts

ó

echo $HOSTNAME

Direcciones IP locales de las tarjetas de red alámbricas (resumen):

/sbin/ifconfig | grep -i direc | grep -i bcast

si el sistema está en inglés se usa:

/sbin/ifconfig | grep -i addr | grep -i bcast

Direcciones IP locales de las tarjetas de red alámbricas (detalle):

/sbin/ifconfig

Direcciones IP locales de las tarjetas de red inalámbricas (resumen):

/sbin/iwconfig | grep -i direc | grep -i bcast

si el sistema está en inglés se usa:

/sbin/iwconfig | grep -i addr | grep -i bcast

Direcciones IP locales de las tarjetas de red inalámbricas (detalle):

/sbin/iwconfig

Mostrar la tabla de enrutamiento:

sudo route -n

Para conocer la dirección IP pública (externa):

curl ip.appspot.com


Repositorios / actualización del sistema

Visualizar el contenido del archivo sources.list, el cual contiene las direcciones de los repositorios:

less /etc/apt/sources.list


Video

Listar las tarjetas de vídeo (PCI / PCIe):

lspci | grep -i vga

Para determinar si el equipo soporta aceleración de gráficos es necesario que esté instalado el paquete de herramientas mesa-utils. Dicho paquete contiene el comando glxinfo:

glxinfo | grep -i render

Para calcular los FPS (frames per second) se ejecuta el siguiente comando:

timeout 60 glxgears

El cual mostrará durante 60 segundos (con la ayuda del comando timeout) una ventana pequeña con una animación de 3 engranajes, mientras que al mismo tiempo en la ventana de la terminal se mostrarán los valores promedios de fotogramas por segundo (FPS, frames per second):

Ejemplo del desempeño gráfico de un sistema:

338 frames in 5.4 seconds = 62.225 FPS
280 frames in 5.1 seconds = 55.343 FPS
280 frames in 5.2 seconds = 54.179 FPS
280 frames in 5.2 seconds = 53.830 FPS
280 frames in 5.3 seconds = 53.211 FPS
338 frames in 5.4 seconds = 62.225 FPS
280 frames in 5.1 seconds = 55.343 FPS
280 frames in 5.2 seconds = 54.179 FPS
280 frames in 5.2 seconds = 53.830 FPS
280 frames in 5.3 seconds = 53.211 FPS

Ejemplo de un mejor desempeño gráfico en otro sistema:

2340 frames in 5.0 seconds = 467.986 FPS
2400 frames in 5.0 seconds = 479.886 FPS
2080 frames in 5.0 seconds = 415.981 FPS
2142 frames in 5.0 seconds = 428.346 FPS
2442 frames in 5.0 seconds = 488.181 FPS
2295 frames in 5.0 seconds = 458.847 FPS
2298 frames in 5.0 seconds = 459.481 FPS
2416 frames in 5.0 seconds = 483.141 FPS
2209 frames in 5.0 seconds = 441.624 FPS
2437 frames in 5.0 seconds = 487.332 FPS

Para mostrar la configuración actual del servidor X (X Window System):

less /etc/X11/xorg.conf

Para conocer la resolución actual (anchura x altura) y frecuencia de barrido (MHz):

xrandr | grep '*'

Para conocer todas las resoluciones que la configuración actual soporta:

xrandr

Para mostrar las cámaras web (USB):

lsusb | grep -i camera

El siguiente ejemplo muestra el resultado de 2 cámaras web conectadas a un mismo equipo:

Bus 001 Device 003: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 002 Device 004: ID 0ac8:3420 Z-Star Microelectronics Corp. Venus USB2.0 Camera
Las cámaras web se "montan" en orden consecutivo en la ruta /dev/ :

Bus 001 ---> /dev/video0
Bus 002 ---> /dev/video1
Bus 003 ---> /dev/video2
[...]
Para comprobar que las cámaras web se han "montado" en su ruta correspondiente:

ls /dev/video* -lh


Audio

Listar hardware de audio:

lspci | grep -i audio

ó

sudo lshw | grep -i audio | grep product

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Listar los dispositivos de reproducción de audio:

aplay -l | grep -i tarjeta

si el sistema está en inglés entonces se usa:

aplay -l | grep -i card

Listar todos los módulos que cargó el sistema, para ser usados por los dispositivos de sonido:

lsmod | grep -i snd

Las siguientes son pruebas para verificar si los altavoces están correctamente conectados y distribuidos. Los altavoces deben estar encendidos y durante la prueba se puede ajustar el volumen, cables, y disposición. Cada prueba emite un sonido en un ciclo, y se repite 2 veces más:

Si el sistema de sonido es de 1 canal (monoaural):

speaker-test -l 3 -t sine -c 1

Si el sistema de sonido es de 2 canales (stereo):

speaker-test -l 3 -t sine -c 2

Si el sistema de sonido es de 5.1 canales (surround):

speaker-test -l 3 -t sine -c 6


Registros (logs)

Visualizar las 30 últimas líneas del buffer del kernel:

dmesg | tail -30

Visualizar todo el buffer del kernel:

dmesg | less

Los registros del servidor X dan información útil sobre la configuración actual del mismo, y sobre la tarjeta de video:

cd /var/log/
ls Xorg* -hl

ello mostrará todos los archivos de registros del servidor X, siendo el archivo Xorg.0.log el más reciente.

Para ver los mensajes de error (errors) y mensajes de advertencia (warnings):

grep -E "(WW)|(EE)" Xorg.0.log | grep -v unknown

Si se desea ver toda la información del registro:

less Xorg.0.log

Si se desea ver el contenido de algún registro anterior al actual sólo basta sustituir el nombre de archivo Xorg.0.log por el nombre del archivo que se desee visualizar.

Para visualizar el registro de arranque (boot) es necesario activarlo primeramente. Se debe abrir el archivo /etc/default/bootlogd y sustituir el valor no por yes, quedando así:

# Run bootlogd at startup ?
BOOTLOGD_ENABLE=yes

Durante el próximo inicio del sistema se generará el archivo /var/log/boot el cual ya podrá ser revisado:

sudo less /var/log/boot

Los registros anteriores de arranque pueden visualizarse con:

sudo ls /var/log/boot* -hl

y consultarse como ya se ha mostrado.

Para ver otros registros: La mayoría de los registros (logs) del sistema se encuentran en el directorio /var/log/, así como también en varios subdirectorios, por lo tanto sólo basta entrar a dicho directorio y realizar un listado para conocerlos:

cd /var/log/
ls -hl


Otras formas de conocer el sistema

Aunque existen también herramientas gráficas que permiten conocer el sistema, es posible que el ambiente gráfico no funcione, por ello el uso de la terminal es indispensable. Algunas de las herramientas gráficas más conocidas son hardinfo y sysinfo, y para instalarlas desde la terminal basta con ejecutar:

sudo aptitude install hardinfo sysinfo

Nota: hardinfo aparece como System Profiler and Benchmark, y sysinfo aparece con el nombre Sysinfo.
 
Fuente: UsemosLinux