Controle de acesso – tipos e serviços associados

Uma das 10 áreas importantes que são cobertas no CISSP é o controle de acesso (access control).

Este é a capacidade de permitir ou negar o uso de um objeto (uma entidade passiva tal como um sistema ou arquivo) a um solicitante (uma entidade ativa como uma pessoa ou um processo). O uso é normalmente definido através de regras : escrita, leitura, execução, listagem, modificação e deleção.

Tipos de controle

Os controles podem ser preventivos (redução de riscos), detectivos (identificam violações e incidentes), corretivos (que amenizam as violações e incidentes e melhoram os controles preventivos e detectivos), de dissuação (que desencorajam violações), de recuperação (que restauram sistemas e informações e de compensação (controles alternativos)

Os controles de acesso podem ser :

  1. administrativos
  2. técnicos
  3. físicos

* Controles administrativos

Incluem as políticas e procedimentos que uma organização implementa como parte de sua estratégia de segurança. Os controles administrativos asseguram que os controles técnicos e físicos são entendidos e corretamente implementados de acordo com a política de segurança da organização

Eles incluem:

  • Políticas e procedimentos
  • Treinamento de sensibilização de segurança
  • Classificação e controle de bens
  • Políticas e práticas de contratação
  • Administração de contas
  • Monitoramento de contas, logs e eventos (journal)
  • Revisão de registros de auditoria

* Controles técnicos

Utilizam hardware e software para implementar o controle de acesso

Preventivos

  • Criptografia
  • Mecanismos de controle de acesso (biometrica, smartcard etc)
  • Listas de controle de acesso
  • Protocolos de autenticação remota (PAP, CHAP, RADIUS, LDAP)

Detectivos

  • Reports de violação
  • Logs de auditoria
  • Monitoramento de rede e detecção de intrusão (IDS)

* Controles Físicos

Garantem a proteção e segurança do ambiente físico.

Preventivo

  • Controles de aquecimento, ventilação e ar condicionado (HVAC)
  • Perímetros de segurança (muros, grades, portas trancadas)
  • Guardas e cachorros

Detectivos

  • Sensores de movimentos
  • Câmeras
  • Sensores ambientais (detectar fumaça, calor, fogo)

Uma característica relevante quando se trata de controle de acesso é como ele se comporta quando falha. Quando um controle de acesso falha e restringe o acesso ele é chamado de fail closed. Quando um controle de acesso falha e permite o acesso ele é considerado fail open.

Serviços

Os sistemas de controle de acesso proveêm três serviços essenciais :

  1. Autenticação
  2. Autorização
  3. Responsabilização

Autenticação

Composto de duas etapas : identificação e autenticação determina quem pode efetuar o login.

Autorização

Define os direitos e permissões do usuário ou processo. Se dá após a autenticação e define o que o usuário pode fazer com um sistema ou recurso.

Resposibilização (Accountability)

É a capacidade de associar as ações com o usuário que as executou. Define o que o usuário fez.

Associado a responsibilização um sistema deve ser capaz de impedir a repudiação, ou seja um usuário não pode negar uma ação realizada pelo mesmo.

No próximo blog abordaremos as categorias de controle de acesso.

Nunca é demais (ou cuidado com o que você pergunta)

O processo de desenvolvimento possui vários obstáculos. Acredito que você já passou por este.

61743.strip

Marionete corporativa

O lado negro das ferramentas colaborativas dentro de uma corporação.

61745.strip

Tratando segurança de maneira séria : introdução CISSP

O mercado de tecnologia de informação possui dezenas de subdivisões e dentre elas a que trata de segurança tem felizmente avançado. Uso o ‘felizmente’ para indicar que a preocupação com segurança, algo que sempre foi necessário mas igualmente ignorado, passa a ter cada vez mais relevância dentro das corporações.

O primeiro sinal de que uma determinada área ou subdivisão ganha importância é o aparecimento e solicitação por parte das empresas de certificações. Dentre as certificações que tratam do assunto uma tem apelo especial : CISSP.

Esta é conhecida por requerer que o pretendente tenha um conhecimento muito vasto em várias áreas da segurança, muitas delas fora do ambiente tecnológico ao qual todos estamos mais acostumados a atuar.

O CISSP define 10 domínios de conhecimento denominados de CBK (Common Body Knowledge) :

  1. Access Control

    Engloba um conjunto de mecanismos utilizados para direcionar ou restringir o comportamento, uso e conteúdo de um sistema de informação. Ele define os direitos do usuário no sistema, incluindo o que o usuário pode fazer e que recursos estarão disponíveis.

  2. Telecomunications and Network Security

    Engloba as estruturas, métodos de transmissão, formatos de transporte e medidas de segurança utilizadas para prover confidencialidade, integridade, disponibilidade e autenticação para transmissões em redes privadas e públicas.

  3. Information Security and Risk Management

    Engloba o gerenciamento da segurança : identificação dos bens (informação) de uma empresa, documentação e implementação de políticas, padrões, procedimentos e guias que garantam confidencialidade, integridade e disponibilidade.

    Engloba também o gerenciamento de riscos : identificação, medição, controle e minimização de perdas associadas com eventos incertos e riscos, incluindo revisão de segurança, análise de riscos, gerenciamento decisorial, revisão de eficácia.

  4. Application Security

    Engloba os controles incluídos dentro de sistemas e os passos usados em seu desenvolvimento.

  5. Criptografia

    Envolve os princípios, meios e métodos de disfarçar para garantir a integridade, confidencialidade e autenticidade.

  6. Security Architecture and Design

    Conceitos, princípios, estruturas e padrões usados para desenvolver, implementar, monitorar e prover segurança a sistemas, equipamentos, redes e aplicações.

  7. Operations Security

    Controle de hardware, mídias e operações com acesso privilegiado a recursos, incluindo monitoramento e auditoria.

  8. Business Continuity and Disaster Recovery Planning

    Preparação, teste e atualização de ações específicas para proteger processos críticos do negócio do efeito de falhas de sistema e de rede.

  9. Legal, Regulations, Compliance and Investigations

    Envolve as leis para crimes digitais, regulações, lidando com incidentes, medidas investigativas, código de conduta.

  10. Physical Security

    Ameaças e contra-medidas relacionadas a proteção física de pessoas, locais, dados, equipamentos, sistemas de suporte, mídia e suprimentos.

Recomendo a todos os que estejam interessados seriamente em segurança que pelo menos estudem para o CISSP. Mesmo que não consigam a certificação o escopo e abrangência dos assuntos irão abrir horizontes e lhe permitirão analisar de maneira mais crítica a segurança e como a mesma é tratada dentro de sua organização.

Senhor dos anéis : uma linguagem para controlar todas!

A melhor proposta que vi até hoje para se resolver o debate sobre qual a melhor linguagem

strip0171

O espírito da camaradagem

Para aqueles que sempre desconfiam das segundas intenções

60358.strip

O mercado de smartphones

Um dos mercados mais ágeis tem sido o de telefonia celular. Com modelos novos sendo lançados mensalmente para um público cada vez mais ávido por avanços.

As tecnologias antes só encontradas nos equipamentos de ponta passam gradualmente a ser encontrados nos celulares mais populares. Agenda de compromissos, câmeras, bluetooth e GPS são algumas dessas tecnologias que vem se tornando largamente disponíveis.

Visando se diferenciar as empresas de celular passaram a procurar segmentos onde pudessem oferecer produtos com maior valor agregado e sem uma pressão por preço tão forte quanto no mercado comum. A categoria escolhida foi a dos smartphones.

Surgidos há alguns anos estes equipamentos procuram disponibilizar as funcionalidades de PDAs e de celulares em um só, com integração com outras ferramentas do desktop e assim serem extensões deste para o público corporativo.

Um dos campeões de venda nessa categoria tem sido o Blackberry da RIM com uma integração com o email corporativo tida imbatível até hoje. O Palm com a linha Treo também é um participante de destaque apesar da decadência da sua participação de mercado dos últimos anos.

Tudo ia bem com cada fabricante essencialmente provendo pequenos avanços de tecnologias existentes (ex. câmera de 1 Megapixel, 2 Megapixels etc). Isso tudo foi alterado recentemente com a entrada do iPhone.

Este definiu um novo conjunto de características que todos tentaram copiar ou se equiparar. Todo modelo novo, quer seja do Android, quer seja do Palm Pre, é comparado pelo fabricante ou mesmo pela mídia como um ‘iphone killer’. Na verdade considero que o iPhone esteja em uma categoria a parte.

Seu enorme sucesso se deve a vários fatores, um deles o seu posicionamento não como um smartphone, cuja missão primária é o trabalho, mas sim como um veículo de entretenimento. Com sua tela e capacidades multimídia ele é a escolha preferida de quem deseja um MP3 player, uma câmera e plafaforma de jogos em um só aparelho.

Nesse aspecto acredito que o mercado de smartphones, da qual a RIM é campeã, deva se preocupar com o Android e o Pre, e não com o iPhone.

E você o que acha? Qual o seu smartphone preferido?

Participe da pesquisa clicando aqui.

O lado positivo das crises

Como sempre as desgraças de uns são as oportunidades de outros.

58816.strip

Frameworks como fator de aceleração do desenvolvimento

O uso de frameworks para auxiliar no desenvolvimento tem crescido nos últimos meses impulsionado pela promessa de um desenvolvimento mais ágil. Na mesma proporção entretando é possível encontrar reações adversas ao seu uso.

Em ambos os casos muitas das reações não possuem uma fundamentação adequada para explicar o por que cada lado defende a sua opção.

Proponho uma avaliação dessas reações (e suas razões) de maneira a facilitar o processo de decisão : usar ou não usar um framework.

Antes entretanto precisamos definir o que é um framework.

O que é um framework?

Existem várias definições sobre o que é um framework mas este é normalmente utilizado para explicar uma biblioteca de código e suas convenções que provêem uma infra-estrutura para o desenvolvimento.

Desta maneira aqueles que adotem um framework tem, sem necessitar desenvolver nenhum código adicional, acesso a um número de funcionalidades geralmente comuns a várias aplicações.

A alternativa ao não uso de um framework é o de desenvolver in-house tudo que se necessita, usando possivelmente apenas as diretivas nativas da linguagem de programação que foi escolhida.

Argumentos para não se usar um framework

  • “frameworks são lentos”
  • “o código é muito confuso”
  • “não tenho controle sobre o código”

Primeiramente é importante reconhecer que qualquer framework irá oferecer uma penalidade em termos de performance. Ao inserir componentes genéricos e com graus diferentes de adaptabilidade, são introduzidas camadas de abstração que explicam a maior ou menor penalidade.

Um framework também introduz uma curva de aprendizado com maior ou menor inclinação. Afinal as convenções ou mesmo a API, por não ter sido desenvolvida por você, deverão ser conhecidas e dominadas.

Argumentos para se usar um framework

  • “não vou reinventar a roda”
  • “posso me concentrar no código que realmente interessa”
  • “ele automatiza as tarefas mais comuns”

Ao usar um framework você evita de ter que desenvolver internamente todas as funcionalidades que você precisa. Todos os frameworks trazem componentes pré-testados para realizar um conjunto de operações comuns. Deseja gerar um PDF? Use o componente do framework. Deseja uma classe de acesso ao banco de dados? Use o componente do framework e por aí vai.

O que fazer?

Os argumentos de quem defende o uso de framework apontam normalmente para a agilidade no desenvolvimento, ao deixar que os aspectos mais comuns das aplicações sejam cuidados pelo framework enquanto os itens específicos fiquem a cargo do desenvolvimento em si.

Os argumentos de quem defende que não seja usado um framework indicam que um framework impõe um overhead muito grande, com penalidades em performance e que dificultam por impor uma estrutura rígida. Existem aqueles que resistem por achar que serão capazes de fazer algo melhor do que existe nos frameworks.

Como quase sempre a situação é que ambos estão certos em sua colocações e que o equilíbrio entre ambas é a melhor solução. Particularmente defendo o uso de framework mas que o mesmo seja feito com cuidado para evitar os problemas que uma adoção irrestrita normalmente acarreta.

Novamente o que temos que evitar é a síndrome do silver bullet. Esta síndrome é aquela a qual a indústria é acometida de tempos em tempos ao adotar, quase que fanaticamente, uma determinada solução (metodologia, linguagem etc) como sendo a que irá resolver todos os problemas ou prover ordens de grandeza de melhoramento no processo.

Quem acompanha se recorda do Delphi/Visual Basic como sendo as ferramentas que iriam resolver os problemas. Depois foi a vez do Java e C# e mais recentemente tivemos no Ruby on Rails o posto de nosso salvador.

A pergunta que temos que fazer não é mais se devemos ou não usar um framework e sim “Qual framework devo usar?”

Qual framework usar?

É claro que não existe um framework perfeito. Todos eles tem que fazer escolhas e com isso concessões são feitas. Alguns oferecem mais ou menos componentes, alguns impõem uma estrutura rígida a qual seu aplicativo deve seguir etc.

Como fazer então para decidir? Além da linguagem do mesmo proponho então algumas recomendações na escolha de um framework:

a) Código-fonte aberto

