Архива за 'security' категорију

U Srbiji je zajemčena je zaštita podataka o ličnosti kao i tajnost pisama i drugih sredstava opštenja… a onda je mrmot zavio čokoladu u foliju

July 25, 2008

Beograd, 25.07.1984. Vest sa Internodijuma je jutros prostrujala srpskim Internetom i blogovima neviđenom brzinom. Dat je niz negodujućih komentara sa kojima se bez rezerve slažem. Ne mogu reći da ovo nisam očekivao u jednom momentu. Regulativa u USA, nekih zemalja EU i UK već neko vreme ograničavaju svoje građane ovakvim praksama. Hoće li ovo naše negodovanje rešiti taj problem? Gotovo sigurno ne. Poduže su naši sugrađani toliko apatični da kakav god vid represije pseudodemokratske vlasti se sprovodio svi će samo ćutati(meni su još na prvoj godini prava profesori rekli da demokratija ne postoji). Valjda su se izduvali onog oktobra ili misle da je svaki trud besmislen jer na kraju opet neko sprovede represiju. Fino. Gomila blogera, geekova ili običnih korisnika Interneta će neko vreme pisati i buniti se. A onda će opet zavladati tišina kao i za sve do sada. I šta onda? Kripcija bato. Ljudi me gledaju belo kada im kažen da digitalno potpisujem poruke, da koristim kriptovanje za emailove, da su mi svi čatovi preko Jabbera kriptovani. Kažu paranoičan sam. Paranoik je čovek koji samo malo bolje shvata šta se dešava oko njega. Iskreno, mislio sam da ovaj "novi" blog započnem malo drugačijim tekstovima. To će sada morati da sačeka. Namera mi je da u nizu od nekoliko tekstova pokažem ljudima kako se koriste napredne i manje napredne tehnike kriptovanja svega živog.. Kako da kriptujete ono što gledate u svom browseru. Kako da kriptujete podatke na hard disku. Kako da kriptujete hard disk. Ma kako da kriptujete sopstvene misli.  

Da se razumemo. Sasvim je opravdano presretati razgovore i Internet aktivnost manje ili više opravdano sumnjivih pojedinaca ili grupa. Ali tek kada se utvrdi da je tako nešto potrebno. Ovo što ovde imamo jeste konstantno praćenje svih i svega. Naravno, daleko od toga da će neko biti zainteresovan za to šta pričam sa svojom devojokom preko Jabber-a. Ali nije poenta u tome. Problem je što se beleži svaka aktivnost bez obzira da li je maliciozna ili ne. Iz onog što saznajem o sličnoj aktivnosti u DE ili UK znam da čak i sa ovakvim regulativama tajne službe i policija imaju probleme da prate aktivnost korisnika online. Nemačka obaveštajna služba poprilično negoduje što ne može da prati Skype razgovore.

Jedan moj prijatelj mi često kaže da je sav taj trud da se neke privatne informacije sakriju uzaludan. Pre ili kasnije OZNA sve dozna, kaže on. Moguće. Ali zašto joj ne otežati to saznavanje?

Pitam se samo kada će u kod nas doneti zakon i nelegalnosti ključeva za kriptovanje jačih od 256k ili za skrivanje istih? No, kao što reče jedno jedan mudar čovek, ima načina i načina!

Napredna paranoja OpenSSH servera

May 8, 2008

Posle jedne od diskusija na linuxo.net forumima palo mi je na pamet da sastavim jedno malo uputstvo za povećanje bezbednosti OpenSSH servera. OpenSSH je odlična aplikacija za udaljeni pristup računarima jer omogućava kriptovanu vezu i potpuni osećaj rada u komandnoj liniji kao na lokalnoj mašini. OpenSSH je projekat, pazi ti to, OpenBSD ekipe. Dakle, postoji više načina da zaštitite svoj SSH pristup od radoznalaca i loših ljudi. Ja ću se ovde koncentrisati na jedan konkretan - sertifikati. Upotreba sertifikata za pristup udaljenoj mašini je jedan od boljih načina da se poveća sveukupna bezbednost servera. Sertifikati se obično koriste za tzv. pristup bez šifre. Naime, da ne biste pamtili stalno svoju šifru kreiraćete sertifikat koji nema šifru i pomoću njega pristupati sistemu. Ovo je loše jer ako neko dođe u posed vašeg sertifikata onda nastaju problemi. Za ovu priliku ću ipak koristiti seritifkat sa šifrom. Dakle, pređimo na posao. # local$ ssh-keygen -t rsa - obavezno unesite šifru u dijalogu za nju # local$ scp ~/.ssh/id_dsa.pub udaljena_masina # local$ ssh username@udaljena_masina # remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # remote$ chmod 644 ~/.ssh/authorized_keys - obavezno ovo uradite jer u suprotnom sistem neće čitati sertifikat nego će tražiti šifru. To je to. Prekinete vezu sa udaljenom mašinom i kada pokušate ponovo da se nakačite dobićete nešto ovako: Enter passphrase for key ‘/home/nightweaver/.ssh/id_rsa’: Unesete šifru RSA ključa i bićete na sistemu. OK, idemo korak dalje. Ukoliko neko nema sertifikat biće prebačen na obično logovanje. Mi to ne želimo. Želimo da samo ljudi sa sertifikatom mogu da pristupe sistemu. Slede momenti napredne paranoje. Pre svega, napravimo korisnika koji ima neko neobično ime. Nešto što će biti teško povezati sa vama. Recimo, gatto. Dakle, imamo korisnika gatto. Prebacimo onaj sertifikat od malopre u home DIR korisnika gatto. Proverimo da li radi tako što ćemo uraditi: ssh gatto@udaljena_masina Ako se traži šifra sertifikata onda je sve OK. Idemo dalje. OpenSSH server ne mora slušati na podrazumevanom portu 22. To je port koji će razni skeneri prvo napadati. Prebacimo taj port na nešto visoko i nestandardno. Recimo: 7000. Ovo sve radim na OpenBSD mašini ali je procedura identična i za FreeBSD i GNU/Linux. Dakle: vim /etc/ssh/sshd_config Pri vrhu datoteke ćete videti liniju: Port 22. Izmenite to u 7000. Sačuvajte izmene i restartujte SSH server. Sada čete se na sistem kačiti na sledeći način: ssh -p 7000 gatto@udaljena_masina a sftp če raditi ovako: sftp -oPort=7000 gatto@udaljena_masina Proverite da li sve radi kako treba. Radi? Sjajno, idemo dalje. Kao što sam već naveo, ukoliko neko nema sertifikat bićemu tražena obična šifra. Ali mi želimo da ti "brute force" pokušaji unošenja šifre budu potpuno onemogućeni. Izmenimo sshd_config podatke da izgledaju ovako: LoginGraceTime 1m PermitRootLogin no StrictModes yes MaxAuthTries 3 AllowUsers gatto Ovako postižemo sledeće: korisnik ima 1m da unese svoju šifru, logovanje root korisnika direktno nije dozvoljeno a na raspolaganju će imati samo tri šanse da unese šifru. Poslednji red je veoma koristan. Samo korisnička imena koja se tu nalaze će uopše moći da priđu SSH serveru. Dakle, čak i da ne koristite sertifikate samo čete korisnikom gatto moći da se ulogujete. Lukavo, zar ne? Idemo dalje. Ukažimo sistemu gde mu se nalate RSA ključevi: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys Isključimo sve ostalo: RhostsRSAAuthentication no HostbasedAuthentication no IgnoreRhosts yes Sledeći redovi su jako bitni. Stavite ovde NO samo ako ste prethodno testirali pristup RSA ključevima. Posto kada ovo prebacite u NO više neće biti moguće ući na sistem običnom šifrom. PasswordAuthentication no PermitEmptyPasswords no Dakle, sada samo korisnik gatto može pokušati da se uloguje i to ako i samo ako ima RSA sertifikat. No, ovo meni nije bilo dovoljno. Želeo sam da čak i ako neko uspe da uđe na sistem ne može tek tako doći do root naloga. Zato korisnika gatto nisam stavio u grupu wheel te samim tim komanda SU nije radila za njega. No, gatto se može prebaciti na nekog drugog korisnika. Napravio sam sebi radni nalog nightweaver koji je član grupe wheel i može postati root. Da vidimo sada malo skicirano kako izgleda ulaz na sistem: A nema sertifikat i ne zna dozvoljenog korisnika –> server - odbijen i pokušaj prilaska A ima sertifikat ali ne zna dozvoljenog korisnika –> server - odbijen i pokušaj prilaska A ima sertifikat, zna dozvoljenog korisnika ali ne za koji korisnik moze da radi SU –> ne može da napravi veliku štetu Putanja do sistema bi onda izgledala ovako: A mora imati sertifikat A mora znati koji korisnik koristi taj sertifikat i koja je šifra sertifikata A mora znati koji korisnik na serveru može da radi SU i koja je njegova šifra A se mora prebaciti na korisnika koji može raditi SU pa tek onda postati root Sve ovo može izgledati dosta komplikovano… verujte mi, nije. Probajte sami pa ćete videti. Kao neko ko se dosta dugo bavi bezbednošču računarskih mreža mogu vam reći da ni jedan sistem nikada neće biti najbezbedniji. Uz dovoljno truda i znanja svaka se zaštita može pre ili kasnije probiti. Ali zašto ne zakomplikovati put do sistema za one kojima tamo nije mesto?

