Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Programación segura




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    La Seguridad es una medida NO un característica

    Costo

    Usabilidad

    Parte de un diseño

    Ideas Previas

    Monografias.com

    No hay conciencia y las estadísticas de incidentes no mejoran!!!

    Falta de competencias

    “El problema es del Admor Red / Oficial de Seguridad Informático”

    Desconocimiento de las arquitecturas, API’S, frameworks….. Seguros.…

    Problemas?

    Monografias.com

    Problemas de seguridad

    Ausencia infraestructura seguridad

    Errores administrador/usuario

    Exploits
    Programar bien !!!

    entender cómo funcionan las cosas

    aprender buenas políticas

    aprender trampas habituales

    Monografias.com

    • Es extremadamente sencillo equivocarse

    • Mal diseño del lenguaje

    • Malas prácticas de programación

    • Hay lenguajes inmunes, pero no siempre podremos usarlos

    • En C, cuidado con: strcpy, strcat,sprintf, gets, scanf
    Desbordamientos

    Monografias.com

    Los desbordamientos de buffer se basan en introducir el código en el espacio reservado para las variables locales (los argumentos de un método / función) y después modificar la dirección de retorno/regreso (RET), donde regresa la información, para que apunte a un offset en donde hemos introducido nuestro código fuente.

    Este código puede ser – por ejemplo – una ShellCode, : bash, sh, entre otros.
    El Desbordamiento del Buffer: Buffer OverFlow

    Monografias.com

    • Programación defensiva. Cuidado con:
    strcpy() strcat() sprintf() scanf()
    sscanf() fscanf() vfscanf() vsprintf
    vscanf() vsscanf() streadd()
    strecpy() strtrns()
    • Evitarlas siempre que sea posible, casi todas tienen alternativas razonables.

    Desbordamientos: defensa

    Monografias.com

    gets() getchar(), fgetc(), getc(),
    read()
    Consejo, comprobar:
    • Siempre los límites!
    • Longitud de los datos antes de almacenarlos
    • No pasar datos excesivamente grandes a otras funciones
    Desbordamientos: más con las entradas

    Monografias.com

    Seguridad en Java
    Seguridad General
    Arquitectura de la Seguridad
    Arquitectura de la Criptografía
    Política de permisos
    API para bloqueos de privilegios
    Certificados X.509 y listas de certificados revocados

    Monografias.com

    JVM

    Tres niveles de seguridad:
    Cargador de clases
    Verificador
    Gestores de seguridad
    Seguridad en Java

    Monografias.com

    Seguridad en Java
    El cargador de clases (Class Loader), que determina como y cuando pueden cargar código los programas y garantiza que los componentes del sistema no han sido reemplazados.

    El verificador de archivos de clases (Class file verifier), que garantiza que el código tiene el formato correcto, que el bytecode no viola las restriciones de seguridad de tipos de la JVM, que las pilas internas no puedan desbordarse ni por arriba ni por abajo y que las instucciones en bytecode tengan parámetos de tipos correctos.

    El gestor de seguridad (Security Manager), que controla el acceso a los recursos en tiempo de ejecución. Los recursos sobre los que tiene control son multiples: E/S de red y ficheros, creación de cargadores de clases, manipulación de hilos de ejecución, ejecución de programas externos (del SO), detener la JVM, cargar código nativo en la máquina virtual, realizar determinadas operaciones en el entorno de ventanas o cargar ciertos tipos de clases.

    Monografias.com

    Monografias.com

    Usando el Security Manager

    Class MySecurityManager extends SecurityManager {
    . . . . .
    }
    try {
    System.setSecurityManager(new MySecurityManager(”java.policy"));
    } catch (SecurityException se) {
    System.out.println("SecurityManager already set!");
    }

    public boolean canRead() {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
    security.checkRead(path);
    }
    return fs.checkAccess(this, false);
    }

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter