Kako preziveti katastrofu

Слични документи
WordPress & CSP Polisa Sigurnosti Sadržaja za WordPress Milan Petrović WordCamp Niš

PDO

PowerPoint Presentation

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

EXC_BROSURA_Tour ver_05

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Biz web hosting

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

DWA2

CENOVNIK USLUGA maj godine

3 DNEVNI SEMINAR INTERNET POSLOVANJE TEME: 1. INTERNET POSLOVANJE 2. INTERNET MARKETING, INTERNET PR I ANALITIKA 3. UPRAVLJANJE SADRŽAJEM, DOMENE, HOS

** Osnovni meni

(Microsoft PowerPoint - 903_\216nidari\346_Java Persistence.pptx)

UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPIN ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo (RADNA

PowerPoint Presentation

STUDIJA SLUČAJA: Konsolidacija informatičkog sustava Grada Raba siječanj, Informacijske tehnologije

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

CPHP_19

User's Manual

PowerPoint Presentation

KATALOG ZNANJA IZ INFORMATIKE

PONUDA OGLASNIH PAKETA ZA AGENCIJE ZA NEKRETNINE U SRBIJI I CRNOJ GORI

PowerPoint Presentation

WAMSTER Prezentacija

PowerPoint Presentation

Slide 1

Slide 1

Technology management performance indicators in global country rankings

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

MultiBoot Korisnički priručnik

NA VISINI ZADATKA Modernizacija IT sistema jednog od vodećih medijskih portala u Srbiji

1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om -

FAMILY SAFETY - PORODIČNA BEZBJEDNOST Program Family safety veoma je koristan za ograničavanje sadržaja i aplikacija koje učenici mogu koristiti na šk

PowerPoint Presentation

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

Program_digitalna_akademija_2019_F

(Microsoft PowerPoint - 412_Buni\346 HTV.ppt [Compatibility Mode])

VALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (npis I ejs)

Повезивање са интернетом

Ovaj fajl ima 5 stranica. Prvi i drugi domaći zadatak iz Internet tehnologija, Svi css fajlovi su u folderu css a sve slike su u folderu i

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

Logosoft d.o.o. Grbavička 4, Sarajevo, BiH tel: +387(33) fax:+387(33) ID broj: PDV broj:

PowerPoint Presentation

PowerPoint Presentation

OBAVIJEST PZZ KORISNICIMA Poštovani korisnici programskog rješenja Last2000. Za Vas smo pripremili sljedeće novosti u programu: NOVOSTI

QlikView Training

Introduction to Programming

PowerPoint Presentation

_Outlook

Marijan Gudelj-C.V.

UPUTSTVO ZA PODEŠAVANJE EON MENIJA 1

NIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.

Microsoft Word - MySQL_3.doc

Microsoft Word - WLA-5200AP_QSG_HRV_7modes_1.doc

PowerPoint Presentation

4 dan - DWeb

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

MV Merchandise visibility sistem

Slide 1

PowerPoint Presentation

VMC_upute_MacOS

Upute-podesavanj -accounta

PowerPoint Presentation

Microsoft Word - SYLLABUS -Dinamicki

RA

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Opći uvjeti korištenja servisa e-Račun za državu povezivanjem_obveznici javne nabave_052019_konačna verzija

Apache Maven Bojan Tomić

PowerPoint Presentation

Microsoft Word - R Predmet 14-Strategijski menadzment

Препоруке безбедности мрежних сервиса Copyright 2015 АМРЕС

Europass CV

Microsoft PowerPoint - Topic02 - Serbian.ppt

Projektovanje informacionih sistema i baze podataka

Podešavanje za eduroam – Windows Vista operativni sistem

PowerPoint Presentation

Приручник о полагању матурског испита у образовном профилу Електротехничар информационих технологија - оглед ВЕБ ДИЗАЈН У следећим задацима заокружите

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

PowerPoint-Präsentation

Универзитет у Београду Економски факултет Катедра за економску политику и развој Јавне финансије 2018/19 УПУТСТВО ЗА ПРИЈАВЉИВАЊЕ НА Е-КУРС ИЗ ПРЕДМЕТ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

2019_Brand_Essentials_Sherpa

Excursor Brosura Hoteli PRINT

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Računarski praktikum II - Predavanje 03 - Apache Web server

PowerPoint Presentation

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika BETTER PORTABLE GRAPHICS FORMAT Matej

Slide 1

Wikipedija [[Wikipedija]]

SKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau

Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос

Primjena ICT i WEB 2.0 alata u nastavi

SINTEZA 2019 INTERNATIONAL SCIENTIFIC CONFERENCE ON INFORMATION TECHNOLOGY AND DATA RELATED RESEARCH ADVANCED COMPUTING AND CLOUD COMPUTING INTELIGENT

PowerPoint Presentation

Teorija skupova - blog.sake.ba

Cjeloživotno obrazovanje Seminar - Osobni kompas

Slide 1

Транскрипт:

Kako preživeti katastrofu Svi želimo da radimo na savršenim projektima, ali šta da radimo i kako da se postavimo u stanju haosa?

Igor Hrček, CTO Započeo sam svoje preduzetničko putovanje sa 24 godina i osnovao hosting kompaniju Mint Hosting. Otkako znam za sebe bavim se programiranjem i stvaranjem visokokvalitetnih bagova. Zaljubljenik u rokenrol i kafu. Bogatu karijeru sam započeo kao 8bit Padawan, sad sam 64bit Jedi :)

