Cum reacționezi atunci când găsești o gaură de securitate?

O reacție foarte… interesantă din partea unui utilizator ce a găsit o gaură majoră de securitate. Atenție, limbaj elevat :slight_smile:

https://www.reddit.com/r/Romania/comments/56ilmc/ce_aplicatii_se_vor_contura_prin_gov_it_hub/d8jpwkj

GitHub nu e okcupid, nu sunt acolo ca să îmi fac prieteni.

Și da, e de development, d-aia am șters-o. Mai bine să învețe de acum o lecție folositoare, mai ales având în vedere că jegul ăsta o să fie folosit cu date personale în producție.

E trist pentru că puteau măcar să nu lase % la host pentru userul ăla. Mi-e greu să cred că lanțul ăsta de decizii proaste e doar o greșeală care nu va fi repetată.

Abordarea mea ar fi fost, în ordine:

  1. un mesaj în privat celui ce a făcut acel commit
  • și/sau un pull request cu o variantă securizată
  • public shaming după câteva zile, dar fără a demonstra că am fost birjar în ultimii zece ani.
3 Likes

A mai fost o discutie similara pe forum:

Legat de ce era mai sus - cred ca intentia a fost si bad publicity pt. GovITHub.

1 Like

Aparent “descoperitorul” este “Security Bug Bounty Hunter”. Deci ar trebui sa stie mai bine modul corect de a aborda o organizatie in legatura cu security issues. Abordarea a fost in schimb “din topor”/“dau cu bata in balta”. Did not win any friends.

Am vazut ceva similar chiar azi, cu noul film de la Dragos Bucur & co - “Doua lozuri”, aparent facut independent, si diferit de filmele romanesti de arta (in sensul ca e o comedie, nu incearca sa prinda ceva la Cannes etc. O chestie buna IMO). Un grup de "oameni"de pe net s-a apucat sa dea note mici pe IMDB, din nu stiu ce motiv. Pentru un film mic, 300 de voturi cat au dat ei au fost deajuns sa strice nota. S-a mai indreptat intre timp, dar e acelasi gen de atitudine - “las ca-i invat eu cum sta treaba cu lumea reala”.

In alta ordine de idei, “stocarea secretelor”, nu e o problema usor de rezolvat, si clar nu intr-un hackaton in care lumea incerca sa faca ceva ce sa mearga in 12 ore, nu sa scrie codul de productie. Cut the folks some slack.

Who is gcbirzan ? e un coleg din liceu, cu un an mai mare decat mine, niciodata nu m-am lamurit cat de destept e, dar toata lumea il lauda :slight_smile:

2 Likes

Tipul am înțeles că este faimos printre cei mai bătrâni din industrie (sysadmini) pentru atitudinea pe care o are. Așa e omul, nu are treabă cu publicitatea negativă.

În altă ordine de idei, orice developer care a trecut de juniorat ar trebui să știe că nu dai commit la fișiera cu parole și api key-uri. E plin netul cu relatări despre câte date de autentificare pentru AWS sau alte servicii se gasesc pe Github.

@horia141 în cazul de fată soluția e foarte simplă:
cp config.file config.file.dist && echo "config.file" > .gitignore
adică faci un fisier în care ai structura fișierului de configurare cu niște dummy data iar în fișierul de configurare încărcat de aplicație ai datele reale, dar aceasta nu va fi niciodată inclus într-un commit fiindcă l-ai trecut în gitignore.

Și mai e un aspect aici: de ce serverul de MySQL accepta conexiuni de la orice IP? Tocmai pentru că cineva ar fi putut face publice datele de acces, ar fi fost bine ca accesul să fie restricționat.

2 Likes

Tipul stie si programare Python, eu am incercat sa il conving cat de tare e C#, el a incercat sa ma convinga cat de tare e Python.

Eu folosesc Python pentru Machine Learning in rest sunt fan C#.

Oricum amandoi avem ceva in comun, ne place linuxul.

1 Like

si inainte de asta git rebase -i 'e8d4930', scot parola complet din commit, git push --force-with-lease si apoi history-ul va fi clean.

Plus pentru future code readers nu voi mai lasa clues despre formatul la ce username/parola/config folosesc.

Sau BFG/filter-branch: https://help.github.com/articles/remove-sensitive-data/

Dar problema nu e neapărat faptul că au ajuns datele în repo - la o adică este, totuși, rezultatul unui hackaton - ci reacția respectivului utilizator :slight_smile:

din BFG example:

git push origin --force --all

That can screw things up :slight_smile:

on topic: I think everyone is missing the elephant in the room - bad publicity? someone doesn’t like that project? this literally started a shit storm si toate comentariile pe langa de fapt vor sa demonteze proiectul in sine.

Pfff, asta nu e nimic. Stai să vezi când vor începe partidele să denigreze acest proiect. Atunci să te ții.

Asta cu baza de date este o furtună într-un pahar cu apă.

1 Like

Au sters proiectul respectiv.
M-am uitat peste proictele de pe PHP. Unul este https://github.com/gov-ithub/prietenul-pacientului si foloseste Zend 1. Se vede ca este o aplicatie veche din 2011, probabil adaptata (copyrigt). In plus m-am uitat putin peste “ORM” si nu-mi place ce vad acolo.
Un alt proiect este https://github.com/gov-ithub/govro-authenticator-myaccount si aici partea de php este… https://github.com/gov-ithub/govro-authenticator-myaccount/blob/master/resources/library/functions.php
Am gasit si un proiect mai dragut, in symfony 3.1, cu composer… https://github.com/gov-ithub/eforms/

2 Likes

Nu au si proiecte in C# :frowning:

Interesant ca toate? sunt cu PHP/Java.

J̶a̶v̶a̶/̶S̶p̶r̶i̶n̶g̶ ̶l̶e̶-̶a̶m̶ ̶v̶a̶z̶u̶t̶ ̶f̶o̶l̶o̶s̶i̶t̶e̶ ̶d̶e̶ ̶f̶i̶r̶m̶u̶l̶e̶t̶e̶ ̶m̶i̶c̶i̶ ̶c̶a̶r̶e̶ ̶g̶e̶n̶e̶r̶e̶a̶z̶a̶ ̶a̶p̶l̶i̶c̶a̶t̶i̶i̶ ̶s̶u̶p̶e̶r̶ ̶c̶o̶m̶p̶l̶e̶x̶e̶ ̶p̶e̶ ̶c̶a̶r̶e̶ ̶d̶o̶a̶r̶ ̶e̶i̶ ̶s̶t̶i̶u̶ ̶s̶a̶ ̶l̶e̶ ̶m̶o̶d̶i̶f̶i̶c̶e̶ ̶s̶a̶u̶ ̶c̶i̶n̶e̶v̶a̶ ̶c̶u̶ ̶e̶x̶p̶e̶r̶i̶n̶t̶a̶ ̶_̶f̶o̶r̶ ̶r̶e̶a̶l̶_̶ ̶p̶e̶ ̶J̶a̶v̶a̶/̶S̶p̶r̶i̶n̶g̶. (doar un prj. pare in scris in Java)

I wonder why no Node.js

EDIT:

on a 2nd look deja am vazut lots of Python (yay), ceva Ruby si JS.

Nu sunt afisate corect tag-urile de limbaj, spre exemplu https://github.com/gov-ithub/cazier-auto este Ruby, dar apare ca HTML pe github.

Din ce știu, oamenii care se pricep la Node.js câștigă lejer peste 3000 de euro pe lună. Nu cred că și-au depus mulți candidatura pentru o bursă.

Din ce știu, oamenii care se pricep la Python câștigă lejer peste 10000 de euro pe lună. Nu cred că și-au depus mulți candidatura pentru o bursă. :joy:

Eh, nu e chiar așa. Python e pe piață de peste 20 de ani, sunt mulți developeri care se pricep și la el. Pe când Node.js e mai nou, mai puțini programatori plus că mulți s-au specializat pe el.

Consider ca altele sunt prioritatile:

  1. aplicatia sa poata fi folosita la nivel national, sa nu pice serverele
  2. sa nu existe gauri de securitate, fara parole prin fisiere ce pot fi accesate din exterior
  3. limbajul folosit sa fie unul cunoscut astfel daca e nevoie de a mari considerabil echipa, sa existe specialisti pe piata, eventual deja sa se stie plusurile si minusurile limbajului
  4. sintaxa sa fie de actualitate… imi pot da cu parerea la php si 2 proiecte n-au ce cauta acolo… PHP 7? SOLID?
  5. https://github.com/gov-ithub/RoadRo_iOS parca existau deja aplicatii dezvoltate pe tema asta, nu de guvern, dar cred ca era mai rentabil un parteneriat cu firmele respective, au totusi o baza de date de incidente, de utilizatori si au deja in desfasurare cazuri de incidente raportate

Si abia dupa poti vorbi de Node.js… :smiley:

Contul de github a lui gcbirzan https://github.com/gcbirzan

1 Like

Si aia l-au sters de pe gov it :facepalm: