Arquitetura TI


Qualidade de software é um tema que vem sendo abordado e evoluído há muito tempo em engenharia e arquitetura de software, tanto em relação à qualidade do processo (da concepção à construção e à manutenção) quanto em relação à qualidade do produto, o software em si.

Nas décadas de 70 a 90, organizações internacionais de normatização e padronização — como ISO/IEC, ANSI, IEEE e outros — definiram qualidade de produto como:

A totalidade dos recursos, aspectos e características de um produto ou serviço que suportam a sua capacidade de satisfazer os requisitos dados, as expectativas e as necessidades explícitas e implícitas.

Em seu estudo sobre qualidade de software, Software Quality: Definitions and Strategic Issues (PDF, abril 1996), o pesquisador Ronan Fitzpatrick propõe uma visão mais moderna e ousada de qualidade do produto de software, definindo assim:

Qualidade de software é a medida em que um conjunto definido pela indústria de características desejáveis são incorporadas em um produto, de modo a aprimorar seu desempenho durante sua existência.

O Modelo de Qualidade de Software proposto por James A. McCall e outros, em 1977, foi um dos primeiros largamente difundidos neste campo. Ele organiza os critérios de qualidade de software em três pontos de vista, a saber:

  • Operação: características relativas ao uso do produto.
  • Revisão: capacidade do produto ser modificado e evoluído.
  • Transição: adaptabilidade a novos e diferentes ambientes.

Os critérios de qualidade elencados no Modelo de McCall em cada ponto de vista estão listados na tabela a seguir.

Operação Revisão Transição
Correção Manutenibilidade Portabilidade
Confiabilidade Flexibilidade Reusabilidade
Eficiência Testabilidade Interoperabilidade
Integridade
Usabilidade

Atualmente existem outros modelos de avaliação da qualidade do produto de software, em especial o padrão internacional de engenharia de software ISO/IEC 9126, que trata da Qualidade do Produto. A norma se divide em quatro partes, sendo a primeira uma visão geral do modelo de qualidade, e as outras três, os grupos de métricas definidas para este modelo:

  • Parte 1: Modelo de qualidade.
  • Parte 2: Métricas externas.
  • Parte 3: Métricas internas.
  • Parte 4: Métricas de qualidade em uso.

Qualidade externa diz respeito ao produto final como percebido pelo usuário, enquanto qualidade interna se refere à estrutura e às características do produto em seu projeto e construção.

Mais recentemente, desde 2005, as normas ISO/IEC 9126 e a série ISO/IEC 14598, de avaliação de produto de software, tem sido integradas na nova Série de normas ISO/IEC 25000 – Software Engineering — Software product Quality Requirements and Evaluation (SQuaRE), que tem seu núcleo principal composto por cinco divisões:

  • ISO/IEC 2500n – Divisão Gestão da Qualidade;
  • ISO/IEC 2501n – Divisão Modelo de Qualidade;
  • ISO/IEC 2502n – Divisão Medição da Qualidade;
  • ISO/IEC 2503n – Divisão Requisitos de Qualidade;
  • ISO/IEC 2504n – Divisão Avaliação da Qualidade.

Além deste núcleo principal, o SQuaRE contempla extensões, que tratam de temas específicos, como ISO/IEC 25051, SQuaRE Requisitos para qualidade de produtos comerciais de prateleira (Commercial Off-The-Shelf – COTS), e ISO/IEC 2506n, SQuaRE Common Industry Format (CIF) para usabilidade.

Os critérios de qualidade no Modelo de McCall são muito similares aos preconizados por outros modelos para classificação de atributos de qualidade de software, como o FURPS+ (Robert Grady e Deborah Caswell, HP, 1987-1992) e o da própria ISO/IEC 9126, quanto a requisitos não funcionais:

FURPS+ ISO 9126 McCall
Functionality (Funcionalidade) Funcionalidade - (n/a, funcional)
Usability (Usabilidade) Usabilidade Usabilidade (Operação)
Reliability (Confiabilidade) Confiabilidade Correção,
Confiabilidade,
Integridade (Operação)
Performance (Desempenho) Eficiência Eficiência (Operação)
Supportability (Suportabilidade) Manutenibilidade Manutenibilidade,
Flexibilidade,
Testabilidade (Revisão)
+ (outros requisitos/restrições) Portabilidade Portabilidade,
Interoperabilidade,
Reusabilidade (Transição)

.

Vale ressaltar que qualidade do software, abordada aqui, se entende por qualidade do produto de software em si, o que é distinto de qualidade do processo de software, que diz respeito à qualidade das atividades e forma pelas quais se produz software.

Para saber mais:

[Expandido em 02/07/2010.]

