1
resposta

[Projeto] Contribuições de Códigos Python para a Cibersegurança nos Cuidados de Saúde

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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

  1. A seguir um texto inédito e idealizado por mim.
  2. A transformação digital na saúde tem elevado o uso de registros eletrônicos, telemedicina e dispositivos IoMT (Internet of Medical Things).
  3. Isso ampliou a superfície de ataque para cibercriminosos.
  4. 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

  1. Ransomware: Criptografia de dados críticos e exigência de resgate.
  2. Phishing: Fraudes que visam roubo de credenciais.
  3. Ameaças internas: Uso indevido de acessos legítimos.
  4. Dispositivos IoMT inseguros: Firmware desatualizado e senhas fracas.

2. Python na Cibersegurança

  1. Python oferece bibliotecas como Scapy, Psutil e Flask para:
  2. Monitoramento de tráfego de rede.
  3. Detecção de anomalias com Machine Learning.
  4. Proteção de APIs e autenticação multifator.
  5. Validação de dados clínicos.
  6. 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

  1. Monitoramento de comunicação M2M suspeita na rede IoMT usando Scapy
  2. 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

  1. Script para validar checklist de dispositivos médicos em análises clínicas
  2. 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

  1. Detector simples de ransomware com bloqueio de processos suspeitos
  2. 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']}")
1 resposta

3.4 Bloqueio de Login Bot

  1. Bloqueio de login remoto suspeito em sistema médico
  2. Identifica tentativas rápidas e automatizadas (bot)
import flask
from flask import request, abort
import time

app = flask.Flask(__name__)
tentativas_login = {}

@app.route('/login', methods=['POST'])
def login():
    ip = request.remote_addr
    timestamp = time.time()
    tentativas_login.setdefault(ip, []).append(timestamp)

# Se mais de 5 tentativas em 10 segundos, bloquear

    tentativas_recent = [t for t in tentativas_login[ip] if t > timestamp - 10]
    
    if len(tentativas_recent) > 5:
    
        print(f"Alerta: Bloqueio de IP {ip} por comportamento suspeito.")
        abort(403) 
        
        # Forbidden

# Aqui seria a lógica de autenticação

# Bloqueio de login remoto suspeito em sistema médico

# Identifica tentativas rápidas e automatizadas (bot)

import flask
from flask import request, abort
import time

app = flask.Flask(__name__)
tentativas_login = {}

@app.route('/login', methods=['POST'])
def login():
    ip = request.remote_addr
    timestamp = time.time()
    tentativas_login.setdefault(ip, []).append(timestamp)

      
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
 real
    return "Tentativa de login registrada."

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Saída

from flask import Flask, request, abort
import time

app = Flask(__name__)
tentativas = {}

@app.route('/login', methods=['POST'])
def login():
    ip = request.remote_addr
    tentativas.setdefault(ip, []).append(time.time())
    if len([t for t in tentativas[ip] if t > time.time()-10]) > 5:
        abort(403)
    return "Login registrado"

4. Tendências Futuras

  • Zero Trust Architecture
  • Blockchain para rastreabilidade
  • AI-Driven Security

Conclusão

  • Integrar Python à cibersegurança hospitalar é essencial para proteger:
  1. dados,
  2. dispositivos,
  3. vidas.
  • Para ser detentor de Política robusta de Defesa contra Ameaças deve haver comprometimento, mas também no investimento de:
  1. Treinamento,
  2. Monitoramento ,
  3. Backups .