Saturday, April 13, 2013

El fenómeno hacking contra los gob.ar: Protesta, Impunidad, Ineficiencia, Desidia, Aprendizaje o todo junto?

Voy a intentar ser lo más neutral posible y objetivo y a la vez espero sirva para que reflexionemos juntos. Estoy abierto a todo tipo de críticas y/o puntos de vista opositores.

Hace ya varios meses vengo notando cierto crecimiento en materia de hacking (al menos en la región, incluido países limítrofes al nuestro) de agrupaciones que utilizando como bandera las propuestas sociales burlan la seguridad de sitios en su mayoría de índole gubernamental, aunque también suelen caer instituciones sin fines de lucro, organizaciones y demás.

La protesta:
Las razones de protestar son múltiples: Desacuerdo con el Gobierno Nacional o Provinciales, actos de defensa al medio ambiente, denuncias contra temas sociales como ser prostitución, abuso de empresas para con sus trabajadores, y un sin fin de temas más que razonables y como suelo decir "Protestables" y no sólo criticables.
Si analizamos los temas en gral, no varían y diría que en casi nada a las típicas y tan instauradas marchas a lo largo y ancho del país. Se me ocurre pensar que alguien con una capucha que arroja objetos contra un edificio de gobierno en modo de protesta, bien podría ser un hacker y hasta podríamos denominar al ataque en lugar de SQLInjection como StoneInjection? O pensar que el mismo individuo que logra derribar una puerta y lanzar una molotov sería como alguien que logró meter una shell php en un Web Server desactualizado?
Creo que actos o acciones de protesta son muy similares si analizamos su consecuencia, en algunas la destrucción física de los inmuebles afectados y sus derivados y por el otro lado la destrucción, hurto y/o manipulación de la información. Otra pregunta que me hago es: por participar de una manifestación que afecte derechos de otros conciudadanos y/o dañe patrimonio público y/o privado debería sancionarse a un individuo? Y la respuesta creo que es obvia, pero la pregunta da paso al siguiente concepto La Impunidad.

La impunidad, de los actos "siento" que genera cierto caldo de cultivo alentando la generación de delitos informáticos de un público que se suma a una causa que si bien parece coherente, no deja de ser delictiva. Contrario a la utilización del anonimato para ayudar al prójimo, el anonimato para agraviar es repudiable y hasta cobarde diría. Pero y no se me enojen mis amigos de la clandestinidad también es un camino que han descubierto y un medio "creo yo", para llevar adelante sus protestas. Esta impunidad en los casos de hacking se da por varios factores pero uno fundamental es la ineficiencia.

Los responsables de poner fin a la impunidad y hacer que quienes cometan un delito informático lo paguen, son los que tienen que trabajar y muy duro al respecto con herramientas y recursos humanos capacitados (suelo decir que la informática siempre está un paso atrás que sus delitos, si es 2.0 los delitos ya son 3.0 o más), desde los jueces que deben sancionar leyes creadas y debatidas por profesionales en la materia, expertos en seguridad de la información y no allegados o acomodados políticos, la gente del palo como se dice es la que tiene asesorar a los jueces para que las leyes sirvan. Para que los fiscales puedan trabajar con todas las garantías y recursos necesarios.
Es triste saber que la ineficiencia abunda en muchos estratos de la justicia y lograr encausar el análisis de un caso de hacking es muy engorroso (sino inviable) por distintos motivos: el tiempo, la complejidad a la que se enfrentan quienes deben impartir leyes, investigar, realizar allanamientos, etc. Y como en varios casos de delitos comunes, me surge la siguiente pregunta: es tan difícil detectar a quien comete un delito informático? y la respuesta aunque parezca mentira es NO!, es algo que si bien requiere de conocimientos es muy probable pueda establecerse.
Volviendo un poco a los targets los gob.ar, también es importante destacar el último de los conceptos, la desidia. Y en este aspecto es notorio y concurrente ver la falta de prácticas de seguridad de la información en ambientes de gobierno. No quiero quitarles el mérito a los amigos que dedican varias hrs del día al hacking, pero como habrán notado los mismos, en la mayoría de los casos vulnerar estos objetivos se vuelve cada vez más sencillo y sobre todo con el uso de herramientas automatizadas y disponibles para cualquier mortal en la web. Falta de mantenimiento, capacitación, políticas de estado entre otros factores, conllevan a un ambiente informático débil y altamente vulnerable.

