
Pēdējās nedēļas laikā mūsu drošības monitorings reģistrēja simtiem mēģinājumu piekļūt mūsu vietnei. Skaitlis izklausās satraucoši, bet realitāte ir daudz mierīgāka - un šis raksts izskaidros, kāpēc.
Reālu uzbrukumu nav bijis. Visi 616 ārējie drošības notikumi, kas tika reģistrēti no 7. līdz 15. jūlijam, izrādījās automātisku botu radīts troksnis - skeneri, kas masveidā pārbauda tūkstošiem vietņu, meklējot zināmas WordPress ievainojamības. Mūsu vietne nav būvēta uz WordPress, tāpēc meklētie ceļi nekad nav pastāvējuši, un katrs mēģinājums beidzās ar bloķējumu vai 404 kļūdu.
Skaitļi

Ko tieši meklēja - un kāpēc tas ir bīstami neaizsargātai vietnei
Zemāk esošie ceļi ir klasiski WordPress mērķi. Mūsu gadījumā tie bija nekaitīgi, jo šo failu vienkārši nav, taču ir vērts saprast, kāpēc šie konkrētie ceļi vispār tiek meklēti.
/wp-login.php - 273 pieprasījumi, 197 unikālas IP Šis ir WordPress administrēšanas pieteikšanās forma. Boti mēģina brutāla spēka (brute force) uzbrukumus - automātiski pārbauda tūkstošiem lietotājvārdu un paroļu kombināciju, cerot uzminēt derīgu piekļuvi. Ja vietnei ir vājas paroles vai nav pieteikšanās mēģinājumu ierobežojuma, šāds uzbrukums var beigties ar pilnu administratora piekļuvi.
/xmlrpc.php - 255 pieprasījumi, 183 unikālas IP Vecs WordPress saskarnes fails, ko izmanto attālinātai publicēšanai. Tas ir populārs uzbrukumu mērķis divu iemeslu dēļ: to var izmantot paroļu minēšanai daudz ātrāk nekā parasto pieteikšanās formu (simtiem kombināciju vienā pieprasījumā), un to var ļaunprātīgi izmantot DDoS pastiprināšanas uzbrukumos pret trešajām pusēm caur "pingback" funkciju.
/en/wp-json/wp/v2/users/me - 23 pieprasījumi, 21 unikāla IP WordPress REST API galapunkts, kas noklusējumā var atklāt derīgus lietotājvārdus. Pats par sevi tas nav uzbrukums, bet tas ir izlūkošanas solis - uzzinot īstus lietotājvārdus, uzbrucējs var mērķtiecīgāk vērst turpmākos brutāla spēka mēģinājumus.
/.env - 14 pieprasījumi, 12 unikālas IP Šis ir vienīgais mērķis mūsu sarakstā, kam bija reāls kaitējuma potenciāls. .env faili parasti satur datubāzes paroles, API atslēgas un citus noslēpumus. Ja šāds fails ir pieejams no ārpuses (nepareizas servera konfigurācijas dēļ), tā satura noplūde var nozīmēt pilnu sistēmas kompromitāciju - ne tikai vietnes, bet arī saistīto pakalpojumu. Mūsu gadījumā Next.js šo failu neapkalpo publiski, tāpēc visi mēģinājumi beidzās ar 404 vai bloķējumu.
/lv/wp-content/uploads - 7 pieprasījumi, 7 unikālas IP WordPress augšupielādes mape. Ja tā ir nepareizi konfigurēta (piemēram, ļauj izpildīt PHP failus), uzbrucējs, kurš jau ir ieguvis kaut minimālu piekļuvi, var augšupielādēt ļaunprātīgu skriptu un iegūt pilnu kontroli pār serveri.
Kā strādā mūsu drošības monitorings
Šie dati nenāk no parastiem servera žurnāliem - tos analizē mūsu izstrādātā AI drošības sistēma, kas seko līdzi visam ienākošajam trafikam, klasificē katru notikumu pēc smaguma pakāpes un pieņem lēmumu par bloķēšanu reāllaikā. Sistēma ir savienota ar Discord paziņojumu kanālu, kur divas reizes dienā tiek publicēts kopsavilkuma pārskats - cik notikumu bijis, cik bloķēts, vai ir kaut kas, kam pievērst uzmanību.
Papildus regulārajiem pārskatiem sistēmai ir arī tā sauktais page call mehānisms - tiešs steidzams paziņojums izstrādes komandai, kas apiet parasto divreiz dienā kopsavilkumu un brīdina uzreiz, tiklīdz notiek kaut kas, kas prasa tūlītēju reakciju. Atšķirībā no ierastā trokšņa žurnāla (kur simtiem bota pieprasījumu vienkārši tiek reģistrēti un bloķēti klusi), page call ir rezervēts retiem, patiešām nozīmīgiem gadījumiem.
Praktiski page call izskatās šādi: telefonā tiek saņemts tiešs steidzams zvans, kas informē par notikušo. Šo zvanu nevar atlikt (snooze) - lai to apturētu, ir jāpieceļas un jāpieslēdzas sistēmai. Tiklīdz kāds no komandas ir pieslēdzies, page call tiek atslēgts, un sistēma parāda, kurš tieši uzņēmies incidenta risināšanu. Kad problēma novērsta, sistēma pirms palaišanas automātiski pārbauda kodu, kļūdas un ievainojamības - vispirms pirms tas nonāk mūsu privātajā GitHub repozitorijā, tad serverī un visbeidzot tiešsaistes (live) vietnē - lai pārliecinātos, ka visur ir konsekventa un labota versija.
Pēdējā periodā šis mehānisms nostrādāja divas reizes:
Mēģinājums piekļūt
.envfailam - tā kā šis fails var saturēt datubāzes paroles un API atslēgas, sistēma to klasificēja kā augsta riska notikumu un nekavējoties brīdināja komandu, neskatoties uz to, ka pieprasījums tika bloķēts automātiski.gramatika.evoex.eu nepieejamība - kad šī apakšdomēna vietne kļuva nesasniedzama, sistēma to atpazina kā darbības pārtraukumu (nevis drošības incidentu) un uzreiz paziņoja komandai, lai varētu ātri reaģēt un atjaunot pakalpojumu.
Šī divlīmeņu pieeja - klusa žurnalēšana masveida botu trokšņa gadījumā, bet tūlītējs paziņojums retos, patiešām svarīgos gadījumos - ļauj izstrādes komandai nekoncentrēties uz simtiem nekaitīgu skenēšanas mēģinājumu, tajā pašā laikā negarantējot, ka reāli svarīgs notikums paliks nepamanīts līdz nākamajam plānotajam pārskatam.
Izcelsme
Lielākā daļa trafika nāca no ASV (157), Francijas (52), Lielbritānijas (48), Vjetnamas (46), Vācijas (39), Singapūras (36) un Indijas (32). User-Agent virknes bija viltotas kā parasti pārlūki - tipiska botneta pazīme, kas mēģina izskatīties pēc reāla apmeklētāja.
Tendence ir izteikti dilstoša
Notikumu skaits pa dienām (07-07 līdz 07-15): 148 → 137 → 75 → 61 → 110 → 41 → 38 → 13 → 1.
Kritums sakrīt ar 95 IP adrešu pastāvīgu bloķēšanu - aizsardzība strādā tieši tā, kā paredzēts.
Secinājums
Nav bijis neviena veiksmīga uzbrukuma, neviena datu noplūde, neviens forma-spama vai autentifikācijas kļūmes gadījums. Visi mēģinājumi bija automatizēti WordPress skeneri, kas meklēja mērķus, kuru šeit nav. Tas neliecina, ka drošība ir lieka - gluži pretēji, tas parāda, ka pareizi konfigurēta, ne-WordPress arhitektūra un aktīva IP bloķēšana efektīvi novērš pat masveida automatizētus uzbrukumus, pirms tie var sasniegt jebko vērtīgu.

Saistītie pakalpojumi
Gatavs sākt savu projektu?
Aizpildi formu, pastāsti savu ideju, un mēs nosūtīsim mūsu tikšanās kalendāra linku. Izvēlies sev ērtu laiku un datumu, kurā satiksimies tiešsaistē un izrunāsim detaļas! Pēc tam izstrādāsim piedāvājumu!
