Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano, jak można chronić poufne dane przed uwidocznieniem w dziennikach komunikatów, a także zdarzenia generowane przez rejestrowanie komunikatów.
Obawy dotyczące zabezpieczeń
Rejestrowanie informacji poufnych
Program Windows Communication Foundation (WCF) nie modyfikuje żadnych danych w nagłówkach i treściach specyficznych dla aplikacji. Program WCF nie śledzi również informacji osobistych w nagłówkach lub danych treści specyficznych dla aplikacji.
Po włączeniu rejestrowania komunikatów informacje osobiste w nagłówkach specyficznych dla aplikacji, takie jak ciąg zapytania, oraz informacje zawarte w 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 w plikach konfiguracji i dziennika. Jeśli nie chcesz, aby takie informacje były widoczne, należy wyłączyć rejestrowanie lub odfiltrować część danych, jeśli chcesz udostępnić dzienniki.
Poniższe porady mogą pomóc w zapobieganiu przypadkowemu uwidacznianiu zawartości pliku dziennika:
Upewnij się, że pliki dziennika są chronione przez listy kontroli dostępu (ACL) zarówno w scenariuszach hosta sieci Web, jak i własnego hosta.
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 Internet Information Services (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 hosta sieci Web, aby uniemożliwić mu dostęp przez stronę zewnętrzną za pomocą 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 elemrybucie machineSettings pliku Machine.config, aby umożliwić aplikacjom działającym na maszynie rejestrowanie znanych danych osobowych. Poniższa konfiguracja pokazuje, jak to zrobić:
<configuration>
<system.serviceModel>
<machineSettings enableLoggingKnownPii="true"/>
</system.serviceModel>
</configuration>
Następnie wdrażający aplikację może 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 jest rejestrowanie danych PII. Kombinacja dwóch przełączników umożliwia elastyczne rejestrowanie znanych danych PII dla każdej aplikacji.
Ważny
W programie .NET Framework 4.6.1 flagi logEntireMessage i logKnownPii muszą być również ustawione na true w pliku Web.config lub w pliku App.config, aby włączyć rejestrowanie danych osobowych, jak pokazano w poniższym przykładzie <system.serviceModel><messageLogging logEntireMessage="true" logKnownPii="true" ….
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, PII nie jest rejestrowane dla obu źródeł, mimo że rejestrowanie PII jest wyraźnie 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="traces"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\logs\traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
Jeśli element <machineSettings enableLoggingKnownPii="Boolean"/> istnieje poza plikiem Machine.config, system zgłasza 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 ustawiona na true, ale enableLoggingKnownPii jest false.
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.
Ostrożność
Dane osobowe nie są ukryte w źle sformułowanych komunikatach. Takie komunikaty są rejestrowane as-is bez żadnych modyfikacji. Atrybuty wymienione wcześniej nie mają wpływu na to.
Niestandardowy nasłuchiwacz śledzenia
Dodanie niestandardowego odbiornika śledzenia na źródle śledzenia rejestrowania komunikatów jest przywilejem, który powinien być zastrzeżony dla administratora. Dzieje się tak, ponieważ złośliwe odbiorniki niestandardowe można skonfigurować do zdalnego wysyłania komunikatów, co prowadzi do ujawnienia poufnych informacji. Ponadto w przypadku skonfigurowania niestandardowego odbiornika do wysyłania komunikatów w sieci, na przykład do zdalnej bazy danych, należy wymusić właściwą kontrolę dostępu w dziennikach komunikatów na maszynie zdalnej.
Zdarzenia wyzwalane przez rejestrowanie komunikatów
Poniżej wymieniono wszystkie zdarzenia emitowane przez rejestrowanie komunikatów.
Rejestrowanie komunikatów: to zdarzenie jest emitowane, gdy rejestrowanie komunikatów jest włączone w konfiguracji lub za pośrednictwem usługi WMI. Zawartość zdarzenia to "Rejestrowanie komunikatów zostało włączone. Poufne informacje mogą być rejestrowane w postaci zwykłego tekstu, nawet jeśli zostały zaszyfrowane na przewodach, na przykład treści wiadomości.
Wyłączanie rejestrowania komunikatów: to zdarzenie jest generowane, gdy rejestrowanie komunikatów jest wyłączone za pośrednictwem usługi WMI. Zawartość zdarzenia to "Rejestrowanie komunikatów zostało wyłączone".
Log Known PII On: To zdarzenie jest emitowane, gdy włączone jest logowanie znanych danych osobowych. Dzieje się tak, gdy atrybut
enableLoggingKnownPiiw elemrybuciemachineSettingspliku Machine.config jest ustawiony natrue, a atrybutlogKnownPiielementusourcew pliku App.config lub Web.config jest ustawiony na wartośćtrue.Rejestrowanie znanych danych PII niedozwolone: To zdarzenie jest generowane, gdy nie można rejestrować znanych danych PII. Dzieje się tak, gdy atrybut
logKnownPiielementusourcew pliku App.config lub Web.config jest ustawiony na wartośćtrue, ale atrybutenableLoggingKnownPiiw elemeciemachineSettingspliku Machine.config jest ustawiony na wartośćfalse. Nie jest zgłaszany żaden wyjątek.
Te zdarzenia można wyświetlić w narzędziu Podgląd zdarzeń dostarczanym z systemem Windows. Aby uzyskać więcej informacji na ten temat, zobacz rejestrowanie zdarzeń.