Security ¡ CS ¡4720 ¡– ¡Web ¡& ¡Mobile ¡Systems ¡ ¡ CS ¡4720 ¡
The ¡Tradi/onal ¡Security ¡Model ¡ • The ¡Firewall ¡Approach ¡ • “Keep ¡the ¡good ¡guys ¡in ¡and ¡the ¡bad ¡guys ¡out” ¡ CS ¡4720 ¡ 2
Distributed ¡System ¡Security ¡ • “Islands ¡of ¡Security” ¡ CS ¡4720 ¡ 3
A ¡Paradigm ¡ShiH ¡without ¡a ¡Clutch ¡ • These ¡models ¡were ¡just ¡fine ¡when ¡corpora/ons ¡ had ¡their ¡own ¡networks ¡ • If ¡you ¡needed ¡in, ¡you ¡used ¡a ¡VPN ¡ • Now ¡the ¡open ¡Internet ¡is ¡used ¡as ¡the ¡main ¡ network ¡ • How ¡does ¡this ¡change ¡the ¡security ¡model? ¡ • Consider ¡this: ¡how ¡do ¡you ¡access ¡a ¡web ¡ service? ¡ CS ¡4720 ¡ 4
A ¡Paradigm ¡ShiH ¡without ¡a ¡Clutch ¡ • Firewall ¡security ¡happens ¡at ¡ the ¡network ¡layer ¡ • But ¡now ¡we ¡need ¡access ¡on ¡a ¡ per-‑applica/on ¡basis ¡ • How ¡can ¡we ¡achieve ¡that? ¡ CS ¡4720 ¡ 5
A ¡Paradigm ¡ShiH ¡without ¡a ¡Clutch ¡ • Web ¡services ¡are ¡designed ¡to ¡penetrate ¡ firewalls, ¡since ¡they ¡use ¡port ¡80 ¡ • Applica/on-‑level ¡security ¡is ¡needed ¡to ¡ examine: ¡ – Who ¡is ¡making ¡a ¡request ¡ – What ¡info ¡is ¡being ¡accessed ¡ – What ¡services ¡is ¡being ¡addressed ¡ • IP ¡based ¡security ¡is ¡s/ll ¡needed ¡though! ¡ CS ¡4720 ¡ 6
Applica/on ¡Security ¡101 ¡ • What ¡are ¡some ¡basic ¡things ¡you ¡do ¡to ¡protect ¡ your ¡system ¡at ¡the ¡applica/on ¡level? ¡ • Catch ¡excep/ons ¡and ¡don’t ¡show ¡detailed ¡error ¡ messages ¡ • Hide ¡interfaces ¡ • “Don’t ¡trust ¡your ¡users” ¡ • Encryp/on ¡ CS ¡4720 ¡ 7
Applica/on ¡Security ¡101 ¡ • Well… ¡shoot. ¡ • Web ¡services: ¡ – Have ¡publically ¡announced ¡interfaces! ¡ – Must ¡return ¡detailed ¡excep/ons ¡to ¡debug ¡systems! ¡ – At ¡some ¡level, ¡must ¡trust ¡users! ¡ • We ¡need ¡security ¡that ¡is ¡basically ¡XML-‑aware ¡ CS ¡4720 ¡ 8
System ¡Security ¡ • Human: ¡social ¡engineering ¡abacks ¡ • Physical: ¡“steal ¡the ¡server ¡itself” ¡ • Network: ¡treat ¡your ¡server ¡like ¡a ¡2 ¡year ¡old ¡ • Opera/ng ¡System: ¡the ¡war ¡con/nues ¡ • Applica/on: ¡just ¡discussed ¡ • Database: ¡protec/ng ¡the ¡data ¡ CS ¡4720 ¡ 9
XML-‑Aware ¡Security ¡ • Must ¡be ¡able ¡to ¡inspect ¡content ¡of ¡network ¡ traffic ¡ • Must ¡be ¡able ¡to ¡make ¡authoriza/on ¡decisions ¡ • Must ¡be ¡able ¡to ¡make ¡authen/ca/on ¡decisions ¡ • Must ¡be ¡able ¡to ¡verify ¡XML ¡as ¡valid ¡for ¡this ¡ transac/on ¡ • Must ¡also ¡deal ¡with ¡confiden/ality ¡and ¡privacy ¡ concerns ¡(encryp/on, ¡message ¡integrity, ¡audit) ¡ CS ¡4720 ¡ 10
Web ¡Service ¡Security ¡Concerns ¡ • Unauthorized ¡Access: ¡people ¡view ¡info ¡that ¡ they ¡shouldn’t ¡from ¡a ¡message ¡ • Unauthorized ¡Altera/on: ¡an ¡abacker ¡modifies ¡ part ¡of ¡a ¡message ¡ • Man-‑in-‑the-‑Middle: ¡an ¡abacker ¡sits ¡in-‑between ¡ two ¡par/es ¡and ¡views ¡messages ¡(or ¡alters ¡ them) ¡as ¡they ¡pass ¡by ¡ • Denial-‑of-‑Service: ¡flood ¡the ¡service ¡with ¡so ¡ many ¡messages ¡that ¡it ¡can’t ¡keep ¡up ¡ CS ¡4720 ¡ 11
Network ¡Level ¡Security ¡ • Let’s ¡start ¡with ¡the ¡basic ¡stuff ¡ • Firewalls ¡ – IP ¡Packet ¡Filtering ¡ • Sta/c ¡Filtering: ¡follow ¡the ¡rules ¡and ¡toss ¡whatever ¡you ¡ see ¡ • Stateful ¡Filtering: ¡allow ¡for ¡dynamically ¡changed ¡rules ¡as ¡ requests ¡go ¡out ¡from ¡inside ¡the ¡firewall ¡ – Packet ¡filtering ¡only ¡works ¡on ¡IP ¡address… ¡not ¡on ¡ the ¡people ¡using ¡the ¡IP ¡address ¡ – Further, ¡no ¡idea ¡what ¡the ¡payload ¡is ¡ CS ¡4720 ¡ 12
Network ¡to ¡Applica/on ¡ • Applica/on-‑specific ¡proxy ¡servers ¡ – A ¡connec/on ¡comes ¡in ¡to ¡the ¡proxy ¡ – It ¡verifies ¡the ¡user ¡and ¡payload ¡ – Then ¡creates ¡a ¡connec/on ¡to ¡the ¡applica/on ¡server ¡ • Disadvantages? ¡ CS ¡4720 ¡ 13
Encryp/on ¡ • Without ¡going ¡too ¡deep ¡into ¡this… ¡ • There ¡are ¡three ¡basic ¡“types” ¡of ¡encryp/on ¡ methodologies ¡that ¡we ¡use ¡on ¡the ¡Internet: ¡ – Symmetric ¡ – Asymmetric ¡ – Digital ¡Signature ¡/ ¡Cer/ficate ¡ • Encryp/on ¡can ¡address: ¡authen/ca/on, ¡ confiden/ality, ¡and ¡integrity ¡of ¡a ¡message ¡ CS ¡4720 ¡ 14
Applica/on ¡Level ¡Security ¡ • Refers ¡to ¡security ¡safeguards ¡built ¡into ¡a ¡ par/cular ¡applica/on ¡and ¡ operate ¡ independently ¡from ¡the ¡network ¡level ¡security ¡ • Authen/ca/on ¡ • Authoriza/on ¡ • Integrity ¡/ ¡Confiden/ality ¡ • Non-‑repudia/on ¡/ ¡Audi/ng ¡ CS ¡4720 ¡ 15
Authen/ca/on ¡ • Verifying ¡that ¡the ¡requester ¡is ¡the ¡requester… ¡ • … ¡and ¡that ¡the ¡service ¡is ¡the ¡service ¡ • This ¡requires ¡a ¡mechanism ¡of ¡“proof ¡of ¡ iden/ty” ¡ • What ¡are ¡some ¡ways ¡accomplish ¡this? ¡ • Username ¡/ ¡password ¡ • Signed ¡Cer/ficates ¡ • Kerberos ¡ CS ¡4720 ¡ 16
Kerberos ¡ • A ¡third ¡party ¡system ¡for ¡authen/ca/on ¡and ¡ encryp/on ¡ • What ¡was ¡Kerberos? ¡ CS ¡4720 ¡ 17
A ¡lible ¡closer ¡to ¡home ¡ ¡ • Netbadge ¡(or ¡more ¡ accurately, ¡ PubCookie) ¡ • hbp:// www.pubcookie.org/ docs/how-‑ pubcookie-‑ works.html ¡ CS ¡4720 ¡ 18
Authoriza/on ¡ • Now ¡that ¡we ¡know ¡who ¡you ¡are, ¡what ¡are ¡you ¡ allowed ¡to ¡do? ¡ • Permissions ¡ • Role-‑based ¡security ¡ • How ¡does ¡this ¡work ¡in ¡a ¡database ¡system? ¡ • How ¡about ¡an ¡opera/ng ¡system? ¡ CS ¡4720 ¡ 19
Integrity ¡/ ¡Confiden/ality ¡ • What ¡happens ¡if ¡a ¡message ¡is: ¡ – Captured ¡and ¡reused? ¡ – Captured ¡and ¡modified? ¡ – Monitored ¡as ¡is ¡passes ¡by ¡in ¡a ¡passive ¡manner? ¡ • How ¡do ¡we ¡verify ¡a ¡message ¡hasn’t ¡been ¡ tampered ¡with? ¡ – Digital ¡signature ¡ • How ¡do ¡we ¡verify ¡it ¡hasn’t ¡been ¡viewed? ¡ – Encryp/on ¡ CS ¡4720 ¡ 20
Non-‑repudia/on ¡/ ¡Audi/ng ¡ • When ¡we’re ¡charging ¡to ¡use ¡a ¡web ¡service, ¡ how ¡do ¡we ¡prove ¡you ¡used ¡the ¡service ¡so ¡we ¡ can ¡charge ¡you? ¡ • How ¡do ¡we ¡track ¡your ¡ac/vi/es? ¡ • Digitally ¡signed ¡logs, ¡effec/vely ¡ • Also ¡saves ¡the ¡cer/ficate ¡used ¡to ¡perform ¡the ¡ transac/on ¡(like ¡a ¡signature ¡on ¡a ¡receipt) ¡ CS ¡4720 ¡ 21
What ¡did ¡this ¡cover? ¡ • Authen/ca/on: ¡ – Cer/ficate ¡authority ¡can ¡vouch ¡for ¡sender ¡ – Username ¡and ¡Password ¡are ¡part ¡of ¡WS-‑Security ¡ – Public/Private ¡key ¡pair ¡ • Integrity/Confiden/ality: ¡ – Signatures ¡ – Encryp/on ¡ – All ¡the ¡good ¡stuff ¡ ¡ CS ¡4720 ¡ 22
Authoriza/on? ¡ • Doesn’t ¡take ¡place ¡at ¡this ¡“transfer” ¡level ¡ • More ¡with ¡user ¡groups ¡in ¡the ¡applica/on ¡ • Database ¡users ¡ • File ¡system ¡permissions ¡ • Have ¡a ¡good ¡role-‑based ¡security ¡policy ¡ – People ¡only ¡have ¡access ¡to ¡just ¡enough ¡info ¡and ¡ nothing ¡more ¡ – Nothing ¡runs ¡as ¡root ¡ – Privileges ¡are ¡given ¡out ¡in ¡a ¡very ¡specific ¡fashion ¡ CS ¡4720 ¡ 23
Non-‑repudia/on? ¡ • Either ¡done ¡through ¡text ¡logs ¡or ¡a ¡DB ¡table ¡ with ¡transac/ons ¡ – Probably ¡a ¡DB ¡table ¡would ¡be ¡beber ¡ • Record ¡the ¡signature ¡and ¡important ¡ac/vi/es ¡ that ¡the ¡user ¡performed ¡ CS ¡4720 ¡ 24
Recommend
More recommend