Você está na página 1de 34

Projeto 2 - AppArmor

• Amadeu Marchi
• Lucas Francisco de Melo
• Maurício Zazeri
• Uriel Pedroso

Mais informações em: https://hackmd.io/team/admso?nav=overview


AppArmor
• Sistema de Controle de Acesso Mandatório (Mandatory Access Control);
• Consulta do kernel;
• Utilização de perfis;

Mais informações em: https://hackmd.io/team/admso?nav=overview


Instalação
• Realizar o download do AppArmor para o sistema;
• Para carregar todos os perfis do AppArmor na inicialização
ative com
apparmor.service

• Para definir o AppArmor como modelo de segurança padrão


em cada inicialização

lsm=landlock,lockdown,yama,apparmor,bpf
CONFIG_SECURITY_APPARMOR=s
CONFIG_AUDIT=s

Mais informações em: https://hackmd.io/team/admso?nav=overview


Configuração
• Para criar novos perfis, a estrutura de auditoria deve estar em execução. Novos
perfis do AppArmor podem ser criados utilizando aa-genprof;

aa-genprof /home/jose/XXX/XXX/...

• O relatório de logs é exibido com o uso do comando:


aa-logprof

• O perfil deve ser definido no modo de imposição com:


aa-enforce

Mais informações em: https://hackmd.io/team/admso?nav=overview


Perfis

Mais informações em: https://hackmd.io/team/admso?nav=overview


FTP
• O que é?
O FTP (File Transfer Protocol), é um protocolo usado para transferir
arquivos por uma rede de computadores, desde uma local à internet.
Basicamente, permite a troca de arquivos entre dois computadores de
modo direto, em que um ganha acesso às pastas do outro.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Funcionamento
• FTP é um protocolo cliente-servidor. O cliente solicita os
arquivos e o servidor os fornece. 
• O FTP requer dois canais básicos para estabelecer uma
conexão: o canal de comando e o canal de dados
• Também é importante notar que existem dois modos distintos
de conexão FTP: ativo e passivo.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Quais problemas o FTP resolve?
• O FTP é frequentemente usado para lidar com um grande
número de arquivos

Mais informações em: https://hackmd.io/team/admso?nav=overview


Configuração do SSH
• Instalando o Ftp:
pacman –S vsftpd
• Startar o serviço:
systemctl start vsftpd.service
• Configurar o vsftpd:
nano /etc/vsftpd.conf

Mais informações em: https://hackmd.io/team/admso?nav=overview


Mais informações em: https://hackmd.io/team/admso?nav=overview
Mais informações em: https://hackmd.io/team/admso?nav=overview
SSH
• O que é?
O SSH (secure shell) é um protocolo que garante que
cliente e servidor remoto troquem informações de maneira
segura e dinâmica, o que garante a transferência de
dados sem nenhuma perda de informação.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Funcionamento
• O SSH fornece um mecanismo que autentifica o usuário remoto
para garantir que este usuário tem autorização para se
comunicar com o servidor.
• Feita a autenticação é então estabelecida uma conexão onde as
informações são transportadas nesse modelo de secure shell,
de forma criptografada.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Criptografias
Tem três principais tipos de criptografias utilizadas no ssh.
1. Simétrica:
Método de criptografia que utiliza apenas uma chave que é
compartilhada entre usuário e servidor. A chave é responsável
por cifrar e decifrar a mensagem.
2. Assimétrica:
Diferente da simétrica a criptografia assimétrica utiliza um par
de chaves, uma chave pública distribuída abertamente, e uma
chave privada exclusiva do usuário. Só é possível de
criptografar diante da posse da chave privada.
3. Hashing:
O hash é um método que garante a integridade da mensagem.
Ou seja, é gerado um código especifico para cada mensagem
que serve para autenticar se a mensagem foi alterada ou não
no meio do caminho.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Configuração do SSH
• Com o SSH já instalado na máquina abrimos o arquivo para configurar
o ssh usando o comando:
/etc/ssh/sshd_config
Configuramos com o IP : 10.1.1.100/24 na porta 22.
Depois para iniciar o ssh em modo teste basta utilizar o comando:
sshd -t

Mais informações em: https://hackmd.io/team/admso?nav=overview


Mais informações em: https://hackmd.io/team/admso?nav=overview
Acesso
• Para acessar o host através do cliente utiliza-se o seguinte
comando:
ssh -p port user@server-address
Substituindo o “sever-address” pelo endereço do site ou o IP
dele. E substituindo o port pela porta, no caso a porta 22.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Apache
• O que é?
• O Apache é um servidor de código aberto, mantido pela Apache
Software Foundation e alimenta cerca de 46% de todos os sites
hospedados na internet.

• Ele praticamente permite a exibição dos sites e garante que seus


conteúdos permaneçam online na internet.

• Sua primeira versão foi lançada há mais de 20 anos atrás

Mais informações em: https://hackmd.io/team/admso?nav=overview


Utilidade
• O Apache serve como um mediador entre as máquinas e os
servidores, ele recebe os conteúdos de um servidor para cada pedido
do cliente e realiza a entrega desse conteúdo na internet

• O Apache é executado por milhares de servidores que processam os