Tenho acompanhado relatórios de análise de mercado (panoramas, tendências) de pelo menos três segmentos em tecnologia da informação (TI):

  • Servidores de Aplicação;
  • Soluções de BI (Business Intelligence / inteligência de negócios), análise de dados e DW (data warehouse / armazém de dados);
  • Soluções de gestão de conteúdo, ECM (Enterprise Content Management) / WCM (conteúdo Web).

Institutos e relatórios de análise de mercado

Os principais institutos que fazem análises de mercado de TI — hardware, software e serviços — são:

  • Gartner – O Gartner Research resume a consolidação de determinado mercado posicionando os fornecedores em um gráfico denominado Quadrante Mágico (Magic Quadrant). Considerando os eixos completude de visão (abrangência) e habilidade de executar (eficácia) dos fornecedores e seus produtos, divide o espaço de mercado em quatro quadrantes: líderes, desafiantes, visionários e players de nicho. Ver Gartner Blog Network.
  • Forrester Research – seu gráfico sintético de mercado é o Forrester Wave (Onda). Seus eixos são similares ao do Gartner, estratégia (abrangência) e oferta atual (eficácia), mas divide o espaço de mercado em ondas concêntricas a partir do topo: líderes, sólido desempenho, contendores e apostas arriscadas; no gráfico, o tamanho do marcador de cada fornecedor indica sua presença de mercado. Ver Forrester Blogs.
  • Ovum, marca do Datamonitor Group para TIC – em seus relatórios inclui o gráfico consolido Matriz de Decisão (Decision Matrix).
  • IDC (com presença no Brasil) – faz análises de mercado de tecnologia da informação. Ver IDC eXchange blogs.

Existem diversos outros, como Aberdeen Group (ver Aberdeen Blog), Yankee Group (especializado em conectividade; ver Yankee Blog), Burton GroupIT1 (ver blogs sobre Plataformas de aplicação, Redes, Segurança, Conteúdo e outros), iSuppli, Standish Group (especializado em gestão de projetos de TI), Real Story Group (especializado em gestão de conteúdo; ver CMS Watch e RS Blog) etc.

Embora os relatórios de mercado de institutos de análise sejam vendidos e bem caros, alguns grandes fornecedores licenciam e franqueiam cópias gratuitas destes relatórios, quando estão bem posicionados:

Mercado de Análise de Dados, BI e DW

O mercado de manipulação e análise de grande volume de dados tem vários segmentos: armazém de dados (DW – data warehouse), inteligência de negócios (BI – business intelligence, que o Forrester prefere denominar BPS – business performance solutions), análise, análise preditiva, mineração de dados.

Os fornecedores gigantes “de sempre”, como Oracle, IBM e Microsoft, continuam sua estratégia agressiva de aquisições em busca da hegemonia e consolidação do mercado. Em alguns segmentos específicos, empresas como SAS Institute, SAP, Teradata e outras mantém sua forte presença especializada. Existem diversos relatórios de análise nesse mercado.

Fonte: Quadrante Mágico para Business Intelligence Platforms, 2010-01-29, por Rita L. Sallam, Bill Hostmann, James Richardson e Andreas Bitterer, Gartner. Reproduzido por Oracle (ver BI blog), por SAS, por Microstrategy, por QlikView.

Fonte: Quadrante Mágico para Data Warehouse Database Management Systems, 2010-01-28, por Donald Feinberg e Mark A. Beyer, Gartner. Reproduzido por Oracle, por Microsoft.

Fonte: The Forrester Wave™: Predictive Analytics And Data Mining Solutions, Q1 2010, 2010-02-04, por James Kobielus, Forrester. Reproduzido por SAS Institute, por Oracle.

Fonte: The Forrester Wave™: Business Performance Solutions, Q4 2009, 2009-11-19, por Paul D. Hamerman, Forrester. Reproduzido por Oracle (ver nota de imprensa).

Artigos relacionados deste blog sobre análise de dados (BI e DW):

Mercado de Servidores de Aplicação

Depois da aquisição da BEA pela Oracle e a adoção da renomada família de produtos WebLogic como motor em servidores de aplicação da empresa (em detrimento do inexpressivo Oracle Application Server), o mercado se consolidou de vez.

Oracle (WebLogic), IBM (WebSphere) e Microsoft (IIS + .NET Framework) reinam isolados na liderança dos produtos comerciais, seguidos pelo único competidor de peso oriundo do mundo software livre: Red Hat (JBoss). Exceto a Microsoft, os demais líderes se baseiam na plataforma tecnológica Java EE.

Fonte: Quadrante Mágico para Enterprise Application Servers, 2009-09-24, por Yefim V. Natis, Massimo Pezzini e Kimihiko Iijima, Gartner. Reproduzido por Microsoft, por Microsoft India (PDF) em Bitpipe, por Oracle (ver nota de imprensa), por RedHat (form), por Caucho (PDF).

Artigos relacionados deste blog sobre servidores de aplicações:

Mercado de Gestão de Conteúdo Corporativo (ECM) e Web (WCM)

O relatório do Gartner sobre o mercado de Gestão de Conteúdo Corporativo (Eenterprise Content Manamgement – ECM) e gestão arquivística (records management) deve ser atualizado no terceiro quadrimestre de 2010.

Já a CMS Watch, agora parte do Real Story Group, atualizou em junho seu interessante 2010 Content Technology Vendor Map (PDF 42k, JPG 868k), no estilo “mapa de metrô” onde as linhas representam segmentos de gestão de conteúdo — documentos/corporativo, Web, portais, colaboração, mídia digital etc.

CMS Watch - 2010 Content Vendor Map

Sobre o segmento específico de conteúdo Web (Web Content Management – WCM), em agosto de 2009 o Gartner lançou relatório atualizado em agosto de 2009. Ver Parsing Gartner’s 2009 Magic Quadrant for Web Content Management, por Irina Guseva, 2009-08-10, CMS Wire.

Fonte: Quadrante Mágico para Web Content Management, 2009-08-05, por Mick MacComascaigh, Toby Bell e Mark R. Gilbert, Gartner. Reproduzido por Microsoft, por Day (PDF), por Oracle.

Interessante comparar os líderes específicos em WCM com o mercado mais abrangente de ECM. Enquanto Oracle e Open Text mantêm liderança nos dois enfoques, os outros líderes de ECM — IBM, EMC e Microsoft — em WCM se tornam desafiantes por lhes faltar abrangência nesse foco específico. Já Autonomy e SDL surgem como líderes em WCM.

Já o relatório do Forrester no 2º trimestre de 2009, teve foco específico para sites externos. Pelos critérios do Forrester, SDL Tridion é o maior líder, seguido de FatWire e Interwoven (adquirida pela Autonomy em janeiro de 2009), enquanto Open Text, Vignette (ainda não contemplava a aquisição da Vignette pela Open Text ocorrida em maio daquele ano), Oracle, Day Software e Microsoft aparecem como desafiantes (sólido desempenho).

Fonte: The Forrester Wave™: Web Content Management For External Sites, 2009-06-01, por Stephen Powers e Tim Walters, Ph.D., para profissionais de gestão da informação e conhecimento, Forrester. Reproduzido por SDL Tridion (PDF, requer identificação; ver Analyst ReportsForrester on SDL, press release).

O relatório do Forrester traz as seguintes constatações:

  • SDL Tridion, Autonomy Interwoven, e FatWire lideram com um rico conjunto de componentes WCM.
  • Vignette e Day oferecem funcionalidade similar aos líderes, mas a estabilidade destes fornecedores ainda é uma questão.
  • Open Text e Oracle oferecem funcionalidade sólida em WCM dentro de um portfólio ECM.
  • Microsoft ainda não oferece funcionalidade WCM comparável aos líderes, mas evoluiu os recursos do SharePoint para Web sites.
  • O WCM básico da IBM se integra ao WebSphere Portal, enquanto EMC foca uma estratégia de conteúdo unificado e ECM.

O relatório do Forrester mostra ainda que uma pesquisa com 187 tomadores de decisão em TI elencou que as duas principais diretrizes para a adoção de gerenciamento de conteúdo Web são: melhorar a experiência de seus usuários Web (63%) e redução de custos com operação (publicação) Web (37%).

Artigos relacionados deste blog e de CMS Wire sobre gestão documental e de conteúdo:

Há pouco tempo ouvi de um programador web que ele estava em um dilema quando foi demandado a construir uma aplicação com facilidades de usabilidade e, ao mesmo tempo, acessível a deficientes visuais.

Para o objetivo da boa usabilidade, o programador introduziu recursos baseados em Ajax de forma a tornar a interface mais dinâmica e interativa. Bibliotecas Javascript como Scriptaculous, Prototype e jQuery, e componentes de frameworks em Java, ASP.NET e PHP oferecem amplo uso de Ajax.

A técnica de Ajax é uma das principais engrenagens para RIA (Rich Internet Applications), as Aplicações Internet Ricas. Consiste basicamente em programar eventos Javascript na página web que disparam requisições HTTP assíncronas, que por sua vez retornam dados (em formato XML, JSON etc.) para atualizar dinamicamente a página (via seu modelo de objetos — o DOM). Isso oferece ao usuário respostas imediatas e sensíveis ao contexto da sua interação. Em suma, mais interatividade.

