Model-‑based ¡Intrusion ¡Detec3on ¡ System ¡(IDS) ¡for ¡Smart ¡Meters ¡ ¡ Karthik ¡Pa*abiraman ¡ and ¡Farid ¡Tabrizi ¡ Dependable ¡Systems ¡Lab ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 1 ¡
My ¡Research ¡ • Building ¡fault-‑tolerant ¡and ¡secure ¡so9ware ¡systems ¡ • Applica>on-‑level ¡fault ¡tolerance ¡ – SoFware ¡resilience ¡techniques ¡[DSN’14][DSN’13][DSN’12] ¡ – Web ¡applica3ons’ ¡reliability ¡[ICSE’14][ICSE’14][ESEM’13] ¡ • This ¡talk ¡ – Smart ¡meter ¡security ¡[HASE’14][WRAITS’12] ¡ 2 ¡
Smart ¡Meter ¡Security ¡ ¡ • Smart ¡meter ¡A*acks ¡ – No ¡need ¡for ¡physical ¡presence ¡ – Hard ¡to ¡detect ¡by ¡inspec3on ¡or ¡tes3ng ¡ – AUacks ¡can ¡be ¡large-‑scale ¡ Analog ¡Meter ¡ Smart ¡Meter ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 3 ¡
Security ¡is ¡a ¡concern ¡ 4 ¡
Security ¡is ¡a ¡concern ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 5 ¡
Goal ¡ • Goal: ¡ Make ¡smart ¡meters ¡secure ¡ – Build ¡a ¡host-‑based ¡intrusion ¡detec3on ¡system ¡(IDS) ¡ – Detect ¡aUacks ¡early ¡and ¡stop ¡them ¡ ¡ ¡ • Why ¡is ¡this ¡a ¡new ¡challenge? ¡ – Smart ¡meters ¡have ¡unique ¡constraints ¡that ¡make ¡ them ¡different ¡from ¡other ¡compu3ng ¡devices ¡ – Exis3ng ¡techniques ¡do ¡not ¡offer ¡comprehensive ¡ protec3on ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 6 ¡
Outline ¡ • Mo3va3on ¡and ¡Goal ¡ • Prior ¡work ¡and ¡constraints ¡ • Our ¡approach ¡ • Evalua3on ¡ • Formal ¡modeling ¡ • Conclusion ¡ ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 7 ¡
Prior ¡Work ¡on ¡Smart ¡Meter ¡Security ¡ • Network-‑based ¡IDS ¡[Barbosa-‑10][Berthier-‑11] ¡ • Remote ¡AUesta3on ¡[LeMay-‑09][OMAP-‑11] ¡ Looks ¡Legit! ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 8 ¡
Why ¡(bother ¡with) ¡Host-‑based ¡IDS ¡? ¡ • Defense ¡in ¡depth ¡ – Complement ¡network-‑based ¡IDS: ¡False ¡nega3ves ¡ – Can ¡detect ¡both ¡physical ¡and ¡network ¡aUacks ¡ ¡ • Remote ¡aUesta3on ¡techniques ¡ ¡do ¡not ¡cover ¡ aUacks ¡that ¡change ¡dynamic ¡execu3on ¡of ¡the ¡ meter ¡at ¡run3me, ¡e.g., ¡control-‑flow ¡hijacking ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 9 ¡
Constraints ¡of ¡smart ¡meters ¡ • Performance ¡ – Low-‑cost ¡embedded ¡devices; ¡memory ¡constrained ¡ • No ¡false ¡posi>ves ¡ – False-‑posi3ve ¡rate ¡of ¡1% ¡=> ¡10,000 ¡FPs ¡in ¡1 ¡million ¡meters ¡ • So9ware ¡modifica>on ¡ – SoFware ¡has ¡real-‑3me ¡constraints; ¡no ¡modifica3ons ¡ ¡ • Low ¡cost ¡ – Rules ¡out ¡special ¡cryptographic ¡hardware ¡or ¡other ¡addi3ons ¡ • Coverage ¡of ¡unknown ¡a*acks ¡ – AUacks ¡are ¡rapidly ¡being ¡discovered; ¡zero-‑day ¡aUacks ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 10 ¡
Prior ¡Work ¡on ¡Host-‑based ¡IDS ¡ System ¡ Perfor No ¡False ¡ No ¡So9ware ¡ Low ¡ Unknown ¡ mance ¡ Posi>ves ¡ Modifica>on ¡ Cost ¡ a*acks ¡ Dyck ¡ X ¡ X ¡ NDPDA ¡ X ¡ X ¡ X ¡ HMM/NN/ X ¡ X ¡ X ¡ X ¡ SVM ¡ Sta3s3cal ¡ X ¡ X ¡ X ¡ X ¡ Techniques ¡ No ¡exis3ng ¡host-‑based ¡IDS ¡can ¡sa3sfy ¡all ¡five ¡ constraints: ¡Need ¡for ¡new ¡IDS ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 11 ¡
Outline ¡ • Mo3va3on ¡and ¡Goal ¡ • Prior ¡work ¡and ¡constraints ¡ • Our ¡approach ¡ • Evalua3on ¡ • Formal ¡modeling ¡ • Conclusion ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 12 ¡
Threat ¡model ¡ • Adversary: ¡wants ¡to ¡change ¡the ¡execu3on ¡ path ¡of ¡the ¡soFware ¡(in ¡subtle ¡ways) ¡ Write ¡ Mul3ply ¡ Read ¡ modified ¡data ¡ consump3on ¡ consump3on ¡ to ¡memory ¡ by ¡0.01 ¡ data ¡ Send ¡ Read ¡ consump3on ¡ Consump3on ¡ data ¡to ¡the ¡ data ¡ server ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 13 ¡
Approach ¡ • Build ¡a ¡model ¡of ¡the ¡meter ¡soFware ¡ ¡ – Meters ¡are ¡designed ¡to ¡do ¡specific ¡tasks ¡ Syscall1 ¡ step1 ¡ step4 ¡ step2 ¡ step3 ¡ Syscall2 ¡ Abstract ¡Model ¡ Concrete ¡Model ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 14 ¡
Approach ¡ Syscall1 ¡ step1 ¡ step4 ¡ step2 ¡ step3 ¡ Syscall2 ¡ Abstract ¡Model ¡ Concrete ¡Model ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 15 ¡
Abstract ¡Model ¡ • Build ¡an ¡abstract ¡model ¡based ¡on ¡standard ¡ specifica3ons ¡of ¡smart ¡meter ¡func3onality ¡ Reading ¡data ¡ Calculate ¡ Pass ¡data ¡ ¡to ¡be ¡ from ¡sensors ¡ consump3on ¡ sent ¡to ¡server ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 16 ¡
17 ¡ 1-‑Ini3aliza3on ¡ Controller ¡Processes ¡ 2-‑Check ¡for ¡input ¡ 3-‑Process ¡ commands ¡ ¡ commands ¡ Abstract ¡Model ¡ 6-‑Pass ¡data ¡ ¡to ¡be ¡ 5-‑Calculate ¡ 4-‑Reading ¡data ¡from ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ sent ¡to ¡server ¡ consump3on ¡ sensors ¡ 8-‑Check ¡for ¡ 7-‑Receive ¡ Submit ¡ data ¡to ¡ consump3on ¡data ¡ Availability ¡of ¡the ¡ the ¡ from ¡controller ¡ server ¡ server? ¡ Communica>on ¡Processes ¡ 9-‑Save ¡data ¡to ¡the ¡ Availabl physical ¡storage ¡ e? ¡ 10-‑Read ¡data ¡from ¡ physical ¡storage ¡ 12-‑Check ¡for ¡ 13-‑Send ¡commands ¡ 11-‑Submit ¡all ¡data ¡to ¡ incoming ¡commands ¡ to ¡the ¡controller ¡ the ¡server ¡ from ¡the ¡server ¡
Approach ¡ Syscall1 ¡ step1 ¡ step4 ¡ step2 ¡ step3 ¡ Syscall2 ¡ Abstract ¡Model ¡ Concrete ¡Model ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 18 ¡
Building ¡the ¡concrete ¡model ¡ • Use ¡a ¡tagging ¡system ¡ // ¡<network, ¡serial, ¡b2> ¡ SerialHandler() ¡ { ¡ … ¡ } ¡ • Features ¡ – Ease ¡of ¡use ¡ – Flexibility ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 19 ¡
Concrete ¡Model ¡ 1-‑Ini3alize ¡ segMeterIni3alize ¡ serialIni3alize ¡ setup ¡ 3-‑Process ¡commands ¡ seg_commands.pars ¡ relayCommand ¡ 2-‑Check ¡input ¡ ¡ commands ¡ serialHandler() ¡ parseCommand ¡ 6-‑Pass ¡results ¡to ¡be ¡ ¡ 4-‑Read ¡ 5-‑Calculate ¡consump3on ¡ SubmiUed ¡to ¡server ¡ sensors ¡ segMeterHandler ¡ sendMessage ¡ collectChannelTransduced ¡ collectChannelRMS ¡ collectChannels ¡ powerOutputHandler ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 20 ¡
Approach ¡ Syscall1 ¡ step1 ¡ step4 ¡ step2 ¡ step3 ¡ Syscall2 ¡ Abstract ¡Model ¡ Concrete ¡Model ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 21 ¡
IDS ¡Genera3on: ¡AUack ¡Database ¡ • Build ¡the ¡IDS ¡based ¡on ¡system ¡calls ¡ 7-‑Receive ¡ 8-‑Check ¡for ¡ Submit ¡ consump3on ¡ data ¡to ¡ Availability ¡of ¡ data ¡from ¡ the ¡ the ¡server ¡ server? ¡ controller ¡ AUack ¡ Database ¡ Availa 9-‑Save ¡data ¡to ¡ ble? ¡ the ¡physical ¡ storage ¡ 10-‑Read ¡data ¡ from ¡physical ¡ storage ¡ University ¡of ¡Bri3sh ¡Columbia ¡(UBC) ¡ 22 ¡
Example ¡AUack ¡ • Communica3on ¡interface ¡aUack ¡ Data ¡ spoofing ¡ 7-‑Receive ¡ 6-‑Pass ¡data ¡ ¡to ¡be ¡ consump3on ¡data ¡ sent ¡to ¡server ¡ from ¡controller ¡ Pass ¡data ¡to ¡be ¡sent ¡to ¡the ¡server ¡ Receiver ¡consump>on ¡data ¡from ¡the ¡ controller ¡ serial_handler(): ¡ Save ¡data ¡in ¡ ser2net ¡ sendMessage(): ¡ the ¡buffer ¡ 23 ¡
Recommend
More recommend