oldal feltores ftpn keresztul

Fórumok

Nem tudom volt-e mar ilyen topic, ha igen, elnezest, de en nem talaltam meg.
Tehat a helyzet a kovetkezo. Adott egy webserver, rajta webhosting szolgaltatas, rajta juzer weboldala. Az oldal forrasaban erdekes javascript kodok jelennek meg, rendszerint a zaro html tag utan. Google-tol kapok jo kis emailt, hogy fertozott az oldal, es csinaljak valamit. Ez eddig oke is. Probaltam rajonni, hogy megis hogy torik meg az oldalt, nezegettem a mod_security logokat, de semmi. Aztan a gugli keresoszavak ugyes megvalasztasaval talaltam egy forum topicot, ahol azt olvastam, hogy ftp-n keresztul "tortek" meg az oldalt. Azert irom idezojelben, mert nem igazi toresrol van szo, hanem - ha a postnak lehet hinni - valami windowsos fereg csinalja, megpedig ugy, hogy a juzer gepen tarolt jelszavak segitsegevel fellep ftp-n keresztul a tarhelyere, ahol a fereg automatikusan minden .php es .html vegzodesu file-ba beleirja azt a par sort. Ez utan megneztem az ftp logokat, es valoban, a felhasznalo belepett, majd minden file-t letoltott a tarhelyrol, majd par byte-tal nagyobb meretben ujratoltotte oket. Azert is gyanus, hogy valami feregrol van szo, mert minden .php -ra vegzodo file-t lecserelt, pl az ilyen "Changelog.php" jellegueket is.
A kerdesem tehat az, hogy szerintetek megis hogy lehet az ilyen ellen vedekezni. A szerver rendben van, nem onnan jott a tamadas, hanem a felhasznalo felol. Persze, lehet azt mondani, hogy 'virustalanitsa a gepet a felhasznalo', de jo lenne valami szerveroldali megoldas is, hogy megis mit lehet ennek a megelozesere tenni. Gondoltam arra, hogy az ftp-n korlatozni lehetne, hogy milyen juzer csak milyen iprol lephet be, de mivel senkinek sincs otthon fix ipje, ez nem nyert.
Az ftp demon, amit hasznalok kepes arra, hogy minden feltoltes utan lefuttasson egy scriptet, tehat lehetne szurni valami stringre minden feltoltes utan, de megis mire? Felo, hogy beletrafalok valami legalis tartalomba is, tehat ez sem a legjobb otlet.

Tehat valami hasznos otlet esetleg?

Update: Ja a forum, amire hivatkoztam: http://www.prog.hu/tarsalgo/?op=view&fid=73223&no=17
Tudom, tudom, prog.hu, de akkor is ugy tunik, hogy az a helyzet, amit az egyik illeto irt.

Hozzászólások

Hat jelszo melle kerjel meg valamit authentikalaskor.
pl. Adjon ossze ket szamot, vagy barmi olyat amit egy atlagos worm nem tud megvalaszolni.

Csinalhatsz VPN-t, es csak onnan engedni az ftp-t :)
Bar szerintem a user IJ.

Aljas modon feltetelezem, hogy a fereghajtora szorulo userek win-t hasznalnak. Letezik egy cmak nevu kis util, amivel egy kis installert lehet kesziteni - egy VPN telepitot. Szepen konfiguralhato, belevesett elore megoszottt kulcs, ipsec, amit akarsz, user dolga annyi, hogy telepiti (akar elfogadtathatsz vele egy nyilatkozatot), megjelenik a halozati kapcsolatai kozott, amikor hasznalni akarja ranyom ketszer, user/pass.
Win2k3-ban tuti alap cucc, azt nem tudom kulon hogy lehet hozzajutni, de sztem csak tudsz szerezni valahonnan :)
Esetleg egy pillantast megerhet.
Meg vbs scriptet is tudok adni, ami megirja a route tablait :)
Ofcoz a script is csomagolando a telepitobe.

> Ez utan megneztem az ftp logokat, es valoban, a felhasznalo belepett, majd

