O que é segurança de software?

O que é segurança de software?
A segurança de software é a construção de software seguro com defesa inerente, para que continue funcionando sob ataques maliciosos, para satisfação dos usuários e proprietários do software. Este artigo explica as ameaças e soluções, do ponto de vista geral. O vocabulário padrão em segurança da informação também é explicado. Você deve ser alfabetizado por computador e internet para entender este artigo; Você também deveria ter estudado uma linguagem de computador, e.g., Perl, c, c ++, php, etc.

O que é protegido são informações e pacotes de software (aplicativos e documentos). Informações são qualquer mensagem que seja útil para qualquer um. "Informação" é uma palavra vaga. O contexto em que é usado dá seu significado. Pode significar notícias, palestras, tutorial (ou lição) ou solução. Um pacote de software geralmente é uma solução para algum problema ou problemas relacionados. No passado, todas as informações não faladas foram escritas no papel. Hoje, o software pode ser considerado como um subconjunto de informações.

O software pode residir em um computador ou estar em trânsito de um computador para outro. Arquivos, dados, e -mails, voz gravada, vídeos gravados, programas e aplicativos residem em um computador. Enquanto residia em um computador, ele pode ser corrompido. Enquanto estiver em trânsito, ainda pode ser corrompido.

Qualquer dispositivo com processador e memória é um computador. Então, neste artigo, uma calculadora, um smartphone ou um tablet (e.g., iPad) é um computador. Cada um desses dispositivos e sua mídia de transmissão de rede possuem software ou software em trânsito que devem ser protegidos.

Privilégios

Um usuário pode ter o privilégio de executar um arquivo em um computador. Um usuário pode ter o privilégio de ler o código de um arquivo em um computador. Um usuário pode ter o privilégio de modificar (escrever) o código de um arquivo em um computador. Um usuário pode receber um, dois ou todos esses três privilégios. Existem outros privilégios para um sistema operacional ou um banco de dados. Os usuários têm quantidades ou níveis diferentes de privilégios em um sistema.

Ameaças

Bases de ameaças de software

Para proteger o software, você precisa saber suas ameaças. O software deve ser protegido das pessoas não autorizadas acessando seus dados. Deve ser protegido contra o uso ilegal (para causar danos, por exemplo). O software deve ser protegido contra a divulgação de rivais. O software não deve ser corrompido. O software não deve ser excluído sem querer. O software não deve ser interrompido. O software não deve ter nenhuma modificação que seja desnecessária para. Os dados (software) não devem ser inspecionados sem um bom motivo, especialmente por pessoas não autorizadas. O software não deve ser copiado (pirateado).

Uma ou mais dessas bases, resultando em um tipo específico de ameaça clássica.

Classes de ameaça de software

Ataque de falsificação

Esta é a situação em que uma pessoa (ou programa) representa com sucesso outra pessoa (ou programa) em alguma atividade de software. Isso é feito usando dados falsos para obter uma vantagem ilegal.

Repúdio

Esta é a situação em que alguém faz algo errado e recusa que ele não é quem fez isso. A pessoa pode usar a assinatura de outra pessoa para fazer a coisa errada.

Violação de dados

Uma violação de dados é quando informações seguras ou privadas são divulgadas intencionalmente ou não intencionalmente para um ambiente que não é confiável.

Ataque de negação de serviço

Uma rede de computadores de software possui software em execução nos computadores da rede. Cada usuário geralmente usa seu computador na frente dele e geralmente solicita serviços de outros computadores na rede. Um usuário criminal pode decidir estar inundando um servidor com solicitações supérfluas. Um servidor tem um número limitado de solicitações que pode lidar em duração. Nesse esquema de inundação, os usuários legítimos não podem usar o servidor o tempo que deveriam, já que o servidor está ocupado respondendo aos pedidos do criminoso. Isso sobrecarrega o servidor, interrompendo temporariamente ou indefinidamente os serviços do servidor. No decorrer disso, o host (servidor) diminui em operação para usuários legítimos, enquanto o agressor realiza suas travessuras, o que não é detectado, porque os usuários legítimos, esperando o serviço, não podiam saber o que estava acontecendo o servidor. Os bons usuários são negados o serviço, enquanto o ataque está acontecendo.

Escalada de privilégios

Diferentes usuários de um sistema operacional ou aplicativo têm privilégios diferentes. Então, alguns usuários acabam com mais valor do que outros, do sistema. Explorar um bug de software ou supervisão de configuração para obter acesso elevado a recursos ou informações não autorizadas é uma escalada de privilégio.

Os esquemas de classificação acima podem ser usados ​​para causar um vírus de computador e vermes.

Um ou mais esquemas de classificação acima podem ser usados ​​para ataques de software, que incluem: roubo de propriedade intelectual, corrupção do banco de dados, roubo de identidade, sabotagem e extorsão de informações. Se uma pessoa usa um ou mais esquemas para modificar destrutivamente, um site para que os clientes do site percam confiança, que seja sabotagem. A extorsão de informações é o roubo do computador de uma empresa ou obtenção falsamente de informações secretas sobre a empresa. O computador roubado pode ter informações secretas. Isso pode levar ao ransomware, onde o ladrão pediria um pagamento, em troca da propriedade ou das informações roubadas.

Privacidade

Quando algo é sensível ou inerentemente especial para você, então isso é privado para você. Isso também se aplica a um grupo de pessoas. Um indivíduo precisa se expressar seletivamente. Para alcançar essa seletividade, o indivíduo precisa agendar a si mesma ou agendar informações sobre si mesmo; Isso é privacidade. Um grupo de pessoas precisa se expressar seletivamente. Para atingir essa seletividade, o grupo deve agendar a si mesmo ou agendar informações sobre si mesmas; Isso é privacidade. Um indivíduo precisa se proteger seletivamente. Para atingir essa proteção seletiva, o indivíduo precisa se proteger ou proteger informações sobre si mesmo de uma maneira seletiva; isto é, privacidade. Um grupo de pessoas precisa se proteger seletivamente. Para atingir essa proteção seletiva, o grupo precisa se proteger ou proteger informações sobre si mesmas de maneira seletiva; isto é, privacidade.

Identificação e autenticação

Quando você viaja para um país estrangeiro, você chegará a um porto daquele país. No porto, um policial pedirá que você se identifique. Você vai apresentar seu passaporte. O policial conhecerá sua idade (a partir da data de nascimento), seu sexo e sua profissão no passaporte, e ele olhará para você (seu rosto); Isso é identificação. O policial vai comparar seu rosto real e a foto no passaporte. Ele também estimará sua idade com o que está no passaporte para saber se é você.

Olhando para você e associando sua idade, sexo e profissão com você é identificação. Verificando se seu rosto real e sua foto são iguais, e estimar se sua apresentação corresponde à sua idade, é autenticação. A identificação está associando uma pessoa ou algo a certos atributos. Indicar uma identidade também é identificação. Autenticação é o ato de provar que a identidade (identificação) é verdadeira. Em outras palavras, a autenticação é o ato de provar uma afirmação.

Na computação, a maneira mais comum de autenticação é o uso de uma senha. Um servidor, por exemplo, tem muitos usuários. No login, você indica sua identidade (identifique -se) com seu nome de usuário. Você prova sua identidade com sua senha. Sua senha deve ser conhecida apenas por você. A autenticação pode ir além; Ao fazer uma pergunta, como “em que cidade ou cidade você nasceu?”

Objetivos de segurança

As metas de segurança nas informações são confidencialidade, integridade e disponibilidade. Esses três recursos são conhecidos como TRIAD CIA: C para confidencialidade, I por integridade e uma disponibilidade.

Confidencialidade

As informações não devem ser divulgadas a indivíduos não autorizados, ou entidades não autorizadas ou processos não autorizados; Isso é confidencialidade da informação na segurança da informação (bem como segurança de software). O roubo de senhas ou o envio de e -mails sensíveis para um indivíduo incorreto está confidencialmente comprometido. A confidencialidade é um componente de privacidade que protege as informações de indivíduos não autorizados, ou entidades não autorizadas ou processos não autorizados.

Integridade

Informações ou dados têm um ciclo de vida. Em outras palavras, informações ou dados têm um horário de início e o término. Em alguns casos, após o final do ciclo de vida, as informações (ou dados) devem ser apagadas (legalmente). A integridade consiste em dois recursos, que são: 1) a manutenção e a garantia da precisão das informações (ou dados) em todo o ciclo de vida e 2) a integridade das informações (ou dados) em todo o ciclo de vida do ciclo de vida. Portanto, as informações (ou dados) não devem ser reduzidas ou modificadas de maneira não autorizada ou não detectada.

Disponibilidade

Para qualquer sistema de computador servir seu objetivo, informações (ou dados) devem estar disponíveis quando necessário. Isso significa que o sistema de computador e seu meio de transmissão devem estar funcionando corretamente. A disponibilidade pode ser comprometida por atualizações do sistema, falhas de hardware e quedas de energia. A disponibilidade também pode ser comprometida por ataques de negação de serviço.

Não repudiação

Quando alguém usa sua identidade e sua assinatura para assinar um contrato que ele nunca cumpriu, a não repudiação é quando você não pode negar com êxito no tribunal que não autorizou o contrato.

No final de um contrato, a parte que oferece o serviço deve ter oferecido o serviço; o pagamento da parte deve ter feito o pagamento.

Para entender como a não repudiação é aplicável à comunicação digital, você deve primeiro saber o significado da chave e o significado da assinatura digital. Uma chave é um pedaço de código. Uma assinatura digital é um algoritmo que usa uma chave para produzir algum outro código que seja comparado a uma assinatura escrita do remetente.

Na segurança digital, a não repudiação é fornecida (não necessariamente garantida) por uma assinatura digital. Na Segurança de Software (ou Segurança da Informação), a não repudiação tem a ver com a integridade dos dados. A criptografia de dados (que você pode ter ouvido) combinada com a assinatura digital contribui para a confidencialidade também.

As metas de segurança nas informações são confidencialidade, integridade e disponibilidade. No entanto, a não repudiação é outro recurso que você deve levar em consideração ao lidar com a segurança da informação (ou segurança de software).

