Progresso: 0%

1. Âmbito e Objetivos

1.1 Âmbito de Aplicação

Esta Política de Segurança da Cadeia de Fornecimento aplica-se a [nome da organização] e abrange todas as relações com fornecedores, prestadores de serviços, contratantes e parceiros que têm acesso a sistemas, dados ou infraestrutura críticos da organização.

Enquadramento Regulatório: Esta política cumpre com os requisitos da [NIS2 Artigo 21(2)(d), ISO 27036, regulamentações nacionais] e estabelece critérios mínimos de segurança para toda a cadeia de fornecimento.

1.2 Objetivos de Segurança

1.3 Tipos de Fornecedores Abrangidos

Esta política aplica-se a:

2. Definições e Classificação de Fornecedores

2.1 Definições-Chave

Termo Definição
Fornecedor [pessoa ou entidade que fornece produtos, serviços ou soluções à organização]
Terceiro [entidade externa que processa, armazena ou tem acesso a dados/sistemas da organização]
Subcontratante [entidade contratada por um fornecedor para executar partes do contrato]
Criticidade [nível de impacto potencial em operações, segurança ou conformidade caso o fornecedor falhe]
Due Diligence [processo de avaliação prévia de riscos de segurança e conformidade de um fornecedor]
Auditoria de Segurança [avaliação ou inspeção de medidas de segurança implementadas por um fornecedor]

2.2 Níveis de Criticidade de Fornecedores

Nível Crítico

Crítico

[Definição: Fornecedores com acesso total a dados sensíveis, sistemas críticos ou infraestrutura essencial. Falha no fornecedor causa impacto direto em operações ou segurança.]

Requisitos Mínimos:

Nível Alto

Alto

[Definição: Fornecedores com acesso a dados importantes, sistemas de suporte crítico ou funcionalidades essenciais.]

Requisitos Mínimos:

Nível Médio

Médio

[Definição: Fornecedores com acesso limitado a dados não-críticos ou funções de suporte.]

Requisitos Mínimos:

Nível Baixo

Baixo

[Definição: Fornecedores com acesso mínimo a dados públicos ou funções periféricas.]

Requisitos Mínimos:

2.3 Critérios de Classificação

A criticidade é determinada com base nos seguintes critérios:

Critério Descrição Impacto na Classificação
Sensibilidade de Dados [Nível de confidencialidade/proteção exigido para dados acedidos] [Dados críticos = Crítico/Alto; Dados sensíveis = Médio; Dados públicos = Baixo]
Importância de Sistemas [Criticidade operacional do sistema fornecido/suportado] [Sistema crítico = Crítico; Sistema importante = Alto; Sistema auxiliar = Médio/Baixo]
Tempo de Acesso [Duração e permanência do acesso do fornecedor] [Acesso permanente = Crítico; Acesso contínuo = Alto; Acesso pontual = Médio/Baixo]
Escopo de Acesso [Amplitude de sistemas, dados ou funções acedidas] [Acesso total = Crítico; Acesso múltiplos sistemas = Alto; Acesso limitado = Médio/Baixo]
Impacto de Falha [Consequências potenciais se o fornecedor falhar] [Falha = Paragem total = Crítico; Falha = Degradação = Alto; Falha = Inconveniente = Médio/Baixo]
Localização Geográfica [País/jurisdição do fornecedor e conformidade regulatória] [Fora UE = Risco aumentado; UE = Risco moderado; PT/Local = Risco reduzido]

3. Processo de Gestão do Ciclo de Vida de Fornecedores

O ciclo de vida de um fornecedor compreende cinco fases principais: onboarding, avaliação, contratualização, monitorização e offboarding.

3.1 Due Diligence e Onboarding

3.1.1 Pré-Avaliação

Antes de qualquer contratação, deve ser efetuada uma pré-avaliação que inclui:

3.1.2 Assinatura de Acordos Preliminares

[O fornecedor deve assinar NDA e/ou Master Service Agreement com cláusulas de segurança antes de onboarding formal]

3.1.3 Documentação Inicial

Recolher a seguinte documentação:

3.2 Avaliação de Risco Inicial

3.2.1 Questionário de Segurança

[Baseado na criticidade, deve ser preenchido um questionário de segurança com 30+ perguntas cobrindo: políticas de segurança, controles técnicos, conformidade, incidentes anteriores, etc.]

3.2.2 Avaliação Técnica

Dependendo da criticidade, podem incluir-se:

3.2.3 Decisão de Onboarding

[Com base na avaliação, a decisão é: Aprovado (com ou sem condições), Suspenso (até correções) ou Rejeitado]

3.3 Contratualização

3.3.1 Requisitos de SLA de Segurança

O contrato deve incluir SLAs de segurança que especifiquem:

3.3.2 Cláusulas de Segurança Obrigatórias

O contrato deve incluir:

3.4 Monitorização Contínua

3.4.1 Monitorização de Conformidade

[Verificações regulares (trimestrais/semestrais/anuais conforme criticidade) de: cumprimento de SLAs, aplicação de patches, conformidade de dados, alertas de segurança]

3.4.2 Auditorias Periódicas

3.4.3 Gestão de Alertas de Segurança

[Monitorização de CVEs, alertas de segurança, notícias de breaches que afetem fornecedores; avaliação de impacto e necessidade de ação]

3.5 Offboarding

3.5.1 Processo de Encerramento

Quando um contrato termina ou é cancelado:

3.5.2 Verificação de Conformidade

[Auditoria de offboarding para confirmar que todas as obrigações contratuais foram cumpridas, dados foram removidos, e acessos foram revogados]

4. Avaliação de Riscos de Fornecedores

4.1 Metodologia de Avaliação de Risco

4.1.1 Abordagem Estruturada

A avaliação de risco de fornecedores segue uma metodologia estruturada em fases:

  1. Identificação de Ativos: [Quais dados, sistemas, funcionalidades críticas o fornecedor acede]
  2. Identificação de Ameaças: [Potenciais falhas de segurança, incidentes que afetam este fornecedor]
  3. Avaliação de Vulnerabilidades: [Falhas de segurança técnica, processos inadequados, certificações ausentes]
  4. Cálculo de Risco: [Risco = Probabilidade de Ameaça x Impacto de Falha]
  5. Decisão Mitigação: [Implementar controlos, exigir certificações, monitorizar, recusar contratação]