Egy-egy ilyen ftp session után küldhetne a gép a felhasználónak egy email-t, az ftp log-ból legyártva. Valami egyszerű összesítés is jó: mikor jelentkezett be, hány fájlt töltött le/fel, stb.

A lényeg az, hogy a felhasználó ebből ráismerhet hogy nem ő volt, és riaszthatja a rendszergazdát, stb.

Tekintve, hogy egység sugarú userről van szó, így gondolom normál FTP-t használsz titkosítás nélkül ( ergo plaintext-ben mennek az adatok ).. Ilyen esetben viszont ugyan ezen a biztonsági szinten megoldhatod, hogy weben keresztül engeded csak a feltöltést ( ehez persze kell egy webes uploadert írni/használni ), és ott az authentikációnál gond nélkül megoldhatók a captcha-k is, amit meg a vírus már nem tudna kikerülni..
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..

Igen, joreszt plaintext megy, hiaba van tls tamogatas az ftp demonban, nem hasznalja szerintem kb senki. Ez is egy jo otlet, amit irtal, csak maceras. De esetleg lehet olyat, hogy azoknal a felhasznaloknal, ahol mar tortent ilyen virusos feltoltes, ott letiltani az ftpt, es utana csak webrol tolthet fel. Kosz :)

Megteheted a mostani módszerrel is: a felhasználó saját home könyvtárában elhelyezel egy readme.txt -t, aminek tartalmát minden egyes csatlakozáskor változtatod (pl. pillanatnyi idő, kód stb.).
Az itt megadott instrukciókkal fogadod csak el a feltöltést (pl. fájlnevek kezdődjenek 'zz'-vel, amit utána automatisan szkriptből visszanevezel ; vagy pl. hozzon létre a readme tartalma alapján egy könyvtárat, és mindent oda másoljon, az összes többit automatikusan törlöd stb.), gyakorlatilag ftp-s captcha :)

> Gondoltam arra, hogy az ftp-n korlatozni lehetne, hogy milyen juzer csak milyen iprol lephet be

Egyébként az kiderül az IP-címekből, hogy az ügyfeleid gépéről történik a trükk, vagy máshonnan? Szóval a felhasználók gépére toltak föl valami férget, ami lecseréli a fájlokat; vagy ,,csak'' jelszót loptak, és máshonnan megy a trükk?

Mellesleg szerintem tök reális erre egy megfelelő szkriptet írni, ami rákeres ezekre a jellemző sorokra, jelzi, és törli. Kis odafigyeléssel megoldható, hogy ne gyakjon le hasznos tartalmat.

Multkor megneztem, de nem emlekszem mit talaltam. Most pedig amire kaptam warningot a guglitol, mar a fene tudja, hogy mikor toltotte fel az ipse, de megprobalom megkeresni a logokbol.

Update: A csavo file-jai juniusban valtoztak utoljara, tehat akkor lett virusos. Ekkori log sajnos nincs meg az ftp forgalomrol. Az viszont erdekes, hogy azota nem tunt fel ez az aprosag senkinek. Biztos erdekli a tulajt a weboldala.

Feltoltes utan kuldesz egy e-mailt a felhasznalonak, benne ket linkkel (commit/rollback).
Ha a commit-re nyom, akkor jovahagyod a valtozast, mert o akarta.
Ha a rollback-re (vagy eltelik egy bizonyos ido), akkor egy biztonsagi mentesbol visszakerul az eredeti. Az idozites legyen annyi ido, ami alatt biztosan megkapja a levelet (szoval freemailnel 1 het :) ).

Ha van olyan hely, amit nem tud kozvetlenul user ftp-n keresztul irni, akkor ott legyen maga a weboldal. Akkor egyszeruen commit-ra irod felul az eredeti tartalmat, rollback-re torlod a hulyeseget. (tehat csak akkor valtozik meg az eles tartalom, amikor mar jovahagyta) Igy meg arra a kis idore sem lesznek veszelyben a felhasznalok, amig az illeto megnezi a postaladajat, es rollback-kel.
----
Amikor a valtozas szele fuj, van, aki szelfogot epit, es van, aki szelmalmot. - kinai kozmondas
honlap készítés

