Академический Документы
Профессиональный Документы
Культура Документы
Braslia
2011
Renato Costa Alves de Sousa
Braslia
2011
Renato Costa Alves de Sousa
Processo Seguro de Desenvolvimento de Software
Uma abordagem para aumento da segurana das aplicaes Web no Ministrio
Pblico Federal
Braslia
2011
3
Desenvolvido em atendimento ao plano de trabalho do Programa de
Formao de Especialistas para a Elaborao da Metodologia Brasileira
de Gesto da Segurana da Informao e Comunicaes - CEGSIC
2009/2011.
2011 Renato Costa Alves de Sousa. Qualquer parte desta publicao
pode ser reproduzida, desde que citada a fonte.
4
Errata2
5
Ata de Defesa de Monografia
Monografia de Especializao Lato Sensu, defendida sob o ttulo Processo Seguro
de Desenvolvimento de Software: Uma abordagem para aumento da segurana das
aplicaes Web no Ministrio Pblico Federal, por Renato Costa Alves de Sousa,
em 09 de dezembro de 2011, no Auditrio do Departamento de Cincia da
Computao da UnB, em Braslia - DF, e aprovada pela banca examinadora
constituda por:
___________________________________________________________________
Prof. Genana Nunes Rodrigues
Departamento de Cincia da Computao - Universidade de Braslia
Orientador
___________________________________________________________________
Prof. Rodrigo Bonifcio de Almeida
Departamento de Cincia da Computao - Universidade de Braslia
___________________________________________________________________
Prof. Maristela Terto de Holanda
Departamento de Cincia da Computao - Universidade de Braslia
6
Agradecimentos
7
Quem chega cedo ao campo de batalha
aguarda a chegada do inimigo e est pronto para combater.
8
Lista de Tabelas
9
Sumrio
1.1 Introduo........................................................................................................14
1.5 Hipteses.........................................................................................................19
3 Metodologia............................................................................................................25
4 Resultados .............................................................................................................30
5 Discusso...............................................................................................................49
6 Concluso ..............................................................................................................55
11
Resumo
O presente trabalho tem como objetivo fazer uma anlise dos problemas de
segurana elencados pelo CLASP (Comprehensive, Lightweight Application Security
Process) de forma a identificar quais destes problemas se aplicam arquitetura do
Sistema nico. Assim verificar, dentre os problemas selecionados, quais esto
presentes ou no no processo de desenvolvimento, implantao e operao deste
sistema.
Dessa forma o trabalho ir abordar temas como os requisitos de um processo
seguro para desenvolvimento de software, razes que ocasionam o
desenvolvimento de um software inseguro, as principais prticas que contribuem
para a segurana de uma aplicao, como mitigar as principais falhas de segurana
introduzidas durante as vrias fases do processo de desenvolvimento de software,
entre outros aspectos do desenvolvimento de software, tendo como base o Sistema
nico do Ministrio Pblico Federal.
12
Abstract
This study aims to analyze the security issues listed by the CLASP
(Comprehensive, Lightweight Application Security Process) to identify which of these
issues apply to the architecture of the System. Therefore check, among the selected
problems, which are present or not in the process of development, deployment and
operation of this system.
The work will address issues such as the requirements of a secure process for
software development, reasons that cause the development of an insecure software,
the key practices that contribute to the security of an application, how to mitigate
major security flaws introduced during the various phases of software development,
among other aspects of software development, based on the Sistema nico of
Ministrio Pblico Federal.
13
1 Delimitao do Problema
1.1 Introduo
Com a evoluo dos sistemas de software no acompanhada por uma evoluo
do processo de desenvolvimento desses sistemas, os problemas de segurana
envolvendo computadores e softwares so frequentes, generalizados e muitas vezes
apresentam consequncias srias para as atividades as quais esses sistemas do
suporte. Nos ltimos anos, houve uma facilidade do acesso informao atravs de
meios de comunicao como livros, televiso e internet. Essa facilitao potencializa
um nmero de usurios mal intencionados, e potencializa tambm a capacidades
destes. Isso faz com que as propriedades de segurana da informao que devem
estar presentes em uma aplicao necessitem de uma maior ateno. Ateno esta
que no deve se efetivar apenas durante a operao do sistema, mas sim durante
todo o ciclo de vida do produto: desde a sua concepo at a sua entrada em
produo e operao. Para isso preciso que se estabelea um processo de
desenvolvimento de software que assegure a segurana do produto desde a sua
concepo.
A tarefa de implantar um processo de desenvolvimento padronizado em uma
organizao no tarefa trivial. Envolve uma mudana de paradigma da equipe
envolvida nos projetos. Envolve ainda outro fator mais crtico que o
comprometimento organizacional com a mudana, o que implica em investimento de
recursos no processo, tanto recursos financeiros quanto recursos pessoais.
Porm no basta definir um processo padro, preciso segui-lo em todos os
produtos de software. Alm do mais preciso que esse modelo de processo seja
eficiente, ou seja, que produza realmente os resultados esperados. Para se
conseguir os resultados almejados com a implantao de um processo seguro de
desenvolvimento de software h uma srie de prticas, j testadas com sucesso no
14
mercado que podem auxiliar e incrementar a probabilidade de se desenvolver
softwares seguros.
Este trabalho faz um levantamento das principais causas de insegurana no
processo de desenvolvimento de software no Ministrio Pblico Federal (MPF), mais
especificamente na Procuradoria Geral da Repblica (PGR), sugere boas prticas a
serem implementadas por um processo seguro de desenvolvimento de software, e
apresenta metodologias para se garantir a qualificao do processo implementado.
Para isso o contexto escolhido para a pesquisa foi o do sistema nico, que um
sistema em fase de desenvolvimento na PGR e que atender todo o MPF. O
sistema nico um sistema de gesto integrada de expedientes. Expediente pode
ser entendido como uma categoria genrica de documentos que inclui: autos
administrativos, autos judiciais, manifestaes judiciais, documentos administrativos,
entre outros tipos de documentos organizacionais. Quando totalmente implantado
este sistema gerenciar toda a tramitao de expedientes do MPF, controlando a
tramitao tanto de expedientes fsicos como eletrnicos.
O sistema nico um sistema Web, desenvolvido em Java. Utiliza frameworks
como Struts e Spring para a camada de controle e para prover injeo de
dependncias. Na camada de viso utiliza-se o framework ExtJS, que um
framework de JavaScript. E para a camada de persistncia utilizado o framework
Hibernate em conjunto com o banco de dados Oracle. Como servidor de aplicao o
ambiente utilizado o provido pelo WebLogic, tambm da empresa Oracle. Portanto
um sistema que utiliza diversas ferramentas padres de mercado em sua
arquitetura.
15
das aplicaes neste rgo, aspectos estes que melhor sero atendidos se
estiverem previstos no processo de desenvolvimento.
Observou-se que os tratamentos de segurana empregados advm de
iniciativas unilaterais de cada desenvolvedor. Apesar dos esforos individuais, essa
prtica pode resultar em possveis falhas de segurana que sero exploradas
durante esse trabalho.
16
Assim esse trabalho tem como objetivo encontrar as vulnerabilidades
presentes no Sistema nico. Demonstrar que desejvel o emprego das melhores
tcnicas de desenvolvimento de software seguro propostas pela OWASP no
contexto do MPF.
Dessa forma demonstrar que o emprego de tcnicas e melhores prticas no
processo de desenvolvimento de software no MPF pode trazer um ganho de
segurana da informao nas aplicaes desenvolvidas, bem como a reduo de
custos com retrabalho e eventuais falhas de segurana.
1.3.3 Escopo
O estudo de caso ser aplicado na equipe de desenvolvimento de software da
PGR. Mais especificamente ser feito um estudo de caso baseado no
desenvolvimento do Sistema nico, atualmente o sistema mais estratgico para o
MPF.
1.4 Justificativa
O desenvolvimento do Sistema nico uma tarefa crtica e de extrema
importncia para a eficincia do Ministrio Pblico Federal no cumprimento do seu
dever perante a sociedade. Visto que um sistema que integrar toda a tramitao
dos processos deste rgo.
Falhas de segurana neste sistema podem incorrer em situaes
constrangedoras para o rgo, bem como comprometer o seu funcionamento, alm
de poder enquadrar o rgo na ilegalidade. Dentre outras possvel citar as
17
seguintes situaes que podem vir acontecer caso vulnerabilidades neste sistema
venham a ser exploradas:
Acesso por pessoas no autorizadas a um processo sigiloso;
Vazamento de informaes no autorizadas para a mdia;
Instabilidade do sistema, comprometendo processos urgentes como
Habeas corpus;
Comprometimento das atividades dos servidores e membros do MPF;
Explorao de vulnerabilidades do sistema usurios mal intencionadas
e hackers.
18
1.5 Hipteses
19
2 Reviso de Literatura e Fundamentos
20
papis no projeto. Dessa forma, o CLASP prov orientao aos participantes do
projeto que facilitam a integrao das melhores prticas em sua forma de trabalho.
O que, de acordo com afirmao do prprio CLASP, resulta em aumentos
incrementais de segurana facilmente realizvel, repetvel e mensurvel.
Outro item que aumenta a usabilidade do CLASP e facilita a utilizao de suas
melhores prticas em um processo j existente a definio de um dicionrio de
vulnerabilidades. Esse dicionrio ajuda a equipe de desenvolvimento evitar ou tratar
erros especficos, tanto de projeto quanto de codificao, erros esses que podem
conduzir a vulnerabilidades de segurana. O ponto forte desse dicionrio de
vulnerabilidades sua taxonomia flexvel, que uma estrutura de classificao que
permite a equipe de desenvolvimento rapidamente localizar a informao de vrias
perspectivas. Como exemplo pode-se citar a busca por: tipo do problema; categoria
do tipo de problema; perodo de exposio; consequncias da vulnerabilidade
eventualmente explorada; plataformas e linguagens de programao afetadas;
avaliao do risco, entre outras formas de localizao da informao desejada.
O CLASP pode ser didaticamente estruturado da seguinte forma:
Vises do CLASP
Recursos do CLASP
Casos de Uso de Vulnerabilidades
21
2.1.2 Casos de Uso de Vulnerabilidades
Os Casos de Uso de Vulnerabilidades do CLASP descrevem condies sob as
quais servios de segurana podem se tornar vulnerveis nas aplicaes. Os Casos
de Uso do CLASP fornecem aos usurios exemplos, especficos e de fcil
entendimento, da relao de causa e efeito entre o projeto e implementao sem
conscincia de segurana e as possveis vulnerabilidades nos servios bsicos de
segurana por exemplo: autenticao, confidencialidade, disponibilidade,
responsabilidade e no repdio.
Os Casos de Uso de Vulnerabilidades do CLASP so baseados nos seguintes
componentes de arquitetura mais comuns:
Unix Monoltico
Mainframe Monoltico
Arquitetura distribuda (HTTP(S) e TCP/IP)
Este trabalho, devido ao contexto da aplicao que uma aplicao WEB,
concentrar seus esforos no terceiro componente de arquitetura listado, ou seja, na
arquitetura distribuda.
Pode-se entender os Casos de Uso do CLASP como uma ponte entre a viso
de conceitos do CLASP e o dicionrio de vulnerabilidades (na Viso de
Vulnerabilidades), uma vez que eles provm exemplos especficos de servios de
segurana se tornando vulnerveis nas aplicaes.
Um software pode ser composto por apenas algumas poucas dezenas de linhas
de cdigo construdas por um programador em poucas horas, bem como pode ser
composto por milhes de linhas de cdigo, imagens, dados de configurao,
documentao etc, resultantes de um laborioso processo envolvendo centenas de
pessoas que trabalham de forma coordenada durante vrios anos. Existe, portanto,
uma variedade de tipos de software, mas conforme Stair e Reynolds (2006), os
softwares podem ser classificados em dois tipos principais: software de sistema, que
so os que controlam as operaes bsicas de um computador (sistema opera-
cional, dentre outros) e software de aplicao para fins especficos, como, por
22
exemplo, o que realiza o controle financeiro de uma empresa especfica. O software
de aplicao pode ser chamado simplesmente de aplicao ou aplicativo e o foco
desse texto.
Um processo de software um conjunto de atividades e resultados associados,
desenvolvidos ciclicamente (como qualquer processo) em uma organizao
produtora de software, e que busca gerar um software com qualidade ou atributos
esperados. Segundo Sommerville (2005), so atividades fundamentais comuns a
todos os processos de software:
Especificao: as funcionalidades do software e as restries em sua operao
devem ser previamente definidas em alguma fase do processo.
Desenvolvimento: o processo deve fazer com que o software a ser produzido
atenda s suas especificaes.
Validao: o processo deve validar o software, para garantir que ele faa o que
o cliente deseja.
Evoluo: o processo deve permitir que software, durante sua evoluo ao
longo de vrias verses, continue a atender peridica mudana de
necessidades de seus clientes e usurios.
Toda organizao adota um processo de desenvolvimento de software, mesmo que
ele seja catico. A melhoria de processos de produo de software depende, muitas
vezes, de envolvimento de consultores em melhoria de processo.
23
O processo deve possuir um dono, deve ser suportado e estar sempre
disponvel, alm de ser constantemente atualizado para refletir as mudanas no
ambiente organizacional.
O processo deve ser econmico e prtico de se utilizar e servir para o
desenvolvimento de uma grande variedade de tipos de produtos.
O processo deve estabelecer e manter a integridade do produto durante todo o
ciclo de vida, comeando com os trabalhos de requisitos e projeto incluindo
rigoroso gerenciamento de configurao e de implantao.
O processo tambm deve fornecer os meios para assegurar a integridade e
honestidade de todas as pessoas envolvidas no processo de desenvolvimento,
melhoria, testes e implantao do produto.
Alm dos requisitos apresentados, um processo deve possibilitar a sua
customizao. Para ser amplamente aplicvel, um processo seguro de
desenvolvimento deve suprir as necessidades de uso de cada organizao em que
venha a ser aplicado. Isso significa permitir s equipes de software ajustar o
processo para que possam usar novos mtodos, ferramentas e tecnologias. A
organizao deve ser capaz de acomodar os detalhes especficos de seu negcio
dentro do processo, especificar o mtodo e as tecnologias que o seu pessoal ir
utilizar.
Esses so alguns dos requisitos para um processo seguro de desenvolvimento
de software. A segurana de um processo requer prticas de Engenharia de
Software, treinamento extensivo, trabalho consistente e disciplinado, dados
compreensveis e gerenciamento capaz e efetivo alm de treinamentos de suporte.
O processo que atender aos requisitos listados apresentar grandes chances de
desenvolver produtos com qualidade e segurana.
24
3 Metodologia
26
A equipe na qual este trabalho se concentra composta por cerca de doze
pessoas, podendo variar em alguns momentos de acordo com frias e mudanas de
equipe. Devido a alguns obstculos no decorrer da pesquisa, como muitos
integrantes de frias, muitas demandas para uma equipe pequena, greves, entre
outros percalos, as entrevistas puderam ser realizadas apenas com trs integrantes
desta equipe. O que d um total de quatro envolvidos (trs entrevistados e o autor),
quantia relativamente pequena, porm os trs entrevistados trabalham pode-se dizer
desde o comeo do Sistema nico, portanto possuem ampla experincia neste
sistema.
As entrevistas consideram so realizadas da seguinte maneira: o autor
apresenta cada uma das trinta vulnerabilidades a cada um dos entrevistados, suas
opinies podem ser de que o item atendido, parcialmente atendido ou no
atendido. Em cada um dos itens, o autor apresenta ao entrevistado uma explicao
baseada no CLASP, ou em mais fontes quando necessrio.
Caso a explicao no seja suficiente para formar a opinio do entrevistado,
so feitas pesquisas em cdigos-fonte, sistema de arquivos, servidores e outas
fontes at que se chegue a uma concluso. Caso no se chegue a uma concluso o
entrevistado pode deixar a resposta em branco, situao que se verificou com um
entrevistado em um item apenas. No caso de um entrevistado no chegar a uma
concluso o autor poderia promover um debate entre mais de um entrevistado para
discutir o item em questo, porm optou-se por no abrir esta possibilidade para que
as opinies no fossem influenciadas de alguma forma. Dessa forma, a metodologia
do trabalho pode ser sintetizada como nos pargrafos a seguir.
A questo de pesquisa ser: Qual o nvel de aderncia do processo de
desenvolvimento de software do Ministrio Pblico Federal aos aspectos de
segurana da informao elencados pelo CLASP?
Sero investigados diversos aspectos de segurana envolvidos no processo
de desenvolvimento de software. A formada da pesquisa ser o de um estudo de
caso sobre o processo de desenvolvimento de software no Ministrio Pblico
Federal de forma a observar quais problemas de segurana da informao so
levados em considerao durante a fase de desenvolvimento de software.
Os dados levantados durante a pesquisa sero qualitativos e quantitativos.
Para fazer o levantamento dos dados sero utilizadas diversas fontes, pode-se citar
27
como exemplo de fontes consultadas: a anlise do atual processo de
desenvolvimento, revises bibliogrficas, entrevista, consulta de stios oficiais na
internet. A coleta desses dados ser feita atravs de entrevistas com integrantes da
equipe de desenvolvimento com o objetivo de verificar quais problemas de
segurana da informao so identificados e atendidos durante a fase de
desenvolvimento.
Os problemas de segurana da informao previstos pelo CLASP que se
aplicam ao caso de desenvolvimento em estudo e que sero verificados nas
entrevistas e atravs de anlise participativa so os contidos na Tabela 1.
28
Tabela 1 Vulnerabilidades investigadas
29
4 Resultados
Essa seo apresenta uma anlise dos tipos de erros que se aplicam ao caso
estudado, e verifica atravs de pesquisas, e participao ativa no desenvolvimento
de software do sistema nico, quais os tipos de problemas de segurana da
informao que so levados em considerao, ou no, durante o processo de
desenvolvimento deste sistema.
As vulnerabilidades a seguir foram selecionadas entre os cento e quatro tipos
elencados pelo CLASP. O critrio de escolha das vulnerabilidades se deu de acordo
com sua aplicabilidade ao sistema. H itens elencados pelo CLASP que no se
aplicam ou que no fazem muito sentido na arquitetura do Sistema nico.
30
4.1.1 Erros de tipo e intervalo
Injeo de comando
A injeo de comando um problema no qual um processo induzido a
chamar processos escolhidos pelo atacante. Isso feito atravs da injeo de
cdigos de controle nos dados do sistema.
Perodo de exposio
31
Implementao: essa falha introduzida quase sempre durante a fase de
implementao.
Preveno e mitigao
Projeto: sempre que possvel utilizar chamadas a bibliotecas de forma a no
chamar processos externos.
Implementao: construir um analisador para assegurar que nenhum
contedo postado por usurios contenha tags de scripts.
SQL injection
A injeo de SQL um problema no qual comandos SQLs so injetados nos
dados de entrada de forma a afetar a execuo de comandos SQL pr-definidos.
Perodo de exposio
Implementao: essa falha introduzida quando no se mitiga durante a fase
de implementao as possibilidades de se executar SQL injection.
Preveno e mitigao
32
Implementao: usar checagem extensiva e rigorosa de todas as entradas de
dados de usurios que sero usadas por comandos SQLs. Utilizao de
frameworks que faam esse tipo de tratamento automaticamente.
33
Implementao: ao desserializar dados popular um novo objeto em vez de
somente desserializar, a intenso que o dado flua atravs da validao
segura de entrada.
Implementao: definir explicitamente readObject() como final para prevenir a
desserializao.
Implementao: tornar atributos transientes para proteg-los da
desserializao.
35
qualquer janela no mesmo Desktop. Portanto, basear a segurana em eventos no
uma boa prtica.
Perodo de exposio
Do projeto implementao: confiar em informaes no autenticadas para
prover autenticao uma falha de projeto.
Preveno e mitigao
Do projeto implementao: nunca se deve confiar, ou se basear, em
informaes de eventos para garantir segurana.
36
serializao podem ser serializadas por qualquer classe, que por sua vez pode fazer
uso dos dados da classe serializada.
Perodo de exposio
Implementao: isso um problema de estilo que deve ser adotado na
implementao de cada classe.
Preveno e mitigao
Implementao: deve-se tornar as classes no serializveis atravs da
definio da funo writeObject() como final e do lanamento de excees
explicitamente evitando a serializao.
Implementao: assegurar a no serializao dos objetos.
38
executa testes no servidor em busca de informaes que possam facilitar o sucesso
do ataque.
Perodo de exposio
Implementao: essa falha uma falha simples de lgica introduzida durante
a fase de implementao.
Preveno e mitigao
Implementao: cada erro deve ser analisado de forma a retirar as
informaes sensveis das mensagens que sero exibidas ao usurio.
Implantao: informaes de depurao no devem estar presentes em uma
verso de produo.
39
Condies de concorrncia em ambientes Multi-threaded
Se duas threads de execuo utilizam um recurso simultaneamente, existe a
possibilidade deste ser utilizado em um estado invlido, que por sua vez pode tornar
o estado de execuo indefinido.
Perodo de exposio
Projeto: se o projeto no previr a utilizao de uma linguagem de
programao que facilite a implementao com threads, os riscos de
problemas desse gnero aumentam consideravelmente.
Preveno e mitigao
Projeto: utilizar funcionalidades de bloqueio. Implementar formas de bloqueio
de recursos em cdigos que alterem ou leiam dados persistentes em
ambientes multi-threaded.
41
Utilizar um algoritmo de criptografia j quebrado ou no mais
seguro
A utilizao de algoritmos de criptografia que j foram quebrados ou que no
so mais considerados seguros um risco desnecessrio que pode resultar no
vazamento de informaes sensveis.
Perodo de exposio
Projeto: a deciso de quais algoritmos de criptografia sero utilizados
geralmente tomada na fase de projeto.
Preveno e mitigao
Projeto: deve-se utilizar algoritmos criptogrficos que so atualmente
considerados fortes por especialistas na rea.
42
Utilizao de fator nico de autenticao
A utilizao de apenas uma forma de autenticao comumente apenas
senha pode levar a riscos que podem comprometer a integridade do sistema. A
utilizao de fator duplo de autenticao trs consigo muitos benefcios de
segurana da informao.
Perodo de exposio
Projeto: na fase de projeto em que os mecanismos de autenticao e suas
protees so concebidos.
Preveno e mitigao
Projeto: deve-se utilizar esquemas de autenticao mltiplos e
independentes. Pode-se adotar, por exemplo, o mecanismo de autenticao
baseado em tokens de assinatura digital. Assim garante-se que se o
mecanismo de autenticao baseado em senha falhar preciso que se
corrompa tambm o mecanismo de autenticao do token para que o sistema
seja comprometido.
43
4.1.5 Erros gerais de lgica
44
Omisso da instruo break
Omitir intencionalmente a instruo break para que se possa testar varias
vezes um comando switch indistinguvel de um erro, portanto no deve ser
utilizado no desenvolvimento de aplicaes. Algumas linguagens executam
automaticamente o teste apenas uma vez, porm no o caso de linguagens como
C e Java. Nestas linguagens, uma vez encontrado o caso testado todas as
instrues subsequentes so executadas, o que pode confundir muitos
programadores.
Perodo de exposio
Implementao: muitos erros de lgica podem conduzir a este tipo de
problema. Esta pode ser exacerbada pela falta ou mal uso de tecnologias que
possam mitigar esse problema.
Preveno e mitigao
Do Projeto implantao: muitas IDEs e produtos de anlise esttica podem
detectar este problema.
Implementao: a funcionalidade de omitir intencionalmente a instruo de
break pode ser mais clara com a utilizao da instruo IF/ELSE, tornando
a implementao mais segura.
45
Exceo no capturada
Quando uma exceo lanada e no capturada, o processo tem a
possibilidade de decidir se o dado problema ou evento merece uma mudana no
fluxo de execuo.
Perodo de exposio
Implementao: geralmente esse problema causado pelo uso de APIs
externas ou de uma API que o programador no esteja familiarizado.
Preveno e mitigao
Implementao: deve-se capturar todas as excees relevantes de forma a
garantir o estado de execuo da aplicao em todos os momentos.
46
Tabela 2 Vulnerabilidades atendidas
47
Tabela 4 - Vulnerabilidades no atendidas
Erros de tipo e intervalo Problemas de Ambiente
Vazamento de informaes atravs da
Cross-site scripting clonagem de classes
Vazamento da informao atravs de
Injeo por reflexo serializao
48
5 Discusso
Injeo de comando
afetado o servio de segurana: controle de acesso. Este um problema que
foi considerado pela pesquisa como parcialmente atendido, porm achou-se
relevante a anlise de suas possveis consequncias.
Consequncias:
Controle de acesso: a injeo de comandos permite ao atacante a
execuo de comandos e cdigos de seu interesse.
50
Controle de acesso: a injeo de comandos permite ao atacante a
execuo de comandos e cdigos de seu interesse.
53
Percentual significante para um sistema que lida com informaes sensveis e
muitas vezes sigilosas, como o caso do sistema pesquisado.
54
6 Concluso
55
processada pelo sistema. o caso, por exemplo, do problema de Cross-site
scripting, que um problema no levado em considerao atualmente, mas que
pode permitir que usurios maliciosos executem cdigos nas mquinas dos demais
usurios do sistema. Outro problema que atualmente no levado em considerao
e que pode acarretar em falhas na confidencialidade dos processos judiciais tratados
pelo sistema a falha na criptografia de dados. Este problema se torna mais grave
no caso de processos sigilosos, que apesar de assim serem considerados,
atualmente no so criptografados. O sigilo desses processos um requisito de
extrema importncia no sistema, visto que o MPF lida com diversos processos desta
categoria, que caso venham a ter seu contedo exposto podem gerar srios
problemas instituio.
Uma observao que pode ser feita que a linguagem Java evita boa parte
dos tipos de problemas previstos no CLASP. o caso, por exemplo, do tipo de
problema SQL Injection, que devido a frameworks e linguagem utilizada para o
desenvolvimento do sistema (Java) foi considerado como atendido por todos os
entrevistados e pelo prprio pesquisador. H outros exemplos que pode-se
considerar como atendido pelo correto emprego da linguagem supracitada, como:
condies de concorrncia ao se utilizar multi-threads, comparao de classes por
nome, entre outros problemas. H tambm itens que foram considerados como
parcialmente atendidos devido equipe no levar em considerao, porm so bem
tratados pela linguagem, como o caso de excees no capturadas. Assim,
quando acompanhada de conhecimento e correta utilizao, pode-se considerar a
linguagem Java como uma excelente ferramenta para auxlio na manuteno da
segurana da informao nos sistemas.
Apesar de alguns requisitos de segurana ainda no serem atendidos, o
sistema apresentou um bom percentual de aderncia s principais prticas. Alm
disso, a pesquisa em questo, acompanhada de outras pesquisas e trabalhos
futuros, pode servir de base para a instituio melhorar o processo de
desenvolvimento em relao segurana da informao.
56
7 Referncias e Fontes Consultadas
HOWARD, M.; LIPNER, S. The Security Development Lifecycle: SDL: a process for
developing demonstrably more secure software. USA: Microsoft, 2006.
59
Apndice B Orientaes para
composio, impresso e
encadernao da monografia
60