4.1.2 Matriz de Risco

Probabilidade Impacto
Baixo Médio Alto Crítico
Baixa [Risco Muito Baixo] [Risco Baixo] [Risco Médio] [Risco Alto]
Média [Risco Baixo] [Risco Médio] [Risco Alto] [Risco Muito Alto]
Alta [Risco Médio] [Risco Alto] [Risco Muito Alto] [Risco Crítico]
Muito Alta [Risco Alto] [Risco Muito Alto] [Risco Crítico] [Risco Crítico]

4.2 Questionário de Segurança de Fornecedores

4.2.1 Seção 1: Organização e Governança (5 questões)

  1. [Questão 1: Existe uma política de segurança da informação documentada e comunicada a todos os funcionários?]
  2. [Questão 2: Existe um CISO ou responsável de segurança designado?]
  3. [Questão 3: Qual é a estrutura de governança de segurança? (comité, direção, responsabilidades)]
  4. [Questão 4: Com que frequência são realizadas auditorias internas ou externas de segurança?]
  5. [Questão 5: Existe um programa de gestão de conformidade regulatória?]

4.2.2 Seção 2: Segurança Técnica (8 questões)

  1. [Questão 6: Como é implementada a autenticação de utilizadores? (senhas, MFA, SSO)]
  2. [Questão 7: Quais controles de acesso são implementados? (RBAC, segregação de funções)]
  3. [Questão 8: Como é feita a criptografia de dados em trânsito e em repouso?]
  4. [Questão 9: Existe um processo de gestão de vulnerabilidades e patch management?]
  5. [Questão 10: Como é implementada a monitorização e logging de segurança?]
  6. [Questão 11: Qual é a política de backup e recuperação de desastres?]
  7. [Questão 12: Existe segmentação de rede ou isolamento de sistemas críticos?]
  8. [Questão 13: Como são tratados os acessos privilegiados (PAM)?]

4.2.3 Seção 3: Proteção de Dados (6 questões)

  1. [Questão 14: Como é garantida a conformidade com GDPR? (DPA, processamento lícito)]
  2. [Questão 15: Existe classificação de dados e controles por nível de sensibilidade?]
  3. [Questão 16: Como é gerida a retenção e eliminação segura de dados?]
  4. [Questão 17: Qual é a política de transferências internacionais de dados?]
  5. [Questão 18: Existe documentação de Privacy Impact Assessment (DPIA) para dados sensíveis?]
  6. [Questão 19: Como é gerida a transparência e direitos dos titulares de dados?]

4.2.4 Seção 4: Incidentes e Continuidade (6 questões)

  1. [Questão 20: Existe um plano de resposta a incidentes documentado?]
  2. [Questão 21: Qual é o processo de notificação de incidentes? (tempo, escalação)]
  3. [Questão 22: Existe um plano de continuidade de negócio e recuperação de desastres?]
  4. [Questão 23: Qual é o RTO/RPO (Recovery Time/Point Objective) documentado?]
  5. [Questão 24: Com que frequência são testados os planos de continuidade?]
  6. [Questão 25: Existe uma política de ciberseguro ou cobertura de incidentes?]

4.2.5 Seção 5: Conformidade e Certificações (5 questões)

  1. [Questão 26: Possui certificação ISO 27001? (ou equivalente)]
  2. [Questão 27: Possui certificação SOC 2 ou relatório de auditoria externa?]
  3. [Questão 28: Cumpre com regulações específicas do sector? (PSD2, HIPAA, etc.)]
  4. [Questão 29: Teve incidentes de segurança nos últimos 3 anos? (descrever)]
  5. [Questão 30: Está disposto a auditorias de segurança periódicas pela nossa organização?]

4.3 Scoring e Rating de Segurança

4.3.1 Critérios de Scoring

Pontuação Rating Interpretação Ação Recomendada
90-100 Excelente [Fornecedor com controlos de segurança muito robustos] [Aprovado para qualquer criticidade]
75-89 Bom [Fornecedor com controlos adequados] [Aprovado com monitorização regular]
60-74 Adequado [Fornecedor com lacunas de segurança] [Aprovado com condições, plano de melhoria requerido]
<60 Crítico [Fornecedor com falhas críticas de segurança] [Recusado ou suspenso até remediação]

4.4 Auditorias e Certificações

4.4.1 Certificações Reconhecidas

As seguintes certificações são reconhecidas como equivalente a avaliação interna:

4.4.2 Processo de Auditoria de Fornecedores

[Auditorias podem ser: on-site, remota, virtual walkthrough, questionário detalhado, teste de penetração. A frequência e tipo dependem da criticidade e resultados anteriores.]

4.4.3 Direitos de Auditoria

O contrato com fornecedores críticos deve garantir:

5. Requisitos Contratuais de Segurança

5.1 Cláusulas Obrigatórias de Segurança

5.1.1 Cláusula de Confidencialidade e Proteção de Dados

[O fornecedor compromete-se a manter a confidencialidade de toda a informação não pública acedida, incluindo dados de clientes, dados técnicos, propriedade intelectual. Tal informação não pode ser divulgada a terceiros sem consentimento por escrito, salvo se legalmente obrigado (com notificação prévia).]

5.1.2 Cláusula de Conformidade com Legislação de Proteção de Dados

[O fornecedor compromete-se a cumprir com GDPR e legislação local de proteção de dados, incluindo: processamento conforme instrções, medidas de segurança técnicas/organizacionais, documentação de DPA, notificação de incidentes, direitos dos titulares de dados.]

5.1.3 Cláusula de Notificação de Incidentes de Segurança

[O fornecedor compromete-se a notificar a nossa organização de qualquer suspeita ou confirmação de incidente de segurança ou acesso não autorizado, no prazo máximo de: Suspeita - 24h; Confirmação - 72h (conforme NIS2). Inclui detalhes: tipo de incidente, dados afetados, ações tomadas, contactos.]

5.1.4 Cláusula de Auditoria e Direitos de Inspeção

[A nossa organização tem o direito a: (a) auditar as práticas de segurança do fornecedor, (b) requerer relatórios de conformidade, (c) inspecionar instalações com aviso prévio, (d) verificar cumprimento de requisitos contratuais. O fornecedor cobre custos de auditoria (até X auditorias por ano são sem custo).]