sftp kulccsal + passphrase?
Lehet, hogy prüszköl a júzer, de perpill jobb nem jut eszembe.

Gyerekek én nem értem miért használjátok még mindig a sima ftp-t. Plane a nyilt interneten... Huhh..
Ott van az sftp, az legalább titkositottan kezeli a dolgait. Ha az ssh servered fut mar mukodik is, nem is kell igazan konfigolni.
Ha meg win user van a tuloldalom, feltelepit egy WinSCP -t ami ugy nez ki mint egy total commander ugyhogy az egysegsugaru user is siman elboldogul vele.
(WinSCP gpl es progi, guglizz ra.)

Igaz, de ebben az esetben nem látom hogy hogy segítene. Nem az itt a gond, hogy fertőzött az illető gépe? A worm vagy a windows jelszót használja, vagy keyloggere van. Tehát titkosított vagy nem, attól még fellép a féreg. Egyszerűen a usert kell figyelmeztetni: ne ugyanazt a jelszót használja a gépén, mint az ftpn, meg irtsa le a gépéről a vírust. Ha nem teszi meg, akkor meg viszlát. Na persze cégnél ez nem ilyen egyszerű :)

Az sftpre gondoltam en is, mivel valoszinuleg a fereg annyira nem okos, hogy sftpt tudjon hasznalni, de ugy gondoltam, hogy eleg maceras lenne kezelni azt az n+1 unix usert, hozza mindegyikhez chrootot hegeszteni... ezeket az ftp fejbol tudja. Arrol nem is beszelve, hogy sikitofraszt kapna par juzer attol, hogy valami ismeretlen programot kell hasznalnia. De amugy nekem is ez jutott eszembe elsore.

vsftpd is tu ilyet, de a googli szerint a pureftpd is tudhat ilyet.

# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
# including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS 2

Hogyan?

Amire Te gondolsz, az az ssl/tls kodolt jelszo kuldes, ftphez. Ettol meg az adatfolyam titkositatlanul megy, illetve a protokoll attol meg ftp. Az sftp egy masik protokoll teljesen, csak a neveben egyezik meg. (Vagy ha nem is teljesen kulonbozo, akkor is mas dolog.) Amugy igen, a pure-ftpd tud tls kodolt jelszokuldest, be is van kapcsolva, csak kutya se hasznalja, mert buta ftp klienst hasznalnak buta juzerek.

Na. Ez az FTPS. SSL-TLS authentikációval és titkosított! adatátvitellel. Van még ennek is két formája: explicit/implicit... Ez is lényegtelen. Ez az FTPS hasnálható wincmd7.0+ és filezilla-val default. Ez is lényegtelen.
Az a lényeg hogy ha a muki gépen törve van akkor fut rajta minden szutty, keylogger, stb, tehát ha megvan a name/pwd az akármilyen protokollhoz, azt a gépen futó worm oda küldi akinek akarja és az aki akarja olyan cuccal, protokollal lép be, vagy a worm amit ír hozzá, amilyennel akar.

cryp

Hi

Azt mondod hogy a ftp servered kepes futtatni egy scriptet minden feltoltes utan, tehat irj egy scriptet ami minden ujjonan feltoltott filera lefuttat egy viruskeresest.

Ez ugyan csak felmegoldas lehet , de a semminel tobb , es meg a usereknek sem kell uj programok hasznalatat megtanulni.

Azt írtad, hogy egy bizonyos kód részlet kerül bele a feltöltött fájlokba. Ezt a kódot kiszeded egy fájlból, és írsz egy scriptet (ehhez kell az előbb kiszedett kód), ami minden fájl feltöltése után megvizsgálja a fájlokat, és ha benne van az a bizonyos kód, akkor törli (mármint a kódrészletet).

Ezztel a módszerrel csak az a gond, hogy nem csak 1féle ilyen vírus van, hanem jópár, többféle kódrészlettel.. Ergo egy komplett adatbázist kéne vezetnie ha az összes lehetőséget szűrni szeretné..
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..

