Viskas iš pradžių?

"Windows NT" yra stipriai apšaudoma. Nieko nuostabaus, kad joje, kaip ir bet kurioje kitoje operacinėje sistemoje ar bet kurioje programinėje įrangoje, jų yra. Tik keistas jausmas apima sužinojus, kad jos saugumo sistemą pažeidžia tie patys "vabalai", kurie jau seniai ištaisyti kitose OS prieš keletą metų. Bet kodėl jų niekas neaptiko iki šiol?

"Internet" gyveno "Unix" terpėje, ir "knisliukai" buvo nusitaikę tik į HP, "Sun" ir IBM firmų serverius visiškai ignoruodami tokį vaikiščią kaip NT. "Microsoft" sėkminga marketingo politika pakeitė reikalus, ir "knisliukai" jau 1996-ųjų rudenį pasikniso po NT šaknimis. Kiek ten rado sliekų, baisu net ir pasakyti! Tačiau visus suglumino tai, kad nė vieno jų nebuvo nežinomo. NT tik patvirtino seną posakį, kad "geriau mokytis iš svetimų klaidų". Deja, atrodo, "Microsoft" vyrai nesimoko iš jokių klaidų.

Iš visų kampų pasipylė pranešimai apie "mėlynuosius mirties ekranus" (BSOB), kuriuos sukelia paslaugų ("service") proceso antpuoliai, kai visi sistemos resursai atiduodami vienam procesui, o kiti priversti neribotam laikui užmigti "žiemos miegu". Šio tipo antpuoliams net nereikia žinoti vartotojo ir jo slaptažodžio - "pakaitinamos" TCP/IP protokolo ir OS silpnos vietos.

"Blogiukas" prisijungia TCP ryšiu prie NT ar "Windows 95". Tik tik nustačius ryšį ir dar prieš sinčiant įprastinius duomenis, jis pereduoda pranešimą su įjungtu OOB (Out of Band) požymiu, kuris šiaip naudojamas nurodyti, kad reikia gauti tam tikrą informaciją nelaukiant įprastinio duomenų srauto perdavimo pabaigos. Keisčiausia, kad šiuo atveju nėra jokio duomenų srauto, bet tai netrukdo "nepataisytai" NT sistemai nusidažyti "malonia" žydra spalva iš kurios vienintelė išeitis - iš naujo įkelti sistemą.

Koks šio pavyzdėlio moralas? TCP stekus nėra paprasta rašyti. Iki šiol daugelyje realizacijų teberandamos klaidos. Stabiliausias yra "BSD Unix" TCP stekas ir jo pradiniai tekstai yra gaunami veltui - tereikia savo produktuose paminėti, kad dalis naudojamo kodo yra paimtas Berkeley universiteto. Tačiau "Microsoft" negalėjo "nusilenkti" taip žemai.

Kita tamsioji NT pusė yra DNS ("Domain name Service"), kuri atsako už vardų, pvz., elnet.lt, konvertavimą į fizinius adresus, pvz., 193.217.59.5. DNS serverio įprastinės operacijos yra gauti užklausas ir siųsti atsakymus arba siųsti užklausas ir surinkti atsakymus į jas. o kas bus, jei pasiųsite atsakymą į užklausą, kurios nebuvo? Šypsotės, - ir gerai darote: NT DNS serveris bandys atpažinti išgalvotą ID ir mirs kaip rudens šalnų pakirstas klevo lapas. Panašiai mirdavo IIS 1.0, kuriam bet kurio lankytojo "miklūs" piršteliai galėjo įvesti "Internet" adresą, pvz., "www.aaa.com/..//..". Paprasčiausia buvo "telnet" programa atplaukti per 80 uostą ir pateikti komandą "GET ../.." - ir viskas!

Tai parodo, kaip "Microsoft" programos reaguoja į neteisingus pradinius duomenis. Galima eiti 4 keliais: atmesti neteisingus duomenis; pranešti apie klaidą; deramai "numirti" ir tebeveikti neapibrėžtoje būsenoje. Dauguma pirmenybę atiduoda pirmiems dviem atvejams, - bet tik ne "Microsoft", kuris vis dažniau renkasi ketvirtą kelią.

