HCL AppScan Standard Edition – hacker z pudełka

Materiał promocyjny HCL AppScan Standard Edition jest jednym z najpopularniejszych narzędzii do automatyzacji oceny bezpieczeństwa aplikacji webowych. Zaawansowane rozwiązanie typu WASS (ang. Web Application Security Scanner – skaner bezpieczeństwa aplikacji webowych) pozwala znacznie zredukować koszty związane z manualnymi testami i audytami bezpieczeństwa ułatwiając jednocześnie zapewnienie odpowiedniego poziomu ochrony aplikacji przed ofensywnymi działaniami cyberprzestępców lub script kiddies. Rowiązanie HCL umożliwia automatyczną realizację czarnoskrzynkowych testów podatności zabezpieczeń, dostarcza rekomendacji naprawczych i oferuje bogatą funkcjonalność raportową, w tym także raporty zgodnościowe.

HCL AppScan Standard Edition (AppScan, AppScan Standard, ASSE) jest narzędziem automatyzującym ocenę bezpieczeństwa aplikacji webowych i ich szczególnej formy jaką są usługi sieciowe (ang. Web Services). Poprzez ocenę bezpieczeństwa należy w tym wypadku rozumieć pewien zestaw działań, na który składają się: testy podatności zabezpieczeń, określenie i opisanie ujawnionych podatności, wytworzenie rekomendacji naprawczych i raportowanie. We wszystkich tych zakresach AppScan Standard oferuje bogatą funkcjonalność.

Badanie podatności zabezpieczeń wykonywane przez ASSE ma charakter testów czarnoskrzynkowych (ang. blackbox), w przypadku aplikacji webowych polegają one na wysyłaniu odpowiednio zmodyfikowanych żądań http(s) i analizie odpowiedzi. Są to więc typowe testy penetracyjne. Wykonywane w oparciu o stale aktualizowaną ogromną (tysiące testów) bazę technik wykorzystania luk bezpieczeństwa (aktualizowana regularnie przez HCL X-Force). To, które testy zostaną wykonane w danym badaniu wynika z konfiguracji narzędzia i zastosowania zaawansowanych zaimplementowanych w ASSE mechanizmów testowania adaptacyjnego.

AppScan wykonuje testy pod kątem najważniejszych zagrożeń i podatności aplikacji webowych, odnotowywanych w kluczowych rejestrach takich jak WASC Threat Classification, CVE czy zestawieniach takich jak OWASP Top 10. Zawiera także potężną bazę ataków specyficznych dla danych technologii i produktów. Narzędzie w pełni wspiera badanie ośrodków webowych zrealizowanych według założeń i postulatów Web 2.0, silnie wykorzystujących takie technologie jak AJAX. Wspiera także testowanie aplikacji typu „Mega Script” (jedna strona główna, która zmienia swoją strukturę i zawartość na podstawie kombinacji parametrów nawigacyjnych), aplikacje wykorzystujące zakodowane URL-e i portale wykorzystujące w interfejsie widżety.

Inną ciekawą cechą skanera jest możliwość budowy mapy badanego ośrodka na podstawie zawartości a nie adresów URL. W odniesieniu do aplikacji zbudowanych zgodnie z paradygmatem MVC pozwala to prowadzić miarodajne testy i zwiększyć czytelność drzewa ośrodka dla operatora.

Testy wykonywane przez ASSE obejmują swoim zakresem również elementy infrastruktury takie jak serwer webowy i jego konfiguracja czy komponenty dostawców zewnętrznych.

Zapis każdej luki bezpieczeństwa znajdującej się w bazie ASSE zawiera dokładny opis doradczy, wraz z odpowiednimi informacjami klasyfikacyjnymi i referencyjnymi oraz opisem ryzyka. Wykorzystywane są uznane w gospodarce rejestry błędów takie jak CVE, zaimplementowane jest także określanie wag błędów według skoringu CVSS – pozwala to na dokładne określenie, analizę ujawnionej podatności i ocenę stwarzanego przez nią ryzyka. Podobnie – do każdego problemu dołączony jest szczegółowy dokument rekomendacji naprawczej, składający się z dwóch części: ogólnej i zawierającej wskazówki dla konkretnych języków i platform programistycznych – wspierane są ASP.NET, JEE i PHP oraz najnowsze frameworki jak Angular, Vue, React.