Pontosan. En nyilvan latom, hogy nem legitim kod, mert latszik rajta, de scriptesiteni nehezebb. Mondjuk nem lehetetlen, ki lehet hasznalni, hogy minden ilyen kod, amit eddig lattam a zaro html tag utan jon, tehat egyszeruen csak hozzairjak a file-hoz, aztan annyi. Igy egy scripttel vizsgalhato, hogy a zaro html tag utan jon-e valami, es ha jon, akkor lehet figyelmeztetni, tiltani, kivenni, stb. Csak mivel nem en irom az oldalakat, ezert nem lehetek 100%ig biztos benne, hogy nem az oldal keszitoje akart valamit a zaro html tag utan tenni, pl valami kommentet.. bar eleg valoszinutlen. Maguk a 'virusos' kodok pedig tobbfelek lehetnek, lattam mar vagy 3-4 felet legalabb. Annyi kozos bennuk, hogy mindegyik kodolt formaban szerepel. Mintat nem tudok most mutatni, mert kiszedtem mar a fertozott oldalbol. De valszeg a legjobb megoldas irni egy ellenorzo scriptet, es keresni kodolt tartalmat a zaro tag utan.

mi ezt csinajuk, sophos antivirussal. a teszteltek kozul csak ez volt kepes eszlelni ezeket a javascript reszleteket. mas keresok csak futtatskor (kliens oldaon) ha fertozott a file akkor pedig atnevezzuk es kap egy FERTOZOTT postfixet.

sajnos nem kenyszeritheted az ugyfeleidet hogy sftp-t hasznaljanak. nincs semmi baj az ftp -vel, azzal van baj hogy a kliens windowsos gepei vannak tele fergekkel, es hogyha mar mondjuk egy total commanderben el van mentve az ftp user/pass akkor mar baszhatja.

mi mindig elmondjuk az ugyfelnek hogy ez az o hibaja es ha tenni akar ellene akkor hasznaljon jo vedelmet, ha pedig nagyon kurvaanyazik akkor kerunk tole egy IP tartomany ahonnan FTPzni akar es akkor boldog.

Ertem. Kosz az infot. Sajnos sophost megvetetni a ceggel kb eselytelen, de ez persze mar az o bajuk. Meg az enyem :)
Nem kurvaanyazott eddig senki, de nem jellemzo, hogy le tudnak irtani a virust, gondolom nem veletlen, hogy a nem hozzaertokkel fordul ez elo mindig. Ahol van egy hozzaerto rendszergazda, ott nyilvan nem lesz ilyen fereggel fertozott gep.

Ezt a megoldást csak erre az egy vírusra javasoltam. Amennyiben valaki előre gondoskodni szeretne a biztonságról, akkor viszont tényleg egy adatbázisnyi adat kellene ehhez :).
Egyébként SZVSZ érdemes értesíteni az ügyfelet is, hisz így ő is tudomást szerez a vírusáról, és azt gondolom nem fogja kötözködésnek venni, hogy tegyen valamit a vírus ellen :D.

Szerintem úgy is lehetne szűrni, hogy minden user kap a könyvtárába csapda php-ket, amikben kommentként szépen el van magyarázva, hogy ezek víruszűrés miatt vannak, és nem szabad őket megváltoztatni. Ha mégis megváltoznak, akkor a szerver bontja a kapcsolatot. Vagy ha okos a vírus, akkor nem bontja, csak onnantól a következő bejelentkezésig csendben nem teljesíti az ftp parancsokat.

Ha viszont elég buta, és abban a sorrendben írja át a fájlokat, mint ahogy megkapja a listázást a szervertől, akkor teljesen ki tudod iktatni azzal, hogy a fájlt a listázás elejére rakod.

Nem tudom figyeltél e, de az történt, hogy a fertőzött gépen megolvtak a php file-ok meg az ftp account, és a php kódok végére odapakolta az új kódot, majd azt feltette.. Ahoz a file-hoz amit te tennél oda hozzá se nyúlna, hanem hagyná békén változatlanúl.
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..

