Implicazioni dell'utilizzo di account dominio \ nomecomputer $ per fornire dati SQL a IIS

2

Uno dei nostri programmatori sta cercando di far funzionare l'autenticazione di Windows su una nuova app Web che sta sviluppando (.Net 4.0, MVC, via IIS 7.0 / 7.5).

L'applicazione si connette a un back-end del database SQL Server tramite un singolo account di accesso SQL:

Dominio \ Nomecomputer $

È mappato su un account utente con lo stesso nome all'interno di un singolo database e ha i seguenti ruoli:

db_datareader
  db_datawriter

Gli utenti di Windows Domain sono quindi in qualche modo autenticati e hanno accesso al DB.

Qualcuno sa se questo presenta rischi significativi per la sicurezza se il web server (ma non il server SQL) è pubblicamente accessibile in rete? Mi sembra quasi brutto come dare quei privilegi a NT AUTHORITY \ ANONYMOUS LOGON, ma devo ammettere che non sono esattamente in questa zona.

    
posta GringoFrenzy 08.05.2013 - 11:49
fonte

2 risposte

2

Non fa alcuna differenza per la sicurezza del server web.

In questo caso, l'account con cui ci si connette sarà l'account della macchina, poiché l'applicazione Web è probabilmente in esecuzione nel contesto di entrambi:

  1. L'account del servizio di rete
  2. L'account AppPoolIdentity.

In entrambi i casi sono account non interattivi limitati e poiché l'applicazione è già in esecuzione nel contesto di uno di questi account, non vi è alcuna esposizione aggiuntiva al server Web o alla rete che verrà creato utilizzando lo stesso account per accedere al database. L'esposizione al database (e al server del database) sarà determinata dalla modalità di configurazione dell'accesso agli account, non è diversa dall'esposizione creata utilizzando qualsiasi altro account configurato nello stesso modo.

Come aggiungere l'account ai ruoli db_datareader e db_datawriter, non è irragionevole. Sarebbe migliore se tutti gli accessi ai dati fossero eseguiti attraverso stored procedure e si potesse limitare l'account al ruolo pubblico , ma se è necessario accedere direttamente alle tabelle sottostanti, allora questo è il set di autorizzazioni minimo richiesto per accedere e aggiornare i dati e non è terribilmente insicuro. Rende più importante tenere conto di eventuali potenziali attacchi di SQL injection nella tua app.

    
risposta data 08.05.2013 - 22:03
fonte
0

Se la tua app Web viene compromessa, l'utente malintenzionato riceverà normalmente gli stessi privilegi dell'utente che esegue l'applicazione. Da quello che sembra sarebbe un utente del dominio. Inoltre, sembra che avrebbero letto e accesso WRITE al tuo database. A seconda di cosa ci sia dentro potresti non volerlo.

    
risposta data 08.05.2013 - 14:12
fonte

Leggi altre domande sui tag