El aprendizaje, de lo anteriormente expuesto creo haber aprendido algo y corríjanme por favor si estoy equivocado:
Se ha instaurado en Argentina un nuevo modelo de protesta social que busca según sus anónimos integrantes un país más justo, pero que en su accionar no contempla la ilegalidad y el posible impacto negativo del mismo. Sumado a esto la impunidad que brinda un contexto carente de leyes en materia de informática y con legisladores que rara vez se ocupan de sancionar leyes de Argentina y para Argentina y en cambio aprueban un paquete importado de leyes en la materia. Todo esto hace que estemos en un contexto muy difícil pero no imposible de mejorar.

Me gustaría soñar con que las herramientas de protesta se perfeccionen para bien, sin necesidad de que las agrupaciones anónimas cometan delitos para pedir cambios sino que permitan a partir de la protesta ser un modelo constructivo como lo fue por ej. el modelo del Open Source, de una comunidad constructiva y no destructiva. Aunque sea más difícil la tarea siempre es mejor construir
y generar cambios a destruir. Para pensarlo no?

Wednesday, April 10, 2013

interface eth0 not configured

Me ha pasado el día de hoy que en algunos servers Debian por alguna razón no podía recargar las rutas agregadas al archivo /etc/network/interfaces, arrojándome como resultado de los comandos:
ifdown eth0; ifup eth0 el siguiente error:
interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

Esto se debe a la perdida de asociación de la interface en el archivo /etc/network/run/ifstate, que debe tener para el caso de la interface eth0 el valor eth0=eth0 por ej para mi caso con una sóla interface es el siguiente:
lo=lo
eth0=eth0

Luego de volver a asociarla todo volvió a funcionar.

Espero les sirva como siempre.

Wednesday, March 27, 2013

Algunos comandos linux útiles

Voy a dejar en este post algunos comandos linux útiles que pueden llegar a ayudarlos en algunos casos:  

Ver la cola de postfix para detectar por ej algún ataque de SPAM postqueue -p
Incluso podrían agregar un pipe al final para paginar postqueue -p |more

Listar los 10 procesos que más CPU consumen ordenados por dicha variable
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
Para esto también podrían también recurrir a htop si necesitasen algo más completo.  

Listar las conexiones realizadas a nuestro web server
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
También podríamos chequear algún otro servicio como es el caso de mysql por ej, tan sólo cambiando de puerto netstat -plan|grep :3306|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1  

Ver un log en tiempo real
tail -F logfile Por ej tail -F /var/log/syslog
Para este caso también está buena una tool llamada multitail que permite muy fácilmente aplicar filtros multitail -e filtro -f logfile Por ej multitail -e cuentaspammer -f /var/log/mail.log

Listar las particiones y el espacio diponible en cada una de ellas
df -h

Listar la cantidad de memoria RAM consumida por ej en GB
free -g  

Conocer el tamaño de un archivo y/o directorio
du -hcs file

Listar las reglas de nuestro firewall iptables
iptables -L como también borrarlas ipables -F  

Buscar algún comando previamente ejecutado en el nuestra shell
history |grep comando

Ejecutar el último comando que comience con determinado patron sin tener que escribirlo todo nuevamente
!parte del comando Por ej si habíamos hecho un netstat previamente podríamos escribir !net  

Para el caso de debian conocer si un paquete está instalado o no
dpkg --get-selections |grep paquete Por ej dpkg --get-selections |grep mysql

Comparar dos archivo para detectar diferencias entre ambos
 diff file1 file2

Prometo seguir completado de a poco la lista, saludos.

Friday, January 25, 2013

Iniciar sesión como un usuario diferente y SharePoint 2013

Al parecer la opción Iniciar sesión como un usuario diferente fue removida de la versión de SharePoint 2013, pero todavía quedan algunas formas de utilizarla:

1) Agregar a la url /_layouts/closeConnection.aspx?loginasanotheruser=true esto también funciona en 2010.

2) Iniciar el navegador como otro usuario.

3) La que estoy utilizando actualmente es la modificación del archivo C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES\Welcome.ascx
y agregar antes de la línea: 
 <SharePoint:MenuItemTemplate runat="server" id="ID_RequestAccess"  



El siguiente código:

 <SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser"  
 Text="<%$Resources:wss,personalactions_loginasdifferentuser%>"  
 Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>"  
 MenuGroupId="100"  
 Sequence="100"  
 UseShortId="true"  
 />  


Espero les sea de utilidad como siempre.

Monday, December 17, 2012

Asignar múltiples tareas a un grupo de usuarios desde un workflow en SharePoint 2010

Asignar múltiples tareas a un grupo de usuarios desde un workflow en SharePoint 2010
Hace unos días me encontré con un requerimiento que solicitaba asignar tareas a distintos usuarios a partir de la carga de un nuevo documento en una biblioteca de documentos de SharePoint. Básicamente el requerimiento de negocios decía que cada vez que un administrador subiese un documento a la biblioteca X, debía asignarse a cada usuario de un grupo Y una tarea de lectura.
En lo que primero que pensé es que debía hacerlo con un workflow, pero cuál de las acciones se ajustaría? Así que me puse a googlear un poco y descubrí discusiones como esta http://sharepoint.stackexchange.com/questions/11265/assign-tasks-to-multiple-people-with-multiple-completions y esta http://sharepoint.stackexchange.com/questions/11265/assign-tasks-to-multiple-people-with-multiple-completions las cuales me orientaron un poco en mi solución.

Lo que decidí hacer entonces es lo siguiente:

1) Crear una lista personalizada llamada Lectores (la cual me va a servir para poder luego decirle al workflow a quién tiene que asignarle tareas de lectura), que contiene los siguientes campos: titulo (Una linea de texto) y personas (Persona o grupo, teniendo en cuenta ademas permitir sólo la selección de personas y que el campo a mostrar deberá ser cuenta). Luego cargue un registro con el valor Todos como título y en personas  cargue a cada uno de mis lectores (los cuales son usurios de AD), ese registro por ser el primero tomó el valor de ID 1.

2) Crear una lista de tareas llamada Lecturas Pendientes (Donde se almacenarán las tareas asignadas a cada usuario del grupo Y).

3) Luego con SharePoint Designer edité la biblioteca de documentos X agregando un workflow llamado Crear Tareas de Lectura que se ejecutará automáticamente cuando se suba un documento a la biblioteca de documentos.
Edité el workflow incluyendo una acción de tareas llamada Iniciar proceso de tareas personalizado, relacionado a su vez con la lista de tareas Lecturas Pendientes.

La idea es relacionar el elemento actual, es decir el documento a subir en la Biblioteca de Documentos X, la lista de tareas Lecturas Pendientes y la lista de Lectores. Así que seleccionamos a los participantes del proceso de tareas, en el contexto del workflow, teniendo en cuenta de que la acción se realice para todos los participantes a la vez en paralelo, seleccionando la opción Todos a la vez (paralelo).


Como verán aquí seleccionamos como origen de datos a los Lectores (nuestra lista de usuarios) y de la misma el campo personas que contiene a nuestros usuarios y los devolvemos como usuarios de Windows (Nombres de inicio de sesión, delimitados por punto y comas). Pero el detalle es que lo que necesitamos es buscar en este conjunto de registros que nos devuelve para lo cual utilizo el ID del registro de lista que para mi caso era el 1 ya que sólo contenía un registro donde alojé a todos los usuarios, separados por punto y coma. Esto posteriormente me va a permitir cambiar agregando o quitando personas a mi grupo según se requiera, con sólo editar el registro de lista.

Al final la selección debería ser la como la siguiente:
Y eso es todo ahora cada vez que carguemos un documento en la biblioteca X, se generará una tarea para cada usuario del campo Personas de la lista Lectores, en la lista de tares Lecturas Pendientes.

