Jump to content
Vehuiah

Cum e sa lucrezi pe un rol de AppSec?

Recommended Posts

Salutare, mi-a crescut interesul in ultimii ani sa fac o tranzitie spre un rol de Application Security si m-ar ajuta daca aveti experienta pe partea asta sa-mi spuneti cum e. M-ar interesa detalii de genul: in cat timp te plafonezi, in cat timp te obisnuiesti cu workflow-ul, cam cat % din workflow tine de a rula tool-uri si cam cat e manual, ce ar putea fi automatizat si nu este momentan, ce parere au clientii in general de serviciul asta, samd.

 

Eu am experienta de programare mai multa decat media celor din securitate, am dezvoltat tot felul de programe, web apps, aplicatii android, etc.

Pe partea de securitate am lucrat in domeniu si am acumulat o gramada de cunostinte in tipuri de vulnerabilitati si cred ca pot fi mult mai creativ decat majoritatea, insa pe partea de testare nu am o fundatie solida (am reusit sa iau cateva bounty-uri pe bugcrowd dar nimic impresionant)


Din toata experienta mea mi se pare cel mai eficient sa lucrez direct cu developerii si sa detectez posibilele vulnerabilitati direct in cod inainte de a intra in productie. Cred ca daca as lucra in felul asta m-as simti mai implinit decat daca incerc sa obtin admin pe IP-ul unui client 2 saptamani si apoi trec la altul.


Astept pareri si sfaturi, multumesc!

Edited by Vehuiah
Link to comment
Share on other sites

Salut, poti lucra drept consultant sau intern, pentru firma la care lucrezi, banuiesc ca te referi la scenariul cel din urma.

Mie mi se pare foarte OK, dar conteaza mult ce "suport" primesti din partea firmei, atat din partea managerului cat si de mai sus. Mai exact, conteaza cat de mult pretuiesc ei securitatea si cat de mult vor sa investeasca in asta. Daca partea asta e la inceput, o sa fie mai greu, dar cu timpul se aseaza lucrurile.

 

E extrem de util, atat sa poti vorbi direct cu developerii cat si sa ai acces la codul sursa si sa faci un "source code assisted penetration test".

De asemenea, intern se pot face multe lucruri, se pot tine training-uri pentru developeri, se pot face scanuri de dependinte si de vulnerabilitati sau orice altceva se gaseste util, de la caz la caz.

 

Fiind la inceput e foarte important sa gasesti un lead si o echipa de la care sa ai ce invata si cu care sa te intelegi bine. 

Nu stiu ce altceva as mai putea spune, zi-mi tu daca vrei sa stii ceva anume. Lucrez de cativa ani astfel si sunt foarte multumit. Ca sa nu mai zic ca nu trebuie sa fac rapoarte, Jira rulz. :D 

Link to comment
Share on other sites

Multumesc,
 

M-am gandit mai bine si as avea niste intrebari dar cum ai spus si tu depinde de firma in functie de "suport" si m-ar interesa defapt care ar fi standardul spre care ar trebui sa aspir.
 

O sa intreb direct, nu ar trebui dar daca ti se par prea intruzive te rog sa ma scuzi.
 

O prima intrebare e daca sa caut firme care sunt listate la bursa sau nu, si ce parere ai de impactul pe care il au shareholderii in decizii de management. Din experienta mea, as tinde spre o firma care nu e listata. Desi orice firma poate urmari profit intr-un mod agresiv, mi se pare ca cele orientate pe actiuni garanteaza ca o sa investeasca in departamente in functie de ce venit aduc ele. Si echipe care nu genereaza venituri cuantificabile in mod direct pot sa ramana "subnutrite" si fara sa aiba suficiente resurse ca sa ofere rezultate/calitate. Crezi ca ar conta pentru o pozitie de application security?
 