Ao adotar um framework de código aberto você tem a oportunidade de ver como o mesmo é feito, aprender o que de bom (e ruim) o mesmo tem e propor mudanças e melhoramentos.

Se o framework for descontinuado você tem a chance de continuar o desenvolvimento.

b) Comunidade de suporte existente e ativa

Qualquer framework trará com si vários desafios, quer seja no aprendizado do uso, quer seja na manutenção e crescimento do mesmo. Quanto maior for a comunidade do mesmo mais facilmente será a ajuda, a identificação de possíveis problemas e a colaboração com novos componentes ou melhoramentos dos já existentes.

c) Possui política de segurança

Como segurança é um fator crítico em qualquer projeto de software, o framework e a sua comunidade devem possuir uma política para tratamento de incidentes de segurança e auditoria do código.

Isso minimiza a ocorrência de problemas e permite que eventuais problemas sejam mais facilmente resolvidos.

d) Segue as boas práticas

Periodicamente as boas práticas na área de desenvolvimento são acrescidas de novas técnicas. O framework escolhido deve adotar essas práticas como sendo um indicador que o mesmo se mantem atual. Uso de design patterns, orientação a objeto, unit testing, controle de versão são algumas das práticas desejáveis nos frameworks que você considerar usar.

Role model

A sinceridade levada ao extremo

58076.strip