Você está na página 1de 14

2023

Perito - Polícia Federal


2018 – CESPE/CEBRASPE
NOSQL

LUIZ GUSTAVO RIBEIRO


LGR CURSOS
LGR CURSOS NOSQL

Sumário
ENUNCIADO DA QUESTÃO ............................................................................................................ 2
TEORIA – O QUE VOCÊ PRECISA SABER PARA RESPONDER ......................................................... 3
RESOLUÇÃO DA QUESTÃO............................................................................................................. 7
PROVA - CEBRASPE ...................................................................................................................... 10
PADRÃO DE RESPOSTA - CEBRASPE ............................................................................................ 12

Página 1
LGR CURSOS NOSQL

ENUNCIADO DA QUESTÃO

Prova Discursiva – Perito Polícia Federal 2018 – CESPE/CEBRASPE

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.

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]

Página 2
LGR CURSOS NOSQL

TEORIA – O QUE VOCÊ PRECISA SABER PARA RESPONDER

Motivação para surgimento do No SQL

Para os desenvolvedores de aplicações, a maior frustração tem sido a diferença entre


o modelo relacional e as estruturas de dados na memória, comumente chamada de
incompatibilidade de impedância. Os modelos de dados relacionais organizam os dados em
uma estrutura de tabelas e linhas, ou, mais apropriadamente, de relações e tuplas. Essa
rigidez do esquema de armazenamento de dados dificulta a manipulação de dados
semiestruturados e não estruturados.
Outro ponto relevante é o crescimento dos Sistemas Web. Lidar com o aumento da
quantidade de dados e com o tráfego exigiu mais recursos computacionais. Para comportar
esse crescimento, há duas opções: ir para cima (crescimento vertical) ou para fora/lado
(horizontal). Ir para cima significa adquirir máquinas maiores, mais processadores, ter maior
capacidade de armazenamento em disco e memória. Máquinas maiores, todavia, tornam-se
cada vez mais caras, sem mencionar que há limites físicos quanto ao aumento do seu
tamanho ou para se escalar verticalmente. A alternativa seria utilizar mais máquinas
menores em um cluster. Um cluster de máquinas pequenas pode utilizar hardware mais
acessível e acaba se tornando mais barato para a aplicação. Ele também pode ser mais
resiliente. Embora falhas em máquinas individuais sejam comuns, o cluster, como um todo,
pode ser criado para continuar funcionando apesar dessas falhas, fornecendo alta
confiabilidade.

O surgimento do NoSQL (NotOnlySQL) surge nesse contexto de busca por bancos de dados
mais eficientes em:
☛ manipulação dados semiestruturados e não estruturados.
☛ armazenamento distribuído de dados (clusters).

PALAVRAS DOS PRINCIPAIS AUTORES


Elmasri, R. Navathe, S. B.; Sistema de banco de dados. 7. Ed. – SP: Pearson Education do Brasil, 2018. (p795)

Segundo os autores:

“O termo NOSQL é geralmente interpretado com Not Only SQL – em vez de NO to SQL – e tem por finalidade
transmitir a ideia de que muitas aplicações precisam de sistemas diferentes de gerenciamento de dados. A maioria
dos sistemas NOSQL são bancos de dados distribuídos ou sistemas de armazenamento distribuído, com foco no
armazenamento de dados semiestruturados, alto desempenho, disponibilidade, replicação de dados e escalabilidade,
ao contrário da ênfase em consistência imediata de dados, linguagens de consulta poderosas e armazenamento de
dados estruturados.”

Falando sobre aplicações que armazenam quantidades imensas de dados, pontuam:

“um sistema SQL relacional estruturado pode não ser apropriado porque (1) os sistemas SQL oferecem muitos
serviços (linguagem de consulta poderosa, controle de concorrência etc.) de que essa aplicação pode não necessitar; e
(2) um modelo de dados estruturados, como o modelo relacional tradicional, pode ser muito restritivo. Embora os
sistemas relacionais mais recentes tenham opções de modelagem objeto-relacional mais complexas, eles ainda exigem
esquemas, que não são exigidos por muitos dos sistemas NOSQL.”

