Kończy się przerwa świąteczna, a ja natchniony kilkoma wypowiedziami na forum GoldenLine chciałbym coś z siebie wyrzucić. Dodatkowo mój serdeczny kolega zauważył, że stał się bohaterem jednego z wpisów - (Najtrudniejsze) Podstawy bezpieczeństwa aplikacji.... Zastanawiam się jak bardzo unikalni w naszym kraju są programiści, których ciekawią problemy związane z bezpieczeństwem aplikacji, które tworzą. Przyznam szczerze, że znam ich dosłownie kilku, a pozostali... no cóż, bezpieczeństwo dla nich to: przymus, kara, opóźnienia, niechciane marzenia, niepotrzebne gadżety, killerzy biznesu - nadal często z takimi określeniami spotykam się od ładnych paru lat, głównie na początku współpracy. Są też wyjątki "nawróconych" :-)
Prawda jest taka, że jeżeli wymagam od programisty by aplikacja była wolna od znanych błędów/podatności, a w żaden sposób mu w tym nie pomagam to nie przesadzę napisząc, że to jak wymaganie od początkującego kierowcy bez uprawnień na prowadzenie pojazdów, by jeździł bezpiecznie. Niby już wie gdzie gaz, hamulec, sprzęgło, skrzynia biegów, po osiedlu jeździ, ale co z ze skomplikowanymi skrzyżowaniami kiedy w dodatku światła zostały wyłączone? Staje prawie na środku, inni trąbią, wyzywają, pomagają by stres zrobił swoje - pomagają popełnić błąd. Wcześniej nie przerabiał takiego scenariusza. Nie oczekujmy, że ten przyszły kierowca na pewno zachowa się w tej sytuacji dobrze.
Wiecie już co mam na myśli? :)
Zadałem takie pytanie na forum, ale może ktoś trafi na mojego bloga: Czy widziałaś/widziałeś oferty pracy dla programistów, gdzie jednym z wymagań była choćby podstawowa znajomość zagadnienień związanych z bezpieczeństwem? - technologii z jaką miałaby taka osoba pracować albo chociaż ogólnie: bezpieczeństwa aplikacji.
Pomijam oferty z firmy Google, oni prawdopodobnie potwierdzają regułę.
Krótkie zastanowienie i może trochę przedwczesne wnioski, "Nie ma takich ofert pracy bo":
1) nie ma takich programistów - moim zdaniem są, chociaż nie ma ich zbyt wielu, dlaczego? kto zna szkolenia w Polsce, na których programista może poznać zagrożenia związane z atakami na aplikacje i nauczyć się jak z nimi walczyć?
2) pracodawcy nie myślą o tym, nie czują problemu - bo przecież taki programista ma inne zadania, bezpieczeństwo to "ficzer"
3) bezpieczeństwo to temat dla kogoś z bezpieczeństwa, jak znajdą jakieś błędy to programista usunie je - kiedyś na takie teksty otwierał mi się scyzoryk w kieszeni, teraz potrafię spokojnie przedstawić ten temat w taki sposób by dał do myślenia
4) w Javie pisze się tylko bezpieczne aplikacje - za krótko obracam się w środowisku programistów języku Java by to dobrze wytłumaczyć dlaczego jest takie myślenie, ale przykro mi, że muszę to zrobić: aplikacje w Javie nie są bezpieczne "by default". Nie są, przykro mi.
5) nie ma dostatecznie dobrego dialogu pomiędzy samym IT, a osobami z bezpieczeństwa. Za krótko żyję na tym świecie by mieć kilkanaście i więcej lat doświadczenia na styku IT <-> Bezpieczeństwo -> wymierną próbkę, ale dlaczego tak mało rozmawiamy? Jeśli już to bardzo oficjalnie i głównie o nakazach/zakazach. Tuż przed świętami sporo rozmawiałem ze znajomym, który szukał podstaw uzasadniających kilka punktów w umowie dla pracownika IT. Jak dla mnie były to punkty ze świata absurdu co też mu powiedziałem. Zacznijmy od pracy u podstaw!
6) i w konsekwencji z 5) - nie ma programu/pomysłu w firmie zapewniającego bezpieczeństwo aplikacji. J/w. Praca u podstaw. Tomasz Kopacz z firmy Microsoft, na którego prezentacji podczas CONFidence 2009 2.0 miałem okazję być, powiedział, że wprowadzenie Secure SDLC w takiej firmie jak gigant z Redmond było i jest bardzo kosztowne. Musiało wyniknąć z samej góry (Bill Gates) i tylko z jej błogosławieństwem miało/ma szansę powodzenia. MS to bardzo duża firma i może nie być najlepszym przykładem w naszych warunkach, ale chciałbym powiedzieć, że da się to zrobić bez bardzo dużych kosztów. Ba, one się nawet zwrócą. Przynajmniej do czasu zanim nie trafi się na firmę, która będzie chciała na tym duuuużo zarobić.
Całkiem możliwe, że znajdzie się sporo osób o odmiennym zdaniu, jeżeli tak to bardzo serdecznie zapraszam do komentowania tego wpisu - w ten sposób mam nadzieję uda się zrobić coś dobrego dla nas wszystkich, którzy korzystają później z takich aplikacji.
Podsumowując, nie chcę i nie obarczam programistów winą za błędy bezpieczeństwa w aplikacji. Uważam, że w większości przypadków nie ma odpowiedniej organizacji ich pracy co skutkuje często mniejszymi/większymi katastofami. Nie zwalniam z odpowiedzialności za tą sytuację osoby zajmujące się bezpieczeństwem, chociaż i oni czasami nie są przygotowani do tematu bezpieczeństwa aplikacji. Natomiast od kogoś musi to wyjść.
PS
Tak się stało, że od grudnia 2009 jestem nowym liderem OWASP Poland Local Chapter. Kilka miesięcy temu, aktualny wtedy lider - Andrzej Targosz, poinformował mnie, że nie będzie miał czasu na aktywne prowadzenie Chapteru i czy nie jestem zainteresowany przejęciem go. Ku mojej uciesze, drugi ze współzałożycieli OWASP Poland - Robert Pająk, wskazał mnie jako osobę, do której mógłby trafić oddział. Chociaż początkowo odmówiłem to po kilku miesiącach stwierdziłem, że warto spróbować. Serdecznie zapraszam na spotkania OWASP Poland! Tam dowiecie się tego jak nie być koniem i jak tworzyć bezpieczne aplikacje webowe!
sobota, 26 grudnia 2009
Subskrybuj:
Posty (Atom)