Respostas a ameaças

As ameaças podem ser respondidas, em uma ou mais das três maneiras a seguir:

- Redução/mitigação: Esta é a implementação de salvaguardas e contramedidas para eliminar vulnerabilidades ou bloquear ameaças.

- Atribuição/transferência: isso coloca o ônus da ameaça a outra entidade, como uma companhia de seguros ou uma empresa de terceirização.

- Aceitação: isso avalia se o custo da contramedida supera o possível custo de perda devido à ameaça.

Controle de acesso

Na segurança da informação de qual segurança de software faz parte, o controle de acesso é um mecanismo que garante que apenas os usuários elegíveis possam acessar recursos protegidos em um determinado sistema, com seus diferentes privilégios merecidos.

Solução atual para a segurança da informação

A maneira atual e popular de fazer a segurança da informação é aplicar o controle de acesso. Isso inclui medidas como validar a entrada para um aplicativo, a instalação do antivírus, o uso de um firewall em uma rede local e empregando segurança da camada de transporte.

Quando você espera uma data como entrada para um aplicativo, mas o usuário entra em um número, essa entrada deve ser rejeitada. Que é validação de entrada.

Um antivírus instalado em seu computador impede que os vírus corrompem arquivos em seu computador. Isso ajuda na disponibilidade de software.

As regras podem ser feitas para monitorar e controlar o tráfego de entrada e saída de uma rede local, a fim de proteger a rede. Quando essas regras são implementadas como software, na rede local da área, isso é um firewall.

A Camada de Transporte (TLS) é um protocolo de segurança projetado para facilitar a privacidade e a segurança de dados para transmissões pela Internet. Isso envolve criptografar a comunicação entre enviar host e receber host.

Fazer a segurança da informação, aplicando o controle de acesso, é chamado de software de segurança, que é diferente da segurança de software, conforme explicado abaixo. Ambas as abordagens têm o mesmo objetivo, mas são diferentes.

Segurança de software adequada

Os aplicativos, como estão escritos hoje, têm muitas vulnerabilidades de software que os programadores perceberam cada vez mais nos últimos 20 anos. A maioria dos ataques é feita aproveitando essas vulnerabilidades do que superar ou trabalhar em torno do controle de acesso.

Um buffer é como uma matriz, mas sem um comprimento imposto. Quando um programador está escrevendo em um buffer, é possível substituir inconscientemente além de seu comprimento. Esta vulnerabilidade é um transbordamento de buffer.

Hoje, o software desertou com ramificações de segurança, incluindo bugs de implementação, como transbordamentos de buffer e falhas de design, como manipulação de erros inconsistente. Estas são vulnerabilidades.

Você deve ter ouvido falar de truques de linguagem de computador, como truques PHP, trapaceiros perl e truques C ++. Estas são vulnerabilidades.

A segurança do software, em oposição ao software de segurança, está superando essas vulnerabilidades escrevendo código defensivo onde as vulnerabilidades seriam evitadas. Enquanto o aplicativo está sendo usado, à medida que mais vulnerabilidades são descobertas, os desenvolvedores (programadores) devem procurar maneiras de recodificar as vulnerabilidades, defensivamente.

A ameaça, o ataque de negação de serviço, não pode ser interrompida pelo controle de acesso, porque para o agressor fazê-lo, ele já deve ter acesso ao host (servidor). Ele pode ser interrompido, incluindo algum software interno que monitora o que os usuários estão fazendo no host.

A segurança de software é um design robusto por dentro, que dificulta o software. O software deve ser autoprotector e, no limite, não tem vulnerabilidade. Dessa forma, executar uma rede segura se torna mais fácil e mais econômica.

A segurança do software está projetando código defensivo de dentro do aplicativo, enquanto o software de segurança está aplicando (projetando) controle de acesso. Às vezes, essas duas questões se sobrepõem, mas muitas vezes elas não.

A segurança do software já está bastante desenvolvida, embora ainda esteja sendo desenvolvido, não é tão desenvolvido quanto o software de segurança. Hackers ruins alcançam seus objetivos mais aproveitando as vulnerabilidades no software do que superando ou trabalhando em torno do software de segurança. Espera -se que, no futuro, a segurança da informação seja mais de segurança de software do que o software de segurança. Por enquanto, o software de segurança e segurança do software deve estar acontecendo.

A segurança do software não será realmente eficaz se testes rigorosos não forem feitos no final do desenvolvimento de software.

Os programadores devem ser educados na realização de programação de código defensivo. Os usuários também precisam ser educados sobre como usar aplicativos defensivos.

Na segurança do software, o desenvolvedor deve garantir que o usuário não tenha mais privilégios do que merece.

Conclusão

A segurança do software é o design de aplicativos com codificação defensiva contra vulnerabilidades para dificultar os ataques de software. Software de segurança, por outro lado, é a produção de software que aplica controle de acesso. A segurança de software ainda está sendo desenvolvida, mas é mais promissor para segurança da informação do que software de segurança. Já está sendo usado e está crescendo em popularidade. No futuro, ambos serão necessários, mas com software, a segurança precisava de mais.