Komentáře k článku

Globální scan otevřených .git repozitářů

Na začátku července jsem se rozhodl udělat průzkum českého internetu, abych zjistil, kolik webů není správně nakonfigurováno a má povolen přístup ke složce .git s repozitářem. Z dřívějška jsem měl v databázi mnoho webů s tímto problémem a zajímalo mne, jaký je skutečný stav. Průzkum se nakonec rozrostl na celý internet.

Zpět na článek

24 komentářů k článku Globální scan otevřených .git repozitářů:

    1. Vladimír SmitkaAutor příspěvku

      Re: requests ujasneni
      Pravda, nějak jsem to v dokumentaci přehlédnul (nebo jsem v ten moment ještě nevěděl, co vlastně hledám) a zbytečně si tak přidělal práci…

  1. Michal Krause

    Not Found místo Forbidden?
    Nebylo by v těch pravidlech pro webové servery lepší vracet rovnou Not Found místo Forbidden? Přeci jen takhle může útočník předpokládat, že tam ten soubor/složka je, a hledat jiné způsoby jak se k nim dostat třeba prostřednictvím útoku na aplikaci.

    Jinak díky za záslužnou práci, díky ní jsem také napravil jeden web, kde omylem patřičné pravidlo chybělo.

  2. Vojtěch Flaiming Oram

    Super článek a hlavně skvělá a užitečná práce :) Jinak u requests jsem taky narazil na stejný problém s timeouty, ale řešil jsem to s pomocí signálů (konkrétně SIGALRM). To funguje taky.

  3. Pavel

    Výborný článek
    Tesat do kamene, včetně obrázků a grafů! Výborný článek, nad jehož podstatou by se měli zamyslet všichni programátoři. Ať používají GIT, TFS a ať programují v PHP, Javě, .Netu nebo čemkoliv jiném.

  4. Ondrej

    Neni me jasne
    Nejak me neni jasne jak se to nekomu povedlo treba u ror/djanga atp u php resp sdilenejch hostingu kam nahraju script a ono to funguje to chapu, pustim uwsgi, prehodim pred to treba nginx a je to, abych zpristupnil adresar tak bych se dal musel hrabat v konfiguraci. Kazdopadne zajimavej clanek dik!

    1. Vladimír SmitkaAutor příspěvku

      Re: Neni me jasne
      To je vlastně hodně dobrá otázka. Prozkoumal jsem několik webů, které to tak (ještě) mají.

      Vždy tam byl předřazený Apache nebo Nginx, který byl s největší pravděpodobností nastaven tak aby servíroval statické (nebo možná existující) soubory. Bohužel bez omezení na složku /static (což je běžné ve světě Pythonu). Z většiny tak bylo možné stahovat přímo *.py soubory, což je ještě mnohem horší problém…

      1. Ondrej

        Re: Neni me jasne
        To je masakr, ani by me nenapadlo ze nekdo neomezi servirovani static veci na slozku. Jinak treba v takovem settings. py u djanga bejva vyplnenej i email administratora, u ostatnich bude urcite taky neco, tak i tam by slo cerpat emaily.

  5. lenoch

    Já nechápu, proč vůbec někdo nahrává adresář .git na produkční server? To považuji za zásadní chybu. Nahrát ho tam a pak vymýšlet jak zakázat přístup – proboha proč?

    1. Pet

      Re:
      Protoze pouzivaji ten git pro nasazeni a verzovani. Nemusi pak kopirovat veci treba pres ftp a lepe se jim to udrzuje.

    2. daddyy

      Re:
      Já spíše nechápu takovou hloupou otázku, sic je pro mě zarážející že v public diru má někdo .git ale spíše je efektivnější toto vyrobit tak, aby public dir obsahoval opravdu pouze to co je public :-)

  6. Ondrej

    HEAD vs. GET
    Jinak mě napadlo, nebylo by lepší v tomto scanovacím případě používat na místo GETu HEAD metodu? Nemusíš čekat než server vrátí tělo HEAD souboru i když jasný, tam skoro nic není…

    Neuvažoval jsi na to scanování použít celery, jestli znáš? Přímo se mě to na to nabízí, než do toho tahat nějaké php prvky co si tahají něco ze seznamu…

    1. Vladimír SmitkaAutor příspěvku

      Re: HEAD vs. GET
      Ano, to jsou dobré triky, přesně toto hojně používáme v našem nástroji PPC Robot pro základní kontrolu URL adres – celery nám řídí frontu a URL checkery posílají jen HEAD. Bohužel né všechny servery HEAD akceptují a také se někdy stává, že i na neexistující stránku vrátí web 200… S GETem a kontrolou obsahu je větší jistota. Pokud bych chtěl jen najít co nejvíce „cílů“ v co nejmenším čase a nevadilo mi tolik false positive, tak by to bylo super řešení. Rozdávání úkolů lze řešit mnoha lepšími způsoby, než to, jak jsem to provedl já. PHP bylo po ruce a měl jsem to hotové za pár minut a mohl jsem si to hostovat na běžném webserveru.

      Každopádně je super přicházet s dalšími nápady, jak to udělat v některých oblastech lépe. Může se to hodit pro budoucí obdobné projekty. Já to nabastlil tak, abych s co nejmenším úsilím dosáhl výsledku (což je patrné i z kódu scanneru) :-).

  7. Jakub Vrána

    Klobouk dolů
    Skvělý nápad, ambiciózní rozsah, skvělé provedení!

    Mám jen jeden dotaz. Proč zrovna bloky po 2 miliónech domén? S menšími bloky by asi bylo méně problémů. Proč ne třeba 100 tisíc?

    1. Vladimír SmitkaAutor příspěvku

      Re: Klobouk dolů
      Není za tím žádný komplexní důvod. Přišlo mi to jako rozumné číslo. Podle původního CZ scanu jsem si myslel, že prozkoumat 2 miliony domén bude trvat zhruba 2 dny. Chtěl jsem aby každý stroj byl nejvíce samostatný a mohlo na něm běžet co nejvíce věcí paralelně/v loopu. A říkal jsem si, že kdyby náhodou ten stroj padnul, nebo byl zrušen kvůli abuse, tak přijdu max o 2 dny práce, což pro mě bylo akceptovatelné. V reálu se ukázalo, že tak moc věcí paralelně stejně nepustím a také, že blok netrvá 2 dny, ale spíše 3-5 (podle toho jaká část světa na něj padla a jak to bylo zrovna silné VPS) :-)

      Kdybych to opakoval, tak bych volil asi o něco menší blok, někde mezi 500k a milionem. 500k je pořád hodnota, kterou malinko lepší stroje zvládaly nacpat do loopu (možná by zvládly i o něco více).

  8. Petr Jelinek

    Zajimava (a prospesna) zabava. :-)

    Nebylo by pokracovani o papirovani? Mam na mysli, jak probihala komunikace ohledne scanovani, spamu apod. Urcite nejsem sam, koho zajima co ho ceka, kdyz se rozhodne pachat dobro (nebo zlo – podle vkusu kazdyho soudruha). Nejpikantnejsi urcite bude ta vyhruzka od policie. :-)

    Btw, vliv na reputaci se nejspis dostavil – kdys jsem se pokusil v praci otevrit https://smitka.me:

    … has been blocked … category: Suspicious

    1. Vladimír SmitkaAutor příspěvku

      Re:
      Pokračování se chystá, jak jsem psal. Tak bych chtěl zhruba po měsíci postižené weby znovu projet a zjistit, jaký účinek to mělo. Také se zrovna s několika stranami snažím vykomunikovat sdílení jejich nevhodné konfigurace serveru, abych zjistil, kde problém ve skutečnosti vznikl. V plánu mám i detailnější zjištění, kde postižené weby běží, zda z toho nevypadnou nějací „podezřelí“ poskytovatelé.

      Co se týká papírování, tak to mě nenapadlo, že by to někoho mohlo zajímat :-) Co konkrétně by tě zajímalo? Mám tu některé abuse (především z Korei), hezký mail, jaký jsem idiot a podobně. Pak je spousty běžné komunikace, kdy buď já vysvětluji, kde je problém, nebo mi naopak protistrana vysvětluje proč to pro ni problém není. Mail, co jsem posílal já, někdo sdílel na twitteru, mohu ho případně dohledat. Co se týká policie, tak to bohužel (bohudík) nebyla výhružka od policie, ale výhružka policiií s poměrně nudným a neurčitým popisem co je v jejich jurisdikci ilegální. Ošklivější e-maily mi chodí, když posílám upozornění na české obecné kontakty.

      Mimochodem, víš co máte v práci za firewall? Rád bych to prozkoumal :-)

      1. Petr Jelinek

        Re:
        Aha, tak tu výhrůžku jsem špatně pochopil. Takže nepřišlo nic z „oficiálních“ míst?

        No, zajímalo mě, jak například probíhá komunikace s poskytovatelem – jestli je to něco jako „ještě jednou dostaneme hlášku, tak odpojíme“, nebo jestli se spíš snažej zjistit co se děje, jak probíhá přesvědčování o dobrejch úmyslech apod. :-) Došlo i na nějakou žádost o obnovení služeb nebo vyřazení z black listu?

        Bohužel jsem pro Security příliš malej brouk, takže se od nich nic nedozvim (a nikdy jsem se o to nijak zvlášť nezajímal), nicméně hlášky o blokování obsahujou obvykle „Bluecoat“ – netušim, jestli je to název filtru nebo zdroj black listů apod., ale třeba ti to něco řekne…? Každopádně se nejspíš něco změnilo, protože dneska už je to jenom „Warning – Uncategorised Website“. :-)

      2. Martin Hassman

        Re:

        Vladimíre, já tu za sebe cítím prostor pro text, ve kterém by se jen ukázalo jak dobře čí špatně může probíhat taková komunikace.

        V textu by mohly být takové dva příklady dvou (podle tebe) skvělých komunikací (anonymizované, s odstraneným balastem, který není pro čtenáře zajímavý – tj. trochu zkrácené).

        Vedle toho dva zoufalé případy. A pak dva případy mezi (třeba, kde se vzájemně přesvědčujete, zda to je nebo není problém a čí).

        Bylo by to na skvělý článek. V angličtině i češtině. Ty texty už máš, jen z nich něco zajímavého vybrat. Pro lidi, kteří nikdy nikoho neupozorňovali na bezpečnostní problém, by to bylo velmi poučné. My bychom to rádi přetiskli. S poladěním rád pomůžu.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=21755