Você está na página 1de 16

PUC MINAS VIRTUAL

Introduo Segurana e Auditoria de Sistemas


Luiz Alberto Ferreira Gomes Professor

Disciplina de Segurana e Auditoria de Sistemas


Unidade de Ensino I
1o Semestre de 2011

1.INTRODUO

Em razo da massiva integrao da infraestrutura computacional com aos processos de negcios que vem ocorrendo ao redor do mundo, a necessidade de proteger, controlar e auditar os recursos da tecnologia da informao e da comunicao nunca foi to grande. Para qualquer negcio, seja ele de uma empresa comercial ou de uma empresa sem fins lucrativos, parece lgico que a construo de uma organizao segura considerada importante para garantir o sucesso a longo prazo. Quando uma empresa implementa e mantm uma postura de segurana forte, ela pode tirar proveito de inmeros benefcios. Uma organizao, por exemplo, pode usar a sua poltica de segurana como ferramenta de marketing, demonstrando aos sues clientes que valoriza o negcio com uma atitude muito agressiva na proteo de suas informaes. Mas o mais importante, uma organizao segura no ter gastar tempo e dinheiro para identificar brechas de segurana e arcar com as consequncias dessas violaes. A segurana para estas organizaes, no se restringe apenas proteo de informaes, mas tambm sistemas, recursos e servios contra desastres, erros e manipulao no autorizada, de forma a reduzir a probabilidade e o impacto de incidentes de segurana. Neste mesmo contexto, o papel da auditoria de sistemas, conhecida como tambm com auditoria de computadores ou auditoria da tecnologia da informao, tem se tornado crtico para garantir a integridade dos sistemas da informao utilizados por uma organizao. Auditoria de sistemas pode ser considerada uma extenso da autoria tradicional. [DIAS, 2000] define a auditoria como uma atividade que engloba o exame das operaes, processos, sistemas e responsabilidades gerenciais de um determinada entidade, com intuito de verificar sua conformidade com certos objetivos e polticas institucionais, oramentos, regras, normas ou padres . Na auditoria da tecnologia da informao analisado um conjunto de controles gerenciais e procedimentos que afetam todo o ambiente de informtica e, consequentemente, todos os sistemas aplicativos. Neste tipo de auditoria, de acordo com [DIAS, 2000], so verificados os padres e polticas adotadas pela organizao para o desenvolvimento e a operao sobre sistemas e dados, a disponibilidade e a manuteno do ambiente computacional, a utilizao dos recursos computacionais, a gerncia de banco de dados e de rede, alm de todos os aspectos relacionados

segurana de informaes, como segurana fsica, lgica e ambiental, e continuidade dos servios. 1.1.Evoluo dos Sistemas de Hardware e Software Os sistemas que conhecemos atualmente evoluram de sistemas de software, escritos em linguagem de mquina, executando em grandes computadores, conhecidos por mainframes, para sistemas de software, escritos em linguagem de quarta gerao, executando em sistemas de hardware diversos. Essa evoluo mostrada com mais detalhes logo abaixo. 1.1.1Sistemas de Hardware A Tabela 1 apresenta a evoluo dos sistemas de hardware atravs dos tempos at os dias atuais. Nota-se, claramente, a distino entre cada gerao atravs de algumas caractersticas bastante peculiares a cada uma.
Gerao Primeira Tamanho Mainframe do tamanho da sala Nenhuma Segunda Mainframe do tamanho do armrio Redes de terminais de vdeo Transistores Terceira Quarta Quinta

Microcomputadores Microcomputa Computadores em do tamanho da dores de mesa rede e tamanhos mesa e Laptops variados Redes baseadas Redes locais em mainframe e microcomputadores Circuitos integrados e semicondutores Circuitos integrados dos semicondutore s de grande escala (LSI) Centenas de milhares Dezenas de milhes Meses Milhes US$ 0,001 Internet, intranet e extranet Circuitos integrados dos semicondutores de grande escala (LSI) Milhes Bilhes Anos Bilhes US$ 0,00001

Rede

Circuitos

Tubos a vcuo