Igazabol most mar en se tudom, hogy pontosan hogy van, hogy a juzerke tolt fel, vagy a juzerke jelszavaval valami idegen geprol. Ha megint tortenik, megnezem mindenkepp. Ha kulsos, idegen iprol jon a tamadas, akkor jo lenne az ftp szerverhez egy tcpwrapper tamogatas, es akkor csak *.hu domainrol engedni az ftpt, de a pure-ftpd - ahogy en tudom - nem tamogat tcpwrapper hasznalatot.

Jövök lámáskodni :)

Gyanítom a tárhelyéhez van valami webes admin is (cpanel, vagy valami egyedi). Ha nincs, hát létre kell hozni egyet.
Na most: teszel oda egy olyan gombot, hogy "jelszó igénylése". Userünk ráklattyint, kap egy jelszót, ezzel be tud lépni mondjuk 1-2 perecig. Értelem szerűen ez a kütyü beírja a megfelelő konfigba a random generált jelszót. Ha eltelik a kiszabott idő, s nincs login, vagy kilép a user a rendszerből, akkor a jelszót átüti a script valami fal dologra, vagy totál kiüti nullára (no itt a láma feltételezésem, miszerint az FTP-ben egy jelszóval védett rendszerre nem adsz jelszót, akkor nem lehet belépni, lásd: Ubuntu root. Na most itt lehet, hogy őrült nagy ökörséget mondtam, de szóltam előre: lámáskodni jöttem) ;)
Valszeg némi ráfordított idő után meg lehet írni egy ilyen scriptet, én biztos nem vállalkoznék rá, ha határidős a meló, viszont aki gyakorlott ebben, szerintem könnyedén összedobja (vagy nem).

Van admin felulet, egyedi. A jelszavak mysqlben tarolodnak, tehat nem kene file-okban matatni. Abban is igazad van, hogyha kitorlom/atirom a jelszavat a juzernek mysqlben, akkor nem fog tudni belepni. Amit Te irtal, igen hasonlo a masikhoz, amit valaki mas ajanlott, miszerint a jelszo vegere be kene biggyeszteni egy timestampet, pl jelszoddhh modon, es akkor mindig az eppen ervenyes jelszoval lehet belepni. Mindkettotok megoldasa kivitelezheto, csak felek sokat sirna a sok juzer, mert igy nem tudja beirni a TotalCommanderbe, aztan az milyen maceras. Persze mar lassan minden megoldasi javaslatra ezt mondom :) Tenyleg neked is, meg mindenki masnak koszi az otleteket, perpill nem egeto problema, a kozeljovoben pedig vegiggondolom az egeszet, aztan meglatjuk, hogy melyik megoldas a legszimpatikusabb, es mit lehet atvinni a "vezetesen", vagyis mibe egyezik bele a fonok, es mibe nem.

Mit szólnál ahhoz (már ha az FTP programod támogatja), hogy csinálsz két symlinket a user mappájára, az egyikből olvasni lehet, a másikban meg írni. Ezen tuti kiharapja a fogát az egységsugarú féreg. ;) A user meg boldog, mert FTP-zhet.

Egyébként támogatom az SCP/SFTP ötletét, meg is magyarázhatod, hogy biztonsági okokból és csuhaj de jó lesz nekik. Még örülni is fognak.

A csak iras/csak olvasas dolgot nem tamogatja, a pure-ftpd eleg buta ezen a teren. Proftpd valszeg tamogatna, de ha arra at akarok allni, akkor ki kell sakkozni, hogy azonos mysql adatbazisbol kepes-e dolgozni, mert emiatt nem fogjak atszabni az admin feluletet, az biztos. Utobbival, az sftpvel az a gond, hogy letre kell hoznom akkor n+1 darab felhasznalot, bar vegulis, ahogy Celtic fent kerdezte, elvileg lehet mysqlbol is autholni, de meg akkor is ott van, hogy akkor chrootolnom kell oket egyesevel, mig az ftp demon ezt egyedul megcsinalja ugyesen.
Majd meglatjuk mi lesz, vegiggondolom jol :)