Tik tik "NT Service Pack 3" ištaisė OOB klaidą, o "knisliukai" pasikniso dar giliau. Prisišvartavus prie 135 uosto leiskit savo dvimečiui sūneliui "pagroti" klaviatūra - ir NT rateliai užsuks CPU užimtumą iki 99%. Vienas iš pataisymų ("patches") užlopė ir šią angą, - bet kas garantuoja, kad jų neliko?

Kita juoda NT pusė, - galimybė gauti privilegijas naudojant "ActiveX", "Java" ar seno gero C++ komponentus. Teoriškai, jie visi turi būti autorių pasirašyti, ir mes galime patikrinti jų "autorių" ir juo "pasitikėti". Blogiau yra tai, kad kartą kuriuo nors "pasitikėjęs", juo automatiškai ir toliau tiki, pvz., prisijungęs prie "Microsoft" WWW svetainės be perspėjimo tau prisiunčiama krūvelė "ActiveX" komponentų, nes jų autorius yra patikimas, t.y. "Microsoft". O jei tarp šios firmos programuotojų atsiras ligotos fantazijos žmogus? Vienas tokių "ActiveX" pavyzdžių yra adresu:
http://ww.network-security.com/nt/internet-exposure (nuoroda jau neaktyvi).

Rusas K.Soboliovas sukūrė programą "getadmin". Jis NT branduolyje rado funkcijas, leidžiančias neprivilegijuotam procesui išsiskirti atminties sritis, kurių šiaip neturėtų teisės paimti, ir pakeisti jų turinį. Jų panaudojimo pasekoje, paprasto vartotojo programa gali "įtikinti" NT sistemą, kad ji kažką tikrina ("debug") ir vartotoją pakelti į administratorių rangą. Kitą kartą prisijungęs prie NT sistemos toks vartotojas galės daryti sistemoje ką tinkamas. Ar nuostabu, kad minėta "getadmin" programa pavirto "ActiveX" komponentu? O kad apsigintų nuo jo, "Microsoft" priverstas išleisti "NT Service Pack 4".

NT numato ir vartotojo vardo užrakinimą, nurodant kiek nesėkmingų kreipinių ("logins") yra leistina ir kiek laiko "kabos spyna" ("slowdown" ir žinoma, - negalima užrakinti administratoriaus). Ši galimybė įterpia pauzę tarp bandymų prisijungti prie tinklo. Tačiau bėda tame, kad ši galimybė veikia tik vieno seanso (jungties) metu, ir nieks nedraudžia "blogiukui" vienu metu atsidaryti bent 10 kanalų ir bandyti atakuoti kiekvienu jų. Daugiau informacijos apie tai yra http://www.secnet.com ir http://www.L0pht.com svetainėse.

Liepos 14 d. "Microsoft" pripažino, kad saugumo problemų turi visos NT versijos. Supaprastinus galima pasakyti, kad galima dešifruoti visus "LAN Manager" ir NT vartotojų vardus bei slaptažodžius bet kurioje NT darbo vietoje, serveryje ar domene. "Microsoft" kaltės prisipažinimas yra adresu:
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40/hotfixes-postSP3/Imfix/Q147706.txt (adresas jau neaktyvus)

Šio dokumento esmė, kad už tikrą saugumą reikia mokėti, - ir labai brangiai. "Microsoft" tegali garantuoti saugumą tik tuo atveju, jei visi serveriai ir darbo vietos tėra NT. Bet ar rasite tokį tinklą, kuriame nebūtų "Windows 95" ar net "Windows 3.x"?

Susirūpinot savo serverio saugumu? Ir teisingai darote! O kol sprendžiate, ką daryti, nukreipkite savo naršyklę vienu šių adresų:
http://www.iss.net
http://www.nit.com
http://www.axent.com
kur galėsite surasti nuorodas į programinę įrangą NT saugumui ir "knisliukų" suvaržymams padidinti.


Dirbtinis intelektas kare
Vartiklis