Sep 29 2006

2006/09/29: Ya es viernes!!

Ya se acerca el fin de semana, que digo, Ya es viernes!!! se acabo el currar (3 horicas más de tortura y al vermouth!!), y este finde, a parte de la visita de mi syster y Monika, tengo conciertazo! el sábado toca Diego (un compa del curro) junto a otros colegas en el bar donde curro los findes (que hay que pagar hipoteca, vicios varios y esa costumbre tan obrera como extraña de comer todos los días), y aunque esté detras de la barra, disfrutaré como el que más del concierto. El bar es pequeño, así que no problemo para curra y verlos a la vez ;)

Será la primera vez que lo vea en diresto guitarreando a los Maiden, judas, sutagar, motorhead, manowar… y demás fauna. Intentaré subir video o fotos o algo.

En fin, que os divirtáis el finde, y las recomendaciones de costumbre: dormir en compañía y sed malos!!

Os dejo un video de unos anuncios de probabilidad 0.00000001%, jiji.

Sep 29 2006

Seguridad web

Interesante artículo sobre seguridad en la web publicado por Chema Alonso (MVP Microsoft) en PCWorld y que ahora nos lo copypastea en su blog.

En el artículo trata sobre la situación actual de la web, de lo seguros que nos sentimos así como de las causas que llevan a la inseguridad reinante hoy día en la web (joder, que hasta yo, que no controlo una mierda de seguridad he hecho mis pinitos con inyección SQL o man in the midle, técnicas, por cierto, de las cuales nos hablará en este blog, jeje, aunque…. ummmm… esto…. guau!, yo no he hecho nada no hay pruebas ni video, ni fotos, ni ná de ná, que yo soy bueno y no haga nada ilegal, jeje).

Entre las causas de la poca seguridad que existe, destaca el papel que juegan las empresas a la hora de ahorrar costes en la producción de una aplicación, ¿y donde se pueden ahorrar costes? pos en mi sueldo (como en cualquier curro, a la hora de apretar el cinturón siempre nos lo apretamos los mismos, mientras ellos siguen engordando sus bolsillo a nuestra costa, pero bueno, este es otro tema del que ya hablaremos largo y tendido) y en invertir poco tiempo en que alguien ajeno al desarrollo de un proyecto pruebe la aplicación contundentemente, dejando estas pruebas al que ha realizado la aplicación, que como se la ha programado, la conoce, y como la conoce, es el menos indicado para probarla. Cuenta más cosas muy interesantes, pero para saberlas mejor leerselo.
Lo dicho, un artículo muy interesante de obligada lectura.

Sep 29 2006

SQLServer: Realizar export e import de una BBDD

Ya explicamos en su día (aquí, aquí y aquí) como se hace en Oracle, así que, aprovechando que me he tenido que traer la BBDD de una empresa para poder probar la aplicación y ver una par de bugs que había, pues os pongo el código necesario para realizar una export y una import de una base de datos alojada en SQLServer 2000.

Para hacer una copia de la BBDD, lo que haremos será crear un backup, usea, un fichero .bak, que lo crearemos lanzando la sentencia siguiente en el SQL Query Analizer:

  • BACKUP DATABASE NombreBBDD TO DISK = ‘c:\ruta\fichero.bak’

De esta forma se creará un fichero .bak en la ruta que le hallamos indicado, dentro de la máquina donde este alojado el SQLServer del cliente, con el nombre que le hemos puesto. Bien, ya sólo nos queda comprimirlo, meterlo en el FTP y bajarnoslo. Una vez que lo hallamos bajado y descomprimido en una carpeta del propio servidor donde este alojado el SQLServer, volvemos al SQL Query Analizer y lanzamos la sentencia siguiente:

  • RESTORE FILELISTONLY FROM DISK = ‘C:\backup\fichero.bak’

De esta forma sabremos los nombres lógicos de los ficheros .mdf y .ldf que contiene este fichero.bak (en este ejemplo se llaman BBDD_Data y BBDD_Log). Una vez los sepamos ya sólo nos queda lanzar la sentencia siguiente:

  • RESTORE DATABASE NombreBBDD FROM DISK = ‘C:\backup\fichero.bak’ WITH MOVE ‘BBDD_Data’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\BBDD_Data.mdf’, MOVE ‘BBDD_Log’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\BBDD_Log.Ldf’ , REPLACE

