Determinazione dei requisiti di sicurezza del VPC - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Determinazione dei requisiti di sicurezza del VPC

Importante

È consigliabile progettare e testare l'architettura di sicurezza del traffico in uscita del VPC in un ambiente di test. Il test delle modifiche all'architettura in un ambiente di sviluppo riduce il rischio di attivare comportamenti indesiderati del sistema.

Prima di apportare modifiche ai modelli di traffico in uscita della rete, è importante comprendere i modelli di traffico di cui l'applicazione ha bisogno per funzionare come previsto. Queste informazioni possono aiutarti a identificare quali modelli di traffico consentire e quali negare quando riprogetti la rete.

Per analizzare i modelli di traffico in uscita esistenti del tuo VPC, attiva innanzitutto i log di flusso VPC. Quindi, utilizza un ambiente di test per eseguire l'applicazione in vari scenari di utilizzo e analizzare il traffico simulato nei log di flusso.

I log di flusso VPC registrano il traffico IP in entrata e in uscita del tuo VPC. Amazon VPC invia quindi i log ad Amazon Simple Storage Service (Amazon S3) o Amazon. CloudWatch Puoi visualizzare e analizzare i log utilizzando uno dei seguenti strumenti:

  • (Per Amazon S3) Amazon Athena

  • (Per) Logs Insights CloudWatch CloudWatch

Per maggiori informazioni e query di esempio, consulta:

Per i dettagli sui tipi di informazioni acquisite dai log di flusso VPC, consulta la sezione Esempi di record di log di flusso nella Guida per l'utente di Amazon VPC.

Nota

I log di flusso VPC non acquisiscono informazioni sul livello dell'applicazione (livello 7), come i nomi host DNS. Se i requisiti di sicurezza richiedono l'analisi dei dati a livello di applicazione, puoi implementare AWS Network Firewall per acquisire i dettagli richiesti. Per ulteriori informazioni, consulta la sezione Limitazione del traffico in uscita di un VPC utilizzando nomi host DNS di questa AWS Network Firewall guida.

Best practice per analizzare il traffico in uscita del VPC durante l'utilizzo dei log di flusso VPC

