Quantcast
Channel: sys.portal
Viewing all articles
Browse latest Browse all 594

Apple: goto fail

$
0
0

Tipične računalne pogreške nastaju kodiranjem u brzini i uz nedovoljno pažnje. Srećom, mnoge od tih pogrešaka bivaju otkrivene već prilikom kompajliranja, kada kompajler prijavi grešku ili upozorenje. One koje se provuku prolaze kroz dugotrajnu proceduru provjere kvalitete i većinom bivaju ispravljene prije puštanja proizvoda na tržište. Taj proces nije idealan, no ovo što se dogodilo tvrtki Apple poprilično je nezgodan i zaista opasan problem.

Apple je nedavno u tišini izdao zakrpe za iOS i odbio ih detaljnije komentirati. Tako je samo zaintrigirao stručnjake za sigurnost koji su istražili problem i otkrili opasan propust u kodu koji verificira ispravnost SSL certifikata, a koji se nalazi u Appleovom kodu kojim je zamjenjen stari kod iz OS X 10.7 i starijih.

Ovo je izvorni kod problematičnog mjesta:

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
uint8_t *signature, UInt16 signatureLen)
{
OSStatus err;
...
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
...
fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}

Vjerojatno vam je, ovako ponuđen na pladnju, problem odmah iskočio pred oči: programer je dva puta za redom napisao "goto fail;".

Na sumnju da je riječ o nedovoljno iskusnom programeru dovodi nas činjenica da je koristio naredbu za "pacere"goto kojoj programeri pribjegavaju tek onda kada logiku ne mogu zadati "normalnijim" grananjima, a želja za izbjegavanjem vitičastih zagrada za označavanje bloka naredbi, koja bi ovaj copy&paste problem eliminirala, dovela je do situacije u kojoj se naredba viška bespogovorno izvršava jer nije dio niti jednog uvjeta i tako faktički zaobilazi kontrolu SSL certifikata.

Krajnji rezultat je opasan sigurnosni propust u kojem svatko može podvaliti bilo kakav lažni SSL certifikat, a računalo/telefon će ga "progutati", otvorivši tako široku cestu malicioznim namjerama nepoznatih osoba.

Rješenje problema je što brži update OS-a na telefonima i uskoro na računalima, a u međuvremenu je moguće malo pomoći izbjegavanjem korištenja Safari browsera (ali istu rutinu koriste i drugi Appleovi proizvodi, odnosno korištenjem Open Source rješenja (Firefox, Thunderbird...) za komunikaciju s vanjskim svijetom.

Detalje o problemu ima Sophos, a na blogu ImperialViolet pronaći ćete detalje o softverskom propustu.


Viewing all articles
Browse latest Browse all 594

Trending Articles


FORECLOSURE OF REAL ESTATE MORTGAGE


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


INUMAN QUOTES


Sapos para colorear


Patama Quotes : Tagalog Inspirational Quotes


5 Tagalog Relationship Rules


Re:Mutton Pies (lleechef)