Ukryta praca modernizacji Malwarebytes

| 4 września 2026 r
Malwarebytes znajduje się za trzema ilustrowanymi postaciami pracującymi na swoich laptopach.

Większość pracy, która zapewnia wiarygodność produktu zabezpieczającego, jest niewidoczna. Użytkownicy widzą, że skanowanie zostało ukończone, zagrożenie zostało zablokowane, a aktualizacja została zainstalowana w ciągu nocy. Nie widzą platformy, która jest ukryta pod spodem. Środowiska wykonawcze, zarządzane biblioteki, natywne sterowniki i… Windows Wszystkie wymagania muszą być aktualne i działać ze sobą na milionach punktów końcowych. Nasza migracja do .NET 10 to jeden z przykładów tego, jak dbamy o mobilność tej platformy i na czym skupiamy się w tym artykule.

Łatwo byłoby nazwać te aktualizacje zadaniami konserwacyjnymi i przejść dalej. Ale to niedocenianie ich. Nasz kod działa nieprzerwanie, z podwyższonymi uprawnieniami, obok niektórych z najbardziej wrażliwych części. Windows .

Każda zależność w naszym stosie, od środowiska wykonawczego i bibliotek zewnętrznych, po natywne sterowniki i wymagania systemu operacyjnego, wpływa na środowisko, w którym działa nasze oprogramowanie. Zmiana jednej zależności może również spowodować konieczność zmiany wszystkiego, co od niej zależy.

Problem: platformy pozostają w tyle, ponieważ stoją w miejscu 

W dziedzinie bezpieczeństwa punktów końcowych grunt nigdy się nie zatrzymuje. Windows Ewoluuje. Zagrożenia ewoluują. Sprzęt ewoluuje, od laptopów ARM64 po maszyny z dużo większą pamięcią i szybszą pamięcią masową niż te, dla których pierwotnie napisano nasz kod.  

Platforma, która stoi w miejscu, nie pozostaje taka sama. Pozostaje w tyle. Każde pominięte wydanie zależności lub środowiska wykonawczego pogłębia przepaść między ekosystemem, na którym zbudowaliśmy, a tym, który jest stabilny dzisiaj.  

Nowoczesne środowisko uruchomieniowe, a w szczególności .NET 10, może zapewnić nam lepsze bezpieczeństwo, szybsze ścieżki kodu, mniejsze zużycie pamięci i bogatszą diagnostykę. Zapewnia również naszym inżynierom udoskonalenia języka i narzędzi, które pomagają im pracować wydajniej. 

Stawka jest szczególnie wysoka również w przypadku oprogramowania zabezpieczającego: 

  • Aplikację internetową można wycofać podczas wdrażania. Oprogramowania już zainstalowanego na punkcie końcowym klienta nie można wycofać. 
  • Nasz kod działa z wysokimi uprawnieniami, wraz ze sterownikami jądra i zabezpieczeniami przed manipulacją.   
  • Regresja w czasie wykonywania nie ma wpływu na jeden serwer. Może mieć wpływ na miliony maszyn.  

Dlatego traktujemy aktualizację środowiska wykonawczego z taką samą starannością, jak funkcję bezpieczeństwa. 

Wyzwanie: wszystko porusza się razem 

Malwarebytes Do Windows nie jest pojedynczym programem. Jest to skoordynowany system: interfejs użytkownika, kilka długotrwałych Windows usługi, instalator, proces samodzielnej aktualizacji, powierzchnia wtyczki i zarządzane przez strony trzecie zależności.  

Znajdują się one nad natywnymi sterownikami i naszym silnikiem detekcji. Migracja do .NET 10 objęła zarządzane części Malwarebytes pozostawiając ten natywny rdzeń nietknięty. Jednak różne warstwy nadal muszą ze sobą współdziałać. 