Mas ao utilizar Javascript modificando dinamicamente a interface e o conteúdo das páginas web, parte da aplicação ficou inacessível a pessoas com deficiência, principalmente aqueles que necessitam de um leitor de tela e os que não conseguem utilizar mouse.

O dilema então é: Usabilidade × acessibilidade podem conviver harmonicamente?

Um padrão emergente do W3C, Consórcio de Padronização da Web, visa trazer um solução para isto. É o Accessible Rich Internet Applications (WAI-ARIA), RIA Acessível. Atualmente o padrão está em versão preliminar (public working draft) WAI-ARIA 1.0 de 15 de dezembro de 2009.

O navegador Mozilla Firefox 3 provê suporte quase total a WAI-ARIA — as versões 1.5 e 2 já ofereciam algum suporte. Outros navegadores que oferecem suporte parcial ou planejam incluir suporte a WAI-ARIA incluem Internet Explorer 8, Opera e Apple Safari (Web Kit).

Para saber mais:

O interessante artigo A ITIL E A ISO/IEC 20000 – O que elas têm em comum?, por Luciene Rosa, publicado em 11 de janeiro no portal de conteúdo da empresa Módulo, aborda e correlaciona dois dos principais modelos amplamente reconhecidos para o Gerenciamento de Serviços de TI (GSTI): ITIL e ISO 20000.

ITIL — Information Technology Infrastructure Library — é um conjunto de melhores práticas aplicáveis a infraestrutura, operação e manutenção de serviços de tecnologia da informação (TI). Foi desenvolvido no final dos anos 1980 pela CCTA (Central Computer and Telecommunications Agency) e atualmente está sob custódia do OGC (Office for Government Commerce) da Inglaterra.

Já a NBR ISO/IEC 20000 — Tecnologia da Informação – Gerenciamento de serviços — é a primeira norma internacional que visa definir um padrão mundial para o GSTI, através da uniformização dos conceitos e da visão dos processos que o implementam. Oriunda do padrão britânico BS 15000, foi evoluída para norma internacional pelo ISO/IEC em 2005, e publicada em português no Brasil pela ABNT em 2008.

Ficou de fora do artigo citado o modelo COBIT — Control Objectives for Information and related Technology — publicado pelo IT Governance Institute (ITGI), Information Systems Audit and Control Association (ISACA), EUA, que tem foco na gestão dos serviços de TI, abordando aspectos como controle, segurança e governança nos domínios de planejamento e organização, aquisições e implementação, entrega e suporte, e monitoramento e avaliação.

Para saber mais: referências sobre Governança e Gerenciamento de Serviços de TI, por Márcio d’Ávila.

Finalmente! Esperava pela atualização das análises do mercado de ECM pelos principais institutos, desde a aquisição da Vignette pela Open Text, e foram publicados o Quadrante Mágico do Gartner, e o Forrester Wave, para 2009.

No que os dois relatórios 2009 tem consenso: EMC, IBM, Oracle e Open Text mantém forte liderança nesse mercado.

No que divergem: Para o Forrester, Microsoft avança e ganha momento mas tem diversas lacunas de funcionalidade, se posicionando apenas como forte competidor. Além disso, por seus critérios Hyland e HP são alternativas competitivas no nicho de conteúdo transacional e de negócios, sendo competentes em document management, imaging and capture, e records management; mas ficam devendo forte suporte em áreas como Web (WCM), document output management e digital asset management. E o open source Alfresco, embora mais atrás, tem aumentado sua amplitude na cobertura de ECM para desafiar os players proprietários como alternativa de baixo custo.

Já no critério do Gartner, Microsoft se posiciona tão líder quanto os outros quatro grandes, e Hyland (OnBase) e Autonomy (que adquiriu a Interwoven em março 2009) são respectivamente um desafiante e um visionário muito próximos de adentrarem o quadrante líder.

Fonte: Forrester, The Forrester Wave™: Enterprise Content Management Suites, Q4 2009 [PDF] (outro endereço); 2009-11-12; por Stephen Powers, Brian W. Hill, and Craig Le Clair; para profissionais de Information & Knowledge Management; reproduzido por Oracle.

Fonte: Gartner, Quadrante Mágico para Enterprise Content Management, 2009 [PDF]; 2009-10-15; por Toby Bell, Karen M. Shegda, Mark R. Gilbert, Kenneth Chin, Mick MacComascaigh; reproduzido por EMC, também por Oracle e por Microsoft.

Veja também o relatório do instituto Datamonitor Documents and Records Management: An Analysis of Market Trends to 2013 (Strategic Focus), fevereiro 2009, em Scribd.

