26 de janeiro de 2007

PHP Security

Fundado em Janeiro de 2005 o PHP Security Consortium trabalha atualmente em três projetos relacionados a segurança em PHP.

PHP Security Guide
Um manual de 37 páginas sobre configurações adequadas e boas práticas de desenvolvimento em PHP. Em alguns pontos ele complementa o OWASP, pois, trata de características bem específicas de PHP.

SecurityFocus Summaries
Uma lista de vulnerabilidades em ferramentas baseadas em php que é disponibilizada pela securityfocus.

PhpSecInfo
Na minha opinião o mais interessante deles. Nesse projeto eles desenvolvem uma aplicação web, semelhante ao phpinfo(), que mostra o nível de segurança do seu servidor web e indica referências para aumentar o nível de segurança.



PHP Security Consortium
PHP Security Guide
SecurityFocus Summaries
PHPSecInfo

PHP Security

Fundado em Janeiro de 2005 o PHP Security Consortium trabalha atualmente em três projetos relacionados a segurança em PHP.

PHP Security Guide
Um manual de 37 páginas sobre configurações adequadas e boas práticas de desenvolvimento em PHP. Em alguns pontos ele complementa o OWASP, pois, trata de características bem específicas de PHP.

SecurityFocus Summaries
Uma lista de vulnerabilidades em ferramentas baseadas em php que é disponibilizada pela securityfocus.

PhpSecInfo
Na minha opinião o mais interessante deles. Nesse projeto eles desenvolvem uma aplicação web, semelhante ao phpinfo(), que mostra o nível de segurança do seu servidor web e indica referências para aumentar o nível de segurança.


PHP Security Consortium
PHP Security Guide
SecurityFocus Summaries
PHPSecInfo

22 de janeiro de 2007

Crisis Communication

Os últimos incidentes em nosso país, como a queda do avião do 747-800 da gol; acidente na linha amarela do metro paulista; crise no sistema aéreo brasileiro e o mais recente acidente em fábrica de cimento mineira, onde o desabamento de um andaime deixou três mortos e até o momento a controladora da empresa não se pronunciou, nos levam a pensar em um problema sério em nossa cultura de gerenciamento de crises.

Não estamos preparados para a comunicação clara destes incidentes, e como sabemos, um plano de comunicação adequado é essencial para um gerenciamento de crise adequado. Os problemas de comunicação poderiam ser evitados se investíssemos em um plano de comunicação em situações de crise.

Segundo o glossário da Defesa Civil: crise é uma manifestação violenta e repentina de ruptura de equilíbrio. Momento perigoso e decisivo. Situação que implica a ruptura da normalidade ou do equilíbrio dinâmico de um sistema e favorece sua desorganização.

Um plano de comunicação de crises eficiente deve possuir no mínimo os seguintes itens:

  • Uma matriz de acionamento (call tree) com os principais contatos e ordem de acionamento;
  • Uma equipe treinada e capacitada para uma comunicação adequada da crise;
  • Definir os canais de comunicação para atingir cada público, considerando a comunicação interna e a externa;
  • Estabelecer um canal exclusivo com o gestor da crise;
  • Um número ou central de atendimento exclusivo para suporte a vítimas e envolvidos;
  • Um vocábulo comum entre a equipe de comunicação e de fácil entendimento ao público envolvido;
  • Um relacionamento adequado com autoridades externas como: bombeiros; hospitais; polícia; defesa civil e outros relacionados;

Além dos tópicos mencionados são imprescindíveis a clareza e transparência na comunicação, de nada adianta comunicar bem, se a mensagem não é verdadeira.

Como é possível ver pela internet, nossos incidentes estão servindo como base para estudos e estatísticas no mundo todo e nós, será que estamos aprendendo?

Crisis Communication Plan 1
Crisis Communication Plan 2
Glossário da Defesa Civil

Crisis Communication

Os últimos incidentes em nosso país, como a queda do avião do 747-800 da gol; acidente na linha amarela do metro paulista; crise no sistema aéreo brasileiro e o mais recente acidente em fábrica de cimento mineira, onde o desabamento de um andaime deixou três mortos e até o momento a controladora da empresa não se pronunciou, nos levam a pensar em um problema sério em nossa cultura de gerenciamento de crises.


Não estamos preparados para a comunicação clara destes incidentes, e como sabemos, um plano de comunicação adequado é essencial para um gerenciamento de crise adequado. Os problemas de comunicação poderiam ser evitados se investíssemos em um plano de comunicação em situações de crise.


Segundo o glossário da Defesa Civil: crise é uma manifestação violenta e repentina de ruptura de equilíbrio. Momento perigoso e decisivo. Situação que implica a ruptura da normalidade ou do equilíbrio dinâmico de um sistema e favorece sua desorganização.


Um plano de comunicação de crises eficiente deve possuir no mínimo os seguintes itens:




  • Uma matriz de acionamento (call tree) com os principais contatos e ordem de acionamento;



  • Uma equipe treinada e capacitada para uma comunicação adequada da crise;



  • Definir os canais de comunicação para atingir cada público, considerando a comunicação interna e a externa;



  • Estabelecer um canal exclusivo com o gestor da crise;



  • Um número ou central de atendimento exclusivo para suporte a vítimas e envolvidos;



  • Um vocábulo comum entre a equipe de comunicação e de fácil entendimento ao público envolvido;



  • Um relacionamento adequado com autoridades externas como: bombeiros; hospitais; polícia; defesa civil e outros relacionados;



Além dos tópicos mencionados são imprescindíveis a clareza e transparência na comunicação, de nada adianta comunicar bem, se a mensagem não é verdadeira.


Como é possível ver pela internet, nossos incidentes estão servindo como base para estudos e estatísticas no mundo todo e nós, será que estamos aprendendo?



Crisis Communication Plan 1
Crisis Communication Plan 2
Glossário da Defesa Civil

10 de janeiro de 2007

Disaster Recovery and Virtualization

Um dos assuntos que tem se falado muto sobre recuperação de desastres é a utilização de recursos de virtualização na estratégia de recuperação de desastres. Apesar de não ser um grande especialista em consolidação/virtualização de servidores, acredito que realmente seja uma solução bem interessante.

Uma solução de virtualização basicamente consiste em “emular” várias maquinas dentro de apenas um ambiente. Ou seja, com apenas uma infra-estrutura de hardware você pode rodar vários ambientes.



A confiabilidade e desempenho desses ambientes emulados estarão diretamente associados a sua infra-estrutura de hardware que suporta ambientes de virtualização como Vmware, Microsoft Virtual Server, Xen e outros. Ai que entra a aposta de alguns profissionais em ambientes virtualizados para solução de recuperação de desastres.



Começamos pelo simples:

Eu posso criar imagens de backup do meu ambiente e manter na mesma maquina, como estou trabalhando com apenas uma maquina é muito mais barato e simples montar um ambiente de alta-disponibilidade, implementando discos hot-swap, fontes e outros componentes redundantes. Caso aconteça problemas de software, eu rapidamente disponibilizo uma nova “imagem”.

Missão crítica:

A solução anterior estaria baseada em apenas uma maquina, caso o site sofresse um incidente que inviabilizasse a utilização do ambiente, tudo estaria comprometido.

Uma solução de missão crítica precisaria de algo mais complexo, como um server que controlasse dois ambientes virtualizados, um ambiente no site principal e outro em um site alternativo. Com uma solução dessa um ambiente estaria operando em um site alternativo rapidamente e sem muita dor de cabeça em um incidente que afetasse todo o site principal.

Essa solução também exige cuidados, principalmente com a maquina que controla os ambientes, mas, com certeza é muito mais simples e barato que uma solução de sincronização de dados, ou redundância de catálogos de backup. Para recuperar a maquina que controla os ambientes virtualizado, bastaria conectividade com os ambientes e qualquer hardware que suportasse a instalação do ambiente de controle, porque uma das características da virtualização é não depender da característica do hardware.

Algumas considerações:

