Lineamientos De Código Seguro - Alveiro García Consultor - Icfes

Página creada Enrique Jiménez
 
SEGUIR LEYENDO
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Lineamientos De Código Seguro

         Alveiro García
           Consultor
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Conceptos de Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
¿Qué es un producto seguro?

- Un producto seguro es un producto que protege la
  confidencialidad, integridad y disponibilidad de la
  información de los clientes y la integridad y disponibilidad
  de los recursos de procesamiento bajo el control del
  propietario del sistema o administrador.

¿Qué es una vulnerabilidad de seguridad?

- Es una falla en un producto que lo hace no efectivo para
  prevenir que un atacante pueda usurpar los privilegios en
  el sistema de usuarios, regulando la operación o
  comprometiendo los datos del mismo.

                                                   Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Cifras de seguridad
                                                    Se prevé que los daños
                                                   causados ​por los delitos
                                                    cibernéticos lleguen a 6
          Se prevé que el gasto mundial            billones de dólares en el
          en ciberseguridad superará el         mundo en 2021, frente a los 3
              billón de dólares en los           billones de dólares en 2015.
          próximos cinco años, de 2017                Esto incluye daños y
           a 2021. En 2004, el mercado          destrucción de datos, dinero
          mundial de ciberseguridad fue                robado, pérdida de
            de US$ 3.500 millones y en              productividad, robo de
            2017 llegará a US$ 120.000            propiedad intelectual, etc.
             millones. El mercado de
               ciberseguridad creció
          aproximadamente 35 veces en
                      13 años

                                          Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Cifras de seguridad      La tasa de desempleo en
                                                                 Se prevé que el
                                                                   mercado de
                       ciberseguridad se mantiene
                                                                capacitación para
                        en cero por ciento en 2017
                                                                 concientización
                          (igual que en 2016). El
                                                               sobre la seguridad
                        Centro de Investigación de
                                                                 llegue a 10.000
                        Palo Alto informa que para
                                                               millones de dólares
                           2019 la demanda de
                                                               anuales para el año
                             profesionales de
                                                                      2027
                       ciberseguridad aumentará a                                      300 mil millones de
                            aproximadamente 6                                        contraseñas requerirán
                         millones a nivel mundial                                     protección cibernética
   Hay 1 millón de                                     Se pronostica
                                                                                       para 2021. La cuenta
  puestos de trabajo                                 que los ataques
                                                                                     incluye 100 millones de
     de seguridad                                    de Ransomware
                                                                                     contraseñas humanas y
    cibernética en                                          a las
                                                                                         200 millones de
   2017 y se prevé                                    organizaciones
                                                                                          contraseñas de
   que superen los                                      sanitarias se
                                                                                      máquina (Internet de
   1,5 millones en                                   cuadruplicarán
                                                                                              Cosas)
         2019.                                            en 2020

                                                        Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Las
Cifras de seguridad
                                                  explotaciones de
                                                      día cero
                      Casi la mitad
                                                   aumentarán de
                      de todos los
                                                  una por semana
                      ciberataques                                             El 65 por ciento de los
                                                   en 2015 a una
                       se cometen                                            encuestados dicen que los
                                                    por día para
                          contra                                         piratas informáticos tienen más
                                                        2021
                        pequeñas                                         experiencia que los sombreros
     En 2017 se         empresas                                         blancos. Los sombreros negros
   crearán 11.100                       Se espera que 4                  están motivados por el dinero,
     millones de                           billones de                   el espionaje, la notoriedad y la
      líneas de                       personas estén en                   intención maliciosa y son más
        nuevos                        línea – y necesiten                  rápidos, más atrevidos y más
     códigos de                            protección                         experimentados que los
      software                         cibernética – para                 sombreros blancos que están
                                      2020, frente a los 2                 limitados por límites y reglas
                                      mil millones más el
                                          año pasado

                                                             Código Seguro
