Segurança

O que é segurança de software?

O que é segurança de software?
Segurança de software é a construção de software seguro com defesa inerente para que continue a funcionar sob ataques maliciosos, para satisfação dos usuários e proprietários do software. Este artigo explica as ameaças e soluções, de um ponto de vista geral. O vocabulário padrão em segurança da informação também é explicado. Você deve ter conhecimentos de informática e Internet para entender este artigo; você também deve ter estudado uma linguagem de computador, e.g., Perl, C, C ++, PHP, etc.

O que é protegido são as informações e os pacotes de software (aplicativos e documentos). Informação é qualquer mensagem útil para qualquer pessoa. “Informação” é uma palavra vaga. O contexto em que é usado dá seu significado. Pode significar notícias, palestra, 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 eram escritas em papel. Hoje, o software pode ser considerado 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 reside em um computador, ele pode ser corrompido. Enquanto estiver em trânsito, ele ainda pode estar corrompido.

Qualquer dispositivo com processador e memória é um computador. Portanto, 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 tem software, ou software em trânsito que deve ser protegido.

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 os três desses privilégios. Existem outros privilégios para um sistema operacional ou banco de dados. Os usuários têm diferentes quantidades ou níveis de privilégios em um sistema.

Ameaças

Bases de ameaças de software

Para proteger o software, você deve conhecer suas ameaças. O software deve ser protegido de pessoas não autorizadas que acessem seus dados. Deve ser protegido contra uso ilegal (para causar danos, por exemplo). O software deve ser protegido contra divulgação a rivais. O software não deve ser corrompido. O software não deve ser excluído acidentalmente. O software não deve ser interrompido. O software não deve ter nenhuma modificação desnecessária. 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 particular de ameaça clássica.

Classes de Ameaça de Software

Ataque de spoofing

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 que é ilegal.

Repúdio

Esta é a situação em que alguém faz algo errado e se recusa a não ser ele 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 ocorre quando informações seguras ou privadas são liberadas intencionalmente ou não para um ambiente que não é confiável.

Ataque de negação de serviço

Um software de rede de computadores 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 da rede. Um usuário criminoso pode decidir inundar um servidor com solicitações supérfluas. Um servidor tem um número limitado de solicitações que pode manipular em um determinado período. Neste esquema de inundação, os usuários legítimos não podem usar o servidor com a freqüência que deveriam, uma vez que o servidor está ocupado respondendo às solicitações do criminoso. Isso sobrecarrega o servidor, interrompendo temporariamente ou indefinidamente os serviços do servidor. No decurso disso, o host (servidor) fica mais lento na operação para usuários legítimos, enquanto o perpetrador realiza seu mal, que passa despercebido, porque os usuários legítimos aguardando atendimento, não podiam saber o que estava acontecendo em o servidor. Os bons usuários têm o serviço negado, enquanto o ataque está acontecendo.

Escalonamento de privilégios

Diferentes usuários de um sistema operacional ou aplicativo têm diferentes privilégios. Então, alguns usuários acabam tendo 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 é Privilege Escalation.

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

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

Privacidade

Quando algo é sensível ou inerentemente especial para você, então é privado para você. Isso também se aplica a um grupo de pessoas. Um indivíduo precisa se expressar seletivamente. Para atingir tal seletividade, o indivíduo deve programar-se ou programar informações sobre si mesmo; isso é privacidade. Um grupo de pessoas precisa se expressar seletivamente. Para atingir essa seletividade, o grupo precisa se programar ou programar informações sobre si; isso é privacidade. Um indivíduo precisa se proteger seletivamente. Para atingir essa proteção seletiva, o indivíduo deve se proteger ou proteger informações sobre si mesmo de forma seletiva; ou seja, privacidade. Um grupo de pessoas precisa se proteger seletivamente. Para obter essa proteção seletiva, o grupo deve se proteger ou proteger informações sobre si mesmo de forma seletiva; ou seja, privacidade.

Identificação e autenticação

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

Olhar para você e associar sua idade, gênero e profissão a você é uma identificação. Verificar se seu rosto real e sua foto são iguais, e estimar se sua apresentação corresponde à sua idade, é a autenticação. Identificação é associar uma pessoa ou algo a certos atributos. Indicar uma identidade também é identificação. A 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 forma mais comum de autenticação é o uso de uma senha. Um servidor, por exemplo, tem muitos usuários. No login, você indica sua identidade (se identifica) 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 mais longe; fazendo-lhe uma pergunta, como “Em que vila ou cidade você nasceu?”