Y ya tendríamos la BBDD del cliente en nuestro SQLServer 2000 rulando para poder atacarla desde la aplicación y ver por que da ese puto error.

[!] Naturalmente, todo esto se puede hacer a golpe de ratón, pero es más aburrido, ¿no creeis?

Sep 28 2006

ASP.NET: Los combos en el spread que estén siempre visibles

Así es, ya tenía terminado (o casi, jeje) el proyecto (uno en los que ando programando) cuando el cliente nos pidio que los combos de los spreads estuviesen visibles. Pues bien vamos paso a paso.

Cuando necesitamos que una celda del spread tenga un combo, diseñamos en código dicha celda de la siguiente forma:

  • Dim oCombo As New FarPoint.Web.Spread.ComboBoxCellType
  • CargarComboSpread(oCombo)
  • Me.vasSpread.Sheets(0).Columns(1).CellType = oCombo
  • Me.vasSpread.Sheets(0).Columns(1).DataField = “CodigoCombo”
  • Me.vasSpread.Sheets(0).Columns(1).Label = “Descripción”
  • Me.vasSpread.Sheets(0).Columns(1).Width = 243
  • Me.vasSpread.Sheets(0).Columns(1).Visible = True
  • Me.vasSpread.Sheets(0).Columns(1).Locked = False

De esta forma ya predeterminamos esta celda con un combo cuyos valores los hemos cargado desde la BBDD. Una vez que lo cargamos, si queremos seleccionar un valor (una vez ejecutada la aplicación, usea, cuando entramos en la page que hemos montado), debemos hacer doble click para que se muestre el botón del combo y así poder seleccionar un elemento del combo.

Pero que pasa si no queremos hacer doble click para que aparezca la combo? muy simple, si queremos que la combo esté siempre visible, no hay más que añadir una línea más de código al código anterior:

  • oDS = MiClase.fSelectValEnumCombo
  • CargarComboSpread(oCombo)
  • oCombo.ShowButton = True
  • Me.vasSpread..Sheets(0).Columns(1).CellType = oCombo

Y de esta forma tendremos el combo siempre visible sin tener que hacer doble click para que se muestre.

[!] A mi, por diseño, me gusta más la primera opción, peeeeero el analista es el analista, snif

Sep 27 2006

Orkut, un error un tanto gracioso

Tras registrarme en la comunidad y echarle un pequeño vistazo para ver que tal está, me encuentro con el primer error, que viniendo de google y para no perder la costumbre es un tanto diferente.

Un link al errorcito en cuestion

http://www.itsasontzibaten.net/images/errororkut.jpg

Para quien no sepa que es Orkut, es una comunidad de comunidades o algo asi para hacer amigos con intereses comunes. Intercambiar ideas. Organizar eventos…

Es necesario ser invitado para poder ser miembro, asi como poseer una cuenta de correo de gmail, asi que si alguien desea formar parte de ella puede dejar su direccion en los comentarios y os invitare gustosamente.

Sep 27 2006

Oracle: ¿Como cargar solo unas tablas y no todo el export?

Ahora para cargar en vez del export completo, sólo unas tablas, te guardas el archivo .dmp en c:\MisTxorradas (por ejemplo, por que si te gusta escribir guardalo en c:\mmmn\jhgdahgahf\jgsafdkjhg\jhgfdsajh).

Una vez guardada, limpias el contenido de la/s tabla/s del esquema destino que vayas a exportar y una vez limpias te abres el MSDOS y escribes lo siguiente, despues de situarte en el directorio en el que este el archivo .dmp:

Para Oracle 8:

  • imp80 Usuario/Pas@Service file=MiExport.dmp log=kk.log tables=(tabla1,tabla2,….,tablaN) ignore=y commit=y

Para Oracle 9i:

  • imp Usuario/Pas@Service file=MiExport.dmp log=kk.log tables=(tabla1,tabla2,….,tablaN) ignore=y commit=y

…. y con esto y un bizkotxo hasta mañana a las 8.

Sep 26 2006

Inferno. 02:- Recogida de Información. Footprinting Parte I

