Você está na página 1de 4

||408_DGP_PF_DISC004_01|| CESPE | CEBRASPE – DGP/PF – Aplicação: 2018

PROVA DISCURSIVA
• Nesta prova, faça o que se pede, usando, caso deseje, o espaço para rascunho indicado no presente caderno. Em seguida, transcreva
o texto para a FOLHA DE TEXTO DEFINITIVO DA PROVA DISCURSIVA, no local apropriado, pois não será avaliado
fragmento de texto escrito em local indevido.
• Qualquer fragmento de texto além da extensão máxima de linhas disponibilizadas será desconsiderado.
• Na Folha de Texto Definitivo, a presença de qualquer marca identificadora no espaço destinado à transcrição do texto definitivo
acarretará a anulação da sua prova discursiva.
• Ao domínio do conteúdo serão atribuídos até 13,00 pontos, dos quais até 0,60 ponto será atribuído ao quesito apresentação
(legibilidade, respeito às margens e indicação de parágrafos) e estrutura textual (organização das ideias em texto estruturado).

Desde 2014, a força-tarefa da Operação Lava Jato coletou um volume impressionante de dados. São
ao menos 1,2 milhão de gigabaites, retirados de computadores e telefones celulares de empresas e pessoas
sob investigação. Seriam necessários 300 mil computadores com memória básica de 4 gigabaites para
arquivar tudo o que já foi coletado. Para processar essa imensidão de dados, a Polícia Federal teve de
inserir-se na era do big data, potencializar suas ferramentas de trabalho e criar métodos próprios para
garantir a análise do conteúdo. O objetivo é desenvolver mecanismos que possam acelerar o combate à
corrupção, às fraudes e aos crimes cibernéticos. Isso é possível porque os softwares de última geração não
apenas compreendem significados de conteúdo dentro dos documentos como também fazem correlações,
sendo possível analisar milhares de páginas e estabelecer conexões automaticamente.

Internet: <www.cbsi.net.br> (com adaptações).

A crescente popularização das redes sociais, a produção massiva de conteúdo dos dispositivos
móveis, o aumento contínuo do número de pessoas conectadas e o fato de 80% dos dados hoje gerados
serem não estruturados fazem que o processo de armazenamento de dados com o objetivo de utilizá-los para
fins analíticos comece a esbarrar nas questões de escalabilidade e de custos de manutenção desses dados.

Considerando que os fragmentos de texto precedentes têm caráter unicamente motivador, redija um texto dissertativo que atenda,
de forma objetiva e devidamente fundamentada, ao que se pede a seguir.

1 Defina banco de dados não relacional (NoSQL) e cite duas vantagens desse modelo sobre o modelo relacional.
[valor: 3,40 pontos]
2 Discorra sobre três modelos de gerenciamento de dados NoSQL. [valor: 6,00 pontos]
3 Comente sobre a vulnerabilidade dos bancos NoSQL a ataques de injeção NoSQL. [valor: 3,00 pontos]
CONCURSO PÚBLICO
DIRETORIA DE GESTÃO DE PESSOAL (DGP)
POLÍCIA FEDERAL (PF)

CARGO 4: PERITO CRIMINAL FEDERAL/ÁREA 3

PROVA DISCURSIVA
Aplicação: 16/9/2018

PADRÃO DE RESPOSTA DEFINITIVO

1 Conceito
Os bancos de dados não relacionais (NoSQL) não utilizam o esquema tradicional de tabela de linhas e colunas; em vez
disso, eles usam um modelo de armazenamento otimizado para desempenho escalável e modelos de dados sem esquema. Os
bancos NoSQL usam diversos modelos de dados, como chave/valor simples, colunares, documentos, gráficos e armazenamento
de pares chave-valor na memória.
Entre as vantagens desse modelo sobre o relacional estão: escalabilidade horizontal, flexibilidade na manipulação de
dados não estruturados, melhor desempenho, seguem as propriedades BASE (Disponibilidade Básica, Estado Flexível,
Consistência Eventual), não implementam as propriedades ACID (Atomicidade, Consistência, Isolamento, Durabilidade) de
forma rigorosa, fato de serem projetados para arquiteturas distribuídas, custos reduzidos, e fato de serem ideais para aplicações
de big data.

2 Modelos de gerenciamento de dados NoSQL