Lineamientos De Código Seguro - Alveiro García Consultor - Icfes
Marco de Referencia

             ISO/IEC 27001                    Marco legal colombiano               NIST 800-27, 800-30, 800-64

  • Estándar de seguridad      de    la • Ley 1581 de 17 de octubre de         • NIST (National Institute of
    información de ISO                    2012. Disposiciones generales para     Standards and Technology)
                                          la protección de datos personales.     Principios de seguridad para ser
  • Especifica   un     sistema     de                                           considerados en el diseño,
    administración     que       busca • Decreto 1377 de 27 de junio de          desarrollo y operación de un
    mantener       la      información    2013. Se reglamenta parcialmente       sistema de información.
    asegurada    bajo    un     control   la ley 1581 de 17 de octubre de
    administrado para cual genera         2012.
    requerimientos específicos.

  • Se alinea con el estándar de
    calidad de ISO 9000 bajo el ciclo
    PDCA (Plan, Do, Check, Act)

                                                        Código Seguro
Asegurando código en Java
Arquitectura por Capas - Java EE

                                                                               EIS/Data
                         Presentation       Business        Integration
   Client Tier                                                                (Resource)
                             Tier             Tier              Tier
                                                                                 Tier

                              Web Container             Embedded
    Web Browser
                                                       EJB Container
    HTML Form                  Controller                                      DBMS
                                                         Business
                  HTTP                                   Services      SQL

                                                          Entities
         UI                       Views                   Model

      Client                       Presentation and Business                 Resource

                                  Java EE Application Boundary

                                   Asegurando código en Java
Resumen de Tecnologías - Java EE 7

                                  Bean                   XML
    Servlet        CDI                         EJB
                                Validation               Mess.

    EJB Lite      JSON          Intercept.    JMS        JAXR

      JSP        JAX-RS           JSF         Batch      JASPI

   Expr. Lang     JSTL            JAXP       Concurr.   JAX-RPC

                 Common
      JPA                         JMX         JAXB      JavaMail
                Annotation

                  Web
      JTA                         StAX        JDBC       JAX-WS
                 Socket

                             Asegurando código en Java
Consideraciones de seguridad

- Procesamiento seguro de datos

- Encriptación de datos que transitan en la red

- Autenticación y autorización de usuarios.

                                          Asegurando código en Java
Conceptos de Seguridad

- Autenticación: Establecer que la identidad reclamada por
  el usuario es genuina.

- Autorización: Establecer que un usuario tiene los privilegios
  requeridos para realizar una acción solicitada.

- Confidencialidad: Proteger los datos         de   vistas   no
  autorizadas durante la comunicación.

- Integridad: Asegurar que los datos recibidos son iguales a
  los datos enviados.

La confidencialidad y la integridad se manejan desde la
capa de transporte a través del uso de protocolo de clave
publica de bajo nivel como Secure Sockets Layer (SSL)

                                            Asegurando código en Java
Características de Seguridad en Java EE

- No existe una referencia directa hacia el entorno de
  ejecución.

- Puede ser aumentada con métodos programáticos de
  seguridad.

- Esta basado en la referencia “Java Authentication and
  Authorization Service” para interoperabilidad.

- Un modelo de seguridad end-to-end, el cual hace las
  credenciales disponibles donde sea necesario.

                                          Asegurando código en Java
Modelo de Seguridad End-To-End

                                 Asegurando código en Java
Herramientas De Análisis de
         Código
PMD

Es un analizador de código fuente. Encuentra fallas de
programación comunes como variables no utilizadas,
bloques de captura vacíos, creación de objetos
innecesarios, etc.

                                   Herramientas De Análisis de Código
FindBugs

Es un programa que utiliza el análisis estático para
buscar errores de código Java. Se trata de software
libre, distribuido bajo los términos de la Licencia Pública
Lesser GNU.

FindBugs requiere JRE 1.7.0 o posterior para ejecutarse.

                                      Herramientas De Análisis de Código
Checkstyle

Puede comprobar muchos aspectos de su código
fuente. Puede encontrar problemas de diseño de
clase, problemas de diseño de métodos. También
tiene la capacidad de comprobar el diseño del
código y los problemas de formato.

                              Herramientas De Análisis de Código
SonarQube

Es una plataforma Open Source que es usada para
administrar la calidad del código fuente que puede
ser escalado para trabajar el proceso de
mejoramiento continuo del código a nivel global
dentro de la organización. Ofrece herramientas de
análisis de código completamente automatizadas y
puede ser incluido dentro de procesos de integración
continua.

                                 Herramientas De Análisis de Código
Metodologías
Open Web Application Security Project (OWASP)

Comunidad online, fundada en el 2001, sin animo de
lucro   que     produce     artículos, metodologías,
herramientas y tecnologías en el campo de la
seguridad de las aplicaciones.

