mtgox, bitcoin, linux si cod sursa

Miercuri, 5 Martie 2014 | 1 Comentariu

MtGOX, un BitCoin Exchange, a murit acum câteva zile. Problema a fost cauzată de nişte băieţi cu foarte mult timp liber care reuşit să obţină acces la serverele companiei. De ce s-a întâmplat asta? Păi, unii spun că pe sisteme rula Gentoo Linux şi administratorii nu au actualizat sistemul de operare. Şi mai rulau şi nişte cod cu probleme … susceptibil la XSS sau MySQL Injection.

< nanashi____> was rootkit on gox
< nanashi____> idiot french used gentoo but not update on server
< nanashi____> could exploited”

mtgox-bitcoin-code

Lucrurile sunt cât se poate de nasoale, pentru că au plecat de pe servere cam 20 de GB de date, inclusiv copii ale paşapoartelor unora dintre clienţi. Hackerii au publicat şi o parte din codul sursă, semn că au avut acces la contul de root de pe server.

Cei care au avut răbdare să parcurgă codul au identificat câteva probleme, şi anume:

– There’s a class with the name of the application. (Issues: Scope, SRP)
– There’s a class with 1708 lines of code. (Scope)
– There’s a switch-case statement that runs over 150 LOC (readability, maintainability)
– There’s a string parsing function in the same class as transaction processing (Separation of concerns)
– There are segments of code commented out (are they not using source control?)
– There’s inlined SQL (maintainability, security)
– There’s JSON being generated manually & inline (SoC, DRY)
– There’s XML being generated manually & inline (SoC, DRY)
– To sum up function _Route_getStats($path): XML production, JSON production, file writing, business logic, SQL commands, HTTP header fiddling, hard coded paging limits, multiple exit points…
The amount of refactoring needed here to bring this code up to acceptable quality is simply staggering.

O altă “bancă” de acest tip a fost spartă şi închisă de hackeri. Este vorba despre Flexcoin – nu cred că le mai merge site-ul … Detalii despre incident aici.

“On March 2nd 2014 Flexcoin was attacked and robbed of all coins in the hot wallet,” the statement read. “As Flexcoin does not have the resources, assets, or otherwise to come back from this loss, we are closing our doors immediately.”

Este oarecum jenant, dar trebuie trase nişte învăţăminte din toate aceste accidente online:

1. Dacă foloseşti un sistem de operare freeware, trebuie calculat că este obligatoriu să ai pe cineva priceput (de preferinţă un fost hacker) care să se ocupe de actualizarea tuturor componentelor software.
2. Dacă aplicaţia ta rulează pe nişte servere shared, e bine să te gândeşti la o soluţie cu servere dedicate.
3. Este necesar ca cei care scriu codul sursă să fie verificaţi de o echipă independentă, de preferinţă de hackeri cu trecut relevant.

Probleme au avut şi firme mai mari, printre care Yahoo, Linkedin 1 şi Linkedin 2, Twitter, Kickstarter, etc.

Cât despre Bitcoin, la ce anume folosesc? Sigur, înafară de faptul că nu controlează nimeni plăţile şi că se poate face uşor o mică spălare de bani.

Ai o altă opinie? O poți scrie aici!