Zpět na seznam článků     Číst komentáře (0)     Verze pro tisk

Rozhovor s Vlastimilem Pečínkou

Autor: .cCuMiNn.   
28.1.2011

Webový portál Seznam.cz jistě není třeba představovat. Rozhodně totiž jde o nejznámější portál na českém Internetu. Již méně lidí má však skutečnou představu o tom, jak to ve společnosti takového rozsahu chodí, jak a kým je tento portál vyvíjen a spravován. Abyste si mohli tuto představu vytvořit a Seznam.cz pro vás nebyl jen jakousi černou skříňkou, požádal jsem o rozhovor Vlastimila Pečínku, ředitele výzkumu a vývoje v této společnosti. Vzhledem k zaměření našeho portálu se rozhovor ubíral hlavně k otázkám týkajícím se bezpečnosti při vytváření vznikajících aplikací a jejich následnému testování.



Ahoj Vlastimile, webový portál Seznam.cz jistě všichni uživatelé Internetu dobře znají. Menší představu ovšem mají naši čtenáři o vnitřní struktuře společnosti a o průběhu vývoje a testování nových webových aplikací. Rád bych tě proto požádal o rozhovor, který bych vzhledem k zaměření našeho portálu (SOOM.cz) směřoval hlavně k otázkám zabezpečení. Zkus se, prosím, nejprve našim čtenářům trochu představit. Prozraď nám, jaká je tvá pozice ve společnosti Seznam.cz, jakými posty jsi za své roky působení v této společnosti prošel a co je nyní náplní tvé práce.

Na úvod chci poděkovat za možnost vést tento rozhovor zrovna na Soom.cz. Vítám, pokud mohu poodhalovat Seznam.cz v „geekovských" komunitách, pomáhá to bourat určité bariéry.

Aktuálně pracuji na pozici ředitele VaV, což zní velmi korporátně. :) Zastřešuji v Seznam.cz velký tým lidí, který čítá vývojáře, produktové manažery a tzv. oddělení katalogu. Celé je to taková výrobní část společnosti – prostě to místo, kde naše služby interně vznikají. V oddělení je nás nyní zhruba 250, z toho většina vývojářů, dále asi 40 produktově zaměřených lidí a obdobný počet lidí je i v katalogu. Vývojáře lze rozdělit zhruba na tři hlavní skupiny – programátory, webmastery a výzkumníky. Veřejnosti asi málo známé oddělení katalogu má na starosti zejména péči o naše rodinné stříbro – databázi firem.

Já osobně jsem v Seznam.cz a Praze od května 2004, kdy jsem po 8 letech přešel z brněnské firmy ATC, známé především díky Email.cz. Nastoupil jsem jako programátor do nově vzniklého týmu, který začal vytvářet vlastní fulltextové hledání v Seznamu. Asi mi to šlo, a také se tehdejší šéfové rozhodli mě vzdělávat v manažerských dovednostech :), a tak jsem se rok poté vrátil k emailu a dostal jako týmlídr na starosti vývoj tehdy jen seznamáckého freemailu a domovské stránky Seznamu (to jsem ještě netušil, že Email.cz zanedlouho dorazí do Seznamu a budu se podílet na jeho integraci). Seznamu se velmi dařilo (a stále daří) a velmi rychle kapacitně rostl. V roce 2006 došlo k velkým organizačním změnám a já jsem dostal nabídku na post technického ředitele. Až do roku 2009 jsem měl v této pozici na starosti tým vývojářů, unixových administrátorů, helpdesku a interní technické podpory. Seznam.cz je skutečně dynamická firma, a tak v roce 2009 došlo opět k organizačním změnám - k vývojářům jsem přibral i produktové manažery a katalog, naopak nově vzniklému provoznímu oddělení jsem přenechal provozní část bývalého technického oddělení.

Tak nebo tak, dnešní Výzkum a vývoj v Seznamu zastřešuje rozvoj a údržbu našich služeb, včetně obstarávání obsahu. Někdy ho nakupujeme, někdy vytváříme s partnery, někdy vytváříme sami (viz zmiňovaný katalog). Slovo výzkum v názvu oddělení má dva významy- jednak zkoumáme (zajímáme se o) potřeby uživatelů a klientů, jednak skutečně zkoumáme nové technologie nebo postupy – zejména to platí pro fulltext či Sklik, ale i takové Mapy.cz nebo Email.cz jsou velkou výzkumně-technologickou výzvou.

