Niewykluczone, że w przyszłości deweloperzy nie będą korzystać ze zintegrowanych środowisk programistycznych działających natywnie na systemie operacyjnym zainstalowanym na stacji roboczej. Rosnąca popularność usług pokroju Visual Studio Codespaces sugeruje, że także IDE przeniosą się do chmury, zaś dostęp do nich uzyskiwać będziemy za pośrednictwem przeglądarek internetowych. Ale czy takie rozwiązanie jest bezpieczne?
Programowanie w przeglądarce – czy to bezpieczne?
Kwestię tę przeanalizował w ostatnim czasie David Fiser, ekspert ds. cyberbezpieczeństwa pracujący dla Trend Micro. Zauważa on, że korzystanie z platform programistycznych online sprawia, że ich bezpieczeństwo delegujemy w dużej mierze na dostawcę usługi. Niemniej wciąż na samych użytkownikach spoczywa odpowiedzialność, aby utwardzić przeglądarkę, a także poprawnie skonfigurować maszyny czy serwery wirtualne.
Fiscer przeanalizował dwie najpopularniejsze przeglądarkowo-chmurowe platformy programistyczne – wspomniany Visual Studo Codebase (dawniej Visual Studio Online) oraz AWS Cloud9. Oczywiście występują między nimi liczne podobieństwa – oba wykorzystują na przykład WebSocket do nawiązania połączenia SSH z serwerem wirtualnym lub maszyną wirtualną działającymi w centrach danych dostawcy. W przypadku usług Microsoftu będzie to serwer Visual Studio Code działający na maszynie wirtualnej, ale na gruncie AWS sytuacja jest nieco bardziej skomplikowana – środowisko testowe jest bowiem hostowane w innym miejscu, niż sam front-end w postaci edytora. W obu przypadkach można jednak uzyskać uprawnienia roota.
Ryzyko przejęcia łańcucha dostaw
Już w tym aspekcie Fiser dopatruje się potencjalnego zagrożenia dla cyberbezpieczeństwa – podłączone do IDE maszyny wirtualne lub urządzenia są co prawda zabezpieczone przez dostawcę, lecz to użytkownik zobowiązany jest do zabezpieczenia dostępu do konta roota. Zwłaszcza jeśli dostęp ma uzyskiwać większa liczba użytkowników (np. w celu pracy zespołowej nad kodem), zadbać należy o to, aby tokeny uwierzytelniające dostęp były bezpieczne. Często zdarza się (np. w repozytoriach GitHub), że pliki konfiguracyjne z tokenami są przechowywane w niezaszyfrowanej postaci, a dostęp do nich mogą uzyskać osoby nieuprawnione. A to w prostej linii prowadzić może do przejęcia łańcucha dostaw.
Także sama specyfika dostępnych aktualnie środowisk programistycznych online wystawia na szwank ich bezpieczeństwo. Edytory są dostępne z poziomu przeglądarek internetowych, a te – jak wiadomo – są częstym celem ataków. Szczególnie groźną powierzchnią mogą być rozszerzenia przeglądarkowe. Na nieszczęście, szczególnie mizernie pod tym względem sytuacja rysuje się w przypadku najpopularniejszej aktualnie przeglądarki, czyli Chrome. Rozszerzenie ze wstrzykniętym złośliwym kodem może służyć do kradzieży danych i nieautoryzowanego dostępu. A przecież malware ląduje nie tylko w sklepach z rozszerzeniami do przeglądarek, ale też coraz częściej w repozytoriach dodatków do samych IDE.
Werdykt?
Czy zatem można orzec, że platformy online są bardziej podatne niż natywne IDE? Z jednej strony ochronę zlecamy dostawcy usługi. Z drugiej jednak musimy zadbać, aby przeglądarka pełniąca funkcję cienkiego klienta nie zwiększyła powierzchni ataku. Fiser podsumowuje spostrzeżenia diagnozą, według której o bezpieczeństwo IDE online należy zadbać w czterech podstawowych aspektach – podłączone maszyny, urządzenia lub serwery, przeglądarki, rozszerzenia dla IDE oraz ochrona przed pozostałymi podatnościami, np. systemu operacyjnego. Z całością można zapoznać się na blogu Trend Micro.