Projekat
Sanacija portala ASInfo kroz više slojeva zaštite
Portal ASInfo imao je tri različita problema u isto vreme: prisutan malware, dugo zastarelu WordPress temu i dodatke, kao i učestale DDoS napade. Svaki od njih tražio je drugačiju vrstu intervencije, pa sam ih rešavao kao odvojene slojeve, a ne kao jedan neodređen kvar. Klijent je AS Oglas, a potvrđeni okvir rada jeste period od 2022. do 2026. godine.
Autor projekta: Ivan Pantić
Studija slučaja
Problem
Portal ASInfo imao je istovremeno bezbednosni i tehnički problem. Malware je morao da bude uklonjen, dok su zastarela tema i dodaci ugrožavali stabilnost WordPress sistema. Poseban deo izazova bili su učestali DDoS napadi, zbog kojih je trebalo uvesti zaštitu ispred samog sajta.
Rešenje
Očistio sam kod, uklonio malware i ažurirao temu, dodatke i ostale komponente na tada aktuelne verzije. Zatim sam postavio Cloudflare zaštitu kao odgovor na učestale DDoS napade. Obim, trajanje i poreklo tih napada ne navodim, jer ih potvrđeni izvor ne opisuje.
Rezultat
ASInfo je funkcionalno osvežen, zastarele komponente su ažurirane, malware je uklonjen, a ispred sajta je postavljen Cloudflare kao dodatni sloj obrade saobraćaja. Rezultat opisujem u granicama proverljivog, bez tvrdnji o neograničenoj dostupnosti ili potpunoj otpornosti na buduće incidente.
Tri problema koja je rešila sanacija portala ASInfo
Sanacija portala ASInfo nije bila jedan potez, već povezivanje tri odvojena posla. Izvorna stranica potvrđuje prisustvo malware-a, zastarelu temu i dodatke, kao i učestale DDoS napade. Pošto ta tri problema pripadaju različitim slojevima sistema, nisam ih spajao u jedno objašnjenje. Malware je pitanje koda, zastareo softver je pitanje održavanja, a DDoS je pitanje saobraćaja koji dolazi spolja.
Ovakvo razdvajanje pomaže da se svaki korak proceni na svom mestu. Čišćenje koda ne rešava neželjeni saobraćaj, ažuriran dodatak ne uklanja malware sam po sebi, a mrežna zaštita ne pregleda datoteke. Zato sam radio na sve tri strane, ali sa jasnom svešću šta koji sloj može, a šta ne može da reši.
Malware, zastareo softver i DDoS
Kod malware-a cilj čišćenja je da se pronađe i ukloni potvrđeni neželjeni sadržaj. Sama činjenica da je bio prisutan ne govori kojim putem je dospeo na portal, pa incident ne pripisujem određenom dodatku, nalogu ili ranjivosti. Mogu precizno da kažem šta sam uradio, a to je da sam očistio kod i uklonio malware, ali ne i da naknadno konstruišem vektor napada.
Zastarela tema i dodaci bili su zaseban deo zatečenog stanja, a DDoS napadi treći. Ta tri nalaza tretiram kao potvrđene činjenice, dok njihove međusobne uzročne veze ne izmišljam. To što su se pojavili zajedno ne dokazuje da je jedan izazvao drugi.
Ažuriranje teme i dodataka kao poseban posao
Kada se ukloni potvrđeni malware, vidljivi problem može da nestane, ali tehnička osnova i dalje traži proveru. Na ASInfo portalu zastarele komponente bile su poznat deo problema, pa sam čišćenje povezao sa njihovim ažuriranjem, umesto da portal ostane na staroj temi i dodacima koji su već ugrožavali stabilan rad.
Ažuriranje nije pritisak na jedno dugme. Tema, dodaci i jezgro sistema međusobno zavise, pa promena jedne komponente može da utiče na prikaz, administraciju ili funkciju koju druga koristi. Pojedinačne nazive dodataka, verzije i konkretne testove ne navodim, jer nisu potvrđeni. Potvrđen je ishod tog dela posla: komponente su ažurirane, a sajt je funkcionalno osvežen.
Zbog toga ovaj projekat pokazuje razliku između kratke intervencije i uređenja sistema. Kratka intervencija stala bi na trenutno vidljivom problemu. Uređenje obuhvata i komponente koje određuju da li će portal moći normalno da se koristi i održava posle čišćenja. Ne tvrdim da ažuriranje samo po sebi garantuje bezbednost. Ono smanjuje nepotreban rizik zastarelog softvera i olakšava dalje održavanje, ali i dalje traži pažnju i pravovremene odluke.
Cloudflare ispred sajta zbog DDoS napada
Cloudflare je uveden kao odgovor na učestale DDoS napade. Kod takvog saobraćaja cilj zaštitnog sloja je da zahtevi ne stižu svi neposredno do izvornog servera bez prethodne obrade. Time se dobija dodatna tačka na kojoj se saobraćaj filtrira i kontroliše pre nego što optereti aplikaciju.
Obim, trajanje, poreklo i obrazac napada izvor ne navodi, pa rezultat opisujem oprezno: postavljen je dodatni zaštitni sloj za obradu saobraćaja pre dolaska do servera. Ne pripisujem mu brojke o zaustavljenim zahtevima niti procenat dostupnosti, jer takvih podataka nema.
Mrežna zaštita ne zamenjuje održavanje
Cloudflare ne predstavljam kao zamenu za održavanje WordPress-a. Zaštita na mrežnom nivou i uredne aplikacione komponente rešavaju različite probleme. Cloudflare ne uklanja malware iz koda, a ažuriran dodatak nije sistem za obradu velikog broja neželjenih zahteva. Upravo zato je sanacija obuhvatila obe strane, rad unutar aplikacije i zaštitu ispred nje.
Ne tvrdim ni da ovaj sloj pruža apsolutnu zaštitu. Nijedna pojedinačna usluga ne ukida potrebu za nadzorom i reagovanjem kada se uslovi promene. Potvrđen rezultat je uvođenje Cloudflare zaštite, ne garancija da portal više nikada ne može biti nedostupan ili napadnut.
Šta je potvrđeno, a šta ostaje nepoznato
Potvrđeno je da je klijent AS Oglas, da je projekat trajao od 2022. do 2026. godine i da se odnosio na ASInfo. Potvrđeni su prisustvo malware-a, zastarela tema i dodaci koji su ugrožavali stabilnost WordPress-a, kao i učestali DDoS napadi. Potvrđeni radovi su čišćenje koda, uklanjanje malware-a, ažuriranje komponenti i postavljanje Cloudflare zaštite.
Nisu potvrđeni početni vektor kompromitovanja, identitet napadača, konkretan ranjivi dodatak, količina zlonamernog saobraćaja, trajanje prekida niti brojčano poboljšanje performansi. Zato te detalje ne navodim i ne obećavam potpunu bezbednost. Izvedena intervencija i dodatna zaštita ne mogu pošteno da se prevedu u garanciju da nijedan budući problem nije moguć.
Ova granica je važna i za klijenta, ne samo za tačnost teksta. Ako je na sajtu pronađen malware, a istovremeno postoje zastarele komponente, nije automatski dokazano da je baš jedna komponenta bila ulazna tačka. Takav zaključak tražio bi podatke kojih ovde nema. Zato odvajam potvrđenu činjenicu, a to je da je malware uklonjen i da su tema i dodaci ažurirani, od stručne procene da zastareo softver generalno povećava prostor za probleme sa kompatibilnošću i poznatim propustima. Ta procena objašnjava zašto je ažuriranje razumna odluka, ali ne pretvara nepoznat deo istorije incidenta u izmišljenu činjenicu.
Održavanje posle osvežene osnove
Period projekta potvrđuje vremenski okvir saradnje, ali sam po sebi ne govori koliko je pojedinačnih intervencija bilo niti kojim ritmom su obavljane. Zato ne izvodim broj zahvata, rokove ili nivo dostupnosti. Ono što taj okvir jasno stavlja u kontekst jeste da portal ne treba posmatrati kao jednokratno završen proizvod.
WordPress tema i dodaci nastavljaju da dobijaju nove verzije i posle uspešne sanacije. Razumna praksa je da se ažuriranja planiraju, da se prati da li ključne funkcije rade i da se reaguje na upozorenja. Isto važi za zaštitu saobraćaja, jer pravila koja odgovaraju jednom trenutku kasnije mogu tražiti prilagođavanje. To je opšti princip održavanja koji proizlazi iz prirode sistema, ne tvrdnja o posebnom ugovoru zabeleženom za ASInfo.
Stabilan portal na kraju zavisi od više urednih slojeva: koda, komponenti, spoljnog saobraćaja i načina održavanja. U ovom projektu potvrđeni radovi odnosili su se na kod, komponente i Cloudflare, pa ne dodajem neproverene izmene baze, hostinga ili administratorskih naloga, iako su to teme koje u drugim projektima znaju da budu važne.
Ako imaš sličan slojevit problem
Ovaj projekat je dobar primer slojevitog rada: prvo se rešava potvrđeno kompromitovanje, zatim se sređuju poznate zastarele komponente, a zaštita se postavlja tamo gde postoji potvrđen problem sa DDoS napadima. Svaki korak ima svoju svrhu i nijedan ne treba predstavljati kao univerzalno rešenje.
Ako imaš portal sa potvrđenim malware-om, zastarelim WordPress komponentama ili problemom neželjenog saobraćaja, mogu da pregledam dostupne podatke i predložim čišćenje sajta od virusa zasnovano na stvarnom stanju. Pošalji mi informacije o problemu da bih procenio koji sloj prvo treba rešavati.