Krakovanje WEP mreža

April 5, 2008

Evo malo zabave za tmurno subotnje popodne. Pošto nam se grad napunio raznim bežičnim mrežama i na sve strane nas zrače (hehe) hajde da malo “zloupotrebimo” neke od tih bežičnih mreža te da se nakačimo na koju dok sedimo u parku ili kafeu koji nije tzv. HotSpot.

Alatke

Tema ovog teksta jeste skoro pa nelegalno kačenje na tuđi AP. Nešto što bi se moglo nazvati dokaz koncepta i služi isključivo u rekreativne i edukativne svrhe. A i za ubijanje dosade dok sedite i čekate devojku koja kasni a imate laptop pri ruci. Dakle, ovo nije lepo raditi i tako to. Neću vam ja biti kriv ako vas neko nalupa što mu se kačite na AP.

Elem, posle ove moralne poruke da se vratimo temi ovog popodnevnog teksta. Šta nam je sve potrebno da bismo izveli ono što želimo?

Jedan primerak laptopa koji, jel’ te, ima wifi karticu i na njemu FreeBSD/OpenBSD ili GNU/Linux Alatka koja se zove AirCrack-NG i koja se nalazi u portovima. Kriptovana bežična mreža – ovom prilikom radimo na WEP kriptovanoj mreži Opciono možete slušati KCEA radio stanicu dok to radite. Apsolutno genijalna stanica koja 24/7 pušta swing i big band jazz. Ništa bolje za oblačno subotnje popodne. Malo teorije

Šta je kog vraga WEP? WEP predstavlja stari i jako loš sistem kriptovanja bežičnih mreža. 3-bitni vektor pod nazivom Inicijalizacioni Vektor (IV) se dodaje paketima na osnovu predefinisanog ključa koji svi klijenti znaju. E, ukoliko neko koristi WEP kriptivanje skoro svaki paket koji generiše klijent ili AP će nam biti od koristi da napadnemo mrežu i dobijemo ključ… ako nakupimo dovoljno paketa… par stotina hiljada paketa.

Alatke za akciju

AirCrack-NG je jedan fin švajcarski nož koji donosi nekoliko jako bitnih alatki za rad. One koje ćemo mi upotrebiti su:

airodump – Hvata IV-jeve aircrack – Krakuje IV-jeve airdecap – Dekodiranje uhvaćenih paketa airreplay – Ovaj je dobar… ubacuje pakete u AP kako bi izveo napad. Pređimo na posao

Prvo moramo naći mežu u koju ćemo upasti. Postoji više načina da to uradimo. Najjednostavniji je da na BSD-u uradite ovo:

ifconfig NIC up scan

Naravno, umesto NIC stavite svoju mrežnu kartu. Ovo će izlistati sve mreže koje hvatate. Ono što nas zanima:

Tip enkripcije: Da li je 64-bit? 128-bit? Na kom je kanalu? Ovo može dosta ubrzati prikupljanje IV-a. IP adresa AP-a BSSID ESSID Hvatanje IV-a

Ok, pošto znamo koga napadamo vreme ja da hvatamo malo pakete.

./airodump NIC output prefix channel IV flag NIC je naravno vaša mrežna karta output prefix – ime datoteke u koju će se upisivati rezultati – potrebno. channel – specifičan kanal koji skeniramo. IVs flag- 0 ili 1, zavisti da li želite da sve pakete ili samo IV.

Moja kartica je ath0 tako da bi kod mene ovo izgledalo ovako:

./airodump ath0 dump 3 1 Dekriptovanje ključa

Hajde da se sad pravimo da smo nakupili dovoljnu količinu IV-a da bismo započeli napad. Otvorite novi terminal dok još uvek radi airodump u prvom i pokrenite:

./aircrack [options] input file

Šta može ići pod options?

-a 1 : nameće WEP napad dok je 2 WPA napad ili -b za bssid ili -e za essid šta god je vama lakše. -n 64 ili -n 128 : dužina WEP ključa. Možete izostaviti ako do sada niste otkrili koliki je ključ.

Tako da bi naša komanda izgledala ovako nekako:

./aircrack -a 1 -b 00:23:1F:55:XX:XX -n 128 dump.ivs

And zer she blows. Sada vam ostaje da malo sačekate dok aircrack sastavlja sliku za vas.

Očekivani problemi i rešenja

Velika je šansa da ćete naići na neki problem. Ako ništa drugo imaćete dosta posla da podesite sve alatke da rade kako treba. To ovde nisam objašnjavao jer to nije tema ove priče.

Nema saobraćaja Nema saobraćaja tako da ne možete da uhvatite ni jedan IV. Ono što možete da uradite jeste da “ubacite” posebne pakete kako biste prevarili AP da šalje pakete. Filtriranje MAC adresa AP odgovara samo povezanim klijentima. Verovatno zato što je uključeno filtriranje MAC adresa. Koristeći airodump možete videti koje MAC adrese tu rade, postavite neku od njih za svoj uređaj i možete nastaviti… upotrebite Google da vidite kako se radi MAC spoofing. ;-) Ne možete krakovati čak ni sa tonom IV-a Neki statični napadi mogu stvarati lažne pozitivne odgovore i odvesti vas u pogrešnom pravcu. Pokušajte sa -k N (gde je N=1..17) ili -y kako biste varirali svoj napad. I dalje ništa? Nađite AP prateći signal i pitajte admina koji je WEP ključ – social engineering, NLP a možda i brute force metoda upali.

I to je to. Neko će možda reći da je WEP zastareo metod zaštite i da ga niko ne koristi. Jel da? Prošetajte malo Beogradom pa mi onda recite da niko ne koristi WEP.

Preporuke obavestajne agencije, Windows Bezbednost.

February 22, 2008
Obecao sam sinoc da cu okaciti par dobrih linkova vezanih za bezbednost Windows operativnih sistema. Izvestaji, preporuke i prirucnici Nacionalne Bezbednosne Sluzbe SAD (NSA) su dostupni preko ove stranice. Prijatno citanje i upotreba preporuka NSA, a ako postovi sa ovog bloga utanje, znajte da sam isporucen preko grane :)) Demet...bar i da se ja jednom naspavam kao covek,.. Pa makar u dzejlu :) { Moguce je da neki link ne sljaka, pa prijavite...i preporucite svoje, pa da ih slozimo na jedno mesto. } Ako se neko bavi srodnom tematikom (pogledati kategorije na Web Lab-u) dobro bi bilo da me kontaktira, ubih se trazeci usmerene blogove po domacem Web-u. (Operacija "Blogosfera" je jos uvek u toku.;) Toliko za sada, odoh da radim na startup-u...

Obavestajne agencije, OS Hardening - priprema stranice.

February 21, 2008
Sutra kada dodjem s posla i malo odmorim, objavicu stranicu sa linkovima ka nekih 30-ak dokumenata obavestajnih agencija u kojima se mogu naci konkretni podaci kako osigurati operativni sistem Windows, te izvuci neke taktike, pristupe i poglede na celu pricu bez obzira na tip OS-a i verzije. Meni ce ova stranica zavrsiti ogroman posao, posto posle toga necu imati preterano vremenskih/troskova u jurenju informacija osim pracenja rss-ova specijalizovanih (vladinih) ustanova i newsletera.

WordPress 2.3.3

February 5, 2008

„Ковачница речи“ се не освежава нешто претерано, односно освежава се само када има функционалних скокова у самом софтверу или када се отклони неки сигурносни пропуст. Овога пута у питању је неколико минорних грешака и безбедноносни пропуст у xmlrpc-у.

За већ постојеће блогове довољно је преписати стари xmlrpc.php у кореном директоријуму WordPress-а новом верзијом која може да се преузме одавде, или, ако више волите да одрадите надоградњу али вам се не ради комплетан посао који уме да потраје на нашим „ултра брзим“ везама, довољно је да на сервер поставите нове верзије измењених датотека које сам спаковао у пакетић wp 2.3.2 to 2.3.3.zip (31,7 KB).

