IMPACTO: Plataforma de Capacitação em Cibersegurança Baseada em Simulação de Aspectos Econômicos de Ciberataques
O planejamento em cibersegurança representa um desafio para empresas que operam com recursos técnicos e financeiros limitados, especialmente diante do crescimento de ataques cibernéticos e de seus impactos econômicos. Nesse contexto, a plataforma IMPACTO foi desenvolvida para apoiar a formação de estudantes e profissionais da área, com foco na análise de riscos e no planejamento de investimentos em cibersegurança. A plataforma integra aspectos técnicos e econômicos por meio de simulações baseadas em cenários realistas, utilizando dados de relatórios públicos e modelos econômicos do estado da arte. A plataforma IMPACTO promove um aprendizado aplicado e estruturado, permitindo ao usuário compreender o impacto financeiro de diferentes estratégias de proteção, bem como os riscos em diferentes contextos. Avaliações de usabilidade e funcionalidade foram realizadas, e os resultados indicam uma alta eficácia como ferramenta educacional e de apoio à tomada de decisão.
Os selos considerados são: Disponíveis e Funcionais.
Caso você deseje apenas testar a plataforma IMPACTO, um servidor de testes está disponível em https://gt-impacto.inf.ufrgs.br. Caso você deseje fazer o deploy local da aplicação, siga as instruções abaixo.
- Linux
- Python 3.11.x (para uso de PostgreSQL)
python3 --version
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.11
-
Clone o repositório:
git clone <repository> cd IMPACTO
-
Execute o script pela primeira vez para criar os arquivos de configuração:
chmod +x run.sh ./run.sh
Para especificar uma porta diferente (padrão é 8000):
./run.sh 8080
-
Modifique os arquivos criados:
-
.env
:DB_PASSWORD=sua_senha_segura ADMIN_USERNAME=nome_login_admin ADMIN_PASSWORD=sua_senha_segura [email protected] DJANGO_SECRET_KEY=sua_chave_secreta_segura
-
postgres_setup.sql
:CREATE USER gt_impacto WITH PASSWORD 'sua_senha_segura';
-
reset_db.sql
:CREATE USER gt_impacto WITH PASSWORD 'sua_senha_segura';
IMPORTANTE: Use a mesma senha em todos os arquivos!
-
-
Execute o script novamente para completar a instalação:
./run.sh
Para iniciar a plataforma após a instalação inicial:
chmod +x start.sh
./start.sh
Para especificar uma porta diferente (padrão é 8000):
./start.sh 8080
- URL: http://localhost:8000/admin (Substitua 8000 pela porta escolhida, caso tenha alterado)
- Usuário: Configurado no
ADMIN_USERNAME
do.env
- Senha: Configurada no
ADMIN_PASSWORD
do.env
- O
run.sh
só precisa ser executado na instalação inicial. - Para uso diário, utilize apenas o
start.sh
. - Os arquivos de configuração (
.env
,postgres_setup.sql
,reset_db.sql
) são ignorados pelo Git por motivos de segurança. - Mantenha os outros campos dos arquivos de configuração inalterados.
Para realizar testes de carga na aplicação, utilize o script load_test.sh
:
chmod +x load_test.sh
./load_test.sh <URL> <total_requests> <concurrency> <username> <password> [debug]
- URL: URL base do servidor (ex: http://127.0.0.1:8000)
- total_requests: Número total de requisições
- concurrency: Número de requisições simultâneas
- username: Nome de usuário para autenticação
- password: Senha do usuário
- debug: (opcional) Ativa logs detalhados (true/false)
O parâmetro debug
ativa um log detalhado que inclui:
- Processo de autenticação passo a passo
- Tokens CSRF obtidos
- Cookies de sessão
- Headers HTTP de cada requisição
- Códigos de resposta detalhados
- Tempos de resposta individuais
- Sem debug (modo normal):
./load_test.sh "http://127.0.0.1:8000" 1000 50 admin senha123
- Com debug ativado:
./load_test.sh "http://127.0.0.1:8000" 1000 50 admin senha123 true
Para gerar gráficos de desempenho do servidor durante os testes de carga, siga os passos abaixo:
Antes de iniciar o teste de carga, inicie o monitoramento do servidor:
./system_monitor.sh start
Execute o teste de carga e, após seu término, pare o monitoramento:
./system_monitor.sh stop
Crie a pasta para os dados de monitoramento do servidor:
mkdir -p server_monitor_data
Copie o arquivo CSV de resultado do monitoramento para esta pasta:
cp ./monitor_data/system_metrics.csv server_monitor_data/server_usage_data.csv
Execute o script de geração de gráficos:
python3 server_graphs.py
Os gráficos serão gerados na pasta server_monitor_data
e incluirão:
- Uso de CPU durante o teste
- Uso de memória durante o teste
- Tráfego de rede durante o teste
As estatísticas e links para os gráficos serão automaticamente adicionados ao relatório de teste de carga (load_test_new/summary.md
).