Quando analizzi i log di flusso VPC utilizzando le query Amazon Athena CloudWatch o Logs Insights, assicurati di fare quanto segue:

  • Identifica e analizza il traffico in entrata e in uscita che fluisce attraverso le interfacce di rete elastiche collegate alle risorse utilizzate dall'applicazione.

  • Identifica e analizza il traffico delle applicazioni che fluisce attraverso l'interfaccia di rete collegata al gateway NAT.

  • Assicurati di acquisire tutto il traffico in uscita per un'interfaccia di rete impostando l'indirizzo di origine nella query come indirizzo IP privato dell'interfaccia di rete.

  • Scrivi le tue query in modo da concentrarti solo sui modelli di traffico imprevisti. (Ad esempio, se la tua applicazione comunica con entità di terze parti come un endpoint dell'API HTTPS, puoi creare le tue query in modo da non includere tali entità.)

  • Verifica la validità di ogni porta e indirizzo IP di destinazione. (Ad esempio, una porta di destinazione in uscita 22 potrebbe essere normale per un host bastione o un host che clona i repository da Git utilizzando SSH.)

Nota

Se lavori con Amazon Athena per la prima volta, assicurati di configurare una posizione per i risultati della query. Per le istruzioni, consulta la sezione Specificare una posizione dei risultati delle query utilizzando la console Athena nella Guida per l'utente di Amazon Athena.

Esempi di query di Amazon Athena

Esempio di query di Athena che restituisce il traffico amministrativo in uscita da un'interfaccia di rete specifica

La seguente query di Athena restituisce le prime 200 righe di traffico amministrativo in uscita da un'interfaccia di rete con l'indirizzo IP di 10.100.0.10:

SELECT * FROM "<vpc_flow_logs_table_name>" WHERE interface_id = 'eni-1234567890000000' AND srcaddr LIKE '10.100.0.10' AND dstport < 1024 LIMIT 200;

Esempio di output

#

1

versione

2

account_id

<account-id>

interface_id

eni-123456789000000

srcaddr

10.32.0.10

dstaddr

11,2233,44

srcport

36952

dstport

443

protocol

6

packets

25

bytes

5445

start

1659310200

end

1659310225

action

ACCEPT

log_status

OK

data

2022-07-16

Nota

L'output in questo modello è formattato a scopo di presentazione e può apparire in modo diverso sul sistema.

Esempio di query di Athena che restituisce indirizzi IP esterni che ricevono la maggior parte del traffico da un VPC specifico

La seguente query di Athena restituisce gli indirizzi IP e le porte esterne che ricevono la maggior parte del traffico in uscita da un VPC con un blocco CIDR che inizia con '10.32':

SELECT dstport, dstaddr, count(*) AS count FROM "<vpc_flow_logs_table_name>" WHERE dstaddr not like '10.32%' AND interface_id = 'eni-1234567890000000' GROUP BY dstport, dstaddr ORDER BY count desc LIMIT 200;

Esempio di output

#

Dstport

Dstaddr

count

1

443

52.x.x.x

1442

2

443

63.x.x.x

1201

3

443

102.x.x.x

887

Esempio di query di Athena che restituisce il traffico in uscita rifiutato da un VPC specifico

La seguente query di Athena restituisce il traffico in uscita rifiutato da un VPC con un blocco CIDR che inizia con '10.32':

SELECT *              FROM "<vpc_flow_logs_table_name>"  WHERE srcaddr like '10.32%' AND action LIKE 'REJECT'

Esempio di output

#

1

versione

2

account_id

<account-id>

interface_id

eni-123456789000000

srcaddr

10,3280,10

dstaddr

11,2233,44

srcport

36952

dstport

443

protocol

6

packets

25

bytes

5445

start

1659310200

end

1659310225

action

REJECT

log_status

OK

data

2022-07-16

Nota

L'output in questo modello è formattato a scopo di presentazione e può apparire in modo diverso sul sistema.

Per ulteriori informazioni su come interpretare i risultati delle query di Athena, consulta la sezione Record di log di flusso nella Guida per l'utente di Amazon VPC.

CloudWatch Esempi di query di Logs Insights

CloudWatch Esempio di query Logs Insights che restituisce il traffico amministrativo in uscita da una specifica interfaccia di rete

La seguente query di CloudWatch Logs Insights restituisce i primi 200 risultati del traffico amministrativo in uscita da un'interfaccia di rete con l'indirizzo IP 10.100.0.10:

fields @timestamp, @message | filter interfaceId = 'eni-1234567890000000' | filter srcAddr = '10.100.0.10' | filter dstPort < 1024 | limit 200

Esempio di output

Campo

Valore

@ingestionTime

1659310250813

@log

<account-id>:/aws/vpc/flowlogs

@logStream

eni-123456789000000-all

@message

2 <account-id> eni-123456789000000 10.100.0.10 11.22.33.44 36952 443 6 25 5445 1659310200 1659310225 ACCEPT OK

@timestamp

1659310200000

accountId

<account-id>

action

ACCEPT

bytes

5445

dstAddr

11,2233,44

dstPort

443

end

1659310225

interfaceId

eni-123456789000000

logStatus

OK

packets

25

protocol

6

srcAddr

10,1000,10

srcPort

36952

start

1659310200

version

2

Esempio: query CloudWatch Logs Insights che restituisce indirizzi IP esterni che ricevono la maggior parte del traffico da un VPC specifico

La seguente query di CloudWatch Logs Insights restituisce gli indirizzi IP e le porte esterne che ricevono la maggior parte del traffico in uscita da un VPC con un blocco CIDR che inizia con '10.32':

filter @logstream = 'eni-1234567890000000' | stats count(*) as count by dstAddr, dstPort | filter dstAddr not like '10.32' | order by count desc | limit 200

Esempio di output

#

dstAddr

dstPort

count

1

52.x.x.x

443

439

2

51.79.x.x

63.x.x.x

25

Esempio di query CloudWatch Logs Insights che restituisce il traffico in uscita rifiutato da un VPC specifico

La seguente query di CloudWatch Logs Insights restituisce il traffico in uscita rifiutato da un VPC con un blocco CIDR che inizia con '10.32':

filter @logstream = 'eni-0123456789000000' | fields @timestamp, @message | filter action='REJECT'

Esempio di output

Campo

Valore

@ingestionTime

1666991000899

@log

<account-id>:/aws/vpc/flowlogs

@logStream

eni-0123456789000000-all

@message

2 <account-id> 'eni-0123456789000000' 185.x.x.x 10.10.2.222 55116 11211 17 1 43 1666990939 1666990966 REJECT OK

@timestamp

1666990939000

accountId

<account-id>

action

REJECT

bytes

43

dstAddr

10,10,2222

dstPort

11211

end

1666990966

interfaceId

'eni-0123456789000000'

logStatus

OK

packets

1

protocol

17

srcAddr

185.x.x.x

srcPort

55116

rapida

1666990939

version

2