Migracja musiała spełniać kilka wymagań naraz:  

  • Kod wrażliwy na bezpieczeństwo musiał zachowywać się identycznie przed i po zmianie.  
  • Natywne sterowniki i warstwy zabezpieczające przed manipulacją musiały nadal poprawnie współpracować z zarządzanym kodem. 
  • Instalator i proces aktualizacji musiały wdrożyć nowe pliki środowiska wykonawczego i wyczyścić stare.  
  • Wtyczki i zależności firm trzecich musiały pozostać kompatybilne. 
  • Istniejący Malwarebytes instalacje musiały kontynuować pracę.  
  • Nasza automatyczna walidacja musiała być na tyle obszerna, abyśmy mogli ufać wynikom bez konieczności ręcznego sprawdzania każdej ścieżki. 

Granica między kodem zarządzanym a natywnym zasługiwała na szczególną uwagę. Kod zarządzany w naszych usługach komunikuje się z komponentami natywnymi za pośrednictwem interfejsów takich jak P/Invoke i COM. Zmiana w czasie wykonywania może subtelnie wpłynąć na sposób działania tych różnych części. Malwarebytes komunikować się i współpracować. 

Te różnice mogą nigdy nie być widoczne w wersji demonstracyjnej. Mogą pojawić się tylko na jednej maszynie na 10 000. Najważniejsze jest ich wykrycie, zanim zrobią to klienci. 

Nie każda aktualizacja wygląda tak samo 

Istnieją trzy główne powody, dla których aktualizujemy zależność: sami się na to decydujemy, platforma nas do tego zmusza lub luka w zabezpieczeniach nas do tego zmusza. Każdy z nich ma inny harmonogram.  

Modernizacja opcjonalna. Możemy zdecydować się na przejście na nowe środowisko wykonawcze, nową główną wersję biblioteki lub nową funkcjonalność platformy, aby skorzystać z nowych funkcji, poprawek lub ulepszeń bezpieczeństwa.  

Zmiany w linii bazowej. Wraz ze wzrostem wymagań platformy, niektóre starsze ograniczenia dotyczące kompatybilności mogą hamować modernizację. Na przykład, przejście na .NET 10 pozwoliło nam zaktualizować linię bazową aplikacji i wdrożyć nowsze, obsługiwane środowisko uruchomieniowe. W ramach tej samej zmiany, Windows Wsparcie dla wersji 7 zostało wycofane. 

Wymuszone poprawki. Czasami luka w zabezpieczeniach zostaje ujawniona w bibliotece, którą dostarczamy, lub w systemie, od którego jesteśmy zależni. Zmiana nie jest już opcjonalna, a harmonogram nie należy do nas. Możemy kontrolować naszą gotowość: proces testowania, wydawania wersji i etapowe wdrażanie, które pozwalają nam szybko reagować bez wprowadzania nowych problemów. 

Różne powody i różne ramy czasowe, ale każdy przypadek wymaga takiego samego, starannego podejścia. 

Migracja .NET: Dlaczego to zrobiliśmy 

Przejście na .NET 10 daje Malwarebytes bezpieczniejsze, bardziej wspierane i sprawniejsze podstawy dla Windows , z kilkoma kumulującymi się korzyściami: 

Bezpieczeństwo. Nowoczesne środowisko uruchomieniowe korzysta z ciągłych prac Microsoftu nad bezpieczeństwem, w tym z bezpieczniejszych ustawień domyślnych, silniejszej kryptografii oraz rozwiązań łagodzących błędy pamięci i interoperacyjności. Pozostając w środowisku uruchomieniowym, które Microsoft aktywnie wspiera, możemy nadal stosować poprawki w przypadku wykrycia luk w zabezpieczeniach.  

Wspierany fundament. Może to nie być powód do spektakularności, ale .NET 10 zapewnia nam wspieraną, aktywnie rozwijaną platformę, która jest lepiej dostosowana do nowszych wersji. Windows Ułatwia to wdrażanie przyszłych poprawek, funkcji i udoskonaleń w ramach rutynowych działań, a nie jednorazowych projektów. 

