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?
Only Must Live
Saturday, April 13, 2013
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:
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.
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.
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:
El siguiente código:
Espero les sea de utilidad como siempre.
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"
<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.
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....
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.
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.
Subscribe to:
Posts (Atom)