Records Management / Gestão Arquivística Documental

No meio do ano o Forrester já publicara uma análise específica sobre os fornecedores de soluções em Records Management (RM), que em português podemos chamar de Gestão Arquivística de Documentos (GAD). GAD/RM é um dos componentes do universo de ECM.

De acordo como normas como o padrão internacional ISO 15489:2001 – Information and documentation — Records management Part 1: General e Part 2: Guidelines (originário do Padrão Australiano – AS), assim como normas e legislação do Brasil, os documentos arquivísticos são a informação registrada, produzida e recebida no decorrer das atividades de um órgão, entidade ou pessoa, dotada de organicidade e que sirva de prova dessas atividades. Os documentos e arquivos podem ser públicos (relativos ao poder, órgãos, agentes, empresas e serviços públicos) ou privados.

E a gestão arquivística consiste nos procedimentos referentes à produção, tramitação, uso, avaliação e arquivamento destes documentos em fase corrente e intermediária, visando a sua eliminação ou recolhimento para guarda permanente. (Resolução nº 20 Conarq, Art. 1º) Um elemento essencial para a gestão arquivística é a manutenção e aplicação de uma tabela de classificação (por assunto), temporalidade e destinação (ciclo de vida) de documentos.

Os quatro grandes de ECM também se posicionam na liderança desse segmento, mas existem outros dois líderes até mais fortes que os demais quando o foco é RM/GAD: Computer Associates (CA) e Autonomy (baseada na aquisição da Meridio em 2007).

Fonte: Forrester, The Forrester Wave™: Records Management, Q2 2009 [PDF]; 2009-06-23; por Brian W. Hill; para profissionais de Information & Knowledge Management; reproduzido por Oracle.

A área de Records Management nos Estados Unidos é muito direcionada em torno dos padrões de conformidade exigidos pelo Departamento de Defesa Americano (DoD). Mas os fornecedores de GAD também tem buscado certificação aderente aos dois mais proeminentes modelos mundiais: o Victorian Electronic Records Strategy (VERS) do Governo Australiano, e o MoReq2 – Model Requirements for the management of electronic records Europeu.


O MoReq2 é originário do modelo inglês MoReq. Estes modelos foram a base de referência para o padrão brasileiro e-ARQ Brasil [PDF] do CONARQ – Conselho Nacional de Arquivos, bem como o recente MoReq-Jus – Modelo de Requisitos para Sistemas Informatizados de Gestão de Processos e Documentos do Poder Judiciário do CNJ – Conselho Nacional de Justiça.

Para saber mais:

Ontem falei da atualização de mercado do relatório de Quadrante Mágico do Gartner para ECM/WCM.

Hoje atualizo os quadrantes mágicos para as plataformas de inteligência de negócios (business intelligence – BI), desde meu artigo com a visão geral das ferramentas e do mercado de BI em 2008.

Magic Quadrant for Business Intelligence Platforms, 2009, por James Richardson, Kurt Schlegel, Rita L. Sallam e Bill Hostmann, 2009-01-16, Gartner. Reproduzido por MicroStrategy (PDF, requer registro gratuito); Oracle (Press: Oracle Placed in Leaders Quadrant in Latest Business Intelligence Platforms Magic Quadrant, 2009-01-22; Industry Analyst Reports sobre Oracle BI).

Fonte: Gartner, janeiro 2009.

Líderes:
IBM (Cognos), Oracle, SAS, Microsoft, SAP (Business Objects), Information Builders, Microstrategy.

Magic Quadrant for Corporate Performance Management Suites, 2009, por Neil Chandler, Nigel Rayner, John E. Van Decker e James Holincheck, 2009-04-30, Gartner. Reproduzido por Oracle (Press: Leading Analyst Firm Positions Oracle’s Hyperion in Leaders Quadrant for Corporate Performance Management Suites, 2009-01-07; Industry Analyst Reports sobre Oracle EPM).

Fonte: Gartner, abril 2009.

Líderes: Oracle (Hyperion), SAP (Business Objects), IBM (Cognos).

Em maio, comentei sobre a Fusões de gigantes também no mercado de ECM, quando ocorreu a compra da Vignette pela Open Text. Aproveitei para fazer um panorama atual sobre o mercado de Gestão de Conteúdo Corporativo (ECM).

Em 5 de agosto último saiu o Quadrante Mágico para Web Content Management (WCM) do Garner, para o mercado de gestão de conteúdo web (um segmento específico do ECM), de autoria dos analistas Mick MacComascaigh, Toby Bell e Mark R. Gilbert, Gartner.

