Está en la página 1de 9

Escuela Colombiana de Ingeniería Julio Garavito

SYPI Semestre II 2005


Notas del profesor Fascículo No5

La protección del software

-Que es cracking

Es la violación indiscriminada del acceso a:


• El código fuente de un programa, aplicación, paquete o soporte
lógico.
• Al uso no autorizado o no pago de un programa o aplicación.
• El acceso no autorizado o no pago al uso de un sistema
operacional, programa, aplicación o soporte lógico a través de
medios remotos de comunicaciones mediante el uso de
herramientas normales de acceso tales como:
o Acceso web
o Acceso telnet o rTelnet
o Acceso SSH
o Conexión a escritorio remoto
o Hyperterminal
o FTP o TFTP

Ingeniería de reversa

La primera categoría de cracking de las mencionadas arriba (violación de acceso a


códigos o programas fuentes) presupone la existencia de elementos o recursos de
ingeniería de reversa, mediante los cuales se invocan programas que son capaces de
desensamblar el modulo ejecutable archivo que lo contiene de un programa aplicativo.
Una ves se tienen el fuente en lenguaje ensamblador es muy fácil mediante técnicas de
observación de fuentes ensambladores de módulos de funcionalidad conocida del
lenguaje de alto nivel, deducir o asimilar la construcción del fuente de cualquier
programa. Mediante la compilación sucesivas de fuentes de alto nivel conocidas y la
observación de las fuentes de la fuentes que resultan en lenguaje ensamblador,
podríamos casi relacionar cualquier grupo de instrucciones de ensamblaje con una
funcionalidad se un grupo de instrucciones del fuente de alto nivel
Todas las técnicas de violación del acceso al código fuente se basan e la ingeniería de
reversa.
El uso de la ingeniería de reversa, tiene como objeto el acceso al código fuente para 2
objetivos fundamentales y últimos:

• Espionaje industrial del software: Acceder a algoritmos, procedimientos


y secuencias lógicas de programación, útiles y perseguidas para usarlas
en otros programas. En otras palabras espiar la manera como se hizo o
fabricó un programa para usarlo en otros.
• Observar, asimilar y eliminar los controles de seguridad para el acceso al
uso de un programa produciéndose como consecuencia una versión
gratuita que no tienen control de acceso a su uso con el consiguiente
perjuicio económico para su propietario o autor. Esta tarea configura el

Autor: Ingeniero Jaime Hernando Rubio Rincón página 1


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
uso no autorizad de un programa o aplicación, mencionada como el
segundo tipo de cracking en la introducción al principio

EL LAB SYPI 5 hallara algunos ejemplos de productos clásicos de desensamblaje para


ingeniería de reversa.

Acceso no autorizado remoto

El acceso no autorizado remoto por cualquiera de los protocolos de comunicaciones


existentes para ello, presupone las violaciones generalmente mediante el uso de
herramientas de software denominadas de fuerza bruta las cuales mediante la
ejecución controlada coloca en los paneles de acceso identificaciones de usuario y
contraseñas ficticias generadas aleatoriamente o mediante el uso de perfiles de
comportamiento de usuario. Esta colocación se hace en forma repetida tratando de
adaptarse a los patrones conocidos de protección: 3 intentos fallidos inhabilitan al
usuario, 3 inhabilitaciones lo suspenden etc. El uso de las herramientas de cracking por
fuerza bruta presuponen una gran dosis de suerte para tener éxito, por tanto su uso cada
vez es menor. Han sido desplazadas por programas de visualización de paquetes como
Sniffers´s. Ethereal y demás. Con estos programas se visualizan usuario y contraseñas
en la redes. Si están leíbles se usan, si están encriptados se entregan a programas de
criptoanálisis para desencriptarlos.
La violación de una contraseña y una Identificación de usuario en un sitio Web por
ejemplo presuponen una gran dosis de ingenuidad en el desarrollado del sitio o en el
Web Master. Normalmente existen varias maneras de implementar el control de acceso
al sitio Web:
• La implementación en la pagina de acceso de código de control de acceso, con
los parámetros de acceso en la misma página, lo cual lo hace fácilmente violable
• La implementación de una forma CGI´s (Common Gateway Interface) en el
transcurso de la secuencia de ejecución html en la cual el usuario entre su Id y
su contraseña y la validación y autenticación en un SCA. (Servidor de Control
de Acceso) mediante alguna técnica de autenticación En este caso hay mas
seguridad que en la anterior implementación pero se requieren ajustes
adicionales tales como:
o Colocar algún tipo de firma digital o certificado digital o función
criptográfica a la forma completa
o Usar metodologías de autenticación
o Usar técnicas de hashing.