Gondolom jó kis Warez TotalCommanderrel töltik fel a weblapokat. Most nincs kéznél a link, de nálunk is volt ilyen, egy orosz csoport által kiadott Crackben volt benne, hogy minden FTPn feltöltött html/php fileba írja be javascriptet.

na, tehát ha a user gépe fertozott akkor edesmindegy, hogy min éri el a szervert.

Hogyan?

Valóban, azonban egy megfelelő workflow (feltöltés karanténba, módosításokat a felhasználónak megmutatva, majd fájlonként explicit kattintással élesítve azokat) kialakításával azért alaposan csökkenthető a probléma. Esetleg kiegészítve azzal, hogy (és ezt a felhasználási feltételekbe is bele lehet rakni) "a feltöltött oldal utolsó sorának a </html&gt tag-et kell tartalmaznia, az ezt követő karaktereket a rendszer automatikusan levágja."

Csak egy otlet.. Hiszen ha a kliens fertozott ezzel az atkozottal, akkor te csinalhatsz barmit, akkor is be tud lepni.

Viszont ha valahogy egy szurot be tudnal epiteni az Ftp server es a Kliens koze, mondjuk nyujtasz egy Squid proxyt Clamav virusellenorzovel, es ezen keresztul lep fel a serverre, akkor talan mar ki tudsz szurni bizonyos karokozokat. Erre nem tudok megoldast, de sok tapasztalt ember rohangal errefele, hatha tud valaki mondani valami okosat.

http://www.server-side.de/documentation.htm

Sajnos az FTP-nek megvan az a hatranya, mint a HTTP protokollnak, hogy a kommunikacioban resztvevo gepek ezeket a csomagokat kenyelmesen olvashatjak, mert nincs kodolva (plain textben dobalgatjak egymas kozott a csomagokat). Szoval akkor is veszelyben vagy, ha nem virus jatszadozik, hanem csak valaki elcsipte a jelszot.

Es ha valami algoritmus szerint valtoztatnad a jelszavukat?
Pl. az admin-feluleten beirjak az uj jelszavukat, te azt tarolod, es minden ejszaka megvaltoztatod. Pl. ha a jelszo almafa, akkor almafa0421 aprilis 21-en. Ezzel mondjuk megelozned azt is, hogy az ftp-klienssel megjegyeztessek a jelszot (vagy csak az almafat jegyeztetik meg, es moge gepelik a szamokat).

Persze, mint az osszes tobbi itt felsorolt megoldas, ez is csak tuneti kezeles. Ha ott vannak a felhasznalo gepen, akkor mar nagyot nem lehet varazsolni. De mivel ez a wincmd-bol jelszo-lopos, es azt kesobb, mas geprol felhasznalo fereg okozza a topiknyitonak a problemat, ezert lehet probalkozni ilyenekkel. Ha az lenne a gondja, hogy rendszeresen lesniffelik a halozatot, akkor nyilvan mas lenne a megoldas.

Ha ezt tényleg valami warezolt mc okozza, akkor kiszûröd a tettest, és letiltod. Ez nem megoldás? Igy nem szivatod az összes jûzered.
Ráadásul még az sem biztos, hogy más protokol, pl. az sftp jó megoldás lenne, mert mi van, ha a warezolt mc is támogatja?
Esetleg küldetné minden júzernek egy linket egy korrekt ftp progira, hogy azt használja, mert mással gondok voltak?
Vagy ha beruháznál egy viruskeresõre, hogy minden feltöltött fájlt ellenõrizz?
Vagy küldenél minden jûzernek egy "etalon.php" fájlt, azzal, hogy azt töltse fel elõször, változatlan tartalommal? A többi fájlja pedig addig irásvédett marad, amig meg nem gyõzõdsz arról, hogy tényleg változatlan a tartalma.

Hirtelen ennyi jutott eszembe. De ha a fertõzés mechanizmusa az, amire gyanakszol, akkor a viruskeresos megoldáson kivül nem hiszem, hogy lenne más mód is, ami a vétlen jûzerek dolgát nem neheziti meg.

---
Mondjon le!