Bezpieczeństwo oprogramowania

Usługi

W dobie łączności elektronicznej, zagrożenia cybernetyczne stały się alarmująco powszechne. Wobec wynikających z tego wyzwań, wytwarzanie oprogramowania w sposób odpowiadający najlepszym praktykom i najważniejszym założeniom bezpieczeństwa stało się nie tylko pożądane, ale i niezbędne. W miarę zwiększania funkcjonalności wraz z postępowaniem harmonogramów rozwoju projektów, zwłaszcza w ramach zwinnych metodyk, programiści często tracą z pola widzenia najlepsze praktyki bezpieczeństwa. 

Udoskonalanie bezpieczeństwa oprogramowania pozwala zapobiegać złośliwym atakom. Nierzadko ich celem jest naruszenie warstwy softwarowej i wykorzystanie ukrytych w niej punktów dostępu, prowadzących do wrażliwych miejsc i zasobów. Wypracowanie przewagi nad atakującymi i uprzedzanie ich stwarza swobodę w działaniach defensywnych i niezbędne warunki dla dalszego, nieprzerwanego rozwoju.

 W AFINE mamy przyjemność wspierać najważniejszych producentów oprogramowania w ich walce z cyberprzestępczością. 

W ramach usług związanych z bezpieczeństwem oprogramowania możesz skorzystać z testów penetracyjnych aplikacji webowych oraz natywnych, API czy aplikacji mobilnych. Testy bezpieczeństwa wykonywane są zarówno w metodologii black-box, bez znajomości szczegółów rozwiązania (w aplikacjach natywnych/binarnych oparte na technikach związanych z inżynierią odwrotną), jak i white-box, włączając w to dokładny audyt kodu źródłowego. Możesz także skorzystać z naszego doświadczenia w zakresie rozwiązań kryptograficznych, ich bezpiecznej implementacji w aplikacjach, a także związanej z nimi identyfikacji podatności.

  • Web Application & API

    Testy bezpieczeństwa aplikacji webowych oraz API oceniane są zgodnie z OWASP Application Security Verification Standard (ASVS). Tym, co wyróżnia nas na rynku, jest fakt, że nie bazujemy na automatycznych narzędziach. Nasze testy przeprowadzamy ręcznie, z wykorzystaniem automatycznych narzędzi w celu automatyzacji podstawowych prac. 

    Wśród wykrywanych przez nas typów błędów znajdują się między innymi:

    • SQLi,
    • XSS,
    • CSRF,
    • SSRF,
    • DOM-based vulnerabilities,
    • CORS,
    • XXE,
    • HTTP Request Smuggling,
    • Insecure Deserialization,
    • OS Command Injection,
    • Server-side template injection,
    • Directory traversal,
    • Access control vulnerabilities.

     W zależności od Twoich potrzeb wykonamy dla Ciebie:

    • Wykonamy kompleksowe testy bezpieczeństwa aplikacji web,
    • Wykonamy kompleksowe testy bezpieczeństwa REST API,
    • Wykonamy kompleksowe testy bezpieczeństwa dodatkowych mechanizmów wykorzystywanych w ramach aplikacji web (np. WebSocket).
  • Aplikacje mobilne

    Testy penetracyjne aplikacji mobilnych pozwalają kompleksowo zweryfikować bezpieczeństwo rozwiązań mobilnych, od zgodności z dobrymi praktykami, aż po zbadanie zabezpieczeń interfejsu aplikacji, jej interakcji z mobilnym systemem operacyjnym oraz interakcji z backendem obsługującym żądania użytkowników. Ważnym elementem testów bezpieczeństwa aplikacji mobilnych jest także dekompilacja i inżynieria wsteczna, niezbędna, by zweryfikować prawdopodobieństwo ujawnienia wrażliwych danych technologicznych, a także odkryć podatności niewidoczne z poziomu interfejsu użytkownika lub emulatora systemu mobilnego. Nasze prace skupiają się zarówno na ekosystemie firmy Apple, jak i na systemie Android. 

    W zależności od Twoich potrzeb wykonamy dla Ciebie:

    • Zbadamy logikę biznesową aplikacji,
    • Zweryfikujemy interfejsy komunikacyjne wykorzystywane przez aplikację (komunikacja mobilna, WiFi, Bluetooth, NFC),
    • Sprawdzimy uprawnienia, których aplikacja potrzebuje do działania na urządzeniu (czy np. nie są nadmiarowe, przez co narażają użytkowników końcowych),
    • Poddamy kontroli bezpieczeństwo protokołów wykorzystanych do komunikacji z serwerem (wykorzystywana technologia, zabezpieczenie transmisji, itp.),
    • Zweryfikujemy zabezpieczenie oraz autoryzację transakcji wykonywanych z poziomu aplikacji,
    • Zweryfikujemy zabezpieczenie danych przechowywanych na urządzeniu mobilnych (w tym pamięć podręczną),
    • Zweryfikujemy zabezpieczenie ekranów aplikacji (np. czy saldo kont widoczne jest po przejściu aplikacji w tło),
    • Sprawdzimy logowanie informacji przez aplikację – np. czy logi urządzenia nie zawierają wrażliwych informacji,
    • Ocenimy bezpieczeństwo „framework’ów” oraz bibliotek zewnętrznych wykorzystywanych przez aplikację,
    • Zweryfikujemy wykrywanie „jailbreak” oraz zachowanie aplikacji w momencie wykrycia, że na urządzeniu został przeprowadzony ten proces,
    • Weryfikację poprawności zabezpieczenia komunikacji przez tzw. „certificate pinning”,
    • Zweryfikujemy zaszyte w kodzie wrażliwe dane np. certyfikaty prywatne, klucze szyfrujące, czy też inne wrażliwe informacje,
    • Zbadamy możliwość obejścia procesu uwierzytelniania i autoryzacji,
    • Zweryfikujemy zabezpieczenie dostępu przez jego blokowanie po kilku nieudanych próbach,
    • Zbadamy bezpieczeństwo sesji użytkownika – np. automatyczne kończenie na urządzeniu oraz serwerze, czyszczenie pamięci z danych nt. sesji po jej zakończeniu, wysyłanie danych sesji w parametrach GET, podatność na ataki typu „session fixation”, sposób generowania tokenów oraz inne,
    • Zweryfikujemy podatność na typowe ataki web (jeśli będzie to adekwatne) – np. XSS, ataki typu injection (SQL, HTML, XML, a także inne), OS command injection, CSRF, bezpieczeństwo cookies, bezpieczeństwo HTML5, czy też ustawienia “cross domain policy”,
    • Ocenimy prywatność użytkowników aplikacji – czy np. dane nt. użytkownika nie są przesyłane na zewnętrzne serwery.
  • Aplikacje natywne

    Wykonujemy testy bezpieczeństwa aplikacji binarnych/natywnych, napisanych zarówno w językach kompilowanych do kodu bajtowego (np. C#/Java), jak i kodu maszynowego (m.in. C/C++). Nasze portfolio zawiera przeprowadzone skutecznie testy penetracyjne rozwiązań takich jak thick-clients (tzw. „grube klienty”), systemy ERP (Enterprise Resource Planning), systemy księgowe, czy też systemy będące pośrednikami komunikatów (m.in. IBM MQ/ActiveMQ). Posiadamy także bogate doświadczenie w analizie bezpieczeństwa usług natywnych, które są rozwinięciem rozszerzeń przeglądarek internetowych (Mozilla Firefox, Google Chrome), opartych o „Native Messaging”, zarówno w systemie macOS jak i Windows. 

    Nasz zespół posiada doświadczenie w identyfikacji podatności takich jak:

    • Memory Corruption Bugs:
      • Heap related:
        • Heap-based Buffer Overflow,
        • Use-after-free,
        • Double free;
      • Stack related:
        • Stack Overflow,
        • Stack-based Buffer Overflow;
    • Type Conversions vulnerabilities;
    • Arithmetic issues:
      • Integer Under/Over-flow;
    • Strings/metacharacters handling:
      • Format strings vulnerabilities,
      • NUL Character Injection;
    • Memory leaks;
    • Command Injection vulnerabilities;
    • Path traversal;
    • Race Conditions;
    • OS specific issues:
      • Windows:
        • vulnerabilities related to symbolic links,
        • Windows registry issues,
        • privilege escalation (e.g. by abusing services),
        • Interprocess Communication issues;
      • macOS:
        • privilege escalation.

    W zależności od Twoich potrzeb wykonamy dla Ciebie:

    • Kompleksową analizę bezpieczeństwa natywnego oprogramowania.
  • Code Review

    Przegląd kodu źródłowego oparty jest o bardzo szczegółową analizę pod względem bezpieczeństwa, pozwalającą zrozumieć kontekst wdrożonych mechanizmów i oszacować ryzyko. Uwzględnia zarówno prawdopodobieństwo ataku, jak i idące za nim ryzyko biznesowe. Posiadamy wieloletnie doświadczenie związane z identyfikacją podatności w kodzie źródłowym, zarówno w kontekście aplikacji webowych (m.in. ASP.NET, PHP, Python, Go, JavaScript), jak i binarnych, takich jak identyfikacja typowych błędów języków C/C++ w kontekście zarządzania pamięcią na stosie (np. Stack-based Buffer Overflow) lub stercie (np. Use-after-free i Heap-based Buffer Overflow).

    W zależności od Twoich potrzeb wykonamy dla Ciebie:

    • Przeprowadzimy ręczną analizę kodu źródłowego pod kątem typowych podatności programistycznych, a także błędów logicznych,
    • Przeprowadzimy automatyczną analizę kodu źródłowego pod kątem błędów bezpieczeństwa, a także ocenimy wyniki pod kątem “false positive”.
    • Udoskonalimy Twój proces wytwarzania oprogramowania, aby zminimalizować liczbę błędów programistycznych.
  • Research & Development

    W ramach aktywności Research & Development zajmujemy się zagadnieniami związanymi z „Vulnerability Research”, czyli dogłębną analizą wybranych rozwiązań w poszukiwaniu zaawansowanych technicznie podatności bezpieczeństwa.

     Nieodzownym elementem tego rodzaju prac jest fuzzing, czyli ogół technik polegających na dostarczaniu do programu odpowiednio wygenerowanych (nieoczekiwanych) danych wejściowych, powodując w ten sposób nieprzewidziane przez twórców rozwiązania zachowanie.

     Każda wykryta nieprawidłowość (na przykład poprzez wykrycie anomalii w monitorach API czy potencjalny wyciek pamięci poprzez informację z odpowiedniego narzędzia) jest szczegółowo analizowana pod kątem znaczenia dla bezpieczeństwa produktu. 

    W zależności od Twoich potrzeb wykonamy dla Ciebie:

    • Przeprowadzimy analizę wsteczną kodu binarnego wykorzystywanego w ramach rozwiązania co pozwoli na dogłębne zrozumienie zachodzących procesów oraz interakcji, 
    • Przeprowadzimy kompleksową analizę rozwiązania pod kątem wszelkich błędów,
    • Przygotujemy środowisko do prowadzenia “fuzzingu” oprogramowania,
    • Opracujemy narzędzia służące do wykorzystania wykrytych podatności (“exploit development”),
  • Security Development Lifecycle

    W ramach Security Development Lifecycle wspieramy naszych klientów w obniżaniu kosztów poprzez rozwiązywanie problemów bezpieczeństwa w momencie, w którym się pojawiają. Drastycznie minimalizujemy również ryzyko organizacyjne, które może wynikać z uruchomienia podatnej aplikacji na środowisku produkcyjnym. 

    Nasze działania w ramach Secure SDLC obejmują: 

    • szkolenia programistów poprzez pokazywanie najczęściej popełnianych błędów i budowanie świadomości zagrożeń;
    • analizę powierzchnię ataku i modelowanie zagrożeń;
    • przegląd kodu i analizę statyczną kodu;
    • bieżące testowanie zmian wprowadzonych w oprogramowaniu – ręcznie oraz za pomocą naszych narzędzi automatycznych,
    • konsultacje na każdym etapie prac i wdrażania rekomendacji.

    W zależności od Twoich potrzeb wykonamy dla Ciebie: 

    • Zaimplementujemy “Software Security Initiative”,
    • Przeprowadzimy modelowanie zagrożeń,
    • Dokonamy przeglądu architektury oraz projektu systemu,
    • Zweryfikujemy oraz usprawnimy procesy DevSecOps.
  • Kryptografia

    W AFINE dajemy Ci także możliwość skorzystania z fachowego doradztwa w zakresie bezpiecznego przesyłania oraz przechowywania informacji. Możliwy zakres usług kryptograficznych prezentuje się następująco: 

    • pomoc w charakterze doboru odpowiednich architekturalnych rozwiązań kryptograficznych w aplikacji;
    • weryfikacja aktualnie wdrożonych rozwiązań kryptograficznych, np. identyfikacja typowych błędów w szyfrach blokowych, asymetrycznych i strumieniowych, ochrona integralności (MAC), czy też wdrożenie odpowiedniej pseudolosowości;
    • opracowanie bezpiecznego mechanizmu przechowywania haseł w aplikacji.

    Dostępne wsparcie dotyczy kryptografii w kontekście aplikacji webowych, natywnych, a także rozwiązań sprzętowych. 

    W zależności od Twoich potrzeb wykonamy dla Ciebie: 

    • Przeprowadzimy weryfikację zastosowanych mechanizmów kryptograficznych,
    • Przygotujemy rekomendację najbardziej optymalnych mechanizmów kryptograficznych dla systemu,
    • Przeszkolimy programistów oraz architektów pod kątem prawidłowego użycia mechanizmów kryptograficznych.

Inne

usługi

Czy Twoja firma jest bezpieczna w sieci?

Dołącz do grona naszych zadowolonych klientów i zabezpiecz swoją firmę przed cyberzagrożeniami już dziś!

Zostaw nam swoje dane kontaktowe, a nasz zespół skontaktuje się z Tobą, aby omówić szczegóły i dopasować ofertę do Twoich potrzeb. Dbamy o pełną dyskrecję i poufność Twoich danych, dlatego możesz nam zaufać.