Exigências Da Segurança Do Software
Conjuntamente com identificar os riscos relacionados da segurança sabidos a uma aplicação ou a um genre específico da aplicação, os colaboradores devem avaliar as exigências da segurança para sua aplicação. Esta análise deve chegar em uma medida equilibrada do nível da segurança requerido para uma aplicação. Não tem que ponder os extremos do spectrum da segurança. É dado a compreensão que a segurança verdadeira e garantida é inexistente, protegendo de encontro aos riscos sabidos e minimizando o número de ataques bem sucedidos e de seus efeitos geralmente um nível aceitável da segurança. Aqueles envolvidos com o ciclo de desenvolvimento da aplicação devem determinar seus próprios nível "aceitável" da segurança, examinando os riscos sabidos, os objetivos da aplicação, e os métodos usados executar o nível desejado da segurança. Para chegar em exigências da segurança, os gerentes e os colaboradores podem encontrá-lo útil concentrar nas seguintes, áreas geralmente sabidas do risco: · Authentication do usuário e controle de acesso · Armazenamento de dados de da informação confidential · Segurança em comunicações externas da rede · Segurança de pontos de entrada para aplicações externas e o sistema operando-se Estas quatro de áreas gerais os desenhadores e os colaboradores de aplicação podem identificar um jogo mínimo de características importantes para analisar. Dependendo da funcionalidade da aplicação, algumas áreas do risco são mais pertinentes do que outras. Para fixar-se ou para não se fixarA adição da segurança a uma aplicação afeta uma aplicação em diversas maneiras. Torna-se imediatamente mais complexa, enquanto o trajeto do código faz exame de uma volta nova para acomodar os métodos da segurança. O desempenho de uma aplicação pôde hindered, especial com a adição de operações do encryption. Estas operações são intensive do processador central devido aos algoritmos complexos envolvidos. A eficiência de uma aplicação pode também ser sacrificada se a segurança for aplicada nas áreas onde fornece poucos benefícios. Isto pode ocorrer se os métodos da segurança forem aplicados cega a todos os componentes de uma aplicação sem pensamento a respeito de suas exigências. As seguintes seções fornecem um ponto começar razoável para determinar um nível básico de exigências da segurança. Ponta É uma prática boa considerar a segurança requerida para cada módulo ou componente dentro de uma aplicação. Resista o impuso aplicar os métodos gerais da segurança através dos módulos múltiplos ou dos componentes. Instead, determine o nível o mais apropriado da segurança para cada um. Avaliando exigências do controle do authentication e de acessoO authentication do usuário é segurado frequentemente pelo sistema operando-se em que a aplicação funciona, mas diversas classes da aplicação puderam necessitar tratar do authentication no seus próprios. As aplicações encaixadas, as aplicações que funcionam independentemente do sistema se operando, e as aplicações distribuídas da correia fotorreceptora necessitam frequentemente acomodar algum nível do authentication do usuário e do controle de acesso. Os exemplos comuns das aplicações que requerem estes métodos da segurança são aplicações do comércio do Internet (e-comércio), wherein os usuários fazem compras através de um Web site, ou acesso de base de dados do cliente. Em ambos os casos, a possibilidade para muitos usuários diferentes ou os grupos dos usuários para usar o sistema requerem o controle estrito de dados acessíveis. Os métodos da necessidade das aplicações para permitir que os usuários separados alcancem os sistemas através de um método do início de uma sessão; necessitam também as limitações a respeito dos dados financeiros users'respective individuais. Para determinar as exigências do controle do authentication e de acesso, os desenhadores devem examinar as interações dentro da aplicação e com o mundo que a cerca. Isto inclui os métodos por que os usuários alcançam a aplicação—que se senta diretamente em um terminal ou de acesso da rede são dois métodos que puderam reque esquemas diferentes do authentication. Uma aplicação que seja alcançada somente ao se sentar no desktop pode eficazmente ser fixada através dos métodos do authentication do sistema operando-se em que funciona. As aplicações da rede que são alcançados por usuários múltiplos simultaneamente, ou com que dados do acesso de usuários das bases de dados comuns, fornecem o ímpeto forte para o controle e o authentication de acesso. O nível do granularity e a flexibilidade das potencialidades do controle e do authentication de acesso forneceram pela ajuda do sistema operando-se determinam se os métodos proprietários forem desenvolvidos. As aplicações autônomas ou encaixadas são desenvolvidas frequentemente do risco e requerem conseqüentemente seus próprios métodos especializados. Exigências para o armazenamento de dados deO armazenamento de dados de reflete o método usado armazenar a informação confidencial e sensível. Isto inclui o uso correto dos métodos da proteção de lima do sistema operando-se subjacente (tais como re stricted permissões da lima) e de uns métodos mais fortes de proteger elementos de dados individuais (tais como o encryption). Em muitos casos, o uso de métodos da permissão do sistema operando-se é suficiente fornecer o grau requerido de segurança. O encryption pode ser usado proteger dados extremamente sensíveis, tais como credentials do usuário e informação de crédito. O nível a que a aplicação necessita armazenar dados, e a natureza disso movimentação dos dados as exigências para a segurança do armazenamento de dados de. O armazenamento da informação sensível é frequentemente o fator bloqueando em determinar se o encryption elevado da segurança for needed. Credentials do usuário, tais como as senhas, endereços, números de telefone, e dados financeiros, devem ser consideradas sensíveis e também ser tratadas com a segurança elevada. A informação da configuração pode frequentemente ser fixada suficientemente com métodos padrão da permissão da lima. Ao dar forma às exigências para o armazenamento de dados de, os desenhadores puderam tempted estandardizar em um nível da segurança. Por exemplo, se uma senha fosse armazenada em uma lima da configuração junto com a outra informação non-sensitive, o temptation pôde ser forte usar o encryption na lima inteira como um método geral da segurança. Para determinar exigências do armazenamento de dados de, examine as necessidades de todos os componentes envolvidos. Neste exemplo, aplicar o encryption aos dados nonsensitive pôde ser considerado inefficient devido à despesa computacional das operações do encryption, as.well.as a falta do controle granular da outra informação na lima. Um único elemento não pode ser alcançado fàcilmente se a lima inteira for cifrada. A complexidade envolvida para alcançar outros elementos é aumentada então dramàtica. Exigências da segurança do ponto da rede e de entradaAs aplicações comunicam-se aos usuários, ao sistema operando-se, e a outras aplicações através dos pontos de entrada. Estes puderam ser na mesma máquina que a aplicação ou através de uma rede; frequentemente, estão em ambos. Os métodos para fornecer pontos de entrada à aplicação e à sustentação para uma comunicação da rede são frequentemente uma e a mesma; conseqüentemente, são agrupados junto aqui. A segurança de comunicações da rede é dirigida melhor examinando o índice das mensagens que estão sendo emitidas. As aplicações que utilizam uma comunicação da rede para o messaging informativo ou a passagem de dados de estática não puderam reque nenhuma confiabilidade mais forte do que o protocolo suportam. Outra vez, como no exemplo do comércio do Internet, uma aplicação que emita e receba a informação sensível do usuário autorizações prováveis a adição de um método mais elevado da segurança. Os pontos de entrada determinam também exigências da segurança para as aplicações que se comunicam em um ambiente networked. Os pontos de entrada a uma aplicação requerem um nível elevado da análise porque abrangem e fornecem a funcionalidade de uma comunicação da rede. Outros interagem também com a aplicação através dos pontos de entrada. Estas áreas funcionais podem ser protegidas através de uma combinação de métodos disponíveis do sistema operando-se e dos esquemas definidos do controle e do authentication de acesso usados dentro da aplicação. A análise das interações que uma aplicação tem com o mundo exterior permite que os desenhadores determinem o nível o mais apropriado da segurança necessitado. Estes interações e pontos de entrada subseqüentes são categorizados como · Interação da rede · Interação com outras aplicações · Interação com seu sistema operando-se respectivo Estas categorias são áreas funcionais well-known, e os desenhadores sabem provavelmente já se sua aplicação interagir em algumas destas maneiras. A etapa seguinte é considerar a segurança de cada área. Rede, aplicação, e interações do sistemaA popularidade do Internet causa muitas aplicações novas que interagem com outros componentes dentro dos sistemas locais e com os sistemas remotos. As aplicações que funcionam independentemente de outras aplicações e interagem somente com se obviamente não requerem a análise do risco do networking. A interação da rede pode estar atual em diversos níveis. Uma aplicação pode ser completamente usuário de cliente–orientado, porque uso nos sistemas remotos espalhados através do Internet. A necessidade para a segurança nestas aplicações torna-se consideravelmente mais complexa do que está em aplicações autônomas. Diversas dependências devem ser discernidas. O nível a que os colaboradores desejam fornecer mecanismos da segurança na aplicação deve ser considerado. Os desenhadores puderam decidir-se não fornecer nenhuns mecanismos internos da segurança. A segurança da aplicação networked confia então na segurança das redes em que funciona e se comunica; o topol da rede ogy e o guarda-fogo determinam o nível máximo da segurança que uma aplicação pode experimentar. O desenhador pôde escolher abster-se de dependências e fornecer o grau o mais elevado de segurança possível dentro da aplicação. Estes são os dois extremos que—a maioria de aplicações caem em algum lugar no meio. As aplicações podem também usar facilidades de rede para uma comunicação localizada que não seja destined ir além dos confins do sistema em que funciona. A consideração deve ser dada à natureza desta comunicação a fim determinar se a execução criar o risco desnecessário. A necessidade para a interação entre aplicações ou com o sistema operando-se não implica uma exigência para uma comunicação da rede. Os desenhadores devem investigar os métodos da execução que fornecem a funcionalidade requerida. As aplicações usam frequentemente métodos soquete-baseados de uma comunicação fornecer estes pontos de entrada porque são executadas rapidamente e fàcilmente. O uso dos soquetes pode fornecer mais funcionalidade do que é needed, entretanto. As aplicações que necessitam se comunicar somente com outras aplicações no sistema local ou com seus próprios sistemas se operando têm muitos métodos de uma comunicação em sua eliminação, tal como os soquetes do non-Internet e os mecanismos do IPC. Geralmente, os sistemas de UNIX usam comunicações do soquete por causa de seus facilidade de utilização e plethora da documentação. UNIX suporta diversos sabores de uma comunicação soquete-baseada, dois de que são os soquetes o soquete do IP e do domínio populares de UNIX. Os soquetes do IP, como o nome implicam, usam o protocolo do IP para uma comunicação, e suportam uma comunicação da rede remota, que reserve processos locais e remotos para se comunicar com a aplicação. Muitas aplicações que se comunicam somente com os processos em um sistema local e que não requerem os soquetes do IP do uso das potencialidades de uma comunicação da rede como uma relação padrão. Os soquetes do IP não são ideais nesta situação porque fornecem automaticamente o acesso aos clientes locais e remotos. Os soquetes do domínio usam um protocolo interno de UNIX para uma comunicação e não suportam uma comunicação da rede; fornecem uma canaleta de comunicações connection-oriented. Os soquetes do domínio têm sua parte dos riscos se usados impropriamente. Os soquetes do domínio de UNIX suportam a passagem de descriptors de lima as.well.as dados informativos. Isto significa que os ponteiros ou os punhos a outras partes do sistema podem ser passados de uma aplicação a outra. Esta funcionalidade está disponível somente nos soquetes do domínio de UNIX. Se esta potencialidade não fosse desejada nem não fosse autorizada, a diversão de uma comunicação soquete-baseada a um outro mecanismo do IPC pôde ser uma escolha melhor. Considerando que o tipo da informação emitido a e das ajudas da aplicação define as exigências para seu método de uma comunicação. Os desenhadores devem avaliar as potencialidades da interação da aplicação antes de incorporar uma função padrão. Neste exemplo, a aplicação que usa os soquetes do IP está no risco porque permite que os sistemas remotos conectem à aplicação quando não devem ser permitidos. Um projeto melhor documenta a exigência para a interação com somente as aplicações locais. Esta exigência detalhada conduz ao colaborador usar algo à excepção dos soquetes do IP. Interações Do Sistema Operando-seA interação com o sistema operando-se cría frequentemente um outro nível de edições de segurança. Muitos níveis da interação podem ocorrer com uma interação da rede—do sistema operando-se, nication inter-Process de Commu, e a manipulação das limas tem sido mencionada já. Outros dois tipos de interação requerem também a atenção: A execução de programas externos e do uso do sistema e outras chamadas externamente definidas são fontes comuns da exploração. As edições importantes tais como permissões, authentication, controle de acesso, e o validation input devem ser consideradas conjuntamente com interações do sistema operando-se. As chamadas do sistema e as aplicações externas apresentam um grau elevado de risco quando usadas impropriamente por causa de suas naturezas. Estas funções existem frequentemente nas bibliotecas que são usadas por muitas aplicações simultaneamente e que fornecem frequentemente o acesso direto aos componentes e aos recursos do sistema se operando. A exploração de uma única aplicação com estas funções pode afetar diversas aplicações e o sistema. As chamadas do sistema fornecem o acesso a muitas funcionalidades general-purpose e sistema-específicas. Permitem que uma aplicação interaja com os componentes de ferragem específicos as.well.as a funcionalidade do semente-nível. A segurança do sistema operando-se e dos componentes necessita ser considerada ao usar o sistema chama-se. Se uma aplicação amarrar junto os dados do usuário ou da rede com o sistema se operando através das chamadas do sistema, os desenhadores devem minimizar a exposição aos dados perigosos, inesperados, e impróprios. A execução de aplicações externas é uma outra interação comum, unsecured. Os colaboradores projetam frequentemente uma aplicação convidar outras aplicações por vários métodos. Há umas razões que eral do sev um colaborador pôde querer fazer este, como para diferenciar-se entre funções ou para estabelecer o controle ambiental. Chamar outras aplicações permite também que os colaboradores usem funcionalidade existente e expidam a execução da aplicação. Há um perigo inerente em chamar um outro programa dentro de uma aplicação que—o programa externo pode raramente ser confiado. A aplicação existe em um ambiente dinâmico onde seja possível modificar ou substituir todo o programa. O problema encontra-se nos métodos usados chamar a aplicação. os sistemas UNIX-baseados suportam frequentemente as funções chamadas system() e exec(), que passam os parâmetros fornecidos como uma corda à execução do escudo e do subprocess padrão de UNIX, respectivamente. A chamada do system() retorna ao programa de chamada quando completa, mas o exec() termina o programa running e substitui-o com o programa chamado. Os sistemas baseados Windows têm a chamada do exec() que permite a execução de outros programas. Ao contrário de UNIX, a versão de Windows do exec() funciona o programa especificado em um subprocess, e a função de chamada não termina. Sem validation da entrada, os atacantes podem pôr meta-characters do escudo no córrego de entrada, forçando o escudo para funcionar possivelmente comandos e parâmetros prejudiciais. O uso destas funções frowned geralmente upon, e o esforço deve ser feito para evitar seu uso porque permitem a execução de untrusted e aplicações descontroladas. Alternativamente, os desenhadores podem incorporar a funcionalidade requerida diretamente em uma aplicação. O uso livremente de disponível, software da abr-fonte diminui extremamente o esforço necessitado fazer assim. Muitos sistemas operando-se permitem também que a funcionalidade funcione em níveis diferentes do privilégio. UNIX tem seus privilégios da "raiz", Windows tem privilégios do "administrador" e do "SISTEMA". Estes clientes especiais podem executar tarefas administrativas e ter mais interação com o sistema operando-se e seus serviços do que outros clientes . Os programas podem ser escritos para elevate níveis do privilégio quando a funcionalidade especializada é needed. Uma aplicação e o sistema operando-se em que funciona podem ser comprometidos se os privilégios não forem com cuidado controlados. O modelo de menos privilégio sugere que uma aplicação deve funcionar com o jogo mínimo dos privilégios necessitados executar a maioria de funções. A funcionalidade que requer uns privilégios mais elevados deve ser isolada em seu próprio módulo, entretanto em que é definido—como um processo, uma classe, uma aplicação, ou mesmo um outro sistema. Mesmo então, esse jogo da funcionalidade deve também funcionar em menos nível privilegiado até que aqueles privilégios elevated estejam requeridos. Nesse tempo, uns privilégios mais elevados devem ser obtidos e, em cima da conclusão da funcionalidade, os privilégios devem ser retornados ao nível mínimo. Nota Os meta-characters são os caráteres que fazem exame no meaning especial em um contexto dado. Para o exemplo, dentro do escudo padrão de UNIX, o semicolon (;) é um separador de comando, isto é, muitos comandos pode ser posto sobre uma única linha quando um semicolon está entre eles. A tubulação (|) o caráter emite a saída do terminal a o que quer que segue a tubulação, permitindo que a saída de um programa seja alimentada em outro. ConclusãoAlguns colaboradores de aplicação escolhem esquecer-se ou ignorar da segurança dentro de suas aplicações e pôr-se na mercê da rede do cliente ou o sistema operando-se e suas características da segurança. Usando este modelo geral da segurança shuns a responsabilidade fornecer fixam aplicações ao público. A filosofia da segurança purports um ideology forte e detalhado da segurança que não suponha nada sobre a segurança dos componentes externos à aplicação. Uma aplicação deve sempre ser tão segura como pode ser com respeito a se e aos componentes externos com que interage. O nível de sig-através de é deixado à discreção do desenhador ou do colaborador, entretanto este é um artigo adicionado por Tamas Querolin
|
|||||
|