Archiwa kategorii: Bez kategorii

Depozyt kodu źródłowego – co to takiego i dlaczego o tym tak mało wiemy?

W tym roku Komisja Nadzoru Finansowego wydała Rekomendację D1 (61 stron bełkotu prawno-informatycznego – chyba nie ma gorszego), w której wprost mówi o konieczności przechowywania i weryfikowania kodów systemów informatycznych przez banki. O co chodzi?

Usługę depozytu kodu źródłowego oprogramowania wymyślono już latach siedemdziesiątych w USA gdzie występuje pod nazwą: software escrow. Usługa ta zadomowiła się w Europie Zachodniej z grubsza dwadzieścia lat temu. Depozyt polega na złożeniu kodu źródłowego u depozytariusza – a tenże depozytariusz to trzecia strona porozumienia obok producenta oprogramowania (np. my) i jego nabywcy (Ci coraz liczniejsi szczęściarze).

Jak się okazuje – nie jest to wcale prawno-informatyczne rocket science.

Depozyt kodu źródłowego polega na złożeniu do depozytu u dedykowanego podmiotu „kodu źródłowego” oprogramowania, który to kod może być wydany z depozytu tylko i wyłącznie w szczególnych okolicznościach ustalonych przez strony. W naszym przypadku była to odpowiednio przygotowana płyta CD zawierająca kod + dokumentację, która to przez depozytariusza (w tym przypadku była to firma Software Escrow Management – softwareescrow.pl) jest nagrywana na odpowiedni nośnik i deponowana w skrytce bankowej. Wszystko odbywa się w kancelarii w obecności stron (i dymu z cygar).

Kiedy ktoś może dobrać się do kodu przez nas wyprodukowanego i zdeponowanego?

Otóż jest to ściśle określone:

  • w przypadku upadłości lub likwidacji dostawy oprogramowania (uspokajam – ta sytuacja nie jest planowana);
  • w przypadku odmowy świadczenia serwisu lub usług utrzymaniowych przez dostawcę oprogramowania (może się zdarzyć jak się posprzeczamy);
  • w przypadku awarii oprogramowania, której nie chce usunąć dostawca oprogramowania (trudna sytuacja);
  • w przypadku zmiany warunków świadczenia usług serwisowych lub utrzymaniowych ponad ustalone dopuszczalne zmiany (to też skomplikowany zapis).

Dopiero zaistnienie jednej z powyżej wymienionych okoliczności może stanowić podstawę do zwrócenia się przez naszego klienta do depozytariusza z prośbą o wydanie kodu źródłowego z depozytu. Zakładamy oczywiście sytuację że zasadniczy produkt jest udostępniony klientowi bądź to w postaci skompilowanej bądź jako usługa bez bieżącego dostępu do źródeł.

Gdzie są korzyści?

  • Przede wszystkim kod źródłowy nie musi być przekazany nabywcy oprogramowania (!), a jednocześnie jest on zabezpieczony.
  • Nie ma ryzyka wycieku czy skopiowania zastosowanych przez nas rozwiązań programistycznych.
  • Dzięki depozytowi pokazuję klientowi, że jestem „po jego stronie” tj. że rozumiem jego obawy i staram się je zaadresować.
  • Deponowanie kodu u profesjonalnego depozytariusza uwiarygadnia moją firmę (trochę jak notariusz przy transakcji na rynku nieruchomości).

Znaczenie ostatniego punktu widać w sektorze bankowym, gdzie polityka bezpieczeństwa dostawcy software’u bardzo często wiąże ręce bankom i nie pozwala im zaprosić do współpracy mniejsze podmioty o krótkim track-record.

No tak – ale kto zweryfikuje czy to co oddajemy do depozytu to nie jest DVD z ostatnim sezonem Big Bankg Theory tylko realny, działający kod?

Nie zrobi tego klient (bo nie chcemy lub nie możemy udostępnić mu tego kodu albo nie ma odpowiedniego do tego know how), nie zrobimy tego my (bo jeśli mieli by nam wierzyć na słowo honoru to po co usługa depozytu). Przekazanie nośnika z kopią kodu źródłowego jest więc dopiero połową sukcesu. Weryfikacja kodu (słowo klucz) – to integralna część usługi „Software Escrow” świadczona przez Depozytariusza. Podstawowy zakres weryfikacji kodu, obejmuje analizę kompletności, która daje odpowiedź na pytanie czy dostarczony kod źródłowy jest wystarczający do zbudowania wynikowej aplikacji.

Drogę na skróty jest ryzykowna.

