Udostępnij za pośrednictwem


Problemy dotyczące zabezpieczeń i przydatne porady na temat śledzenia

W tym temacie opisano sposób ochrony poufnych informacji przed uwidocznieniem, a także przydatnych wskazówek podczas korzystania z hosta internetowego.

Używanie niestandardowego odbiornika śledzenia z hostem internetowym

Jeśli piszesz własny odbiornik śledzenia, należy pamiętać o możliwości utraty śladów w przypadku usługi hostowanej w sieci Web. Podczas recyklingu webhost zamyka proces na żywo, podczas gdy duplikat przejmuje. Jednak dwa procesy muszą mieć dostęp do tego samego zasobu przez jakiś czas, który jest zależny od typu odbiornika. W tym przypadku XmlWriterTraceListener program tworzy nowy plik śledzenia dla drugiego procesu, podczas gdy śledzenie zdarzeń systemu Windows zarządza wieloma procesami w ramach tej samej sesji i zapewnia dostęp do tego samego pliku. Jeśli twój własny odbiornik nie udostępnia podobnych funkcji, ślady mogą zostać utracone, gdy plik zostanie zablokowany przez dwa procesy.

Należy również pamiętać, że niestandardowy odbiornik śledzenia może wysyłać ślady i komunikaty na przewodach, na przykład do zdalnej bazy danych. Jako narzędzie do wdrażania aplikacji należy skonfigurować niestandardowe odbiorniki z odpowiednią kontrolą dostępu. Należy również zastosować kontrolę zabezpieczeń na wszelkie dane osobowe, które mogą być widoczne w lokalizacji zdalnej.

Rejestrowanie informacji poufnych

Ślady zawierają nagłówki komunikatów, gdy komunikat znajduje się w zakresie. Po włączeniu śledzenia informacje osobiste w nagłówkach specyficznych dla aplikacji, takie jak ciąg zapytania; informacje o treści, takie jak numer karty kredytowej, mogą stać się widoczne w dziennikach. Narzędzie do wdrażania aplikacji jest odpowiedzialne za wymuszanie kontroli dostępu do plików konfiguracji i śledzenia. Jeśli nie chcesz, aby takie informacje były widoczne, należy wyłączyć śledzenie lub odfiltrować część danych, jeśli chcesz udostępnić dzienniki śledzenia.

Poniższe porady mogą pomóc zapobiec przypadkowemu ujawnieniu zawartości pliku śledzenia:

  • Upewnij się, że pliki dziennika są chronione przez listy kontroli dostępu (ACL) zarówno w scenariuszach WebHost, jak i self-host.

  • Wybierz rozszerzenie pliku, którego nie można łatwo obsłużyć przy użyciu żądania sieci Web. Na przykład rozszerzenie .xml pliku nie jest bezpiecznym wyborem. Możesz zapoznać się z przewodnikiem administrowania usługami IIS, aby wyświetlić listę rozszerzeń, które mogą być obsługiwane.

  • Określ ścieżkę bezwzględną dla lokalizacji pliku dziennika, która powinna znajdować się poza katalogiem publicznym vroot webhost, aby uniemożliwić dostęp do niego przez stronę zewnętrzną przy użyciu przeglądarki sieci Web.

Domyślnie klucze i dane osobowe, takie jak nazwa użytkownika i hasło, nie są rejestrowane w śladach i zarejestrowanych komunikatach. Administrator komputera może jednak użyć atrybutu enableLoggingKnownPII w machineSettings elemekcie pliku Machine.config, aby umożliwić aplikacjom działającym na maszynie rejestrowanie znanych danych osobowych w następujący sposób:

<configuration>  
   <system.ServiceModel>  
      <machineSettings enableLoggingKnownPii="Boolean"/>  
   </system.ServiceModel>  
</configuration>

Narzędzie do wdrażania aplikacji może następnie użyć atrybutu logKnownPii w pliku App.config lub Web.config, aby włączyć rejestrowanie piI w następujący sposób:

<system.diagnostics>  
  <sources>  
      <source name="System.ServiceModel.MessageLogging"  
        logKnownPii="true">  
        <listeners>  
                 <add name="messages"  
                 type="System.Diagnostics.XmlWriterTraceListener"  
                 initializeData="c:\logs\messages.svclog" />  
          </listeners>  
      </source>  
  </sources>  
</system.diagnostics>  

Tylko wtedy, gdy oba ustawienia są true włączone rejestrowanie danych pii. Kombinacja dwóch przełączników umożliwia elastyczność rejestrowania znanych danych piI dla każdej aplikacji.

Należy pamiętać, że jeśli określisz co najmniej dwa źródła niestandardowe w pliku konfiguracji, odczytywane są tylko atrybuty pierwszego źródła. Pozostałe są ignorowane. Oznacza to, że w przypadku następującego pliku App.config dane osobowe nie są rejestrowane dla obu źródeł, mimo że rejestrowanie danych biznesowych jest jawnie włączone dla drugiego źródła.

<system.diagnostics>  
  <sources>  
      <source name="System.ServiceModel.MessageLogging"  
        logKnownPii="false">  
        <listeners>  
           <add name="messages"  
                type="System.Diagnostics.XmlWriterTraceListener"  
                initializeData="c:\logs\messages.svclog" />  
          </listeners>  
      </source>  
      <source name="System.ServiceModel"
         logKnownPii="true">  
         <listeners>  
            <add name="xml" />  
         </listeners>  
      </source>  
  </sources>  
</system.diagnostics>  

<machineSettings enableLoggingKnownPii="Boolean"/> Jeśli element istnieje poza plikiem Machine.config, system zgłasza błąd ConfigurationErrorsException.

Zmiany są skuteczne tylko wtedy, gdy aplikacja zostanie uruchomiona lub uruchomiona ponownie. Zdarzenie jest rejestrowane podczas uruchamiania, gdy oba atrybuty są ustawione na true. Zdarzenie jest również rejestrowane, jeśli logKnownPii jest ustawione na true , ale enableLoggingKnownPii ma falsewartość .

Aby uzyskać więcej informacji na temat rejestrowania danych osobowych, zobacz Przykład blokady zabezpieczeń pii.

Administrator maszyny i narzędzie do wdrażania aplikacji powinny zachować szczególną ostrożność podczas korzystania z tych dwóch przełączników. Jeśli rejestrowanie piI jest włączone, klucze zabezpieczeń i dane osobowe są rejestrowane. Jeśli są wyłączone, poufne i dane specyficzne dla aplikacji są nadal rejestrowane w nagłówkach i treściach komunikatów. Aby uzyskać bardziej szczegółową dyskusję na temat prywatności i ochrony danych osobowych przed ujawnieniem, zobacz Prywatność użytkowników.

Ponadto adres IP nadawcy komunikatów jest rejestrowany raz na połączenie dla transportu zorientowanego na połączenie i raz na wiadomość wysłaną w przeciwnym razie. Odbywa się to bez zgody nadawcy. Jednak rejestrowanie odbywa się tylko na poziomach Informacje lub Pełne śledzenie, które nie są domyślnymi lub zalecanymi poziomami śledzenia w środowisku produkcyjnym, z wyjątkiem debugowania na żywo.

Zobacz też