Kaip apsaugoti žiniatinklio programas naudojant AWS WAF?



Šis straipsnis jums pasakys, kaip galite apsaugoti žiniatinklio programas naudodami AWS WAF, ir atlikite praktinę demonstraciją.

Šis straipsnis jums pasakys, kaip galite apsaugoti žiniatinklio programas WAF ir tęsite tai praktine demonstracija. Tolimesni patarimai bus aptarti šiame straipsnyje,

Taigi pradėkime tada,





Toliau einant su šiuo straipsniu „Kaip apsaugoti žiniatinklio programas naudojant AWS WAF?“

Pradžia nuo kai kurių pagrindų

AWS teikia tokias paslaugas kaip EC2, ELB (Elastic Load Balancer), S3 (Simple Storage Service), EBS (Elastic Block Storage), kad greitai ir su mažiau CAPEX (CAPital EXpenditure) sukurtų naudingas ir išgalvotas programas. Kuriant šias programas ne mažiau svarbu apsaugoti programą ir apsaugoti duomenis. Jei nebus tinkamai apsaugoti, programos duomenys gali patekti į netinkamas rankas, kaip ir neseniai „Capital One“ įvykis .



„Capital One“ priglobė žiniatinklio programą EC2 ir ji nebuvo tinkamai apsaugota. Buvęs AWS darbuotojas galėjo pasinaudoti šia spraga ir atsisiųsti klientų duomenų iš S3. Vėliau buvo nustatyta, kad iš 30 kitų organizacijų duomenys taip pat buvo atsisiųsti iš AWS. Taigi, norint tai dar kartą pabrėžti, ne tik pakanka sukurti ir sukurti programą, bet ne mažiau svarbu apsaugoti programą.

Naudotas „Capital One“ AWS WAF (žiniatinklio programų užkarda) apsaugoti žiniatinklio programą, tačiau ji nebuvo tinkamai sukonfigūruota, todėl įsilaužėlis galėjo pasiekti S3 duomenis ir juos atsisiųsti. Šiame straipsnyje mes ištirsime, kaip naudoti ir konfigūruoti AWS WAF, kad apsisaugotumėte nuo įprastų žiniatinklio atakų, tokių kaip „SQL Injection“, XSS („Cross Site Scripting“) ir kt. AWS WAF turi būti sukonfigūruotas kartu su Programos apkrovos balansavimo priemonė , „CloudFront“ arba „API Gateway“. Šiame scenarijuje naudosime „Application Load Balancer“. Bet kokia kliento užklausa per naršyklę bus perduodama per AWS WAF, tada į „Application Load Balancer“ ir galiausiai į EC2 žiniatinklio programą. AWS WAF gali būti naudojamas blokuoti kenkėjišką užklausą nuo įsilaužėlių, naudodamas taisyklių ir sąlygų rinkinį.

Vaizdas - saugios interneto programos naudojant AWS WAF - „Edureka“

Toliau einant su šiuo straipsniu „Kaip apsaugoti žiniatinklio programas naudojant AWS WAF?“



Veiksmų seka norint pradėti naudotis AWS WAF

1 žingsnis: Pažeidžiamos žiniatinklio programos kūrimas,

Pirmasis žingsnis yra sukurti žiniatinklio programą, kuri yra pažeidžiama SSRF (Server Side Request Forgery) atakoms, kaip minėta šiame Tinklaraštis apie tai, kaip įvyko „Capital One“ išpuolis. Šiame tinklaraštyje pateikiama veiksmų seka:

  1. Sukurkite EC2
  2. Įdiekite reikiamą programinę įrangą, kad sukurtumėte žiniatinklio programą su SSRF pažeidžiamumu
  3. Kurti ir IAM vaidmenį naudojant S3 tik skaitymo teises
  4. Pridėkite IAM vaidmenį prie EC2
  5. Galiausiai, pasinaudokite SSRF pažeidžiamumu, kad gautumėte saugos kredencialus, susijusius su IAM vaidmeniu.

Atlikę veiksmų seką minėtame tinklaraštyje, pakeiskite 5.6.7.8 žemiau esančiame URL EC2 viešuoju IP adresu ir atidarykite jį naršyklėje. Su IAM vaidmeniu susieti saugos duomenys turėtų būti rodomi naršyklėje, kaip parodyta žemiau. Taip iš esmės buvo įsilaužta į „Capital One“. Turėdamas saugos kredencialus, įsilaužėlis galėjo atsisiųsti duomenis naudodamasis kitomis AWS paslaugomis, tokiomis kaip S3.

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

2 žingsnis: Programos apkrovos balansavimo priemonės kūrimas