Modelo chave/valor (key/value): sistemas distribuídos nessa categoria, também conhecidos como tabelas de hash distribuídas,
armazenam objetos indexados por chaves e possibilitam a busca por esses objetos a partir de suas chaves. Alguns bancos que
utilizam esse padrão são: DynamoDb, Couchbase, Riak, Azure Table Storage, Redis, Tokyo Cabinet e Berkeley DB.
Modelo orientado a documentos: os documentos dos bancos dessa categoria são coleções de atributos e valores, nas quais um
atributo pode ser multivalorado. Em geral, os bancos de dados orientados a documento não possuem esquema, ou seja, os
documentos armazenados não precisam possuir estrutura em comum. Os dados nos campos de um documento podem ser
codificados de várias maneiras, incluindo XML, YAML, JSON, BSON ou até mesmo armazenados como texto sem formatação.
Alguns bancos que utilizam esse padrão são: MongoDb, CouchDB e RavenDb.
Modelo orientado a grafos: diferentemente de outros tipos de bancos de dados NoSQL, esse está diretamente relacionado a um
modelo de dados estabelecido, o modelo de grafos. A ideia desse modelo é representar os dados e(ou) o esquema dos dados
como grafos dirigidos, ou como estruturas que generalizem a noção de grafos. O modelo de grafos é mais interessante que outros
quando informações sobre a interconectividade ou a topologia dos dados são mais importantes ou tão importantes quanto os
dados propriamente ditos. O modelo orientado a grafos possui três componentes básicos: os nós (são os vértices do grafo), os
relacionamentos (são as arestas) e as propriedades (ou atributos) dos nós e relacionamentos. Um exemplo da utilidade desse tipo
de banco é resolver perguntas como: “Com quais pessoas e por quanto tempo um cliente falou nos últimos 7 dias?” Alguns
bancos que utilizam esse padrão: Neo4J, Infinite Graph, InforGrid e HyperGraphDB.
Modelo orientado a colunas: um armazenamento de dados de colunas ou de família de colunas organiza os dados em colunas
e linhas. É possível pensar em um armazenamento de dados de família de colunas como dados contidos em tabela com linhas e
colunas, mas as colunas são divididas em grupos conhecidos como famílias de colunas. Cada família de colunas contém um
conjunto de colunas que estão logicamente relacionadas e geralmente são recuperadas ou manipuladas como uma unidade. Outros
dados acessados separadamente podem ser armazenados em famílias de colunas separadas.
Modelo orientado a série temporal: os dados de série temporal são um conjunto de valores organizados por tempo e um
armazenamento de dados de série temporal é otimizado para esse tipo de dados. Os armazenamentos de dados de série temporal
devem dar suporte a um número muito alto de gravações, pois geralmente coletam grandes quantidades de dados, em tempo real,
de uma grande variedade de fontes.
Modelo orientado a objetos: tem na sua essência o objetivo de estruturar as informações em objetos, podendo ser acessados
por métodos específicos, os quais são impostos pela classe na qual o objeto está associado. A criação desse modelo tem sido uma
tendência ao se trabalhar com dados mais complexos, por isso é bastante usado nas áreas científicas, espaciais e de
telecomunicações.

3 Vulnerabilidade dos bancos NoSQL a ataques de injeção NoSQL

Os bancos de dados NoSQL possuem menos restrições de consistência que os bancos SQL tradicionais. Por
demandarem menos restrições e verificações de consistência, os bancos de dados NoSQL oferecem melhor desempenho e maior
rendimento. No entanto, Os bancos de dados NoSQL são potencialmente vulneráveis a ataques de injeção, mesmo que não
estejam usando a sintaxe tradicional do SQL.
Tipos de ataques:
- ataques NoSQL Injection podem ser utilizados através de linguagens procedurais, e não apenas linguagens
declarativas;
- falhas de injeção ocorrem quando uma aplicação envia dados não-confiáveis para um interpretador e estão muito
predominantes, particularmente em códigos legados.
- ataques NoSQL Injection podem ter como alvo as convenções de dados semiestruturados usadas nos bancos NoSQL,
como, por exemplo, arquivos JSON, XML, LINQ etc.
- ataques NoSQL Injection podem ser feitos nas linguagens de programação usadas nos bancos NoSQL, como, por
exemplo, Javascript.
Possíveis medidas de prevenção/mitigação contra ataques de injeção NoSQL:
- validação/sanitização de entrada dos dados;
- uso de listas brancas (whitelists);
- uso de APIs seguras;
- higienização de dados.

Quesito 2.1
0 - Não apresenta definição de banco de dados não relacional (NoSQL) e vantagens desse modelo sobre o modelo relacional.
1 – Apresenta definição de banco de dados não relacional (NoSQL) ou uma vantagem.
2 – Apresenta definição de banco de dados não relacional (NoSQL) e uma vantagem ou duas vantagens.
3 - Apresenta definição de banco de dados não relacional (NoSQL) e duas vantagens.

Quesito 2.2
0 – Não apresenta nenhum modelo de gerenciamento de dados.
1 – Apresenta um modelo de gerenciamento de dados.
2 – Apresenta dois modelos de gerenciamento de dados.
3 - Apresenta três modelos de gerenciamento de dados.

Quesito 2.3
0 – Não menciona que os bancos de dados NoSQL possuem menos consistência que os bancos SQL nem que são potencialmente
vulneráveis a ataques de injeção NoSQL.
1 – Menciona que os bancos de dados NoSQL possuem menos consistência que os bancos SQL ou que são potencialmente
vulneráveis a ataques de injeção NoSQL.
2 – Menciona que os bancos de dados NoSQL possuem menos consistência que os bancos SQL e que são potencialmente
vulneráveis a ataques de injeção NoSQL e lista algum exemplo de ataque de injeção ou algum tipo de prevenção contra este tipo
de ataque.

Você também pode gostar