Diagnostyka i obserwowalność. Nowoczesny .NET oferuje skuteczniejsze wbudowane funkcje śledzenia, metryki i diagnostyki awarii. W produkcie zabezpieczającym zrozumienie zachowania kodu w terenie ma duże znaczenie. Lepsza diagnostyka pomaga nam identyfikować i rozwiązywać problemy z niezawodnością.  

Wydajność i efektywność pamięci. Najnowsze wersje .NET ulepszyły kompilator just-in-time, moduł zbierający śmieci i biblioteki rdzeniowe. Nasze procesy działają cały dzień w tle, więc ich wydajność i zarządzanie pamięcią ma znaczenie. Te możliwości dają nam więcej możliwości poprawy wydajności, choć wpływ będzie różny w zależności od komponentu. 

Migracja .NET: Jak to zrobiliśmy  

Zasada jest prosta: nigdy nie posuwaj się naprzód szybciej, niż pozwalają na to dowody.  

Zaczęliśmy od wyizolowania pracy w dedykowanej gałęzi. Zmieniliśmy przeznaczenie platformy i odświeżyliśmy wszystkie zarządzane zależności, tak aby nowe środowisko wykonawcze i baza kodu były zgodne co do tego, które komponenty powinny zostać dostarczone.  

Już na wczesnym etapie ujawniło to mniej oczywiste konsekwencje aktualizacji: biblioteki, których nazwy zmieniono lub które zostały włączone do środowiska wykonawczego, pliki, które nie były już potrzebne, oraz nowe, które musiały zostać dostarczone w ich miejsce. 

Ścieżka migracji

Wdrożenie jest łatwe do przeoczenia, a ewentualne błędy kosztowne. Migracja środowiska wykonawczego dotyczy nie tylko kodu, który jest uruchamiany. Dotyczy również tego, co znajdzie się na dysku klienta.  

Nasz instalator i usługa aktualizacji musiały nauczyć się układu plików nowego środowiska uruchomieniowego. Musieli usunąć zależności udostępniane przez środowisko uruchomieniowe, zaprzestać wysyłania plików o zmienionych nazwach i dostarczać pliki zastępcze w sposób czysty zarówno podczas nowych instalacji, jak i aktualizacji w miejscu instalacji.  

Prawidłowe wdrożenie stanowi różnicę między uaktualnieniem, którego użytkownicy nigdy nie zauważą, a uaktualnieniem, które stworzy problem dla wsparcia technicznego. 

Gdy kompilacja działała poprawnie, skupiono się na walidacji. 

Migracja obejmowała: 

  • Obszerne, zautomatyzowane testy obejmujące usługi, instalacje i ścieżki aktualizacji. 
  • Weryfikacja zgodności z konfiguracjami rzeczywistymi i poprzednimi instalacjami. 
  • Testy wydajności mające na celu wykrycie regresji w uruchamianiu, pamięci i zachowaniu skanowania. 
  • Wdrażanie kanarkowe i etapowe, rozpoczynające się od małych populacji i rozszerzające się dopiero wtedy, gdy wyniki wykazały, że jest to bezpieczne. 
  • Ciągły monitoring i automatyczne wykrywanie regresji w terenie. 
  • Praca wielofunkcyjna obejmująca różne platformy, zapewnianie jakości, instalację i aktualizację oraz inżynierię wydań. 
Przepływ stopniowego wdrażania

„Nigdy nie posuwaliśmy się szybciej, niż pozwalały na to dowody. Każda brama musiała sama stać się zielona”. 

Migracja .NET: kompromisy  

Nic z tego nie było za darmo, a decyzje wiązały się z przemyślanymi kompromisami.  

Kompromisem w przypadku gałęzi był dryf. Izolacja migracji chroniła główną bazę kodu, ale im dłużej istniała dana gałąź, tym bardziej mogła odbiegać od aktywnego rozwoju. Ryzyko to udało nam się ograniczyć poprzez częstą integrację, zamiast zostawiać jedno duże, ryzykowne scalenie na koniec.  