Deve-se ter cuidado com a consolidação dos serviços, instalar vários ambiente em uma maquina pode indisponibilizar o serviço para vários clientes, isso pode ser catastrófico se o RTO (Recovery Time Objective – Tempo que o processo pode ficar indisponível sem afetar o negócio) do processo que esse ativo suporta for menor que o tempo necessário para recuperação desse ambiente.

Mesmo diminuindo muito o tempo de restauração com algumas soluções de virtualização, uma coisa é ficar indisponível um processo com um RTO de 6 horas, outra coisa é ficar indisponível um processo com RTO de 6, mais alguns com RTO de poucos minutos.

Outra coisa a se preocupar é a transferência de I/O, alguns especialistas afirmam que um ambiente virtualizado não se dá muito bem com sistemas que realizam muitos I/O, como banco de dados.

Além das características técnicas, eu ainda vejo outras características interessantes para recuperação de desastres:

Dependência muito menor de capacidade técnica dos analistas, sendo que, é relativamente mais simples restaurar uma maquina virtual, do que restaurar uma maquina inteira;

Necessidade muito menor de procedimentos de recuperação de desastres, poderíamos documentar o procedimento de restauração do ambiente virtualizado, ficando o procedimento de restauração total em segundo plano, não excluindo a necessidade de elaborar;

Testes funcionais, onde o ambiente é “desligado” no ambiente principal e “ligado” no ambiente alternativo são executados em menor tempo e com custo menor.

Consolidação de hardware

Uma tendência na consolidação de hardware são as Blades, maquinas onde você vai acrescentando lâminas que são servidores dentro de um chassi e consomem menos recursos e espaço. Segundo o IDC as maquinas Blades chegaram a 25% de participação no mercado até 2010.



Links Relacionados

Virtualização por wikipedia
Portal sobre virtualização
Vmware
Virtual Server
Xen

Disaster Recovery and Virtualization

Um dos assuntos que tem se falado muto sobre recuperação de desastres é a utilização de recursos de virtualização na estratégia de recuperação de desastres. Apesar de não ser um grande especialista em consolidação/virtualização de servidores, acredito que realmente seja uma solução bem interessante.

Uma solução de virtualização basicamente consiste em “emular” várias maquinas dentro de apenas um ambiente. Ou seja, com apenas uma infra-estrutura de hardware você pode rodar vários ambientes.



A confiabilidade e desempenho desses ambientes emulados estarão diretamente associados a sua infra-estrutura de hardware que suporta ambientes de virtualização como Vmware, Microsoft Virtual Server, Xen e outros. Ai que entra a aposta de alguns profissionais em ambientes virtualizados para solução de recuperação de desastres.



Começamos pelo simples:

Eu posso criar imagens de backup do meu ambiente e manter na mesma maquina, como estou trabalhando com apenas uma maquina é muito mais barato e simples montar um ambiente de alta-disponibilidade, implementando discos hot-swap, fontes e outros componentes redundantes. Caso aconteça problemas de software, eu rapidamente disponibilizo uma nova “imagem”.

Missão crítica:

A solução anterior estaria baseada em apenas uma maquina, caso o site sofresse um incidente que inviabilizasse a utilização do ambiente, tudo estaria comprometido.

Uma solução de missão crítica precisaria de algo mais complexo, como um server que controlasse dois ambientes virtualizados, um ambiente no site principal e outro em um site alternativo. Com uma solução dessa um ambiente estaria operando em um site alternativo rapidamente e sem muita dor de cabeça em um incidente que afetasse todo o site principal.

Essa solução também exige cuidados, principalmente com a maquina que controla os ambientes, mas, com certeza é muito mais simples e barato que uma solução de sincronização de dados, ou redundância de catálogos de backup. Para recuperar a maquina que controla os ambientes virtualizado, bastaria conectividade com os ambientes e qualquer hardware que suportasse a instalação do ambiente de controle, porque uma das características da virtualização é não depender da característica do hardware.

Algumas considerações:

Deve-se ter cuidado com a consolidação dos serviços, instalar vários ambiente em uma maquina pode indisponibilizar o serviço para vários clientes, isso pode ser catastrófico se o RTO (Recovery Time Objective – Tempo que o processo pode ficar indisponível sem afetar o negócio) do processo que esse ativo suporta for menor que o tempo necessário para recuperação desse ambiente.

Mesmo diminuindo muito o tempo de restauração com algumas soluções de virtualização, uma coisa é ficar indisponível um processo com um RTO de 6 horas, outra coisa é ficar indisponível um processo com RTO de 6, mais alguns com RTO de poucos minutos.

Outra coisa a se preocupar é a transferência de I/O, alguns especialistas afirmam que um ambiente virtualizado não se dá muito bem com sistemas que realizam muitos I/O, como banco de dados.

Além das características técnicas, eu ainda vejo outras características interessantes para recuperação de desastres:

Dependência muito menor de capacidade técnica dos analistas, sendo que, é relativamente mais simples restaurar uma maquina virtual, do que restaurar uma maquina inteira;

Necessidade muito menor de procedimentos de recuperação de desastres, poderíamos documentar o procedimento de restauração do ambiente virtualizado, ficando o procedimento de restauração total em segundo plano, não excluindo a necessidade de elaborar;

Testes funcionais, onde o ambiente é “desligado” no ambiente principal e “ligado” no ambiente alternativo são executados em menor tempo e com custo menor.

Consolidação de hardware

Uma tendência na consolidação de hardware são as Blades, maquinas onde você vai acrescentando lâminas que são servidores dentro de um chassi e consomem menos recursos e espaço. Segundo o IDC as maquinas Blades chegaram a 25% de participação no mercado até 2010.



Links Relacionados


Virtualização por wikipedia
Portal sobre virtualização
Vmware
Virtual Server
Xen

8 de janeiro de 2007

Security Developer

Um estudo do NIST (National Institute of Standarts Technology) aponta que 43% das vulnerabilidades em aplicações na WEB estão associadas ao PHP, O NIST atribui isso à utilização por profissionais amadores.

Eu classificaria como alienados, e não amadores. Porque alienados e não amadores? Porque muitos profissionais são profissionais de desenvolvimento e não dão a mínima para o resto.

Costumo dizer que para deixar um desenvolvedor feliz basta um acesso com perfil de administrador e um fone de ouvido para ele se isolar do mundo. Exatamente, se isolar, pois, muitos não sabem o funcionamento básico de um PC, muito menos conceitos de arquitetura e segurança.

A grande maioria dos desenvolvedores só se preocupam em codificar, criar código funcional e cumprir prazos. Basta pegar códigos em sites especializados como: www.phpclasses.org, www.planet-source-code.com entre outros, pode-se encontrar códigos fantásticos, mas, com erros básicos de segurança.

Tudo porque a maioria dos desenvolvedores ainda não se deu conta da necessidade de desenvolver código seguro ou não estamos conseguindo aplicar controles para mitigar isso.

7 de janeiro de 2007

Security Developer

Um estudo do NIST (National Institute of Standarts Technology) aponta que 43% das vulnerabilidades em aplicações na WEB estão associadas ao PHP, O NIST atribui isso à utilização por profissionais amadores.

Eu classificaria como alienados, e não amadores. Porque alienados e não amadores? Porque muitos profissionais são profissionais de desenvolvimento e não dão a mínima para o resto.

Costumo dizer que para deixar um desenvolvedor feliz basta um acesso com perfil de administrador e um fone de ouvido para ele se isolar do mundo. Exatamente, se isolar, pois, muitos não sabem o funcionamento básico de um PC, muito menos conceitos de arquitetura e segurança.

A grande maioria dos desenvolvedores só se preocupam em codificar, criar código funcional e cumprir prazos. Basta pegar códigos em sites especializados como: www.phpclasses.org, www.planet-source-code.com entre outros, pode-se encontrar códigos fantásticos, mas, com erros básicos de segurança.

Tudo porque a maioria dos desenvolvedores ainda não se deu conta da necessidade de desenvolver código seguro ou não estamos conseguindo aplicar controles para mitigar isso.