The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2019-03-26
Software Development

Bezpieczeństwo w pakietach Javascript

Daniel Grek

Z każdym dniem ilość pakietów Javascript rośnie. Jest to wynik aktywności społeczności, która z jednej strony domaga się nowych rozwiązań, z drugiej - generuje je w ramach samorozwoju lub realizacji. Tak duży wzrost otwiera nowe drzwi i możliwości, ale niesie ze sobą również zagrożenia, których każdy developer musi być świadomy.

Pod koniec listopada 2018 r. społeczność GitHub poinformowała o poważnej luce w zabezpieczeniach aplikacji event-stream - który pomaga w pracy z węzeł wydarzenia bardziej efektywnie. Była ona dość popularna, ponieważ liczba pobrań w tym konkretnym okresie sięgała ponad 2,2 mln tygodniowo (w porównaniu do React z 3,7 mln). Event-stream, jak i jego zależności, były zależne od innej biblioteki - flatmap-steam, który został zaktualizowany złośliwym oprogramowaniem typu crypto-pocket. Umożliwiało ono kradzież kluczy prywatnych i innych danych z kont użytkowników na komputerach, do których pakiet był dołączony.

Ostatecznie flatmap-stream został usunięty z NPM, co spowodowało problemy czasowe z wieloma innymi bibliotekami. W maju tego samego roku społeczność znalazła backdoora w bibliotece getcookie który był również częścią wielu innych zależności. Takie przykłady można mnożyć, co pokazuje, że ważne jest, aby zwracać uwagę na zależności zainstalowane w pakiecie projektnie tylko od Javascript ale także w kontekście ogólnym.

Poleganie na oficjalnych rozwiązaniach i dużych społecznościach

W miarę możliwości ważne jest, aby polegać na oficjalnych rozwiązaniach w swoim projekcie. Są one nie tylko mniej podatne na ataki z powodu lepszej proces rozwoju. Duża społeczność, która zwykle wiąże się z lepszą marką, pomaga znacznie szybciej identyfikować problemy i, co ważniejsze, znajdować dobre rozwiązania.

Wykorzystanie trendów NPM

Bezpieczeństwo JavaScript

Rys. 1 Trend Webpack NPM.

Wykres

Rys. 2. Trend NPM w strumieniu zdarzeń.

Czasami znajomość aktualnego stanu pakietu może nie odzwierciedlać jego przeszłości. Szybkie spojrzenie na wykres trendów npm może pokazać rzeczywisty trend pakietu. Pokaże on nie tylko duże szczyty, w których można znaleźć jakąś podatność, ale także ogólny stan danego pakietu (UWAGA: duże szczyty w trendach google w okolicach 24-30 grudnia reprezentują sezon świąteczny, co niekoniecznie musi oznaczać problem). Jako przykład, spójrz na rysunek 1 - przedstawiający trend pobierania Webpacka na tydzień. Widać stabilny wzrost bez żadnych punktów zwrotnych, co może sugerować, że Webpack jest stabilnym i bezpiecznym pakietem do użycia. Z drugiej strony, na rysunku 2 widać duży spadek w listopadzie, co jest wyraźnym sygnałem, że coś złego mogło się wydarzyć w tym okresie (co już wiemy, że jest prawdą).

Audyt zależności

Najlepszym i najbardziej niezawodnym sposobem na sprawdzenie stanu zależności jest wykonanie funkcji audyt. Polecenie to jest teraz dostępne natywnie zarówno dla yarn, jak i npm, choć wymaga ich najnowszych wersji. Wysyła listę aktualnych zależności do odpowiedniego punktu końcowego i zwraca informacje zawierające ich aktualne luki i inne szczegóły użytkowania, w tym odniesienie do dokumentacji. (rysunek 3).

Interesujące dane

Rys. 3. Przykład wyniku polecenia npm audit. Źródło: https://docs.npmjs.com

Zarządzanie zależnościami w Javascript nie jest łatwym zadaniem. Liczba rozwiązań rośnie z każdym dniem, dlatego pamiętaj, aby wybierać zależności mądrze i ostrożnie. Nieustannie kontroluj swój bieżący projekt i regularnie aktualizuj swoje pakiety.

Aby dowiedzieć się więcej o zależnościach javascript i jak rozwiązać niektóre z ich problemów, Sprawdź ten artykuł.

Źródło:

  1. https://github.com/dominictarr/event-stream/issues/116
  2. https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
  3. https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies
  4. https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
  5. https://docs.npmjs.com/cli/audit
  6. https://yarnpkg.com/lang/en/docs/cli/audit/

Powiązane artykuły

Abstrakcyjna ilustracja malejącego wykresu słupkowego z rosnącą strzałką i złotą monetą symbolizującą efektywność kosztową lub oszczędności. Logo The Codest pojawia się w lewym górnym rogu wraz ze sloganem "In Code We Trust" na jasnoszarym tle.
Software Development

Jak skalować zespół programistów bez utraty jakości produktu?

Skalujesz swój zespół programistów? Dowiedz się, jak się rozwijać bez poświęcania jakości produktu. W tym przewodniku omówiono oznaki, że nadszedł czas na skalowanie, strukturę zespołu, zatrudnianie, przywództwo i narzędzia - a także sposób, w jaki The Codest może...

THEECODEST
Software Development

Tworzenie przyszłościowych aplikacji internetowych: spostrzeżenia zespołu ekspertów The Codest

Odkryj, w jaki sposób The Codest wyróżnia się w tworzeniu skalowalnych, interaktywnych aplikacji internetowych przy użyciu najnowocześniejszych technologii, zapewniając płynne doświadczenia użytkowników na wszystkich platformach. Dowiedz się, w jaki sposób nasza wiedza napędza transformację cyfrową i biznes...

THEECODEST
Software Development

10 najlepszych firm tworzących oprogramowanie na Łotwie

Dowiedz się więcej o najlepszych łotewskich firmach programistycznych i ich innowacyjnych rozwiązaniach w naszym najnowszym artykule. Odkryj, w jaki sposób ci liderzy technologiczni mogą pomóc w rozwoju Twojej firmy.

thecodest
Rozwiązania dla przedsiębiorstw i scaleupów

Podstawy tworzenia oprogramowania Java: Przewodnik po skutecznym outsourcingu

Zapoznaj się z tym niezbędnym przewodnikiem na temat skutecznego tworzenia oprogramowania Java outsourcing, aby zwiększyć wydajność, uzyskać dostęp do wiedzy specjalistycznej i osiągnąć sukces projektu z The Codest.

thecodest
Software Development

Kompletny przewodnik po outsourcingu w Polsce

Wzrost liczby outsourcing w Polsce jest napędzany przez postęp gospodarczy, edukacyjny i technologiczny, sprzyjający rozwojowi IT i przyjazny klimat dla biznesu.

TheCodest

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish