Segurança do software: A análise da fase do projeto


  Share  
|


Um projeto detalhado fornece soluções ao problema dirigido pelo produto, e também tomadas na consideração os efeitos da inovação. A segurança de uma aplicação também é criada e realçada por um projeto detalhado.

Uma vez que uma organização rejeita a idéia da segurança como uma característica, torna-se aparente que o rity do secu necessita a consideração cedo. Quando cada organização pôde ter métodos diferentes de projetar um produto ou uma aplicação, a seguinte aproximação é útil assegurar um nível elevado da segurança em um projeto. A fase do projeto analisada de três viewpoints:

· Global

· Organizational

· Componente

O viewpoint global é a vista a mais elevada do sistema; identifica as necessidades dirigidas pela aplicação e por seu jogo da característica. O viewpoint organizational destaca os componentes individuais que fazem acima a aplicação. O viewpoint componente vai ao nível seguinte do granularity, examinando os detalhes explícitos de cada componente e de sua execução. A aproximação incremental usada aqui permite uma análise mais profunda e mais detalhada que forneça também um fluxo process fàcilmente compreendido. Isto ajuda a gerentes e a colaboradores pôr os procedimentos apropriados no lugar para assegurar a consideração da segurança em sua aplicação.

O Viewpoint Global

Muitas aplicações levantam-se de uma necessidade unfulfilled ou do inadequacy de soluções atuais. Um projeto bom identifica os seguintes interesses da segurança:

· As edições de segurança relacionaram-se às soluções existentes ao problema ou à necessidade que estão sendo resolvidos

· A resposta da aplicação 2 aquelas edições de segurança

· Os vulnerabilities potenciais da segurança que existem nas inovações que estão sendo feitas

Uma análise global fornece a informação que um atacante encontraria de outra maneira depois que a aplicação é liberada. Nesta fase, uma arquitetura da segurança deve ser definida para a aplicação. Esta arquitetura formalizes o nível da segurança necessitado em uma aplicação. Ajuda estabelecer o espaço da segurança da aplicação identificando o relacionamento da aplicação a seus arredors e o nível da segurança fornecido por eles. Uma arquitetura da segurança destaca também a necessidade para, e uma quantidade, da segurança independente que uma aplicação deve fornecer, assim como as características requeridas.

Uma análise e um estabelecimento globais de uma arquitetura da segurança são feitos através do categorization incremental dos módulos, dos componentes, das relações e dos métodos usados na aplicação. Seu posição e relacionamento a se e sua exposição às aplicações externas, aos usuários e às relações são pontos importantes.

O viewpoint global de uma aplicação apresenta inicialmente "a caixa preta proverbial" que—os únicos detalhes sabidos são aqueles vistos por outsiders. Estas características externas e exigências funcionais são separadas então nos módulos para a análise de segurança.

Procurarando advisories do vendedor, os newsgroup, as listas enviando, e os forums em linha por vulnerabilities divulgados em competir ou em aplicações similares são uma maneira boa aprender sobre algumas das edições de segurança principais relacionadas à aplicação. Ajuda também indicar soluções ineficazes aos vulnerabilities encontrados em aplicações similares.

Estudo De Caso, Fase I

Este exemplo hipotético é um estudo de caso para o desenvolvimento de uma aplicação do comércio do Internet. Este serviço permite que os usuários conectem de seus browsers para fazer compras em linha.

O primeiro nível no projeto desta aplicação é a definição de suas potencialidades, independent dos métodos da execução usados. Estas características puderam incluir o seguinte:

· A seleção de um sistema operando-se apropriado para hospedar as aplicações

· Acesso de base de dados para o armazenamento da informação confidencial e pública

· Serving da correia fotorreceptora

· Connectivity destas peças usando aplicações custom-developed

· Connectivity às instituições financeiras para as transações

Do viewpoint global, um desenhador discerne as características da segurança requeridas para cada componente destas funções.

A base de dados armazena a informação confidencial em muitos usuários diferentes, including senhas, números de cartão do crédito, e informação do contato. A fim proteger esta informação, a base de dados deve ter os componentes da segurança que suportam limitações aos objetos e talvez ao seu encryption.

O web server deve suportar comunicações seguras com o protocolo seguro da camada dos soquetes (SSL), e algum método do conexão com as aplicações externas e a base de dados. Isto podia ser através dos servlets e dos applet de Java, ou dos programas do cgi.

As comunicações da rede são uma parte inerente deste sistema. O software do usuário do web server e da base de dados funciona provavelmente em máquinas separadas, daqui os meios fixar a comunicação da rede entre elas são requeridos.

O último componente a ser considerado é a conexão real à organização que autoriza as transações. Esta poderia ser um banco ou uma companhia do cartão de crédito que autorizasse as despesas por usuários. As conexões são realizadas provavelmente com um modem ou a outra parte de equipamento das telecomunicações que interage com a organização financeira e executa o validation. Estas conexões requerem a segurança elevada, a fim evitar o acesso por usuários desautorizados.

Estas introspecções são recolhidas do conhecimento do campo, da análise de produtos competindo, e da familiaridade com as exigências do cliente. Neste momento, a pesquisa diligent necessita ser feita para documentar vulnerabilities passados e atuais da segurança em produtos relacionados. A lista resultante deve identificar as áreas do risco que necessitam se dirigir. As características da segurança que faltam da lista inicial das exigências são identificadas frequentemente com esta análise, outra de seus benefícios.

Em nosso exemplo do comércio do Internet, os investigadores encontraram os seguintes vulnerabilities em produtos comparáveis:

· As bases de dados não tiveram nenhum esquema da proteção, tendo por resultado a exposição da informação do cliente confidencial.

· O web server teve os furos que permitiram a execução do código arbitrário no sistema. A configuração do defeito do usuário permitiu também o diretório traversal, que permite que os usuários externos alcancem muitos limas e diretórios confidenciais no sistema.

· As aplicações do cgi usadas comunicar-se com a base de dados tiveram os vulnerabilities que permitiram que os atacantes remotos impersonate outros clientes.

A pesquisa indica também que a proteção dos dados, os excessos do amortecedor, a configuração do defeito, e as edições do validation da entrada necessitam ser evitados porque estes vulnerabilities ocorreram freqüentemente com aplicações similares. Mostrou também que os vendedores adicionaram as características e os remendos da segurança que protegerão de encontro a estes problemas. Isto faz o controle do authentication e de acesso exigências importantes, junto com a segurança da rede.

Neste momento, o desenhador sabe dos vulnerabilities associados com a aplicação, os métodos por que outras organizações lhes respondem, e um jogo das características importantes da segurança que dão forma à base de uma arquitetura da segurança. A arquitetura da segurança torna-se mais mais na fase seguinte do projeto.

O Viewpoint Organizational

A segurança não é uma ciência exata; suas necessidades são específicas a cada aplicação e ambiente. Conseqüentemente, não é suficiente olhar a segurança somente da vista global. Embora uma aplicação de outra maneira well-designed pudesse existir independentemente de todas aplicações restantes no sistema, a interação de todos os componentes que a aplicação pôde pose ameaças da segurança. O viewpoint organizational identifica os elementos ou os grupos individuais dos elementos que dão forma à aplicação inteira, a suas funções, e a seus relacionamentos com se. Um elemento poderia ser uma função, uma classe, um processo, ou um jogo destes elementos que são agrupados por seu relacionamento à aplicação.

Uma aplicação é feita tipicamente de diversos módulos funcionais, tais como a relação de usuário, os componentes do networking ou da comunicação, ou as ferramentas do armazenamento de dados de e da recuperação.