AWS WAF negalima tiesiogiai susieti su žiniatinklio programa. Bet gali būti susieta tik su „Application Load Balancer“, „CloudFront“ ir „API Gateway“. Šioje pamokoje mes sukursime Programos apkrovos balansavimo priemonė ir AWS WAF susiejimas su tuo pačiu.

2a žingsnis: Tikslinė grupė yra EC2 egzempliorių rinkinys, kurį reikia sukurti prieš kuriant programų apkrovos balansavimo priemonę. EC2 valdymo konsolėje kairiajame srityje spustelėkite tikslinę grupę ir spustelėkite „Sukurti tikslinę grupę“.

2b žingsnis: Įveskite tikslinės grupės pavadinimą ir spustelėkite „Sukurti“. Tikslinė grupė bus sėkmingai sukurta.

2c žingsnis: Įsitikinkite, kad pasirinkta Tikslinė grupė, spustelėkite skirtuką Tikslai ir spustelėkite Redaguoti, kad užregistruotumėte EC2 egzempliorius Tikslinėje grupėje.

2d žingsnis: Pasirinkite EC2 egzempliorių ir spustelėkite „Pridėti prie registruoto“ ir spustelėkite „Išsaugoti“.

kas yra duomenų mokslo kursas

Egzemplioriai turėtų būti užregistruoti, kaip parodyta žemiau tikslinėje grupėje.

2e žingsnis: Laikas sukurti programos apkrovos balansavimo priemonę. Kairiajame „EC2 Management Console“ srityje spustelėkite ant „Load Balancer“ ir spustelėkite „Create Load Balancer“.

Spustelėkite „Kurti“, skirtą „Programos apkrovos balansui“.

Toliau einant su šiuo straipsniu „Kaip apsaugoti žiniatinklio programas naudojant AWS WAF?“

2f žingsnis: Įveskite programos apkrovos balansavimo priemonės pavadinimą. Įsitikinkite, kad pasirinktos visos prieinamumo zonos, ir spustelėkite Pirmyn.

2g žingsnis: Skiltyje „Konfigūruoti saugos nustatymus“ spustelėkite Pirmyn.

Skiltyje „Konfigūruoti saugos grupes“ sukurkite naują saugos grupę arba pasirinkite vieną iš esamos saugos grupės. Įsitikinkite, kad atidarytas 80 prievadas, norint pasiekti EC2 tinklalapį. Spustelėkite Pirmyn.

2 val. Žingsnis: Skiltyje „Konfigūruoti maršrutą“ pasirinkite „Esama tikslinė grupė“ ir pasirinkite tą, kuri buvo sukurta ankstesniame etape. Spustelėkite Pirmyn.

2i žingsnis: Tiksliniai EC2 egzemplioriai jau buvo užregistruoti kaip tikslinių grupių dalis. Taigi skirtuke „Registruoti tikslą“ be jokių pakeitimų spustelėkite Pirmyn.

2j žingsnis: Galiausiai peržiūrėkite visą „Application Load Balancer“ išsamią informaciją ir spustelėkite „Kurti“. Programos apkrovos balansatorius būtų sukurtas taip, kaip parodyta žemiau.

2k žingsnis: Gaukite domeno pavadinimą „Application Load Balancer“ ir pakeiskite paryškintą tekstą žemiau esančiame URL ir atidarykite tą patį naršyklėje. Atkreipkite dėmesį, kad mes prieiname prie žiniatinklio programos per „Application Load Balancer“ ir saugos patvirtinimo duomenys rodomi taip, kaip parodyta žemiau. Toliau pateiktą URL galima užblokuoti naudojant AWS WAF, kaip parodyta tolesniuose veiksmuose, kad būtų sustabdytas saugos kredencialų nutekėjimas.

MyALB-1929899948.us-east-1.elb.amazonaws.com ? url = http: //169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

3 žingsnis: AWS WAF (žiniatinklio programų užkardos) kūrimas

3a žingsnis: Eikite į AWS WAF valdymo pultą ir spustelėkite „Konfigūruoti žiniatinklio ACL“. Rodoma AWS WAF apžvalga. Čia yra AWS WAF hierarchija. Žiniatinklio ACL yra daugybė taisyklių, o taisyklės turi daugybę sąlygų, kurias sukursime atlikdami tolesnius veiksmus. Spustelėkite Pirmyn.

3b žingsnis: Įveskite žiniatinklio ACL pavadinimą, regioną kaip Šiaurės Virdžiniją (arba kur buvo sukurtas EC2), šaltinio tipą nurodykite kaip „Programos apkrovos balansą“ ir galiausiai pasirinkite ankstesniame etape sukurtą programos apkrovos balansavimo priemonę. Spustelėkite Pirmyn.

