7. modulis · 7.3
Pieteikšanās: paroles, divu faktoru autentifikācija un brute force uzbrukumi
7. modulis: Drošība · Lasīšanas laiks: 9 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet aizsargāt pieteikšanos savā tīmekļa vietnē ar stiprām parolēm, divu faktoru autentifikāciju un pieteikšanās mēģinājumu ierobežošanu, un zināsiet, kas ir xmlrpc.php.
Galvenie jēdzieni: paroļu pārvaldnieks, paroles frāze, unikāla parole, divu faktoru autentifikācija (2FA, TOTP), piekļuves atslēga (passkey), brute force uzbrukums, pieteikšanās mēģinājumu ierobežošana, wp-login.php piesaiste IP adresei, xmlrpc.php, lietotājvārdi, kas noplūst (REST, ?author=), lietojumprogrammu paroles
Parole: gara un unikāla
Labai parolei ir divas īpašības:
- Gara: garums ir svarīgāks par neparastām rakstzīmēm. Paroles frāze ar četriem vai pieciem nejauši izvēlētiem vārdiem (
zeef-pinguin-oktober-lantaarn) ir stiprāka un vieglāk iegaumējama nekāW8w00rd!. Daudzu valstu kiberdrošības iestādes iesaka unikālu paroli ar vismaz 12 rakstzīmēm, vēlams paroles frāzi. - Unikāla: nekur citur neizmantota. Credential stuffing uzbrukums (nodarbība 7.1) darbojas tikai tad, ja parole tiek atkārtoti izmantota.
Neviens neatceras desmitiem garu unikālu paroļu. Tāpēc izmantojiet paroļu pārvaldnieku: programmu, kas tās Jūsu vietā izveido, saglabā un ievada. Tad Jums jāatceras tikai viena parole: paša pārvaldnieka parole, un to arī aizsargājiet ar divu faktoru autentifikāciju.
Vai parole ir iekļauta zināmā datu noplūdē, varat pārbaudīt vietnē haveibeenpwned.com. Ja Jūsu e-pasta adrese ir noplūdē, mainiet paroli visos pakalpojumos, kur izmantojāt to pašu paroli.
Divu faktoru autentifikācija
Izmantojot divu faktoru autentifikāciju (2FA), pieteikšanās laikā papildus parolei nepieciešams vēl kaut kas: parasti sešu ciparu kods no lietotnes Jūsu tālrunī (autentifikatora, pēc standarta TOTP). Uzlauzējs ar Jūsu paroli vien tad vēl nevarēs iekļūt.
WordPress nav iebūvētas divu faktoru autentifikācijas. To pievienojat ar spraudni. To ir daudz; vienkāršs piemērs ir Two Factor, ko izveidojuši paša WordPress veidotāji. Arī drošības spraudņiem tas bieži ir iebūvēts. Izvēloties pievērsiet uzmanību:
- TOTP lietotnēm un rezerves kodiem (gadījumam, ja tālrunis pazūd); kodi pa e-pastu ir vājāki, jo arī pasta kastīti var uzlauzt;
- iespējai to padarīt obligātu administratoriem un redaktoriem;
- piekļuves atslēgām (passkeys): pieteikšanās ar pirksta nospiedumu, seju vai drošības atslēgu, bez paroles. Tam arī ir spraudņi. Piekļuves atslēgas ir noturīgas pret pikšķerēšanu, jo tās darbojas tikai īstajā tīmekļa vietnē.
Ieslēdziet divu faktoru autentifikāciju arī visur ap Jūsu tīmekļa vietni: mitināšanas panelī, e-pastā, pie reģistratora un paroļu pārvaldniekā. Uzlauzējam, kas pārņem Jūsu mitināšanas paneli, Jūsu WordPress parole nav vajadzīga.
Brute force uzbrukumi un pieteikšanās mēģinājumu ierobežošana
Atvērta WordPress tīmekļa vietne visu dienu saņem pieteikšanās mēģinājumus adresē wp-login.php, bieži ar lietotājvārdu admin un biežāk lietoto paroļu sarakstiem. Ar garu paroli un 2FA uzbrucēji nevarēs iekļūt, taču katrs mēģinājums Jūsu serverim prasa aprēķinu resursus (pilna WordPress ielāde). Liela uzbrukumu viļņa gadījumā Jūsu tīmekļa vietne kļūst lēna.
WordPress pats pieteikšanās mēģinājumu skaitu neierobežo. Palīdz, secībā no "aptur agrāk" uz "aptur vēlāk":
- Servera līmenī: daudzi mitināšanas pakalpojumu sniedzēji bloķē IP adresi, kas īsā laikā veic daudz neveiksmīgu mēģinājumu, pirms vēl WordPress sācis darboties (ar ugunsmūri vai tīmekļa servera funkciju). Jautājiet savam mitināšanas pakalpojumu sniedzējam, kas notiek.
- wp-login.php tikai Jūsu IP adresei: ar dažām rindām failā
.htaccess(ar LiteSpeed un Apache):
<Files wp-login.php>
Require ip 192.0.2.10
</Files>Tas darbojas labi, ja Jums ir fiksēta IP adrese. Ja tādas nav (mājās, tālrunī), tad, mainoties adresei, Jūs paši sev aizslēgsiet piekļuvi. Alternatīva ir papildu parole pieteikšanās lapai ("aizsargāta mape", basic authentication) ar citu paroli nekā Jūsu WordPress parole.
- Spraudnis, kas ierobežo mēģinājumus: pēc piecām neveiksmīgām reizēm IP adrese tiek uz laiku bloķēta. Darbojas, bet tikai pēc tam, kad WordPress jau ir ielādēts, tātad aprēķinu slodze paliek.
Pieteikšanās lapas slēpšana vai pārdēvēšana (piemēram, /mana-pieteiksanas nevis /wp-login.php) samazina troksni Jūsu žurnālā. Tā nav īsta aizsardzība, un daži spraudņi un tēmas sagaida standarta adresi. Labs papildinājums, bet nekad vienīgais aizstājējs labai parolei un 2FA.
xmlrpc.php
xmlrpc.php ir veca saskarne no laika pirms REST API, caur kuru lietotnes un citas tīmekļa vietnes sazinās ar WordPress. To joprojām izmanto dažas lietotnes, Jetpack un daži sasaistes mehānismi. Lielākajai daļai tīmekļa vietņu tas ir lieks.
Uzlauzēji labprāt izmanto xmlrpc.php, jo ar vienu pieprasījumu var izmēģināt simtiem paroļu vienlaikus (ar funkciju system.multicall), un jo to var izmantot ļaunprātīgi uzbrukumiem citām tīmekļa vietnēm (pingback). Ko darīt:
- Ja Jūs to neizmantojat: bloķējiet to. Daži mitināšanas pakalpojumu sniedzēji, tostarp WebOké, pēc noklusējuma bloķē xmlrpc.php servera līmenī. Citādi ar rindu failā
.htaccessvai ar drošības spraudni. - Ja Jūs to izmantojat (piemēram, lietotnei, kurai tas nepieciešams): atstājiet to atvērtu, bet nodrošiniet stiprus paroles, 2FA un mēģinājumu ierobežošanu. Modernas lietotnes parasti izmanto REST API ar lietojumprogrammas paroli (nodarbība 3.3).
Lietotājvārdi, kas noplūst
Nodarbībā 3.3 Jūs redzējāt, ka WordPress parāda lietotājvārdu atvasinājumu:
https://example.com/?author=1pāradresē uz/author/<vards>/;https://example.com/wp-json/wp/v2/usersparāda sarakstu ar visu to lietotāju slugiem, kuri kaut ko publicējuši.
Vai tas ir ļauni? Lietotājvārds nav parole. Ar garu unikālu paroli un 2FA tas gandrīz neko nemaina. Taču tas sniedz uzlauzējam pusi no pieteikšanās datiem un atvieglo mērķtiecīgu pikšķerēšanu. Saprātīgi pasākumi:
- piešķiriet administratoriem lietotājvārdu, kas nav viņu publiskais vārds, un nepublicējiet ar administratora kontu (nodarbība 3.3);
- ierobežojiet lietotāju sarakstu REST API ar drošības spraudni vai dažām koda rindām, ja tas Jums nav vajadzīgs. Nebloķējiet REST API pilnībā: bloku redaktoram un daudziem spraudņiem tas ir nepieciešams.
Lietojumprogrammu paroles
Lietojumprogrammu paroles (nodarbība 3.3) ir drošs veids, kā piešķirt piekļuvi lietotnei vai sistēmai, bet tās apiet Jūsu divu faktoru autentifikāciju: lietotnei ar lietojumprogrammas paroli kods nav vajadzīgs. Izveidojiet tās tikai tad, ja tas ir nepieciešams, kontā ar zemu lomu, un atsauciet tās, kad vairs neizmantojat attiecīgo sasaisti.
Kopsavilkums
- Izmantojiet garas, unikālas paroles (paroles frāzes) paroļu pārvaldniekā.
- Ieslēdziet divu faktoru autentifikāciju, izmantojot spraudni WordPress, kā arī mitināšanas panelī, e-pastā un pie reģistratora.
- Apturiet pieteikšanās mēģinājumus pēc iespējas agrāk: servera līmenī, ar IP noteikumu vai papildu paroli, vai ar spraudni.
- Bloķējiet xmlrpc.php, ja to neizmantojat.
- Noplūduši lietotājvārdi nav katastrofa, bet gan signāls: nepublicējiet kā administrators un ierobežojiet REST lietotāju sarakstu, ja tas nav vajadzīgs.
Tests (quiz)
Uzdevums
Uzdevums A7.3: Ko Jūsu tīmekļa vietne atklāj, piesakoties? Ievadiet savas tīmekļa vietnes adresi un apliecināt, ka tā ir Jūsu pašu tīmekļa vietne (ar uzdevuma kodu kā TXT ierakstu vai failu). Programma pārbauda trīs lietas: vai xmlrpc.php atgriež funkciju sarakstu (atvērts) vai ir bloķēts, vai /wp-json/wp/v2/users parāda lietotājvārdus (slugus), un uz kurieni pāradresē /?author=1. Norādiet, vai Jums xmlrpc.php ir vajadzīgs; ja nē, atvērts xmlrpc.php tiks atzīmēts sarkanā krāsā. Noplūduši slugi tiek atzīmēti oranžā krāsā ar skaidrojumu.
Uzdevums D7.3: Divu faktoru autentifikācijas ieslēgšana. Ieslēdziet divu faktoru autentifikāciju visiem Jūsu WordPress tīmekļa vietnes administratoriem, kā arī mitināšanas panelī un e-pastā. Saglabājiet rezerves kodus savā paroļu pārvaldniekā. Atzīmējiet par katru sastāvdaļu, ka tā ir ieslēgta, un pierakstiet, kuru metodi izmantojat (lietotne, piekļuves atslēga, e-pasts) un kur atrodas rezerves kodi. Pierakstiet arī, kā Jūs papildus aizsargājat wp-login.php un kāpēc izvēlējāties tieši šo veidu.
Uzdevums D7.3: Divu faktoru autentifikācijas ieslēgšana
Šo uzdevumu veicat paši; neviens to nepārbauda. Atzīmējiet, ko esat izdarījuši, un atzīmējiet uzdevumu kā paveiktu.
Administratoriem izmantojiet drīzāk lietotni vai piekļuves atslēgu (passkey), nevis tikai e-pastu. Fiksētu IP adresi varat atļaut piekļūt wp-login.php; ja adreses mainās, labāk piemērots ir pieteikšanās mēģinājumu ierobežojums.
Jūsu atzīmes un piezīmes paliek tikai šajā pārlūkprogrammā; mēs tās nekur nesūtām. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums ir paveikts.
Papildu lasāmviela
Šie raksti apraksta darbības WebOké paneļos; citos paneļos tās darbojas līdzīgi.
- DirectAdmin rokasgrāmata 3.7: Drošas paroles un kas jādara, ja parole ir noplūdusi
- Divpakāpju verifikācija Mans WebOké un autentifikatora lietotnes iestatīšana
- WordPress: nav piekļuves xmlrpc.php
- WordPress wp-login.php aizsardzība
- DirectAdmin rokasgrāmata 15.9: Ar paroli aizsargāti direktoriji
- Droša pieteikšanās (Veilig Internetten, Nīderlandes valdība): https://veiliginternetten.nl/veilig-inloggen/
- Brute force uzbrukumi (developer.wordpress.org, angļu valodā): https://developer.wordpress.org/advanced-administration/security/brute-force/