Página 3
LGR CURSOS NOSQL

Principais características dos Bancos de Danos NOSQL

As principais características dos bancos de dados NoSQL são:

☛ não utilizam o modelo relacional (tabela-relações / tuplas-linhas / atributos-colunas)


☛ boa execução em clusters / escalabilidade horizontal
☛ disponibilidade, replicação e consistência eventual
☛ possuem código aberto (open source)
☛ criados para suportar propriedades da web do século XXI (3Vs)
☛ não tem um esquema definido (free schema)
☛ versionamento dos dados

Os 3Vs evoluíram e, atualmente, são 5Vs:

Portanto:

☛ Bancos de dados não relacionais são adequados para tratar dados mistos/variados, onde
se misturam tabelas, imagens e mapas, por exemplo, que não poderão ser tabulados em
colunas e linhas de tabela.

☛ Quando comparados com BD relacionais, sistemas NoSQL oferecem maior


escalabilidade, melhor performance em consultas e maior flexibilidade na manipulação de
dados, os quais podem apresentar diferentes formatos.

☛ O SQL, geralmente, não é utilizado como linguagem de consulta em um banco de dados


NoSQL, mas em alguns casos é possível utilizá-lo como, por exemplo, ocorre no Apache
Phoenix para consultas no HBase.

Página 4
LGR CURSOS NOSQL

PALAVRAS DOS PRINCIPAIS AUTORES


Elmasri, R. Navathe, S. B.; Sistema de banco de dados. 7. Ed. – SP: Pearson Education do Brasil, 2018. (p797)

Os autores dividem as características de sistemas NOSQL em duas categorias:

1. Características relacionadas a bancos de dados distribuídos e sistemas distribuídos:

➯ Escalabilidade horizontal
(expansão com adição de mais nós)

➯ Disponibilidade, replicação e consistência eventual


(para ↑ disponibilidade, deve-se ↑ replicação, o que ↓consistência)

➯ Modelos de replicação
(mestre-escravo e mestre-mestre)

➯ Sharding de arquivos
(particionamento horizontal – não armazenar arquivo inteiro em um nó)

➯ Acesso a dados de alto desempenho


(utilizando técnicas de hashing ou particionamento por intervalo)

2. Características relacionadas a modelos de dados e linguagens de consulta.

➯ Não exigência de um esquema


“a flexibilidade de não exigir um esquema é alcançada em muitos sistemas NOSQL, permitindo dados
semiestruturados e autodescritivos. Os usuários podem especificar um esquema parcial em alguns sistemas para
melhorar a eficiência do armazenamento, mas não é preciso que haja um esquema na maioria dos sistemas
NOSQL.”

➯ Linguagens de consulta menos poderosas


“muitas aplicações que usam sistemas NOSQL podem não exigir uma linguagem de consulta poderosa, como SQL,
porque as consultas de pesquisa (leitura) nesses sistemas geralmente localizam objetos únicos em um único arquivo
com base em suas chaves de objeto.”

➯ Versionamento
“alguns sistemas NOSQL fornecem armazenamento de múltiplas versões dos itens de dados, com os rótulos de tempo
(timestamps) de quando foi criada a versão dos dados.”

Página 5
LGR CURSOS NOSQL

Categorias de sistemas NOSQL

A categorização mais comum dos sistemas NOSQL lista quatro principais categorias:

➯ Documentos
➯ Chave-valor
➯ Grafos
➯ Coluna

PALAVRAS DOS PRINCIPAIS AUTORES


Elmasri, R. Navathe, S. B.; Sistema de banco de dados. 7. Ed. – SP: Pearson Education do Brasil, 2018. (p799)

Sistemas NOSQL baseados em documentos: estes sistemas armazenam dados na forma de documentos usando
formatos conhecidos como JSON (JavaScript Object Notation). Os documentos são acessíveis por meio de seu ID de
documento, mas também podem ser acessados rapidamente usando outros índices.

