Bezpieczne programowanie – jak nie dać się cyberprzestępcy?

Bezpieczne programowanie – jak nie dać się cyberprzestępcy?

Coraz częściej pojawiają się informacje o kradzieży danych albo atakach na systemy komputerowe, spowodowanych błędami programistycznymi. Czy można pisać kod, który jest od nich zupełnie wolny? Dopóki programistami są ludzie – całkowicie problemu błędów bezpieczeństwa w kodzie uniknąć się nie da, ale posiadając wiedzę na temat bezpiecznego programowania, można znacznie uodpornić nasze aplikacje na większość znanych i popularnych ataków.

Dostępne opracowania wskazują, że najbardziej opłacalne jest znalezienie błędów na jak najwcześniejszym etapie cyklu życia oprogramowania. Czy nie najlepiej będzie zatem tak przygotować programistów, aby tych błędów popełniali jak najmniej (czyli znaleźli je, jeszcze zanim się pojawią)?

Od 2010 roku pracownicy Działu Bezpieczeństwa PCSS przygotowują i przeprowadzają doroczne kilkudniowe szkolenia z zakresu tworzenia kodu odpornego na błędy bezpieczeństwa dla społeczności skupionej wokół paneuropejskiej sieci naukowej GÉANT. W ramach projektów GN3, GN3+ a obecnie GN-4 realizowaliśmy już tego rodzaju przedsięwzięcia w Poznaniu, Pradze, Berlinie czy Utrechcie. Tym razem, w dniach 20-22 marca, nasz zespół szkoleniowy zawitał do Lizbony. Wspólnie z dwudziestką uczestników, w ciągu trzech dni pracowaliśmy nad szeregiem tematów związanych z różnymi aspektami bezpieczeństwa aplikacji – od właściwego jej zaprojektowania pod kątem wchodzącej niebawem w życie ogólnego rozporządzenia unijnego o ochronie danych osobowych (GDPR), przez warsztaty poświęcone wybranym klasom błędów bezpieczeństwa aplikacji Web (Security Misconfiguration, External XML Entities, Insecure Deserialization), aż po wspólne znajdowanie błędów bezpieczeństwa w kodzie przy pomocy narzędzi automatycznych i czytania kodu. Elementem szkolenia był również konkurs, w którym uczestnicy mogli wykorzystać zdobytą wiedzę, samodzielnie atakując przygotowaną, błędną aplikację.

Mamy nadzieję, że wspólna praca zaowocuje wyższym poziomem bezpieczeństwa tworzonych w ramach projektu GN4 usług sieciowych. Wszystkich programistów zachęcamy zaś do zgłębiania tajników bezpiecznego programowania. Według serwisu cvedetails.com, w 2017 roku niemal 15 tysięcy zgłoszonych błędów w oprogramowaniu otrzymało kod CVE (ang. Common Vulnerabilities and Exposures). Jeden błąd może zaś kosztować tysiące, a nawet miliony złotych, dolarów czy euro – może także spowodować straty niematerialne. W ramach stosowania bezpiecznego cyklu życia oprogramowania (ang. Secure Development Life Cycle) musimy nie tylko pamiętać o implementacji mechanizmów bezpieczeństwa, czy testować napisane oprogramowanie pod kątem możliwości naruszenia zabezpieczń, ale przede wszystkim przeszkolić zespoły deweloperskie, tak aby potrafiły właściwie przygotować kod źródłowy.