Contribuições de Códigos Python para a Cibersegurança nos Cuidados de Saúde
Por Ricardo Costa Val do Rosário e ChatGPT 4.0 Plus (conforme orientação do autor)
Introdução
- A seguir um texto inédito e idealizado por mim.
- A transformação digital na saúde tem elevado o uso de registros eletrônicos, telemedicina e dispositivos IoMT (Internet of Medical Things).
- Isso ampliou a superfície de ataque para cibercriminosos.
- Este documento explora como Python pode fortalecer a cibersegurança hospitalar, apresentando códigos aplicáveis e fluxograma acadêmico.
1. Ameaças e Desafio
- Ransomware: Criptografia de dados críticos e exigência de resgate.
- Phishing: Fraudes que visam roubo de credenciais.
- Ameaças internas: Uso indevido de acessos legítimos.
- Dispositivos IoMT inseguros: Firmware desatualizado e senhas fracas.
2. Python na Cibersegurança
- Python oferece bibliotecas como Scapy, Psutil e Flask para:
- Monitoramento de tráfego de rede.
- Detecção de anomalias com Machine Learning.
- Proteção de APIs e autenticação multifator.
- Validação de dados clínicos.
- Fluxograma de Estratégias Python
[Início] → [Monitoramento Rede] → [Detecção Anomalias] → [Bloqueio Automático] → [Alertas]
3. Exemplos de Códigos Python
3.1 Bloqueio de Comunicação M2M Suspeita
- Monitoramento de comunicação M2M suspeita na rede IoMT usando Scapy
- Este script detecta tentativas de comunicação para fora da rede local e alerta o administrador
import scapy.all as scapy
def detectar_comunicacao_suspeita(packet):
if packet.haslayer(scapy.IP):
destino = packet[scapy.IP].dst
if "192.168." not in destino:
# Verifica se o destino está fora da rede local
print (atenção: comunicação suspeita detectada com {destino}")
# Aqui poderia ser implementado bloqueio via firewall
# os.system(f"iptables -A OUTPUT -d {destino} -j DROP")
print("Monitoramento iniciado. Pressione Ctrl+C para interromper.")
scapy.sniff(filter="ip", prn=detectar_comunicacao_suspeita, store=False)
Saída
import scapy.all as scapy
def detectar_comunicacao(packet):
if packet.haslayer(scapy.IP) and "192.168." not in packet[scapy.IP].dst:
print("Comunicação suspeita detectada")
scapy.sniff(filter="ip", prn=detectar_comunicacao)
3.2 Checklist de Dispositivos
- Script para validar checklist de dispositivos médicos em análises clínicas
- Garante que os resultados correspondem ao paciente correto
import time
def validar_checklist(dispositivo, paciente_id, checklist):
if all(item in checklist for item in ['identidade', 'parâmetros calibrados', 'data/hora verificada']):
print(f"Dispositivo {dispositivo}: Checklist OK para paciente {paciente_id}.")
else:
print(f"Alerta: Checklist incompleto no {dispositivo} para paciente {paciente_id}!")
# Aqui pode ser enviada uma notificação ao administrador
# Simulação
dispositivos = ['Microscópio eletrônico', 'Centrífuga', 'Dosador']
for d in dispositivos:
validar_checklist(d, 'Paciente123', ['identidade', 'parâmetros calibrados', 'data/hora verificada'])
time.sleep(1)
Saída
def validar(dispositivo, paciente, checklist):
if all(i in checklist for i in ['identidade', 'calibração', 'data/hora']):
print(f"{dispositivo}: OK para {paciente}")
else:
print(f"Alerta: Checklist incompleto em {dispositivo} para {paciente}")
3.3 Detector de Ransomware
- Detector simples de ransomware com bloqueio de processos suspeitos
- Identifica processos que tentam sobrescrever muitos arquivos rapidamente
import psutil
import time
def detectar_ransomware():
while True:
for proc in psutil.process_iter(['pid', 'name', 'cpu_percent']):
if proc.info['cpu_percent'] > 80:
# Processo usando muita CPU
print(f"Alerta: Processo suspeito detectado - {proc.info['name']} (PID {proc.info['pid']})")
# Bloqueio do processo (apenas com permissão do administrador)
# proc.kill()
time.sleep(5)
print("Monitoramento de ransomware iniciado...")
detectar_ransomware()
Saída
import psutil
def monitorar():
for proc in psutil.process_iter(['name', 'cpu_percent']):
if proc.info['cpu_percent'] > 80:
print(f"Processo suspeito: {proc.info['name']}")