• Implementación en Java: Utilizar sofisticas tecnologías de control de acceso y


autenticación que vienen embebidas en los ambientes de desarrollo Java como
por ejemplo: Java Cryptography Architecture (JCA) , Java Authentication and
Authorization Service (JAAS) , Signature Timestamp Support, Java CertPath
API y otras. Para mayor información consultar los sitios Internet:

http://java.sun.com/security/, http://www-
swiss.ai.mit.edu/~jbank/javapaper/javapaper.html

http://java.sun.com/docs/books/tutorial/security1.2/

Autor: Ingeniero Jaime Hernando Rubio Rincón página 2


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
http://www.cigital.com/javasecurity/links.html

para un brochazo relativo al control de acceso en java

• Implementación en MS Visual Basic EN aplicaciones Windows clásicas se usa un


control DataGrid que reciba parámetros involucrando una lógica de código basado
en algoritmos de autenticación. También se puede hacer mas rápido usando la
biblioteca de seguridad de Visual. Studio. Net llamada net Framework a saber:
System.Security.Cryptography.Xml
System.Security.Permissions
System.Security.Policy
System.Security.Principal

Alli encotrara recursoso para todos los efectos de seguridad de .net

• Implementación en ASP.NET. La implementación mas popular en mediante


formularios Web de validación, donde los datos a validar son Id. Y contraseñas.
Como en los CGI la dureza del acceso depende de la lógica implementada por el
programador y de los métodos usados para la autenticación. Un ejemplo de ello son
los controles CompareValidator o CustomValidator. A continuación un ejemplo
para un formulario Web de entrada de datos de autenticación con con Validators:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb"


Inherits="Validacion.WebForm11"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<title>WebForm1</title>

<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">

<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">

<meta name="vs_defaultClientScript" content="JavaScript">

<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

</HEAD>

<body MS_POSITIONING="GridLayout">

<form id="Form1" method="post" runat="server">

<asp:Label id="Título" style="Z-INDEX: 117; LEFT: 8px; POSITION: absolute; TOP: 8px"
runat="server" Font-Size="Large">Suscripción a foro sobre noticias intrascendentes</asp:Label>

<asp:TextBox id="Verificación" style="Z-INDEX: 107; LEFT: 200px; POSITION: absolute; TOP:


200px" runat="server" Width="216px"></asp:TextBox>

Autor: Ingeniero Jaime Hernando Rubio Rincón página 3


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
<asp:Label id="lblDirCorreo" style="Z-INDEX: 102; LEFT: 64px; POSITION: absolute; TOP:
88px" runat="server">Dirección de correo:</asp:Label>

<asp:TextBox id="DirCorreo" style="Z-INDEX: 103; LEFT: 200px; POSITION: absolute; TOP:


88px" runat="server" Width="216px"></asp:TextBox>

<asp:Label id="lblContraseña" style="Z-INDEX: 104; LEFT: 112px; POSITION: absolute; TOP:


144px" runat="server">Contraseña:</asp:Label>

<asp:TextBox id="Contraseña" style="Z-INDEX: 105; LEFT: 200px; POSITION: absolute; TOP:


144px" runat="server" Width="216px"></asp:TextBox>

<asp:Label id="lblVerificación" style="Z-INDEX: 106; LEFT: 112px; POSITION: absolute; TOP:


200px" runat="server">Verificación:</asp:Label>

<asp:Button id="Suscribirse" style="Z-INDEX: 108; LEFT: 320px; POSITION: absolute; TOP:


256px" runat="server"

</HTML>Text="Suscribirse"></asp:Button>

<asp:RequiredFieldValidator id="DirCorreoVerificaciónVacío" style="Z-INDEX: 109; LEFT:


424px; POSITION: absolute; TOP: 88px" runat="server" ErrorMessage="El campo no puede estar vacío"
ControlToValidate="DirCorreo"></asp:RequiredFieldValidator>

<asp:RegularExpressionValidator id="DirCorreoVerificaciónFormato" style="Z-INDEX: 110;


