Galeria de mapas mentais CISSP-8-Desenvolvimento de Segurança de Aplicações
O mapa mental de desenvolvimento de segurança de aplicativos da Certificação Profissional de Segurança de Sistemas de Informação CISSP inclui principalmente objetivos de aprendizagem de desenvolvimento de aplicativos, segurança de desenvolvimento de sistemas, modelos de desenvolvimento de software, linguagens e conceitos de programação, sistemas de aplicativos típicos e avaliação da eficácia da segurança de software.
Editado em 2021-11-10 12:06:10A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
Desenvolvimento de segurança de aplicativos
Objetivos de aprendizagem de desenvolvimento de aplicativos
Segurança do ciclo de vida de desenvolvimento de software
Abordagem do ciclo de vida de desenvolvimento de software
Modelo de maturidade
Operação e manutenção
Mudar a gestão
Equipe de produto integrada
Controles de segurança em ambientes de desenvolvimento
Segurança do ambiente de software (linguagem de programação, bibliotecas, caixas de ferramentas, ambiente de desenvolvimento abrangente, tempo de execução);
Fraquezas e vulnerabilidades de segurança no nível do código-fonte
Gerenciamento de configuração como um componente importante da codificação segura
Segurança da interface do aplicativo
Efeitos de segurança de software
Auditoria e registro de alterações
Análise e mitigação de riscos (Ação Corretiva, Teste e Validação, Teste de Regressão)
Testes de aceitação do usuário
Preocupações com o desenvolvimento de aplicativos
padrões arquitetônicos
Arquitetura de três camadas
do utilizador
front-end
Middleware complexo
base de dados
Rastreamento de bugs e recursos de segurança
servidor cliente
Cliente: interface de usuário, operação de banco de dados local, mecanismo de comunicação
Servidor: executa e processa solicitações de dados e retorna resultados
navegador/servidor
Controle Ambiental V Controle de Aplicação
Equilíbrio de vários métodos de controle
Entenda os limites entre controles ambientais e controles de aplicação
Funcionalidade de segurança V
Equilíbrio entre funcionalidade de software e medidas de segurança
Equilíbrio de requisitos funcionais, requisitos de segurança e mecanismos de segurança
Segurança V Experiência do Usuário
geralmente inversamente proporcional a
Função de segurança V segurança de configuração
A instalação padrão não garante segurança
A segurança da configuração não está habilitada (o acesso deve ser negado por padrão)
Falha em seguir o princípio de instalação mínima
Instalação pós-patch
Segurança de desenvolvimento de sistema
SDLC
Início do projeto
Esclarecer os requisitos e determinar os objetivos básicos de segurança do produto
Avaliação de análise de risco, avaliando ameaças e vulnerabilidades, Estime a relação custo/benefício de diferentes contramedidas de segurança
Gerenciamento de riscos
Análise de risco
análise de demanda
Requisitos de segurança
Requisitos funcionais do sistema ou aplicativo
padrões e diretrizes
restrições de exportação
Nível de sensibilidade dos dados
Políticas de segurança relacionadas
Resultados da análise custo/benefício
Nível de proteção necessário para atingir metas
A equipe de desenvolvimento de projetos e gerenciamento de requisitos conduz análises complexas dos requisitos funcionais atuais e prováveis futuros para garantir que o novo sistema atenda aos requisitos do usuário final
Os membros da equipe do projeto também revisarão os documentos produzidos durante a fase inicial do projeto e os revisarão e atualizarão conforme necessário.
Para projetos relativamente pequenos, os processos acima são frequentemente incluídos nas fases iniciais do projeto.
Os requisitos de segurança também devem ser formados em conformidade. (Os requisitos de segurança são determinados durante a fase de análise de requisitos, O pessoal de segurança deve estar envolvido durante a fase de requisitos)
projeto de sistema
Desenvolvimento de software como parte do design do sistema
Hardware é diferente de software
Geralmente, as funções implementadas pelo software são decididas durante o projeto do sistema.
A verificação do software deve levar em consideração todo o contexto em que o sistema é projetado
Considere as especificações
A diferença entre software e hardware
O software pode ter ramificações e pode executar comandos diferentes com base em entradas diferentes, portanto, o software é complexo;
O software não é físico e, portanto, não se desgasta;
O software pode ser alterado de forma fácil e rápida;
O processo de desenvolvimento de software deve ser totalmente planejado, controlado e registrado para detectar e corrigir resultados inesperados causados por alterações de software.
.Os componentes de software não são padronizados e substituíveis com a mesma frequência que o hardware.
Ferramentas para descrever os requisitos do usuário e o comportamento interno do sistema
Inclui todas as atividades relacionadas ao design de sistemas e software.
Projetar arquitetura do sistema, saídas do sistema e interfaces do sistema
Estabelecer requisitos de entrada de dados, fluxo de dados e saída de dados e, geralmente, projetar recursos de segurança de software com base na arquitetura de segurança da empresa.
projeto
projeto de dados
Extraia dados de design de dados e modelos de informações e converta-os em estruturas de dados
Projeto de arquitetura
Define as principais estruturas e relacionamentos entre os componentes do aplicativo
projeto de processo
Converta componentes estruturados em processos descritivos
abordagem de design de segurança
Modelagem de ameaças (STRIDE)
Análise de minimização de superfície de ataque
Limpe a entrada e a saída
Perguntas a considerar
Estrutura analítica do projeto (EAP) para fases subsequentes
Detalhes do produto e do ambiente em que ele é implementado
Problemas de modularização e reutilização de produtos
Desenvolvimento e implementação de software
O trabalho principal
O código-fonte foi gerado e os cenários de teste e casos de teste foram desenvolvidos de acordo
Comece a implementar testes unitários e de integração
Os procedimentos e sistemas também começam a ser documentados para manutenção e depois passam para testes de aceitação e transição de produção
Tipo de teste
teste de unidade
Verifique a estrutura de dados, lógica e condições de limite
Teste de integração
Verifique se os componentes funcionam juntos de acordo com as especificações do projeto
Teste do sistema
Função/Desempenho
Teste de aceitação
Garanta que o código atenda às necessidades do cliente
Teste de regressão
Depois que as alterações no sistema forem feitas, elas serão testadas novamente para Garanta níveis de funcionalidade, desempenho e proteção
teste de funcionamento
Teste de performance
teste de carga
teste de pressão
Teste de difusão
Envie dados complexos/aleatórios ao software para causar erros de software. É usado principalmente para identificar buffer overflows, DOS, injeções, erros de verificação e outros erros que podem fazer com que o software congele, trave ou ocorra.
Verificação de vulnerabilidades
Use ferramentas automatizadas para verificar os principais erros do programa, como erros de linguagem fortemente tipados, erros de desenvolvimento e configuração, falhas de sequência de transação (falhas de sequência de transação), condições de disparo de mapeamento (Mapeamento de condições de gatilho), etc., geralmente manual. é necessário trabalho após a investigação da digitalização.
Teste manual
Ao analisar um programa através da experiência e intuição humanas, muitas vezes usando tecnologia computacional, os testadores podem localizar erros de projeto, como erros lógicos. Inclui testes de penetração.
Análise dinâmica
A análise dinâmica é uma análise oportuna de um programa em execução. Geralmente é executada após a análise estática e após a resolução dos problemas básicos do programa.
Separação de ambientes e separação de responsabilidades
verificar (verificação)
Garantir que as especificações do produto sejam atendidas
confirme (validação)
Garantir que os principais objetivos do projeto sejam alcançados
Concentre-se em como usar e operar o sistema ou aplicativo desenvolvido
Certificação (Certificação)
características técnicas e não técnicas de segurança de um sistema de TI e suas Avaliação de segurança de medidas de proteção, medindo como projetos e implementações específicas atendem Um conjunto definido de requisitos de segurança para apoiar o processo de acreditação.
Um processo para examinar e avaliar controles de segurança
Executado por uma agência de inspeção externa independente
Confirme a conformidade com políticas e padrões de segurança
Avaliação ou Aprovação (Acreditação)
Um órgão autorizado declara oficialmente que um sistema de TI foi aprovado e pode capaz de operar em um modo de segurança específico que emprega um conjunto definido de medidas de segurança que atendem a um nível aceitável de risco
Aprovação do sistema pela administração
aceitação clara do risco
Migrações e correções
Nesta fase, o sistema transita da fase de aceitação para o ambiente real de produção.
As atividades nesta fase incluem a obtenção de aprovações de segurança (credenciamento de segurança);
Treinar usuários de acordo com o plano;
Implementar o sistema, incluindo instalação e conversão de dados;
Se necessário, execute operações paralelas.
Operação e manutenção
Configure corretamente o ambiente de segurança
Conduza continuamente testes de vulnerabilidade, monitore a atividade do sistema e audite eventos (Uma vulnerabilidade é descoberta durante a fase de manutenção e a ação tomada é reportar)
Se ocorrerem alterações importantes, realize uma avaliação de risco, e realizar processos de certificação e acreditação (recertificação, recredenciamento)
Descartar (disposição)
Destrua dados com base na sensibilidade dos dados.
Método de destruição
dano físico
Desmagnetização
substituir
Ciclo de vida da engenharia de sistemas SELC (Ciclo de Vida da Engenharia de Sistemas)
Análise de requisitos, design, implementação, verificação, operação Análise de requisitos, projeto, implementação, verificação, operação
Gerenciamento de alterações e configurações
modelo de maturidade capacitiva (CMM)
Inicial (ad hoc)
Repetivel
Definiram
Gerenciado (gerenciado, métrica)
Otimizando (melhoria contínua)
Integração do modelo de maturidade de capacidade (CMMI)
1, 3, 5 são iguais, 2. Gerenciado, 4. Quantificado e gerenciado
Equipe de produto integrada
Desenvolvimento Integrado de Produtos e Processos (IPPD) desenvolvimento integrado de produtos e processos
Técnicas de gestão que otimizam os processos de projeto, fabricação e suporte, integrando todas as atividades de aquisição necessárias simultaneamente, usando equipes multidisciplinares
IPPD facilita o cumprimento das metas de custo e desempenho desde a concepção do produto até a produção, incluindo suporte no local
Um princípio fundamental do IPPD é o modelo de colaboração multidisciplinar de Equipes de Produto Integradas (IPTs)
IPT
Representantes de todas as disciplinas funcionais trabalham com o Líder da Equipe para construir programas bem-sucedidos e equilibrados, identificar e resolver problemas e tomar decisões sólidas e oportunas
Os membros da equipe podem não contribuir necessariamente com 100% do seu tempo para o projeto, e um membro pode fazer parte de várias equipes do IPT.
O objetivo dos IPTs é tomar decisões de equipe com base em informações em tempo real de todas as equipes (por exemplo, gerenciamento de projetos, engenharia, fabricação, testes, lógica, gestão financeira, compras e gestão de contratos), incluindo clientes e fornecedores.
Os membros da equipe dos ITPs são compostos por membros de nível gerente de projeto, incluindo membros da empresa e contratantes de sistemas/subsistemas
Um IPT típico está no nível do programa e pode, por exemplo, consistir nas seguintes disciplinas funcionais: engenharia de projeto, fabricação, engenharia de sistemas, teste e avaliação, subcontratação, garantia de qualidade, treinamento, finanças, confiabilidade, manutenção, suporte, aquisição, gestão de contratos, fornecedores e clientes.
DevOps
conceito
em princípio
Desenvolva e teste sistemas de produção semelhantes
Implante com um processo repetível e confiável
Monitore e verifique a qualidade operacional
Expanda o ciclo de feedback
modelo de desenvolvimento de software
modelo cachoeira
Planejamento, análise de requisitos, design de software, escrita de programas, testes de software, operação e manutenção
modelo espiral
Desenvolvimento de programação estruturada
desenvolvimento iterativo
modelo de protótipo
abandono
Melhorar
prototipagem rápida
Explorar o modelo
Desenvolvimento de análise conjunta
Desenvolvimento Rápido de Aplicativos (RAD)
Reutilizar modelos
quarto limpo
desenvolvimento de componentes
Desenvolvimento ágil
Programação Extrema XP
Scrum
Magro
Manifesto Ágil 4 frases
Indivíduos e interações acima de processos e ferramentas Software funcional acima da documentação completa Cooperação com o cliente acima da negociação do contrato Responder melhor às mudanças do que seguir o plano
Linguagens e conceitos de programação
programação estruturada
Análise e design top-down; Implementação passo a passo de baixo para cima
Perspectiva orientada para o usuário, distingue estritamente as etapas do trabalho
Desvantagens: longo ciclo de desenvolvimento, processo de desenvolvimento complicado e complexo A auditoria é mais difícil e a comunicação com o usuário não é intuitiva.
programação orientada a objetos
É composto de duas partes: classe e objeto.
tipo (Aula)
Classe define as características abstratas de uma coisa
Uma classe define as propriedades de uma coisa e o que ela pode fazer (seu comportamento)
Os métodos e propriedades de uma classe são chamados de “membros”
objeto (Objeto)
Objeto é uma instância de uma classe.
O sistema aloca espaço de memória para objetos, mas não para classes; As classes são abstratas. É impossível para o sistema alocar espaço para coisas abstratas.
objeto = método de propriedade
Atributos:
Descreve a estrutura e as características de status do objeto
método:
A função ou processo que um objeto pode executar
Métodos de comunicação entre objetos: passagem de mensagens
polimorfismo (polimorfismo)
A compreensão mais simples do encapsulamento é o empacotamento, que se refere a ocultar as propriedades e detalhes de implementação de um objeto. Apenas a interface fica exposta ao mundo externo, ou seja, o estado interno do objeto é transparente para o mundo externo.
Encapsulamento (Encapsulamento)
significa ocultar informações do objeto
membros públicos
membro privado
herdar (herança)
É um mecanismo para criar um ou mais subtipos de uma classe existente.
Arquitetura de software
estrutura de dados
Representação de relacionamentos lógicos entre elementos de dados
escalar
lista vinculada
árvore hierárquica
coesão e acoplamento (alta coesão, baixo acoplamento)
coesão
Reflete quantos tipos diferentes de tarefas um módulo pode executar
Quanto maior a coesão, mais fácil será atualizá-la e modificá-la, sem afetar outros módulos que interagem com outros
acoplamento
Quanta interação um módulo precisa para executar suas tarefas
O baixo acoplamento facilita a reutilização e as modificações não afetarão outros módulos.
Computação distribuída
Arquitetura comum do agente de solicitação de objeto (CORBA)
Modelo COM/DCOM da Microsoft
EJB
API
API é um conector para IoT (Internet das Coisas) que permite que dispositivos se conectem entre si
API de transferência de estado representacional (REST)
Conselhos de uso de especialistas em segurança REST
Três caminhos seguros para APIs REST
Sistema de aplicação típico
Segurança na Web
coletar mensagem (Coleta de informações)
Interface de gerenciamento (Interfaces administrativas)
Autenticação e controle de acesso (Autenticação e controle de acesso)
Validação de entrada (Validação de entrada)
resposta
Ataque de estouro de buffer
Ataque de script entre sites XSS
Ataque de injeção SQL
Validação de parâmetros (Validação de parâmetro)
Gerenciamento de sessão (Gerenciamento de sessão)
Gerenciamento de banco de dados
Sistema de gerenciamento de banco de dados (SGBD)
Assemblies que gerenciam e controlam o acesso a dados
Organize e armazene dados em um determinado formato, Grave arquivos que permitem aos usuários acessar, gerenciar e atualizar
Foco: Coleta, armazenamento e recuperação de dados
Mais preocupado com a integridade, seguido pela disponibilidade e, finalmente, pela confidencialidade
metadados
Essência: Dados sobre dados
Dados principais relacionados à definição da fonte de dados, definição de destino, regras de conversão, etc.
Características:
a consistência dos dados
As operações devem obedecer à política de integridade de cada banco de dados, Dados de transação completos consistentes
compartilhamento de dados
Vários usuários podem acessar o banco de dados ao mesmo tempo. Com controle de simultaneidade
Recuperação de dados
No caso de um erro ou falha do sistema, o sistema pode ser recuperado. Verifique as transações que estão sendo processadas no momento da falha ou reversão, Ou uma transação foi concluída para manter a consistência dos dados.
Checkpointing é uma técnica de recuperação comum
controlar com segurança
Fornece vários controles de segurança para restringir o acesso do usuário
linguagem de banco de dados
Linguagem de definição de dados (DDL), Por exemplo: CREATE, DROP, ALTER e outras instruções.
Linguagem de manipulação de dados (DML), Por exemplo: SELECT (consulta), INSERT (inserir), Instruções UPDATE (modificar), DELETE (excluir).
Linguagem de controle de dados (DCL), Por exemplo: GRANT, REVOKE e outras declarações.
Declaração de controle de transação (TCL), Por exemplo: COMMIT, ROLLBACK e outras instruções.
Garanta uma abordagem ou processo eficaz
Compressão: A capacidade de compactar dados e economizar espaço de armazenamento e E/S
Reorganizar: recuperar espaço não utilizado
Refatoração: adição e alteração de registros, dados, controles de acesso, Configuração de disco e recursos de processamento
Modelo de banco de dados
modelo de banco de dados hierárquico
Uma estrutura de árvore lógica que consiste em registros e campos relacionados na estrutura de árvore lógica
Uma estrutura de árvore contém muitos ramos, cada ramo tem muitas folhas ou campos de dados
O acesso requer um caminho claro, Não é adequado para mudanças frequentes, adequado para consultas frequentes
Exemplo: Lightweight Directory Access Protocol LDAP, estrutura de registro
Modelo de banco de dados de rede
Use gráficos direcionados para representar tipos de entidades e relacionamentos entre entidades. Uma estrutura redundante semelhante a uma rede, não uma estrutura de árvore estrita
Cada elemento de dados possui vários nós pais e nós filhos
Recuperação mais rápida em comparação com modelos hierárquicos
modelo de banco de dados relacional
Características: atributos/campos (colunas) e tuplas/registros (linhas)
Combinação de produtos cartesianos
Chaves primárias e estrangeiras
A chave primária identifica exclusivamente um registro
Chave estrangeira: se um valor de atributo em uma tabela corresponder a uma chave primária em outra tabela, e um certo relacionamento é estabelecido, então este atributo é considerado uma chave estrangeira
Componentes básicos:
Linguagem de definição de dados (DDL)
Defina a estrutura do banco de dados (Estrutura) e a estrutura de dados (Esquema)
Estrutura: descreve o tamanho da tabela, a localização das chaves, visualizações e relacionamentos entre elementos de dados
Esquema: descreve os tipos de dados e suas propriedades que o banco de dados armazena e opera
Definir a organização, operações de acesso e procedimentos de integridade do banco de dados
Linguagem de manipulação de dados (DML)
Comando de operação do usuário
Linguagem de controle de dados (DCL)
Criar objetos de acesso e autorização de usuário
Linguagem de consulta (QL)
Faça uma solicitação de consulta ao banco de dados
gerador de relatórios
Saída do processo de dados de maneira definida pelo usuário
(RDBMS) integridade relacional
Integridade da entidade (Integridade da entidade)
Cada registro é identificado exclusivamente pelo valor da chave primária
completude semântica (Integridade semântica)
Garantir que as regras estruturais e semânticas sejam seguidas, Evite que dados semanticamente incorretos entrem no banco de dados. Isto pode ser alcançado através de regras limitadas por regras
(referência) integridade referencial (Integridade referencial)
Nenhum registro de banco de dados pode fazer referência a uma chave primária inexistente. Se um registro contendo uma chave primária for excluído, Todos os registros referenciados devem ser excluídos. (chave estrangeira)
Dicionário de dados:
É uma biblioteca central que descreve elementos de dados e seus relacionamentos. Pode armazenar informações importantes, como uso de dados, relacionamentos de dados, fontes de dados e formatos de dados
O dicionário de dados é uma parte de gerenciamento centralizado que controla os dados do banco de dados. Descreve referências cruzadas entre elementos de dados e bancos de dados
Descreve uma coleção de definições de elementos de dados, objetos de esquema e chaves de referência
Os objetos de esquema incluem tabelas, visualizações, índices, procedimentos, funções e gatilhos
O software de gerenciamento de dados lê o dicionário de dados, determina se o módulo existe e verifica se há As permissões de acesso do processo do usuário também definem as configurações de permissão de visualização para cada usuário.
Atualize o dicionário de dados quando novos registros, tabelas, visualizações ou esquemas precisarem ser adicionados
modelo de banco de dados orientado a objetos
Combinando o modelo de dados de objetos em programação orientada a objetos com SGBD, Pode armazenar imagem, voz, vídeo e outros dados.
Bancos de dados orientados a objetos usam classes para definir as propriedades e procedimentos de seus objetos
modelo de banco de dados objeto-relacional
Interface de programação de banco de dados
Conectividade de banco de dados aberta, ODBC
Conexão de objeto e banco de dados de incorporação, OLEDB
Objetos de dados ActiveX, ADO
Interconexão de banco de dados Java, JDBC
Vulnerabilidades e ameaças de banco de dados
integridade (integridade)
reversão
Encerre a transação atual, cancele as alterações e restaure o estado anterior
enviar
Enviar, encerrar a transação atual e executar as modificações feitas pelo usuário, Se não puder ser executado com sucesso, reverta
ponto de salvamento/ponto de verificação (ponto de verificação)
Se for detectado um erro, o usuário poderá retornar ao local correspondente.
Use mecanismos de bloqueio para lidar com a ameaça de operações simultâneas
polimerização (Agregação)
Algumas informações não são sensíveis separadamente, mas são sensíveis em conjunto.
Solução
Controle estritamente o acesso a funções agregadas
Os usuários estão proibidos de acessar dados diretamente por meio de visualizações.
raciocínio (Inferência)
Agregue o resultado desejado
O raciocínio não consegue obter as informações disponíveis para exibição
Solução:
Controle de acesso
Controle de acesso baseado em conteúdo
Controle de acesso sensível ao contexto
inibição da unidade (Supressão celular)
Técnicas usadas para ocultar unidades específicas
Particionamento de banco de dados (partição de banco de dados)
Divida o banco de dados em partes diferentes
ruído e perturbação (ruído e perturbação)
Técnicas para inserção de informações falsas em bancos de dados
Visualização do banco de dados
múltiplas instâncias (MRDBMS)
Crie várias tuplas com a mesma chave primária e Relacionamentos entre instâncias definidas por níveis de segurança
impasse (Bloqueio morto)
Outras ameaças
base de dados
Processamento de transações on-line, OLTP
Princípios ÁCIDO
Atomicidade
Todas as alterações são confirmadas ou o banco de dados é revertido
Consistência
Siga a integridade do banco de dados, Garanta a consistência dos dados em diferentes bancos de dados
Isolamento
As transações não afetam umas às outras
Durabilidade
Uma vez enviado, não pode ser revertido
Processamento Analítico Online, OLAP
OLAP é a principal aplicação de sistemas de data warehouse
Adequado para tomadores de decisão e gerentes seniores
Armazenamento de dados e mineração de dados
Para permitir a recuperação de informações e análise de dados, Combine vários bancos de dados ou fontes de dados em um grande banco de dados
mineração de dados
Classificação: agrupamento de dados com base em semelhanças comuns
Possibilidade: Identificar interdependências entre dados, e aplicar possibilidades aos seus relacionamentos
sistema inteligente
programação baseada em regras
As regras são baseadas em unidades lógicas se-então
composição
motor de inferência
O mecanismo de inferência fornece interface de usuário, recursos de acesso a arquivos externos, planos e programas
base de conhecimento
A base de conhecimento contém dados relacionados a um problema ou domínio específico
Sistemas especialistas são frequentemente usados pelo IDS para revisar automaticamente os logs de segurança
Redes neurais artificiais
Modelo eletrônico baseado na estrutura neural do cérebro humano
O cérebro armazena informações na forma de padrões
Quando você aprende algo e usa com frequência, O caminho de conexão à unidade de armazenamento de informações será fortalecido
As redes neurais são programadas para ter capacidades de tomada de decisão e aprendizagem. Melhorar sua funcionalidade por meio de um processo extensivo de tomada de decisão por tentativa e erro
ameaçar
estouro de buffer (Estouro de buffer)
passagem secreta Converter canal
tempo
armazenar
Reutilização de memória/reutilização de objetos (Reutilização de memória/Reutilização de objeto)
Engenharia social
Alçapão/porta dos fundos (Alçapão/porta dos fundos)
ataque de falsificação (ataque de falsificação)
segurança na web
vandalismo
Substitua a imagem e o título emitidos pela imagem e título modificados
percepção e realidade
fraude financeira
Enganação de serviços e transações em ambientes virtuais
acesso privilegiado
Restringir o acesso a usuários privilegiados
Roubar informações de transação
roubo de propriedade intelectual
ataque de negação de serviço
segurança específica
coletar mensagem
Interface de gerenciamento
Autenticação e controle de acesso
Gerenciamento de configurações
Insira a confirmação
Confirmação de parâmetro
Gerenciamento de sessão
SAML
Linguagem de marcação de declaração de segurança SAML, É um protocolo baseado em XML. É um padrão de identidade federado. Usado para transmitir informações de autenticação e autorização em diferentes domínios de segurança e pode ser usado para implementar logon único. Semelhante à dependência do Kerberos do KDC, o SAML depende do IDP (provedor de identidade). SAML possui um recurso chamado aplicação de políticas.
OAuth2.0
OAuth (Open Authorization) é um padrão aberto, Permitir que os usuários permitam que aplicativos de terceiros acessem recursos privados (como fotos, vídeos, listas de contatos) armazenados pelo usuário em um site, Sem fornecer seu nome de usuário e senha a aplicativos de terceiros.
O OAuth original emitirá um token com um período de validade muito longo (normalmente um ano ou sem limite de validade). No OAuth 2.0, o servidor emitirá um token de acesso de curta validade e um token de atualização de longa duração. Isso permitirá que o cliente obtenha um novo token de acesso sem exigir que o usuário faça isso novamente e também limitará o período de validade do token de acesso.
mover código
miniaplicativo java
A linguagem Java consiste em bytecode, máquina virtual Java Converta-o em código de máquina que a máquina possa reconhecer.
O miniaplicativo é executado em uma sandbox (O sandbox ajuda a obter autorização mínima, É um meio eficaz de lidar com ataques de códigos maliciosos alternativa ao software antivírus)
Controle ActiveX
Código malicioso
Vírus
Características: Reprodução e destruição, requer hospedeiro
vírus de macro
Vírus do setor de inicialização
Você pode excluir os dados na área de inicialização ou reinicializar a área
Vírus de compressão
Anexe-se ao programa executável e compacte-o usando as permissões do usuário
vírus secreto
Oculte as alterações que ele fez no registro de inicialização da caixa de arquivos
Vírus metamórfico
Faça uma cópia de você mesmo em mudança, mas ainda utilizável
Através de ruído ou instruções forjadas, mecanismos de mutação e números aleatórios Gerador para alterar a ordem das instruções e evitar a detecção
Vírus dividido
Infecta o setor de inicialização do disco rígido e arquivos executáveis simultaneamente
vírus auto-infligido
Evite a detecção por software antivírus ofuscando seu próprio código
vírus de script
vírus do túnel
Instale-se em um programa antivírus, software antivírus Ao detectar vírus, sete intercepta esta chamada
minhoca
Pode se auto-replicar sem um host
Distribuído por meio de e-mails, downloads de sites, etc.
Rede de bots
Um bot é um tipo de malware, um malware latente código
cavalo de Tróia
Um programa disfarçado de outro programa
rootkit
bomba lógica
Uma bomba lógica é executada quando ocorre um evento específico
software antivírus
método de detecção característica (assinatura)
Detecção heurística (heurística) Comportamento anormal detectado
Contador de suspeita
Alguns softwares antivírus criam uma sandbox de forma suspeita, Analise dinamicamente códigos suspeitos
Classificação:
A revisão de informações sobre um trecho de código é chamada de análise estática
Permitir que parte do código seja executado em uma máquina virtual é chamado de análise dinâmica.
Programa de imunização
Mire um vírus e faça-o pensar que está infectado.
bloqueador de comportamento
Programa antivírus
Proteja-se contra vírus através de métodos administrativos, físicos e técnicos
Detecção de spam
Filtragem Bayesiana
ataque de negação de serviço (DOS) (Parece uma atividade normal)
Características
Consumir largura de banda da rede da vítima
Consumir os recursos da vítima
Classificação
ataque smurf
Explorando falhas no protocolo ICMP
ataque frágil
Explorando falhas do protocolo UDP
smurf e farggle são duas maneiras de explorar falhas de protocolo e Exemplo de uso de rede amplificada para lançar DoS
Ataque de inundação SYN
Utilizando o handshake triplo de uma conexão TCP
Limite da fila de conexão excedido
ataque de lágrima
Explore esta falha de design enviando pacotes fragmentados muito pequenos
Ataque distribuído de negação de serviço (DDOS)
O roteamento Sinkhole é uma das maneiras de lidar com DDOS
Avalie a eficácia da segurança de software
Certificação e acreditação
efeito
Incorporar recursos de segurança da informação em sistemas de informação federais por meio da aplicação de melhores práticas de gerenciamento, controles de segurança operacionais e técnicos.
Manter a consciência do estado de segurança dos sistemas de informação através do fortalecimento contínuo dos processos de monitorização
Fornecer informações importantes para a liderança sênior orientar decisões, incluindo a aceitação de riscos para as operações da organização e riscos para ativos, indivíduos, outras organizações ou países decorrentes do uso e operação de sistemas de informação;
Auditoria e registro de alterações
Função de auditoria de informações
Os procedimentos de auditoria auxiliam na detecção de qualquer atividade incomum
O nível e o tipo de auditoria dependem dos requisitos de auditoria do software instalado e da confidencialidade dos dados processados ou armazenados pelo sistema.
Os recursos do sistema devem ser protegidos quando disponíveis
A função da auditoria de log
A necessidade de estabelecer uma linha de base
Desempenho de diferentes servidores e sistemas
Funções do aplicativo e problemas de operação e manutenção
Detecção eficaz de intrusões
Análise forense
Cumprir diversas leis e regulamentos
Integridade das informações
A aplicação compara ou reconcilia o que é processado com o que se espera que seja processado
Comparar totais
Verifique o número de série
precisão das informações (controle de aplicativos)
Verifique a precisão da entrada: a validação de dados e as verificações de validação devem ser integradas em aplicativos apropriados
Verificações de caracteres: compare os caracteres de entrada com os tipos de caracteres esperados, como números ou letras
Verificações de intervalo: valide os dados de entrada em relação aos limites superior e inferior da reserva
Verificações de relacionamento: compare os dados de entrada com os dados do arquivo de registro principal
verificação de plausibilidade (Verificações de razoabilidade): Compare os dados de entrada com os padrões esperados, outras formas de verificações de integridade
Limites de transação: Verifique os dados de entrada e compare com os limites definidos pela administração na transação.
Análise e mitigação de riscos
Gerenciamento de riscos
O gerenciamento de riscos é um processo contínuo que abrange todo o ciclo de vida do projeto
O processo de gestão de riscos inclui planejamento, identificação, análise, monitoramento e controle de riscos
A identificação dos riscos começa antes do início do projeto e o número de riscos aumenta à medida que o projeto amadurece.
O processo de documentação de riscos inclui mitigação de riscos e planejamento de continuidade
As etapas de redução de riscos podem reduzir a probabilidade de ocorrência de um evento. A mitigação de riscos incorrerá em custos e requer uma análise de custo-benefício;
O planejamento de continuidade ou uma série de atividades realizadas durante ou antes da ocorrência de um evento podem ser atividades preventivas antes que um risco ocorra ou atividades após a ocorrência de um risco.
Análise de Risco e Estratégias de Mitigação
Integrar-se ao processo SDLC, bem como ao processo de gerenciamento de mudanças da organização
Use métodos padronizados de avaliação de risco e relate os riscos às partes interessadas
Rastreie e gerencie os pontos fracos identificados durante a avaliação, gestão de mudanças e monitoramento contínuo
Ações Corretivas - Gerenciamento de Patches
Configurações básicas
Pesquisar
Comparação MD5 de impressões digitais e assinaturas digitais
Verificação de integridade de arquivo
Avaliação e teste
Testar patches em um ambiente de teste
Mitigação ("reversão")
Implantação ("lançamento")
Agora implantado em sistemas menos críticos
Validação, relatórios e registro
Log, registro e arquivo de atualização de patch
Teste e verifique
A implementação de medidas de controle de risco requer testes
Avaliadores de segurança ou outras entidades independentes verificam e confirmam as vulnerabilidades que requerem verificação
em grandes organizações
Equipes independentes de verificação e validação (IV&V) determinam se os problemas e vulnerabilidades de segurança foram resolvidos
Os desenvolvedores e proprietários de sistemas não podem autorizar declarações de que os riscos foram mitigados sem o consentimento de uma entidade independente
Assinatura de código
A assinatura de código é uma técnica usada para garantir a integridade do código, identificar quem o desenvolveu e determinar para que o desenvolvedor pretendia que esse código fosse usado.
Certificados de assinatura de código e certificados digitais ajudam os usuários a evitar o download de arquivos ou aplicativos com vazamento
Quando o código é assinado, ele pode determinar a autenticidade do código e detectar se ele foi modificado por alguém que não seja o desenvolvedor.
A assinatura de código é usada para
Certifique-se de que os trechos de código não sejam modificados
Identifique a origem do código (desenvolvedor ou signatário)
Determine se o código merece confiança para um objetivo específico
A assinatura de código consiste em três partes
Selos, certificados digitais e identificadores únicos
O que a assinatura de código não pode fazer
Não há garantia de que os trechos de código estejam livres de vulnerabilidades de segurança
Não há garantia de que o APP não carregará código inseguro ou alterado (como plug-ins impraticáveis) durante a execução.
Não é um gerenciamento de direitos digitais (DRM) ou tecnologia de proteção contra cópia
Teste de regressão e aceitação Teste de regressão e aceitação
Considerações de teste
Teste bugs rapidamente
Observe os efeitos colaterais do patch
Escreva um plano de teste de regressão para cada correção de bug
Se dois ou mais testes forem semelhantes, determine qual deles é menos eficiente e descarte-o
Identifique planos de teste e entregue-os e documente-os continuamente
Preocupação relacionada com questões funcionais e não com design
Determine alterações nos dados, independentemente do tamanho, e encontre qualquer corrupção resultante
Acompanhe o impacto das alterações na memória do programa
Teste de regressão
A abordagem mais eficaz é uma biblioteca de testes baseada em um conjunto de casos de teste padrão que podem ser executados sempre que uma nova versão é criada.
A dificuldade em construir uma biblioteca de testes é determinar quais casos de teste incluir
Testes automatizados e casos de teste também envolvem condições de limite e tempo, todos pertencentes à biblioteca de testes.
Para que o teste automatizado seja eficaz, é econômico e eficiente integrar variáveis suficientes como parte de uma metodologia de teste complexa
teste de aceitação (Teste de aceitação)
Testes formais realizados para determinar se um sistema atende aos seus critérios de aceitação e para permitir que o cliente determine se aceita o sistema
No desenvolvimento ágil, os testes/critérios de aceitabilidade são normalmente estabelecidos pelo cliente empresarial e descritos na linguagem do domínio de negócios
Estágio SwA (garantia de software) (Garantir que o software desenvolvido ou adquirido atenda aos requisitos de segurança Modelo de maturidade de Software Assurance SAMM SAMM é uma estrutura usada para projetar software seguro e adaptado aos riscos específicos de uma organização.)
fase de planejamento
Obtenha os requisitos identificados para serviços ou produtos de software, identifique possíveis métodos de software substituto e identifique os riscos de substituição.
Os requisitos de desenvolvimento estão incluídos na declaração de trabalho
Estabelecer estratégias de aquisição e incluir a identificação de riscos associados a diversas estratégias de aquisição de software
Desenvolver critérios de avaliação e plano de avaliação
Estágio de licitação
Criar/emitir Solicitação de Proposta (RFP) com descrição do trabalho, descrição do ofertante, termos e condições, pré-qualificação e certificação,
Avaliar propostas apresentadas por fornecedores em resposta a uma Solicitação de Proposta (RFP) ou Convite para Licitação (ITT)
Negociações contratuais completas, incluindo alterações nos termos e condições
Fase de Monitoramento e Aceitação
Esta etapa consiste principalmente no acompanhamento do trabalho do fornecedor e na aceitação do serviço final ou entrega do produto conforme acordado no contrato.
Estabelecer e concordar com o cronograma de trabalho do contrato
Implementar procedimentos de controle de mudanças
Revise e aceite entregas de software
fase de acompanhamento
Sustentação (incluindo gerenciamento de riscos, gerenciamento de casos de uso de garantia e gerenciamento de mudanças)
Descarte e off-line
Nas fases subsequentes, os riscos de software devem ser gerenciados por meio de análise de casos de uso de garantia contínua e ajustados para reduzir o risco
Os profissionais de segurança devem garantir que existam políticas e procedimentos de SwA bem documentados em toda a empresa
Erros inesperados levam a operações defeituosas
Inserir deliberadamente código malicioso
Roubar informações importantes ou confidenciais
Roubar informações pessoais
Alterar produtos, inserir agentes ou destruir informações