Armazenamentos de chave-valor do NOSQL: estes sistemas possuem um modelo de dados simples, com base
no acesso rápido pela chave ao valor associado à chave; o valor pode ser um registro, um objeto, um documento ou
até mesmo ter uma estrutura de dados mais complexa.

Sistemas NOSQL baseados em coluna ou em largura de coluna: estes sistemas particionam uma tabela por
coluna em famílias de colunas (uma forma de particionamento vertical), em que cada família de colunas é
armazenada em seus próprios arquivos. Eles também permitem o versionamento dos valores de dados.

Sistemas NOSQL baseados em grafos: os dados são representados como grafos e os nós relacionados podem ser
encontrados percorrendo suas arestas por meio de expressões de caminho.

Modelos Relacionais vs Modelos não relacionais

Modelos relacionais
➯ Diferença entre o modelo relacional e as estruturas de dados na memória
(incompatibilidade de impedância)
➯ Rigidez do esquema
➯ Apenas dados estruturados

Modelos não relacionais (NoSQL)

Crescimento dos sistemas web > mais recursos computacionais > escalabilidade horizontal
➯ sistemas distribuídos > mais resiliente / alta confiabilidade / disponibilidade

➯ Escalabilidade horizontal
➯ Flexibilidade (free schema)
➯ Dados não estruturados e semi-estruturados

Página 6
LGR CURSOS NOSQL

RESOLUÇÃO DA QUESTÃO

Passo 1: Analisar enunciado pensando no possível padrão de respostas (espelho). Quais


itens devem estar presentes nesse padrão?

1.1 Definição de banco de dados não relacional.


1.2 Duas vantagens desse modelo sobre o modelo relacional.

2. Três modelos de gerenciamento de dados NoSQL.

3. Comentar sobre vulnerabilidade a ataques de injeção NoSQL.

Vamos utilizar esses itens como roteiro da resposta, mas antes de continuar vamos tentar
detalhar um pouco mais nosso provável padrão de respostas realizando o passo 2.

Passo 2. Brainstorming. Quais palavras chaves você acredita que poderiam estar presentes
no padrão de respostas.

Algumas dicas do próprio texto:


➯ Velocidade de processamento e análise dos dados
➯ Volume de dados: Quantidade de dados
➯ Variedade dos dados: Aumento da quantidade de dados não estruturados
➯ Finalidade de uso dos dados – Analítica
➯ Aumento da escalabilidade
➯ Redução de custo de manutenção

1.1 Definição de banco de dados não relacional.


➯ Não possui o formato rígido dos bancos de dados relacionais (tabelas: linhas x colunas).
➯ Permite o armazenamento de dados não estruturados.

1.2 Duas vantagens desse modelo sobre o modelo relacional.


Melhor em bancos de dados distribuídos pois facilita a escalabilidade
Dados flexíveis. Free Schema

2. Três modelos de gerenciamento de dados NoSQL.


Chave-valor
Documentos
Família de Colunas
Grafos

3. Comentar sobre vulnerabilidade a ataques de injeção NoSQL.


Semelhante a injeção sql, ou seja, o atacante insere scripts em campos de entrada não
validados pela aplicação. Este tipo de ataque deixa os bancos de dados NOSQL vulneráveis.

Página 7
LGR CURSOS NOSQL

1.1 Definição de banco de dados não relacional.

Os bancos de dados NoSQL não necessitam da linguagem SQL para serem


manipulados, e é por isso que recebem o nome de “Not Only SQL”. Também podem ser
chamados de bancos de dados não relacionais porque não seguem o modelo relacional de
estrutura fixa formado por tabelas com linhas e colunas. Ao invés desse esquema pré-
determinado e rígido, nos bancos de dados NoSQL os dados possuem maior flexibilidade
podendo ser representados de várias formas, como documentos ou grafos.

1.2 Duas vantagens desse modelo sobre o modelo relacional.

As principais vantagens do modelo não relacional sobre o modelo relacional estão