Fonte: Gartner, agosto 2009, reproduzido por Oracle (Industry Analyst Reports sobre Oracle ECM/WCM).

A Oracle se posiciona este ano como líder, emparelhada com Autonomy, Open Text e SDL.

Irina Guseva comentou a análise em Parsing Gartner’s 2009 Magic Quadrant for Web Content Management em artigo para CMS Wire, 2009-08-10.

E ainda neste mês de setembro deve sair o novo relatório anual do Gartner com o Quadrante Mágico para ECM 2009. Vamos aguardar que alguma das principais empresas fornecedoras divulgue a análise para o público.

[Atualizado em 2011-08-21, com referências do OWASP.]

Depois do incidente de segurança envolvendo o portal da operadora Vivo que abordei ontem, um artigo de hoje da IT Web tem tudo a ver: 5 lições de segurança, por Greg Shipley, Tyler Allison e Tom Wabiszczewicz, da empresa Neohapsis especializada em GRC (GRC em inglês), para InformationWeek EUA, 10/09/2009.

No artigo, os especialistas quebram o silêncio típico do mundo corporativo sobre segurança e trazem uma síntese de sua experiência em observação direta das brechas de segurança do mundo real onde realizaram investigações forenses, para ajudar as empresas a entender como essas brechas acontecem e o que se pode fazer sobre elas.

Eles ressaltam: “Após centenas de casos, podemos afirmar, sem sombra de dúvidas, que os ataques estão mais sofisticados do que nunca. Com agilidade, eles exploram controles de segurança falhos e práticas operacionais negligentes e, munidos com ferramentas comuns para gerenciamento de rede, adaptam malwares. Táticas e tecnologias de segurança da informação também progrediram, mas não no mesmo ritmo.”

O mais admirável é que os recursos para mitigar as brechas de segurança são métodos razoáveis e bem conhecidos. O que é preciso é um esforço para que esses métodos sejam implementados e continuamente praticados de forma mais ampla e efetiva pelas corporações.

Problema – vulnerabilidades e ameaças nas aplicações

O Website de uma empresa geralmente serve como porta de entrada para os ataques. Aplicativos web são a porta preferida dos invasores.

Isso porque equipes de TI em geral investem apenas em segurança do perímetro e do tráfego da rede, incluindo proteções clássicas como firewall, antivírus, antispam, IDS/IPS, SSH, HTTPS e VPN. E mesmo nestes casos, não fazem um monitoramento proativo e contínuo, nem tem um plano de resposta a incidentes consistente e efetivo. Por outro lado, mantém sistemas desatualizados e ignoram aplicativos falhos que podem, facilmente, ser explorados.

Códigos de software com pouca ou nenhuma preocupação com segurança desde sua concepção — o que passa inclusive pela escolha de tecnologias que já englobem conceitos e mecanismos nativos de segurança, robustez e proteção — escancaram brechas de segurança por todos os pontos das aplicações.

Nas aplicações corporativas internas, as maiores preocupações costumam ser com vazamento de informações e com uso e permissões indevidos — até mesmo maliciosos, no caso de colaboradores insatisfeitos ou despreparados, negligentes, imprudentes.

Mas quando as aplicações são externas, especialmente em portais, sítios e serviços web abertos à Internet, o universo de ameaças subitamente se expande para o mundo todo, para qualquer pessoa no planeta com acesso internet, algum tempo disponível e intenções que podem ir da curiosidade inconsequente ao crime.

Aplicações sem segurança tipicamente expõem vulnerabilidades amplamente conhecidas — do conhecimento de qualquer hacker de plantão — e graves como:

  • Autenticação vulnerável, com usuários e senhas fracas, pouco ou nenhum controle a tentativas de acesso “força bruta” etc.
  • Baixa granularidade de permissões, de forma que um vez acessado com usuário legítimo muitas vezes se permite acessar alguns serviços ou situações que não seriam efetivamente necessárias ou mesmo devidos àquele usuário.
  • Ausência de validação, consistência e crítica de dados no lado servidor, quando um usuário está com JavaScript desativado ou defeituoso no lado cliente.
  • Ausência de validação de condições limite nos tipos, formatos, valores e tamanhos recebidos em dados ou parâmetros fornecidos pelo usuário, permitindo ataques como Estouro de buffer e de pilha, Corrupção de memória, Negação de serviço (DoS).
  • Ausência ou insuficiência de tratamento robusto, inteligente e proativo de exceções na aplicação. Muitas vezes a maior parte das inúmeras situações de erro ou exceção possíveis são esquecidas, descartadas ou subestimadas pelos programadores.
  • Ausência de mecanismos de rastreabilidade e auditoria, como gravação de registros de log/históricos de acessos e ações do usuário e do próprio sistema.
  • Mecanismos de proteção (integridade e privacidade) de dados com criptografia ausentes, simplórios/precários, ou mal implementados.
  • Não evitar Injeção de código, Injeção de SQL, Injeção de HTML e Cross site scripting (XSS) nas entradas de dados e parâmetros fornecidos pelo cliente/usuário.
  • Utilizar ou permitir a Inclusão de arquivos locais (ou remotos).