Quando um módulo pôde parecer razoavelmente seguro, seu relacionamento com os outros componentes pôde ser executado insecurely. Similar à análise das interações da aplicação, a análise nivelada organizational faz exame das exigências funcionais e determina a arquitetura usada. As exigências funcionais permitem que o desenhador identifique um jogo dos componentes e dos métodos que fornecem a funcionalidade; uma análise da segurança entre elas como interagem rendimentos as escolhas as mais seguras para o inclusion com a aplicação.

A identificação, a organização, e o categorization incrementais de cada componente na aplicação continuam nesta fase. Um lugar lógico a começar—e particularmente suspeito nos termos da segurança—é as bordas de um módulo. As bordas são os pontos da entrada ou da saída onde os dados cruzam os limites entre os módulos. Para o exemplo, os dados cruzam limites entre os módulos durante estas funções:

· Passagem dos dados como parâmetros

· Ajustando variáveis globais

· Memória compartilhada manipulando

· Dados da escrita às limas

· Emitindo dados através de uma canaleta de comunicação tal como a rede

· Recebendo a entrada do usuário

Estudo De Caso, Fase II

Na fase organizational de projetar a aplicação do comércio do Internet da amostra, cada componente da aplicação—o web server, o usuário da base de dados e as aplicações associadas—são categorizados em seu módulo funcional para uma análise mais adicional.

O usuário da base de dados tem um componente do armazenamento, um componente do controle do authentication e de acesso, e um componente de uma comunicação. O web server tem o componente do serving da correia fotorreceptora, um modelo de programação externo, e componentes seguros do comunicação do cliente e seguros da base de dados de uma comunicação. As interações entre estes componentes dão forma a um trajeto definível, com diversos pontos onde a segurança deve ser forte. Depois de uma interação entre o web server e o cliente, um web browser do cliente transmite dados sensíveis ao web server. Estes dados são passados então à aplicação feita sob encomenda que interage com a base de dados e a instituição financeira. Depois do trajeto de dados com a aplicação, um colaborador pode observar pontos do vulnerability na comunicação do cliente, na interação da aplicação do web server, na comunicação do web server à base de dados, e na interação entre elas.

As exigências da segurança começam a fazer exame da forma. A aplicação deve dirigir-se a estas áreas do risco e fornecer a segurança nestes formulários:

· Fixe uma comunicação ao web browser do cliente no formulário de uma comunicação cifrada da rede, do authentication dos usuários, e dos mecanismos do controle de acesso em sua informação.

· Interação segura entre o web browser e a aplicação do e-comércio para assegurar a segurança do sistema

· Integridade da aplicação do programa do comércio

· Fixe comunicações com a base de dados

· Segurança de objetos da base de dados

Destas exigências, uma arquitetura começa a fazer exame da forma. O uso do SSL no web server protege as comunicações do usuário-à-server-to-browser. A aplicação terá seu próprio mecanismo do authentication que permite que os clientes assinem dentro com segurança. Os mecanismos do validation e da proteção de dados serão executados também em uma forma organizada que use somente o privilégio requerido mínimo se operar. A funcionalidade será incorporada na aplicação para a proteção do objeto e no encryption no usuário da base de dados. Os detalhes reais da execução serão desenvolvidos na fase componente final.

Os métodos pertinentes da segurança levantar-se-ão à superfície quando as seguintes perguntas são feitas na fase organizational:

· Como nós protegeremos a informação passada?

· Que são os efeitos se um módulo passar dados spurious a outro?

· Os confinamentes dos dados foram definidos?

· Há um método preferido de passar os dados que se emprestam à segurança aumentada?

· Que componentes, aplicações, e usuários necessitam o acesso aos dados? Que tipo do acesso é de leitura apenas—requerido ou lido e escreve potencialidades?

O Viewpoint Componente

O viewpoint final de que a análise do projeto ocorre é o dissection dos componentes individuais dentro de uma aplicação. Os detalhes os menores do projeto e da execução podem introduzir óbvio e os problemas obscuros da segurança que são difíceis de encontrar borne-liberam-se. A execução pobre pode também undo o esforço posto na segurança de um projeto.

Algumas das precauções sugeriram aqui a queda em o que são consideradas práticas boas do coding e não são necessariamente específico da segurança, mas têm um efeito na segurança de uma aplicação.

A arquitetura da segurança que é definida para uma aplicação exijirá que haja umas séries das verificações e dos contrapesos a que a aplicação deve se conformar. Estes verificações e contrapesos fornecerão um grau elevado de garantia que uma aplicação aja em uma maneira uniforme no evento de dados ou de informação inesperada.

A vista componente examina cada parte que dá forma a um módulo. (os módulos, por sua vez, dão forma à aplicação.) Estes componentes devem ser analisados para suas características individuais da segurança e as interações com outros componentes dentro desse módulo. Pontos começar quando as edições programmatic examinando dentro de um módulo forem

· Valores do retorno

· Precedência e pré-requisitos

· Validation de dados

· Resposta e recuperação identificadas

· Permissões e privilégio

Os valores do retorno são indicadores do sucesso ou da falha dentro de uma função. Os componentes de um módulo individual são feitos das funções, que o interoperate e estabeleceu os relacionamentos que permitem que o programa execute corretamente. Os colaboradores devem também compreender o que significa quando uma função falha, e deve reagir apropriadamente a essa falha. Uma compreensão completa destes relacionamentos permite que um colaborador compreenda as dependências entre funcionalidades. Baseado nestas dependências, os componentes dentro de um módulo podem ser organizados para realçar a confiabilidade e a segurança.

Os dados são dinâmicos em toda a aplicação que—viajarem entre funções e módulos, e às aplicações separadas, alterando a execução da aplicação inicial como assim. Com a identificação dos módulos que dão forma a uma aplicação, e os componentes que dão forma subseqüentemente 2 aqueles módulos, o trajeto dos dados com uma aplicação inteira pode ser seguido. Os pontos de entrada entre os módulos e as funções são os elementos pivotal que afetam o sucesso ou a falha da aplicação, conseqüentemente validar dados nestes pontos é vital. Trabalhar hand-in-hand com validation é uma resposta definida aos dados inválidos e às circunstâncias anômalas. Muitas aplicações não formulam um mecanismo da recuperação no evento de eventos inesperados; isto resulta frequentemente nas aplicações instáveis que deixam de funcionar no sinal o mais adiantado de dados imperfeitos.

O conhecimento das permissões e dos privilégios requeridos para os componentes para funcionar fornece a informação importante para os desenhadores de aplicação. Depois do modelo de menos privilégio é uma prática boa do projeto; recomenda a isolação e a limitação do privilégio em uma aplicação running. Em a maioria de casos, os níveis elevados do privilégio são necessitados muito infrequëntemente e somente em exemplos isolados. Muitas aplicações que requerem privilégios elevated para uma parcela pequena da funcionalidade cometem a aplicação inteira a esse nível mais elevado do privilégio para sua existência inteira. Isto cría um ambiente perigoso wherein cada vulnerability que é encontrado existe nesta modalidade privilegiada.

O privilégio consulta primeiramente a diversos níveis da autoridade em um sistema operando-se. Em cada nível mais elevado do privilégio, os usuários autorizados têm o acesso progressivamente a mais recursos o no sistema, tal como a memória, nas outras aplicações, nos dispositivos de ferragem, e nos dados. O usuário da raiz em UNIX, o administrador, e o cliente especial do SISTEMA em Windows exemplify o nível o mais elevado do privilégio. Há frequentemente os vários graus de acesso que fornecem o controle de acesso granular, também. O controle de acesso granular permite métodos definíveis do acesso e da rejeção para a aplicação. As limas, o tráfego da rede, os usuários, e os objetos podem ser limitados a um jogo das permissões explícitas que permitem ou disallow o acesso a elas.