relacionadas à forma de consulta. Enquanto o modelo relacional utiliza uma linguagem de
consulta poderosa, porém complexa (SQL), no modelo não relacional, a simplicidade das
consultas e da manipulação dos dados propicia a utilização de sistemas distribuídos, o que
os torna altamente escaláveis (escalabilidade horizontal). Além disso, a facilidade de
replicação dos dados em sistemas distribuídos garante sua alta disponibilidade. Essas
características fazem com que bancos de dados NoSQL sejam mais apropriados para
trabalhar com grande volume, variedade e velocidade de dados (Big Data).
Outra vantagem dos bancos de dados NoSQL está relacionada a ausência de um
esquema rígido predeterminado (free schema), pois essa característica permite que esses
bancos de dados sejam capazes de armazenar e manipular dados semiestruturados e não
estruturados.

2. Três modelos de gerenciamento de dados NoSQL.

A tecnologia NoSQL pode ser dividida em quatro modelos: chave-valor, colunar,


documentos e grafos.
O modelo baseado em documentos armazena dados na forma de coleções de
documentos como, por exemplo, os objetos JSON (JavaScript Object Notation). O Mongo
DB é um exemplo desse tipo de banco de dados, no qual os objetos JSON, quando inseridos
no banco de dados são convertidos em um formato binário (BSON). Neste tipo de BD,
coleções são análogas às tabelas dos bancos de dados relacionais e os documentos são
equivalentes as tuplas/linhas.
No modelo chave-valor, como o próprio nome diz, o acesso ao dado (valor) é feito
através de sua chave, o valor pode ser um registro, um objeto, um documento ou até mesmo
uma estrutura mais complexa. A simplicidade limita aplicações que precisam de uma
estrutura mais sofisticada para armazenar seus dados e dificulta consultas mais complexas,
como agregações e filtragens, sem uma camada adicional de processamento de dados.
O modelo baseado em coluna particiona a tabela por suas colunas (particionamento
vertical) gerando as famílias de colunas. Essa nova distribuição dos dados, em alguns casos,
melhora a eficiência de armazenamento e consultas. O Cassandra e o HBase são exemplos
de bancos de dados que utilizam esse modelo. A principal vantagem desse modelo é que,
como cada coluna é independente, ela pode ser armazenada e processada de forma
paralela aumentando a velocidade de armazenamento e consulta.
No modelo de grafos, os dados são representados como grafos e possuem três
componentes básicos: os nós (vértices do grafo), os relacionamentos (as aresta) e as
propriedades (ou atributos) dos nós e relacionamentos. Este tipo de banco de dados é muito
utilizado em redes sociais. Um exemplo de BD baseado nesse modelo é o Neo4J.

Página 8
LGR CURSOS NOSQL

3. Comentar sobre vulnerabilidade a ataques de injeção NoSQL.

Os ataques de injeção NoSQL são uma ameaça à segurança de aplicações que


utilizam bancos de dados NoSQL para armazenar e recuperar informações, podendo levar
ao roubo de informações confidenciais como senhas, informações pessoais e outros dados
sensíveis. São semelhantes aos ataques de injeção SQL, ou seja, o atacante insere scripts
em campos de entrada não validados pela aplicação. No entanto, o uso de diferentes
linguagens de consulta e a ausência de uma estrutura de dados rigorosa, torna os bancos
de dados NoSQL ainda mais vulneráveis quando comparados aos bancos de dados
relacionais.
As principais medidas de prevenção/mitigação contra os ataques de injeção NoSQL
são a validação/sanitização de entrada dos dados, o uso de listas brancas (whitelists), o uso
de APIs seguras e a higienização de dados.

OBS: O padrão de respostas definitivo disponibilizado pelo CEBRASPE contém trechos em


vermelho, alguns deles estão tachados. Os trechos em vermelho (não tachados) foram
adicionados após os recursos. Os trechos em vermelhos e tachados estavam inicialmente
no padrão de respostas, mas foram retirados após os recursos.

Página 9
||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]
||408_DGP_PF_DISC004_01|| CESPE | CEBRASPE – DGP/PF – Aplicação: 2018

RASCUNHO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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