W praktyce transakcji nabycia oprogramowania przyjmuje się rozwiązania, które są jedynie namiastką profesjonalnego depozytu tzn. takie, które nie zabezpieczają nabywcy w sposób kompleksowy. Częstym rozwiązaniem jest powierzenie płyty CD z niezabezpieczonym kodem źródłowym oprogramowania wartego grube dziesiątki tysięcy złotych szufladzie „Pani Krysi”, która między szminką a drugim śniadaniem trzyma płytkę CD z naszym kodem źródłowym(sic!). Jak dalece wydaje się takie rozwiązanie humorystyczne, nie stanowi ono problemu o ile satysfakcjonuje obie strony transakcji. Takie przechowywanie kodów źródłowych traci jednak na swoim anegdotycznym wymiarze gdy uświadomimy sobie, że niejednokrotnie są to kody źródłowe oprogramowania dotyczącego bezpieczeństwa naszych danych osobowych, fizycznego bezpieczeństwa czy tajemnic przedsiębiorstwa.

Bardziej wyrafinowaną próbą depozytu jest przechowywanie CD w skrytce bankowej czy w depozycie notarialnym. Oba te rozwiązania czerpią z zaufania publicznego w/w instytucji. Niestety, żaden z tych podmiotów nie jest w stanie podjąć się weryfikacji kodu źródłowego z zasady odpowiadając jedynie za wartość materialną złożonego do depozytu przedmiotu tj. wyprodukowanego w jakimś azjatyckim kraju błyszczącego plastikowego krążka w papierowym etui. Co więcej, trudność sprawia precyzyjne zdefiniowanie warunków zwolnienia kodów źródłowych oraz odpowiedzialności cywilnej takiego depozytariusza za przedwczesne czy niewłaściwe przekazanie kodów.

W końcu, w każdym ze stosowanych rozwiązań niezaadresowanym pozostaje ryzyko przypadkowego wycieku informacji o zastosowanych przez nas rozwiązaniach programistycznych. A zatem przyjmowane na rynku rozwiązania w rzeczywistości nie zaspakajają potrzeb ani nas – developer’ów ani naszych klientów wystawiając tym samym obie strony na ogromne ryzyko biznesowe i utratę prestiżu.

Pierwsze koty za płoty (no ten śródtytuł akurat tu nie pasuje sensu stricte ale dobrze brzmi)

Udało nam się przetrzeć szlaki usługi depozytu kodu przy współpracy z firmą Software Escrow Management. Nic strasznego. Cały proces jest przygotowany – a My (dostawca oprogramowania) oraz nasz klient (odbiorca oprogramowania) mamy zapewnione wsparcie w przygotowaniach. Nie ma tu tajemnic, zmów, spisków i zielonych stolików. Właściwie usługa prawna z częścią merytoryczną IT.

Niezwykle rzadko spotykany w naturze miks ludzi znających się na prawie, informatyce i zarządzaniu (wydaje się, że nawet potrafią ze sobą rozmawiać ;) . Swoją drogą zastanawiam się czy depozytariusz, chowając głęboko kod źródłowy, może użyć usługi skrytek bankowych banku dla którego oprogramowanie było pisane? Stack overflow ;)

Słów kilka o zachodniej netykiecie, kulturze i rozsądku panującej w internecie na przykładzie aplikacji facebook-owych.

800px-Male_Moose

Przez wiele lat mieliśmy okazję „tłuc” aplikacje na Facebook-a na polski rynek. Głównie konkursy, zabawy, fotozabawy, głosowania, rankingi itp…. Typowa szybka rozrywka oparta na mechanizmach socialowych. Za każdym razem właściciel aplikacji (właściciel marki) oczekiwał, aby aplikacja działała tak, żeby przed jej uruchomieniem użytkownik był „zmuszany” do polubienia danego FanPage-a. Również w celu dalszej zabawy aplikacja wymagała zgody na dostęp co najmniej do adresu e-mail a czasem na bardziej zaawansowany dostęp do like-ów, zdjęć, historii itp… Wszystko po to aby aplikacja była po pierwsze motorem do napędzania liczby like-ów na FP a po drugie żeby zebrać w bazie maksymalnie możliwy materiał marketingowy do dalszej komunikacji (maile, imiona, płeć, wiek itp…).

Narodził się z tego właściwie taki standard aplikacji FB, która zanim można się nią pobawić najpierw przymusza do like-a a potem na poprawkę wali po głowie potrzebą dostępu do danych wrażliwych. Czytaj dalej