Aprendizaje CISSP: Capítulo 20 Seguridad en el desarrollo de software

1 de marzo de 2021

La seguridad debe considerarse en cada etapa del desarrollo del sistema.

Lenguaje de programación: después de la compilación, no es fácil que un tercero lo manipule, pero el usuario final no puede ver las instrucciones originales.
1. Lenguajes compilados: C, Java, FORTRAN
2. Lenguajes interpretados: Python, R, JavaScript, VBScript


Aseguramiento orientado a objetos (OOP) : Es un proceso formal para generar confianza en el ciclo de vida del sistema. CC proporciona un método estandarizado para
evitar y aliviar fallas del sistema:
1. Verificación de entrada
2. Verificación de identidad y administración de pintura
3. Protección contra fallas Y Apertura de emergencia: A prueba de fallas (A prueba de fallas, solo una alta autoridad puede acceder en caso de una falla), Apertura de emergencia (Apertura por falla, evitando el control de seguridad en caso de una falla)

Ciclo de vida del desarrollo del sistema
1. Definición del concepto: Una declaración simple negociada por todas las partes interesadas (desarrolladores, clientes y gerentes), que estipula el propósito del proyecto y los requisitos generales del sistema.
2. Determinación de requisitos funcionales: tres características: entrada, comportamiento y salida. Resultado: documento de requisitos funcionales.
3.Desarrollo de especificaciones de control: las organizaciones conscientes de la seguridad diseñan al inicio del desarrollo y analizan desde múltiples perspectivas de seguridad: a. Control de acceso apropiado, solo los usuarios autorizados pueden acceder al sistema y no se permite exceder el nivel de autorización; b. Utilizar la tecnología correcta de cifrado y protección de datos para proteger la confidencialidad de los datos clave; c. Proporcionar pistas de auditoría para hacer cumplir la responsabilidad personal y proporcionar mecanismos de detección de actividades ilegales; d. De acuerdo con la importancia del sistema, es necesario resolver la disponibilidad y problemas de tolerancia a fallos.
4. Revisión del diseño
5. Tutorial de auditoría de código
6. Prueba de aceptación del usuario
7. Mantenimiento y gestión de cambios

Modelo de ciclo de vida
1. Modelo de cascada: desarrollado por Winstom Royce en 1970, la función de ciclo de retroalimentación solo permite a los desarrolladores retroceder una etapa.
2. Modelo en espiral: propuesto por Barry Boehm en 1988, metamodelo, "modelo de modelo"
3. Desarrollo de software ágil: enfatizando las necesidades del cliente, desarrollo rápido de nuevas funciones, entrega iterativa. "Manifiesto Ágil" 12 principios:

  • El objetivo más importante es entregar software valioso de manera continua y temprana para satisfacer a los usuarios.
  • Bienvenidos cambios en la demanda
  • Entregue software de trabajo con regularidad
  • Los empresarios y los desarrolladores trabajan juntos todos los días
  • Estimular el espíritu de lucha individual y construir proyectos con ellos como núcleo.
  • Dentro y fuera del equipo, la forma más eficiente de comunicar información es la conversación cara a cara.
  • El software que funciona es la principal métrica de progreso
  • El proceso ágil aboga por el desarrollo sostenible
  • Persistir en la búsqueda de la excelencia técnica y el buen diseño.
  • Céntrese en la simplicidad y reduzca la carga de trabajo innecesaria
  • La mejor arquitectura, requisitos y diseño provienen de equipos autoorganizados
  • El equipo reflexiona periódicamente sobre cómo mejorar su eficacia y ajusta su comportamiento a su
    vez.4.Modelo de madurez de la capacidad del software: se divide en cinco etapas:
  • La primera etapa, el nivel inicial: casi no se define ningún proceso de desarrollo de software.
  • La segunda etapa, nivel repetible: proceso básico de gestión del ciclo de vida, se puede esperar que proyectos similares tengan resultados repetibles.
  • La tercera etapa, nivel de definición: los desarrolladores de software operan de acuerdo con una serie de procesos de desarrollo de software formales y estables. Estandarizar la gestión de todos los proyectos.
  • La cuarta etapa, nivel de gestión: medición cuantitativa para obtener información detallada sobre el proceso de desarrollo. El alcance de procesamiento al que SEI presta atención se define como: gestión de procesamiento cuantitativo y los antiguos hablan de gestión de calidad.
  • La quinta etapa, nivel de optimización: proceso de mejora continua, determinación de proceso maduro. El alcance de procesamiento en el que se centra SEI se define como: prevención de defectos, gestión de cambios técnicos y gestión de cambios de procesos.
    5. Modelo IDEAL, para lograr múltiples atributos SW-CMM, cinco etapas: puesta en marcha, diagnóstico, establecimiento, acción y aprendizaje.