Densidade (Circuitos por Componente) Velocidade (Instrues por segundo) Confiabilidade Memria (capacidade em caracteres) Custo

Um Centenas Horas Milhares US$ 10,00

Centenas Milhares Dias Dezenas de milhares US$ 1,00

Milhares Milhes Semanas Centenas de Milhares US$ 0,10

Tabela 1: Evoluo dos sistemas de hardware. Adaptada de [O'BRIEN, 2001]

O avano da tecnologia de microprocessadores e do processo de produo de componentes eletrnicos, permitiram que os sistemas de hardware se tornassem acessveis para uma ampla gama de empresas, instituies e pessoas comuns. A reduo de tamanho, o aumento considervel da velocidade de processamento e da confiabilidade e, logicamente, a reduo dos custos foram fundamentais para que isto ocorre-se.

1.1.2Aplicaes de Software Assim como os sistemas de hardware, a evoluo das aplicaes de software pode ser dividida em geraes. Essa diviso compartimentaliza cada gerao, destacando os fatos e caractersticas peculiares que distinguem uma gerao de outra. [O'BRIEN, 2001] divide estas geraes em cinco da seguinte forma: Primeira Gerao: A programao era realizada em cdigo de mquina; Os programas eram escritos para resolver problemas especficos; A produtividade dos usurios1, como eram chamados os programadores da poca, era baixa. Segunda Gerao Uso da linguagem Assembler e Macro-Assembler para programao; A programao das aplicaes de software tornou-se um pouco mais fcil que na gerao anterior. Terceira Gerao O incio da dcada de 50 a gnesis desta gerao; Marcada pelo surgimento das linguagens de alto nvel FORTRAN (entre 1952 e 1954), ALGOL (entre 1958 e 1960) e COBOL(1968); Emprego da programao estruturada para desenvolvimento de aplicaes de software.; A programao de computadores reconhecida como uma nova especialidade profissional; A produtividade dos programadores sofre um aumento significativo; Melhoria na qualidade do software desenvolvido. Quarta Gerao
1 A palavra programador ainda no era utilizada.

Utilizao sistemas gerenciadores de banco de dados relacionais como repositrio para as aplicaes de software; Surgimento das linguagens de quarta gerao; Pacotes de aplicaes de software para microcomputadores tornam-se populares. Quinta Gerao Utilizao de linguagens orientadas a bjetos; Popularizao das aplicaes de software com interfaces grficas com os usurios; Uso intensivo da rede de computadores; Desenvolvimento de sistemas especialistas; Uso comercial da Internet. Assim como aconteceu com os sistemas de hardware, o avano das tcnicas de desenvolvimento possibilitou que os sistemas de software fossem entregues mais rapidamente, com um custo menor e, sem dvida, alguma com um nvel de qualidade melhor. Em razo disso, evidencia-se o uso crescente de aplicaes de software, desde aplicaes de software simples, como um editor de texto, at aplicaes de software ou sistemas crticos como aqueles utilizados para controle de trfego areo. Neste contexto, um software, segundo [PRESSMAN, 2006], pode ser aplicado em qualquer situao para o qual um conjunto previamente especificado de procedimentos tenha sido definido. Uma aplicao de software pode ser caracterizada atravs de dois fatores: Contedo: refere-se ao significado e forma da entrada e sada da informao. Exemplo: aplicaes que aceitam dados de entrada altamente estruturados e produzem relatrios formatados.

Determinao da informao: refere-se previsibilidade da ordem e temporizao (timing) da informao. Exemplo: aplicaes de anlise de engenharia que aceitam dados que tm uma ordem pr-definida, executa os algoritmos de anlise sem interrupo, e produz os dados resultantes em forma de relatrio ou grfico. 1.1.3Categorias de Aplicaes de Software Existem diversas classificaes para aplicaes de software na literatura. Uma delas, dada por [PRESSMAN, 2006], classifica as aplicaes de softwares em: 1.Software de sistemas: coleo de programas escritos para servir outros programas; 1.Software de tempo real: monitoram/analisam/controlam eventos do mundo real medida que eles acorram; 1.Software comercial: reestruturam os dados existentes de modo a facilitar operaes comerciais ou tomada de deciso. 1.Software cientfico e de engenharia: softwares que so caracterizados por algoritmos number crunching (que processam nmeros) 1.Software para computadores pessoais processadores de texto, planilhas eletrnicas, aplicaes grficas, multimdia e etc. 1.Software para Web: pginas web recuperadas por um navegador constituem software que incorpora instrues executveis; 1.Software de inteligncia artificial

Usam algoritmos no numricos para resolver problemas complexos que no so passveis de computao ou anlise direta.

DESAFIO 1.1 Pode-se encontrar um grande nmero de exemplos para cada categoria de aplicao de software em seu computador pessoal, em referncias da rea ou na Internet2. Tente exemplificar, com duas aplicaes de software, cada um das categorias acima mencionadas de modo que voc fixe os conceitos apresentados at o momento.

1.2.Fundamentos de Sistemas de Informao Um sistema de um modo geral pode ser conceituado como um grupo de itens que interagem entre si ou que sejam interdependentes, formando um todo unificado ou como conjunto organizado de doutrinas, ideias ou princpios habitualmente previstos para explicar a organizao ou o funcionamento de um conjunto sistemtico. Existem dois tipos de sistemas : Sistemas naturais Sistemas estelares; Sistemas geolgicos; Sistemas moleculares. Sistemas construdos pelo homem Sistemas sociais; Sistemas de comunicao; Sistemas financeiros; Sistema automatizado. Particularmente, o tipo de sistema que interessa para esta disciplina o sistema automatizado. Um sistema automatizado ou, simplesmente, um sistema de informao um sistema feito pelo homem que interage com o mesmo ou controlado por um ou mais computadores.
2 Uma sugesto para auxili-lo nesta pesquisa o site www.shareware.com. [Pressman, 2006] considera este site como uma das mais abrangentes bibliotecas de shareware/freeware existentes.

Um sistema de informao pode ser definido como uma combinao organizada de pessoas (especialistas e usurios finais), hardware (computadores e perifricos), software (sistemas operacionais, editores de texto, ferramentas de desenvolvimento, banco de dados e etc), rede de computadores (meios de comunicao, processadores de comunicaes e etc) dados (descrio de

produtos, banco de dados de estoque e etc) que possibilitam a coleta, transformao e disseminao de informaes em uma organizao [O'BRIEN, 2001]. 1.2.1Componentes de um Sistema de Informao A Figura 1 apresenta os componentes que compem um sistema de informao.

Figura 1: Componentes de um Sistema de Informao. Adaptada de [O'BRIEN, 2001]

Todos os componentes que formam a pirmide acima desempenham um papel importante em um sistema de informao. No aconselhvel desconsiderar ou negligenciar qualquer um deles em qualquer fase do ciclo de vida de um sistema de informao. 1.2.2Tipos de Sistemas de Informao: O'Brien em [O'BRIEN, 2001] classifica os sistemas de informao em: Sistema de Apoio s Operaes Sistemas de Processamento de Transaes: Sistemas de apoio s operaes que registram e processam dados resultantes de transaes da empresas.

Sistemas de Controle de Processos: Sistemas de apoio s operaes que monitoram e controlam processos fsicos. Sistemas Colaborativos: Sistemas de apoio s operaes que aumentam as comunicaes e a produtividade de equipes e grupos de trabalho. Sistemas de Apoio Gerencial Sistemas de Informao Gerencial: Sistemas de apoio s operaes que fornecem informao na forma de relatrios e exibies em vdeo para os gerentes. Sistemas de Apoio Deciso: Sistemas de apoio gerencial que fornecem suporte computacional direto aos gerentes. Sistemas de Informao Executiva: Sistemas de apoio gerencial que fornecem informao crticas em grficos de fcil visualizao para uma multiplicidade de gerentes. 1.3.Uma Viso da Engenharia de Software A Engenharia de Software emprega, sistematicamente e de forma organizada, processos, mtodos e ferramentas computacionais com o objetivo de desenvolver um produto comercial e no meramente experimental ou acadmico. Desde 1968, ano da sua formalizao, essa disciplina da engenharia tem evoludo bastante e permitido que as empresas que utilizam os seus princpios de forma correta reduzam os custos, aumentem a produtividade das suas equipes e melhorem a qualidade do software desenvolvido. 1.3.1Conceito Engenharia de Software Existem diversas definies para engenharia de software na literatura. Uma das mais populares conceitua engenharia de software como um ramo da engenharia que engloba processos, mtodos e ferramentas e cujo foco o desenvolvimento dentro de custos adequados de sistemas de software de alta qualidade [PRESSMAN, 2006].

DESAFIO 1.2 Encontre em referncias da rea ou na Internet outro conceito para Engenharia de Software. Comente as semelhanas e diferenas entre o conceito que voc encontrou e o conceito dado por [PRESSMAN, 2006]. Embora os custos sejam uma das principais preocupaes da engenharia de software no existe uma resposta simples e fcil para se determinar os custos de um software. Este custo influenciado por diversos fatores, dentre eles, o processo de software adotado cujo conceito ser visto logo a seguir e o tipo de software. Garantir a alta qualidade do software desenvolvido outra preocupao da engenharia de software. A qualidade de software, de acordo como [PRESSMAN, 2006], pode ser definida como a concordncia com requisitos funcionais e desempenho explicitamente colocados, com padres de desenvolvimento

explicitamente documentados e com caractersticas implcitas que so esperadas de todo software profissionalmente desenvolvido. Neste sentido, um dos processos de apoio da engenharia de software para garantir a qualidade do sistemas desenvolvido o de auditoria. 1.3.2Processos Um processo de software um conjunto de atividades e resultados associados que produz um produto de software [PRESSMAN, 2006]. A norma ISO/IEC 12207 (Processos de Ciclo de Vida de Software) identifica processos que so utilizados para descrever ciclos de vida de software, que abrange desde a sua concepo at a sua descontinuidade. A ISO/IEC 12207 agrupa os processos de ciclo de vida de software em trs grupos apresentados conforme a Figura 2.

Figura 2: Processos de Ciclo de Vida de Software. Adaptado de [ROCHA, 2001]

Processos Fundamentais Abrange a contratao entre o adquirente e o fornecedor e a execuo do desenvolvimento, da operao ou da manuteno de produtos de software durante o ciclo de vida do software. Os processos fundamentais so os seguintes [ROCHA, 2001]: 1.Processo de Aquisio: Define as atividades do adquirente3 para obteno de produtos ou servios. 2.Processo de Fornecimento: Define atividades do fornecedor4 fornecimento de produtos ou servios. 3.Processo de Desenvolvimento: Define as atividades do desenvolvedor5.
3 Organizao que adquire um produto de software ou servio de informtica. 4 Organizao que fornece o produto de software ao adquirente. 5 Organizao que define e desenvolve o produto de software.

para

Essas atividades incluem anlise de requisitos, projeto, codificao, integrao, testes, instalao e aceitao relacionadas ao produto de software. 4.Processo de Operao: Define as atividades do operador6 As atividades desse processo envolvem a operao do produto de software e o apoio operacional aos usurios. 5.Processo de manuteno: Define as atividades do mantenedor7. Esse processo ativado quando o produto de software submetido a modificaes no cdigo e na documentao associada devido a um problema ou necessidade de melhoria ou adaptao. Processos de Apoio Auxiliam e contribuem para o sucesso e qualidade do projeto de software. Um processo de apoio empregado e executado, quando necessrio, por um dos seguintes processos[ROCHA, 2001]: 1.Processo de Documentao: Define as atividades envolvidas no registro das informaes do processo ou atividade do ciclo de vida do software. 2.Processo de Gerncia de Configurao: Define as atividades para a aplicao de procedimentos administrativos e tcnicos por todo ciclo de vida do software, destinadas a identificar e definir os itens de software em um sistema e estabelecer suas linhas bsicas (baseline); controlar as modificaes e liberaes dos itens; registrar e apresentar a situao dos itens e pedidos de modificao; garantir a concluso, a consistncia e a correo dos itens; controlar o armazenamento, a manipulao e a distribuio dos itens de software. 3.Processo de Garantia da Qualidade: Define as atividades para garantir a conformidade dos processos e produtos de software, no ciclo de vida do projeto, com seus requisitos especificados e sua aderncia aos planos estabelecidos. 4.Processo de Verificao: Define as atividades para verificao dos produtos de software. um processo usado par determinar se os produtos de software de uma atividade atendem completamente aos requisitos ou s condies impostas a eles. 5.Processo de Validao: Define as atividades para validao dos produtos
6 Organizao que prov o servio de operao de um sistema computacional no seu ambiente. 7 Organizao que prov os servios de manuteno do software.

produzidos pelo projeto de software. usado para determinar se os requisitos e o produto final (sistema ou software) atendem ao uso especfico proposto. 6.Processo de Reviso Conjunta: Define as atividades para avaliar a situao e os produtos de uma atividade de um projeto. 7.Processo de Auditoria: Define as atividades para determinar a adequao do produto aos requisitos, aos planos e ao contrato, quando apropriado. 8.Processo de Resoluo de Problemas: Define um processo para analisar e resolver problemas (incluindo no conformidades), de qualquer natureza ou fonte, detectados durante o desenvolvimento, a operao, a manuteno ou a realizao de outros processos. Processos Organizacionais Processos que so empregados por uma organizao para estabelecer e implementar uma estrutura constituda pelos processos de ciclo de vida e pelo pessoal envolvido no desenvolvimento de software [ROCHA, 2001]: 1.Processo de Gerncia: Define as atividades genricas que podem ser empregadas por quaisquer das partes que tm de gerenciar seus(s) respectivo(s) processo(s). 2.Processo de Infraestrutura: Define as atividades para estabelecer e manter a infraestrutura necessria para qualquer outro processo. A infra-estrutura pode incluir, por exemplo, o hardware e o software necessrio para o desenvolvimento. 3.Processo de melhoria: Define atividades bsicas que uma organizao

executa para estabelecer, avaliar, medir, controlar e melhorar um processo de ciclo de vida de um software. 4.Processo de treinamento: Define as atividades para oferecer e manter pessoal treinado. Processos de Adaptao O processo de adaptao define as atividades necessrias para adaptar a norma para sua aplicao em uma determinada organizao.[ROCHA, 2001]. 1.3.3Mtodos Um mtodo, de acordo com [SOMMERVILLE, 2007], uma abordagem

estruturada para desenvolvimento que incluem modelos de sistema, notaes, regras, recomendaes de projeto e guias de processo. 1.3.4Ferramentas Ferramentas oferecem o apoio automatizado aos processos, mtodos e atividades de engenharias de software. Algumas dessas ferramentas so denominadas de ferramentas CASE (Computer Aided Software Engineering) e

podem ser definidas como so sistemas de software que tm a inteno de fornecer apoio automatizado para atividades de processo de software. Sistemas CASE so frequentemente usados para apoio a mtodos.

DESAFIO 1.3 Encontre em referncias da rea ou na Internet exemplos de processos, mtodos e ferramentas de apoio s atividades da engenharia de software. Referncia Bsica [DIAS, 2000] DIAS, Cludia. informao. Segurana e auditoria da tecnologia da

Rio de Janeiro: Axcel Books, 2000. 218p.

[PRESSMAN, 2006] PRESSMAN, Roger S. Engenharia de software. 6. ed. So Paulo: Maggraw Hill Brasil, c2006. 752 p. (disponvel biblioteca no sistema pasta professor) [SOMMERVILLE, 2007] SOMMERVILLE, Ian. Engenharia de software. 8. ed. So Paulo: Addison Wesley, c2007. 592 p. (disponvel na biblioteca e no sistema pasta do professor) Referncia Complementar [O'BRIEN, 2001] O'BRIEN, James A. Sistemas de informao e as decises gerenciais na era da internet. So Paulo: Saraiva, 2001. 504p. [ROCHA, 2001] ROCHA, Ana Regina Cavalcanti da; MALDONADO, Jos Carlos; WEBER, Kival Chaves. Qualidade de software: teoria e prtica. So Paulo: Prentice Hall, 2001. 303p.

Você também pode gostar