Metas de Segurança

Os objetivos de segurança da informação são Confidencialidade, Integridade e Disponibilidade. Esses três recursos são conhecidos como a tríade CIA: C de Confidencialidade, I de Integridade e A de 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 em segurança da informação (bem como segurança de software). O roubo de senhas ou o envio de e-mails confidenciais para um indivíduo incorreto é a confidencialidade sendo comprometida. 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 hora de início e hora de término.  Em alguns casos, após o final do ciclo de vida, as informações (ou dados) devem ser apagados (legalmente). A integridade consiste em dois recursos, que são: 1) a manutenção e garantia da precisão das informações (ou dados) ao longo de todo o ciclo de vida, e 2) a integridade das informações (ou dados) ao longo de todo o ciclo de vida. Portanto, as informações (ou dados) não devem ser reduzidos ou modificados de forma não autorizada ou não detectada.

Disponibilidade

Para que qualquer sistema de computador atenda ao seu propósito, informações (ou dados) devem estar disponíveis quando necessário. Isso significa que o sistema do computador e sua mídia 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-Repúdio

Quando alguém usa sua identidade e sua assinatura para assinar um contrato que nunca cumpriu, o não repúdio é quando você não pode negar em tribunal que não foi o autor do contrato.

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

Para entender como o não repúdio é 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 é comparado a uma assinatura escrita do remetente.

Na segurança digital, o não repúdio é fornecido (não necessariamente garantido) por uma assinatura digital. Em segurança de software (ou segurança da informação), o não repúdio tem a ver com integridade de dados. A criptografia de dados (que você já deve ter ouvido) combinada com a assinatura digital também contribui para a confidencialidade.

Os objetivos de segurança da informação são Confidencialidade, Integridade e Disponibilidade. No entanto, o não repúdio é 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 de 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: coloca o fardo da ameaça em outra entidade, como uma seguradora ou empresa terceirizada.

- Aceitação: 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, da qual a segurança do software faz parte, o controle de acesso é um mecanismo que garante que apenas usuários elegíveis possam acessar recursos protegidos em um determinado sistema, com seus diferentes privilégios merecidos.

Solução Atual para Segurança da Informação

A maneira atual e popular de fazer segurança da informação é aplicar o controle de acesso. Isso inclui medidas como validação de entrada para um aplicativo, instalação de antivírus, uso de firewall em uma rede local e emprego de Segurança da Camada de Transporte.

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

Um antivírus instalado em seu computador evita que vírus corrompam 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 tais regras são implementadas como software, na rede local, isso é um firewall.

Transport Layer Security (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 o host de envio e o host de recebimento.

Fazer a segurança da informação através da aplicação do controle de acesso é chamado de Software de Segurança, que é diferente de 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, da forma como sã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-se dessas vulnerabilidades, em vez de superar ou contornar o controle de acesso.

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

O software de hoje sofreu ramificações de segurança, incluindo bugs de implementação, como estouro de buffer e falhas de design, como tratamento de erros inconsistente. Estas são vulnerabilidades.

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

A segurança do software, ao contrário do software de segurança, está superando essas vulnerabilidades ao escrever um código defensivo onde as vulnerabilidades seriam evitadas. Enquanto o aplicativo está sendo usado, conforme mais vulnerabilidades são descobertas, os desenvolvedores (programadores) devem procurar maneiras de recodificar as vulnerabilidades, de forma defensiva.

A ameaça, ataque de negação de serviço, não pode ser interrompido pelo controle de acesso, porque para o perpetrador fazer isso, 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 do software é um design robusto de dentro, que torna os ataques de software difíceis. O software deve ser autoprotegido e, no limite, não ter vulnerabilidade. Desta forma, operar uma rede segura se torna mais fácil e mais econômica.

A segurança do software está projetando um código defensivo de dentro do aplicativo, enquanto o software de segurança está reforçando (projetando) o controle de acesso. Às vezes, esses dois problemas se sobrepõem, mas muitas vezes, eles não.

A segurança do software já está bastante desenvolvida, embora ainda esteja em desenvolvimento, não é tão desenvolvida quanto o software de segurança. Hackers malvados alcançam seus objetivos mais aproveitando as vulnerabilidades do software do que ao superar ou contornar o software de segurança. Espera-se que, no futuro, a segurança da informação seja mais uma segurança de software do que de software de segurança. Por enquanto, a segurança do software e o software de segurança devem estar em andamento.

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

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

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

Conclusão

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

Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...
Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...