O alta intrebare care pare mai ciudata este de ierarhia firmei, cat de mult conteaza felul in care e structurata firma? Am citit despre niste experimente de la Google in care aveau diferite moduri de a structura echipele pentru a fi mai eficiente, dar in continuare pe piata par sa fie doar firme in care inginerul e muncitorul de la baza si deasupra lui "administratori". Pe mine nu pot sa spun ca m-ar incanta ideea sa am un coleg in echipa care a devenit manager-ul meu si acum are salariu de 50% mai mare pentru ca tine evidenta zilelor de concediu si se ocupa de lucruri care pot fi facute de oricine. Mi se pare ca nu este cel mai eficient fata de workflow, poate persoana aia poate genera 10.000 euro in timpul in care el trebuie sa se ocupe de management, sa faca bugetul si ce mai trebuie facut. Si imi lasa impresia ca daca vreau sa fac mai multi bani singura optiune este sa preiau responsabilitati pe care nu le vrea nimeni, si ma asteptam sa preiau responsabilitati pe care nu le poate face oricine. Stii cumva daca este ceva mai bun decat ierarhia clasica de "inginer < manager < director < executiv"?


Cum sunt procesate ideile noi de catre management? Si tu daca ai fi parte din management cum le-ai procesa (care ar fi idealul)? Am fost intr-o situatie in care erau o gramada de propuneri de a schimba workflow-ul si de a imbunatati serviciile insa nu se putea face nimic fara aprobare de la upper management. Si pe masura ce se re-transmitea propunerea se pierdea cumva din esenta ei ca la telefonul fara fir si la sfarsit nu se rezolva nimic.


Cam cat de mare este bariera de cunostinte intre ingineri si management? Poti sa vorbesti liberi sau trebuie sa explici?


Cum se masoara performanta cuiva? Si daca atunci cand se masoara, se bazeaza pe factori care nu erau sub controlul total al testerului? Daca se masoara in functie de frecventa bug-urilor gasite sau in functie de severitatea lor, nu ar fi just pentru ca nu ai control asupra lor, tine de felul in care programatorii au implementat, si sa gasesti cea mai critica vulnerabiltiate sau pe cele mai multe nu inseamna ca esti cel mai eficient sau cel mai bun.


Cum se procedeaza daca un angajat nu are o performanta buna in cazul in care au fost niste obiective nerealiste? Nu mi s-ar parea ok daca un director propune o crestere de X% si echipei ii este imposibil sa o ofere, sa isi piarda din bonus sau alte beneficii.

Membrii din echipa ta (sau altele) de AppSec au cativa ani de experienta pe rol sau mai multi? Daca majoritatea membrilor au putini ani de experienta pe rol, si mai toate persoanele vin si pleaca des pare mai degraba un "stepping stone" catre un alt job, sau e ceva in neregula. Iar daca mai toti membrii au foarte multi ani pe rol eu nu cred ca este ideal pentru ca exista riscul sa se plafoneze si sa scada moralul echipei sau rezultatele. Ce parere ai?


Cum se prioritizeaza taskurile? Si daca sunt unele care nu ajung sa fie facute? Mi s-ar parea ideal sa existe o relatie client-echipa prin care sa se faca clare lucrurile astea dar in lipsa unei discutii clare se ajunge sa se prioritizeze in functie de riscuri, vectori de atac, etc. In cazul in care se prioritizeaza dupa risc de cele mai multe ori raman la urma task-urile cu risc foarte mic sau care adauga foarte putina valoare pentru client, se proceseaza mereu toate?


Ce separa team leader-ul de ceilalti? Cata experienta si in ce l-a ajutat sa fie ales ca team lead? Nu ca as vrea sa fiu team-lead insa cred ca sunt importante criteriile dupa care este aleasa persoana.


Daca echipa ar primi mai multe resurse, ar avea o performanta mai buna? Asta este inspirata din experienta, am fost intr-o echipa care nu primea suficiente resurse sa-si faca treaba calumea. Insa pe AppSec nu cred ca este cazul sa fie asa, dar am zis totusi sa intreb.


