Am discutat cu invitații noștri despre ce securitatea sistemelor, un domeniu important în dezvoltarea de software de calitate:
Ștefan Hărșan Farr - Principal Security Architect @ Betfair,
Ștefan Hărșan Farr: Lucrez la Betfair în mai multe proiecte, inclusiv migrarea în Cloudflare. Activez în tehnologie de la aproximativ 20 de ani, fiind inițial developer.
Ciprian Sorlea: Sunt CTO la Nordlogic Software, vice-președinte la Cluj IT Cluster. Sunt CTO la Nordlogic Software de șase ani, aceasta fiind o firmă de software, de produs, românească, din Cluj, cu birouri și în Oradea, iar acum cu pandemia, cu colegi pasionați și din restul țării. Nu am un singur produs la care lucrez, dar lucrez cu echipele care dezvoltă acele produse. Le ajut și le susțin în ceea ce privește arhitectura, de DevOps. Ajut clienții în partea strategică. Ca spectru, avem produse de la zona startup până la zona enterprise, și, mai nou, din zona guvernamentală.
Ce sfaturi le dai clienților legat de securitate atunci când se începe un startup sau un serviciu?
Ciprian Sorlea: Le dau sfatul să nu o ignore. Am avut sesiuni axate inclusiv pe tema de non-functional requirements, unde securitatea este foarte importantă. Dincolo de înțelegerea motivelor pentru care securitatea e importantă, încerc să explic clienților modul în care funcționează securitatea, modul în care pot obține un nivel de securitate minimală cu un efort redus și o investiție minimă inițială. Le explic cum să își dezvolte aplicațiile, astfel încât securitatea să fie ceva embedded, nu un afterthought. Fiecare organizație are posibilități diferite și nu poți să tratezi securitatea pentru toți așa cum o tratezi pentru un startup care peste trei luni s-ar putea să nu mai aibă tracțiune.
Care sunt cele mai comune amenințări pe care încercați să le preveniți cu WAF (Web Application Firewall)?
Ștefan Hărșan Farr: Cred că este impropriu să vorbim de amenințări pe internet. Este vorba despre o singură amenințare, cea care vine de la oameni. E mai bine să vorbim de vectori de atac și cum acei oameni pot să exploateze lipsuri din aplicație pentru a obține beneficii financiare pe căi necinstite. Vectorii principali de atac țin de aplicații (SQL injection, cross-side scripting). De exemplu, cross-side scripting atacă o persoană, iar un SQL injection, întreaga bază de date. Un alt vector de atac sunt acțiunile care încearcă să scoată bani de la tine. Alții sunt ransomware care atacă datele pe care le criptează. Și nu în ultimul rând, partenerii, deci părțile terțe care nu sunt neapărat sursa atacului. Securitatea are multe ramuri: de la verificarea furnizorului la penetration testing intern și extern al aplicației.
Ciprian, ai anumite frameworkuri preferate în zona de securitate?
Ciprian Sorlea: Nu, iar modul în care eu tratez securitatea nu este legat de un anume framework. Nici echipelor cu care lucrez nu încerc să le transmit un framework, ci să mă asigur că le dau mindsetul corect. Clienții noștri lucrează cu stackuri și platforme diferite, prin urmare, nu putem spune că avem un weapon of choice. Securitatea trebuie să facă parte din zona de infrastructură. Se știe că poți avea o securitate nativă ce face parte din arhitectură. La arhitectura de tip monolit, ai o plajă largă de atac, lucrurile fiind diferite pentru arhitectura serverless sau cea bazată pe microservicii. De asemenea, există o strategie orientată către development. Aici, într-adevăr, prin intermediul frameworkurilor pe care le folosești poți reduce riscurile semnificativ. Toolul meu preferat la acest nivel este Sonar pe partea de secure coding, nu pe cea de securitate nativă. Nu are rost să învăț niște tooluri atâta timp cât platforma pe care o dezvolt va fi găzduită de Google Cloud care știu că va investi mai mult decât orice altă companie în zona de securitate.
Ce înseamnă o aplicație web sigură dacă balansăm costurile cu beneficiile?
Ștefan Hărșan Farr: Așa cum s-a spus, un serviciu de calitate implică securitatea la nivel de infrastructură, de utilizatori care folosesc aplicația etc. Dorim să avem o vizibilitate bună și să putem reacționa în cazul unei probleme. Trebuie să ne asigurăm că am făcut tot posibilul să eliminăm riscul, să eliminăm vectorii și să restrângem suprafața de atac.
Știu că ați avut campanii de bounty hunting. Care sunt beneficiile?
Ștefan Hărșan Farr: Beneficiile sunt foarte mari. Costă relativ puțin față de ce valoare are un bounty hunting. Firma noastră are un amplu proces ce asigură securitatea, ajungându-se chiar și la dynamic scanning. Este greu pentru o companie, chiar și ea mare, să facă penetration testing așa cum se face public. Pentru asta apelăm la experți care găsesc niște buguri de nu-ți vine să crezi. Te expui printr-un bug bounty, deoarece bugurile devin publice, iar tu ai presiunea etică de a le fixa în cel mai scurt timp.
Ciprian, voi faceți bug hunting?
Ciprian Sorlea: Noi avem o echipă axată pe zona de securitate, de dimensiuni mai reduse, comparativ cu companiile mari, iar strategia noastră este de a apela la experți, chiar din Cluj IT Cluster. Facem penetration testing pe mediul de Staging, înainte de a ajunge în producție. Cu siguranță, costă mai mult per item găsit decât un bounty public.
Mai există SQL injection?
Ciprian Sorlea: Da. Șanse există întotdeauna. Cei care folosesc o tehnologie fără să o înțeleagă produc probleme de securitate sau performanță. Cu siguranță, riscul unui SQL injection este mai scăzut, deoarece se lucrează cu tooluri și librării foarte bune.
Ștefan Hărșan Farr: Multe companii folosesc aplicații legacy care sunt pline încă de SQL injection.
Am descoperit recent într-o carte un exemplu referitor la securitate. Multe site-uri permit încărcarea de poze, dar, de fapt, se încarcă un script care face ca poza încărcată de utilizator să devină publică. Practic, se putea citi calea publică, iar dacă făceai un call pe poza respectivă și mai puneai niște parametri, puteai interoga mașina, unde se puteau executa diverse acțiuni. Ați văzut ceva similar?
Ciprian Sorlea: Acum 20 de ani, da. Am lucrat în echipe focalizate pe securitate, iar în echipele mele nici juniorii nu făceau greșeli de tipul path disclosure sau încărcare necontrolată. Cu siguranță, această problemă există.
Ștefan Hărșan Farr: Este vorba de o problemă de cross-side scripting, o problemă încă prevalentă.
Pot exista cazuri în care cineva intră în sistemul tău, dar tu nu știi?
Ștefan Hărșan Farr: Da.
Ciprian Sorlea: Prezența unui intrus nu înseamnă doar că persoana respectivă a avut acces la SSH. Poate însemna și că au credențiale sau că au obținut acces pentru a executa anumite lucruri. De exemplu, deoarece s-a adoptat tehnologia Docker cu Kubernetes, dar nu numai, te poți trezi cu sisteme care au rulat soft de mining, deși nu aveau control la infrastructură. Un hacker ține pasul și va exploata o vulnerabilitate ori de câte ori va putea. Există utilitare care au fost create inițial pentru a scana sau a diagnostica, dar acestea au fost folosite nu doar de white hats, ci și de black hats pentru a produce pagube.
Folosiți AI la partea de detectare a atacurilor, Ștefan?
Ștefan Hărșan Farr: Nu prea. Cloudflare are o componentă AI, pentru detectare. În rest folosim Big Data pentru asigurarea securității. Folosim AI în detectarea fraudelor și responsible gambling. AI poate să ajute în ce privește securitatea, dar nu cred că este atât de bun precum este în alte domenii precum recunoașterea vocală.
Ciprian Sorlea: Nici noi nu folosim. AI este în esență o chestie statistică. Îți spune dacă pe baza unor date de intrare răspunsul este A sau B. Ce date ar trebuie să îi dăm unui AI, astfel încât să ne zică dacă un anumit request sau o anumită acțiune este din partea unui atacator sau nu. Cu privire la securitate, AI poate ajuta în două domenii: prevenție (analiza de touchpoint sau de interacțiuni și detecția riscului) sau retrospecție (analiză de loguri). De obicei, afli că ai fost victima unui atac după luni sau ani, ceea ce s-a întâmplat și în cazul unor companii mari. Algoritmii de AI lucrează cu date relativ reduse. Să iei algoritmii de AI din toate data pointurile și să faci retraining, iar apoi un data scientist să găsească algoritmi minune ar fi un proces anevoios.
Cum vor evolua lucrurile în ceea ce privește securitatea sistemelor?
Ștefan Hărșan Farr: Dacă nu se întâmplă ceva interesant și drastic, lucrurile vor merge spre rău. Lupta împotriva criminalilor cibernetici este asimetrică. Ei atacă într-un punct, noi îi scoatem din funcțiune, dar ei atacă în alt punct. Noi pierdem mult timp și energie, iar ei pot face mult rău cu resurse puține. În fiecare an se investesc mai mulți bani în securitatea cibernetică și în fiecare an criminalitatea crește. Vom pierde dacă tendința continuă.
Ciprian Sorlea: Sunt de acord cu Ștefan, dar eu sunt puțin mai optimist și cred că, deși ca specie ne uităm istoria și vin generații care au uitat de problemele de care ne-am lovit, am speranța că, bazându-ne pe infrastructuri gestionate de specialiști, anumite servicii și anumite platforme vor deveni din ce în ce mai sigure. Dacă suntem companii cu servere de birou, vom fi expuși riscului, dar, dacă folosim servicii certificate, vom fi mai puțin expuși. Furnizorii trebuie aleși pentru securitatea pe care o garantează, nu doar pentru prețul pe care îl oferă.