Bezpieczeństwo
Bezpieczeństwo Workflow Transactional Email dla Shopify Flow: hosting w UE, szyfrowanie i izolacja danych logowania do poczty oraz aktualizacje aplikacji.
Aplikacja Workflow Transactional Email 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 jak 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. Informacje na temat tego, jakie dane przechowuje aplikacja i przez jaki czas, znajdują się w sekcji Dane, prywatność i bezpieczeństwo; kwestie prawne (polityka prywatności, umowa o przetwarzaniu danych, podwykonawcy przetwarzania danych) opisano w sekcji Informacje prawne i ochrona danych.
Na jakiej platformie opiera się ta aplikacja
| Warstwa | Z czego korzystamy |
|---|---|
| Kod aplikacji | TypeScript w środowisku Node.js, w aktualnej wersji objętej długoterminowym wsparciem. Strony administracyjne, edytor układu oraz usługi obsługujące poszczególne etapy procesu Shopify Flow stanowią jedną bazę kodu. |
| Baza danych i pamięć podręczna | PostgreSQL (Google Cloud SQL) oraz Redis (Google Cloud Memorystore) |
| Hosting | Kontenery w usłudze Google Kubernetes Engine w regionie Google Cloud „europe-west1” (Belgia, Unia Europejska). Bazy danych, pamięci podręczne, magazyn plików oraz logi aplikacji znajdują się w tym samym regionie. |
| Integracja z Shopify | Oficjalne biblioteki aplikacji Shopify, akcje Shopify Flow, interfejs API GraphQL panelu administracyjnego służący do zarządzania uprawnieniami opcjonalnymi oraz webhooki Shopify |
| Dostarczanie wiadomości e-mail | Podłączana skrzynka pocztowa: Państwa własny serwer SMTP, Microsoft 365 lub Google Workspace. E-maile z powiadomieniami wysyłane przez samą aplikację są przekazywane za pośrednictwem usługi Amazon SES we Frankfurcie. |
| Państwa witryna sklepowa | W Państwa szablonie ani w procesie realizacji zamówienia nic nie działa. |
W ramach tej usługi nie wykorzystuje się w żadnym miejscu języka PHP, platformy WordPress, języka Java ani innych środowisk uruchomieniowych. 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. Ż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 z wykorzystaniem poprawionej 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 reguł 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, dostawcą poczty elektronicznej a aplikacją odbywa się z wykorzystaniem protokołu TLS. Baza danych i pamięć podręczna nie posiadają publicznego adresu: dostęp do nich jest możliwy wyłącznie z poziomu naszej sieci prywatnej.
W stanie spoczynku. Wszystkie bazy danych i zasoby plików są szyfrowane w stanie spoczynku przy użyciu kluczy, którymi zarządzamy w usłudze Google Cloud KMS.
Dodatkowe szyfrowanie na poziomie danych. Wszystko, co mogłoby zostać wykorzystane do wysłania danych, jest objęte drugą warstwą zabezpieczeń: nazwy użytkowników i hasła SMTP, tokeny OAuth usług Microsoft 365 i Google, przechowywane przez Państwa dane poufne, token dostępu do Shopify Państwa sklepu oraz adresy znajdujące się na liście rezygnacji z subskrypcji. 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 jest w pamięci wyłącznie na czas wykonywania danej operacji. Każde odszyfrowanie chronionej wartości jest rejestrowane w wewnętrznym dzienniku dostępu. Tajne wartości są usuwane z historii akcji przed jej zapisaniem i nigdy nie są zwracane przez interfejs API dla programistów ani do 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 jest instalowana bez dostępu do danych Państwa sklepu. Dane klientów trafiają na adres e-mail wyłącznie dlatego, że przekazują je Państwo z Shopify Flow. O cztery opcjonalne uprawnienia (odczyt pliku metapola dotyczącego jednego zamówienia lub klienta, utworzenie unikalnego kodu rabatowego) prosi się bezpośrednio w aplikacji; są one przyznawane za pośrednictwem własnego okna dialogowego Shopify i można je cofnąć w dowolnym momencie. Zobacz Uprawnienia: jakie dane z Państwa sklepu może odczytywać aplikacja.
Brak szkolenia modeli sztucznej inteligencji. Państwa wiadomości e-mail, adresaci, załączniki oraz dane klientów serwisu Shopify nie są nigdy wykorzystywane do szkolenia modeli sztucznej inteligencji - ani przez nas, ani przez nikogo innego. Opcjonalny asystent układu oparty na sztucznej inteligencji działa wyłącznie przy użyciu Państwa własnego klucza API i przesyła wyłącznie układ, który właśnie Państwo edytują. Szczegółowe informacje znajdują się w sekcji Dane, prywatność i bezpieczeństwo.
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, w którym przeprowadzono uwierzytelnienie. Żaden magazyn nie może odczytywać ani modyfikować układów, nadawców, tajnych danych ani historii innego magazynu.
- Wyłącznie zweryfikowane żądania. Strony w panelu administracyjnym Shopify są uwierzytelniane za pomocą tokenów sesji Shopify. Etapy Shopify Flow oraz własne webhooki Shopify są weryfikowane za pomocą podpisu HMAC Shopify przed jakąkolwiek operacją na danych, a etap Shopify Flow, który został dostarczony dwukrotnie, jest wykonywany tylko raz.
- Renderowana treść. Układy są renderowane na naszych serwerach, a wynik jest poddawany procesowi oczyszczania przed wysłaniem: skrypty, procedury obsługi zdarzeń, adresy URL typu „javascript:”, ramki iframe oraz elementy formularzy są usuwane, dzięki czemu wartość przekazana z Shopify Flow nie może stać się aktywną treścią w skrzynce odbiorczej odbiorcy.
- Żądania wychodzące. Adresy URL, z którymi aplikacja łączy się w Państwa imieniu - w ramach akcji HTTP Request, w celu pobrania załączników z adresu URL oraz w przypadku plików, do których odwołuje się metapole - są sprawdzane przed nawiązaniem połączenia: adresy typu loopback, link-local, metadane w chmurze oraz adresy sieci prywatnych są odrzucane, również w przypadku przekierowań. Liczba przekierowań jest ograniczona, a rozmiar odpowiedzi podlega ograniczeniom.
- 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 (linting), 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. Dzienniki operacyjne są przechowywane w tym samym regionie UE, przechowywane przez maksymalnie 30 dni i nigdy nie zawierają danych uwierzytelniających ani informacji poufnych.
Przechowywanie i usuwanie danych
- Historia działań, która zawiera informacje o wysłanych wiadomościach, a zatem stanowi dane klientów, jest automatycznie usuwana po upływie 30 dni.
- Odinstalowanie powoduje natychmiastowe i nieodwracalne usunięcie wszystkich elementów: szablonów, nadawców, haseł, historii, listy osób, które zrezygnowały z subskrypcji oraz przesłanych plików.
- Obowiązkowe wnioski dotyczące ochrony prywatności w serwisie Shopify (customers/data_request, customers/redact oraz shop/redact) są rozpatrywane automatycznie w terminach określonych przez Shopify, w tym również wpisanie klienta na listę rezygnacji z subskrypcji.
- Pełny wykaz przechowywanych danych znajduje się w sekcji Dane, prywatność i bezpieczeństwo. Informacje dotyczące podwykonawców przetwarzania danych oraz harmonogram przechowywania danych zawarte są w polityce prywatności. Podpisaną umowę o przetwarzaniu danych można uzyskać pod adresem workflow-transactional-email.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.
