Bezpieczeństwo

Bezpieczeństwo

Skopiuj stronę

Bezpieczeństwo Workflow Webhooks dla Shopify Flow: hosting w Google Cloud w UE, szyfrowanie i izolacja webhooków, kluczy tajnych i danych oraz aktualizacje.

Aplikacja Workflow Webhooks została stworzona i jest obsługiwana przez firmę Code Creation Labs. Na tej stronie wyjaśniono, z jakich elementów składa się aplikacja, gdzie jest uruchamiana, w jaki sposób chronione są dane Państwa sklepu oraz w jaki sposób dbamy o aktualność wszystkich elementów. Niniejszy tekst jest skierowany do właścicieli sklepów oraz do wszystkich osób wypełniających kwestionariusz dotyczący bezpieczeństwa. Kwestie prawne (polityka prywatności, umowa o przetwarzaniu danych, podwykonawcy przetwarzania danych) znajdują się na stronie Informacje prawne i ochrona danych.

Na jakiej platformie opiera się ta aplikacja

Warstwa Czego używamy
Kod aplikacji TypeScript w środowisku Node.js, w aktualnej wersji z długoterminowym wsparciem. Strony administracyjne, punkty końcowe odbierające Państwa webhooki oraz procesy robocze przekazujące je do Shopify Flow stanowią jedną bazę kodu.
Baza danych i pamięć podręczna PostgreSQL (Google Cloud SQL) oraz Redis (Google Cloud Memorystore)
Kolejka Połączenie przychodzące jest odbierane, umieszczane w kolejce w usłudze Google Cloud Pub/Sub i przetwarzane przez oddzielny proces roboczy, dzięki czemu nawet w przypadku nagłego wzrostu liczby połączeń lub opóźnienia w odpowiedzi ze strony Shopify żadna wiadomość nie zostanie utracona.
Hosting Kontenery w usłudze Google Kubernetes Engine w regionie Google Cloud „europe-west1” (Belgia, Unia Europejska). Bazy danych, pamięci podręczne i kolejki znajdują się w tym samym regionie.
Integracja z Shopify Oficjalne biblioteki aplikacji Shopify, wyzwalacze i działania Shopify Flow oraz webhooki Shopify
Państwa witryna sklepowa W Państwa motywie nie uruchamia się żadna aplikacja. Opcjonalny adres URL serwera proxy aplikacji dla wywołań z przeglądarki (patrz CORS, adres URL serwera proxy aplikacji oraz wywołania przeglądarki) jest udostępniany przez Shopify w Państwa własnej domenie i weryfikowany za pomocą podpisu Shopify.

W ramach tej usługi nie wykorzystuje się w żadnym miejscu języka PHP, platformy WordPress, języka Java ani żadnego innego środowiska uruchomieniowego. Aplikacja jest dostępna w sklepie Shopify App Store i przeszła proces weryfikacji aplikacji przeprowadzany przez Shopify, który obejmuje wymagania Shopify dotyczące bezpieczeństwa oraz ochrony danych klientów.

Komunikaty dotyczące bezpieczeństwa oraz informacja, czy dotyczy to naszych aplikacji

Gdy w mediach pojawiają się informacje o luce w zabezpieczeniach lub ataku związanym z aplikacjami Shopify, sprawdzamy, czy dotyczy to którejkolwiek z tworzonych przez nas aplikacji, a wyniki tych sprawdzeń zamieszczamy tutaj, aby mogli Państwo znaleźć odpowiedź bez konieczności zadawania pytania.