Ипак, иако радите „лајт“ надоградњу, придржавајте се упутства и савета као да радите класичну „потпуну“ надоградњу.

Аутор Александар Урошевић за блог Записи.Слободна употреба садржаја у складу са BY-CC-SA 3.0 лиценцом.Веза до овог записа (овај запис није коментарисан) [ del.icio.us | Stumble Upon | Digg ] Блогови који су повезани са овим записом на Technorati Архива осталих записа из категорије Веб, Презентација.

Повезани записи Глобални аватари (19) Легалне хајке и „Ј“ мајке (20) Рехабилитован ју-ник! (2) „Ситне“ дораде (2) GNU GNUzilla (3)

Trojan List Sorted On Trojan Port

November 13, 2007
This List is Important. Keep this under your pillow.

Anfibia Deskman (ako delite računar s nekim, ograničite ga)

November 8, 2007
Kao što naslov kaže programčić Vam može pomoći ako delite računar s nekim na poslu, školi ili u kući. Daje Vam mogućnost ograničavanja operacija koje možete uraditi sa operativnim sistemom, zgodno kada mala deca sednu za komp, kada delite račnar, sa ženom/mužem ili slično. Možete ugasiti korišćenje USB portova, isključiti Ctrl Alt Del, zaključati svoj desktop, [...]

А какав си ти ђак, мали?

September 18, 2007

Сигурно су и вама старији постављали питање из наслова док сте били школарац. Ја сам увијек био одличан, па ми није сметало. Да сам у школи сада, опет ми вјероватно не би сметало. Али сада имамо и електронске дневнике, што зацијело убија дио шарма школовања. Вјероватно је нормално да клинац понешто не каже родитељима, са електронским дневницима он нема шта да говори, родитељи све већ знају. Велики Брат их посматра.

То ме подсјети на врло ефикасан метод мога оца, који би отишао ненајвљен и непозван у моју школу једном или два пута годишње, а да ја то нисам знао. А понекад би само дошао кући и рекао: Владане, молим те напиши ми које оцјене имаш. Наравно, то се дешавало чешће од тих један или два пута када је он стварно и ишао у школу, али будући да ја нисам знао када је то било стварно, углавном би све тачно рекао како стоје ствари. Но, увијек је било простора за мување :)

Али, ово није текст о мојим школским данима, већ о клинцима који тренутно иду у основне и средње школе, а у школама имају постављене електронске дневнике. Уопште не волим да коментаришем рад других колега из ИТ индустрије, али ово се тиче безбједности мале дјеце и мора бити наглашено. На страну што ми изглед страница не одаје осјећај сигурности и знања, оно што је за узбуну су данашње информације које говоре о томе да је у систем електронских дневника могуће релативно лако неовлаштено ући, како је писано на ДПТ форуму (уз слике као доказ). Ако систем при погрешно унесеним подацима лијепо опише грешку базе података, потребно је само мало маште да би сте ушли унутра. А унутра су приватни подаци малољетне дјеце. И таква врста неодговорности и даваоца услуге и Министарства просвјете ме заиста брине. И растужује…

belgrade, programming, security

OpenSSH chroot paranoja

April 15, 2007

Kada je u pitanju administracija servera i bezbednost istih ni jedan stepen paranoje nije dovoljno visok. Posebno kada je u pitanju shell pristup koji ponekad jednostavno moramo dati svojim korisnicima iako to zaista ne želimo(BOFH). Najbolji način da se zaštitimo od potencijalnih nevolja koje taj shell pristup može da izazove jeste da ih nekako zatvorimo u neki virtuelni kavez iz kog ne mogu da pobegnu te da jedina šteta koju mogu da načine jeste šteta nad sopstvenim podacima(BOFH).

Uzmimo FreeBSD kao prvu žrtvu ovih paranoičnih izmena. Ovde je procedura donekle lakša. Prvo ćemo zameniti sistemski SSH server onim koji možete naći pod:

/usr/ports/security/openssh-portable/

U pitanju je port verzija OpenSSH servera koji možete naći kod OpenBSD-a. Lično, uvek koristim tu verziju. Kada počnete instalaciju dobićete mogućnost da podesite malo taj OpenSSH. Ukoliko instalacija odmah počne bez ikakvih ponuđenih opcija (desi se i to ponekad) sve što treba da uradite je da je prekinete i ukucate komandu:

make config

Stavka na listi koja nas zanima je OPENSSH_CHROOT. Onda se vratite starom dobrom make install clean i to je to. Sada je potrebno da ubijete sistemski SSH i da malo izmenite /etc/rc.conf:

sshd_enable="NO" # OpenSSH server openssh_enable="YES" # OpenBSD OpenSSH-portable

Sada će se pri pokretanju sistema startovati OpenBSD verzija OpenSSH servera. I sada to sve radi..malo sutra. Jedva sam našao kako to zapravo treba da se podesi.

OpenSSH koji se kompajlira sa OPENSSH_CHROOT zakrpom čita putanju do home DIR malo drugačije. Tačnije, čita ”.” u putanji tako što je za njega ona / sistema. Malo sam zakomplikovao ovu rečenicu? Moguće.:) Dakle, ako je putanja do korisničkog home DIR recimo ovako nešto:

/home/./jail/home/user

kada se korisnik uloguje na sistem i kuca “cd /” neće dobiti pravu root particiju već /jail i neće moći iz nje da izađe. Jako korisno, zar ne?

Problem nastaje što onda korisnik nema gotovo ništa od komandi..tačnije, ne može ni ući na sistem jer nema ni jedan shell. Ono ”/bin/csh” u njegovim podacima sada neće imati smisla. Šta sad? Napravimo mu onda “zatvor” koji ima neke od komandi.

cd /home/jail mkdir bin lib etc cp /bin/csh bin/

Vodite računa da programi i komande koje kopirate u ”/bin” imaju i sve potrebne biblioteke. To ćete učiniti tako što ćete kucati:

ldd /home/jail/bin/csh

Dobićete nešto ovako:

/bin/csh: libncurses.so.6 => /lib/libncurses.so.6 (0x280bd000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x280fc000) libc.so.6 => /lib/libc.so.6 (0x28114000)

Aha, dakle potrebne su nam i neke biblioteke. Dobro, iskopirajte ih sve u naš “jailovan” /lib/” direktorijum. Sada će sve raditi kako treba.Šta sesve valja naći u “bin” direktorijum? To od vas zavisi. Ako korisniku date samo csh neće moći da radi ništa do da se uloguje na sistem. Korisno je dati mu komande: cd, ls,cp, mv, rm…odlučite već sami, ovo je samo predlog.

I to je to. Kada vaši korisnici uđu na sistem najdalje što će moći da odu jeste /jail. Ukoliko već imate korisnike koje želite da smestite u kavez:

chpass username

te izmenite samo putanju do /home/ direktorijuma. Putanju do shell-a ne dirajte. I to je to. NAPOMENA: Ovo ima smisla samo ako je korisnik na sistem ušao preko SSH veze…ukoliko ima fizički pristup mašini onda chroot ne radi.:)

OpenBSD zahteva za nijansu drugačije korake. Iako su rekli da je zakrpa koja omogućava chroot ubačena to nije tačno jer čitanje ”.” u putanji ne radi dok sami ne dodate zakrpu koja sledi. No, to nije teško. Pretpostavimo da imate najnoviji OpenBSD (4.0). Vreme je da stavimo novu verziju OpenSSH-a na njega. Svoj paket možete naći na http://www.openssh.org/openbsd.html Tamo ćete naći i uputstvo koje kaže sledeće:

cd /usr/src/usr.bin tar xvfz .../openssh-4.6.tar.gz cd ssh make obj make cleandir make depend make make install cp ssh_config sshd_config /etc/ssh

To je OK ako samo želite novu verziju SSH-a- Mi ćemo ovo uraditi malkice drugačije. Prva tri koraka su sasvim OK. Tu stanite. Ono što ćete uraditi jeste izmena datoteke session.c.

cp session.c session_backup.c vim session.c

I dodajte ispred funkcije do_setusercontext sledeći kod:

/* do chroot / void do_chroot(struct passwd *pw){ char *user_dir; char *new_root; user_dir = xstrdup(pw->pw_dir); new_root = user_dir + 1; while((new_root = strchr(new_root, '.')) != NULL) { new_root--; if(strncmp(new_root, "/./", 3) == 0) { *new_root = '\0'; new_root += 2; if(chroot(user_dir) != 0) fatal("Couldn't chroot to user directory %s", user_dir); pw->pw_dir = new_root; break; } new_root += 2; } } / do_chroot /

Zatim dodajte:

/ Set login name, uid, gid, and groups. / void do_setusercontext(struct passwd *pw) { / OVO DODAJETE / do_chroot(pw); / OVO DODAJETE */ if (getuid() 0 || geteuid() 0) { #ifdef HAVE_LOGIN_CAP

Naznačio sam vam šta tačno dodajete. Ono ispred i iznad mog komentara je tu da lakše nađete tačnu lokaciju za dodatnu funkciju.

I sad se vratite koracima za instalaciju OpenSSH-a. Sve bi trebalo da prođe OK. Restartujete OpenSSH server a ostatak je isti kao kod FreeBSD-a. Srećno zlostavljanje korisnika.:-)

OpenSSH chroot paranoja

April 15, 2007

Kada je u pitanju administracija servera i bezbednost istih ni jedan stepen paranoje nije dovoljno visok. Posebno kada je u pitanju shell pristup koji ponekad jednostavno moramo dati svojim korisnicima iako to zaista ne želimo(BOFH). Najbolji način da se zaštitimo od potencijalnih nevolja koje taj shell pristup može da izazove jeste da ih nekako zatvorimo u neki virtuelni kavez iz kog ne mogu da pobegnu te da jedina šteta koju mogu da načine jeste šteta nad sopstvenim podacima(BOFH).

Uzmimo FreeBSD kao prvu žrtvu ovih paranoičnih izmena. Ovde je procedura donekle lakša. Prvo ćemo zameniti sistemski SSH server onim koji možete naći pod:

/usr/ports/security/openssh-portable/

U pitanju je port verzija OpenSSH servera koji možete naći kod OpenBSD-a. Lično, uvek koristim tu verziju. Kada počnete instalaciju dobićete mogućnost da podesite malo taj OpenSSH. Ukoliko instalacija odmah počne bez ikakvih ponuđenih opcija (desi se i to ponekad) sve što treba da uradite je da je prekinete i ukucate komandu:

make config

Stavka na listi koja nas zanima je OPENSSH_CHROOT. Onda se vratite starom dobrom make install clean i to je to. Sada je potrebno da ubijete sistemski SSH i da malo izmenite /etc/rc.conf:

sshd_enable="NO" # OpenSSH server openssh_enable="YES" # OpenBSD OpenSSH-portable

Sada će se pri pokretanju sistema startovati OpenBSD verzija OpenSSH servera. I sada to sve radi..malo sutra. Jedva sam našao kako to zapravo treba da se podesi.

OpenSSH koji se kompajlira sa OPENSSH_CHROOT zakrpom čita putanju do home DIR malo drugačije. Tačnije, čita ”.” u putanji tako što je za njega ona / sistema. Malo sam zakomplikovao ovu rečenicu? Moguće.:) Dakle, ako je putanja do korisničkog home DIR recimo ovako nešto:

/home/./jail/home/user

kada se korisnik uloguje na sistem i kuca “cd /” neće dobiti pravu root particiju već /jail i neće moći iz nje da izađe. Jako korisno, zar ne?

Problem nastaje što onda korisnik nema gotovo ništa od komandi..tačnije, ne može ni ući na sistem jer nema ni jedan shell. Ono ”/bin/csh” u njegovim podacima sada neće imati smisla. Šta sad? Napravimo mu onda “zatvor” koji ima neke od komandi.

cd /home/jail mkdir bin lib etc cp /bin/csh bin/

Vodite računa da programi i komande koje kopirate u ”/bin” imaju i sve potrebne biblioteke. To ćete učiniti tako što ćete kucati:

ldd /home/jail/bin/csh

Dobićete nešto ovako:

/bin/csh: libncurses.so.6 => /lib/libncurses.so.6 (0x280bd000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x280fc000) libc.so.6 => /lib/libc.so.6 (0x28114000)

Aha, dakle potrebne su nam i neke biblioteke. Dobro, iskopirajte ih sve u naš “jailovan” /lib/” direktorijum. Sada će sve raditi kako treba.Šta sesve valja naći u “bin” direktorijum? To od vas zavisi. Ako korisniku date samo csh neće moći da radi ništa do da se uloguje na sistem. Korisno je dati mu komande: cd, ls,cp, mv, rm…odlučite već sami, ovo je samo predlog.