LEFT: 424px; POSITION: absolute; TOP: 112px" runat="server" ErrorMessage="La dirección de correo no es válida"
ControlToValidate="DirCorreo" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-
.]\w+)*"></asp:RegularExpressionValidator>

<asp:RequiredFieldValidator id="ContraseñaVerificaciónVacío" style="Z-INDEX: 111; LEFT:


424px; POSITION: absolute; TOP: 144px" runat="server" ErrorMessage="El campo no puede estar vacío"
ControlToValidate="Contraseña"></asp:RequiredFieldValidator>

<asp:RequiredFieldValidator id="ReIngresoVerificaciónVacío" style="Z-INDEX: 113; LEFT:


424px; POSITION: absolute; TOP: 200px" runat="server" ErrorMessage="El campo no puede estar vacío"
ControlToValidate="Verificación"></asp:RequiredFieldValidator>

<asp:Label id="Mensaje" style="Z-INDEX: 115; LEFT: 120px; POSITION: absolute; TOP:


232px" runat="server" Width="289px"></asp:Label>

<asp:ValidationSummary id="ValidationSummary1" style="Z-INDEX: 116; LEFT: 56px;


POSITION: absolute; TOP: 288px" runat="server" Height="104px"></asp:ValidationSummary>

</form>

</body>

Y la estructura del boton para el evento “suscribirse” que ejecuta el recibo de los datos. En Basic.