3c žingsnis: Čia a sąlyga blokuoti konkrečią žiniatinklio programos užklausą turi būti sukurta. Slinkite žemyn ir spustelėkite „Sukurti sąlygą“, skirtą „Eilučių ir regex atitikties sąlygoms“.

3d žingsnis: Įveskite sąlygos pavadinimą, įveskite kaip „String match“, filtruokite „Visi užklausos parametrai“ ir likusius parametrus tiksliai taip, kaip parodyta žemiau. Spustelėkite „Pridėti filtrą“, tada - Kurti. Čia bandome sukurti sąlygą, atitinkančią URL, kuriame užklausos parametro vertė yra 169.254.169.254. Šis IP adresas yra susijęs su EC2 metaduomenys .

3e žingsnis: Dabar pats laikas sukurti taisyklę, kuri yra sąlygų rinkinys. Spustelėkite „Kurti taisyklę“ ir nurodykite parametrus, kaip tiksliai parodyta žemiau. Spustelėkite „Pridėti sąlygą“, Sukurti ir „Peržiūrėkite ir sukurkite“.

Toliau einant su šiuo straipsniu „Kaip apsaugoti žiniatinklio programas naudojant AWS WAF?“

3f žingsnis: Galiausiai peržiūrėkite visą informaciją ir spustelėkite „Patvirtinti ir sukurti“. Žiniatinklio ACL (prieigos valdymo sąrašas) bus sukurtas ir susietas su „Application Load Balancer“, kaip parodyta žemiau.

3g žingsnis: Dabar pabandykite pasiekti „Application Load Balancer“ URL per naršyklę, kaip tai atlikta 2k žingsnis . Šį kartą mes gausime „403 Forbidden“, nes mūsų URL atitinka žiniatinklio ACL sąlygą ir blokuojame. Užklausa niekada nepasiekia „EC2“ programos apkrovos balansavimo priemonės ar žiniatinklio programos. Čia pastebime, kad nors programa leidžia pasiekti saugos duomenis, WAF blokuoja tą patį.

4 žingsnis: Išvalykite šioje pamokoje sukurtus AWS išteklius. Valymas turi būti atliekamas ta pačia tvarka, kaip nurodyta toliau. Taip siekiama užtikrinti, kad AWS sustabdytų atsiskaitymą už susietus išteklius, sukurtus kaip šios mokymo programos dalį.

  • Ištrinti sąlygą taisyklėje
  • Ištrinkite taisyklę iš WebACL
  • Atskirkite ALB „WebACL“
  • Ištrinkite „WebACL“
  • Ištrinti taisyklę
  • Ištrinkite filtrą sąlygoje
  • Ištrinkite sąlygą
  • Ištrinkite ALB ir tikslinę grupę
  • Nutraukti EC2
  • Ištrinkite IAM vaidmenį

Išvada

Kaip minėta anksčiau, sukurti interneto programą naudojant AWS yra labai lengva ir įdomu. Tačiau mes taip pat turime įsitikinti, kad programa yra saugi ir kad duomenys nėra patekę į netinkamas rankas. Apsauga gali būti taikoma keliuose sluoksniuose. Šioje pamokoje matėme, kaip naudoti AWS WAF (žiniatinklio programų užkardą), kad apsaugotumėte žiniatinklio programą nuo atakų, pvz., Suderinimo su EC2 metaduomenų IP adresais. Mes taip pat galėjome naudoti WAF, kad apsisaugotume nuo įprastų atakų, tokių kaip SQL Injection ir XSS (Cross Site Scripting).

Naudojant AWS WAF ar iš tikrųjų bet kurį kitą saugos produktą programa nėra saugi, tačiau produktas turi būti tinkamai sukonfigūruotas. Netinkamai sukonfigūravus, duomenys gali patekti į netinkamas rankas, kaip tai nutiko „Capital One“ ir kitoms organizacijoms. Be to, kitas svarbus dalykas, į kurį reikia atsižvelgti, yra tai, kad saugumas turi būti mąstomas nuo pat pirmos dienos, o ne vėliau prijungtas prie programos.

kurie iš šių pavyzdžių yra kontrolės teiginiai?

Tai baigia šį straipsnį „Kaip apsaugoti žiniatinklio programas naudojant AWS WAF“. Mes taip pat parengėme mokymo programą, apimančią būtent tai, ko jums reikia norint išspręsti Sprendimo architekto egzaminą! Galite pažvelgti į išsamią kursų informaciją mokymai.

Turite mums klausimą? Prašau paminėti tai „Kas yra AWS“ tinklaraščio komentarų skyriuje ir mes su jumis susisieksime.