Escolar Documentos
Profissional Documentos
Cultura Documentos
16 de maio de 2020
Controladoria-Geral da União - CGU
Secretaria Federal de Controle Interno
RELATÓRIO DE CONSULTORIA
Órgão: MINISTÉRIO PÚBLICO FEDERAL
Unidade Examinada: SEC. DE TEC. DA INFORMAÇÃO E
COMUNICAÇÃO
Município/UF: Brasília/DF
Plano de Trabalho: #829797
Missão
Promover o aperfeiçoamento e a transparência da Gestão Pública, a
prevenção e o combate à corrupção, com participação social, por meio da
avaliação e controle das políticas públicas e da qualidade do gasto.
Consultoria
O serviço de consultoria é uma atividade de auditoria interna governamental
que consiste em assessoramento, aconselhamento e outros serviços
relacionados fornecidos à alta administração com a finalidade de respaldar
as operações da unidade. Em regra, é prestado em decorrência de solicitação
específica do órgão ou da entidade da Administração Pública Federal.
POR QUE A CGU REALIZOU ESSE
QUAL FOI O
TRABALHO TRABALHO?
REALIZADO PELA
CGU? Este trabalho teve origem em razão de
solicitação formal do MPF para auditoria
externa no sistema VOTUM de votação do
Trata-se de trabalho de MPF.
consultoria, sob aspectos de As análises objetivaram responder se os
segurança da informação do mecanismos de controle implementados no
Sistema Votum, do Ministério processo de votação são suficientes para
Público Federal, visando suportar a salvaguarda das informações.
identificar os controles
atualmente implementados,
as fragilidades e riscos QUAIS AS CONCLUSÕES
identificados que possam de ALCANÇADAS PELA CGU?
alguma forma comprometer a QUAIS AS RECOMENDAÇÕES
integridade da votação e o QUE DEVERÃO SER ADOTADAS?
sigilo do voto, e apresentar Os testes realizados permitem concluir que a
sugestões de melhorias. aplicação possui razoável segurança contra
ataques oriundos de Agentes Externos, em
razão principalmente dos mecanismos de
defesa adotados da infraestrutura do MPF. Já
contra ataques originados de Agentes Internos,
pessoas que possuem acesso ao código fonte,
ambiente de desenvolvimento, banco de dados,
ou servidores que hospedam a aplicação, o
sistema Votum necessita de melhorias
contínuas e constante vigilância no sentido de
bloquear brechas para ações maliciosas ou no
mínimo permitir a rastreabilidade dessas ações,
quando ocorrerem.
SUMÁRIO
INTRODUÇÃO 5
9. Aplicação se mostrou segura frente a testes básicos de ataques por agentes externos. 32
RECOMENDAÇÕES 42
CONCLUSÃO 44
INTRODUÇÃO
Este trabalho teve origem em razão de solicitação formal do MPF realizada por meio do
Ofício nº 415/2020- CHEFIAGAB/PGR que trata da solicitação de auditoria externa no
sistema VOTUM de votação do MPF.
O trabalho realizado pela CGU está classificado no Manual de Orientações Técnicas da
Atividade de Auditoria Interna Governamental (MOT) como um trabalho de Consultoria,
do tipo Aconselhamento. Os serviços de aconselhamento geralmente caracterizam-se pela
proposição de orientações em resposta a questões formuladas pela gestão. Os serviços
dessa natureza são os que geralmente mais se aproximam dos trabalhos de avaliação,
quando comparados com seu processo de operacionalização.
ESCOPO
O escopo da consultoria abrangeu o seguinte:
1. Análise dos mecanismos de controle no processo de desenvolvimento do software para
salvaguarda do código fonte.
2. Análise dos mecanismos de controle e gerenciamento das chaves de votação, aplicados
durante o processo de votação.
3. Testes básicos de invasão por meio da aplicação web.
4. Análise dos mecanismos de controle de acesso e salvaguarda dos ativos de software,
banco de dados e infraestrutura que suporta o pleito eleitoral.
A análise objetivou mostrar quais controles estão implementados atualmente, as
fragilidades e riscos identificados, que possam de algum modo vir a comprometer a
integridade da votação e o sigilo do voto, e apresentar sugestões de melhorias.
Essas análises objetivaram responder a uma questão de auditoria principal e subquestões
de auditoria:
Questão de Auditoria Principal:
Os mecanismos de controle implementados no processo de votação são suficientes para
suportar a salvaguarda das informações?
Subquestões de Auditoria:
1. Os mecanismos de controle implementados no processo de desenvolvimento do
software são suficientes para suportar a salvaguarda do código fonte?
2. Os mecanismos de controle implementados são suficientes para suportar a salvaguarda
das chaves de votação?
3. A aplicação web resiste a testes básicos de invasão?
5
4. Os mecanismos de controle de acesso e salvaguarda dos ativos de software, banco de
dados e infraestrutura são suficientes para não permitir o acesso indevido por agentes
externo e interno?
Vale ressaltar que se trata de um trabalho de cunho colaborativo prestado pela CGU, em
atendimento ao Ofício supra, no intuito de fornecer subsídios para apoiar a tomada de
decisões, considerando o pedido formal e as parcerias já estabelecidas entre o MPF e a
CGU no combate à corrupção, não se tratando de avaliação, certificação, ou interferência
nas ações desse MPF.
Destaca-se também que não foi franqueado acesso a diversos documentos solicitados pela
equipe de consultoria, impossibilitando a esta equipe opinar acerca de eventuais riscos
sobre esses aspectos.
• Políticas, normas e procedimentos relacionados a: Controle de Acesso;
autenticação e autorização de usuários ao Sistema Votum; gerenciamento de
senhas da organização e/ou do Sistema Votum; atualização de softwares e
ferramentas de segurança; backup utilizado pelo Sistema Votum e seu banco de
dados; o modo como a senha do worksapce apex_stic_voto e do esquema de banco
voto são passadas ao presidente da comissão eleitoral;
• Arquitetura de redundância do hardware e/ou software do banco de dados e
armazenamento do Sistema (ex: máquina virtual, servidor).
NÃO ESCOPO
Não fez parte do Escopo do trabalho a ser realizado pela CGU:
1. Análise de vulnerabilidades implementadas no código fonte.
Em razão da ausência de profissionais na CGU que trabalhem ou detenham conhecimento
necessário na plataforma APEX ORACLE, bem como da ausência de ferramentas para
análise de vulnerabilidades do código fonte.
2. Análise da integridade dos registros no banco de dados.
Em razão da ausência de profissionais na CGU que trabalhem ou detenham conhecimento
necessário em banco de dados ORACLE e na linguagem PLSQL.
3. Testes Avançados de Invasão.
Em razão da ausência de profissionais na CGU que trabalhem ou detenham conhecimento
necessário na plataforma APEX ORACLE, no Banco de dados ORACLE, na linguagem
PLSQL, bem como da ausência de ferramentas para testes de invasão. Poderão ser
realizados testes de invasão mais simples na aplicação web.
4. Monitoramento da aplicação na data do Pleito Eleitoral.
Em razão da ausência de profissionais na CGU que detenham conhecimento necessário
na plataforma APEX ORACLE, no Banco de dados ORACLE, na linguagem PLSQL,
bem como da ausência de ferramentas para monitoramento das aplicações e da
infraestrutura.
6
5. Emissão de opinião sobre a integridade do resultado do pleito eleitoral e do sigilo do
voto
Em razão dos inúmeros riscos relacionados a um processo eleitoral, que envolvem
possibilidade de ataques por agentes externos e internos, e pela ausência de profissionais
com conhecimento técnico necessário e ferramentas para realizar outros testes a opinião
sobre a integridade do resultado do pleito eleitoral e do sigilo do voto fica comprometida.
6. Certificação de segurança do software eleitoral.
Também não faz parte do escopo deste trabalho a emissão pela CGU de um certificado
de segurança do software eleitoral.
7. Inspeção física da infraestrutura.
Não será realizada inspeção física na infraestrutura de TI do MPF, em razão das restrições
impostas pela pandemia do Novo Coronavírus e do curto prazo definido para os trabalhos.
Os testes serão realizados sobre o controle lógico.
DEFINIÇÕES
Os ativos de informação a serem protegidos são:
7
RESULTADOS DOS EXAMES
1. Documentação de desenvolvimento do sistema deficiente
Ao analisar a resposta da unidade auditada acerca dos itens acima, bem como nas
reuniões realizadas por meio de videoconferência com a equipe do MPF, percebe-se as
seguintes fragilidades no que diz respeito aos mecanismos de controle implementados
no processo de desenvolvimento do sistema VOTUM.
Cabe esclarecer que este ponto não está tratando sobre a documentação de requisitos,
apenas sobre a documentação a nível de código. Embora a unidade não tenha sido
questionada sobre esse ponto, cabe informar sobre a importância de uma análise de
requisitos consistente para a construção de um software com qualidade e segurança.
8
É importante destacar a seguinte diretriz que a Norma ABNT NBR ISO/IEC 27002:2013
define com relação à segurança em processos de desenvolvimento e de suporte de
sistemas de informação:
9
Diferentemente das linguagens de programação baseadas em arquivos, na tecnologia
Oracle Application Express (APEX), utilizada no desenvolvimento do sistema Votum, as
definições de aplicativos são armazenadas como meta-dados dentro do banco de dados
Oracle. Essa característica torna mais difícil a integração da tecnologia com sistemas de
gerenciamento de código-fonte.
Outra recomendação do artigo é que Scripts SQL para criar ou atualizar objetos de banco
de dados, manipular dados e outros componentes externos devem ser verificados no
controle de versão separadamente da verificação nos aplicativos Application Express.
Por exemplo, para atualizar uma função PL / SQL, o desenvolvedor deve verificar o
arquivo de script SQL no controle de versão e atualizar o código no arquivo. Após a
conclusão das alterações no código, o script deve ser executado no ambiente de
desenvolvimento e então deve retornar ao controle de versão. Componentes externos,
como JavaScript, CSS, HTML e outros arquivos estáticos também devem ser gerenciados
como arquivos separados no sistema de controle de versão.
10
código e instabilidade de código. Diante do exposto, fica claro que é possível que a
equipe de desenvolvimento do sistema Votum implemente um controle de
versionamento dos arquivos passíveis de serem gerenciados externamente, como
scripts SQL, componentes externos, etc.
A Norma ABNT NBR ISO/IEC 27002:2013 define uma diretriz sobre controle de mudanças
de sistemas, ainda no contexto sobre segurança em processos de desenvolvimento e de
suporte de sistemas de informação, a saber:
“14.2.2 Procedimentos para controle de mudanças de sistemas
Controle
Convém que as mudanças em sistemas no ciclo de vida de desenvolvimento
sejam controladas utilizando procedimentos formais de controle de
mudanças.
Diretrizes para implementação
Convém que os procedimentos de controle de mudanças sejam documentados
e reforçados para assegurar a integridade do sistema, das aplicações e
produtos, nos estágios iniciais dos projetos, através de um subsequente
esquema de manutenção. Convém que a introdução de novos sistemas e
mudanças maiores em sistemas existentes, siga um processo formal de
documentação, especificação, teste, controle da qualidade e gestão da
implementação.
Convém que este processo inclua uma avaliação de riscos, análise do impacto
das mudanças e especificação dos controles de segurança requeridos. Convém
que este processo também assegure que a segurança e os procedimentos de
controle atuais não sejam comprometidos, que os programadores de suporte
tenham acesso somente às partes do sistema necessárias para o cumprimento
das tarefas e que sejam obtidas concordância e aprovação formal para
qualquer mudança obtida.
Quando aplicável, convém que os procedimentos de controle de mudanças
operacional e de aplicação sejam integrados (ver 12.1.2). Convém que os
procedimentos de controle de mudanças incluam, porém não se limitem a:
a) manutenção de um registro dos níveis acordados de autorização;
b) garantia de que as mudanças sejam submetidas por usuários autorizados;
c) análise crítica dos procedimentos de controle e integridade para assegurar
que as mudanças não os comprometam;
d) identificação de todo software, informação, entidades em bancos de dados
e hardware que precisem de correções;
e) identificação e verificação do código crítico de segurança para minimizar a
probabilidade da ocorrência de fragilidades de segurança conhecidas;
f) obtenção de aprovação formal para propostas detalhadas antes do início
dos trabalhos;
g) garantia de que os usuários autorizados aceitem as mudanças antes da
implementação;
h) a garantia da atualização da documentação do sistema após conclusão de
cada mudança e de que a documentação antiga seja arquivada ou
descartada;
11
i) a manutenção de um controle de versão para todas as atualizações de
software;
j) a manutenção de uma trilha de auditoria de todas as mudanças solicitadas;
k) a garantia de que toda a documentação operacional (ver 12.1.1) e
procedimentos dos usuários sejam alterados conforme necessário para se
manter adequado;
l) a garantia de que as mudanças sejam implementadas em horários
apropriados e não perturbem os processos de negócio envolvidos.”
A Norma ABNT NBR ISO/IEC 27002:2013 dispõe o seguinte sobre registros de eventos:
“12.4.1 Registros de eventos
Controle
Convém que registros (log) de eventos das atividades do usuário, exceções,
falhas e eventos de segurança da informação sejam produzidos, mantidos e
analisados criticamente, a intervalos regulares.
Diretrizes para implementação
Convém que os registros (log) de eventos incluam, quando relevante:
a) identificação dos usuários (ID);
b) atividades do sistema;
c) datas, horários e detalhes de eventos-chave, como, por exemplo, horário de
entrada (log-on) e saída (log-off) no sistema;
12
d) identidade do dispositivo ou sua localização, quando possível, e o
identificador do sistema;
e) registros das tentativas de acesso ao sistema, aceitas e rejeitadas;
f) registros das tentativas de acesso a outros recursos e dados, aceitas e
rejeitadas;
g) alterações na configuração do sistema;
h) uso de privilégios;
i) uso de aplicações e utilitários do sistema;
j) arquivos acessados e o tipo de acesso;
k) endereços e protocolos de rede;
l) alarmes provocados pelo sistema de controle de acesso;
m) ativação e desativação dos sistemas de proteção, como sistemas de
antivírus e sistemas de detecção de intrusos;
n) registros de transações executadas pelos usuários nas aplicações.
Os registros de eventos estabelecem o fundamento para os sistemas de
monitoramento automáticos, os quais são capazes de gerar relatórios
consolidados e alertas na segurança do sistema.
Informações adicionais
Os registros (log) de eventos podem conter dados confidenciais e informação
de identificação pessoal. Convém que medidas apropriadas de proteção de
privacidade sejam tomadas (ver 18.1.4).
Quando possível, convém que os administradores de sistemas não tenham
permissão de exclusão ou desativação dos registros (log) de suas próprias
atividades (ver 12.4.3).”
Como demonstrado, as boas práticas recomendam que registros (log) de eventos das
atividades do usuário, exceções, falhas e eventos de segurança da informação sejam
produzidos, mantidos e analisados criticamente, a intervalos regulares.
13
“O ambiente de administração do APEX fornece relatórios com estatísticas de
acesso e alteração do sistema. Têm acesso ao sistema o servidor responsável,
W. M. (e-mail) e o servidor R. M., que é chefe substituto da divisão responsável
pelo sistema e é o administrador do ambiente Apex no que tange ao
desenvolvimento (e-mail). O servidor W. também é administrador do
ambiente de desenvolvimento Apex. (...)
14
Como apresentado, há apenas um desenvolvedor (W.M) e um chefe substituto (R. M),
os quais, apesar de configurarem um relacionamento hierárquico, possuem ambos os
mesmos privilégios de administrador relacionados aos dados persistidos pela aplicação.
Sem mencionar a existência da conta genérica “ADMIN”. Esse cenário se agravaria com
a entrada de um segundo desenvolvedor, que teria um terceiro perfil administrador,
caso a mesma configuração fosse seguida. Uma responsabilização por supostos danos
relacionadas às informações persistidas envolverá não apenas intenções de usuários
específicos, mas de delegações inapropriadas.
Cenário 1
1. Agente Interno altera o código da aplicação pra computar votos de maneira a
favorecer um determinado candidato.
2. Votação é realizada com o código malicioso.
3. Após a votação, o Agente Interno retorna a aplicação ao seu estado original.
4. O Agente Interno remove os logs de alterações realizados nos itens 1 e 3, pois
possui acesso de administrado da plataforma e o sistema não possui controle de
versionamento.
Uma alternativa conhecida para tentar detectar essa possibilidade de fraude seria a
verificação de logs do Banco de Dados, caso esses logs registrem todos os comandos
executados, tanto de DDL (Data Definition Language ou Linguagem de Definição de
Dados. São comandos desse tipo o CREATE, o ALTER e o DROP) como de DML (Data
Manipulation Language, ou Linguagem de Manipulação de Dados. São comandos do
DML o INSERT, UPDATE e DELETE) e desde que esses registros não possam ser também
alterados.
Em virtude dos referidos aspectos do banco de dados, foi questionado ao MPF, no item
4.2 da Solicitação de Informações 1, acerca das medidas adotadas de controle de acesso
ao banco de dados do Sistema Votum, sendo a resposta apresentada a seguir:
15
“A senha do esquema do banco de dados é de conhecimento apenas dos
servidores R.M e W.M A Divisão de Banco de Dados da STIC não tem
conhecimento dela, podendo, entretanto, alterá-la com os privilégios de
administrador geral do banco de dados.”
Além dos pontos apresentados, não foi esclarecido o modo como as senhas do
workspace “apex_stic_voto” e do esquema de banco “voto” são transferidas ao
Presidente da Comissão Eleitoral na data do pleito eleitoral. A transferência dessas
senhas, se realizadas sem o devido cuidado, apresenta um risco de segurança, pois uma
pessoa de posse delas poderia comprometer a integridade da votação, haja vista que,
ao que foi informado, o servidor W. M repassa sua própria senha à Comissão Eleitoral,
senha essa com perfil de administrador como já mostrado. A ISO/IEC 27002:2013 no
item 9.4.3 Sistema de gerenciamento de senha, alínea i estabelece que as senhas devem
ser armazenadas e transmitidas de forma segura.
1. Segregação de Funções
Funções conflitantes e áreas de responsabilidades devem ser segregadas para reduzir
oportunidades de modificação não autorizada ou não intencional , ou uso indevido dos
ativos da organização. ISO/IEC 27001/2013 Anexo A - A.6.1.2
3. Registros e Monitoramento
Ainda que não seja possível segregar funções em um espectro amplo, devido a fatores
como escassez de pessoas e habilidades, o investimento em controles que minimizem
os riscos de impossibilidade de rastreamento de responsabilidades sobre danos
iniciados pela má utilização dos dados persistidos, deve ser avaliada. Registros de
eventos (logs) ocorridos em dados críticos e/ou sensíveis devem ser construídos e
monitorados regularmente, por um agente empossado para essa função.
16
As informações dos registros de eventos (log) e seus recursos devem ser protegidos
contra acesso não autorizado e adulteração. ISO/IEC 27001/2013 Anexo A - A.12.4.2
SEMENTE := TO_NUMBER(TO_CHAR(SYSDATE,'YYYYDDMMSS'));
DBMS_RANDOM.initialize (val => semente);
RETORNO := DBMS_RANDOM.value(low => 1, high => 99999999);
DBMS_RANDOM.terminate;
Ocorre que a data e hora da votação de cada eleitor é armazenada na tabela de eleitores
(campo ELTR_DT). Assim, um Agente Externo ou Agente Interno poderia utilizar a data
e hora da votação para descobrir o número da cédula e o voto registrado,
comprometendo o sigilo do voto.
17
Assim, o atacante pode consultar a data/hora do voto de determinado eleitor e utilizá-
la como semente. Com essa semente, a função DBMS_RANDOM gerará um número que
será o número da cédula do eleitor, comprometendo o sigilo do voto.
Cabe mencionar ainda que a data e hora de votação é divulgada no Relatório “Lista de
Votantes” ao final da eleição, como no exemplo a seguir:
Outro ponto que merece destaque é que o ambiente APEX, de modo geral, armazena os
dados da sessão de cada usuário da aplicação na regra de formulação da URL como
demonstrado na figura a seguir:
Fonte: https://www.oracle.com/technetwork/pt/articles/apex/regra-formação-url-apex-
4422800-ptb.html
18
eleição ter sido realizada na aplicação “A”, mas o resultado da eleição é extraído da
aplicação “B” que já constava com banco de dados preenchido.
Fonte: https://www.oracle.com/technetwork/pt/articles/apex/regra-formação-url-apex-
4422800-ptb.html
Os valores que ficam separados por ":" após o trecho "f?p=" da URL. Repare que, na
figura acima, logo após o trecho "f?p=" há o número 9829. Este número é o número da
aplicação. Ele deve ser único dentro de uma instância do Apex. Pode-se utilizar o apelido
da aplicação em vez do número.
Nesse sentido a rotina de Backup é composta por 3 etapas: 1. a criação das cópias, 2. o
armazenamento e 3. a restauração. Nesse contexto, uma vulnerabilidade crítica que
pode se apresentar para o MPF é caso o Backup do Sistema Votum ou de seu banco de
dados não esteja funcional devido alguma situação que possa ter corrompido os dados
ou até mesmo inviabilizado as cópias por falhas nos sistemas, no momento de uma
eleição. Por isso, a importância de se manter testes de recuperação.
A aplicação dos testes de recuperação também demonstra o que deve ser melhorado
na rotina de criação do Backup e seu armazenamento, como o tempo de
indisponibilidade dos serviços até a total restauração. Dessa forma, de posse dos dados
levantados nesses testes de recuperação, é possível verificar quais são as principais
19
fragilidades da rotina de Backup e permite-se buscar soluções que eliminem as
vulnerabilidades encontradas.
“Controle
Convém que cópias de segurança das informações, softwares e das imagens
do sistema, sejam efetuadas e testadas regularmente conforme a política de
geração de cópias de segurança definida.
(...)
e) convém que as mídias de backup sejam regularmente testadas para
garantir que elas são confiáveis no caso do uso emergencial; Convém que isto
seja combinado com um teste de restauração e checado contra o tempo de
restauração requerido. Convém que os testes da capacidade para restaurar
os dados copiados sejam realizados em uma mídia de teste dedicada, não
sobrepondo a mídia original, no caso em que o processo de restauração ou
backup falhe e cause irreparável dano ou perda dos dados;” (sublinhado
acrescido)”
20
Cenário atual
Para o levantamento da situação atual dos fatores ou medidas de segurança
implantados no controle de acesso do módulo de votação do sistema Votum, foram
utilizadas informações repassadas pela equipe do MPF:
• Anexo do Ofício nº 415/2020-CHEFIAGAB/PGR, de 29/04/2020, que contém um
descritivo de informações técnicas sobre o sistema Votum do MPF.
• Anotações feitas após a reunião, mediante videoconferências ocorridas nas
datas de 05, 07 e 11/05/2020, entre a equipe de auditores da CGU e a equipe de
TI do MPF (STIC).
• Respostas à Solicitação de Informações nº: 001, de 07/05/2020. Ofício nº
113/2020/STIC, de 12/05/2020, do MPF.
• Respostas à Solicitação de Informações nº: 002, Oficio nº 114/2020/STIC, de
14/05/2020
Assim, a partir do relato oral e de demonstrações do funcionamento do sistema,
mediante videoconferências, e por Ofício, foi possível identificar que o controle de
acesso ao módulo de votação adota as seguintes medidas de segurança ou fatores de
autenticação:
Fator 1
Solicitação de login/senha LDAP (Lightweight Directory Access Protocol). Os usuários
utilizam o login e a senha de rede para acesso ao módulo de votação.
Fator 2
Autenticação do acesso por Certificado Digital, emitido oficialmente pelo ICP-Brasil
ou por uma Autoridade Certificadora interna ao MPF (AC interno).
Fator 3
Disponibilização ao usuário de um código para efetivar a votação (Senha de
Votação).
21
(...)
6.1.7. Recomenda-se a utilização de autenticação de multifatores para o
controle de acesso lógico, a fim de autenticar a identidade de um usuário e
vinculá-lo a uma conta de acesso a ativos de informação”
Certificado digital
• O acesso à aplicação é permitido
por certificado digital.
• O certificado é emitido pela
Autoridade Certificadora ICP-
Brasil ou por AC interno ao MPF.
• O certificado deve ser instalado
na máquina do usuário/eleitor.
• As características apresentadas
indicam que o certificado
adotado pelo MPF é do “tipo A1”,
que utiliza chave de criptografia
de 1.024 bits.
22
Segundo o Instituto Nacional de
Tecnologia da Informação – ITI[1], órgão
que gerencia a cadeia certificadora do
ICP-Brasil:
• O certificado digital ICP-Brasil
funciona como uma identidade
virtual que permite a
identificação segura e inequívoca
do autor de uma mensagem ou
transação feita em meios
eletrônicos, como a web.
• As regras do ICP-Brasil são
estabelecidas por um comitê
gestor. Os certificados contêm os
dados de seu titular.
• No procedimento de emissão do
certificado do ICP-Brasil, são
verificadas características
pessoais de cada adquirente, no
mínimo, nome completo e data
de nascimento.
• Contudo, as principais
informações que constam em um
certificado digital ICP-Brasil são:
• chave pública do titular,
• nome e endereço de e-
mail,
• período de validade do
certificado,
• nome da Autoridade
Certificadora - AC que
emitiu o certificado,
• número de série do
certificado digital,
• assinatura digital da AC.
• A assinatura digital utilizada pelo
ICP-Brasil agrega autenticidade,
integridade, confiabilidade e a
propriedade de não-repúdio.
23
armazenado na tabela
“Eleitores”.
• A senha de votação é um código
formado apenas por números
(dez dígitos com espaços em
branco entre grupos de três
dígitos – ex.: 139 371 431 5).
• A senha, em seu formato original
(não cifrado), é enviada por e-
mail mediante uma rotina de
banco (procedure) embutida
dentro do código-fonte.
• Dentro da aplicação no Oracle
Apex, um JOB é acionado (a cada
10 segundos) para, em blocos de
dez (10), enviar os e-mails aos
usuários contendo as senhas de
votação geradas.
• No envio dos e-mails contendo a
senha, não é necessário informar
uma conta de correio válida.
• Os e-mails enviados não ficam
armazenados em um repositório
temporário (ex.: “Caixa de itens
enviado”, “Caixa de saída”.
• Os servidores efetivos da DISEGI
– Divisão de Segurança da
Informação e da DISE– Divisão de
Infraestrutura de Serviços
possuem acesso ao servidor de e-
mail.
• De acordo com informações
repassadas na reunião de
11/05/2020, as contas de correio
eletrônico do MPF são
criptografadas.
• As senhas expiram quando
utilizadas pelo usuário, naquela
eleição específica.
• Na página de votação deve-se
fornecer a senha de votação
gerada de forma exclusiva para o
eleitor naquela eleição.
• O uso indevido da senha de
votação por outro eleitor, que
não o verdadeiro destinatário,
24
impede que o eleitor legítimo
possa realizar seu voto.
• O não recebimento do e-mail
contendo a senha de votação é
percebido apenas se o próprio
eleitor informar o não
recebimento.
25
• O uso de LDAP para controle de
acesso dificulta a adoção de
políticas de acesso mais
restritivas e específicas para o
sistema de votação (ex.: bloqueio
de acesso a usuários com senha
desatualizada).
• O sistema não bloqueia o acesso
simultâneo de várias pessoas que
tentam utilizar o mesmo
login/senha de usuário.
Certificado digital
(algo que o usuário possui) • Como o certificado digital é
instalado no desktop do eleitor,
qualquer pessoa que tenha
acesso franqueado ao
computador desse servidor (ex.:
secretária, esposa, filho etc.),
local ou remotamente, pode
contornar esse controle.
• O certificado pode ser instalado
em diversas máquinas.
• Um mesmo certificado, instalado
em mais de uma máquina, pode
ser utilizado simultaneamente.
Senha de votação
(algo que o usuário conhece) • A senha de votação é enviada por
e-mail, em seu formato original
(texto não cifrado), permitindo
sua leitura a partir de um ataque
do tipo “man-in-the-middle”[2] ou
de um ataque direto ao servidor
de correio.
• Considerando a informação
apresentada pela equipe do MPF
no Ofício MPF nº 113/2020/STIC,
de 12/05/2020 de que “O uso
indevido por outro eleitor, que
não o verdadeiro destinatário da
mensagem que contém a senha,
impede que o eleitor legítimo
possa realizar seu voto.” , há o
risco de que um eleitor (ou grupo
de eleitores) seja impedido de
votar, caso ocorra a descoberta
26
ou o vazamento, intencional ou
não, de sua senha de votação (ou
de várias senhas de votação).
Dada a capacidade de impactar
significativamente nos rumos do
processo, essa brecha pode
mudar o resultado da eleição,
comprometendo sua integridade.
• As senhas de votação
permanecem válidas até que o
usuário/eleitor registre o seu
voto. Nessas condições, um
atacante pode ter tempo mais do
que suficiente para descobrir a
senha.
• A geração manual das senhas de
votação, por parte de uma
terceira pessoa (o
“Administrador” de sistema),
majora o risco de quebra de
segurança.
• O armazenamento de senhas
válidas em uma tabela no banco
de dados da aplicação, mesmo
que cifradas (hash), majora o
risco de quebra de segurança.
• A senhas de votação são geradas
por meio de uma biblioteca do
banco Oracle que simula
aleatoriedade, como qualquer
código randômico.
Vale mencionar trazer ainda as boas práticas dispostas na Norma ABNT NBR ISO/IEC
27002:2013, que é um Código de Prática para controles de segurança da informação,
em seu Item 9.4.2, traz a seguinte diretriz para implementação de procedimento
seguros de entrada em sistema:
27
Onde é requerida a verificação de identidade e uma forte autenticação,
métodos alternativos de autenticação para as senhas, tais como, meios
criptográficos, smart cards, tokens ou biometria, sejam usados. (sublinhado
acrescido).
Convém que o procedimento para entrada no sistema operacional seja
configurado para minimizar a oportunidade de acessos não autorizados.
Convém que o procedimento de entrada (log-on) revele o mínimo de
informações sobre o sistema ou aplicação, de forma a evitar o fornecimento
de informações desnecessárias a um usuário não autorizado.
Convém que um bom procedimento de entrada no sistema (log-on):
a) não mostre identificadores de sistema ou de aplicação até que o processo
tenha sido concluído com sucesso;
b) mostre um aviso geral informando que o computador seja acessado
somente por usuários autorizados;
c) não forneça mensagens de ajuda durante o procedimento de entrada (log-
on) que poderiam auxiliar um usuário não autorizado;
d) valide informações de entrada no sistema somente quando todos os dados
de entrada estiverem completos. Caso ocorra uma condição de erro, o sistema
não indique qual parte do dado de entrada está correto ou incorreto;
e) proteja contra tentativas forçadas de entrada no sistema (log-on);
f) registre tentativas de acesso ao sistema, sem sucesso e bem sucedida;
g) comunique um evento de segurança caso uma tentativa potencial ou uma
violação bem sucedida de entrada no sistema (log-on), seja detectada;
h) mostre as seguintes informações quando o procedimento de entrada no
sistema (log-on) finalizar com sucesso:
1) data e hora da última entrada no sistema (log-on) com sucesso;
2) detalhes de qualquer tentativa sem sucesso de entrada no sistema (log-on)
desde o último acesso com sucesso;
i) não mostre a senha que está sendo informada;
j) não transmita senhas em texto claro pela rede;
k) encerre sessões inativas após um período definido de inatividade,
especialmente em locais de alto risco, tais como, locais públicos, ou áreas
externas ao gerenciamento de segurança da organização ou quando do uso
de dispositivos móveis;
l) restrinja os tempos de conexão para fornecer segurança adicional nas
aplicações de alto risco e reduzir a janela de oportunidade para acesso não
autorizado.”
Oportunidades de melhoria
28
acesso ao módulo de votação do
sistema VOTUM, para
conhecimento pelos usuários e
comissões eleitorais, de medidas
de segurança a serem adotadas.
• Implementar mecanismos mais
restritivos, tais como permissão
de acesso ao módulo de votação
apenas para usuários com senha
atualizada recentemente (dentro
de um prazo estabelecido na
política de acesso).
• Bloquear o acesso simultâneo de
várias pessoas que tentam utilizar
o mesmo login/senha de usuário.
Certificado digital
(algo que o usuário possui) • Expedir orientação aos
usuários/eleitores acerca do
procedimento de instalação dos
certificados, de maneira que
estes sejam instalados com “alto
nível de risco”.
Obs.: Esse nível requer do usuário o
cadastro de uma senha adicional, que
será solicitada todas as vezes que uma
aplicação Web tentar acessar os dados
do certificado.
• Avaliar a oportunidade e
conveniência de adotar
certificado digital do tipo A3,
considerado mais seguro, uma
vez que adota chave de 2048 bits,
podendo ser instalado em um
dispositivo token.
• Verificar a possibilidade da
assinatura digital do eleitor ser
utilizada para assinar o voto,
como um fator a mais, ou como
substituto da própria senha de
votação.
Senha de votação
(algo que o usuário conhece) • Abster-se de armazenar a senha
de votação em tabela de banco
de dados, excetuando-se o
29
armazenamento temporário para
fins de processamento.
• Abster-se de gerar manualmente
a senha de votação, a partir de
terceiros (Administrador do
sistema). O evento de geração
deve ser disparado a partir de
uma ação do usuário diretamente
na aplicação
• Abster-se de enviar a senha de
votação em texto puro e por e-
mail.
• Limitar a quantidade de
tentativas de inserção da senha
de votação.
• Bloquear a tela de votação, após
sucessivas tentativas frustradas
de inserção da senha de votação.
• Registrar o uso indevido de senha
de votação, para posterior
auditoria.
• Implementar mecanismo de
geração automática de senha de
votação, que dificulte a
descoberta do código por
eventual atacante, interno ou
externo, e que facilite o seu
trânsito da origem (MPF) até o
destino (usuário).
A título de sugestão, poderá ser utilizado
QrCode na geração e transmissão das
senhas de votação, podendo ser
seguidos os seguintes passos:
• Gerar automaticamente a
senha de votação, após o
registro do voto por parte
do usuário (na tela
seguinte), apresentado o
código em formato
QrCode.
• Por meio de aplicativo
mobile (um App),
previamente habilitado, o
usuário/eleitor decodifica
o QrCode e insere a senha
no campo específico na
tela de votação.
30
• A senha de votação deve
expirar após um curto
período sem utilização
(ex.: 15 ou 20s), sendo
necessária solicitar a
geração de uma outra
senha a partir da mesma
tela.
31
• Acrescentar um Salt à geração do
hash MD5, evitando ataques de
Força Bruta ou de uso de
Rainbow Tables.
• Utilizar algoritmos de hash
recomendados pela norma
ISO/IEC 10118-3.
[1]
https://www.iti.gov.br/perguntas-frequentes/41-perguntas-frequentes/130-sobre-a-icp-brasil
[2]
Forma de ataque em que os dados trocados entre duas partes são, de alguma forma, interceptados,
registrados e possivelmente alterados pelo atacante sem que as vítimas percebam.
Ressalta-se que, a exceção das informações listadas a seguir, de modo geral a aplicação
web do Sistema Votum se comportou de forma segura diante de ataques automatizados
como fuzzing de diretórios, força bruta e injeção de SQL. Isso se deve à presença de
controles implementados por ferramentas de segurança, como Firewall de Aplicação
Web.
32
br&p_version=5.1 informações
.4.00.08- potencialmente
249744855881 sensíveis.
O cabeçalho anti- Médio https://portal.mp O cabeçalho X- Verificar nos links
clikjacking X- f.mp.br/intranet/ FrameOptions afetados se a
FrameOptions apex/f?p=302:101 ajuda a prevenir opção de
não está presente ::::::¬ification ataques de cabeçalho X-
_msg=RXJybyBhb carregamento de FrameOptions está
yByZWFsaXphciBs frames maliciosos presente e
b2dpbi4gVXN14XJ na página web. configurada nos
pbyBlL291IFNlbm valores
hhIGluduFs%7B% SAMEORIGIN,
7DaWRvcy48ZGl2 DENY ou ALLOW-
IGlkPSJhcGV4X2x FROM
vZ2luX3Rocm90d
GxlX2RpdiI-
QWd1YXJkZSA8%
7B%7Dc3BhbiBpZ
D0iYXBleF9sb2dp
bl90aHJvdHRsZV9
zZWMiPjU8L3Nw
YW4-
IHNlZ3Vu%7B%7D
ZG9zIHBhcmEgZ
WZldHVhciBsb2ct
aW4gbm92YW1lb
nRlLjwvZGl2Pg,,%
2F_o79Wf4HO-
biABkaSu_8f4Wp
OAcXYK-
xFrBLN4FKQ5xEK
Uvy5Z6DL1_waxf
kscB4LrdPhUtzen
AoZHX4_4Q2dw
Estouro de Buffer Médio https://portal.mp Parâmetro p_lang Utilizar uma
no parâmetro f.mp.br/intranet/ pode ser procedure de
p_lang apex/wwv_flow.js manipulado sanitização ou
_messages?p_ap gerando erro de tratamento dos
p_id=302&p_lang Buffer Overflow e parâmetros do link
=pt- potencialmente afetado.
br&p_version=5.1 sobrescrevendo
.4.00.08- áreas de memória
249744855881 da aplicação.
Erros podem Médio https://portal.mp Erros do banco de Implementar rotina
revelar f.mp.br/intranet/ dados aparecem de tratamento de
informações apex/f?p=302:1:2 junto à aplicação erros para os links
sobre a aplicação 09269758412376: web (ORA- afetados.
:::: 20009), podendo
revelar
33
informações
sensíveis.
https://portal.mp
f.mp.br/intranet/
apex/f?p=302:1:2
03553293622600:
::::
Ausência de Baixo https://portal.mp Ausência de Usar pacotes anti-
Tokens Anti-CRSF f.mp.br/intranet/ tokens Anti-CRSF CSRF.
em formulários apex/f?p=302:1:2 facilita ataques de
HTML 03553293622600: Cross-Site
:::: Request Forgery,
em que um
atacante recebe
https://portal.mp as requisições do
f.mp.br/intranet/ usuário no lugar
apex/f?p=302:LO do site
GIN_DESKTOP:::::: autorizado.
34
MbCMx9QdMWx
GXmXYuxWmp2K
dO3hThzhrmCffQ
https://portal.mp
f.mp.br/intranet/
apex/f?p=302:1:2
09269758412376:
::::
Vazamento via Baixo https://portal.mp A aplicação web Configurar o
campo de f.mp.br/intranet/ está vazando servidor web para
resposta HTTP “X- apex/f?p=302:1::: informação omitir a
Powered-By” ::: através do campo informação de
“X-Powered-By” cabeçalho "X-
(Servlet/3.0 Powered-By".
https://portal.mp JSP/2.2). Este
f.mp.br/intranet/ vazamento pode
apex/wwv_flow.a fornecer
ccept informações que
facilitem a um
atacante
https://portal.mp identificar
f.mp.br/intranet/ frameworks e
apex/wwv_flow.js versões de
_messages?p_ap componentes
p_id=302&p_lang utilizadas pelo
=pt- sistema.
br&p_version=5.1
.4.00.08-
249744855881
https://portal.mp
f.mp.br/intranet/
apex/f?p=302:1:2
03553293622600:
::::
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/legacy.min.
js?v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
35
/libraries/font-
apex/1.0/fonts/fo
nt-
apex.woff2?v1.0
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.stic
kyWidget.min.js?
v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.stic
kyTableHeader.mi
n.js?v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/legacy.min.
js?v=5.1.4.00.08
36
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.stic
kyTableHeader.mi
n.js?v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/font-
apex/1.0/css/font
-
apex.min.css?v=5.
1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/desktop.mi
n.js?v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.stic
kyWidget.min.js?
v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.ape
xTabs.min.js?v=5.
1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/font-
apex/1.0/fonts/fo
nt-
apex.woff2?v1.0
37
Cookie Baixo https://portal.mp A ausência da flag Quando um cookie
IPCZQX03a24349 f.mp.br/intranet/ segura facilita o guardar
80 criada sem flag apex/wwv_flow.js acesso desse informações
segura _messages?p_ap cookie por sensíveis ou
p_id=302&p_lang agentes não valores de sessão,
=pt- autorizados, verificar se o canal
br&p_version=5.1 especialmente se está criptografado
.4.00.08- a conexão não e se a flag segura
249744855881 estiver está habilitada
criptografada.
Cookie Baixo https://portal.mp Um cookie sem a Certificar-se de que
IPCZQX03a24349 f.mp.br/intranet/ flag HttpOnly a flag HttpOnly
80 criado sem flag apex/f?p=302:LO habilitada pode esteja habilitada
httponly GIN_DESKTOP:::::: ser acessado via para todos os
código JavaScript. cookies.
Se for possível
https://portal.mp rodar código
f.mp.br/intranet/ JavaScript na
apex/wwv_flow.a página ele poderá
ccept acessar o valor
deste cookie. Se
for um cookie de
https://portal.mp sessão, um
f.mp.br/intranet/i atacante pode ser
/libraries/font- capaz de
apex/1.0/css sequestrá-la.
https://portal.mp
f.mp.br/intranet/i
/libraries/font-
apex/1.0/fonts/fo
nt-
apex.woff2?v1.0
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/desktop.mi
n.js?v=5.1.4.00.08
https://portal.mp
f.mp.br/intranet/i
/libraries/apex/mi
nified/widget.stic
kyTableHeader.mi
n.js?v=5.1.4.00.08
38
Cookie Baixo https://portal.mp A ausência do Certificar-se de que
IPCZQX03a24349 f.mp.br/intranet/ atributo SameSite o atributo
80 sem o atributo apex/wwv_flow.a para este cookie SameSite está
SameSite ccept possibilita utilizá- configurado como
lo em requisições ‘lax’ ou ‘strict’.
vindas de outros
https://portal.mp sites, facilitando
f.mp.br/intranet/ ataques de CRSF
apex (Cross-site
Request Forgery).
https://portal.mp
f.mp.br/intranet/i
/libraries/font-
apex/1.0
Cookie Baixo https://portal.mp Um cookie sem a Certificar-se de que
ZNPCQ003- f.mp.br/intranet/ flag HttpOnly a flag HttpOnly
32313300 sem apex/f?p=voto habilitada pode esteja habilitada
flag HttpOnly ser acessado via para todos os
código JavaScript. cookies.
Se for possível
rodar código
JavaScript na
página ele poderá
acessar o valor
desta cookie. Se
for um cookie de
sessão, um
atacante pode ser
capaz de
sequestrá-la.
Cookie Baixo https://portal.mp A ausência da flag Quando um cookie
APEX_INTRANET_ f.mp.br/intranet/ segura facilita o guardar
SERVERID criada apex/f?p=voto acesso desse informações
sem flag segura cookie por sensíveis ou
agentes não valores de sessão,
autorizados, verificar se o canal
especialmente se está criptografado
a conexão não e se a flag segura
estiver está habilitada
criptografada.
Cookie Baixo https://portal.mp A ausência da flag Quando um cookie
ORA_WWV_APP_ f.mp.br/intranet/ segura facilita o guardar
302 criada sem apex/f?p=302:1::: acesso desse informações
flag segura ::: cookie por sensíveis ou
agentes não valores de sessão,
autorizados, verificar se o canal
https://portal.mp especialmente se está criptografado
f.mp.br/intranet/ a conexão não
39
apex/wwv_flow.a estiver e se a flag segura
ccept criptografada. está habilitada
Cookie Baixo https://portal.mp A ausência do Certificar-se de que
ORA_WWV_APP_ f.mp.br/intranet/ atributo SameSite o atributo
302 sem o apex/f?p=302:101 para este cookie SameSite está
atributo SameSite ::::::¬ification possibilita utilizá- configurado como
_msg=RXJybyBhb lo em requisições ‘lax’ ou ‘strict’.
yBvYnRlciBlbnRyY vindas de outros
WRhIExEQVA6IEV sites, facilitando
tYWlsIG7jbyBsb2 ataques de CRSF
NhbGl6YWRv%7B (Cross-site
%7DLjxkaXYgaWQ Request Forgery).
9ImFwZXhfbG9na
W5fdGhyb3R0bG
VfZGl2Ij5BZ3Vhc
mRlIDxzcGFu%7B
%7DIGlkPSJhcGV4
X2xvZ2luX3Rocm
90dGxlX3NlYyI-
NTwvc3Bhbj4gc2
VndW5kb3Mg%7
B%7DcGFyYSBlZm
V0dWFyIGxvZy1p
biBub3ZhbWVud
GUuPC9kaXY-
%2FWqhkWxk3ue
rFyXHFlhuZO-
4PJIsda0_iYx-
TNJ99EoTHrsbun
MbCMx9QdMWx
GXmXYuxWmp2K
dO3hThzhrmCffQ
Cookie Baixo https://portal.mp A ausência da flag Quando um cookie
AAAA03a2434980 f.mp.br/intranet/ segura facilita o guardar
criada sem flag apex/f?p=voto acesso dessa informações
segura cookie por sensíveis ou
agentes não valores de sessão,
autorizados, verificar se o canal
especialmente se está criptografado
a conexão não e se a flag segura
estiver está habilitada
criptografada.
Cookie Baixo https://portal.mp A ausência da flag Quando um cookie
ORA_WWV_RAC_ f.mp.br/intranet/ segura facilita o guardar
INSTANCE criada apex/f?p=302:1::: acesso desse informações
sem flag segura ::: cookie por sensíveis ou
agentes não valores de sessão,
autorizados, verificar se o canal
especialmente se está criptografado
40
a conexão não e se a flag segura
estiver está habilitada.
criptografada.
Cookie Baixo https://portal.mp A ausência do Certificar-se de que
ORA_WWV_RAC_ f.mp.br/intranet/ atributo SameSite o atributo
INSTANCE sem o apex/f?p=302:1::: para este cookie SameSite está
atributo SameSite ::: possibilita utilizá- configurado como
lo em requisições ‘lax’ ou ‘strict’.
vindas de outros
sites, facilitando
ataques de CRSF
(Cross-site
Request Forgery).
Tabela 1.1. Informações dos scanners de vulnerabilidade
41
RECOMENDAÇÕES
(Item 1) Documentação de desenvolvimento do sistema deficiente
1. Implementar melhorias na documentação de desenvolvimento do sistema VOTUM,
buscando registrar todas as regras de negócio nas funções correspondentes existentes na
aplicação.
6. Evitar o uso de usuários genéricos do tipo “ADMIN” para os quais não se possa
personificar o real usuário e adotar credenciais de segurança individuais e intransferíveis,
sempre que possível, em conformidade com a ABNT NBR ISO/IEC 27002:2013.
10. Entregar à Comissão Eleitoral, após o pleito eleitoral, o Log de Sessão da Aplicação
em Execução, gerado automaticamente pela Plataforma APEX, para que possa servir de
insumos em eventual cotejamento da relação de votantes.
42
11. Instituir e manter rotina de testes periódicos dos backups dos ativos que suportam o
Sistema Votum, tais como: banco de dados, ambiente de desenvolvimento, servidores de
aplicações. De acordo com os preceitos da ISO/IEC 27002:2013, Seção 12.3.
(Item 9) Aplicação se mostrou segura frente a testes básicos de ataques por agentes
externos.
13. Implementar rotina de testes periódicos de invasão nos ativos que suportam o Sistema
Votum.
43
CONCLUSÃO
As análises realizadas objetivaram responder a quatro subquestões de auditoria e uma
questão de auditoria principal.
(Item 2) Ausência de controle de versão do sistema. O Sistema Votum não possui controle
de versão da aplicação de modo a manter registradas as alterações realizadas no sistema.
O controle de versão faz parte do gerenciamento e controle de mudanças de um software.
Um adequado versionamento do sistema, além de otimizar o processo de
desenvolvimento, se apresenta como um fator importante de proteção do código-fonte do
sistema.
44
livre por e-mail abre brechas para leitura a partir de um ataque do tipo “homem do meio”
ou de um ataque direto ao servidor de correio. Já o armazenamento de senhas válidas em
uma tabela no banco de dados da aplicação, mesmo que cifradas, majora o risco de quebra
de segurança para atacantes internos com acesso ao banco e conhecimento da cifra.
Outrossim, a ausência de uma política de alterações periódicas de senhas de rede, para
acesso ao sistema de votação, e de disseminação de padrões mais restritivos do uso do
certificado digital também interferem negativamente nos controles de autenticidade dos
eleitores.
45
aplicação de banco de dados do sistema Votum representa um risco elevado à
disponibilidade dos sistemas que suportam a eleição.
Os testes realizados permitem concluir que a aplicação possui razoável segurança contra
ataques oriundos de Agentes Externos, em razão principalmente dos mecanismos de
defesa adotados da infraestrutura do MPF. Já contra ataques originados de Agentes
Internos, pessoas que possuem acesso ao código fonte, ambiente de desenvolvimento,
banco de dados, ou servidores que hospedam a aplicação, o sistema Votum necessita de
melhorias contínuas e constante vigilância no sentido de bloquear brechas para ações
maliciosas ou no mínimo permitir a rastreabilidade dessas ações, quando ocorrerem.
Cabe mencionar que este trabalho não tem o intuito de questionar a ética e boa fé das
poucas pessoas envolvidas no desenvolvimento e sustentação do sistema de votação, até
por que se mostraram abertos e solícitos à equipe da CGU, entregando as informações
possíveis de serem entregues na medida das limitações impostas pela cenário atual de
pandemia, por questões tecnológicas e pelo curto prazo para realização dos trabalhos.
Contudo, sendo um sistema Votum, um sistema criado para atender a objetivo primordial
do MPF, as vulnerabilidades inerentes à atuação de Agentes Internos se mostraram
necessárias de serem apresentadas para que o próprio MPF atue no sentido de estabelecer
controles constantes para mitigar os riscos ou conter os danos causados por essas
vulnerabilidades internas.
46