<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Security Dojo</title>
	<atom:link href="http://security-dojo.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://security-dojo.com</link>
	<description>Mandando tus logs a /dev/null desde 1976</description>
	<pubDate>Mon, 28 Apr 2008 17:07:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1-alpha</generator>
	<language>en</language>
			<item>
		<title>FLISOL 2008 en Monterrey, N.L.</title>
		<link>http://security-dojo.com/uncategorized/flisol-2008-en-monterrey-nl/</link>
		<comments>http://security-dojo.com/uncategorized/flisol-2008-en-monterrey-nl/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 17:07:53 +0000</pubDate>
		<dc:creator>nahual</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://security-dojo.com/uncategorized/flisol-2008-en-monterrey-nl/</guid>
		<description><![CDATA[El FLISOL fue como todos los demas en sabado 26 de Abril, el FLISOL en Monterrey fue muy enfocado a la seguridad informatica, por lo cual me mandaron una cordial invitacion a dar una platica sobre seguridad.
Fue interesante ya que Karl Heinz me comento que no querian en la platica una fuerte cantidad de codigo [...]]]></description>
			<content:encoded><![CDATA[<p>El FLISOL fue como todos los demas en sabado 26 de Abril, el FLISOL en Monterrey fue muy enfocado a la seguridad informatica, por lo cual me mandaron una cordial invitacion a dar una platica sobre seguridad.</p>
<p>Fue interesante ya que Karl Heinz me comento que no querian en la platica una fuerte cantidad de codigo ya que no querian invitar a la creacion de script kiddies, le comente que no habria problema que no publilcaria ningun fallo, o ninguna tecnica en especifico pero que era muy raro para mi dar una conferencia sin codigo, finalmente llegamos a un compromiso y la conferencia iba a ser &#8220;Como ser un buen auditor de seguridad&#8221; la cual ya estando ahi cambie por &#8220;Pentesting: Seguridad generada por &#8216;Hackers&#8217;&#8221; el titulo como siempre puede ser controversial pero bueno daba un mejor enfoque a algunos puntos en especifico que tengo sobre la seguridad en estos momentos en Mexico.<br />
<span id="more-14"></span><br />
Invitados a FLISOL Monterrey estuvieron tambien:</p>
<p>- Gunnar Wolf<br />
- Ruben Aquino<br />
- VoX (En Sustitucion de la persona del taller de GnuPG que no fue)<br />
- Ricardo Lira<br />
- Otros</p>
<p>Nos pusimos de acuerdo Gunnar, Ruben y yo para vernos e irnos juntos al aeropuerto porque saliamos en el mismo vuelo el viernes en la noche, Ruben no pudo llegar y perdio el vuelo por 5 minutos (literalmente) a lo cual tuvo que cambiar su vuelo para el dia sabado en la mañana para poder llegar a dar su platica.</p>
<p>Gunnar y yo llegamos y estuvimos platicando de todo, estados de comunidad, seguridad, tendencias, cervezas, #mendozaaaa, etc. llegamos y nos recogio muy amablemente la Universidad Regiomontana y nos llevo al hotel que la verdad estaba excelente, como siempre la gente regiomontana son excelentes anfitriones, con decirles que ni le hable a mi hermana y eso que vive ahi, me falto tiempo (ya sabian que seria dificil vernos) y era el reencuentro despues de andar por el DF tanto tiempo regresar el &#8220;terruño&#8221;.</p>
<p>En la noche paso Karl Heinz por nosotros para cenar, conocimos a mas personas involucradas en el FLISOL y fuimos rapidamente a la sede para ver las instalaciones. Telmex patrocino 2 lineas de 4 Mbit para el evento para que los updates no tuvieran ningun tipo de problema, ademas mando el beta de su nuevo router, que me quede con ganas de<br />
jugar con el pero a ver si consigo uno para mi unas semanas, para ADSLv2 y que vieramos que tal funcionaba y que tal nos gustaba. Sinceramente a mi no me gusto la interface, es un Modem Tompson y que Dios me libre no me deja configurar mas que 3 cosas, del servidor DHCP no me deja configurar el lease, el cual tiene un grandisimo tiempo &#8230; 26 segundos, pero bueno a caballo dado no se le ve colmillo.</p>
<p>Nos fuimos a dormir y prepararnos para el dia siguiente.</p>
<p>El sabado en la mañana comenzamos el dia a las 8:30 con un desayuno rapido y salimos a la conferencia, ya estando en la conferencia comenzamos a ver a la gente que llego, llego bastante gente, pero lo interesante es que llegaron un monton de GUL! La verdad estuo bastante bien, comenzo las platicas Gunnar, quien fue bastante chistoso porque<br />
utilizo la maquina que tienen para la presentacion, que tenia &#8230;.. ¿Windows XP? jajaja lo cual causo el primer chiste y rompio el hielo y comenzo el FLISOL!</p>
<p>La platica de Gunnar Wolf fue bastante interesante, sobre todo que esta basada en la parte del administrador, y tiene una parte sobre software libre, la implementacion y que en realidad es software libre y lo que significa tanto generalmente como para la seguridad.</p>
<p>Al final estuve a punto de ceder mi tiempo a Gunnar cuando alguiuen le comento que que pensaba sobre el caso del standard OOXML, pero se contuvo y pudimos seguir rapidamente con las platicas, dieron un descanso de 5 minutos para la siguiente conferencia (yo).</p>
<p>Despues de como 15 minutos porque la gente no entraba y porque algunas personas se fueron al taller de GnuPG que estaba dando VoX comenzamos, mi platica esta embedida aqui asi que la pueden ver, en realidad son la compilacion de las preguntas que mehan hecho sobre como poder entrar al rubro de la seguridad como pentester, investigador y generador de seguridad a todos los niveles.</p>
<p>Mostre un poco de codigo e hize enfasis en algo por lo que he luchado que se comprenda durante ya casi 8 años: &#8220;La seguridad basada en tigres de papel no sirve, debe ser implementada, mantenida y generada desde sus bases: la programacion, el sistema operativo y la interaccion de la red y sus elementos con los usuarios&#8221;.</p>
<p>Asi mostre algunas de las investigaciones que he generado, algunas cosas chistosas que he encontrado y termine mi participacion, no sin antes tener un tema de controvercia:</p>
<p>Cuando estaba hablando de que tener para pentesting comente que se debian conocer varios lenguajes, sin embargo en las preguntas me hicieron una interesante, &#8220;¿Porque hay tantos fallos en porcentaje respectivo con el total de programas en el lenguaje PHP?&#8221;, mi unica respuesta es &#8220;La cultura de la programacion en PHP&#8221;, se que incrementara una guerra<br />
de flamas a la cual no quiero ni tener que llegar con traje de asbesto asi que aprovechare para clarificar:</p>
<p>Mucha de la cultura asi como del enfoque de PHP fue generado a la creacion y programacion rapida de un entorno web, asi como conexiones con otras cosas, pero tiene la filosofia de &#8220;si funciona esta excelente&#8221;, he visto aleluyas por codigo de mas tipo spaggetti de este siglo en lugar de la simplicidad y la belleza, se que es un lenguaje nuevo, sin embargo es un lenguaje con cosas como global registers on, con no sanitizacion de input automatico y con otras cosas conlleva a un falso sentido de la seguridad, si debe ser facil alguien debe<br />
llevar ese sentido y restringirlo para que no haya problema con los nuevos, ya sea que se les diga que hacer y como hacerlo o simplemente poner en el default la negacion del mismo, global registers fue default ON hasta PHP 5.</p>
<p>Espero que la cultura de los programadores de PHP se mueva mas a la seguridad y se mueva mas a la belleza de la simplicidad de codigo, ¿porque tirar 30 lineas cuando puedes tirar 5? Aun mas, espero que los programadores nuevos comiencen a tomar decisiones de lenguajes, porque intentar hacer algo en web con C (por ejemplo una pagina) si lo puedo<br />
hacer con PHP que es para web, pero porque hacer arquitecturas cliente/servidor con PHP si tengo lenguajes que son mas eficientes en eso?</p>
<p>En fin, seria un debate el cual rivalizaria con si existe una comunidad de Linux en Mexico &#8230;</p>
<p>Despues hubo varios talleres y ponencias en donde se expresaron cosas interesantes como &#8220;parchar no sirve&#8221;, &#8220;hacer pentesting no lleva a nada&#8221; y que &#8220;las politicas son donde hay que ir&#8221; claro que esto lo dijo una persona que se dedica a esto, me puso un poco triste porque desgraciadamente esta fuera de la realidad, pero cada quien con sus problemas yo dudo que este correcto el 30% de las veces de todos modos.</p>
<p>En la tarde se tuvo que ir Gunnar, nos despedimos y me fui a dormir un poco al hotel para prepararme par ala fiesta del a noche, no sin de verdad haberme reprochado no poder presentarme con una chava mega guapa que es linuxera, ni modo mi timidez me gano mal plan, hasta instalo linux en su ipod y varias cosas.</p>
<p>Como a las 11:00PM nos lanzamos Heinz y yo para barrio antiguo para la fiesta que fue en el Anana, llegamos a 3 cuadras de la fiesta, y me pregunto si queria ir a un antro medio under techno, no pude decir que no llegamos y nos dijeronque ese dia habia &#8220;Un show de unos chilenos&#8221;, pagamos el cover comenzamos a chelear y resulto que el grupo de chilenos era el grupo queu cantaba &#8220;Esterechez de corazon&#8221; que ahora estan mucho mas metidos en el spycho y el trance, en el inter de los cambios de sus canicones hizo remixes de micheal Jackson, musica de los 80s, hasta los beegees, lo increible es que lo cantaba y las canciones hasta la de los beegees le salieron igualitas, estuvimos ahi cantnado y cheleando hasta que termino el show, de ahi salimos y nos volvimos a perder en el mar de bares, regresando al hotel a las 7AM solo para dormir 1 hora y levantarme para regresar en avion.</p>
<p>Quiero expresar mi agradecimiento a los organizadores de FLISOL y en especial a Karl Heinz por todo su apoyo, cordialidad y buscar que todos nos sintieramos a gusto, definitivamente para mi un excelente evento!</p>
<p>¡Nos vemos en el BugCON!</p>
]]></content:encoded>
			<wfw:commentRss>http://security-dojo.com/uncategorized/flisol-2008-en-monterrey-nl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programacion &#8220;Extrema&#8221;</title>
		<link>http://security-dojo.com/programming-bits/prog-extrem/</link>
		<comments>http://security-dojo.com/programming-bits/prog-extrem/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 18:29:29 +0000</pubDate>
		<dc:creator>nahual</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[programación extrema]]></category>

		<guid isPermaLink="false">http://security-dojo.com/uncategorized/eaea-intento-1/</guid>
		<description><![CDATA[Programacion Extrema NO es una programacion que sube montanas, anda en motocross y se avienta escaladas libres, es una programacion que busca optimizar el numero de lineas, complejidad y velocidad de las cosas, un ejemplo es lo que llamo un arreglo de funciones, o tambien funciones flexibles, un programa normal que busca comandos dentro de [...]]]></description>
			<content:encoded><![CDATA[<p>Programacion Extrema NO es una programacion que sube montanas, anda en motocross y se avienta escaladas libres, es una programacion que busca optimizar el numero de lineas, complejidad y velocidad de las cosas, un ejemplo es lo que llamo un arreglo de funciones, o tambien funciones flexibles, un programa normal que busca comandos dentro de un archivo podria verse asi:</p>
<p><code></p>
<pre name="code" class="c">

#include < stdio.h >
#include < unistd.h >
int funcion1(char *linea) {
printf(&#8221;orale entro a funcion1\n&#8221;);
return 0;
}
int funcion2(char *linea) {
printf(&#8221;entramos a funcion2 %s\n&#8221;, linea);
return 0;
}
int main(int argc, char **argv) {
if(argc < 2) {
printf("Uso: %s < palabra >\n&#8221;, argv[0]);
return -1;
}
printf(&#8221;ahora mandamos ejecutar funcion1\n&#8221;);
funcion1(argv[1]);
printf(&#8221;ahora ejecutando funcion2\n&#8221;);
funcion2(argv[1]);
printf(&#8221;terminamos\n&#8221;);
return 0;
}
</pre>
<p></code></p>
<p>la salida del archivo es la siguiente:</p>
<pre>
root@firebolt f00 # gcc -o normal normal.c
root@firebolt f00 # ./normal www.soldemorelia.com.mx

Ahora mandamos ejecutar funcion1
se mando www.soldemorelia.com.mx a funcion1
ahora ejecutando funcion2
se mando www.soldemorelia.com.mx a funcion2
terminamos
root@firebolt f00 #
</pre>
<p>Un programa que es flexible es el siguiente:</p>
<pre name="code" class="c">
#include < stdio.h >
#include < unistd.h >
struct ejemplo {
int id;
char *nombre;
int (*execute)(char *linea);
};
int funcion1(char *linea) {
printf(&#8221;se mando %s a funcion1\n&#8221;, linea);
return 0;
}
int funcion2(char *linea) {
printf(&#8221;se mando %s a funcion2\n&#8221;, linea);
return 0;
}
struct ejemplo f[] = {{1, &#8220;funcion numero 1&#8243;, funcion1},{2, &#8220;function numero 2&#8243;, funcion2}, {0, NULL, NULL}};
int main(int argc, char **argv) {
int i = 0;
if(argc < 2) {
printf("Uso: %s < palabra >\n&#8221;, argv[0]);
return -1;
}
printf(&#8221;ahora mandamos ejecutar funcion1\n&#8221;);
f[0].execute(argv[1]);
printf(&#8221;ahora ejecutando funcion2\n&#8221;);
f[1].execute(argv[1]);
printf(&#8221;terminamos\n&#8221;);
return 0;
}
</pre>
<p>El codigo es un poco mas largo pero si se quisiera agregar una funcion extra solo se tendria que agregar la funcion y una linea a a estructura, esto da la posibilidad de hacer funciones o cambiar funciones al vuelo y decir “si la palabra es asi has esto si no has lo otro” sin utilizar tanas lineas de codigo y mucho mas facil de leer y mantener.</p>
<p>Regresamos al codigo puro! La proxima semana veremos un programa que nos deja checar servidores y que utiliza ¡funciones flexibles!</p>
]]></content:encoded>
			<wfw:commentRss>http://security-dojo.com/programming-bits/prog-extrem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tu Peor Enemigo: El Otro Admin</title>
		<link>http://security-dojo.com/security-bits/tu-peor-enemigo-el-otro-admin/</link>
		<comments>http://security-dojo.com/security-bits/tu-peor-enemigo-el-otro-admin/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 01:34:06 +0000</pubDate>
		<dc:creator>nahual</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[Tu Peor Enemigo]]></category>

		<category><![CDATA[configuraciones]]></category>

		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://security-dojo.com/security-bits/tu-peor-enemigo-el-otro-admin/</guid>
		<description><![CDATA[Sandino Araico Sanchez dentro de sus conferencias ha generado controversia dandoles el titulo del &#8220;Tu Peor Enemigo&#8221;, dentro de esta conferencia (que recomendamos mucho) intenta buscar los peores enemigos de un buen sistema y una buena seguridad de lo mismo.
Tomando el ejemplo de Sandino, daremos nosotros lo que se debe de hacer para
contrarrestar a &#8220;Tu [...]]]></description>
			<content:encoded><![CDATA[<p>Sandino Araico Sanchez dentro de sus conferencias ha generado controversia dandoles el titulo del &#8220;Tu Peor Enemigo&#8221;, dentro de esta conferencia (que recomendamos mucho) intenta buscar los peores enemigos de un buen sistema y una buena seguridad de lo mismo.</p>
<p>Tomando el ejemplo de Sandino, daremos nosotros lo que se debe de hacer para<br />
contrarrestar a &#8220;Tu Peor Enemigo&#8221;.</p>
<blockquote><p>&#8220;Yo no he cambiado Nada&#8221; &#8212; Tu Peor Enemigo: El Otro Administrador.</p></blockquote>
<p>Esta frase la he oido de clientes, administradores, estudiantes y  hasta familiares: &#8220;Yo no he cambiado nada&#8221;, &#8220;Solo dejo de funcionar&#8221;, &#8220;De la nada ya no jala&#8221;,etc.</p>
<p>Esta frase es la peor frase que se puede oir sobre todo a altas horas de la noche o muy muy temprano en un dia de trabajo, ya que sabemos que habran cientos de llamadas de usuarios que no podran usar este servicio. Tuve yo un encuentro con el peor enemigo en una compañia a la que le daba servicio, siendo rarisimo que dejaran de usarse los servicios tuve que obviamente<br />
ponerme a trabajar para detener a uno de los peores enemigos: &#8220;El Otro Administrador&#8221;</p>
<p><span id="more-8"></span></p>
<p>Obviamente restriccion de privilegios no funcionara ya que el tambien es administrador y el debe de tener privilegios para reiniciar servicios, hacer cambios requeridos, etc.</p>
<p>El problema entonces se refiere tanto a saber que se cambio, como a mantener una función que inhabilite los cambios en servicios que son criticos.</p>
<p>¿Cuales son los servicios criticos? En este caso era:</p>
<ul>
<li>Servidor de Correo (Postfix)</li>
<li>Servidor de Web (Apache)</li>
<li>Servidor de base de datos (MySQL)</li>
</ul>
<p>Ok entonces tenemos varios archivos que tienen la posibilidad de ser cambiados, teniendo asi un problema serio en los servicios, asi como el reinicio de los mismos y los logs.</p>
<p>Podemos tener aqui varias soluciones, la mas facil:</p>
<ul>
<li>Instalar AIDE o algo parecido</li>
</ul>
<p>El problema es que entonces el otro administrador va a querer administrar también nuestra base de datos de seguridad, lo cual nos deja no nada mas igual, si no peor.</p>
<p>Podemos crear rápidamente una base de datos con firmas md5 y tener un simple chequeo de cambios y que mande un correo con los cambios, ¿Como podemos crear una base de datos de ese tipo?</p>
<p>En una simple linea de comando:</p>
<pre name="code" class="bash">find <directorio> -print | xargs md5sum > archivo_de_firmas.md5</pre>
<p>Es decir, en nuestro ejemplo tenemos postfix:</p>
<pre name="code"  class="bash">find /etc/postfix -print | xargs md5sum > postfix_signatures.md5</pre>
<p>Para Apache:</p>
<pre name="code"  class="bash">
find /etc/apache2 -print | xargs md5sum > apache2_signatures.md5
</pre>
<p>En caso de que fuese apache.1.X.X:</p>
<pre name="code"  class="bash">
find /etc/apache -print | xargs md5sum > apache_signatures.md5
</pre>
<p>o</p>
<pre name="code"  class="bash">
find /etc/httpd -print | xargs md5sum > apache_signatures.md5
</pre>
<p>Teniendo ya esto podemos simplemente verificar las firmas dando el siguiente comando:</p>
<pre name="code"  class="bash">md5sum -c postfix_signatures.md5</pre>
<p>lo cual nos daria un resultado de OK en caso de que las firmas fueran las<br />
mismas.</p>
<p>¿Para que nos ayuda esto?, siendo md5 una firma del archivo cualquier cambio<br />
que se le haga, aunque sea de una letra, un byte, cambiaria la firma dando asi<br />
una veruficacion del cambio y nos puede dar una pista de donde estuvo el<br />
cambio que genero el problema en realidad.</p>
<p>Un ejemplo con un directorio simple:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0" height="406" width="669"><param name="movie" value="http://security-dojo.com/wp-content/uploads/2007/12/ejemplo_md5sum.swf"></param><param name="play" value="true"></param><param name="loop" value="false"></param><param name="quality" value="low"></param> <embed src="http://security-dojo.com/wp-content/uploads/2007/12/ejemplo_md5sum.swf" quality="low" loop="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" height="406" width="669"></embed></object></p>
<p>Obviamente esto puede ser incrementado hasta para un sistema operativo completo PERO hay que tomar en cuenta que cosas como los logs, utmp, wtmp, etc. cambian con el uso del servidor.Esto puede agregarse al crontab para que corra cada hora (o hasta cada 10 minutos si de verdad el enemigo es agil, rapido y con presteza para romper las cosas). Un ejemplo de crontab que corre cada 15 minutos y manda un correo con el output es:</p>
<pre name="code"  class="bash">
#Poner SHELL y mandar correo con MAILTO
SHELL=/bin/sh
MAILTO=enrique.sanchez@security-dojo.com
#
# corre cada 15 minutos
*/15 * * * *       md5sum -c $HOME/fingerprints/apache2_fingerprints.md5
</pre>
<p>Podemos decir que hemos derrotado a nuestro enemigo, sin embargo tenemos otro problema, este es un remedio reactivo, el daño ya fue hecho y ahora tenemos que limpiar el problema. ¿Qué podemos hacer entonces?</p>
<p>El siguiente paso de defensa sobre nuestro peor enemigo: chattr</p>
<p>Este paso me sirvio muchisimo en una empresa donde todo el mundo movia cosas y &#8220;no movi nada&#8221; era la respuesta mas importante, sobre todo porque &#8220;el backend es tu problema no el mio&#8221;, en cuanto aplique la siguiente técnica el director<br />
general supo rapidamente quienes movian las configuraciones, ya que se quejaron de que no podian hacerlo mas, siendo que &#8220;Nunca antes lo habian hecho&#8221; como ellos mismos dijeron.</p>
<p>chattr es una herramienta indispensable, que desgraciadamente no funciona en el sistema resiserfs (ya que reiser usa cosas mas complejas que ext2 y ext3) pero en ext2 y ext3 (que la mayoria de la gente usa) son excelentes.</p>
<p>La herramienta lsattr nos deja ver los atributos del archivo, el atributo que veremos por el momento es inmutable (i) si damos rapidamente un lsattr a httpd.conf podemos ver lo siguiente:</p>
<pre name="code"  class="bash">
firebolt apache2 # lsattr httpd.conf
-------------- httpd.conf
firebolt apache2 #
</pre>
<p>Lo cual nos dice que no tiene ningun atributo por lo cual podemos editarlo de la siguiente manera:</p>
<pre name="code"  class="bash">
firebolt apache2 # echo cambio &gt;&gt; httpd.conf
firebolt apache2 # tail -3 httpd.conf</pre>
<pre name="code"  class="bash"># vim: ts=4 filetype=apache
cambio
firebolt apache2 #
</pre>
<p>Ahora hagamos el archivo inmutable, esto quiere decir que este atributo le<br />
dice al sistema queu aun siendo root no puede modificarse, ni borrarse:</p>
<pre name="code"  class="bash">
firebolt apache2 # chattr +i httpd.conf
firebolt apache2 # echo cambio &gt;&gt; httpd.conf
-bash: httpd.conf: Permission denied
firebolt apache2 # lsattr httpd.conf
----i--------- httpd.conf
firebolt apache2 #
</pre>
<p>¡EXCELENTE!</p>
<p>Ahora si queremo editarlo simplemente podemos remover el atributo de inmutable al archivo y podremos editarlo:</p>
<pre name="code"  class="bash">
firebolt apache2 # chattr -i httpd.conf
firebolt apache2 # echo cambio2 &gt;&gt; httpd.conf
firebolt apache2 # lsattr httpd.conf
-------------- httpd.conf
firebolt apache2 # tail -3 httpd.conf
# vim: ts=4 filetype=apache
cambio
cambio2
firebolt apache2 #
</pre>
<p>El siguiente es un ejemplo de como usar chattr:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0" height="406" width="669"><param name="movie" value="../../movies/ejemplo_chattr.swf"></param><param name="play" value="true"></param><param name="loop" value="false"></param><param name="quality" value="low"></param> <embed src="../../movies/ejemplo_chattr.swf" quality="low" loop="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" height="406" width="669"></embed></object></p>
<p>Estas dos técnicas son básicas para comenzar a detener al otro admin, la educación asi como la experiencia iran ayudando al otro admin para poder tener mejor control sobre su servidor (si es que quiere tener control de su servidor)Espero que con esto este peor enemigo pueda ser detenido al menos un poco.</p>
]]></content:encoded>
			<wfw:commentRss>http://security-dojo.com/security-bits/tu-peor-enemigo-el-otro-admin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Beneficios de una Auditoria de Código</title>
		<link>http://security-dojo.com/security-bits/beneficios-de-una-auditoria-de-codigo/</link>
		<comments>http://security-dojo.com/security-bits/beneficios-de-una-auditoria-de-codigo/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 04:12:09 +0000</pubDate>
		<dc:creator>nahual</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://security-dojo.com/?p=3</guid>
		<description><![CDATA[<p>Una auditoria informática es una parte central e importante de la seguridad, ya sea una aplicación comprada o una aplicación hecha en casa la información contenida es el verdadero valor de la aplicación.</p>

<p>Una aplicación contiene errores debido a que el programador no fue enseñado con seguridad en mente, en realidad no habla nada de su experiencia sino que es un campo nuevo y que se lleva rapidamente en la expansión de técnicas y formas de explotación.</p>]]></description>
			<content:encoded><![CDATA[<p>Una auditoria informática es una parte central e importante de la seguridad, ya sea una aplicación comprada o una aplicación hecha en casa la información contenida es el verdadero valor de la aplicación.</p>
<p>Una aplicación contiene errores debido a que el programador no fue enseñado con seguridad en mente, en realidad no habla nada de su experiencia sino que es un campo nuevo y que se lleva rapidamente en la expansión de técnicas y formas de explotación.</p>
<p><span id="more-3"></span></p>
<p>Libros y clases estan llenas a veces de errores, reuso de código asi como toma de ejemplos y políticas de programación puede afectar hasta el punto de crear una aplicación vulnerable, estas vulnerabilidades pueden ir desde suplantación de identidades, robo de contraseñas, toma de control de la aplicación, toma de control del servidor, etc.</p>
<p>Estas aplicaciones se ejecutan en servidores que contienen información como correos, planes de ventas, mercadotecnia, asuntos personales de altos ejecutivos, etc. Los cuales conllevan un riesgo y un valor añadido a la red.</p>
<p>Un Penetration Testing, también llamado hackeo ético, es un ataque controlado por consultores que conocen técnicas hackers o hackers de sombrero blanco (Whitehats) que descubren y explotan fallos de seguridad dentro de la red y los reportan, reduciendo el riesgo de la red asi como de los aplicativos e información dentro de la misma.</p>
<h3>¿Inversión o Gasto?</h2>
<p>En mi experiencia he tenido que contestar la siguiente pregunta mas de una vez:</p>
<h4>¿Porque si mi aplicación costó X el costo de auditarla es Y? (Donde X &lt; Y)</h4>
<p>Creo que la respuesta mas obvia es:</p>
<p>-. El valor real de la aplicación puede ser definida por la siguiente ecuación de riesgo:</p>
<h4>COSTO APLICACION</h4>
<p>+ COSTO INFORMACION<br />
+ COSTO DOWNTIME<br />
-  AMORTIZACION COSTO APLICACION<br />
+ MANTENIMIENTO<br />
___________________________________<br />
= COSTO TOTAL DE APLICACION</p>
<p> Como se puede ver en la ecuación anterior el costo de la aplicación es solo la inversión inicial, intangibles como COSTO INFORMACION y COSTO DOWNTIME deben ser generados en un analisis de riesgo informático ya que son los costos generalmente mas grandes debido a que el COSTO DOWNTIME es:</p>
<h3 align="justify">      COSTO OPERACION<br />
+ PERDIDAS MERCADOTECNIA (MARCA, ETC)<br />
+ VENTAS PERDIDAS (En caso de ventas por Internet o sistemas criticos abajo)<br />
____________________________________<br />
= COSTO DOWNTIME</h3>
<p align="justify"> La importancia de una auditoría de código radica en la reducción de los factores de riesgo haciendo que la probabilidad de ocurrencia baje a lo minimo. Esto nos da un ejemplo de riesgo:</p>
<p>Una aplicación de 50,000 MXN maneja 3,000,000 MXN el costo de downtime es de 50,000 por hora y el mantenimiento es de 5,500 MXN al mes.</p>
<p>Si la aplicación tiene un riesgo del 75% de ser atacada y perder los datos, ser modificados o comprometer el servidor, el riesgo real que debe de reportarse es de:</p>
<h4 align="justify">(50,000 + 3,000,000 + (50,000 * 3) + 5,500) * 75% = 2,404,125 MXN</h4>
<p align="justify"> Este riesgo tiene una probabilidad de generarse en un 100% en un tiempo cercano (debido a la interacción de la variable del 75% esta ya prorrateado al tiempo de 1 año)</p>
<p>Este tipo de riesgo es simplemente inaceptable en la mayoria de las compañias, al auditar la aplicación se encuentran los fallos, se arreglan y por lo tanto la probabilidad de ser atacada y perder datos, modificarlos o comprometer el servidro baja, por ejemplo un 25% del ejemplo anterior seria:</p>
<h4>(50,000 + 3,000,000 + (50,000 * 3) + 5,500) * 75% = 801,375 MXN</h4>
<p> Lo cual es una reducción de riesgo considerable, tomando en cuenta que la auditoria costara 1,000,000 MXN aun asi habria un ahorro de aproximadamente 600,000 MXN neto dentro del primer año.</p>
<p> Esto es importante debido a que la mayoria de las compañias estan tomando la opcion del &#8220;open source&#8221; como una opcion barata, pero descuidan el recordar que no es gratis su mantenimiento y que el riesgo sigue estando vigente y que debe mantenerse de manera administrativamente responsible para la empresa.</p>
<p>El que sea una aplicación desarrollada en un lenguaje libre o con licencia libre (dicese GPL, BSD, etc) no lleva a que sea gratis su mantenimiento ni que el riesgo que lleva sea pequeño. Por lo tanto se debe tener una gran calidad de trabajo o asegurarse de las credenciales de quien hace el trabajo.</p>
<p>Es buena practica el pedir un demo de lo mismo o requerir una maqueta en caso de tener un desarrollo desde el diseño o la implementación de algun esquema medianamente complejo a muy complejo.</p>
]]></content:encoded>
			<wfw:commentRss>http://security-dojo.com/security-bits/beneficios-de-una-auditoria-de-codigo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
