Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[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']}")
3 respostas

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 .
solução!

Oi, Ricardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Sua iniciativa de explorar o uso de Python na cibersegurança hospitalar está muito interessante! Os exemplos que você trouxe mostram de forma clara como a linguagem pode contribuir com a segurança em ambientes sensíveis como o da saúde.

Uma dica interessante para o futuro é conhecer a biblioteca hashlib, que pode ser útil para verificar a integridade de arquivos, algo importante ao lidar com registros médicos. Veja este exemplo:


import hashlib

arquivo = open('dados_paciente.txt', 'rb').read()
hash_md5 = hashlib.md5(arquivo).hexdigest()

print("Hash MD5:", hash_md5)

Esse código gera um hash MD5 do conteúdo de um arquivo e pode ajudar a detectar alterações suspeitas.

Conteúdos relacionados

O link está em inglês, mas você poderá usar a tradução automática do navegador.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Nossa, Monalisa, que dica incrível você me deu! Já comecei a leitura e é impossível não dizer o quanto acho vocês "phodas" demais.
Minha admiração por todos só cresce, cada vez mais.
Abraços, Ricardo.