Informacja Kiedy Nasze aplikacje Szczegóły
PHP2Shell (CVE-2026-109618, CVE-2026-109619): zdalne wykonanie kodu w silniku PHP 21 października 2026 r. Nie ma to wpływu na naszą działalność. Żadna z naszych aplikacji nie zawiera kodu PHP. Oświadczenie
Kampania polegająca na przejęciu kontroli nad procesem realizacji transakcji w Shopify: skrypty wstrzyknięte do kodu strony sklepu za pośrednictwem aplikacji zewnętrznych (Hulk Product Options, Selleasy, Swym Wishlist Plus; w lipcu - Qikify) przekierowywały klientów na fałszywe strony realizacji transakcji od 10 do 20 października 2026 r. Nie ma to wpływu na Państwa działalność. Żadna z naszych aplikacji nie była w to zaangażowana, a żadna z nich nie może umieścić tego rodzaju skryptu w Państwa sklepie internetowym. Oświadczenie
Aktualizacja zabezpieczeń Node.js (CVE-2026-111497 oraz dziewięć kolejnych luk CVE w środowisku uruchomieniowym Node.js) 21 października 2026 r. Wdrożono. Nasze aplikacje działają w środowisku Node.js, dlatego ta kwestia budziła nasze obawy: każda aplikacja została ponownie skompilowana na podstawie zaktualizowanej wersji (22.23.4) i od tamtego tygodnia działa w środowisku produkcyjnym. Nie muszą Państwo podejmować żadnych działań. W jaki sposób dbamy o aktualność aplikacji
Aktualizacja zabezpieczeń serwera nginx (CVE-2026-15176, CVE-2026-93479, CVE-2026-97205, CVE-2026-95101, CVE-2026-97629) 14 października 2026 r. Nie ma to wpływu na naszą działalność. Serwer nginx nie stanowi części naszych aplikacji, a każda z nich działa obecnie za zarządzanym modułem równoważenia obciążenia Google Cloud z włączoną usługą Google Cloud Armor. Wykorzystywany wcześniej moduł nginx ingress również nie mógł zostać wykorzystany: żadna z pięciu luk nie jest dostępna przy tej konfiguracji (brak aliasów ani przepisywania, brak wbudowanych plików po stronie serwera, brak protokołu HTTP/3, wyłączone bilety sesji TLS). Oświadczenie
Włamanie do urzędu certyfikacji eMudhra (emSign): klucze ośmiu pośrednich urzędów certyfikacji można odzyskać; urzęd certyfikacji emSign ECC Root CA - G3 został uznany za niegodny zaufania 20 października 2026 r. Nie ma to na nas wpływu. Żaden z naszych systemów nie korzysta z tego niezaufanego certyfikatu głównego, żaden z naszych certyfikatów nie pochodzi od eMudhra, a publiczne rejestry programu Certificate Transparency nie zawierają żadnego certyfikatu eMudhra dla żadnej z naszych domen. Oświadczenie

Ta sama tabela dotycząca wszystkich naszych aplikacji, wraz z wspólnymi dla nich praktykami, znajduje się na stronie Bezpieczeństwo w Code Creation Labs.

W jaki sposób chronione są Państwa dane

Podczas przesyłania danych. Każde połączenie między Państwa przeglądarką, platformą Shopify, systemami wywołującymi Państwa webhooki oraz aplikacją wykorzystuje protokół TLS. Baza danych, pamięć podręczna i kolejka nie posiadają adresów publicznych: dostęp do nich jest możliwy wyłącznie z poziomu naszej sieci prywatnej.

W stanie spoczynku. Wszystkie bazy danych i zasoby pamięci masowej są szyfrowane w stanie spoczynku przy użyciu kluczy, którymi zarządzamy w usłudze Google Cloud KMS.

Dodatkowe szyfrowanie na poziomie pól. Najbardziej wrażliwe wartości są objęte drugą warstwą zabezpieczeń: token dostępu Państwa sklepu w Shopify, sekret uwierzytelniający każdego webhooka oraz każdy sekret przechowywany na potrzeby funkcji transformujących. Każda wartość jest szyfrowana indywidualnie algorytmem AES-256-GCM przy użyciu oddzielnego klucza w usłudze Cloud KMS, z automatyczną rotacją kluczy, a odszyfrowywana w pamięci wyłącznie w momencie, gdy jest to konieczne. Klucze tajne nigdy nie są zapisywane w logach i nigdy nie są zwracane przez interfejs API dla programistów ani do serwisu Sidekick.

Sekrety. Dane uwierzytelniające API oraz klucze samej usługi są przechowywane w Google Secret Manager i ładowane w momencie uruchomienia usługi. Nie znajdują się one w kodzie, w obrazach kontenerów ani w potoku kompilacji.

Minimalizacja danych. Aplikacja nie prosi o dostęp do danych Państwa sklepu podczas instalacji: uruchomienie przepływu pracy w Shopify Flow nie wymaga żadnych uprawnień, a aplikacja nigdy samodzielnie nie odczytuje danych dotyczących produktów, zamówień ani klientów. Każda transmisja zawiera dokładnie te dane, które przesłał system wywołujący.