Ce iti impacteaza performanta? Daca ai avea un volum mai mare de munca ar rezulta intr-o calitate mai scazuta? Sau este ceva in afara controlului care te poate afecta negativ? De exemplu, daca se fac angajari si trebuie sa tii interviurile inseamna ca nu mai poti sa lucrezi la fel de mult, se ia cumva in calcul cand se masoara performanta sau se presupune la sfarsit de an ca aia a fost performanta ta si se compara cu a altora care nu au avut la fel de multe responsabilitati?


Daca sunt lucruri care ar putea imbunatati workflow-ul, de ce nu sunt implementate deja? De exemplu daca ar putea fi facut un script care sa automatizeze un task, a carui implementare ar dura 1 zi dar care folosindu-l s-ar economisi 10 zile pe an, care ar fi motivele pentru care nu s-a facut, e volumul de munca prea mare, nu exista acces pentru echipa, nu exista cunostintele necesare


Indiferent de raspunsuri mi se pare suficient faptul ca nu faci rapoarte :D

Multumesc inca odata!

Edited by Vehuiah
highlighted the questions
Link to comment
Share on other sites

"O prima intrebare e daca sa caut firme care sunt listate la bursa sau nu, si ce parere ai de impactul pe care il au shareholderii" - Nu cred ca e o anumita regula. As putea zice doar ca de preferat sa nu fie o firma/startup la "inceput de drum". E posibil ca aici sa fie focusul pe dezvoltare, vanzari si mai stiu eu ce. Ulterior, pe masura ce creste, creste si interesul pentru securitate.

 

"Cat de mult conteaza felul in care e structurata firma" - Cred ca nu e important, ci mai degraba e important ce fel de oameni sunt acolo. Daca sunt oameni in regula, care nu sunt aroganti si nesimtiti cred ca totul o sa mearga bine.

 

"Cum sunt procesate ideile noi de catre management" - Cred ca in general e recomandat ca oricine din firma sa vina cu idei noi, sugestii si solutii la problemele existente. Daca o persoana nu aduce astfel de idei, va fi considerata un "muncitor" simplu si va avea sanse mai mice de avansare. Eu consider ca orice angajat care vrea sa "creasca", trebuie sa arate ca poate si sa se implice. 

 

"Cam cat de mare este bariera de cunostinte intre ingineri si management" - Depinde foarte mult de la caz la caz. De fapt intrebarile pe care le pui aici sunt foarte bune, dar nu au un raspuns concret. Eu unde lucrez acum am manageri cu cunostiinte tehnice foarte bune si nivelul tehnic ajunge pana sus de tot. De fapt, in cazul meu, chiar si CEO-ul a fost om foarte tehnic in trecut. 

 

"Cum se masoara performanta cuiva? Si daca atunci cand se masoara, se bazeaza pe factori care nu erau sub controlul total al testerului" - In general, la firmele la care am lucrat, exista mereu un program de "performance management". De obicei, la inceputul unui an se discuta si se stabilesc niste lucruri cu fiecare persoana in parte, cu ce anume vrea sa realizeze. Iar la finalul anului se discuta in functie de cum au evoluat lucrurile. Nu a fost niciodata cazul sa conteze cate vulnerabilitati si ce severitate am raportat.

 

"Cum se procedeaza daca un angajat nu are o performanta buna in cazul in care au fost niste obiective nerealiste" - Unele obiective pot fi nerealiste de la inceput, altele pot deveni imposibil de realizat pe parcurs. Nu e nimeni nebun sa nu inteleaga acest lucru, deci nu o sa fie astfel de probleme. Legat de anii intr-o echipa ar putea fi o lunga discutie. Sunt persoane care prefera sa faca schimbari, de obicei pentru un salariu mai mare. Dar sunt si persoane care prefera stabilitatea si confortul unei singure firme. Eu vad ca ideal un astfel de mix, cu ambele categirii de persoane.

 