Kolik vývojářů je v současné době zaměstnáno ve společnosti Seznam.cz? Na kolika pobočkách pracují a jak mezi sebou navzájem při vývoji spolupracují a komunikují?

Na jakých platfomách a pomocí jakých programovacích prostředků a nástrojů vyvíjíte své aplikace?

Vývojářů, tedy programátorů, webmasterů a výzkumníků, bude pomalu ku 150, alespoň letos bychom toho počtu měli dosáhnout. Soustředěni jsou primárně na centrále v Praze na Andělu a v Brně u Vídeňské ulice. Pak ještě máme malý detašovaný tým v Českých Budějovicích. Kluci i holky (ano, i děvčata či dámy, chcete-li, v týmu máme) spolu komunikují různě, dle potřeby – jabber, email, videokonference, občas samosebou z pobočky na centrálu a naopak někdo dojede na osobní návštěvu. Samotný vývoj, dokumentaci a požadavky na úpravy ukládáme do Tracu (http://trac.edgewall.org/).

Primárně vyvíjíme pro a na Linuxu – zvolili jsme si již dávno Debian. Emailový tým má ještě v ranku Solaris kvůli úložišti dat postaveném nad ZFS. Vývojáři si volí vývojové nástroje dle libosti – někomu stačí vim či emacs, někdo využívá grafické IDE. Hlavní programovací jazyky jsou C/C++ a Python, historicky jsme převzali nějaké PHP aplikace, ale ty postupně sanujeme. A nové rozvíjející se téma jsou cluster a distribuované výpočty, a tím se do Seznamu dostala dlouhou přehlížená Java.

Jsme jenom lidé a tím pádem nejsme bezchybní. Je proto pochopitelné, hlavně ve chvíli, kdy se nové aplikace vytvářejí ve spolupráci mezi různými vývojovými týmy, že se do těchto aplikací občas dostane i nějaká ta bezpečnostní trhlina, která umožní napadení dat uložených na serverech nebo útoky proti samotným uživatelům. Jaké kroky děláte proto, aby těchto chyb bylo co nejméně? Používáte při vývoji nějaké speciální nástroje a knihovny, které výskyt těchto chyb omezují nebo dokonce vylučují? Jsou vývojáři nějakým způsobem obeznámeni s technikami útoků, které mohou být proti jimi vyvinutým aplikacím vedeny a řídí se při psaní kódu určitými předpisy a pravidly programování bezpečného kódu?

V „oblasti zranitelnosti webových aplikací“ jsme dlouhodobě sázeli na externí spolupráce. Určitě know-how je i interně ve firmě, ale je vidět, jak zejména ruku v ruce s „populační explozí“ – tj. příchod nových posil – se toho know-how rozmělňuje. V roce 2005 či 2006 jsme investovali do vývoje jednoduchého frameworku na psaní webových aplikací. Jednou z motivací byla právě i otázka prevence vůči zranitelnostem. Framework v kombinaci s přístupem programátorů má zabránit většině známých problémů. Externí testy pak pomáhají odhalit to, kde zapracovala slepota k vlastnímu kódu.

Co však nyní pociťuji je to, že máme v týmu spoustu nových lidí a u nich bude potřeba podpory a vzdělávání v této oblasti. Jednak teoretické, aby se seznamovali s tím, co vývoj pro web znamená v otázkách bezpečnosti, jednak praktické – zejména ošetřování vstupů a výstupů z aplikací.

Provádíte před uveřejněním nových aplikací nějaké penetrační testování, nebo není v této oblasti zatím vše na takové úrovni, aby to splňovalo tvé představy?

Týmy se snaží bezpečností testování zajistit, ale k dokonalosti to má stále daleko. Je to však dáno i tím, že nemáme žádné formální testovací oddělení, tedy testy leží na bedrech programátorů.

I přes dodržování všech pravidel bezpečného programování, čas od času nějaký ten šťoural zranitelné místo ve vašich aplikacích objeví. Jaký postup při odhalení zranitelnosti u jejího nálezce preferuješ a který naopak odsuzuješ? Jaký postup bys doporučil pro zažití správných pravidel etického hackingu začínajícím „hackerům“, pokud se jim podaří nějakou tu chybu ve vašich (nebo jakýchkoliv jiných) aplikacích odhalit?

My dva jsme se seznámili právě v situaci vyjasňování si, jaký je ten správný postup. :) Osobně všechny ty tzv. štouraly, kteří se chovají eticky, podporuji. Odhalovat slabá místa a snažit se dokázat si, že to dokážu, je vzrušivý sport a mám pro něj pochopení. Ostatně i já jsem si v programátorských časech toto zažil.

Když zmiňuji etické, tak za etické považuji to, že tento sport v důsledku pomáhá oběma stranám. Hackerům poskytuje uspokojení z tohoto sportu a provozovatelům umožňuje uvědomit si své chyby a poskytovat lepší (bezpečnější) služby svým uživatelům. Správný postup tedy je odhalenou zranitelnost nahlásit provozovateli, dát mu čas ji opravit a pak ji s klidným svědomím zveřejnit.

Špatný postup je nedat provozovateli prostor pro nápravu. Stejně tak špatný postup je, pokud provozovatel odsuzuje tyto aktivity (nebo dokonce podává žaloby). Byl-li dopředu o svých slabinách informován a dostal čas na nápravu, měl by za to děkovat.

Jak se stavíš k tomu, když se nějací „šťourlové“ zvenčí zajímají o zabezpečení vašich aplikací a snaží se jej prolomit (samozřejmě za předpokladu, že při nalezení zranitelnosti dodrží správný postup, který jsi zmínil)? Jsi rád, že se takoví lidé najdou, nebo ti to vadí a byl bys raději, kdyby se webovým aplikacím Seznamu obloukem vyhýbali?

Jednoznačně to dělejte, jen pokud by to mělo být destruktivní, raději se s námi domluvte dopředu na postupu. My děláme služby pro uživatele. Dělají-li to hackeři i s vědomím toho, že sami jsou uživatelé a chtěli by zabezpečené služby, máme tu prostor pro harmonické soužití :)

Stalo se již v historii, že byl Seznam.cz napaden útočníky, kteří napacháli nějaké větší škody? Jakou má pak takové chvání dohru? Podávali jste již například proti nějakému útočníkovi trestní oznámení a s jakým výsledkem?

Nevybavuji si nic, co by bylo tak závažné, že bych si to dodnes musel pamatovat. V minulosti byly pokusy, které spíše nafoukla média. Trestní oznámení podáváme v případech, kdy např. někdo cíleně zcizuje naše data, protože je nutné vyčíslit škodu. Nejsme si vědom, že bychom právně řešili phisingové útoky nebo prolomená jednoduchá hesla. Ale také to nevylučuji.

Co by jsi chtěl v otázkách zabezpečení na Seznamu změnit nebo zlepšit? Máš nějaké plány a cíle do budoucna, kterých by jsi rád v tomto směru dosáhl?

Rozhodně interní osvětu mezi vývojáři a pak nějaký formálnější proces testování zranitelností našich aplikací. V Seznamu spravujeme mnoho služeb a změny, které provádíme, chceme dát na web co nejdříve. Nechci toto svazovat příliš byrokratickým způsobem testování (extrémisti říkají „dej to na web a uživatelé ti to otestují“), zároveň ale u nových projektů nebo rozsáhlejších aktualizací chci větší fokus na tyto testy. Při takové návštěvnosti našich služeb máme už dost velkou zodpovědnost za kvalitu.

Napadá tě něco dalšího, co bys rád naším čtenářům vzkázal?

Rozhodně čtěte soom.cz dále, vzdělávejte se a vy, kteří máte vášeň v objevování zranitelností webových aplikací, testněte i Seznam.cz. Jednou se i třeba s někým setkáme osobně a probereme toho více :)

Děkuji ti za tvůj čas, který jsi mi věnoval. Seznamu přeji mnoho spokojených uživatelů a tobě, aby se ti podařilo naplnit všechny plány, které sis předsevzal.


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1.13/15

1  2  3  4  5    
(známkování jako ve škole)