Nota: Hay varias cosas que hice como personalizar las vistas para la lista de lecturas pendientes, y demás detalles que obvie en este post, pero no son relevantes.

Espero les sea de utilidad como siempre.



Tuesday, December 04, 2012

Cuentas Administradas SharePoint 2010 object reference not set to an instance of an object - error

Cuentas Administrdas y Object reference not set to an instance of an object
Al habilitar el cambio de contraseña automático cuando creamos una cuenta administrada en SharePoint 2010 es común encontrarse con un error del tipo:

Acceso denegado. Sólo los administradores de equipos pueden crear definiciones de trabajo del servicio de administración de tipo: Microsoft.SharePoint.Administration.SPGeneratePasswordJobDefinition, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral....
Es probable que esto ocurra por el nivel de impersonalización que todavía debo entender! http://msdn.microsoft.com/en-us/library/ms681722.aspx

Como les comentaba esto sucede sólo al crear una cuenta seteando la propiedad Habilitar el cambio de contraseña automático.

Esto ocasiona posteriormente el siguiente error al tratar de acceder a Configurar cuentas administradas de la Administración Central de SharePoint.

Luego entonces lo que descubrí googleando un poco es que si quitamos la opción de Habilitar el cambio de contraseña automático a todas las cuentas en conflicto el problema se resuelve y posterior podríamos volver a setearla sin problemas.
Un comando de PS para que vean cómo hacerlo:

Get-SPManagedAccount #Muestra todas las cuentas administradas.
$ma=Get-SPManagedAccount -Identity "domain\spaccount"
$ma
$ma.AutomaticChange=$false
$ma.Update()
$ma

Otra solución es crear las cuentas sin la opción Habilitar el cambio de contraseña automático y una vez creada setear dicha propiedad desde la Administración Central o desde PS.

Todavía tengo que probar si el cambio de contraseñas se realiza realmente para estas cuentas administradas.

Espero como siempre les sea útil.

Fuantes: 
http://social.technet.microsoft.com/Forums/en-US/sharepointadminprevious/thread/406f1817-d687-49d7-9691-26e487fb5577
http://smallcitydesign.com/object-reference-not-set-to-an-instance-of-an-object-when-creating-a-managed-account/
http://msdn.microsoft.com/en-us/library/ms681722.aspx

Wednesday, November 07, 2012

Error 401.1 al acceder a un sitio de SharePoint desde el Servidor WFE DisableLoopBackCheck


Has recibido un error 401.1 cuando al acceder al nombre de dominio completo (FQDN) del sitio de SharePoint desde el servidor? Esto se debe al control de seguridad loopback realizado por Windows Server desde las versiones 2003 SP1 en adelante, así como Windows Server 2008 R2 y Windows Server 2008. Para solucionar este problema, debe agregar una clave del registro para deshabilitar la comprobación de bucle invertido. Esto se puede hacer mediante el Editor del registro regedit, pero también se puede realizar desde powershell con el siguiente comando, abriendo como Administrador una consola de PowerShell:

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword



Espero les sea útil como siempre.

Migrar de MSN a Skype

A sabiendas de que MSN va a ser cerrado en los próximos meses por Microsoft, decidí ya moverme sólo a  Skype con mi Windows 8.

Sólo hay que bajar el nuevo cliente de skype para el desktop (No usen el del store de Microsoft si quieren seguir usando un entorno de IM convencional, ya que no es posible entre otras cosas pasar archivos, agrupar los contactos y demás features muy comunes en MSN).

Es probable que para iniciar la descarga necesiten den una cuenta de Skype o de MSN en este caso utilicé de MSN e incluso se pueden fusionar ambas cuentas como lo he hecho yo que tenía cuentas en ambos servicios y de esa forma unificar contactos y herramientas de comunicación.
Descarga del cliente de https://support.skype.com/en/faq/FA12162/how-do-i-get-the-desktop-version-of-skype-on-windows-8

Una vez descargado se ejecuta y les permite acceder con su vieja cuenta de MSN:



No probé hacer esto en Windows 7 pero calculo debe ser casi lo mismo.

Eso es todo! espero como siempre les sea útil.