Estudo De Caso, Fase III

A análise componente da fase de nossa aplicação do comércio do Internet olha os componentes individuais usados na aplicação e em sua segurança. Incorporando este estágio, os desenhadores devem ter um sentido do trajeto de dados completo e os relacionamentos entre os módulos. A etapa granular seguinte estabelece a base para a execução da aplicação. Os objetivos desta análise são determinar os privilégios dos vários componentes, um sentido da organização que seja usado durante a execução, e o conhecimento de como a execução ocorrerá. Aqui, as exigências previamente determinadas são traduzidas em métodos detalhados da execução.

Os desenhadores escolhem um web server e um usuário da base de dados neste momento, baseado nas exigências estabelecidas. Em nosso exemplo, um web server de Apache foi escolhido porque pode ser feito para suportar comunicações do SSL e tem um método well-documented a interagir com as aplicações externas. Um usuário da base de dados do oracle foi escolhido porque fornece a flexibilidade, o scalability, e a segurança requerida na base de dados, e também porque suporta a interação Java-baseada. Java foi escolhido como a língua e a extensão para executar o software real do comércio do Internet porque se opera com os usuários da correia fotorreceptora e da base de dados e se suporta um modelo forte, configurable da segurança.

O usuário do web server e da base de dados é projetado então determinando os métodos os mais seguros para os seguintes componentes:

· Configuração do defeito do usuário

· Configuração da segurança do sistema operando-se subjacente

· Privilégios requeridos ao interoperate com as aplicações de Java

· Componentes do controle de acesso

O software do comércio é organizado para fornecer estes componentes:

· Exigências do privilégio executar suas funções

· Os pontos de entrada da interação e da comunicação do web server

· Métodos de controle do authentication e do acesso do usuário

· Métodos da segurança da sessão para impedir o impersonation dos usuários

· Os pontos de entrada da interação e da comunicação do usuário da base de dados

Baseado nestas análise e organização, determina-se que a única parcela do sistema que requer privilégios elevated do sistema se operando é a aplicação do comércio. Necessita também um jogo interno de níveis do privilégio reforçar o controle e o authentication de acesso do usuário. As configurações do defeito permitem somente a funcionalidade necessitada para a operação do sistema, e cada sistema operando-se segurança-é endurecido com a mesma aproximação do minimalist.

A aplicação do comércio é onde a maioria dos componentes da segurança existe. Tem a responsabilidade de validar credentials do usuário, ajustando permissões na base de dados objeta, mantendo-se a par de cada sessão do usuário, e tendo a inteligência real requerida para manter funcionar do sistema.

A aplicação do comércio necessita privilégios elevated somente ao controlar a partida e a parada programada do usuário da correia fotorreceptora e da base de dados. O método o mais seguro para executar estas ações é determinado ser um processo separado do controlador que aumente seus privilégios naquele tempo que executa uma ação da partida ou da parada programada; abandona então seus privilégios até o pedido seguinte. O processo do controlador comunica-se somente com a aplicação do comércio e usa-se mensagens authenticated iniciar a partida ou a parada programada do sistema.

A aplicação do comércio cifrará também a informação confidencial antes de armazená-la na base de dados a fim proteger credentials do usuário e a informação financeira. No evento de condições anômalas e de erro tais como dados de entrada inválidos, falhas do authentication do usuário, e comunicações falhadas, o projeto chama-se para um sistema de relatório que possa registrar esta informação e responder apropriadamente aos eventos.

A execução de sistema levanta-se naturalmente da análise contínua fornecida nas fases de análise globais, organizational, e componentes precedentes. Os colaboradores usam as guias e os procedimentos no lugar ajudar-lhes escrever o código que mantem o padrão elevado da segurança estabelecido.

este é um artigo adicionado por Tamas Querolin


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions