O papel da confiança na segurança do computador
O papel da confiança é crucial a compreender a
natureza da segurança do computador. Os artigos apresentam
teorias e mecanismos para analisar e realçar a segurança do
computador, mas todas as teorias ou mecanismos descansam em
determinadas suposições. Quando alguém compreende as
suposições suas políticas da segurança, mecanismos, e os
procedimentos descansam sobre, terá uma compreensão muito boa de
como eficaz aqueles políticas, mecanismos, e procedimentos são.
Deixe-nos examinar as conseqüências deste maxim.
Um administrador de sistema recebe um remendo da
segurança para o sistema operando-se do seu computador.
Instala-o. Melhorou a segurança de seu sistema? Tem
certamente, dado a exatidão de determinadas suposições:
-
Está supondo que o remendo veio do vendedor e não
estêve alterado no trânsito, melhor que de um atacante que tenta
enganá-la em instalar um remendo bogus que abra realmente furos da
segurança.
-
Está supondo que o vendedor testou o remendo
completamente. Os vendedores estão frequentemente sob a
pressão considerável emitir rapidamente remendos e testá-los às
vezes somente de encontro a um ataque particular. O
vulnerability pode ser mais profundo, entretanto, e outros ataques
podem suceder. Quando alguém liberou uma façanha de um código
de sistema se operando do vendedor, o vendedor liberou um remendo
corrigindo em 24 horas. Infelizmente, o remendo abriu um segundo
furo, um que era distante mais fácil de explorar. O remendo
seguinte (liberado 48 horas mais tarde) reparou ambos os problemas
corretamente.
-
Está supondo que o ambiente do teste do vendedor
corresponde a seu ambiente. Se não, o remendo não pode
trabalhar como esperado. Como um exemplo, o remendo de um
vendedor restaurou uma vez posses dos executables à raiz do usuário.
Em algumas instalações, os procedimentos de manutenção
requereram que estes executables estivessem possuídos pelo escaninho
do usuário. O remendo do vendedor teve que undone e reparado
para a configuração local. Esta suposição cobre também
conflitos possíveis entre remendos diferentes, as.well.as os remendos
que opõem ao um outro (tal como remendos dos vendedores diferentes do
software que o sistema está usando).
-
Está supondo que o remendo está instalado corretamente.
Alguns remendos são simples instalar, porque são limas
simplesmente executáveis. Outro é complexo, requerendo o
administrador de sistema reconfigurar propriedades network-oriented,
adiciona um usuário, modifica os índices de um registro, dá
direitas a algum jogo dos usuários, e recarrega então o sistema.
Um erro em algumas destas etapas poderia impedir que o remendo
corrija os problemas, como poderia uma inconsistência entre os
ambientes em que o remendo foi desenvolvido e em quais o remendo é
aplicado. Além disso, o remendo pode reivindicar reque
privilégios específicos, quando na realidade os privilégios são
desnecessários e no fato perigoso
Estas suposições são razoavelmente high-level,
mas invalidating alguns deles makes o remendo um problema potencial da
segurança.
As suposições levantam-se também em um nível muito
mais baixo. Considere a verificação formal, um panacea
oft-oft-touted para problemas da segurança. O aspecto
importante é que a verificação formal fornece uma prova matemática
formal que um programa dado P é correctthat é, dado ajustado das
entradas i, j, k, o programa P produzirá a saída x que sua
especificação requer. Este nível da garantia é mais grande
do que a maioria de programas existentes fornecem, e daqui fazem a P
um programa desejável. Suponha que um programa
segurança-relacionado S estêve verificado formalmente para o sistema
se operando O. Que suposições seriam feitas quando foi
instalado?
-
A verificação formal de S é correctthat é, a prova
não tem nenhum erro. Porque a verificação formal confia em
provers automatizados do theorem as.well.as a análise humana, os
provers do theorem devem ser programados corretamente.
-
As suposições feitas na verificação formal de S estão
corretas; especificamente, os preconditions prendem no ambiente
em que o programa deve ser executado. Estes preconditions são
alimentados tipicamente aos provers do theorem as.well.as o programa
S. Um aspecto implícito desta suposição é que a versão de O
no ambiente em que o programa deve ser executado é a mesma que a
versão de O usada verificar S.
-
O programa será transformado em um executável cujas as
ações correspondam àquelas indicadas pelo código de fonte;
ou seja o compilador, o linker, o carregador, e todas as
bibliotecas estão corretos. Uma experiência com uma versão do
sistema operando-se de UNIX demonstrou como devastating um compilador
equipado poderia ser, e os atacantes substituíram bibliotecas com a
outra que executou funções adicionais, desse modo aumentando riscos
da segurança.
-
A ferragem executará o programa como pretendido. Um
programa que confiasse em cálculos do ponto flutuando renderia
resultados incorretos em algumas microplaquetas do processador central
do computador, não obstante toda a verificação formal do programa,
devido a uma falha nestas microplaquetas. Similarmente, um
programa que confie em entradas da ferragem supõe que as
circunstâncias específicas causam aquelas entradas
O ponto é que toda a política, mecanismo, ou
procedimento da segurança estão baseados nas suposições que, se
incorretas, destroem o superstructure em que é construído. Os
analistas e os desenhadores (e os usuários) devem carregar este na
mente, porque a menos que compreenderem o que a política, o
mecanismo, ou o procedimento da segurança estão baseados sobre, eles
saltam de uma suposição unwarranted a uma conclusão errônea. este é um artigo adicionado por Meden Reece
|