Antes de empezar a realizar una auditoria de seguridad de caja negra (al igual que si lo que se quiere realizar es una intrusión hacker en un servidor) la primera fase es recoger información. Dentro de la fase de recogida de información existen dos etapas difrentes:Footprinting y Fingerprinting.

Footprinting

Literlamente huella del pie, pisada. El objetivo de esta fase de la auditoria es conseguir encontrar todos los rastros que se han dejado por Internet. En esta fase se busca tanto la información que es pública, como aquella, que se ha hecho pública. Es decir, que tenemos disponible a priori sin hacer nada “ilegal”.

Es mi fase preferida y en ella se encuentran cosas muy curiosas. Hagamos un ejemplo con, mmmm, (como es legal esta fase, podemos hacerlo con cualquiera) así que le tocó a, mmmm, venga, a www.compatiblelinux.org. Como ya sabéis tengo debilidad por los servidores web.

Un paseo por la web

Vale, primero, leer que es barato y se aprende mucho, así que primero vistado a la info publica que nos ofrece la web, para ello, a ver que nos cuentan:

Seguro que esto corre sobre algún linux. Bueno, vale, ya se que no ha sido un buen truco, pero las evidencias se cogen en esta fase. ;) Presuponemos una arquitectura LAMP (Linux, Apache, MySQL y PHP) pero hay que comprobarlo y además, descubrir las versiones concretas.

Hacemos click en registrarnos para ver la llamada a algún código de servidor y lo que vemos es que se llama a un jsp

http://www.compatiblelinux.org/login.form.jsp

Así que puede que exista php, pero parece ejecutar jsp. Aunque veamos las extensiones, están pueden cambiarse y nos pueden engañar. Los servidores web realizan una asociación entre una extensión y un motor de ejecución y se puede poner que una extensión .jsp realmente sea un php. Esto es muy típico en con las extensiones .do o .phtml o .rhtml o .loquequieras, para que no se conozca el motor. Todo puede ser, pero asumiremos que tenermos motor java.

Pidamos la url normal de los servlets

http://www.compatiblelinux.org/servlet/

y nos da un mensajito de error Apache Tomcat/4.1.24.

Bueno, ya tenemos más info, y todavía sin tocarlo.

Spidering

Lo siguiente que se suele realizar es descargar todos los ficheritos púbicos de la web. Podemos usar cualqueir programa tipo teleport pro o similar para descargar todos los ficheros html, fotos, y cualqueir doc, pdf, xml, js, etc… que pudiera tener el servidor. Así nos ahorramos el tener que ir leyendo nosotros el código fuente. Cuando tengamos una copia navegable en local podemos sacar más información de los códigos fuentes que nos hayan venido. La parte de Spidering no acaba solo en esa fase sino además intentando descubir los directorios típicos de varios servidores /images/, /cgi-bin/, /doc, /scripts, …..en la fase de fingerprinting utilizaremos alguna herramienta más para encontrar más info de este tipo.

En la página principal, mirando el código fuente aparecen unas funciones javascript características de cierto programa de edición de páginas web y un poco más abajo aparece el siguiente texto:
–DWLayoutTable–

Confirmado, Dreamweaver

http://www.twelvestone.com/forum_thread/view/7377

¿Dreamweaver?? ¿Por qué me suena raro?

[Continuará]
Š

Sep 26 2006

Oracle: ¿Como cargar un fichero export (.dmp) en oracle?

Es decir, nos hemos traido una BBDD de Oracle desde el cliente en un archivo .dmp (ya explicamos hace unos días como se creaban estos ficheros .dmp) y ahora queremos meterla (la BBDD, degeneraus!) en nuestro Oracle.

FACIL, y además sin utilizar el Toad. Abre el MSDOS, te pones en el directorio donde tengas el export. Normalmente, un fichero con extensión “.dmp”.

Ahora, por otro lado, abres el Security Manager de Oracle, entrando como administrador al servidor donde quieres hacer la carga. (Ejemplo: user->Usuario password->Pas servicio->Service).

Nos situamos en seguridad–>usuarios. Selecciona el usuario en el que quieras cargar el export (como ejemplo utilizaremos el esquema Cargas) y pulsa botón derecho, en el menu contextual seleccionamos “Crear como” (“Create like” en marciano) Y le ponemos el mismo nombre y password que tiene el usuario que hemos utilizado de origen (trankis, que no peta, seguir leyendo y vereis porque). Lo dejas así, no pulses en aplicar, ni en aceptar ni en ná. Es decir, sin crearte una copia del usuario vamos a dar el paso siguiente, que es eliminarlo. Te vas a MSDOS y tecleas:

  • c:\>sqlplus Usuario/Pas@Service

Con ello te conectas a la base de datos mediante SQL*Plus. En el prompt tecleas:

  • sql>drop user cargas cascade;

[!] ah! no la cagues como yo y pon al final de la linea el ; que NO es decoracion!

Le damos al intro y al de unos segundicos nos aparecerá algo como “usuario borrado” o su equivalente en marciano. Que no! Que no me se ha ido la olla, trankilos. ¿No te acuerdas que antes de eliminar al usuario Cargas, desde el Security Manager de oracle le hemos dado al Create Like? je je pues eso, vete de nuevo al Security Manager (recuerda que lo tienes abierto) y ejecuta el “Crear como” que tienes abierto desde el primer paso. Simplemente pulsas aplicar, y … tatxan! aparecera un mensajiko que diga “usuario creado correctamente” (o su equivalente en marciano).

Una vez creado, seleccionas el usuario. En la parte derecha, se abriran varias pestañas. Te pones en la de roles/privilegies. Seleccionas tipo de privilegio->privilegios de sistema. En la parte de abajo seleccionas el único que hay y le das a la flecha que apunta hacia arriba (quitar ese privilegio) y le das al aplicar.
Ahora te posicionas en la pestaña de Cuotas, y compruebas que los tablespace para ese esquema más el temporal estan unlimited, sino, eliges unlimited para todos los tablespaces asignados al usuario más el temporal (hay un pequeño bug en el Oracle, ya que normalmente si le clickas directamente a cuotas sin cambiar de usuario no sale nada, para que te salga, simplemente miras la cuota de otro usuario cualquiera y luego vuelve al usuario que te interesa). Le das otra vez al apply.

Ahora te pasas a la ventana de Msdos en la que tenias el SQL*Plus y escribes:

  • sql>quit

osea que nos vamos, que salimos, que cerramos el SQL*Plus
ahora te vas al msdos y tecleas:

Para ORACLE 8:

  • c:\>imp80 Usuario/Pas@Service file=archivo.dmp log=kk.log fromuser=EsquemaOrigen touser=cargas commit=y ignore=y

Para ORACLE 9i:

  • c:\>imp Usuario/Pas@Service file=archivo.dmp log=kk.log fromuser=EsquemaOrigen touser=cargas commit=y ignore=y

esto hace que se cargue desde el export (archivo.dmp) todos los objetos del usuario (EsquemaOrigen, cliente origen del export en el cliente) sobre el nuestro usuario (Cargas, usuario que nosotros utilizamos).
Cuando termine, que tarda un ratiko, y tras verificar que no produce errores, te vas al SQL worksheet de oracle y lanza la siguiente instrucción:

  • select ‘alter index ‘||index_name||’ rebuild tablespace ayra_idx;’ from user_indexes where tablespace_name<>‘AYRA_IDX’;

Esto genera las sentencias SQL necesarias para para mover los indices a su ubicación correcta. (Aunque desde la instalacion del Oracle 9i se cambio la forma de hacer el export, o bien se cambio la configuración del oracle en nuestro servidor o por lo que sea para que este paso no fuera necesario y no hacerlo ya que lo hace solo anteriormente, de todas maneras si te toca hacer un export, con consultarle al vguru de Oracle del curro en el que estes, si hay o no hay que hacerlo vale). Te copias todas esas sentencias y las ejecutas con el propio SQL WorkSheet. Cuando termine estará listo.

…. y con esto y un bizkotxo hasta mañana a las 8!

Sep 25 2006

Inferno. 01:- Auditar un Sistema

La auditoría de un sistema siempre es un trabajo arduo y complejo y lo mejor de todo, es que no ofrece una garantía total ante problemas de seguridad. Si esto fuera posible sería genial y no habría problemas de seguridad, pero en el mundo actual debemos convivir con el condimente de lo conocido y lo desconocido.