agenda prezentacije Priča o jednoj katastrofi Zatečeno stanje, Sodoma i Gomora Kako smo preživeli katastrofu Kako da učinite svoj WordPress bezbednijim? Projekat danas Kako ceo projekat izgleda danas? 03

o čemu se radi (2016)? Statistička analiza, kompleksni biznis proračuni Osnovna uloga servisa su kompleksni proračuni zasnovani na unosu velike količine podataka na nedeljnom i mesečnom nivou uz pomoć komplikovane biznis logike. Enterprise grade biznis platforma Platformu koriste velike kompanije u svakodnevnom poslovanju za analizu uspešnosti poslovanja, a na osnovu čijih proračuna vrše dalju optimizaciju poslovanja i planiranje WordPress Kao osnova platforme odabran je WordPress v4.2 (PHP 5.2, MYSQL 5.1, Apache 2.2)... ali razvoj je radila outsource kompanija iz Indije... 04

penetration testing 120 100 80 Rezultati Penetration testa Izveštaj od 74 strane 60 167 bezbednosnih propusta iz svih OWASP Top 10 kategorija 40 20 0 Low Priority Medium Priority High Priority 05

zatečeno stanje WordPress Kompletno paralelan sistem korisnika Paralelan sistem za upravljanje fajlovima Izmišljen Session menadžment umesto WordPress sistema za upravljanje autentifikacijom WPDB zamenjen sa ručnim upitima kroz mysql_query Modifikovano WordPress jezgro Besmislen pokušaj sakrivanja informacije o WordPress-u Razbacani fajlovi po disku Isprepletana biznis logika između tema i dodataka 06

zatečeno stanje kod 07

zatečeno stanje kod 08

zatečeno stanje kod Malo nekog PHP-a...... zatim jedan kompletno besmislen SQL upit ipresecan sa 4 funkcije...... pa onda malo JavaScript koda koji je direktno ubačen u PHP kod...... i čisto da stvar bude zanimljivija, i po koji CSS stil...... a HTML? Pa naravno i malo njega...... praćeno sa tri nove PHP funkcije kriptičnih imena...... kao uvertira za 500 linija JavaScript koda kopiranog sa StackOverflow-a...... i na kraju (ako je to kraj) po koji include drugih fajlova GOTO 1 09

zatečeno stanje kod WordPress template model implementiran na najpogrešniji mogući način. U stvari ovde WordPress ne postoji. PHP fajlovi na koje se direktno šalje POST kako bi se izvršio neki upit i vratio rezultat 72% SQL upita generiše MYSQL Query greške Nijedna jedina PHP klasa! Kompletan kod je proceduralan! Do 8 ugnježdenih for i foreach petlji Promenljive kriptičnih imena 010

zatečeno stanje dokumentacija 011

zatečeno stanje hosting infrastruktura Root pristup preko FTP-a, user root, lozinka!rootroot! PHP 5.2 u vreme kada je PHP 7 odavno dostupan Ne postoji firewall Ne postoji aplikativni firewall 82% SQL upita su deklarisani kao Slow Queries (10+ sekundi) PHP max_execution_time = -1 PHP Memory Limit 1GB Često pucanje konekcije ka server, Error 500 svaki drugi zahtev, nedostatak memorije... Bekap? Nema. 012

zatečeno stanje performanse Zatečeno stanje 40s 6s Realno stanje 013

zatečeno stanje istorijat, procesi... Dokumentacija? Nema. Git? Nema ni toga. Dokumentovana biznis logika? Nope. Roadmap? Ne. Database model? Ni toga. Bilo kakav pisani trag koji bi objasnio zatečeno stanje? Nope. 014

zatečeno stanje najozbiljniji problemi Aplikacija daje kompletno neispravne podatke Aplikacija je veći deo dana nedostupna, na šta se korisnici svaki dan žale Industrijska špijunaža konkurencije je moguća kroz jednostavnu manipulaciju DOM stablom iz browsera! Ne postoji dobro definisan standard za ulaz i izlaz podataka Interfejs aplikacije je izuzetno loš, nefunkcionalan i bagovit Kompletan biznis je skoro kompletno izgubio poverenje od strane krajnjih korisnika Klijent u tom momentu ne razume pojam kvalitetnog koda, pravilnog procesa rada i zašto je dokumentacija neophodna 015

šta dalje? Kako objasniti klijentu stanje stvari? Koju preporuku dati i kako ga savetovati? Da li odustati od projekta? Čak i da ga zakrpimo, ima li to sve smisla? Odakle početi? 016

zavođenje reda bezbednost Kako smo se organizovali? Definisali smo tri kategorije Low, Medium i High Risk Redosled od lakšeg ka težem Rešili smo pitanje bezbednosti servera Uveli smo ModSecurity, monitoring, redovan bekap na udaljenu lokaciju Koje smo probleme imali? Često nije bilo moguće utvrditi u kom momentu se neki kod poziva Izuzetno otežani uslovi testiranja Više verzija jednog te istog fajla Zbog načina na koji je kod pisan, PHP je limitiran na 5.4.42 017

zavođenje reda biznis Kako smo se organizovali? Prepoznali smo najkritičnije probleme koji su zahtevali momentalnu pažnju i rešenje Otvorili smo poseban kanal za feedback i bug report korisnika kako bi smanjili tenzije Otvorena komunikacija o ispravljenim bagovima na nedeljnom nivou Koje smo probleme imali? Tabanje u mraku Nedostatak bilo kakve dokumentacije pomešan sa izuzetno lošim kodom je u nekim momentima činio posao nemogućim 018

zavođenje reda biznis U realnosti? 019

zavođenje reda performanse Kako smo se organizovali? Promenili smo hosting provajdera Zamenili smo zastareli Apache sa nginx app serverom, prebacili bazu na MariaDB 10.1 Izmenili smo 140 modela i dodali indekse Implementirano FastCGI static keširanje za ulogovane korisnike što je dovelo do ubrzanja kompletnog servisa za 96%, uz smanjenje opterećenja za preko 70% Koje smo probleme imali? Standardni pristup keširanju je bio nemoguć Static HTML keširanje se nikada ne koristi na mestima gde postoji razdvajanje prikaza po korisnicima Prevencija curenja podataka Automatizovano odžavanje keša za svakog pojedinačnog korisnika 020

zavođenje reda nakon prvih 6 meseci Kako smo se organizovali? Krenuli smo od najjednostavnijih stvari ka težim Izbegavali smo modifikaciju postojećeg sistema Delovi koji su zahtevali modifikaciju su pisani iz početka (ukoliko je bilo moguće) Veliki deo interfejsa je kompletno razvijen od nule Koje smo probleme imali? Kod koji smo nasledili je bio napisan tako da može da radi samo jednu stvar Izuzetno težak proces integracije ili modifikacije Jako česti bagovi u nekim delovima servisa koji nemaju nikakve direktne veze sa modifikovanim kodom 021

zavođenje reda najgori momenti Prva tri meseca nismo imali pojma gde se nalazimo niti šta radimo Nešto je puklo, situacija je gadna i ne možemo da reagujemo momentalno Osećaj da nismo dorasli zadatku Zašto nam je ovo trebalo u životu? 022

nakon dve godine Izašli smo iz faze stabilizacije Servis je sada potpuno operativan, sve informacije koje se prezentuju su ispravne Poverenje krajnjih korisnika se značajno uvećalo Povećan broj novih korisnika Rešeni (maskirani) osnovni problemi sa performansama i hostingom Fokus na razvoj novih mogućnosti 023

nakon tri godine Kompletan biznis je prepoznat kao unikatan zahvaljujući realizovanim rešenjima Audit izvršen od strane treće kompanije opisao je kompletnu aplikaciju kao pouzdanu Prvi javni API! Migracija od monolitne aplikacije ka mikroservisima Kompletan servis je izazvao veliko interesovanje od strane drugih kompanija koje se bave agregacijom biznis podataka, nakon čega je konačno u maju prodat jednoj od najvećih kompanije tog tipa u USA 024

bitne lekcije Dobro pazite sa kime radite jer to direktno utiče na vaš biznis Novac može da se vrati, vreme ne Nismo dovoljno bogati da bi kupovali jeftine stvari Otovreno priznajte kada niste u stanju da izvedete nešto i potražite pomoć Pravite realne i ostvarive planove Otvoreno, transparentno i smireno komunicirajte u svim situacijama Pišite dokumentaciju Brinite o bezbednosti, redovno testirajte svoj kod Obratite pažnju kod odabira platforme 025

kutija igor.hrcek to je to, nema više mint.rs pitanja & odgovori

hvala J