"Cum se prioritizeaza taskurile? Si daca sunt unele care nu ajung sa fie facute?" - In mediul AppSec, prin task, cred ca te referi la un pentest/code review/architecture review sau astfel de lucruri. Daca e intr-un mediu intern, intr-un fel, clientii (cum e in consultanta) sunt de fapt echipele de development. Cumva echipa AppSec, intern, lucreaza pentru ei. Cum? Depinde de la caz la caz si in functie de necesitati si timp disponibil. Pe scurt, echipa de AppSec trebuie sa faca cat de mult poate ca produsele dezvoltate sa fie cat mai sigure.

 

"Ce separa team leader-ul de ceilalti? Cata experienta si in ce l-a ajutat sa fie ales ca team lead" - Nu te ajuta cu nimic sa fii team lead sau manager de multe ori. Ca salariu, nu cred ca e o mare diferenta, poate sa nu fie deloc. Dar in plus sunt niste responsabilitati. De obicei, team lead e o persoana cu mai multa experienta, fie in domeniu, fie in compania respectiva. Pentru o echipa interna de AppSec e foarte important ca persoana sa fie cineva din companie deoarece sunt necesare multe discutii interne, cu tot felul de departamente, iar cineva de mai mult timp in firma poate avea avantaje in astfel de discutii cunoscand oamenii din firma.

"Daca echipa ar primi mai multe resurse, ar avea o performanta mai buna" - Da, clar, ar putea face mai multe lucruri. Ar fi un mic pas mai dificil la inceput, pentru onboardingul noului/noilor colegi, dar beneficiul pe termen lung a foarte mare, mai ales daca echipa colaboreaza bine.

 

"Ce iti impacteaza performanta?" - Depinde ce intelegi prin performanta, daca e vorba de cate vulnerabilitati ai gasit si cat de bine ai testat un proiect, cam orice in plus ti-o afecteaza. Mai exact daca ai 4 ore de meetinguri intr-o zi, vei putea testa doar 4 ore si nu mai ai aceleasi rezultate. Daca tii interviuri, de asemenea, necesita timp. Si orice altceva. DAR, oamenii cu care se discuta performanta inteleg aceste lucruri si stiu ca nu le faci de placere. Stiu ca sunt necesare. Si ajuta foarte mult pe alte zone, nu neaparat direct tehnice. Pana la urma scopul tau ca angajat AppSec e ca produsele sa fie mai sigure, iar prin discutii legate de security in meeting-uri sau angajari bune, ajuti cu siguranta la acest 'produs final'. 

 

"Daca sunt lucruri care ar putea imbunatati workflow-ul, de ce nu sunt implementate deja" - Oh, automatizarile sunt extrem de utile, dar cineva trebuie sa le faca. Mi-ar placea sa am automatizare lucruri dar... nu imi place sa fac astfel de lucruri si oricum nu am timp de asa ceva. Si din pacate e foarte greu de gasit pe cineva care sa faca astfel de lucruri. Daca exista posibilitatea e ideal, trebuie doar asigurat faptul ca munca implicata pentru automatizare nu e mai mare decat munca necesara pentru a face manual acele lucruri. Mai general, ca beneficiul sa fie mai mare decat efortul necesar implementarii.

 

Am incercat sa raspund cu cateva idei, dar intrebarile sunt destul de generale si pot sa difere extrem de mult de la caz la caz. Orice ar fi, comunicarea e cheia. Pentru cei la inceput de drum poate fi diicil, exista persoan tehnice foarte bune dar care se plafoneaza din aceasta cauza. Daca isi iau inima in dinti si VORBESC despre ce le place si ce nu, vin cu idei, discuta atat cu managerul cat si cu celelalte echipe, lucrurile pot merge foarte bine. Nu va fie teama sa comunicati (bine, nici sa exagerati sau sa o dati in aroganta). Incercati sa intelegeti celelalte persoane/echipe cu care discutati. E important.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...