<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Security Dojo &#187; &#187; configuraciones</title>
	<atom:link href="http://security-dojo.com/tags/configuraciones/feed/" rel="self" type="application/rss+xml" />
	<link>http://security-dojo.com</link>
	<description>Mandando tus logs a /dev/null desde 1976</description>
	<lastBuildDate>Wed, 04 Aug 2010 04:29:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