mais diversos arquivos escritos em diferentes linguagens de
programação, como: Python, Java, PHP, entre outras.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Funcionamento
• A função do Apache é estabelecer uma conexão sólida entre o servidor e
os navegadores de sites, enquanto recebe e entrega arquivos entre eles.

• O servidor e o cliente se comunicam através do protocolo HTTP. Sendo


assim, o Apache é responsável por facilitar e assegurar essa
comunicação (cliente/servidor)

• O Apache possui uma estrutura baseada em módulos, que dão


permissões aos administradores de ativarem ou desativarem novas
funcionalidades.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Aplicação
• Para iniciarmos a instalação, fizemos um update no sistema:
pacman –Syu
• E depois a instalação:
pacman -S apache
• Habitamos o servidor e o iniciamos:
systemctl enable httpd
systemctl restart httpd
• Verificamos o status:
systemctl status http 

Mais informações em: https://hackmd.io/team/admso?nav=overview


SQL
• O que é?
• O SQL é uma linguagem padrão para trabalhar com banco de dados.
Ela é uma linguagem declarativa e simples.

• A linguagem SQL é utilizada de maneira semelhante entre os principais


bancos de dados relacionais do mercado, como por exemplo: MySQL,
Oracle, MariaDB, etc...

Mais informações em: https://hackmd.io/team/admso?nav=overview


Utilidade
• O SQL padroniza a maneira com que os profissionais de TI executa
comandos em seus Sistemas Gerenciadores de Banco de Dados
(SGBD)

• O SQL é útil para os desenvolvedores que buscam um


relacionamento direto com bancos de dados e que possam manipular
ou visualizar dados com mais facilidade.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Funcionamento
• O SQL é Utilizado para interagir com o SGBD e executar diversas
operações de manipulação através da linguagem de programação
padrão.

• E para a padronização desses comandos no SQL os chamados


subconjuntos se fazem presente.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Subconjuntos do SQL
• DML (Linguagem de Manipulação de Dados)
Este subconjunto tem como objetivo alterar dados das tabelas, como por exemplo inserir,
excluir e atualizar dados.
Seus comandos mais utilizados são insert, delete e select.
• DDL (Linguagem de Definição de Dados)
Este subconjunto serve para modificar o banco de dados através de, por exemplo, a criação
e a remoção de objetos.
Seus comandos mais utilizados são create e drop.
• DCL (Linguagem de Controle de Dados)
Este subconjunto serve para definir permissões, bloqueios e restrições de usuários.
Seus principal comando é o grant, que fornece acesso ou privilégios para usuários a
diferentes tabelas.
• DTL (Linguagem de Transação de Dados)
Este subconjunto serve para publicar estas alterações através de comandos como o
commit.
• DQL (Linguagem de Consulta de Dados)
É a mais popular para quem não precisa necessariamente conhecer o funcionamento de um
banco de dados, mas somente consultar suas informações.
O principal comando deste subconjunto é o select.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Aplicação
• Utilizamos o MariaDB, segue o código de sua instalação:
pacman –S mysql
• Inicialização do serviço para a base de dados funcionar corretamente:
pacmysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
• Inicializando o serviço:
systemctl enable mysql
systemctl start mysql
• Verificamos o serviço MariaDB:
systemctl status mysql 
• Definindo password para o root:
mysql_secure_installation

Mais informações em: https://hackmd.io/team/admso?nav=overview


PHP
• O que é?
• O PHP é uma linguagem de script de código aberto de uso geral,
adequada para o desenvolvimento web e que pode ser embutida dentro
do HTML.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Funcionamento
• O PHP é usado em união com o HTML, de maneira que, caso um
usuário deseje acessar um site especifico, o código PHP será
executado, que consequentemente irá gerar um código HTML resposta
destinado ao usuário para a pagina carregada. O PHP processa as
informações e devolve ao navegador do usuário o resultado da
interpretação, em formato HTML

Mais informações em: https://hackmd.io/team/admso?nav=overview


Aplicação
• Instalação:
pacman –S php php-apache
• Editando o arquivo de configuração do Apache
(Imagem 1)

Mais informações em: https://hackmd.io/team/admso?nav=overview


Aplicação
• Editando o arquivo de configuração do Apache
(Imagem 2)
• Após os passos, geramos as chaves SSL para o
HTTP e reiniciamos o servidor.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Exemplo Prático
• Preencher ao menos os “denys” do perfil do httpd de
maneira similar ao apresentado ao lado;
• Para iniciar o teste, deixar o perfil do apparmor
em “complain” como abaixo.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Exemplo Prático
• Em um terminal gráfico, conectar ao servidor web
pelo navegador, acessando a página da
aplicação DVWA, colocando o nível de
segurança da mesma no mínimo e acessando a
aba “command injection”;

Mais informações em: https://hackmd.io/team/admso?nav=overview


Exemplo Prático
• Inserir um endereço ip qualquer (opcional), na
frente do mesmo adicionar o caractere “;” e o
comando cat /etc/passwd. Observar o resultado
enquanto o perfil no apparmor se encontra em
Complain.

Mais informações em: https://hackmd.io/team/admso?nav=overview


Exemplo Prático
• Colocar o perfil httpd do apparmor no modo
enforce e repetir o procedimento anterior.
Observar o resultado do procedimento agora que
o AppArmor impede a leitura do arquivo.

Mais informações em: https://hackmd.io/team/admso?nav=overview

Você também pode gostar