El objetivo de OWASP es habilitar las organizaciones
para que conciban, desarrollen, operen y mantengan
aplicaciones que sean confiables.

                                                Metodologías
Proyectos y documentos destacados OWASP

• Guía rápida de referencia para prácticas de
  codificación segura.

• Base de conocimiento de OWASP Java y tecnología
  JVM.

• Proyectos de terceros

   • Apache     Shiro:   Framework     para   realizar
     autenticación, autorización, criptografía y
     administración de sesiones.
   • Spring Security: Servicios de seguridad basados
     en Java EE
   • HDIV: Framework equipado con múltiples
     funciones para seguridad en aplicaciones Web

                                               Metodologías
SD3

                                                        Secure By
       Secure By Design      Segure By Default
                                                       Deployment
      • Piensa en mitigar   • Menor privilegio,     • Guías de
        y prevenir            defensa en              implementación,
        vulnerabilidades      profundidad,            herramientas de
        en la etapa de        minimizar la            administración y
        diseño.               superficie de           patch
                              ataque, evitar          deployment.
                              cambios
                              riesgosos y
                              desactivar los
                              servicios no
                              utilizados.

                                     Metodologías
TÉCNICA STRIDE   S   • Spoofing
                     • Autenticación

                 T   • Tampering
                     • Integridad

                 R   • Repudiation
                     • No repudio

                 I   • Information Disclosure
                     • Confidencialidad

                 D   • Denial Of Service
                     • Disponibilidad

                 E   • Elevation Of Privilege
                     • Autorización

                     Metodologías
DREAD

Esquema de clasificación para cuantificar, comparar y
dar prioridad a los riesgos que presenta una amenaza
especifica. Se utiliza para clasificar y ordenar las
amenazas en base a su riesgo.
                                                          Damage
                                                                          Reproductibility
                                                          Potencial

                                                        Explotaibility     Affected User

                                                                 Discoverability

                                                Metodologías
Ciclo de vida de desarrollo de software seguro

                                                                STRIDE
         OWASP

                                                                  DREAD

          SD3

                                                 Metodologías
Prácticas criptográficas.

Criptografía: Arte de escribir con clave secreta o de             Todas las funciones
un modo enigmático. En informática se usa para                   criptográficas usadas
proteger la confidencialidad de los mensajes a través                para proteger
de sistemas de cifrado y códigos.                                    secretos de la
                                                                 aplicación deben ser
                                                                implementadas en un
                                                                   sistema confiable
                                                                      (Servidor por
                                             Los módulos                ejemplo)
                                             criptográficos
               Proteger los
                                                de fallar
                 secretos
                                            deben hacerlo
               maestros de
                                            en un contexto
                acceso no
                                                 seguro
                autorizado

                                                 Metodologías
Prácticas criptográficas.

                                                       Establecer y
                                                       utilizar una
                                                    política y proceso
                                                    para como serán
                                                    administradas las
                                 Los módulos
                                                           llaves
                            criptográficos usados
                                                      criptográficas
       Los números             por la aplicación
        aleatorios,           deben cumplir la
         archivos            especificación NIST
        aleatorios,            FIPS 140-2 o un
    cadenas aleatorias      estándar equivalente
    y demás deben ser
    generados usando
        el módulo
       criptográfico

                                   Metodologías
Seguridad en el ciclo de
 desarrollo del Software

Fase de Requerimientos
Administración y gestión de riesgos

                                      Identificar
                  Comprender                                          Definir la
                                      riesgos del   Priorizar los
                  los objetivos                                     mitigación de
                                       negocio y      riesgos
                   del negocio                                       los riesgos
                                        técnicos

                                                      Realizar
                                                    correcciones
                                                          y
                                                    validaciones

                                              Fase de Requerimientos
Definición de Roles

• Determinar los roles que serán implementados en la
  aplicación

• Definir los privilegios que tendrá cada rol

• Definir una política para la autorización de la
  asignación del rol

                                                Fase de Requerimientos
Aprobación de privilegios

• Usar el principio del menor privilegio

• Poner atención a la información sensitiva

• Establecer la estrategia de control de acceso en las
  diferentes etapas

• No depender de herencia de seguridad por
  defecto

                                           Fase de Requerimientos
También puede leer