Está claro que pese a no ser un proceso 100 % garantizado, debemos intentar conseguir eliminar todas las posibles brechas de seguridad. Para conseguir eliminar esas brechas deberemos diseñar un buen proceso de auditoría que deberá ser ejecutado de forma periodica dentro del mantenimiento normal de los servidores de la compañía.

Características de un proceso de auditoría

A la hora de definir un proceso de auditoría debemos establecer el punto de ejecución y el nivel de información con que cuenta el auditor. Un ejemplo, en una auditoría de un servidor de correo electrónico puede ser que obtengamos un resultado seguro si lo auditamos desde Internet y por el contrario podría ofrecernos un servidor vulnerable si lo auditamos desde un punto de la red interna. Dependiendo de la información que tenga el auditor tendremos:

Auditoría de Caja Negra

Una auditoría de caja negra trata de ver si un sistema es vulnerable mediante técnicas hacker y sin conocer ninguna información interna del sistema. Dichas evaluaciones no garantizan que un sistema sea seguro ya que puede que el atacante no haya sido capaz de descubrir una debilidad existente en el sistema porque esté oculta tras una medida de protección perimetral. No obstante, la ejecución de una auditoría de caja negra pone de manifiesto la visión que pueden tener la mayoría de los hackers que actúan por Internet sobre el servidor. Las herramientas utilizadas en este tipo de auditorías suelen ser escaners de información, tecnicas de fingerprinting, footprinting, escaners de vulnerabilidades, etc… Iremos hablando poco a poco de este tipo de herramientas.

Auditoría de Caja Blanca

Una auditoría de caja blanca se realiza con credenciales de administración del sistema. En ella se analiza la configuración de los puntos clave en cada uno de los sistemas y servicios de la compaña. En este tipo de auditoría se realiza un estudio de los sistemas y se buscan soluciones de protección del sistema. Para realizar este tipo de auditoría se cuenta con herramientas que son ofrecidas por los propios fabricantes de software y chequean la correcta configuración del software. Ejemplos de estas herramientas son el Microsoft Baseline Security Analyzer o herramientas tipo Idera Software o GFI que auditan, con privilegios de administración, el estado del sistema.

Una vez que se elija el tipo de auditoría (Caja Blanca o Caja Negra) se deberán escojer los puntos de ejecución, esto es, como veíamos en el ejemplo, se debe elegir desde que lugar vamos a suponer que se encuentra el atacante, porque desde ese punto es donde deberemos situar la auditoría. Red Interna, DMZ, Internet, Clientes VPN, Oficinas remotas, etc…

Una buen proceso de auditoría debería realizarse desde todos los puntos desde los que se accede al servidor y desde todos los niveles de privilegios que pueda tener un atacante situado en ese punto. Hay que pensar que todos los que puedan conectarse con el servidor, tengan o no privilegios son enemigos y desde ahíse debe articular todo el sistema de auditoría.

Hasta la semana que viene.

Sep 21 2006

Evento: Comunicaciones - ¡Secretos en red! (Zaragoza + Zamudio)

Así es, sigue la gira TechNet de seguridad que ira recorriendo la peninsula ibérica de norte a sur y de este a oeste. Por lo que me comentaron ayer a la noche, ya que aprovechando que Maligno estaba por estos lares salimos de bares, fue bastante divertida e instructiva. Vamos, totalmente recomendable la asistencia.

[Disclaimer] Maligno es uno de los ponentes [/Disclaimer]

Las póximas salidas cercanas a nuestra vieja city son las siguientes (pa que luego os quejeis que avisamos tarde!):

[1]
jueves, 28 de septiembre de 2006 9:30 - jueves, 28 de septiembre de 2006 13:45 Madrid, París
Hora de bienvenida: 9:15
Idioma: Español

Centro de Tecnologías Avanzadas
Avda. Alcalde Ramón Sainz de Varanda. 15
Zaragoza Aragón 50009
España

Registro evento Zaragoza

[2]
martes, 03 de octubre de 2006 9:30 - martes, 03 de octubre de 2006 13:45 Madrid, París
Hora de bienvenida: 9:15
Idioma: Español

TISA - Parque Tecnológico de Bizkaia
Auditorium
Ibaizabal Bidea, Edif 101
Zamudio (BIZKAIA) País Vasco 48170
España

Registro evento Zamudio (Bizkaia)

Read more »