Aktualizacja aplikacji odbywa się w sposób podobny do tego znanego z oprogramowania antywirusowego, w tym jednak przypadku każdorazowo wymagana jest akceptacja użytkownika. Moduł aktualizacyjny obsługuje zarówno ładowanie nowych reguł bezpieczeństwa jak i zmiany w oprogramowaniu.

Silnik raportowy AppScana Standard oferuje szeroki zestaw predefiniowanych raportów kierowanych do różnych odbiorców – są to typowe raporty bezpieczeństwa, raporty zgodności z uregulowaniami prawnymi i standardami gospodarczymi, raport porównania wyników badania i raporty użytkownika budowane na podstawie szablonów tworzonych w procesorze tekstu Microsoft Office Word (MS Word).

AppScan Standard Edition jest aplikacją desktopową przeznaczoną dla systemu Microsoft Windows. Podczas typowej pracy operator wykorzystuje interfejs graficzny, który jest podstawowym środowiskiem pracy z aplikacją. ASSE może być jednak używany w trybie wsadowym.

Narzędzie kierowane jest do wszystkich uczestników procesu zapewnienia bezpieczeństwa aplikacji, zarówno tych zlokalizowanych w organizacyjnych jednostkach odpowiedzialnych za bezpieczeństwo teleinformatyczne, jak i bezpośrednich uczestników procesu wytwórczego funkcjonujących po stronie dewelopmentu.

Odbiorcami raportów z AppScana są osoby bardzo różnych ról związanych z IT – od projektantów, programistów, testerów przez menedżerów projektów, pracowników bezpieczeństwa, osoby zajmujące się architekturą korporacyjną, audytorów wewnętrznych, oficerów zgodności aż po zarząd.

Praca z aplikacją

Rozpoczęcie pracy z ASSE wiąże się z utworzeniem nowego skanu – jest to podstawowy zbiór danych, na którym operuje narzędzie. Zawiera on wszystkie informacje związane z przeprowadzanym badaniem: pełną konfigurację oraz wyniki. Skan może być zapisany na każdym etapie pracy, niezależnie od zakresu wprowadzonych danych. Może to być zatem zapis samej konfiguracji narzędzia do komunikacji z aplikacją, a może to być kompletny zapis badania włącznie z wynikami i zapisami zawartości badanego ośrodka (z etapu eksploracji). Konfiguracja skanowania obejmuje następujące elementy:

  • Konfiguracja etapu eksploracji;
  • Konfiguracja połączenia;
  • Konfiguracja etapu wykonania testów;
  • Konfiguracja modułów wspomagających (ang. Service Modules).

Konfiguracja skanu może być zapisana w postaci szablonu, który można później wykorzystywać. Podobnie część elementów składających się na tę konfigurację może zostać zapisana w zewnętrznych plikach do użycia w innych konfiguracjach.

Typowy cykl toku pracy z ASSE przewiduje dalej rozpoczęcie wykonania badania, obejmujące etap eksploracji testowanej aplikacji i wielofazowy etap wykonania testów. Etapy te mogą być wykonywane rozdzielnie, w każdym momencie istnieje też możliwość zatrzymania trwającego skanowania i zapisania jego aktualnego stanu z możliwością późniejszego wznowienia.

Odmiennie wygląda proces skanowania usług sieciowych (Web Services) – w takim przypadku proces eksploracji odbywa się z wykorzystaniem wyspecjalizowanego klienta (Generic Services Client).

Często proces badania aplikacji można rozpocząć wykonując minimalną liczbę czynności konfiguracyjnych i korzystając z wbudowanego kreatora, w praktyce jeszcze częściej wymagana jest konfiguracja przynajmniej pewnej ilości ustawień przez operatora.

