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.
Recall (wersja zapoznawcza) umożliwia użytkownikom wyszukiwanie lokalnie zapisanych i analizowanych migawek ekranu przy użyciu języka naturalnego. Recall integruje się z dostawcami ochrony przed utratą danych (DLP), aby zapobiec przechowywaniu poufnej zawartości na podstawie zasad organizacji. W tym artykule opisano publiczny interfejs API, który umożliwia Recall pracę z dowolnym DLP narzędziem.
Architektura systemu
Na poniższym diagramie przedstawiono sposób interakcji systemu Windows Recall z dostawcą DLP :
┌─────────────────────────────────────────────────────────────┐
│ Windows Recall │
│ - Captures screenshots and app content │
│ - Queries DLP provider before capturing │
└─────────────────────┬───────────────────────────────────────┘
│ Query: Should we capture this window?
│ Context: Process, Window, File, Labels
▼
┌─────────────────────────────────────────────────────────────┐
│ AIContext.exe Process │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Your DLP Provider DLL (loaded in-process) │ │
│ │ - Evaluates organizational policies │ │
│ │ - Returns capture restrictions │ │
│ │ - Provides sensitivity label information │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────┬───────────────────────────────────────┘
│ Response: Allow/Block/Warn/Audit
│ Labels: Sensitivity information
▼
┌─────────────────────────────────────────────────────────────┐
│ Windows Recall │
│ - Enforces returned restrictions │
│ - Displays sensitivity labels to user │
│ - Logs audit events as required │
└─────────────────────────────────────────────────────────────┘
Publiczne API
Struktury podstawowe
OgraniczenieEnforcement, wyliczenie
Definiuje poziom wymuszania dla określonego ograniczenia.
enum RestrictionEnforcement
{
RestrictionEnforcement_Allow = 0,
RestrictionEnforcement_AuditAndAllow = 1,
RestrictionEnforcement_Warn = 2,
RestrictionEnforcement_Block = 3,
};
Wartości:
- RestrictionEnforcement_Allow (0): operacja jest dozwolona bez ograniczeń.
- RestrictionEnforcement_AuditAndAllow (1): Operacja jest dozwolona, ale powinna być rejestrowana do celów inspekcji.
- RestrictionEnforcement_Warn (2): operacja wyświetla użytkownikowi ostrzeżenie przed kontynuowaniem.
- RestrictionEnforcement_Block (3): Operacja jest całkowicie blokowana.
Struktura ograniczeń
Określa poziom wymuszania dla różnych operacji.
struct Restrictions
{
RestrictionEnforcement CopyToClipboard;
RestrictionEnforcement CaptureInRecall;
};
Członków:
- CopyToClipboard: poziom wymuszania kopiowania zawartości do schowka.
- CaptureInRecall: poziom wymuszania przechwytywania zawartości w Recall migawkach.
SensitivityLabelDescription, struktura
Zawiera informacje o etykiecie poufności do wyświetlania użytkownikowi.
struct SensitivityLabelDescription
{
LPCWSTR Name;
LPCWSTR Color;
LPCWSTR TooltipText;
uint32_t Sensitivity;
};
Członków:
- Nazwa: Nazwa wyświetlana etykiety poufności (na przykład "Poufne").
- Kolor: kod koloru szesnastkowego dla reprezentacji wizualnej (na przykład "#FF0000").
- TooltipText: tekst opisowy wyświetlany po umieszczeniu wskaźnika myszy na etykiecie.
- Czułość: poziom poufności liczbowej (wyższe wartości wskazują większą czułość).
EnterpriseContextQuery, struktura
Zawiera informacje o żądaniu przechwytywania i odpowiedzi od dostawcy DLP .
struct EnterpriseContextQuery
{
uint32_t ProcessId;
uint64_t WindowHandle;
LPCWSTR FileName;
LPCWSTR SensitivityLabelId;
LPCWSTR OrganizationId;
SensitivityLabelDescription SensitivityLabelDescription;
Restrictions Restrictions;
};
Członków:
- ProcessId: identyfikator procesu aplikacji do przechwycenia.
- WindowHandle: Uchwyt do przechwyconego okna.
- FileName: pełna ścieżka do pliku otwartego w aplikacji (jeśli ma to zastosowanie).
- SensitivityLabelId: identyfikator dowolnej istniejącej etykiety poufności.
- OrganizationId: identyfikator organizacji z bieżącego kontekstu użytkownika.
- SensitivityLabelDescription: informacje o etykiecie poufności do wyświetlenia (wypełnione przez dostawcę).
- Ograniczenia: ograniczenia przechwytywania, które mają być wymuszane (wypełniane przez dostawcę).
Uwaga / Notatka
Aplikacje mogą udostępniać informacje o etykietach poufności za pośrednictwem interfejsu UserActivity.ContentInfo API. Aby uzyskać szczegółowe informacje na temat formatowania i dostarczania tych informacji, zobacz Zapewnianie etykiet poufności do Recall elementu UserActivity ContentInfo.
Wymagane eksporty bibliotek DLL
Biblioteka DLP DLL dostawcy musi wyeksportować te funkcje z dokładnymi nazwami pokazanymi:
EnterpriseContextProvider_QueryEnterpriseContext
Recall wywołuje tę funkcję w celu oceny żądań przechwytywania.
HRESULT STDMETHODCALLTYPE EnterpriseContextProvider_QueryEnterpriseContext(
_In_ ULONG totalQuerySizeBytes,
_Inout_updates_all_(totalQuerySizeBytes / sizeof(EnterpriseContextQuery)) EnterpriseContextQuery* queryBuffer);
Parametry:
- totalQuerySizeBytes: całkowity rozmiar buforu zapytania w bajtach.
-
queryBuffer: wskaźnik do tablicy
EnterpriseContextQuerystruktur. Dostawca powinien zaktualizowaćRestrictionspola iSensitivityLabelDescriptionna podstawie zasad organizacyjnych.
Wartość zwracana:
- Zwraca wartość
S_OKpowodzenia lub odpowiedniHRESULTkod błędu w przypadku błędu.
Uwagi:
System Windows może wysyłać wiele zapytań jednocześnie w celu zwiększenia wydajności. Implementacja powinna przetwarzać wszystkie zapytania w buforze i aktualizować odpowiednie pola przed zwróceniem.
EnterpriseContextProvider_FlushEnterpriseContext
Recall okresowo wywołuje tę funkcję, aby umożliwić dostawcy zwalnianie buforowanych ciągów lub zasobów.
VOID STDMETHODCALLTYPE EnterpriseContextProvider_FlushEnterpriseContext();
Uwagi:
Recall wywołuje tę funkcję po przeanalizowaniu lub skopiowaniu danych z poprzedniej odpowiedzi zapytania. Użyj tej funkcji, aby cofnąć przydział wszystkich zasobów, wyczyścić pamięci podręczne lub wykonać operacje oczyszczania.
Rejestracja dostawcy
Konfiguracja rejestru (dostawca)
Instalacja DLP dostawcy tworzy wpis rejestru zawierający ścieżkę do biblioteki DLL:
HKEY_LOCAL_MACHINE\SOFTWARE\YourCompany\DLP
InstallPath REG_SZ C:\Program Files\YourCompany\DLP
Zagadnienia dotyczące zabezpieczeń:
Wzmocnienie zabezpieczeń klucza rejestru, aby zapobiec nieautoryzowanej modyfikacji. Ustaw odpowiednie listy ACL, aby ograniczyć dostęp do zapisu tylko administratorom.
Konfiguracja zasad grupy (administrator)
Administratorzy konfigurują dostawcę za pomocą zasad grupy Ustaw dostawcę ochrony przed utratą danych :
-
Nazwa zasad:
SetDataLossPreventionProvider - Lokalizacja zasad: Konfiguracja > komputera Szablony > administracyjne Składniki > systemu Windows AI
-
Format wartości zasad:
key:<REGISTRY_PATH>; value:<VALUE_NAME>; binary:<DLL_NAME>
Ważny: Pole value odwołuje się do nazwy wartości rejestru w kluczu rejestru określonym przez key.
Przykładowa konfiguracja:
W przypadku utworzenia wpisu rejestru przy użyciu polecenia:
reg add HKLM\Software\YourCompany\DLP -v InstallPath -t REG_SZ -d "C:\Program Files\YourCompany\DLP"
A biblioteka DLL ma nazwę YourCompanyDLP.dll, wartość zasad grupy to:
key:HKLM\software\YourCompany\DLP; value:InstallPath; binary:YourCompanyDLP.dll
Opcjonalne sprawdzanie wersji:
Możesz określić minimalną wymaganą wersję dostawcy DLP :
key:HKLM\software\YourCompany\DLP; value:InstallPath; binary:YourCompanyDLP.dll; minversion:1.2.0.0
Jeśli określisz minversionelement , ładuje plik binarny tylko wtedy, Recall gdy jego wersja jest równa lub większa niż określona wersja.
Przepływ przetwarzania zapytań
Typowa sekwencja interakcji
Windows Recall przygotowuje się do przechwytywania zawartości z okna aplikacji.
Recall Tworzy zapytania , które obejmują:
- Identyfikator procesu i uchwyt okna aplikacji docelowej
- Ścieżka pliku (jeśli aplikacja ma otwarty dokument)
- Wszelkie istniejące informacje o etykiecie poufności
- Identyfikator organizacji z bieżącego kontekstu użytkownika
Twój DLP Dostawca ocenia każde zapytanie względem zasad organizacji:
- Sprawdzanie, czy aplikacja powinna zostać przechwycona
- Weryfikowanie ograniczeń na poziomie pliku
- Ocena etykiet poufności
- Stosowanie zasad specyficznych dla użytkowników/grup
Dostawca zwraca zaktualizowane struktury zapytań za pomocą:
-
Restrictions.CaptureInRecall: Czy zezwalać, ostrzegać, przeprowadzać inspekcję lub blokować przechwytywanie -
SensitivityLabelDescription: Nazwa etykiety, kolor i etykietka narzędzia do wyświetlania - Wszelkie inne istotne informacje o ograniczeniach
-
System Windows Recall wymusza zwracane ograniczenia:
- Zezwalaj: przechwytuje normalnie
- AuditAndAllow: przechwytuje i rejestruje akcję
- Ostrzegaj: monituje użytkownika przed przechwyceniem
- Blokuj: uniemożliwia całkowite przechwytywanie
Przykładowy scenariusz zapytania 1: Dokument programu Word z etykietą "Poufne"
Wkład:
- Proces:
winword.exe - Plik:
SecretProject.docx - Etykieta:
Confidential
Przetwarzanie:
Sprawdź zasady klasyfikacji dokumentów względem reguł organizacyjnych.
Wyjście:
-
CaptureInRecall:RestrictionEnforcement_Block -
SensitivityLabelDescription.Name: "Poufne — nie przechwytywane"
Przykładowy scenariusz zapytania 2: Przeglądarka internetowa w witrynie publicznej
Wkład:
- Proces:
msedge.exe - Okno:
news.example.com
Przetwarzanie:
Sprawdź domenę pod kątem listy zatwierdzonych.
Wyjście:
-
CaptureInRecall:RestrictionEnforcement_Allow
Przykładowy scenariusz zapytania 3: Aplikacja finansowa
Wkład:
- Proces:
FinanceApp.exe - Użytkownik:
finance_user
Przetwarzanie:
Sprawdź ważność grupy użytkowników i aplikacji.
Wyjście:
-
CaptureInRecall:RestrictionEnforcement_AuditAndAllow -
SensitivityLabelDescription.Name: "Dane finansowe — przeprowadź inspekcję"
Wytyczne dotyczące implementacji
Zagadnienia dotyczące wydajności
- Przetwarzanie wsadowe: system Windows może wysyłać wiele zapytań jednocześnie w celu zwiększenia wydajności. Zoptymalizuj kod w celu obsługi przetwarzania wsadowego.
-
Buforowanie: decyzje dotyczące zasad pamięci podręcznej, jeśli są odpowiednie, aby poprawić czas odpowiedzi. Użyj funkcji do zarządzania cyklem
FlushEnterpriseContextżycia pamięci podręcznej. - Operacje asynchroniczne: Unikaj blokowania operacji w funkcji zapytania. Wróć szybko, aby zapobiec wpływowi na środowisko użytkownika.
Obsługa błędów
- Zwróć odpowiednie
HRESULTkody dla różnych warunków błędu. -
FlushEnterpriseContextUżyj funkcji , aby wyczyścić zasoby. - Obsługa przypadków, w których informacje o zasadach są tymczasowo niedostępne bezpiecznie (domyślnie bezpieczne zachowanie).
Wymagania dotyczące zabezpieczeń
- In-Process wykonanie: biblioteka DLL jest uruchamiana w procesie AIContext.exe z podwyższonym poziomem uprawnień.
- Bezpieczne praktyki kodowania: postępuj zgodnie z bezpiecznymi rozwiązaniami dotyczącymi kodowania na potrzeby zarządzania pamięcią. Dokładnie zweryfikuj wszystkie parametry wejściowe.
- Podpisywanie cyfrowe: Biblioteka DLL musi być podpisana przez aplikację Authenticode do wdrożenia. Niepodpisane pliki binarne nie są ładowane.
- Ochrona rejestru: Wzmacnianie klucza rejestru określonego w zasadach grupy w celu zapobiegania nieautoryzowanym modyfikacjom.
Proces ładowania
Recall używa LoadLibraryEx metody do załadowania biblioteki DLL ze ścieżki określonej w rejestrze, a następnie wywołuje metodę GetProcAddress pobierania adresów wymaganych wyeksportowanych funkcji. Po wywołaniu metody QueryEnterpriseContextprogram Recall sprawdza i kopiuje dane z odpowiedzi, a następnie wywołuje wywołania FlushEnterpriseContext , aby umożliwić dostawcy bezpłatne przydzielone zasoby.
Wprowadzenie
Wykonaj następujące kroki, aby utworzyć i wdrożyć dostawcę DLP :
Opracuj bibliotekę DLL , implementując wymagane eksporty:
EnterpriseContextProvider_QueryEnterpriseContextEnterpriseContextProvider_FlushEnterpriseContext
Przetestuj implementację za pomocą przykładowych zapytań, aby zapewnić prawidłowe zachowanie w różnych scenariuszach.
Podpisz plik binarny przy użyciu certyfikatu Authenticode.
Utwórz proces instalacji , który:
- Instaluje bibliotekę DLL w bezpiecznej lokalizacji
- Konfiguruje wpis rejestru z odpowiednimi listami ACL
- Udostępnia narzędzia konfiguracji dla administratorów
Podaj instrukcje dotyczące zasad grupy dla administratorów w celu skonfigurowania
SetDataLossPreventionProviderzasad.Wdrażanie i konfigurowanie w środowisku przedsiębiorstwa.
Powiązane łącza
Windows developer