Private Suscribirse_click(…
DIM Verificador as Object
DIM ResultadoValidación As Bolean = Trae

For each Verificador In Me, Validatora


If Verificador.IsValid= False Then
ResulatdoValidacion = False
End If
Next

If ResultadoValidacion = True then


Mensaje.Text = Se ha agrgado la direccion al foro”
End If
End Sub

Técnicas de protección del software

Autor: Ingeniero Jaime Hernando Rubio Rincón página 4


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5

Registro y comparación de parámetros del sistema: Consiste en el llamado a


parámetros del sistema al momento de la instalación para después ser comparados con
lo existente en el momento de correr el programa. Los más usados son el tiempo del
sistema (SystemTime) el FileTime, LocalTime, ElapsedTime, TickCount

Contraseña o clave alfanumérica. Consiste en la obligatoriedad del usuario de


introducir una clave o registro numérico de 20 o mas dígitos hexadecimales. La clave
pude pedirse al momento de instalar o de correr el programa o aleatoriamente al pasar
por ciertos puntos de su método o secuencia de código.

Contador de ejecuciones: En este método el programa corre un número dado de veces


Antes de la autodestrucción de sus módulos ejecutables. EL contador es un código que
se genera cuando se hace una copia ilegal del programa En este momento se debe
recurrir al vendedor inicial del programa.

Archivos fantasmas. Parecido al anterior pero en ves de un contador se genera un


archivo cuyo contenido puede ser un hash de una archivo propio inicial del programa, o
unos datos aleatoriamente generados. Este archivo se carga en una posición definida de
memoria.

Watch Dogs (Dog-iT) Son dispositivos de procesamiento (HW) corriendo algoritmos


específicos. Modernamente implementados con matrices dinámicas cuya configuración
de crece cambia en cada corrida. El dispositivo se conecta a la computadora por medio
de la USB, el puerto serial o el paralelo. Al iniciar el SW autentica su legalidad
pidiendo un número de registro que le entrega el Watch Dog y el cual a su ves puede
correr un algoritmo de autenticación o u hash o un generador aleatorio que genera el
número. NO sobra decir que la lógica del programa del Watch Dog también esta en el
progrma para que los resultados sean iguales-

Mutilación del CD o del medio Ingeniosa manera del proteger originales, mediante el
daño a propósito de zonas o sectores de CD o medio que hace imposible su copiado. EN
USA se abandono por demandas de los compradores a los proveedores por entregar
imperfectos.

Compresores y empaquetadores para formato PE (Portable Executable)

Este sistema de protección cosiste en un estándar de compresión y encripción del código


ejecutable del programa conjuntamente con un programa que automáticamente
desencripta y ejecuta al momento de ejecución. Generalmente el programa PE es un
interpretador. La conformación del archivo de salida PE tiene una estructura
predefinida con encabezados de parámetros que definen la encripción y el encabezado.
Esta es la forma que da la mejor relación beneficio/costo para protección de software.
Hay que adquirir un programa que haga el empaquetado encriptado y las claves de
encripción están embebidas en los encabezados. Cada ejecución del programa PE crea:

• Los encabezados que contienen parámetros de tamaño, tiempo o direcciones


obligatorios de ejcución del softeare tales handlers, bloque de meoria etc.
• Encabezados de claves de encripción, los cuales son ordenados en modo “
scrambled and crushed” con el fin de que no sean fácilmente visibles a un

Autor: Ingeniero Jaime Hernando Rubio Rincón página 5


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
escrutador del archivo. El scrambled and crushed es una encripción basada en grafos
y posiciones trastocadas
• Encabezados que decriben alguna características del modo de ejecución del
programa
• El programa ( módulo ejecutable) que se va a proteger, debidamente comprimido y
encriptado
• EL módulo de ejecución del interpretador del programa PE que se ejecuta para
revertir la compresión y encripción e iniciar la ejecución del programa real

La seguridad en los sistemas operacionales

Los sistemas operativos evolucionaron desde los esquemas de programas de control de


procesos específicos de los primeros tiempos de la computación a ser los programas
maestros que manejan eficiente y seguramente los múltiples recursos y funcionalidades
que una maquina computadora tiene hoy en día.

Para entender qué OS se requiere para satisface sus necesidades, usted realmente debe
entender lo qué significa "seguridad" en una estructura operacional. La seguridad
operacional está establecida sobre la habilidad de mantener un ambiente seguro y
robusto a largo plazo.

Cualquiera puede entrenarse para asegurar un host. Hay pautas de lockdown de hosts de
Microsoft y NIST que son muy bien hecho y son fáciles de seguir. Cualquiera bastante
listo y un profesional puede seguir estas direcciones y puede hacer un sistema difícil de
violar. Pero finalmente, estos procedimientos son sólo parte de la ecuación. Si usted
tiene que constantemente cambiar su configuración del sistema o no tiene ninguna idea
de que cómo la seguridad de su sistema operativo va a cambiar de la versión vieja a la
nueva versión, entonces usted todavía no ha logrado la seguridad operacional.
La manera en que su sistema operativo se desarrolla puede tener un impacto profundo
en su empresa. El desarrollo del sistema operativo abarca el ciclo de vida entero del
software. Cómo se planeó, diseñó, llevó a cabo, probó, y mantuvo y finalmente como
afecta su ambiente, pero los efectos son una cuestión de debate. Algunos dirían que un
proceso riguroso, estructurado es la única manera de crear confianza y el software
escalable. Ésta es una vista muy corporativa de desarrollo del software y normalmente
se evangeliza en el desarrollo de los sistemas complejo. Sin embargo, otros defenderían
que usando un proceso simplemente no significa que el software es más confiable sólo
porque se desarrolló de una manera consistente.
Recíprocamente, el mundo de software open source tiende a tomar un enfoque diferente
de este problema. Un número grande de diseñadores el software en vías de desarrollo de
una manera relativamente ad hoc pone cuidado en el código y obligan a integrar sólo
cosas "importantes." Este modelo de desarrollo puede crear software que tiene el juego
del rasgo correcto, pero no hay nada inherente en él que elimine las preocupaciones de
seguridad a un nivel táctico o arquitectónico.
Los tres sistemas operativos de mayor uso en datacenters (Microsoft Windows, Linux,
y FreeBSD) tiene tres modelos de desarrollo muy diferentes. Echemos una mirada a
cada uno y considere cómo el proceso de desarrollo afecta la seguridad.

Microsoft Windows es un sistema operativo comercial desarrollado para una compañía


el tamaño de un país. Se crea la visión para el OS en la cima y mira abajo a todas las

Autor: Ingeniero Jaime Hernando Rubio Rincón página 6


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
partes de la organización. Más allá, esta visión va más allá del sistema operativo; las
herramientas administrativas de apoyo, aplicaciones comúnes de los usuario, y el
software de productividad igual son todos desarrollados en una manera integral y
coherente.
El núcleo o Kernel del sistema operativo comparte los elementos del plan
arquitectónicos, la estructura de desarrollo y a menudo el lenguaje ( Visual Basic,
C++) con el software disponible a lo largo de la oferta de productos Microsoft o
basados en desarrollo Microsoft. Por ejemplo, el proveedor de servicio criptográfico
es el “leveraged” por casi cada producto de Microsoft que necesita la capacidad
criptográfica, esta en el Kernel y esta en las aplicaciones También, la información de la
autenticación es compartido a lo largo de los niveles del OS y puede accederse en una
moda uniforme por las aplicaciones (vea Figura 1).

Figure 1 Microsoft controla desarrollo de todo desde el punto central (Kernel) hasta las
las aplicaciones del servidor.

Esta características de Microsoft que desde el punto de vista del usuario, el programador
y el diseñador es una bondad, se convierte en su mayor debilidad desde el punto de vista
de la seguridad. Si las aplicaciones se construyen con componentes del SO, entonces no
hay acorazamiento e independencia entre aplicaciones y SO. Un hacker desarrollando
una aplicación Microsoft sabe como funciona cada pedazo de su SO sin necesidad de
conocer sus fuentes

Desde una perspectiva de seguridad, no sólo es la funcionalidad de seguridad la cual es


capaz ser accedida y diseñada su arquitectura de una manera común, sino que
Microsoft también controla el proceso de parches de una manera similar en el SO y en
las aplicaciones. Ésta es la parte crítica de seguridad operacional. Microsoft controla
todos los parches para su sistema operativo, software del servidor, y aplicaciones de
productividad. También, ellos están soltando todos sus parches ahora en un horario
regular (el segundo martes de todos los meses). Este arreglo les permite a
administradores preparar probar y desplegar los parches de seguridad de una manera
coherente. No teniendo el remendando ad hoc, Microsoft permite a las empresas
planear la seguridad, actualizarla de antemano y finalmente y muy probablemente
reducir el tiempo fuera de servicio. Pero otra ves esta bondad lo mata porque cuando
salen parches, estos casi simultáneamente atacan el problema simultáneamente en todos
los componentes, el hacker que un parche para el Explorer por ejemplo se aplica con el
mismo método alli que en Servicio de Acceso remoto, ya qua fin y al cabo ambos
comparten librerias COM+ y módulos comunes.
Finalmente, Microsoft controla la seguridad a largo plazo que planea para los sistemas
operativos primarios y las aplicaciones de soporte. Ellos tienen un mapa de carretera del
producto a largo plazo que incluye mejoras de seguridad y funcionalidad. Mientras un
mapa de carretera del producto necesariamente no significa un sistema más seguro,
Microsoft tiene una red del diseñador robusta. Teniendo un mapa de carretera del
producto con el software del prerelease disponible a diseñadores, aumenta la
probabilidad que los diseñadores serán conscientes de la nueva funcionalidad de

Autor: Ingeniero Jaime Hernando Rubio Rincón página 7


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
seguridad y lo usarán propiamente. Más allá, el diseñador de Microsoft labra con
herramienta el apoyo nativo a la seguridad funcional de la Windows
.

FreeBSD Desarrollo Modelo

FreeBSD a diferencia de Window, no es una aventura comercial. FreeBSD se desarrolla


por un equipo de individuos que construyen el OS como un sistema. El Kernel de
FreeBSD se suelta con un juego completo de utilidades del sistema, drivers integrados y
archivos de la configuración que representan un descargo formal. Por ejemplo,
FreeBSD 5.2 se soltó con el Kernel, un cortafuego totalmente funcional, drivers de la
red, utilidades de administración, y herramientas de usuario. Otras aplicaciones del
usuario son proporcionadas por los diseñadores terceristas (por ejemplo, Mozilla de la
Fundación de Mozilla u Osiris de Brian Wotring), pero estos programas se empaquetan
por FreeBSD para la inclusión en el sistema operativo. Durante el proceso del embalaje,
los programas se prueban por el equipo de FreeBSD para asegurarse que ellos trabajan
propiamente con el SO pero no necesariamente para los problemas de seguridad.
Porque FreeBSD es más de sólo un Kernel , la funcionalidad de seguridad puede ser
diseñada a largo plazoo Por ejemplo, el Kernel de FreeBSD tiene un concepto de
niveles seguros. Los niveles seguros diferentes tienen difiriendo las restricciones. Por
ejemplo, al nivel 2 seguro, no pueden montarse los sistemas del archivo y el tiempo no
puede ajustarse más de un segundo en un momento. No sólo hace que el Kernel
entienda los niveles seguros, sino que también las utilidades de sistema se modifican y
ayudan dé la fortaleza de los niveles seguros. Esto es posible porque FreeBSD se
desarrolla como un sistema de punta a punta

Linux
Linux es un animal muy diferente de FreeBSD y Windows. Aunque ellos son los dos
los sistemas operativos de OPen Source que hay, el Linuxse desarrollo con modelo
mucho menos coordinado. Linux, en su centro, simplemente es un Kernel. Las
utilidades de sistema , mientras incluyendo muchos de los drivers y herramientas que
los administradores usan todos los días, se crea por una comunidad diferente y cadenas
logísticas diferentes de aquellas que desarrollaron el Kernelo (vea Figura 3). El Kernel
de Linux es una entidad discreta que se desarrolla fuera de la influencia directa del
resto de la "comunidad de Linux." Desde un punto de vista de seguridad, esto significa
que necesariamente no se refleja esa capacidad de seguridad que se crea en las
utilidades del usuario en el Kernel (y viceversa).

El Kernel y aplicaciones del usuario son integradas entonces por una distribución (como
Red Hat o Debian) para crear un sistema operativo completo. Las distribuciones pueden
cambiar algunos elementos del Kernel o del usuario y codifican cuando el código se
integra. Algunos de estos cambios son los cambios de cola menores; otros son pedazos
mayores de nueva funcionalidad. Cada distribución se ocupa de integración en su propia
moda, y esto hace su propio sistema operativo eficaz a cada distribución. Así, en lugar
de pensar en "Linux", usted debe pensar en SO Red HAt "Debian" o "Mandrágora",
etc. cuando usted está determinando los sistemas operativos para su empresa.
Con respecto a la planificación del descargo y funcionalidad de seguridad, cada
distribución tiene su propio horario y mapa de carretera de tecnología. Durante algún

Autor: Ingeniero Jaime Hernando Rubio Rincón página 8


Escuela Colombiana de Ingeniería Julio Garavito
SYPI Semestre II 2005
Notas del profesor Fascículo No5
tiempo, Red Hato mantuvo un mapa de carretera de seguridad (básicamente, consistió
de "integre SELinux en el centro del OS"), pero eso parece haber sido abandonado.
Similarmente, cada distribución controla su proceso de fin-de-vida, asi que no hay
ningún "Linux EOL" .
Parches en los sistemas operativos Linux es un proceso de 2 partes. Cuando una
vulnerabilidad se descubre, la vulnerabilidad se descubre al “maintainer” original del
código. El maintainer original entonces produce un parche para el software vulnerable.
Cada distribución debe recoger el parche y debe crear un parche personalizado
específico a su base del código. A estas alturas, los administradores pueden aplicar los
parches entonces a su sistema. Este proceso de parche de dos fases puede causar el
retraso en el proceso; más pretenciosamente, puede causar confusión y problemas de
dirección de configuración. La otra situación que afecta tanto a Linux como a su
competencia FreeBSD es la natural apertura de susu fuentes. Aa conocer la fuente de
una aplicación o SO, al hacker se le facilita la vida y es realmente muy fácil cambiar loa
lógica operativa del SO y convertirlo en una herramienta peligrosa de seguridad

Conclusión Yo he pintado la seguridad operacional a un cuadro bastante yermo de


Linux. Debido a su modelo de desarrollo, es difícil de determinar el futuro del sistema
operativo, y manteniéndolo pueden ser un quehacer. Sin embargo, Linux tiene un gran
número de rasgos y los programas excelentes que son muy útiles en muchas
funcionalidades. Así, mientras puede haber un intercambio entre la seguridad y utilidad,
Linux es a menudo una situación defendible.
Al escoger un sistema operativo para el uso en su empresa, usted necesita pensar más
allá de las capacidades de seguridad "en la caja" y pensar sobre cómo el OS realmente
lo afecta a largo plazo.
Ud debe pensar que en general si pensamos en seguridad los sistemas operativos Linuz
y Unix en general presentan una clara e independiente separación entre el Kernell, sus
utilitarios y susu aplicaciones. En estos sistemas no se puede llegar desde la aplicaron al
SO. En los sistemas Microsoft si se puede por la naturaleza flexible y el reuso de
código.

Autor: Ingeniero Jaime Hernando Rubio Rincón página 9