I to je to. Kada vaši korisnici uđu na sistem najdalje što će moći da odu jeste /jail. Ukoliko već imate korisnike koje želite da smestite u kavez:

chpass username

te izmenite samo putanju do /home/ direktorijuma. Putanju do shell-a ne dirajte. I to je to. NAPOMENA: Ovo ima smisla samo ako je korisnik na sistem ušao preko SSH veze…ukoliko ima fizički pristup mašini onda chroot ne radi.:)

OpenBSD zahteva za nijansu drugačije korake. Iako su rekli da je zakrpa koja omogućava chroot ubačena to nije tačno jer čitanje ”.” u putanji ne radi dok sami ne dodate zakrpu koja sledi. No, to nije teško. Pretpostavimo da imate najnoviji OpenBSD (4.0). Vreme je da stavimo novu verziju OpenSSH-a na njega. Svoj paket možete naći na http://www.openssh.org/openbsd.html Tamo ćete naći i uputstvo koje kaže sledeće:

cd /usr/src/usr.bin tar xvfz .../openssh-4.6.tar.gz cd ssh make obj make cleandir make depend make make install cp ssh_config sshd_config /etc/ssh

To je OK ako samo želite novu verziju SSH-a- Mi ćemo ovo uraditi malkice drugačije. Prva tri koraka su sasvim OK. Tu stanite. Ono što ćete uraditi jeste izmena datoteke session.c.

cp session.c session_backup.c vim session.c

I dodajte ispred funkcije do_setusercontext sledeći kod:

/* do chroot / void do_chroot(struct passwd *pw){ char *user_dir; char *new_root; user_dir = xstrdup(pw->pw_dir); new_root = user_dir + 1; while((new_root = strchr(new_root, '.')) != NULL) { new_root--; if(strncmp(new_root, "/./", 3) == 0) { *new_root = '\0'; new_root += 2; if(chroot(user_dir) != 0) fatal("Couldn't chroot to user directory %s", user_dir); pw->pw_dir = new_root; break; } new_root += 2; } } / do_chroot /

Zatim dodajte:

/ Set login name, uid, gid, and groups. / void do_setusercontext(struct passwd *pw) { / OVO DODAJETE / do_chroot(pw); / OVO DODAJETE */ if (getuid() 0 || geteuid() 0) { #ifdef HAVE_LOGIN_CAP

Naznačio sam vam šta tačno dodajete. Ono ispred i iznad mog komentara je tu da lakše nađete tačnu lokaciju za dodatnu funkciju.

I sad se vratite koracima za instalaciju OpenSSH-a. Sve bi trebalo da prođe OK. Restartujete OpenSSH server a ostatak je isti kao kod FreeBSD-a. Srećno zlostavljanje korisnika.:-)

Бекапујте свој Гмејл

December 29, 2006

Више десетина корисника Гмејла (Gmail) је доживјело непријатно искуство брисања свих података сачуваних у њиховом налогу, вјероватно изазвано сигурносним пропустом у Фајерфоксу. Добра напомена за све кориснике, бекапујте свој Гмејл користећи POP3 на свој локални рачунар.

google, internet, security, web2.0

BanjalukaLive.com ухакована

September 9, 2006

Бањалучки портал BanjalukaLive постао је жртва хакерског напада муслиманских хакера који су поставили знак џихада на насловну страну портала који тренутно не ради, а колико сам примјетио садржај комплетног сајта је обрисан.

internet, security, srpska

Kako radi blog spam ?

January 11, 2006

Zanima vas na koji način spamuju vaš blog? Ako je odgovor DA onda pogledajte ovaj filmić koji sam odradila za vas i ne tako davno ;)

Radnja filma je surovost jednog od (boljih) alata na koje sam naišla za svrhe spamovanja blogova i koja će ujedno poslužiti kao (slikoviti) uvod u web security - temom kojom ću se pozabaviti u narednih par zapisa na ovom blogetu :-)

Do sledećeg pisanja čiksgiks

Worm uhvatio manijaka

December 23, 2005

Vrlo zanimljiv slučaj kako je Sober uspeo da uplaši jednog dvadesetogodišnjaka i natera ga da preda sebe i svoju kolekciju dečije pornografije vlastima. Prosto ne verujem da tako neko može biti naivan :)

Celu priču pročitajte ovde