5.1.5 Cláusula de Requisitos Técnicos de Segurança Mínimos

O fornecedor compromete-se a implementar no mínimo:

5.1.6 Cláusula de Devolução/Destruição de Dados

[Ao término do contrato, o fornecedor compromete-se a: (a) devolver ou destruir de forma segura todos os dados e informações confidenciais, (b) remover acessos a sistemas, (c) certificar por escrito que todas as obrigações foram cumpridas, (d) nenhuma cópia retida, salvo se legalmente obrigado.]

5.1.7 Cláusula de Subcontratação Restrita

[O fornecedor não pode subcontratar qualquer parte do serviço sem consentimento prévio por escrito. Qualquer subcontratante deve estar sujeito aos mesmos requisitos de segurança. A organização mantém direitos de auditoria sobre subcontratantes.]

5.2 SLAs de Segurança

5.2.1 Definição de SLA

Métrica de Segurança Fornecedor Crítico Fornecedor Alto Risco Fornecedor Médio Risco
Uptime Mínimo [99.99% (52.6 min/ano)] [99.9% (8.76 h/ano)] [99% (87.6 h/ano)]
RTO (Recovery Time Objective) [1 hora] [4 horas] [24 horas]
RPO (Recovery Point Objective) [15 minutos] [1 hora] [1 dia]
Detecção de Incidentes [4 horas] [8 horas] [24 horas]
Notificação de Incidentes [24 horas] [24-48 horas] [72 horas]
Patch Crítico [7 dias] [14 dias] [30 dias]
Vulnerability Scanning [Contínuo/semanal] [Mensal] [Trimestral]
Auditoria de Conformidade [Anual] [A cada 18-24 meses] [A cada 2-3 anos]

5.3 Direitos de Auditoria

5.3.1 Tipos de Auditoria

5.3.2 Frequência e Escopo

[A frequência de auditoria é determinada pela criticidade e últimos resultados. Escopo inclui: acesso físico, controles técnicos, procedimentos operacionais, gestão de pessoal, conformidade regulatória.]

5.4 Notificação de Incidentes (24h/72h)

5.4.1 Prazos de Notificação

5.4.2 Informações Requeridas na Notificação

5.5 Proteção de Dados (Alinhamento GDPR)

5.5.1 Conformidade GDPR

5.5.2 Medidas de Segurança Técnicas e Organizacionais

6. Gestão de Acessos de Terceiros

6.1 Princípio do Menor Privilégio

6.1.1 Definição

[O Princípio do Menor Privilégio (PoLP - Principle of Least Privilege) significa que cada fornecedor/terceiro recebe apenas o acesso mínimo necessário para executar as suas tarefas, nada mais.]

6.1.2 Aplicação Prática

6.2 Autenticação e Autorização

6.2.1 Autenticação

Todos os fornecedores com acesso a sistemas críticos devem ser autenticados através de:

6.2.2 Autorização

6.3 Autenticação Multifator Obrigatória

6.3.1 Requisitos de MFA

[MFA é obrigatória para: (1) Acessos VPN/remotos, (2) Acessos administrativos/privilegiados, (3) Acessos a dados críticos/sensíveis, (4) Fornecedores com acesso crítico]

6.3.2 Métodos Aceites

6.3.3 Gestão de Backup Codes

[Backup codes são gerados aquando ativação de MFA; armazenados com segurança; utilizador responsável pela segurança; revogação imediata se comprometidos]

6.4 Monitorização de Acessos

6.4.1 Logging de Acessos

6.4.2 Monitorização em Tempo Real

6.4.3 Análise de Anomalias

[Análise regular de padrões de acesso para detectar: acessos não autorizados, atividades anómalas, potencial insider threat, comprometimento de credenciais]

6.5 Revogação de Acessos

6.5.1 Cenários de Revogação

6.5.2 Processo de Revogação

  1. [1. Notificação formal ao fornecedor da data/hora de revogação]
  2. [2. Aviso ao utilizador de revogação pendente]
  3. [3. Execução da revogação (acesso desativado/eliminado)]
  4. [4. Confirmação de que não há acesso residual]
  5. [5. Documentação da revogação no registo]
  6. [6. Comunicação de confirmação da revogação ao fornecedor]

6.5.3 Verificação de Revogação Completa

[Após revogação, verificar que: (1) Credenciais/tokens não funcionam, (2) Sem acesso residual por conta de sistema, (3) Equipamentos devolvidos, (4) Chaves/certificados revogados, (5) VPN/remote access desativado]

7. Monitorização Contínua de Fornecedores

7.1 Framework de Monitorização Contínua

7.1.1 Objetivos da Monitorização

A monitorização contínua tem como objetivos:

7.1.2 Frequência de Monitorização

Criticidade do Fornecedor Monitorização Técnica Revisão de Conformidade Questionários de Segurança
Crítico [Contínua (real-time alerts)] [Trimestral] [Semestral]
Alto [Semanal] [Semestral] [Anual]
Médio [Mensal] [Anual] [A cada 18-24 meses]
Baixo [Trimestral] [Conforme necessário] [Conforme necessário]

7.2 Métricas de Segurança a Monitorizar

7.2.1 Métricas de Disponibilidade

7.2.2 Métricas de Segurança Técnica

7.2.3 Métricas de Conformidade

7.3 Calendário de Revisão de Desempenho

7.3.1 Revisões Trimestrais

[A cada trimestre, realiza-se revisão com fornecedores críticos para avaliar: métricas de disponibilidade, incidentes de segurança, compliance de SLAs, vulnerabilidades identificadas, planos de remediação]

7.3.2 Revisões Semestrais

[A cada semestre, realiza-se revisão com fornecedores de alto risco para avaliar: conformidade geral, resultados de auditorias, atualizações de certificações, mudanças de infraestrutura ou processos]

7.3.3 Revisões Anuais

[Anualmente, todos os fornecedores são revistos: reclassificação de criticidade, renovação de avaliação de risco, atualização de contratos/SLAs, decisão de continuidade ou terminação]

7.4 Procedimentos de Escalação para Não-Conformidade

7.4.1 Níveis de Não-Conformidade

Nível Definição Ação
Menor [Desvio pequeno de SLA; vulnerabilidade baixa; atraso pontual] [Notificação ao fornecedor; prazo de 30 dias para correção]
Moderada [Múltiplos desvios menores; vulnerabilidade média; atrasos frequentes] [Reunião de escalação; plano de ação corretiva com 14 dias; monitorização semanal]
Grave [Falha crítica de SLA; vulnerabilidade alta/crítica não remediada; incidente de segurança] [Escalação a gestão superior; plano de remediação imediata (48-72h); potencial suspensão de serviços]
Crítica [Breach de dados; violação grave de contrato; indisponibilidade prolongada] [Ativação de plano de contingência; consideração de terminação de contrato; avaliação legal]

7.4.2 Processo de Escalação

  1. Nível 1: [Account Manager do fornecedor - prazo de resposta: 24-48h]
  2. Nível 2: [Diretor de Operações do fornecedor - prazo de resposta: 12-24h]
  3. Nível 3: [C-Level do fornecedor (CTO/CISO/CEO) - prazo de resposta: 4-12h]
  4. Nível 4: [Ativação de cláusulas contratuais/legais - imediato]

7.4.3 Registo de Não-Conformidades

[Todas as não-conformidades devem ser registadas com: data identificação, tipo de não-conformidade, fornecedor afetado, impacto, ações tomadas, prazo de remediação, status de resolução, data resolução]

8. Gestão de Incidentes de Fornecedores

📋 Referência NIS2: De acordo com o Artigo 21(2) da Diretiva NIS2, as entidades essenciais e importantes devem implementar medidas de segurança da cadeia de fornecimento, incluindo processos de notificação de incidentes por fornecedores em prazos de 24h e 72h.

🔗 Ver também: Plano de Resposta a Incidentes

8.1 Requisitos de Notificação de Incidentes (24h/72h)

8.1.1 Notificação Inicial (24 horas)

O fornecedor deve notificar a organização no prazo máximo de 24 horas após tomar conhecimento de qualquer suspeita ou confirmação de incidente que afete:

Informação Mínima Requerida (24h):

8.1.2 Relatório Detalhado (72 horas)

O fornecedor deve fornecer relatório detalhado no prazo de 72 horas contendo:

8.1.3 Atualizações Contínuas

[Após o relatório de 72h, o fornecedor deve fornecer atualizações regulares (diárias/semanais conforme gravidade) até resolução completa e encerramento formal do incidente]

8.2 Procedimentos de Resposta Conjunta

8.2.1 Ativação de Resposta Conjunta

Para incidentes graves/críticos, ativar resposta conjunta:

  1. [Fornecedor notifica conforme procedimento 24h]
  2. [CSIRT interno da organização é ativado]
  3. [Estabelecer ponte de comunicação (call bridge 24/7)]
  4. [Definir Incident Commander e papéis de cada parte]
  5. [Coordenar contenção, investigação, remediação]
  6. [Comunicação coordenada com stakeholders/reguladores]

8.2.2 Matriz de Responsabilidades na Resposta

Atividade Fornecedor Organização
Detecção de Incidente [Responsável primário pelos seus sistemas] [Monitorização de acessos/anomalias na nossa infraestrutura]
Notificação Inicial [Notificar em 24h] [Receber e registar notificação]
Contenção [Isolar sistemas afetados; bloquear acesso malicioso] [Revogar acessos; desligar integrações se necessário]
Investigação [Análise forense nos seus sistemas; identificar causa raiz] [Análise de logs de acesso; avaliação de impacto]
Remediação [Corrigir vulnerabilidades; aplicar patches; reforçar controlos] [Atualizar políticas de acesso; reforçar monitorização]
Notificação a Reguladores [Notificar se obrigatório pela sua jurisdição] [Notificar CNCS/CNPD se aplicável (NIS2/GDPR)]
Comunicação a Clientes [Fornecer conteúdo técnico e apoio] [Comunicação direta aos nossos clientes afetados]
Post-Incident Review [Relatório final com lessons learned] [Avaliação de resposta; atualização de políticas]

8.3 Protocolos de Comunicação Durante Incidentes

8.3.1 Canais de Comunicação

Canal Primário: [Email dedicado: security-incidents@[organização].pt]

Canal de Escalação: [Telefone 24/7 do CISO: +351 XXX XXX XXX]

Canal de Coordenação: [Conference bridge/Teams dedicado durante incidente]

Canal de Updates: [Portal seguro para partilha de relatórios e evidências]

8.3.2 Frequência de Comunicação

8.3.3 Confidencialidade na Comunicação

[Toda a comunicação sobre incidentes é confidencial. Informação partilhada em canais encriptados. Acordos de NDA aplicam-se. Comunicação externa coordenada entre as partes.]

8.4 Processo de Post-Incident Review

8.4.1 Relatório Final de Incidente

No prazo de [30 dias] após resolução, o fornecedor deve fornecer relatório final contendo:

8.4.2 Reunião de Post-Mortem

[Organizar reunião conjunta de post-mortem para discutir: o que correu bem, o que correu mal, melhorias de processo, atualizações de contratos/SLAs se necessário]

8.4.3 Acompanhamento de Remediações

[Estabelecer plano de acompanhamento para verificar implementação de melhorias recomendadas. Incluir verificação em próxima auditoria de fornecedor.]

9. Auditorias e Inspeções

9.1 Calendário Anual de Auditorias

9.1.1 Planeamento de Auditorias

O calendário anual de auditorias é planeado com base em:

9.1.2 Calendário Típico

Trimestre Fornecedores Críticos Fornecedores Alto Risco Fornecedores Médio/Baixo Risco
Q1 [Auditoria completa de fornecedor A, B] [Questionário de conformidade] [Revisão documental conforme necessário]
Q2 [Revisão semestral; teste de penetração] [Auditoria de fornecedor C, D] [Revisão conforme necessário]
Q3 [Auditoria completa de fornecedor C] [Questionário de conformidade] [Revisão documental]
Q4 [Revisão anual; planeamento de auditorias do próximo ano] [Revisão anual; auditoria de fornecedor E] [Revisão anual]

9.2 Escopo e Procedimentos de Auditoria

9.2.1 Escopo de Auditoria

O escopo de uma auditoria de fornecedor inclui:

9.2.2 Metodologia de Auditoria

  1. Preparação: [Definir escopo, enviar checklist, agendar com fornecedor (14-30 dias de aviso)]
  2. Revisão Documental: [Análise de políticas, procedimentos, certificações, relatórios anteriores]
  3. Entrevistas: [Entrevistas com CISO, IT managers, operadores, compliance]
  4. Inspeção Técnica: [Revisão de configurações, logs, acesso a sistemas (se on-site)]
  5. Testes: [Testes de controlos (se aplicável), simulações]
  6. Análise de Findings: [Identificação de não-conformidades, vulnerabilidades, gaps]
  7. Relatório de Auditoria: [Relatório formal com findings, classificação de severidade, recomendações]
  8. Follow-up: [Plano de remediação acordado; verificação de implementação]

9.3 Cláusulas de Direito de Auditoria

9.3.1 Direitos Contratualizados

Os contratos com fornecedores críticos e de alto risco devem incluir:

9.3.2 Custos de Auditoria

[Os custos de auditoria são da responsabilidade da nossa organização. No entanto, o fornecedor cobre custos de remediação de não-conformidades identificadas. O contrato pode estipular que até X auditorias por ano são sem custos adicionais para o fornecedor.]

9.4 Processo de Remediação de Findings

9.4.1 Classificação de Findings

Severidade Definição Prazo de Remediação
Crítica [Vulnerabilidade crítica; violação grave de contrato; risco iminente] [Imediato (24-48h)]
Alta [Vulnerabilidade alta; não-conformidade significativa] [7 dias]
Média [Vulnerabilidade média; desvio de boas práticas] [30 dias]
Baixa [Melhoria recomendada; risco baixo] [90 dias]

9.4.2 Plano de Remediação

Para cada finding, o fornecedor deve fornecer:

9.4.3 Verificação de Remediação

[Após o prazo de remediação, a organização verifica implementação através de: revisão de evidências, teste de controlos, auditoria de follow-up. Findings não remediados escalam conforme procedimento de não-conformidade.]

9.5 Templates de Relatórios de Auditoria

9.5.1 Estrutura do Relatório

  1. Executive Summary: [Resumo de alto nível, conclusão geral, principais findings]
  2. Escopo da Auditoria: [Sistemas auditados, período, metodologia]
  3. Findings por Categoria: [Governança, técnicos, proteção dados, continuidade, etc.]
  4. Matriz de Risco: [Severidade x impacto de cada finding]
  5. Recomendações: [Ações recomendadas priorizadas]
  6. Plano de Remediação: [Acordado com fornecedor, com prazos]
  7. Anexos: [Evidências, screenshots, checklists utilizados]

9.5.2 Distribuição do Relatório

[Relatórios de auditoria são distribuídos a: CISO da organização, Account Manager do fornecedor, Gestão de Contratos, Compliance Officer. Classificados como confidencial.]

10. Rescisão e Offboarding

10.1 Procedimentos de Terminação de Contrato

10.1.1 Motivos de Terminação

10.1.2 Período de Aviso

Tipo de Terminação Período de Aviso Procedimento
Término Natural [90 dias antes do fim do contrato] [Notificação formal; planeamento de transição]
Por Conveniência [60-90 dias conforme contrato] [Notificação escrita; pagamento de indemnização se aplicável]
Por Não-Conformidade [30 dias após falha de remediação] [Notificação de violação; prazo de cura; terminação se não remediado]
Por Incidente Grave [Imediato (0-7 dias)] [Suspensão imediata; investigação; terminação formal]

10.1.3 Notificação Formal

A terminação de contrato deve ser formalizada por escrito contendo:

10.2 Requisitos de Devolução/Destruição de Dados

10.2.1 Inventário de Dados

Antes da terminação, criar inventário de:

10.2.2 Opções de Devolução

10.2.3 Certificação de Destruição

O fornecedor deve fornecer:

10.2.4 Prazo de Devolução/Destruição

[Dados devem ser devolvidos ou destruídos no prazo de 30 dias após término do contrato (ou conforme acordado contratualmente). Extensões apenas com justificação e acordo por escrito.]

10.3 Checklist de Revogação de Acessos

10.3.1 Acessos a Sistemas

10.3.2 Acessos Físicos

10.3.3 Equipamentos e Ativos

10.3.4 Comunicações

10.4 Avaliação Final de Segurança

10.4.1 Auditoria de Offboarding

Realizar auditoria final para verificar:

10.4.2 Relatório de Offboarding

[Criar relatório final documentando: data de terminação, motivo, processos completados, confirmação de revogação de acessos, status de devolução de dados, issues pendentes (se houver), lições aprendidas]

10.5 Processo de Transferência de Conhecimento

10.5.1 Documentação de Transição

O fornecedor deve fornecer:

10.5.2 Sessões de Handover

[Organizar sessões de transferência de conhecimento entre fornecedor cessante, equipa interna e novo fornecedor (se aplicável). Incluir: overview técnico, demonstrações, Q&A, shadowing period]

10.5.3 Período de Suporte de Transição

[Acordar período de suporte de transição (ex: 30-60 dias) durante o qual o fornecedor cessante fornece suporte para dúvidas/questões. Definir modalidades de contacto e SLA de resposta.]

11. Métricas e KPIs de Gestão de Fornecedores

11.1 Key Performance Indicators (KPIs)

11.1.1 KPIs de Segurança

KPI Definição Meta Frequência
Security Compliance Score [% de fornecedores em conformidade com requisitos de segurança] [≥95%] [Trimestral]
Vulnerability Remediation Rate [% de vulnerabilidades críticas remediadas dentro do prazo] [100%] [Mensal]
Incident Notification Compliance [% de incidentes notificados dentro de 24h/72h] [100%] [Por incidente]
SLA Compliance Rate [% de SLAs de segurança cumpridos] [≥98%] [Mensal]
Audit Findings - Critical [Número de findings críticos em auditorias] [0] [Por auditoria]
Mean Time to Remediate [Tempo médio para remediar findings de auditoria] [≤30 dias] [Por auditoria]
Certification Coverage [% de fornecedores críticos com certificação reconhecida] [100%] [Anual]
Access Review Completion [% de revisões de acesso completadas no prazo] [100%] [Trimestral]

11.1.2 KPIs de Disponibilidade

