Os princípios do projeto computando seguro
Os princípios do projeto seguro discutidos nesta
seção expressam comum-detetam aplicações do simplicity e da
limitação nos termos de computar.
Princípio de menos privilégio
Este princípio restringe como os privilégios são
concedidos.
O princípio de menos privilégio indica que um assunto deve ser dado somente aqueles
privilégios que necessita a fim terminar sua tarefa.
Se um assunto não necessitar uma direita de acesso, o
assunto não deve ter aquele para a direita. Além disso, a
função do assunto (ao contrário de sua identidade) deve controlar a
atribuição das direitas. Se uma ação específica requerer
que as direitas de acesso de um assunto estejam aumentadas, aquelas
direitas extra devem ser abandonadas imediatamente na conclusão da
ação. Este é o analogue da "necessidade saber" a régua:
se o assunto não necessitar o acesso a um objeto executar sua
tarefa, não deve ter a direita alcançar esse objeto. Mais
precisamente, se um assunto necessitasse adicionar a um objeto, mas
não alterar a informação conteve já no objeto, deve ser dado
adiciona direitas e não escrever direitas.
Na prática, a maioria de sistemas não têm o granularity
dos privilégios e das permissões requeridos para aplicar
precisamente este princípio. Os desenhadores de mecanismos da
segurança aplicam então este princípio como melhor podem. Em
tais sistemas, as conseqüências de problemas da segurança são
frequentemente mais severas do que as conseqüências para os sistemas
que aderem a este princípio.
EXEMPLO: O sistema operando-se de UNIX não aplica
controles de acesso à raiz do usuário. Que o usuário pode
terminar todo o processo e o ler, escreve, ou suprime qualquer lima.
Assim, os usuários que críam apoios podem também suprimir
limas. O cliente do administrador em Windows tem os mesmos
poders. |
Este princípio requer que os processos devem ser
confinados como a pequeno um domínio de proteção como possíveis.
EXEMPLO: Um mail server aceita o correio do Internet
e copía as mensagens em um diretório de carretel; um usuário
local terminará a entrega. O mail server necessita as direitas
alcançar o porto apropriado da rede, criar limas no diretório de
carretel, e alterar aquelas limas (assim que nele pode copí a
mensagem na lima, reescrevem o endereço de entrega se necessitado, e
adicionam as linhas "recebidas" apropriadas). Deve render a
direita alcançar a lima assim que terminar escrever a lima no
diretório de carretel, porque não necessita alcançar outra vez essa
lima. O usuário não deve poder alcançar limas de nenhum
usuário, ou todas as limas à excepção de sua própria
configuração arquivam. |
Princípio de defeitos à prova de falhas
Este princípio restringe como os privilégios
são inicializados quando um assunto ou um objeto são criados.
O princípio dos estados de
defeitos à prova de falhas que, a menos que
um assunto for dado o acesso explícito a um objeto, se deve negar a
acesso a esse objeto.
Este princípio requer que o acesso do defeito a um objeto
não é nenhum. Sempre que o acesso, os privilégios, ou algum
atributo segurança-relacionado não são concedidos explicitamente,
deve-se negar. Além disso, se o assunto for incapaz de terminar
sua ação ou tarefa, deve undo aquelas mudanças que fêz no estado
da segurança do sistema antes que termine. Esta maneira, nivela
se o programa falhar, o sistema é ainda segura.
EXEMPLO: Se o mail server for incapaz de criar uma
lima no diretório de carretel, deve fechar a conexão de rede, emite
uma mensagem de erro, e para-a. Não deve tentar armazenar em
outra parte a mensagem ou expandir seus privilégios conservar a
mensagem em uma outra posição, porque um atacante poderia se usar
que abilidade de overwrite outras limas ou de encher acima outros
discos (uma negação do ataque do serviço). As proteções no
diretório de carretel do correio próprias devem reservar críam e
escrevem o acesso somente ao mail server e lêem e suprimem o acesso
somente ao usuário local. Nenhum outro usuário deve ter o
acesso ao diretório.
Na prática, a maioria de sistemas permitirão um acesso
do administrador ao diretório de carretel do correio. Pelo
princípio de menos privilégio, esse administrador deve poder
alcançar somente os assuntos e os objetos envolvidos em enfileirar-se
e em entrega do correio. Como nós vimos, este confinamente
minimiza as ameaças se o cliente desse administrador for
comprometido. O sistema do correio pode ser danificado ou
destruído, mas nada mais pode ser. |
Princípio da economia do mecanismo
Este princípio simplifica o projeto e a
execução de mecanismos da segurança.
O princípio da economia do mecanismo indica que os mecanismos da segurança devem ser tão
simples como possível.
Se um projeto e uma execução forem simples, poucas
possibilidades existem para erros. O processo verificando e
testando é mais menos complexo, porque poucos componentes e casos
necessitam ser testados. Os mecanismos complexos fazem
frequentemente suposições sobre o sistema e o ambiente em que
funcionam. Se estas suposições estiverem incorretas, os
problemas da segurança podem resultar.
EXEMPLO: O protocolo da identificação emite o nome
do usuário associado com um processo que tenha uma conexão do TCP a
um anfitrião remoto. Um mecanismo no anfitrião A que permite o
acesso baseado nos resultados de um resultado do protocolo da
identificação faz a suposição que o anfitrião originar é
trustworthy. Se o anfitrião B se decidir atacar o anfitrião A,
pode conectar e então emitir toda a identidade que escolher em
resposta ao pedido da identificação. Este é um exemplo de um
mecanismo que faz uma suposição incorreta sobre o ambiente
(especificamente, esse anfitrião B pode ser confiado). |
As relações a outros módulos são particularmente
suspeitas, porque os módulos fazem frequentemente suposições
implícitas sobre parâmetros da entrada ou de saída ou o estado
atual do sistema; se algumas destas suposições forem erro, as
ações do módulo podem produzir inesperado, e errôneos, resultados.
A interação com entidades externas, tais como outros
programas, sistemas, ou seres humanos, amplifica este problema.
EXEMPLO: O protocolo do dedo transmite a
informação sobre um usuário ou um sistema. Muitas execuções
do cliente supõem que a resposta do usuário é well-formed.
Entretanto, se um atacante devesse criar um usuário que gerasse
um córrego infinito dos caráteres, e um cliente do dedo devia
conectar-lhe, o cliente imprimiria todos os caráteres. Em
conseqüência, as limas de registro e os discos podiam ser enchidos
acima, tendo por resultado uma negação do ataque do serviço no
anfitrião perguntando. Este é um exemplo de suposições
incorretas sobre a entrada ao cliente. |
Princípio do mediation completo
Este princípio restringe caching da informação,
que conduz frequentemente a umas execuções mais simples dos
mecanismos.
O princípio do mediation completo requer que todos os acessos aos objetos estejam verificados
para se assegurar de que estejam permitidos.
Sempre que um assunto tenta ler um objeto, o sistema
operando-se deve mediar a ação. Primeiramente, determina se
for permitido ao assunto ler o objeto. Se assim, fornece os
recursos para lidos ocorre. Se o assunto tentar ler outra vez o
objeto, o sistema deve certificar-se de que esteja permitido ainda ao
assunto ler o objeto. A maioria de sistemas não fariam a
segunda verificação. Cache os resultados da primeira
verificação e baseariam o segundo acesso nos resultados cached.
EXEMPLO: Quando um processo de UNIX tenta ler uma
lima, o sistema operando-se determina se o processo for permitido ler
a lima. Se assim, o processo recebe um descriptor de lima que
codifica o acesso permitido. Sempre que o processo quer ler a
lima, apresenta o descriptor de lima à semente. A semente
permite então o acesso.
Se o proprietário da lima disallows a permissão process
ler a lima depois que o descriptor de lima está emitido, a semente
permite ainda o acesso. Este esquema violates o princípio do
mediation completo, porque o segundo acesso não é verificado.
O valor cached é usado, tendo por resultado a negação do
acesso que é ineficaz. |
EXEMPLO: O serviço do Domain Name (DNS) caches a
informação que traça nomes de anfitrião em endereços do IP.
Se um atacante puder "envenenar" o esconderijo implanting grava
associar um IP address bogus com um nome, um anfitrião distribuirá
conexões a um outro anfitrião incorretamente. |
Princípio do projeto aberto
Este princípio sugere que a complexidade não
adiciona a segurança.
O princípio do projeto aberto indica que a segurança de um mecanismo não deve depender
do secrecy de sua projeto ou execução.
Os desenhadores e os implementers de um programa não
devem depender do secrecy dos detalhes de seus projeto e execução
para assegurar a segurança. Outros podem ferret para fora de
tais detalhes com os meios técnicos, tais como a desmontagem e a
análise, ou com os meios não técnicos, tais como procurarar
através dos receptáculos do lixo pelas listas de códigos de fonte
(chamadas "dumpster-dumpster-diving"). Se a força da segurança
do programa depender do ignorance do usuário, um usuário
knowledgeable pode derrotar esse mecanismo da segurança. O
termo "segurança com o obscurity" captura este conceito exatamente.
Isto é especial verdadeiro do software e de sistemas
cryptographic. Porque o cryptography é um assunto altamente
matemático, as companhias que introduzem no mercado o cryptography
cryptographic do software ou do uso para proteger dados do usuário
mantêm freqüentemente seus algoritmos secretos. A experiência
mostrou que tal secrecy adiciona pouco se qualquer coisa à segurança
do sistema. Mais mau, dá um aura da força que é toda que
falta demasiado frequentemente na execução real do sistema.
Mantendo chaves cryptographic e as senhas secretas não
violate este princípio, porque uma chave não é um algoritmo.
Entretanto, mantendo os algoritmos enciphering e decifrando
secretos violate a.
As introduções do software proprietário e dos segredos
de comércio complicam a aplicação deste princípio. Em alguns
casos, as companhias não podem querer seus projetos feitos público,
a fim de que não seus concorrentes os usem. O princípio requer
então que o projeto e a execução estejam disponíveis aos povos
barrados de o divulgar fora da companhia.
EXEMPLO: O sistema satisfeito scrambling (CSS) é um
algoritmo cryptographic que proteja discos do filme de DVD de copi
desautorizado. O disco de DVD tem uma chave do authentication,
uma chave de disco, e uma chave do título. A chave do título
enciphered com a chave de disco. Um bloco no DVD contem diversas
cópias da chave de disco, de cada uma enciphered por uma chave
diferente do jogador, e de uma soma de controle da chave de disco.
Quando um DVD é introduzido em um jogador de DVD, o algoritmo
lê a chave do authentication. Decifra então as chaves de disco
usando a chave original do jogador de DVD. Quando encontra uma
chave decifrada com a mistura correta, os usos que fecham à chave à
decifração a chave do título, e usam a chave do título decifrar o
filme. O authentication e as chaves de disco não são ficados
situado na lima que contem o filme, assim que se um copí a lima, um
destilador necessita o disco de DVD no jogador de DVD poder jogar o
filme.
Em 1999, um grupo em Noruega adquiriu a (software) DVD que
joga o programa que teve unenciphered a chave. Derivaram também
um algoritmo completamente compatível com o algoritmo do CSS do
software. Isto permitiu-os de decifrar toda a lima do filme de
DVD. O software que poderia executar estas funções
ràpidamente tornou-se disponível durante todo o Internet, muito ao
discomfort da associação do controle do copyright de DVD, que sued
prontamente para impedir que o código esteja feito a público.
Como se para emfatizar os problemas de fornecer a segurança
escondendo algoritmos, os advogados do plaintiff arquivaram uma
declaração que contem o código de fonte de uma execução do
algoritmo do CSS. Quando realizaram este, pediram que a
declaração estivesse selada da vista pública. Por então, a
declaração foi afixada em diversos locais de Internet, including um
que teve mais de 21.000 downloads da declaração antes que a corte a
selou. |
Princípio da separação do privilégio
Este princípio é restritivo porque limita o
acesso às entidades do sistema.
O princípio da separação do privilégio indica que um sistema não deve conceder a
permissão baseada em uma única condição.
Este princípio é equivalente à separação do
princípio do dever. A companhia verifica para ver se há mais
de $75.000 devem ser assinados por dois oficiais da companhia.
Se qualquer um não assinar, a verificação é inválida.
As duas circunstâncias são as assinaturas de ambos os
oficiais.
Similarmente, os sistemas e os programas que concedem o
acesso aos recursos devem fazer assim somente quando mais de uma
circunstância é encontrada com. Isto fornece um controle
fine-grained sobre o recurso as.well.as a garantia adicional que o
acesso está autorizado.
EXEMPLO: Em versões Berkeley-baseadas do sistema
operando-se de UNIX, não estão permitidos aos usuários mudar de
seus clientes ao cliente da raiz a menos que duas circunstâncias
forem encontradas com. A primeira circunstância é que o
usuário sabe a senha da raiz. A segunda circunstância é que o
usuário está no grupo da roda (o grupo com GID 0).
Encontrar-se com uma ou outra circunstância não é suficiente
adquirir o acesso da raiz; encontrar-se com ambas as
circunstâncias é requerido. |
Princípio de menos mecanismo comum
Este princípio é restritivo porque limita
compartilhar.
O princípio de menos mecanismo da terra comum indica que os mecanismos usados alcançar recursos
não devem ser compartilhados.
Compartilhar de recursos fornece uma canaleta ao longo de
que a informação pode ser transmitida, e assim que tal compartilhar
deve ser minimizado. Na prática, se o sistema se operando
fornecer a sustentação para máquinas virtuais, o sistema
operando-se reforçará este privilégio automaticamente a algum grau.
Se não, fornecerá alguma sustentação (tal como um espaço de
memória virtual) mas não terminará a sustentação (porque o
sistema de lima aparecerá como compartilhado entre diversos
processos).
EXEMPLO: Um Web site fornece serviços eletrônicos
do comércio para uma companhia principal. Os atacantes querem
privar a companhia do rendimento que obtem desse Web site.
Inundam o local com as mensagens e amarram acima os serviços
eletrônicos do comércio. Os clientes legitimate são incapazes
de alcançar o Web site e, em conseqüência, de fazer exame em outra
parte de seu negócio.
Aqui, compartilhar do Internet com os locais dos atacantes
fêz com que o ataque sucedesse. As contramedidas apropriadas
deveriam restringir o acesso dos atacantes ao segmento do Internet
conectado ao Web site. As técnicas para fazer isto incluem
usuários do proxy tais como estrangular do intermediary ou do
tráfego de Purdue SYN. As conexões suspeitas dos alvos
anteriores; o último reduz a carga no segmento relevante da
rede indiscriminately. |
Princípio do acceptability psicológico
Este princípio reconhece o elemento humano na
segurança do computador.
O princípio do acceptability psicológico indica que os mecanismos da segurança não devem
fazer o recurso mais difícil de alcançar do que se os mecanismos da
segurança não estiverem atuais.
Configurarar e executar um programa devem ser tão fáceis
e tão intuitive como possível, e toda a saída deve ser
desobstruída, direta, e útil. Se o software
segurança-relacionado for complicado demasiado para configurarar, os
administradores de sistema podem involuntàriamente ajustar acima o
software em uma maneira do nonsecure. Similarmente, os programas
de usuário segurança-relacionados devem ser fáceis de usar-se e
devem output mensagens compreensíveis. Se uma senha for
rejeitada, o programa em mudança da senha deve indicar porque foi
rejeitado melhor que dando uma mensagem de erro cryptic. Se uma
lima da configuração tiver um parâmetro incorreto, a mensagem de
erro deve descrever o parâmetro apropriado.
EXEMPLO: O programa do ssh permite que um usuário
ajuste acima um mecanismo chave público para enciphering
comunicações entre sistemas. Os mecanismos da instalação e
da configuração para a versão de UNIX permitem que uma arranje que
a chave pública esteja armazenada localmente sem nenhuma proteção
de senha. Neste caso, um não necessita fornecer uma senha para
conectar ao sistema remoto, mas imóvel obterá a conexão enciphered.
Este mecanismo satisf ao princípio do acceptability
psicológico. |
Na outra mão, a segurança requer que as mensagens não
dão nenhuma informação desnecessária.
EXEMPLO: Quando um usuário fornece a senha errada
durante o início de uma sessão, o sistema deve rejeitar a tentativa
com uma mensagem que indica que o início de uma sessão falhou.
Se devesse dizer que a senha estava incorreta, o usuário
saberia que o nome de cliente era legitimate. Se o "usuário"
fosse realmente um atacante desautorizado, saberia então o nome
esclarecer que poderia tentar supo uma senha. |
Na prática, o princípio do acceptability psicológico é
interpretado para significar que o mecanismo da segurança pode
adicionar algum burden extra, mas que o burden deve ser mínimo e
razoável.
EXEMPLO: Um sistema do mainframe permite que os
usuários coloquem senhas em limas. Alcançar as limas requer
que a fonte do programa a senha. Embora este mecanismo violates
o princípio como indicado, considera-se suficientemente mínimo ser
aceitável. Em um sistema interativo, onde o teste padrão de
acessos da lima fosse mais freqüente e mais transiente, esta
exigência seria um burden demasiado grande a ser aceitável. |
este é um artigo adicionado por Conta Kuriko