Pierwszą rzeczą, którą trzeba skonfigurować jest zestaw ustawień dotyczących połączenia z aplikacją – obejmuje to ustawienia komunikacyjne (limity czasu, liczba wątków i proxy) oraz ustawienia uwierzytelniania na poziomie serwera. W tym zakresie wspierane jest uwierzytelnianie HTTP (i NTLM oraz uwierzytelnianie za pomocą certyfikatu.

HCL AppScan Standard Edition – hacker z pudełka

Konfiguracja modułu Scan Expert

Na wstępie warto także skonfigurować moduły wspomagające – Scan Expert i Result Expert. Pierwszy z nich na podstawie zachowania sieci i aplikacji wytwarza rekomendacje co do zmian optymalizacyjnych w konfiguracji skanu, drugi zaś oferuje zestaw modułów przetwarzających wyniki skanowania i opracowujących dodatkowe informacje dostępne w panelu szczegółowej informacji o wynikach.

AppScan umożliwia także wykonywanie skanu w formie zadania zaplanowanego, można także wykorzystać do tego celu interfejs linii komend (CLI). W formule zadania zaplanowanego możliwe jest ograniczenie czasu trwania wykonania badania.

HCL AppScan Standard Edition – hacker z pudełka

Planowanie wykonania skanu

Ustawienia etapu eksploracji

W etapie eksploracji budowane jest drzewo aplikacji – hierarchia adresów URL, plików i innych komponentów, a także wykonywana jest analiza danych i na jej podstawie tworzony jest zestaw testów do wykonania. W większości sytuacji eksploracja wykonywana jest w pełni automatycznie zgodnie ze zdefiniowaną konfiguracją. Etap eksploracji może być także wykonywany manualnie przez operatora z użyciem przeglądarki wbudowanej w narzędzie albo korzystając z przeglądarki zewnętrznej. Użycie przeglądarki zewnętrznej wiąże się z wykorzystaniem dostępnej w ASSE funkcjonalności serwera pośredniczącego HTTP (proxy). Możliwość użycia przeglądarki zewnętrznej jest szczególnie istotna w kontekście istniejących problemów z kompatybilnością pomiędzy różnymi ośrodkami webowymi a przeglądarkami. Dane pozyskane w trakcie fazy eksploracji dostępne są w widoku danych aplikacji (Application Data). Można je także eksportować i importować z pliku zewnętrznego.

W przypadku eksploracji automatycznej należy poprawnie skonfigurować szereg ustawień narzędzia, których najważniejsze obszary to:

  • Adres URL badanej aplikacji i serwery podlegające skanowaniu;
  • Ustawienia logowania i sprawdzania utrzymania sesji;
  • Wyłączenia ścieżek i plików;
  • Opcje eksploracji;
  • Parametry i zmienne cookie;
  • Automatyczne wypełnianie formularzy;
  • Operacje wielokrokowe.

W odniesieniu do ustawień logowania, najczęściej stosowanym rozwiązaniem jest nagranie tego procesu. Można także zastosować logowanie automatyczne (z wykorzystaniem automatycznego wypełniania rozpoznanych pól formularza) albo logowanie manualne. O ile mamy do czynienia z aplikacją wymagającą zalogowania się użytkownika, poprawne ustawienia związane z logowaniem są kluczowe dla całego procesu badania.

Ustawienia eksploracji decydują m.in. o takich elementach jak głębokość przeszukiwania, sposób eksploracji kodu JavaScript (analizowanie, wykonywanie) czy sposób poruszania się po ośrodku (podążanie za linkiem, eksploracja wszystkich odnośników na stronie). Ustawienia te mają walny wpływ na szybkość i uzyskane pokrycie, jak również na powodzenie całego badania (błędny dobór ustawień może np. doprowadzić do niekończącego się skanu).

HCL AppScan Standard Edition – hacker z pudełka

Opcje eksploracji

Nie mniej ważna jest poprawna konfiguracja obsługi parametrów i zmiennych cookie, szczególnie w odniesieniu do utrzymania sesji czy unikania testów nadmiarowych.

Operacje wielokrokowe pozwalają na uzyskanie dostępu do takich części aplikacji, które dostępne są tylko w przypadku zachowania określonego porządku wysyłanych żądań. Funkcjonalność ta pozwala na nagrywanie takich sekwencji.

Niektóre ustawienia, takie jak pule danych do automatycznego wypełniania formularzy mogą być eksportowane i importowane z plików zewnętrznych.

W wielu elementach konfiguracji możliwe jest stosowanie wyrażeń regularnych (np. w ustawieniach parametrów i zmiennych ciasteczek (ang. Cookies)).

Warto także poświęcić uwagę ustawieniom związanym z definicją środowiska pracy aplikacji odpowiednio wypełnione dane o infrastrukturze pozwalają zoptymalizować proces testowania. Ustawienia te obejmują również informacje używane przy określaniu wagi według CVSS, takie jak wymagania odnośnie do dostępności czy lokalizacja ośrodka.

Ustawienia etapu wykonania testów

Etap ten polega na wykonywaniu wytworzonych testów. Działanie to może być wielofazowe (zależnie od konfiguracji) – w takim przypadku, jeśli podczas wykonywania testu zostanie wykryta (w odpowiedzi aplikacji) nowa, nie ujawniona w początkowej fazie eksploracji zawartość, to dla tej zawartości zostaną powtórzone etapy eksploracji i testów. Ilość takich faz jest konfigurowalna do maksymalnie 10. Widać tutaj, że etapy eksploracji i wykonania testów mogą się zazębiać.

Najważniejszym ustawieniem dla etapu wykonania testów jest polityka testowa, czyli zestaw testów, które mogą być wykonane w danym badaniu. Wykorzystywana polityka może być edytowana przez użytkownika z dokładnością do wariantu testowego dla danej luki bezpieczeństwa. Polityki testowe można zapisywać i importować z plików zewnętrznych.

HCL AppScan Standard Edition – hacker z pudełka

Konfiguracja polityki testów

Kolejnym ustawieniem są opcje testowania, które m.in. określają ilość faz dla procesu wykonywania testów, odpowiadają za włączenie bądź wyłączenie mechanizmu testowania adaptacyjnego, decydują o tym czy mają być wykonywane testy na stronach logowania i wylogowywania.

Także w ustawieniach testów mamy możliwość skorzystania z funkcjonalności testów eskalacji przywilejów – możemy tutaj wskazać inne skany, wykonywane z użyciem konta użytkownika określonej roli, które zostaną następnie porównane w celu ustalenia stopnia, do jakiego uprzywilejowane zasoby są dostępne dla użytkowników z niewystarczającymi uprawnieniami dostępowymi. Funkcjonalność ta pozwala na testowanie błędów kontroli dostępu.

W tej części konfiguracji mamy także dostęp do ustawień funkcjonalności związanej z wykrywaniem szkodliwej zawartości i odnośnikach do niebezpiecznych ośrodków, zawartych na stronach badanej aplikacji. Ustawienia te dotyczą modułu testów na szkodliwą zawartość, który jest uruchamiany samodzielnie i nie wpływa na przebieg procesu eksploracji i skanowania.

Analiza wyników

Dane wynikowe prezentowane są w ASSE w formule trzech widoków:

  • Problemów bezpieczeństwa (Security Issues)
  • Zadań naprawczych (Remediation Tasks)
  • Danych aplikacji (Application Data)

W każdym z widoków dane (opisowe, aplikacji) przypisane są do adresów URL widocznych w lewej górnej ramce okna głównego (drzewo aplikacji). Drzewo możemy wykorzystać do nawigacji i filtrowania widoku wyników. Lista rezultatów zlokalizowana jest w prawej górnej ramce i przedstawia zależnie od wybranego widoku: problemy bezpieczeństwa, zadania naprawcze albo dane aplikacji. Dalsze informacje zostaną przedstawione na przykładzie widoku problemów bezpieczeństwa, który należy traktować jako widok podstawowy.

Wewnętrzna klasyfikacja AppScana Standard przewiduje cztery wagi ujawnionych podatności (od najwyższej):

  • Wysoka
  • Średnia
  • Niska
  • Informacyjna

Widok problemów bezpieczeństwa służy do prezentacji listy wyników i informacji szczegółowych wyświetlanych w panelu szczegółów (Detail Panel) – panel ten zlokalizowany jest w prawej dolnej ramce, pod listą wyników.

Zawiera on następujące zakładki:

  • Informacja o problemie – podatności zabezpieczeń (Issue information)
  • Opis doradczy (Advisory)
  • Rekomendacja naprawcza (Fix Recommendation)
  • Przebieg komunikacji testowej (Request/Response)
HCL AppScan Standard Edition – hacker z pudełka

Widok problemów bezpieczeństwa. Widoczny zapis sesji w panelu szczegółów

Dokument informacji o problemie zawiera krótką przeglądową informację o wykrytym problemie oraz dodatkowe informacje dostarczone przez moduł Scan Expert. W szczególności przedstawia wagę błędu według oceny CVSS, może także zawierać odpowiedni zrzut ekranu. Dane te są przechowywane w zapisie skanu i mogą być wyprowadzone do raportu MS Word.

Opis doradczy zawiera szczegółowe określenie i analizę danej podatności, a także m.in. klasyfikację według wag stosowanych w ASSE, numer podatności w katalogu CVE, odnośnik do opisu zagrożenia według klasyfikacji WASC (Web Application Security Consortium Threat Classification), informacje o podatnych produktach. Część dokumentów typu opis doradczy zawiera również krótkie prezentacje warsztatowe wykonane w technologii Adobe Flash wyjaśniające i prezentujące dany typ problemu.

Rekomendacja naprawcza przedstawia szczegółowo znane rozwiązania programistyczne danego typu problemu – prezentowane są wskazówki generyczne i specyficzne dla platform JavaScript, ASP.NET, JEE i PHP oraz popularnych frameworków.

Przebieg komunikacji testowej prezentuje szczegółowy zapis poszczególnych testowych sesji typu żądanie/odpowiedź – sesji oryginalnej (zgodnej z logiką biznesową aplikacji) i zawierających warianty wykonywanego ataku. Dane przedstawiane są w sposób przypominający edytory programistyczne. Dzięki temu łatwo można prześledzić przyczyny, dla których wynik testu został uznany za pozytywny – ta informacja jest także wyświetlana w formie opisowej. Taka formuła pozwala na wygodną analizę przebiegu testu i jego weryfikację. Adekwatne działania, takie jak oznaczenie danego wariantu jako niepodatny także podejmuje się w tej części interfejsu.

Dokumenty prezentowane w zakładkach panelu szczegółów można zapisywać do plików zewnętrznych, w szczególności plików HTML/MHT.

Raportowanie

Raporty dostępne w aplikacji można podzielić na cztery główne typy: raporty bezpieczeństwa, raporty zgodności, raporty porównania wyników badania i raporty użytkownika budowane na podstawie szablonów tworzonych w MS Word.

Raporty bezpieczeństwa mogą zawierać dane z podstawowych widoków ASSE (podatności zabezpieczeń, zadania naprawcze, dane aplikacji) – zakres danych i ich dokładność jest określana przez użytkownika. Dostępne są m.in. następujące szablony raportów bezpieczeństwa:

  1. Executive Summary – wysokopoziomowe podsumowanie zarządcze, zawierające informacje o zidentyfikowanych ryzykach oraz informacje statyczne o przeprowadzonym skanowaniu.
  2. Detailed (raport szczegółowy) – obejmujący wszystkie dane z widoków ASSE.
  3. Remediation Tasks – raport zawierający informacje o zadaniach naprawczych.
  4. Developer – raport zawierający szczegółowe informacje techniczne o ujawnionych podatnościach, zapisy zawartości badanego ośrodka, opisy doradcze i rekomendacje naprawcze.

W odniesieniu do ujawnionych podatności, które mają zostać umieszczone w generowanym raporcie można zawęzić ich wybór ze względu na typ testów (wszystkie, aplikacyjne, infrastrukturalne) i ograniczyć liczbę wariantów dla danej luki bezpieczeństwa (do określonej liczby). Użytkownik ma także możliwość wpływania w pewnym zakresie na wygląd raportów bezpieczeństwa – dotyczy to m.in. takich kwestii jak umieszczenie w raporcie odpowiedniego logo, zmiany części tytułów czy zawartości nagłówka i stopki.

HCL AppScan Standard Edition – hacker z pudełka

Tworzenie raportu bezpieczeństwa aplikacji

HCL AppScan Standard Edition – hacker z pudełka

Fragment raportu bezpieczeństwa aplikacji

Raporty zgodności przedstawiają wyniki przeprowadzonego badania w odniesieniu do zgodności (bądź niezgodności) aplikacji z wybranymi unormowaniami prawnymi albo standardami gospodarczymi. Szablony dla tego typu raportów mogą być tworzone przez użytkownika w postaci plików XML zawierających odpowiednie elementy. Wraz z ASSE dostarczane są gotowe szablony m.in. dla takich standardów i regulacji prawnych jak:

  • OWASP Top 10
  • WASC Threat Classification
  • ISO 27002
  • ISO 27001
  • Dyrektywa Parlamentu Europejskiego i Rady
  • Sarbanes-Oxley Act (SOX)
  • Basel II
  • PCI DSS
  • SANS/CWE Top 25 Most Dangerous Programming Errors

Raporty porównania wyników badania (Delta Analysis) pozwalają porównać dwa skany w zakresie zidentyfikowanych adresów URL i ujawnionych luk bezpieczeństwa.

Raporty oparte na szablonach MS Word pozostają całkowicie pod kontrolą użytkownika – szablony buduje się w procesorze tekstu za pomocą wstawiania pól odpowiadających poszczególnym danym przechowywanym w zapisie skanu.

Wszystkie raporty mogą być zapisane do pliku PDF, natomiast raporty oparte na szablonach MS Word zapisuje się do plików .doc.

Rozszerzenia i narzędzia zewnętrzne

AppScan umożliwia definiowanie własnych testów podatności zabezpieczeń wraz z możliwością wprowadzania własnych danych opisowych, takich jak rekomendacje naprawcze. Testy takie mogą mieć następujący charakter:

  • Testy infrastruktury;
  • Testy modyfikacji parametru;
  • Testy z dodaniem parametru;
  • Poszukiwanie wzorca (np. numeru PESEL).

Dane z wykonania tak zdefiniowanych testów będą procesowane w narzędziu w sposób identyczny jak testy pochodzące z bazy dostarczanej przez producenta. Bardziej złożone typy testów można realizować programując je z wykorzystaniem rozszerzeń AXF, o czym poniżej.

Wraz z aplikacją dostarczany jest zestaw narzędzi zewnętrznych PowerTools wspomagających typowe działania podejmowane przez analityka bezpieczeństwa czy pen-testera. Są to między innymi takie narzędzia jak tester poprawności wyrażeń regularnych (Expression Test), analizator tokenów sesyjnych (Token Analyzer) czy narzędzie (Encode/Decode) do dekodowania i kodowania różnych formatów tekstowych (m.in. URL, Base64, MD5, 3DES).

Ponadto narzędzie dostarczane jest wraz z rozbudowanym pakietem SDK (Software Development Kit), dzięki któremu można praktycznie dowolnie dostosowywać i rozbudowywać jego funkcjonalność. SDK może być wykorzystywane w każdym języku zgodnym z .NET-CLR oraz w języku Python poprzez rozszerzenie integracyjne PyScan, dostarczane razem z ASSE.

Część z dostępnych rozszerzeń dystrybuowana jest bezpłatnie w ramach AppScan eXtension Framework (adres w ramce), inne są m.in. dostarczane w ramach wsparcia – przykładem jest rozszerzenie Scan Optimizer, wspomagające trudny proces konfiguracji skanowania dużych ośrodków webowych wykorzystujących technikę URL rewriting.

HCL AppScan Standard Edition – hacker z pudełka

Pyscan w działaniu

AppScan Standard w Internecie

Strona informacyjna o produkcie: https://www.hcltechsw.com/appscan

AppScan na Youtube: https://www.youtube.com/playlist?list=PL2tETTrnR4wvtkgR6ILKOdoQIP_o9MF1u

Raport Gartnera dotyczący Application Security Testing: https://www.hcltechsw.com/appscan/gartner-MQ-2021

O autorze:

Bartosz Chrabski (CTO, SmarterProcess) - pracuje w branży IT od 15 lat. Posiada międzynarodowe doświadczenie w zakresie analizy biznesowej i inżynierii wymagań, zarządzania jakością i zarządzania projektami. Przez wiele lat odpowiedzialny w IBM za oprogramowania IBM, a następnie IBM Engineering. Obecnie współpracuje z IBM jako partner biznesowy w obszarze technologii IBM Engineering wspierając organizacje m.in. w planowaniu i realizacji procesów analitycznych oraz czynności zarządzania jakością na przestrzeni całego cyklu życia rozwiązania. Zdobyte doświadczenie wykorzystuje jako podstawę do rozwoju własnych metod doskonalenia procesów wytwarzania kładąc nacisk przede wszystkim na transparentność, efektywność i spójność procesów z celami biznesowymi przy jednoczesnej elastyczności i uniwersalności zastosowanych rozwiązań. W latach 2020 i 2021 nagrodzony tytułem IBM Champion, który jest przyznawany najbardziej doświadczonym ekspertom z zakresu oprogramowania IBM.