KPI Definição Meta Frequência
Service Uptime [% de disponibilidade de serviços críticos] [≥99.9%] [Mensal]
MTTR (Mean Time To Repair) [Tempo médio de recuperação após incidente] [≤4 horas] [Por incidente]
MTBF (Mean Time Between Failures) [Tempo médio entre falhas consecutivas] [≥720 horas (30 dias)] [Trimestral]

11.1.3 KPIs de Gestão de Fornecedores

KPI Definição Meta Frequência
Vendor Risk Score [Score médio de risco de todos os fornecedores] [≤ Médio] [Trimestral]
Onboarding Time [Tempo médio de onboarding de novo fornecedor] [≤45 dias] [Por fornecedor]
Contract Renewal Rate [% de contratos renovados vs terminados] [≥80%] [Anual]
Offboarding Completion [% de offboardings completados dentro do prazo] [100%] [Por fornecedor]

11.2 Reporting Mensal e Trimestral

11.2.1 Relatório Mensal

Destinatários: [CISO, Gestão de Procurement, Responsáveis de Contratos]

Conteúdo:

11.2.2 Relatório Trimestral

Destinatários: [C-Level, Board, Comité de Risco]

Conteúdo:

11.3 Dashboard de Métricas

11.3.1 Visualização em Tempo Real

O dashboard de gestão de fornecedores apresenta:

11.3.2 Alertas Automáticos

O sistema gera alertas para:

11.4 Metas de Melhoria Contínua

11.4.1 Objetivos Anuais

11.4.2 Iniciativas de Melhoria

11.4.3 Revisão de Metas

[As metas de KPIs são revistas anualmente com base em: benchmark da indústria, evolução de ameaças, feedback de auditorias externas, mudanças regulatórias (NIS2, GDPR), incidentes ocorridos]

🛠️ Ferramentas Interativas

🎯 Calculadora de Risco de Fornecedor

Avalie o risco global de um fornecedor com base em 5 dimensões principais. Cada dimensão é pontuada de 1 (baixo risco) a 3 (alto risco).

📊 Diretório de Fornecedores

Gestão centralizada de todos os fornecedores com informação de criticidade, status e próximas auditorias.

Nome Categoria Criticidade Status Última Auditoria Próxima Revisão Ações

📅 Planeamento de Auditorias

Calendarização anual de auditorias de fornecedores por criticidade e trimestre.