Diagrama de Gantt: diagrama de barras que muestra la relación entre proyectos y cronogramas en diferentes momentos.
Técnica de revisión de evaluación de programas, PERT (Técnica de revisión de evaluación de programas), herramienta de programación de proyectos: se utiliza para determinar el tamaño del producto de software durante el desarrollo y calcular la desviación estándar para la evaluación de riesgos.

Gestión del cambio: como herramienta de seguridad. Tres componentes básicos: solicitud de cambio, control de cambios y control de liberación.

Gestión de la configuración: se utiliza para controlar la versión de software utilizada en toda la organización y rastrear y controlar formalmente los cambios en la configuración del software. 4 componentes principales: identificación de la configuración, control de la configuración, estadísticas del estado de la configuración y auditoría de la configuración.

Método DevOps: concentre el desarrollo de software, la garantía de calidad y las operaciones técnicas en un modelo, lo que reduce en gran medida el tiempo de desarrollo, pruebas e implementación.

Interfaz de programación de aplicaciones (API):
1. Deben tenerse en cuenta los requisitos de autenticación.
2. Las fallas de seguridad deben probarse minuciosamente.

Pruebas de software: caja blanca, caja negra, caja gris; estática y dinámica.

Almacén de código:
1. Funciones: almacenar código fuente, control de versiones, seguimiento de errores, alojamiento web, gestión de versiones y funciones de comunicación que pueden respaldar el desarrollo de software.
2. Seguridad: El acceso del desarrollador al almacén debe controlarse adecuadamente, y el control de acceso debe diseñarse cuidadosamente para permitir que solo los usuarios adecuados lean o escriban.

Acuerdo de nivel de servicio: además de los indicadores de servicio, también incluye medidas financieras y correctivas.

Adquisición de software: seguridad:
1. Configure correctamente el software para cumplir con los objetivos de seguridad.
2. Preste atención a los anuncios y parches de seguridad, y corrija oportunamente las vulnerabilidades descubiertas recientemente.
3. En SaaS, el personal de seguridad también es responsable de monitorear la seguridad del proveedor y verificar las medidas de seguridad del proveedor.

Sistema de gestión de
bases de datos 1. La base de datos jerárquica almacena datos de manera jerárquica, la relación de mapeo de datos de las bases de datos distribuidas es de muchos a muchos.
2. Base de datos relacional: una tabla bidimensional compuesta por filas y columnas. El número de filas es la base y el número de columnas es el grado.
Clave candidata: se puede utilizar para identificar de forma única un subconjunto de atributos registrados en la tabla.
Clave principal: la clave seleccionada de las claves candidatas de la tabla para identificar de forma exclusiva los registros de la tabla.
Clave externa: se utiliza para forzar una relación entre dos tablas.
3. Transacciones de la base de datos: 4 características: atomicidad, consistencia, aislamiento y durabilidad
4. Simultaneidad de la base de datos: dos procesos actualizan los datos al mismo tiempo, es posible que se pierdan datos; se leen registros de transacciones de oda que no han aumentado los precios con éxito. ser sucio lee.
5. ODBC: el agente entre la aplicación y el controlador de la base de datos back-end.
6. NoSQL: almacenamiento de valores clave, base de datos de gráficos; base de datos de documentos

Tipo de memoria:
1. Memoria principal: memoria. La CPU puede leer directamente.
2. Almacenamiento auxiliar: disco duro, CD, DVD, almacenamiento a largo plazo.
3. Memoria virtual: la memoria auxiliar simula la memoria principal.
4. Almacenamiento virtual: el almacenamiento principal simula el almacenamiento auxiliar para acelerar la lectura del sistema de archivos.
5. Memoria de acceso aleatorio: RAM, disco duro
6. Memoria de acceso secuencial: cinta magnética.

Amenazas a la memoria:
1. Acceso ilegal: el uso de cifrado es el mejor método.
2. Pasaje oculto

Sistema basado en el conocimiento
1. Sistema experto: 2 componentes: base de conocimiento (incluidas las reglas conocidas por el sistema experto), motor de razonamiento (analizar la información de la base de conocimiento para obtener decisiones correctas); la toma de decisiones no se ve afectada por las emociones y es Stock adecuado y otros sistemas
2. Aprendizaje automático: Analizar nuevos conocimientos del conjunto de datos. Aprendizaje supervisado (entrenamiento con datos etiquetados), aprendizaje no supervisado (entrenamiento con datos sin etiquetar)
3. Red neuronal: las teclas de la unidad de cálculo intentan imitar el proceso de razonamiento biológico del cerebro humano, que es una extensión del aprendizaje automático, también llamado aprendizaje profundo o Sistema cognitivo
4. Aplicación de seguridad: Basado en las ventajas de la tecnología de análisis del conocimiento: la capacidad de tomar decisiones consistentes rápidamente

Hay 20 ejercicios después de clase, 4 incorrectos.

Supongo que te gusta

Origin blog.51cto.com/314837/2649835
Recomendado
Clasificación