Kto ma dostęp do czego

  • Tokeny dostępu są zablokowane na naszych serwerach. Włączyliśmy listę dozwolonych adresów IP platformy Shopify dla interfejsu API administratora: Shopify akceptuje tokeny dostępu aplikacji wyłącznie z naszego własnego adresu wysyłającego i odrzuca je z wszelkich innych źródeł, dzięki czemu skradziony token jest bezużyteczny poza naszą infrastrukturą.
  • Wygasające tokeny dostępu. Aplikacja korzysta z wygasających tokenów dostępu offline platformy Shopify. Każdy token jest ważny przez jedną godzinę i jest automatycznie odnawiany, dzięki czemu token, który wyciekł, sam przestaje działać.
  • Zgłoszony dostęp do sieci. Aplikacja zgłasza w swojej konfiguracji Shopify zewnętrzne serwery, z którymi jej kod może nawiązywać połączenia w Państwa sklepie, procesie realizacji zamówienia oraz panelu administracyjnym (zasady dostępu do sieci Shopify), dzięki czemu Shopify może wykryć żądanie, które nie powinno się tam pojawić.
  • Z przodu znajduje się zapora sieciowa. Żądania docierają do aplikacji poprzez zarządzany globalny moduł równoważenia obciążenia Google Cloud wyposażony w Google Cloud Armor - zaporę sieciową aplikacji internetowych firmy Google, która blokuje znanych atakujących i sprawdza każde żądanie, zanim dotrze ono do naszych serwerów.
  • Wyłącznie Państwa magazyn. Każdy rekord zawiera informację o magazynie, do którego należy, a zakres każdego zapytania ogranicza się do magazynu, który został uwierzytelniony. Żaden magazyn nie może odczytywać ani modyfikować webhooków ani dostaw innego magazynu, a odpowiedź synchroniczna jest przypisana do magazynu, który o nią poprosił.
  • Wyłącznie zweryfikowane żądania. Strony w panelu administracyjnym Shopify są uwierzytelniane za pomocą tokenów sesji Shopify. Wywołania zwrotne Shopify Flow oraz własne webhooki Shopify są weryfikowane na podstawie podpisu HMAC Shopify, a komunikaty wewnętrzne - na podstawie tożsamości podpisanych przez Google, zanim jakiekolwiek dane zostaną przetworzone.
  • Państwa webhooki, Państwa zasady. Każdy adres URL webhooka jest niemożliwy do odgadnięcia, a Państwo decydują, w jaki sposób nadawcy muszą potwierdzić swoją tożsamość: za pomocą statycznego tokenu, podpisu HMAC nad treścią lub bez żadnego potwierdzenia w przypadku źródeł, które nie mogą się podpisać. Opcjonalny element Listy dozwolonych adresów IP nakłada dodatkowe ograniczenia na nadawców; adres nadawcy jest pobierany z połączenia sieciowego, a nie z nagłówka, dzięki czemu nie można go sfałszować. Zduplikowane dostarczenia są rozpoznawane i przetwarzane tylko raz. Zobacz Uwierzytelnianie.
  • Funkcje transformujące. Kod JavaScript napisany dla Funkcje transformacyjne jest wykonywany w izolowanym środowisku testowym z ograniczeniami czasowymi i pamięciowymi, w infrastrukturze oddzielonej od serwerów samej aplikacji. Nigdy nie ma on dostępu do danych uwierzytelniających aplikacji ani do Państwa tokenu dostępu do Shopify, a jego żądania wychodzące są sprawdzane pod kątem zgodności z zakresami sieci prywatnych przed nawiązaniem połączenia.
  • Żądania wychodzące. Adresy URL, do których aplikacja wysyła żądania w Państwa imieniu w ramach funkcji Okresowe sprawdzanie adresów URL oraz Wywołanie webhooka z serwisu Shopify Flow, są sprawdzane przed nawiązaniem połączenia: adresy typu loopback, link-local, metadane chmury oraz adresy sieci prywatnych są odrzucane, również w przypadku przekierowania.
  • Nasz zespół. Dostęp do systemów produkcyjnych jest możliwy wyłącznie za pośrednictwem usługi Google Cloud IAM przy użyciu indywidualnych kont. Wewnętrzne narzędzia do konserwacji nie są udostępniane w Internecie.

W jaki sposób dbamy o aktualność aplikacji

  • Kontrole bezpieczeństwa aplikacji Shopify. Przeprowadzamy kontrole bezpieczeństwa aplikacji , skanowanie deterministyczne oraz weryfikację przez agenta, w odniesieniu do każdej tworzonej przez nas aplikacji, a także ponownie przy każdej nowej wersji. 37 testów obejmuje między innymi trasy bez uwierzytelniania, dane nieograniczone do konkretnego sklepu, niezweryfikowane webhooki i żądania proxy aplikacji, zapisane sekrety, ujawnione dane uwierzytelniające, niebezpieczny kod HTML oraz wyłączone tokeny dostępu z wygasającym terminem ważności.
  • Każda zmiana jest sprawdzana przed wydaniem. W ramach procesu przeprowadzane są: sprawdzanie typów i analiza kodu, statyczne testy bezpieczeństwa aplikacji (SAST), wykrywanie poufnych danych, skanowanie zależności pod kątem luk w zabezpieczeniach oraz skanowanie obrazów kontenerów. Naszym kryterium wydania jest brak jakichkolwiek znanych luk w zabezpieczeniach zarówno w zależnościach, jak i w obrazie.
  • Środowisko uruchomieniowe i system operacyjny. Obraz kontenera - Node.js oparty na systemie Alpine Linux - jest odtwarzany przy każdej nowej wersji, dzięki czemu aktualizacje środowiska uruchomieniowego i systemu operacyjnego są dostarczane na bieżąco. Zarządzana platforma Kubernetes dba o to, by węzły bazowe były zawsze zaktualizowane.
  • Platforma Shopify. Śledzimy wersje interfejsu API Shopify oraz komunikaty dotyczące bezpieczeństwa dotyczące bibliotek aplikacji Shopify i niezwłocznie wprowadzamy aktualizacje. Aplikacja działa w oparciu o aktualną wersję interfejsu API Admin.
  • Kontrole bezpieczeństwa. W regularnych odstępach czasu przeprowadzamy pełną wewnętrzną kontrolę każdej trasy, ścieżki danych oraz zapytania do bazy danych; ostatnia taka kontrola miała miejsce w październiku 2026 r.
  • Monitorowanie. Dostępność jest monitorowana przez całą dobę, a informacje na ten temat są publikowane na naszej stronie stanu; w przypadku wystąpienia błędów otrzymujemy powiadomienia. Logi operacyjne są przechowywane przez maksymalnie 30 dni i nigdy nie zawierają tokenów ani kluczy tajnych.

Przechowywanie i usuwanie danych

  • Historia dostarczeń jest zachowywana tak długo, jak długo aplikacja pozostaje zainstalowana, dzięki czemu mogą Państwo przeglądać i odtwarzać połączenia, a także usuwać wpisy w dowolnym momencie. Nagłówki, które mogą zawierać dane uwierzytelniające, są maskowane przed zapisaniem danej wiadomości.
  • Po odinstalowaniu aplikacji jej dostęp do Państwa sklepu zostanie natychmiast usunięty. Żądanie usunięcia danych ze sklepu w systemie Shopify, które następuje 48 godzin po odinstalowaniu, powoduje usunięcie pozostałych danych sklepu, w tym wszystkich danych przechowywanych przez Państwa funkcje transformujące.
  • Shopify
  • Informacje na temat podwykonawców przetwarzających dane oraz pełny harmonogram przechowywania danych znajdują się w polityce prywatności. Podpisaną umowę o przetwarzaniu danych można uzyskać pod adresem workflow-webhooks.app/dpa.

Zgłaszanie problemu związanego z bezpieczeństwem

Jeśli uważają Państwo, że wykryli Państwo lukę w zabezpieczeniach lub potrzebują Państwo wypełnić kwestionariusz dotyczący bezpieczeństwa, prosimy o wysłanie wiadomości e-mail na adres support@codecreationlabs.com. Zgłoszenia dotyczące bezpieczeństwa są analizowane i rozpatrywane w trybie priorytetowym.