`; try { // Convert to Word const converted = htmlDocx.asBlob(htmlContent); // Create download link const url = URL.createObjectURL(converted); const link = document.createElement('a'); link.href = url; link.download = 'Politica-Seguranca-Cadeia-Fornecimento-NIS2.docx'; link.click(); // Cleanup setTimeout(() => URL.revokeObjectURL(url), 100); showNotification('✅ Word exportado com sucesso!', 'success'); } catch (error) { showNotification('❌ Erro ao exportar Word', 'error'); console.error('Word export error:', error); } } /** * 7. Initialize Progress Tracking - Auto-calculate on load and changes */ function initializeProgressTracking() { // Initial calculation calculateCompletionProgress(); // Add listeners to editable fields const editables = document.querySelectorAll('.editable'); editables.forEach(el => { el.addEventListener('input', () => { calculateCompletionProgress(); }); }); } /** * 8. DOMContentLoaded - Initialize all features on page load */ document.addEventListener('DOMContentLoaded', function() { // Load saved progress const hasData = localStorage.getItem('supply_chain_data'); if (hasData) { loadProgress(); } // Initialize progress tracking initializeProgressTracking(); // Load supplier directory loadSupplierDirectory(); // Load audit schedule loadAuditSchedule(); // Show welcome message const lastSave = localStorage.getItem('supply_chain_last_save'); if (!lastSave) { setTimeout(() => { showNotification('👋 Bem-vindo! Use o Modo Edição para personalizar o template', 'info'); }, 500); } }); // ======================================== // TOOL 1 FUNCTIONS: Vendor Risk Scorer (4 functions) // ======================================== /** * 9. Calculate Vendor Risk - Sum 5 dimensions and determine risk level */ function calculateVendorRisk() { const vendorName = document.getElementById('vendorName').value; const dataSensitivity = parseInt(document.getElementById('dataSensitivity').value); const systemCriticality = parseInt(document.getElementById('systemCriticality').value); const accessScope = parseInt(document.getElementById('accessScope').value); const failureImpact = parseInt(document.getElementById('failureImpact').value); const securityPosture = parseInt(document.getElementById('securityPosture').value); // Validation if (!vendorName.trim()) { showNotification('⚠️ Por favor insira o nome do fornecedor', 'error'); return; } if (isNaN(dataSensitivity) || isNaN(systemCriticality) || isNaN(accessScope) || isNaN(failureImpact) || isNaN(securityPosture)) { showNotification('⚠️ Por favor preencha todas as dimensões de risco', 'error'); return; } // Calculate total score (5-15) const totalScore = dataSensitivity + systemCriticality + accessScope + failureImpact + securityPosture; // Determine risk level let riskLevel; if (totalScore >= 5 && totalScore <= 8) { riskLevel = 'BAIXO'; } else if (totalScore >= 9 && totalScore <= 11) { riskLevel = 'MÉDIO'; } else if (totalScore >= 12 && totalScore <= 13) { riskLevel = 'ALTO'; } else if (totalScore >= 14 && totalScore <= 15) { riskLevel = 'CRÍTICO'; } // Display result displayRiskResult(vendorName, totalScore, riskLevel); // Save assessment saveRiskAssessment(vendorName, totalScore, riskLevel); showNotification('✅ Avaliação de risco calculada com sucesso', 'success'); } /** * 10. Display Risk Result - Show colored badge with recommendations */ function displayRiskResult(vendorName, score, level) { const resultDiv = document.getElementById('riskResult'); const resultVendorName = document.getElementById('resultVendorName'); const totalScore = document.getElementById('totalScore'); const riskLevel = document.getElementById('riskLevel'); const recommendation = document.getElementById('recommendation'); // Set values resultVendorName.textContent = vendorName; totalScore.textContent = score; riskLevel.textContent = level; // Set color based on risk level let color, bgColor, recommendationText; switch(level) { case 'BAIXO': color = '#10b981'; bgColor = '#d1fae5'; recommendationText = '✅ Risco aceitável. Revisão anual suficiente. Aplicar controlos básicos de segurança.'; break; case 'MÉDIO': color = '#f59e0b'; bgColor = '#fef3c7'; recommendationText = '⚠️ Risco moderado. Revisão semestral recomendada. Implementar controlos de segurança adicionais e monitorização.'; break; case 'ALTO': color = '#f97316'; bgColor = '#fed7aa'; recommendationText = '🔶 Risco elevado. Revisão trimestral obrigatória. Exigir certificações (ISO 27001/SOC 2), auditorias frequentes e controlos rigorosos.'; break; case 'CRÍTICO': color = '#ef4444'; bgColor = '#fee2e2'; recommendationText = '🚨 RISCO CRÍTICO. Revisão mensal obrigatória. Considerar substituição do fornecedor. Exigir certificações, auditorias contínuas, SLA rigoroso e plano de contingência.'; break; } riskLevel.style.color = color; riskLevel.style.fontWeight = 'bold'; riskLevel.style.fontSize = '1.25rem'; riskLevel.style.padding = '0.5rem 1rem'; riskLevel.style.backgroundColor = bgColor; riskLevel.style.borderRadius = '0.5rem'; riskLevel.style.display = 'inline-block'; recommendation.textContent = recommendationText; recommendation.style.color = color; // Show result resultDiv.style.display = 'block'; // Scroll to result resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } /** * 11. Save Risk Assessment - Store in localStorage with timestamp */ function saveRiskAssessment(vendorName, score, level) { const assessment = { vendorName: vendorName, score: score, level: level, timestamp: new Date().toISOString() }; // Get existing assessments const existingData = localStorage.getItem('supply_chain_risk_assessments'); let assessments = existingData ? JSON.parse(existingData) : []; // Add new assessment assessments.push(assessment); // Keep only last 20 assessments if (assessments.length > 20) { assessments = assessments.slice(-20); } localStorage.setItem('supply_chain_risk_assessments', JSON.stringify(assessments)); } /** * 12. Clear Risk Calculator - Reset all fields and hide result */ function clearRiskCalculator() { document.getElementById('vendorName').value = ''; document.getElementById('dataSensitivity').value = ''; document.getElementById('systemCriticality').value = ''; document.getElementById('accessScope').value = ''; document.getElementById('failureImpact').value = ''; document.getElementById('securityPosture').value = ''; document.getElementById('riskResult').style.display = 'none'; showNotification('🔄 Calculadora reiniciada', 'info'); } // ======================================== // TOOL 2 FUNCTIONS: Supplier Directory (4 functions) // ======================================== /** * 13. Add Supplier Row - Add new editable row to supplier table */ function addSupplierRow() { const tbody = document.getElementById('supplierTableBody'); const newRow = document.createElement('tr'); newRow.innerHTML = ` `; tbody.appendChild(newRow); showNotification('✅ Nova linha adicionada ao diretório', 'success'); // Scroll to new row newRow.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } /** * 14. Remove Supplier Row - Delete supplier from table */ function removeSupplierRow(button) { const row = button.closest('tr'); const confirmation = confirm('⚠️ Tem certeza que deseja remover este fornecedor?'); if (confirmation) { row.remove(); showNotification('🗑️ Fornecedor removido do diretório', 'success'); saveSupplierDirectory(); } } /** * 15. Save Supplier Directory - Store entire table in localStorage */ function saveSupplierDirectory() { const tbody = document.getElementById('supplierTableBody'); const rows = tbody.querySelectorAll('tr'); const suppliers = []; rows.forEach(row => { const inputs = row.querySelectorAll('input, select'); if (inputs.length >= 6) { suppliers.push({ name: inputs[0].value, category: inputs[1].value, criticality: inputs[2].value, status: inputs[3].value, lastAudit: inputs[4].value, nextReview: inputs[5].value }); } }); localStorage.setItem('supply_chain_suppliers', JSON.stringify(suppliers)); localStorage.setItem('supply_chain_suppliers_last_save', new Date().toISOString()); showNotification('💾 Diretório de fornecedores guardado com sucesso!', 'success'); } /** * 16. Load Supplier Directory - Restore table from localStorage */ function loadSupplierDirectory() { const savedData = localStorage.getItem('supply_chain_suppliers'); if (!savedData) { return; // No saved data } try { const suppliers = JSON.parse(savedData); const tbody = document.getElementById('supplierTableBody'); // Clear existing rows except template while (tbody.children.length > 1) { tbody.removeChild(tbody.lastChild); } // Add saved suppliers suppliers.forEach((supplier, index) => { if (index === 0) { // Update first row const firstRow = tbody.querySelector('tr'); const inputs = firstRow.querySelectorAll('input, select'); if (inputs.length >= 6) { inputs[0].value = supplier.name || ''; inputs[1].value = supplier.category || ''; inputs[2].value = supplier.criticality || ''; inputs[3].value = supplier.status || ''; inputs[4].value = supplier.lastAudit || ''; inputs[5].value = supplier.nextReview || ''; } } else { // Add new rows const newRow = document.createElement('tr'); newRow.innerHTML = ` `; tbody.appendChild(newRow); } }); } catch (error) { console.error('Error loading supplier directory:', error); } } // ======================================== // TOOL 3 FUNCTIONS: Audit Schedule Planner (4 functions) // ======================================== /** * 17. Generate Audit Schedule - Create quarterly audit calendar */ function generateAuditSchedule() { const year = document.getElementById('auditYear').value || new Date().getFullYear(); const filterCritical = document.getElementById('filterCritical').checked; const filterHigh = document.getElementById('filterHigh').checked; const filterMedium = document.getElementById('filterMedium').checked; const filterLow = document.getElementById('filterLow').checked; // Get suppliers from directory const savedSuppliers = localStorage.getItem('supply_chain_suppliers'); let suppliers = []; if (savedSuppliers) { suppliers = JSON.parse(savedSuppliers); } // Filter suppliers by criticality const filteredSuppliers = suppliers.filter(s => { if (s.criticality === 'critico' && filterCritical) return true; if (s.criticality === 'alto' && filterHigh) return true; if (s.criticality === 'medio' && filterMedium) return true; if (s.criticality === 'baixo' && filterLow) return true; return false; }); // Distribute suppliers across quarters based on criticality const quarters = { q1: [], q2: [], q3: [], q4: [] }; filteredSuppliers.forEach((supplier, index) => { let quarter; // Critical suppliers: every quarter if (supplier.criticality === 'critico') { quarters.q1.push({ ...supplier, name: supplier.name }); quarters.q2.push({ ...supplier, name: supplier.name }); quarters.q3.push({ ...supplier, name: supplier.name }); quarters.q4.push({ ...supplier, name: supplier.name }); } // High suppliers: twice a year (Q1 and Q3) else if (supplier.criticality === 'alto') { if (index % 2 === 0) { quarters.q1.push({ ...supplier, name: supplier.name }); quarters.q3.push({ ...supplier, name: supplier.name }); } else { quarters.q2.push({ ...supplier, name: supplier.name }); quarters.q4.push({ ...supplier, name: supplier.name }); } } // Medium and Low: once a year else { quarter = ['q1', 'q2', 'q3', 'q4'][index % 4]; quarters[quarter].push({ ...supplier, name: supplier.name }); } }); // Display schedule displayAuditSchedule(year, quarters); // Save schedule saveAuditSchedule(year, quarters); showNotification('📅 Calendário de auditorias gerado com sucesso!', 'success'); } /** * 18. Display Audit Schedule - Render quarterly audit calendar */ function displayAuditSchedule(year, quarters) { document.getElementById('scheduleYear').textContent = year; // Populate quarters const criticLabels = { 'critico': '🔴 Crítico', 'alto': '🟠 Alto', 'medio': '🟡 Médio', 'baixo': '🟢 Baixo' }; ['q1', 'q2', 'q3', 'q4'].forEach(q => { const list = document.getElementById(`${q}Audits`); list.innerHTML = ''; if (quarters[q].length === 0) { list.innerHTML = '
  • Nenhuma auditoria agendada
  • '; } else { quarters[q].forEach(supplier => { const li = document.createElement('li'); li.style.padding = '0.5rem 0'; li.style.borderBottom = '1px solid var(--border-color)'; li.textContent = `• ${supplier.name} (${criticLabels[supplier.criticality] || supplier.criticality})`; list.appendChild(li); }); } }); // Show upcoming audits (next 90 days) const upcomingList = document.getElementById('upcomingAudits'); upcomingList.innerHTML = ''; const currentMonth = new Date().getMonth(); let upcomingQuarter; if (currentMonth < 3) upcomingQuarter = 'q1'; else if (currentMonth < 6) upcomingQuarter = 'q2'; else if (currentMonth < 9) upcomingQuarter = 'q3'; else upcomingQuarter = 'q4'; if (quarters[upcomingQuarter].length > 0) { quarters[upcomingQuarter].forEach(supplier => { const li = document.createElement('li'); li.textContent = `${supplier.name} - Auditoria agendada para ${getQuarterLabel(upcomingQuarter)} ${year}`; upcomingList.appendChild(li); }); } else { upcomingList.innerHTML = '
  • Nenhuma auditoria agendada para o trimestre atual
  • '; } // Show result section document.getElementById('auditScheduleResult').style.display = 'block'; // Scroll to result document.getElementById('auditScheduleResult').scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } /** * 19. Save Audit Schedule - Store calendar in localStorage */ function saveAuditSchedule(year, quarters) { const scheduleData = { year: year, quarters: quarters, timestamp: new Date().toISOString() }; localStorage.setItem('supply_chain_audit_schedule', JSON.stringify(scheduleData)); } /** * 20. Load Audit Schedule - Restore calendar from localStorage */ function loadAuditSchedule() { const savedData = localStorage.getItem('supply_chain_audit_schedule'); if (!savedData) { return; // No saved schedule } try { const scheduleData = JSON.parse(savedData); displayAuditSchedule(scheduleData.year, scheduleData.quarters); } catch (error) { console.error('Error loading audit schedule:', error); } } // ======================================== // UTILITY FUNCTIONS (3 functions) // ======================================== /** * 21. Show Notification - Display toast message */ function showNotification(message, type = 'info') { const notification = document.createElement('div'); notification.textContent = message; // Base styles notification.style.position = 'fixed'; notification.style.top = '20px'; notification.style.right = '20px'; notification.style.padding = '1rem 1.5rem'; notification.style.borderRadius = '0.5rem'; notification.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)'; notification.style.zIndex = '10000'; notification.style.fontWeight = '500'; notification.style.minWidth = '250px'; notification.style.maxWidth = '400px'; notification.style.animation = 'slideInRight 0.3s ease'; // Type-specific colors switch(type) { case 'success': notification.style.background = '#10b981'; notification.style.color = 'white'; break; case 'error': notification.style.background = '#ef4444'; notification.style.color = 'white'; break; case 'warning': notification.style.background = '#f59e0b'; notification.style.color = 'white'; break; case 'info': default: notification.style.background = '#0891b2'; notification.style.color = 'white'; break; } document.body.appendChild(notification); // Auto-dismiss after 3 seconds setTimeout(() => { notification.style.animation = 'slideOutRight 0.3s ease'; setTimeout(() => { document.body.removeChild(notification); }, 300); }, 3000); } /** * 22. Format Date - Convert to Portuguese locale */ function formatDate(date) { if (!date) return ''; const d = new Date(date); const day = String(d.getDate()).padStart(2, '0'); const month = String(d.getMonth() + 1).padStart(2, '0'); const year = d.getFullYear(); return `${day}/${month}/${year}`; } /** * 23. Validate Field - Check if editable field is filled */ function validateField(field) { const text = field.textContent.trim(); // Check if empty if (!text) return false; // Check if contains only placeholder text const placeholders = [ '[nome da organização]', '[NIS2', '[inserir', '[nome do', '[data', '[contacto', '[email', '[telefone', '[lista' ]; const isPlaceholder = placeholders.some(p => text.includes(p)); return !isPlaceholder && text.length > 3; } /** * Helper: Get Quarter Label */ function getQuarterLabel(quarter) { const labels = { 'q1': 'Janeiro-Março', 'q2': 'Abril-Junho', 'q3': 'Julho-Setembro', 'q4': 'Outubro-Dezembro' }; return labels[quarter] || quarter; } // Add CSS animation for notifications const style = document.createElement('style'); style.textContent = ` @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOutRight { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100%); opacity: 0; } } `; document.head.appendChild(style);