Escolar Documentos
Profissional Documentos
Cultura Documentos
Campinas
2022
MURILO LOUREDO DO CARMO
MATHEUS FERREIRA SANTANA
GUSTAVO HENRIQUE CREVELARIO LEITE
GUILHERME GIMENES MAYER
Campinas
2022
Dedicatória
Dedicamos o nosso TCC aos nossos familiares que nos apoiaram em todo
decorrer do curso. E também a todos os professores do Colégio Bento Quirino, que
fizeram o possível e o impossível para nos ensinar mesmo em um momento
conturbado, em especial para o coordenador e professor Adriano e para o professor
Felipe que estiveram conosco em todos os momentos.
Agradecimentos
1. INTRODUÇÃO
1.1. Tema
Com o passar dos anos a internet começou a ser muito utilizada, logo,
diversas pessoas acessam no seu cotidiano, logo, essa utilização em massa
chamou a atenção de mal intencionados, portanto, este trabalho irá apresentar
através de um site informativo/educativo métodos de se defender e proteger através
dos conteúdos apresentados no mesmo, sendo eles: o que é segurança da
informação, seus princípios, como ela impacta no cotidiano, do que a segurança da
informação visa nos proteger e como suas metodologias influenciam e permitem
sistemas serem mais seguros. E para acompanhar a segurança da informação
temos o Web Hacking, o que ele é, seus perigos, o que é possível fazer e aprender
com web hacking.
1.2. Problematização
Figura 1 - Questão 1.
Questão 2:
11
Figura 2 - Questão 2.
Questão 3:
Figura 3 - Questão 3.
Questão 4:
12
Figura 4 - Questão 4.
Questão 5:
Figura 5 - Questão 5.
Questão 6:
13
Figura 6 - Questão 6.
Questão 7:
Figura 7 - Questão 7.
Questão 8:
14
Figura 8 - Questão 8.
1.3. Justificativa
1.4. Hipótese
2. DESENVOLVIMENTO
2.1. Aplicação
Figura 9 - HTML.
descoordenadas.
3. Conceitos de S.I.
3.1. Introdução SI
3.2. Os Pilares
Os pilares da segurança da informação são os principais responsáveis
por sustentar e dizer se a segurança da informação está em condizente com
a atualidade mediante ao mundo da tecnologia. Eles são os encarregados
por separar as necessidades e qualificá-las de acordo com suas
23
3.2.1. Confiabilidade
3.2.2. Integridade
24
● Integridade de entidade:
A integridade da entidade garante precisão dos dados e
informações contidas no banco de dados, nas suas linhas,
colunas, tabelas, mas para isso, os fatores devem grandes
quantidades.
● Integridade referencial:
A integridade referencial está interligado a processos que
asseguram os dados armazenados de forma uniforme, isso de
acordo com as regras e procedimentos estabelecidos ao banco
de dados, neste contexto temos as criações de chaves de
acesso, onde possibilita que sejam realizadas dentro do banco
somente as determinadas execuções de comandos corretos,
sendo elas de alteração, exclusão e ou adição.
As regras e procedimentos limitam e articulam diversos
erros internos ou procedimentos que facilitam no
desenvolvimento do banco de dados, podendo evitar a entrada
de dados duplicados e precisão nos dados adicionados ou
qualquer outro fator que possa ser estabelecido previamente ao
início do processo.
● Integridade de domínio:
26
3.2.3. Disponibilidade
Esse pilar como o próprio nome sugere a grosso modo se diz respeito
à garantia de disponibilidade dos dados que permitem o acesso aos
mesmos a qualquer momento de forma ágil pelos usuários e colaboradores.
Para que isso ocorra, o sistema e a aplicação que provém os dados deve
possuir total acesso às informações contidas em si, para que possa
eventualmente, apresentar as mesmas a quem deseja acessá-las. Mas para
que isso ocorra são etapas de manutenção veloz e contínuo, tanto de
hardware quanto de software e sendo assim, permitindo que o programa
responsável por organizar os dados na aplicação tenha o funcionamento
fluído, constante e imediato para estar disponível o sempre que possível,
entretanto isso tudo não é o suficiente, para complementar é pertinente
manter o projeto atualizado, ativo, online, seguro e salvo para que esteja
sempre a disposição para uso em qualquer momento independente da
situação atual na qual a aplicação esteja em funcionamento.
Exemplificando podemos novamente apresentar algo presente no
nosso dia-a-dia como qualquer sistemas empresariais, sistemas públicos e
outros que transmitem a disponibilidade de dados.
3.2.4. Autenticidade
27
Por fim o último pilar, que possui dois nomes, Irretratabilidade e Não
Repúdio, ele tem como objetivo solucionar possíveis problemas futuros,
principalmente em relação ao aspecto jurídico do processo inserido, o Não
Repúdio garante que corporações, empresas, entidades ou alguém não
possa negar o domínio na divulgação de informações, isso é, com intuito de
ter um documento, que possa provar que houve algo feito em um sistema
isso tudo a fim de se defender de possíveis acusações e processos feitos
pessoas mal intencionadas.
Como exemplo da área de atuação deste pilar podemos citar
assinaturas de documentos online, um exemplo que não é raro de se
acontecer e tem uma relevância significativa.
É notável a presença dos pilares em sistemas mais comuns que estão
em contatos frequentes com os usuários, fornecedores, ajudantes e até
mesmo desenvolvedores.
3.3.1. Temas
3.3.1.1. Backup
29
3.3.1.2. Boatos
portanto as boas práticas irão auxiliar para que possa haver mais experiência
e conhecimento ao negociar na internet
Essas são algumas atitudes que podem ser feitas para garantir a
proteção e privacidade em relação ao dispositivo.
● Perda de dados:
Diversos dados são perdidos e alterados muitas vezes por
malwares ou por ocasiões de ataques que possam acabar
afetando os nossos dados, alterando-os ou apagando-os.
● Acesso indevido:
33
3.3.1.9. Redes
4. Hacking
Construir aplicação segura é de fato uma tarefa difícil, pois nos dias atuais
existem diversos tipos de ataques, e com o passar do tempo, novas
vulnerabilidades acabam surgindo.
Grande parte dos ataques possui relação com conceitos de engenharia social
e vulnerabilidades presentes na infraestrutura da aplicação. As vulnerabilidades
presentes na infraestrutura da aplicação. As vulnerabilidades podem ser
encontradas em softwares utilizados no desenvolvimento da aplicação, como SGBS
ou mesmo servidores de aplicação. Entretanto, grande parte das vulnerabilidades
são causadas pelos próprios desenvolvedores da aplicação, muito embora, em dias
atuais, muitos frameworks tentam consertar a maior parte dessas vulnerabilidades.
Muitas das Vulnerabilidades possuem classificações especiais dentro do campo das
vulnerabilidades, entretanto, o termo code injection será frequentemente
encontrado ao explorar sobre as principais vulnerabilidades, pois trata-se de
ataques onde um tipo de código é injetado ou inserido dentro do código da
aplicação, onde a aplicação passa a interpretar esse código gerado, o que pode
gerar mudança no comportamento ou até mesmo a o não funcionamento da
aplicação.
a sintaxe SQL cada vez mais universalizada. Existem dois tipos de procedimentos
envolvendo comandos SQL comuns. Instruções estáticas e instruções dinâmicas,
sendo uma instrução SQL detentora de parâmetros, de maneira lógica, quase
sempre requisitará uma inserção desses parâmetros para realizar a rotina em que
se insere.
Muitas vezes, features de login utilizam dessas instruções dinâmicas para realizar a
consulta dinâmica, onde o valor inserido pelo usuário é concatenado em uma SQL
query. Isso é exatamente o que acaba gerando a vulnerabilidade, onde o usuário
pode utilizar das entradas do sistemas para inserir uma instrução SQL qualquer.
Uma possível solução para a prevenção simples de ataques SQL Injection é
a validação e tratamento dos valores obtidos por meio de inserção do usuário.
Existem técnicas específicas para sistemas de conexão com banco de dados que
utilizam o paradigma da orientação a objetos, como o ORM (Object Relational
Mapping), a técnica consiste em reduzir ao máximo vulnerabilidades no sistema
CRUD, ondes tabelas do banco de dados são representadas através de classes e
os registros de cada tabela são representados como instâncias das classes
correspondentes. Com esta técnica, não é necessário se preocupar com os
39
Outro fator sobre códigos javascript para realização de ataques XSS, mesmo
que haja um mecanismo que inibe a incrementação de código javascript pelo cliente
na aplicação, existem formas bem triviais e convencionais para blindar o código
javascript de ser detectados por mecanismos de defesa. Um deles consiste em
inserir o código javascript em atributos de elementos HTML.
Além desse tipo de inserção, existem outras vias, como converter o código
javascript em hexadecimal, tendo como ideia mascarar esse código javascript para
que algoritmos de tratamento de XSS não consigam detectar a presença de sintaxe
javascript, e, ainda sim, o navegador interpreta esse código javascript escrito em
hexadecimal normalmente.
assim, cada vez que uma requisição no navegador local é disparada, o Cookie
correspondente é verificado no servidor e então a página com conteúdo é devolvida.
Os ataques de CSRF consistem em requisições forçadas para caminhos de
páginas com formulários, referenciando seus parâmetros HTTP com a tentativa de
acessar funcionalidades de uma aplicação que não possui um cadastro ou
autenticação necessária. Dessa maneira, um Hacker, em sistemas onde se possui
mecanismo de autenticação onde Sessions ou Cookies são utilizados, para ter
acesso é necessário lançar uma isca, para obter essas informações de um usuário,
forjando uma requisição, sendo muitas vezes utilizadas cópias do formulário original
para obter essas informações. Uma das formas mais comuns de proteção contra
ataques CSRF é utilizando token. Esses tokens podem ser inputs de um
formulário HTML que são escondidos no navegador do usuário, onde a cada
usuário cadastrado em um sistema, um número aleatório com letras é gerado.
Sendo assim, o Token é contido dentro do código de validação da aplicação.
Sendo assim, por meio de uma divisão simples em quatro fases, é possível realizar
testes de penetração de maneira mais objetiva que um simples ataque em isolado.
5.2. Websploit
O Websploit trabalha coletando informações sobre portas, serviços e
aplicações rodando em um servidor. Cada servidor web possui diversas portas TCP
abertas e executando serviços distintos, onde a informação trafega de maneira
criptografada
O Websploit permite a realização de exploração de vulnerabilidades e
analisar sistemas remotos. Ao iniciar, basta digitar o comando use utilizando a
referência TARGET para referenciar o url do alvo.
6. Conclusão
Com base nos resultados obtidos, em trabalhos futuros é de desejo dos membros
deste projeto, a criação de aplicações para web com um código menos vulnerável e
um infra-estrutura mais resistente a ataques, sendo que mesmo com muitos
frameworks que minimizam as falhas de segurança, é muito importante desenvolver
aplicações com o máximo de atenção, para não permitir que essas falhas ocorram.
Também é de pretensão dos membros desse projeto adquirir experiência com
sistemas operacionais distintos, para compreender as suas diferenças e
vulnerabilidades do lado do cliente, e do lado do servidor. E por fim para
complementar desejamos e esperamos que os conteúdos apresentados tenham
sido abordados de forma que os usuários de quaisquer meio de tecnologia,
principalmente a web possam ter extraído conhecimento, novos aprendizados e
reforçar caso seja de conhecimento do usuário.
52
7. Referências bibliográficas
Muniz, Joseph. Lakhani, Aamir. Web Penetration Test With Kali Linux. Capítulos:
Conceitos de testes de penetração de aplicativos Web, Conceitos Kali testes de
penetração, Ataques do lado do servidor, Cracking de Senhas, A engenharia social,
Kal: ferramentas de quebra de senhas, Autenticação Atacar. 2022.
53