Nu de puține ori am avut ocazia să constat sau să mi se aducă la cunoștință faptul că un angajat sau un vizitator în cadrul unei companii a reușit să plece cu tot cu codul sursă al unei aplicații pentru realizarea căreia se investiseră sume importante de bani.
Astazi, voi vorbi despre cum ne putem proteja in fata unor astfel de pericole ce sunt destul de dificil de controlat, mai ales daca privim prin prisma faptului ca angajatii, sau o parte dintre acestia, trebuie sa aibe acces total la codul sursa al software-ului ce se dezvolta. Totusi, despre acel trebuie vom vorbi in detaliu pentru ca este relativ si se poate controla. Cel putin pana la un anumit punct, acest lucru se poate face fara investitii substantiale.
1.Protectia echipamentelor hardware
Un prim pas ce trebuie facut este sa nu furnizati detaliile array-ului Raid pe care sunt stocate datele (asta presupunand ca nu utilizati Raid 1 ci o combinatie gen 5+0, etc. Acest lucru face ca inlocuirea hdd-urilor cu unele similare si sustragerea celor care detin o copie sa fie nefolositoare necunoscandu-se modalitatea in care informatia este stocata.
Protectia incaperii si a sistemului de backup cat si limitarea accesului din exteriorul sistemului de backup sunt foarte importante. Asigurati-va ca aceste incinte sunt suficient de bine monitorizate iar alarmele de acces neautorizat pot ajunge la dumneavoastra in timp real. Nicio persoana nu trebuie sa aibe acces la sistemul automat de backup fara aprobare prealabila iar, dupa aprobare si efectuarea intretinerii, parolele de acces trebuie schimbate.
2.Protectia fata de programatori
Nicioada nu mi-a placut sa cred ca lucrez cu oameni in care nu pot avea incredere. Totusi, observand problemele altora, consider ca preventia are intotdeauna un cost exponential mai mic decat identificarea si recuperarea prejudiciului, in cazul in care se mai poate face acest lucru.
Prejudiciul de imagine insa nu va putea fi niciodata recuperat. Astfel, foarte multe companii impamantenesc modalitatea de dezvoltare veche, din anii 2000, unde aproape orice aplicatie software era reprezentata de un monolit iar, pentru a putea compila / verifica / testa orice modificare, accesul la intreg codul sursa era necesar pentru a asigura o viteza crescuta de dezvoltare.
Acest lucru nu era obligatoriu sa se intample nici atunci si cu precadere nu este obligatoriu nici acum. Daca aveti astfel de aplicatii monolit, nu va sfiiti sa solicitati ajutorul consultantilor care va pot crea un plan de modificare astfel incat sa o puteti imparti in componente multiple si independente pana la un nivel de risc acceptabil pentru dumneavoastra.
Modalitatea de protectie consta in limitarea accesului programatorilor la codul sursa doar asupra componentei sau componentelor la care lucreaza la un moment insa nicioadata la intreaga aplicatie.
Aceste componente pot fi: o librarie dinamica, un microserviciu web, o interfata utilizator, etc ceea ce face sustragerea neautorizata de cod sursa mult mai complicata si intotdeauna va fi nevoie de mai multe persoane, cu nivele de acces diferite, pentru a realiza acest lucru crescand totodata posibilitatile de identificare si prevenire.
Daca ne uitam totusi la acest model si din prisma dezvoltarii ulterioare, acest model ne permite sa reutilizam complet componente dezvoltate anterior si testate. Orice modificare devine mult mai simpla si, atat timp cat nu se intervine in procesul de comunicare intre componente, testarea se poate efectua doar asupra componentei afectate de modificare. In practica, business logic-ul va dicta insa daca si alte componente vor fi afectate cu toate ca nu ar trebui sa se intample daca nivelul de izolare este suficient de bine ales.
3.Protectia cheilor de acces
O metoda ce creste siguranta de acces asupra unei resurse (hardware/software) este reprezentata de accesul prin intermediul unor chei de acces. Acestea au avantajul ca asigura o criptare a mesajelor mult imbunatatita si, in acelasi timp, se poate controla accesul fiecarui utilizator care ar trebui sa aibe acces la un sistem. Revocarea unei chei de acces este foarte usor de infaptuit iar protectia fata de o parola obisnuita este exponential imbunatatita.
Totusi, cheile de acces ar trebui pastrate in siguranta si inlocuite la un interval de timp regulat. Generarea acestora si inlocuirea lor poate fi facuta in mod automat.
Ca masura de protectie suplimentara, se recomanda criptarea cheii de acces folosind o parola.
In cazul in care un microserviciu din aplicatia dumneavoastra trebuie sa se conecteze la un serviciu suplimentar (ex: baza de date, etc) este indicat sa existe o modalitate de configurare astfel incat programatorii sa nu poata avea acces la cheile de acces din mediul de productie. Pentru o aplicatie web, acest lucru se poate efectua extrem de simplu configurand serverul http sa furnizeze aceste chei. Exista totusi riscul ca, in cazul in care un programator ajunge sa adauge un cod malitios ce nu este identificat de echipa de code review sau de devops, sa permita acestuia sa identifice cheile de acces. Din acest motiv, existenta unui firewall care sa limiteze accesul catre orice resursa doar dintr-un mediu cunoscut ca fiind sigur este esentiala.
4.Backup-ul
In vederea cresterii sigurantei afacerii dumneavoastra, existenta unui sistem de backup este esentiala. Sa privim putin asupra unui scenariu ce a devenit extrem de frecvent astazi: o persoana din departamentul de vanzari, sa spunem persoana de decizie, care are pe calculatorul personal toate contractele semnate cu clientii in ultimii 5 ani, ajunge sa acceseze un virus ce cripteaza tot continutul hard disk-ului iar atacatorul va solcitia o rascumparare pentru a decripta acele date. In acel moment, v-ati dori sa aveti un backup nu zilnic sau saptamanal ci inclusiv cel annual ar fi de ajutor. Insa, nu de putine ori am observat ca acest aspect este complet ignorat ceea ce creaza o bresa de securitate extrem de ridicata.
Solutia de backup in acest caz trebuie sa aibe posibilitatea sa ruleze intr-un mediu verificat si sigur neexistand posibilitatea ca orice calculator conectat la reteaua locala sa se conecteze la acesta ci doar in sens invers. Pastrarea unui backup incremental este iarasi o solutie ce iti permite sa te intorci in timp si sa recuperezi orice document sau informatie inainte de a fi afectata de o bresa de securitate.
Nu am discutat insa de cazul, foarte des intalnit, in care programatorii dintr-o companie lucreaza fara un sistem de versionare folosind share-uri de retea. In cazul in care orice calculator din acea retea este infectat cu un astfel de virus, inclusiv informatia stocata in share-urile de retea la care acesta avea acces se va cripta.
Emailurile, logurile de acces, etc nu trebuie sa lipseasca din solutia de backup. Datele din sistemul contabil trebuie si ele protejate, etc.
Privind insa toate aceste aspecte, putem spune ca solutia de backup devine plasa noastra de siguranta in cazul unei situatii nedorite. Costurile implementarii unei astfel de solutii nu este mare si se poate realiza inclusiv cu solutii software open source. Singurul cost va fi in puterea de procesare si capacitatea de stocare a unui sistem de backup.
Accesul la un astfel de sistem nu trebuie permis niciunei persoane din cadrul companiei in afara personalului de conducere. Este indicat ca parola de acces sa fie impartita in bucati si doar mai multe persoane sa poata forma parola. Accesul in incaperea sistemului de backup trebuie limitat si permis accesul doar utilizand cardurile de acces a doua persoane anterior definite.
Concluzii. Nu vă sfiiți să cereți ajutorul consultanților de securitate
In concluzie, urmarind toate aceste puncte reusim sa intelegem riscurile la care suntem supusi zilnic iar aceste riscuri vin, de cele mai multe ori, din interior cu sau fara intentie facand preventia sau identificarea lui extrem de grea daca nu chiar, in unele situatii, imposibil de determinat.
Nu ar trebui sa fie greu de luat o astfel de decizie iar toti angajatii ar trebui sa inteleaga ca este in scopul protejarii locului lor de munca. Trebuie insa explicat tuturor pentru a nu crea ingrijorari suplimentare.
Daca veti reusi sa implementati aceasta metodologie, veti putea fi mai siguri ca proprietatea intelectuala ramane per total in cadrul companiei dumneavoastra si va va fi mult mai usor sa obtineti standardul de calitate ISO/IEC 27034.
Daca totusi intampinati probleme sau nu stiti cum sa abordati aceasta problema, nu va sfiiti sa cereti ajutorul consultantilor de securitate. Cantariti suficient de bine riscurile la care va supuneti si decideti cand astfel de masuri trebuie luate. Pentru un start-up inovativ, existenta unor astfel de masuri de securitate inca de la inceput este esentiala tocmai pentru faptul ca orice inovare este extrem de valoroasa.
Carmen Ciulacu, CEO şi Co-fondator, Digital Stack – dezvoltator de cursuri personalizate de IT pentru angajaţi: „Oamenii sunt în centrul activității noastre. Am reușit să redefinim educația în IT din România”
Digital Stack a devenit, încă din 2019 – anul lansării, un partener esențial pentru companiile care își doresc să rămână competitive într-un mediu aflat în