Wadą wdrożenia była szybkość. Wdrożenie etapowe oznaczało również, że klienci otrzymywali aktualizację później niż w przypadku wydania „big bang”. Zaakceptowaliśmy ten kompromis. Dane z mniejszych populacji dają nam możliwość wykrycia problemów, zanim aktualizacja dotrze do znacznie większej liczby punktów końcowych. 

Kompromisem w przypadku AOT była elastyczność. Kompilacja z wyprzedzeniem może poprawić wydajność uruchamiania, ale może również ograniczyć dynamiczne zachowanie. Zastosowaliśmy ją selektywnie, komponent po komponencie, a nie domyślnie wszędzie. 

Co migracja do .NET 10 oznacza dla klientów

Najlepszym efektem prac infrastrukturalnych jest to, że klienci czerpią z nich korzyści, nie musząc o nich myśleć.  

W .NET 10 te korzyści dla Malwarebytes klienci obejmują:   

  • Poprawiona niezawodność w pełni obsługiwanego i aktywnie utrzymywanego środowiska wykonawczego.  
  • Bardziej bezpieczna podstawa, korzystająca z ciągłych udoskonaleń bezpieczeństwa platformy.  
  • Dostęp do nowych funkcji i poprawek .NET. 
  • Lepsze wsparcie dla nowszych wersji Windows . 
  • Nowsze narzędzia .NET mogą pomóc nam szybciej opracowywać i dostarczać nowe zabezpieczenia. 

Lekcje warte zapamiętania  

Każda z tych aktualizacji — środowiska wykonawczego, linii bazowych, poprawek zabezpieczeń — utwierdza zespół w przekonaniu o kilku rzeczach.  

Modernizacje platformy to strategiczne inwestycje we wszystko, co jest na niej zbudowane. Modernizacja działa najlepiej, gdy jest ciągła: im dłużej platforma pozostaje w tyle, tym trudniejsza może być ewentualna modernizacja. 

Automatyzacja jest szczególnie ważna w przypadku zmian o tak szerokim zakresie. Podobnie jak drobne, mało efektowne decyzje podejmowane lata wcześniej, takie jak zachowanie wyraźnych granic między komponentami i wdrożenie procesu kompilacji, który dokładnie wie, co dostarcza. 

To właśnie te fundamenty sprawiają, że większe zmiany są możliwe.  

„Dług techniczny kumuluje się jak dług finansowy. Najtańsza modernizacja to ta, której nigdy nie odkładałeś na później”.  

Co będzie dalej?  

Żadna aktualizacja nie jest metą. Każda jest krokiem w dłuższym schemacie: ciągłej modernizacji, w przemyślanych krokach, aby platforma nigdy nie pozostawała w tyle. Poziomy bazowe znów się zmienią. Luki w zabezpieczeniach pojawią się bez ostrzeżenia. Każda będzie podlegać tym samym zasadom: tym samym testom, temu samemu etapowemu wdrażaniu i tym samym dowodom, zanim ruszymy dalej. 

Z takiej właśnie dyscypliny składa się produkt, któremu można zaufać i który można uruchamiać codziennie, na każdej maszynie, bez zastanowienia.  

Malwarebytes dla Windows na platformie .NET 10 zostało wydane w wersji 5.6.0. To najnowszy krok w ramach długofalowego zaangażowania w inwestowanie w platformę produktu, aby zapewnić coraz lepszą ochronę na jej poziomie. 


Nagroda „Wybór redakcji” serwisu CNET 2026

Według serwisu CNET.Przeczytaj ich recenzję


O autorze

Anna Tukhtarova

Dyrektor, Windows Inżynieria

Dyrektor ds. inżynierii z 20-letnim doświadczeniem w rozwoju oprogramowania i informatyce, specjalizujący się w Windows Inżynieria i cyberbezpieczeństwo. Doświadczenie w budowaniu i modernizacji złożonych produktów programistycznych oraz kierowaniu zespołami inżynierskimi.