A lista de possibilidades comuns poderia se estender. Mas por aí já se percebe que boa parte das aplicações na web são “queijos suíços” em potencial, em se tratando de abundância de furos de segurança.

Solução – informação e ferramentas desde o início

Ao abordarem que se deve levar segurança de TI a sério, os peritos apontam o caminho: “A melhor defesa de uma empresa é a integração da segurança no ciclo de vida de desenvolvimento de aplicativos. A criação de códigos com poucas falhas de segurança oferece um retorno maior do que se tentar reparar aplicativos em uso.”

A organização internacional Web Application Security Consortium (WASC) reúne um grupo de especialistas e praticantes de segurança e representantes de comunidades de código aberto, voltada para intercâmbio de idéias e organização e promoção de melhores práticas, em segurança de aplicação na World Wide Web. WASC consistentemente lança informação técnica, artigos, guidelines de segurança e outras documentações úteis sobre segurança de aplicações web.

Entre o material da WASC, destaco uma compilação com descrição de mais de 50 ameaças e vulnerabilidades em aplicações web, o Glossário de Segurança Web e o padrão de referência para avaliação de vulnerabilidades de aplicações web, Web Application Security Scanner Evaluation Criteria (WASSEC). O material é aberto, público e gratuito (em inglês).

Outra entidade dedicada a promover a melhoria da segurança em aplicações de software é a comunidade internacional Open Web Application Security Project (OWASP). Todas as ferramentas, documentação, fóruns e capítulos criados e mantidos pelo OWASP são livres, abertos e isentos.

Entre os projetos e material de referência mantidos pelo OWASP, destacam-se: Enterprise Security API (ESAPI), Development Guide, Ruby on Rails Security Guide, Secure Coding Practices – Quick Reference Guide, Application Security Verification Standard (ASVS), Code Review Guide, Testing Guide, OWASP Top Ten, AppSec FAQ Project, How To’s and Cheat Sheets, Software Assurance Maturity Model (SAMM), Comprehensive, Lightweight Application Security Process (CLASP).

Para a varredura e análise de vulnerabilidades em aplicações existem ferramentas para auxiliar e prover alguma automação e agilidade nos trabalhos. Há desde softwares livres como o Wapiti – Web application vulnerability scanner / security auditor e o OWASP Zed Attack Proxy, até produtos comerciais como IBM Rational AppScan e HP WebInspect / Application Security (veja também Web Application Scanners Comparison).

Também o padrão internacional ISO/IEC 15408: Information technology — Security techniques — Evaluation criteria for IT security é um conjunto de normas disponíveis gratuitamente.

O padrão ISO 15408 é baseado no Common Criteria for Information Technology Security Evaluation / Critérios Comuns para Avaliação de Segurança de Tecnologia da Informação (abreviado como Common Criteria ou CC). Este, por sua vez, é originado dos padrões para critérios de avaliação de segurança do Departamento de Defesa dos Estados Unidos (TSEC), Canadá (CTCSEC) e Europa (ITSEC, França, Alemanha, Países Baixos e Reino Unido).

CC é um framework padronizado de critérios para especificação, implementação e avaliação de requisitos e propriedades de segurança em sistemas de informação e produtos de TI. O rigor da avaliação é medido em sete níveis, Evaluation Assurance Level, EAL1 a EAL7. Cada EAL consiste em um pacote ou conjunto de requisitos de segurança, denominados Security Assurance Requirements (SARs).

Até eu dou modestas contribuições de informação sobre boas práticas que podem garantir um código de aplicação mais segura, nos artigos: Eficiência e segurança com SQL parametrizado e Senhas armazenadas com segurança.

Não faltam informação e recursos livremente disponíveis, em abundância e muitas delas de alta qualidade e fácil utilização, para que as empresas e instituições comecem a praticar e adotar a construção de aplicações seguras.

Essa preocupação é especialmente crítica na web, que cada vez mais se apresenta como um veículo de serviços e aplicações em larga escala e abrangência.

Empresas do meu Brasil (e do mundo!), cuidem seriamente da segurança de suas aplicações e serviços, especialmente na internet!

Para saber mais:

  • Referências sobre Segurança Digital e Privacidade, incluindo Informação sobre segurança, Entidades e centros, Criptografia, Infraestrutura de chaves públicas (ICP), Malware, Segurança de e-mail, Firewall, Prevenção e detecção de intrusos, Padrões, Protocolos e aplicações, Privacidade, Bibliografia e outros tópicos relacionados.

O mundo do software vem ficando cada vez mais amplo, abrangente e complexo. Se você olhar o universo abrangido por tecnologias como Java, verá que é difícil “enxergar até o fim de seu horizonte”.

Com isso, a curva de aprendizagem de tecnologias para desenvolvimento de software cresce muito. Em contrapartida vão surgindo iniciativas de melhores práticas e modelos prontos para simplificar situações comuns.

Duas forças nesse sentido da simplificação ou organização de situações comuns em software são os Patterns e os Frameworks.

Software Patterns são padrões conceituais que documentam a caracterização e a solução para problemas comuns (genéricos) de construção de software. Visam definir um idioma comum para estas situações (em vez de descrever a situação/problema/solução, você cita o nome dado a ela) e evitar que se “reinvente a roda”.

Existem patterns voltados para modelagem/desenho — design patterns, arquitetura de software — architectural patterns, integração — integration patterns. Embora não sejam específicos do paradigma orientado a objetos, os design patterns surgiram na área de software contemporâneos a esse paradigma e por isso muitas vezes são definidos usando conceitos de OO e mais facilmente aplicáveis em linguagens com suporte a OO.

Frameworks são arcabouços de construção de software. Ainda não encontrei grandes definições para frameworks, mas eu entendo framework como um modelo de trabalho predefinido para implementação de determinado aspecto de software. Um framework costuma englobar bibliotecas, componentes, APIs, estruturas, mecanismos e uma proposição (ou às vezes imposição) de forma de trabalho.

Enquanto patterns são modelos conceituais, frameworks são soluções práticas e específicas para determinada situação e tecnologia/linguagem. Freqüentemente um framework se baseia ou implementa um ou mais patterns aplicáveis àquela situação. Frameworks visam facilitar e acelerar o desenvolvimento de software.

[Texto originalmente postado na lista de discussão MGJUG-users, em 26/jul/2008.]

Livros sobre software patterns:

Para saber mais:

A Sun está distribuindo um whitepaper sobre seu produto baseado no GlassFish, servidor código-aberto de aplicações Java EE: o Portfolio Sun GlassFish.

Baixe o PDF: Construa uma Plataforma Web Aberta de Alto Desempenho para sua Empresa com o Portfolio Sun GlassFish™
Documentação da Sun Microsystems, Fevereiro de 2009
(original em inglês)

A única solução de software livre (código aberto) que tem se mantido, em 2006 e 2008, no quadrante líder do relatório do Gartner Quadrante Mágico para Servidores de Aplicação Corporativos é o Red Hat JBoss. A solução da Sun tem se mantido um pouco atrás, no quadrante dos visionários, mas bem próximo de se juntar aos líderes.

O software livre Apache Geronimo está situado em uma posição mais atrás, ainda no quadrante dos players de nicho, embolado com vários outros fornecedores rumando o início do quadrante líder.

O relatório do Gartner terá atualização no terceiro trimestre de 2009. Então, brevemente veremos como estará o posicionamento atual desses servidores, provavelmente já contemplando a fusão dos líderes BEA e Oracle.

Veja a seguir transcrição do resumo e do índice do artigo da Sun.

Resumo

Sun GlassFish whitepaper - capa As atuais empresas de TI líderes de mercado devem construir mais com menos — mas o mercado oferece ferramentas excessivamente caras, muito difíceis de adquirir/usar/manter ou de que ofereçam suporte aos padrões da concorrência. O portfolio Sun GlassFish™ é uma plataforma de aplicativo Web aberta completa que proporciona às empresas as inovações provenientes das principais comunidades de código-fonte aberto, empacotado em uma solução que oferece preços flexíveis baseados em inscrições e suporte empresarial. Proporciona às empresas de todos os portes a extraordinária escalabilidade e segurança necessárias para os aplicativos de missão crítica.

Índice

  1. Resumo executivo
  2. Desafios do mundo atual
    • Inovações da comunidade vs. soluções patenteadas
  3. A solução da Sun
  4. 10 razões principais para usar o portfolio Sun GlassFish
  5. Perspectivas do setor
    • Portfolio Sun GlassFish no governo
    • Portfolio Sun GlassFish nas telecomunicações
    • Portfolio Sun GlassFish na saúde
  6. Conclusão
    • Saiba mais

Sun GlassFish whitepapers e webcasts em inglês:

« Página anteriorPróxima Página »