Hardware Trojans Hidden in RTL Don’t Cares -...

32
Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies Nicole Fern Shrikant Kulkarni Kwang-Ting (Tim) Cheng UC Santa Barbara 1

Transcript of Hardware Trojans Hidden in RTL Don’t Cares -...

Page 1: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

HardwareTrojansHiddeninRTLDon’tCares-AutomatedInser9onandPreven9onMethodologies

NicoleFernShrikantKulkarni

Kwang-Ting(Tim)Cheng

UCSantaBarbara

1

Page 2: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

MainContribu9ons

•  ProposeanovelTrojantypeu9lizingRTLdon’tcarestoleakinternalcircuitnodevalueswithoutchangingoriginalcircuitfunc9onality

•  FormulateanautomatedTrojaninser9onandpreven9onmethodology

•  ApplymethodologytoanEllip9cCurveprocessorwithover500don’tcarebits

2

Page 3: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

HardwareTrojans

•  Maliciouscircuitryinsertedinthehardwaredesign

•  Canbeinsertedbyanypartywithaccesstothedesign!

•  Goals:leakinforma9on,inducefaults,chipfailure,gainrootprivileges,etc.

3

Page 4: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

TrojanClasses

1.  Thelogicfunc9onsofsomedesignsignalsarealtered,systemspecifica9onsareviolated

2.  TheTrojanleaksinforma9onthroughside-channels

3.   Thelogicfunc2onsofonlythosedesignsignalswhichhaveunspecifiedbehaviorarealteredtoaddmaliciousfunc2onalitywithoutviola2ngsystemspecifica2ons

4

Page 5: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

ThreatModel

•  AtRTorgatelevel,assignvaluesor9eotherinternaldesignsignalstoRTLdon’t-carestoaccomplishmaliciousfunc9onality

•  MaliciousCADtool,disgruntledemployee,anyonewithaccesstomodifyRTLornetlist

•  PerfectequivalencecheckercannotdetectthisTrojantype!

5

Page 6: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

PriorWork

•  IPwatermarkingbyembeddinginforma9onintheassignmentofdon’tcarevalues1

•  Trojansexploi9ngincompletelyspecifiedstatetransi9onandoutputfunc9ons2

1.  G.QuandL.Yuan.SecureHardwareIPsbyDigitalWatermark.InIntroduc9ontoHardwareSecurityandTrust,pages123–141.SpringerNewYork,2012.

2.  C.DunbarandG.Qu.DesigningTrustedEmbeddedSystemsfromFiniteStateMachines.ACMTransac9onsonEmbeddedCompu9ngSystems(TECS),2014.

6

Page 7: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Example1

Whencontrol==2’b11,wecanleakthekey!

7

Page 8: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Example1

The4don’tcarebitsaredangerousbecause:

1.  Thedon’tcaresarereachable2.  Aprimaryoutput(whichtheaeackercan

observe)differsdependingonthevalueofthedon’tcarebits

8

Page 9: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Sowhynotsimplyremovealldon’tcaresfromtheVerilogcode?

Don’tcareshavebeenusedforlogicop9miza9onforseveraldecades!

R.Bergamaschietal.Efficientuseoflargedon’tcaresinhigh-levelandlogicsynthesis.InICCAD,Nov1995.

9

Page 10: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Example2

TruncatedCounter

10

Page 11: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Example2

Unreachabledon’tcares

Reachable,butonly1bitcanpropagatetooutput

Whencounter=100andcontrol=11:

1 xx1

tmp<=data^1x00

100

xx1100&

x00

XPropagatesXBlocked 11

Page 12: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Ellip9cCurveProcessor(ECP)•  ComputesG=[k]P,where[k]isP“mul9plied”byitselfk9mes•  DifficulttodeterminesecretkonlyknowingGandP

C.RebeiroandD.Mukhopadhyay.HighPerformanceEllip9cCurveCrypto-processorforFPGAPlarorms.In12thIEEEVLSIDesignAndTestSymposium,2008.

12

Page 13: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Don’tCaresinControlUnit

•  Duringeachofthe38states,controlsignalscwl[9:0]andcwh[22:0]areassigned

•  Replacingdon’tcareswith0’sleadstoan8%areaincrease!

CodesnippetfromControlUnit(ecsmul.v)

cwh[7:4]areX!

13

Page 14: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

TheECPTrojan•  DuringState15:•  AddressforRegisterBank2isunknown!•  WriteenableforRegisterBank2isunknown!

CodesnippetfromRegisterBankControl(regbank.v) 14

Page 15: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

TheECPTrojan

sxandsyareprimarycircuitoutputs!

Codesnippetfromtoplevelmodule

15

Page 16: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

AutomatedInser9on/Preven9onMethodology

16

Page 17: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

GoalofMethodology

•  Classifyeachdon’tcareasdangerousorsafe•  Dangerousdon’tcarescauseachangeinobservablesignalsbasedoniftheyare0or1

•  Compare2versionsofthedesigneachwithdifferentassignmentsofthedon’tcarebits

17

Page 18: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

EquivalenceCheckingFormula9on•  MikeTurpinproposesusingsequen9alequivalencecheckingtocomparethesamedesignwithitself(withdifferentdon’tcarevaluesinthe2versions)

•  Forscalabilityreasons,were-formulateintermsofcombina2onalequivalencecheckingand“statereachability”

M.Turpin.SolvingVerilogX-IssuesbySequen9allyComparingaDesignwithitself.You’llnevertrustunixdiffagain!InSNUG,2005.

18

Page 19: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

EquivalenceCheckingFormula9on

dci

dcj

a y

dch...

dck...

...

... ...

...

PIs

PPIs

POs

PPOs

C

Q D

Q D

Q D

...

19

Page 20: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

EquivalenceCheckingFormula9on1.  Makealldon’tcarebitsprimaryinputs2.  Create2copiesofthecircuitwheredci=0anddci=13.  CheckifC0andC1areequivalent

a y

a y

XOR

{PIs, PPIs}

{dc0, dcj,…, dcn-1}

{POs, PPOs}

C0

C1

z

dci=0

dci=1

20

Page 21: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

ExcludingUnreachableStates•  Counterexamplecancontainanunreachablestate•  Lextractedusingstatedesignknowledge,dead-code

analysisorreachabilityanalysis

a y

a y

XOR

{PIs, PPIs}

{dc0, dcj,…, dcn-1}

{POs, PPOs}

C0

C1

z

dci=0

dci=1XOR

w

Logic Function L

PPIs 1 if state is unreachable

21

Page 22: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

MethodologyAppliedtoECP

•  572primaryinputbits,467primaryoutputbits,and11232stateelements

•  538don’tcarebits– 282:bitsincwlandcwhduringstates0−38– 33:bitsincwlandcwhduringcasedefault– 233:casedefaultinthequadblkmodule

•  YosysusedtotransformVerilogintoBLIF•  ABCusedforcombina9onalequivalencechecking

22

Page 23: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Classifica9onofDon’tCares

23

Page 24: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Dis9nguishingClasses1and2

•  AtrentaSpyglassToolusedtoperformcodereachabilityfordon’tcaresinRows4-6– NoAssignX-ML:Iden9fiesdon’tcaresonRHSofassignment

– Av_dontcare01:Iden9fiesreachablexassignments

•  Row7don’tcaresreachable,butpropaga9oncondi9onneversa9sfiedforStates1-38– NeedformalpropertycheckertoconfirmRow7don’tcaresaresafe

24

Page 25: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

TrojanPreven9onAreaOverhead•  Evenwithoutanalysisdis9nguishingClasses1and2,theareaoverheadismanageablecomparedwithreplacingalldon’tcarebits

•  AutomatedanalysisuncoveredboththeECPTrojanaswellas33addi9onalbitswithinforma9onleakagepoten9al

25

Page 26: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Conclusions

•  ProposednovelTrojantype•  InsertedTrojaninanEllip9cCurveProcessorwhichleaksallkeybitsduringacyclewithunspecifiedcircuitoutputbehavior

•  Iden9fieddon’tcaresusedinECPTrojanwithautomatedTrojanpreven9onmethodology

26

Page 27: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Ques9ons?

27

Page 28: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

BackupSlides

28

Page 29: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Whyperformequivalencecheckingn9mesinsteadof2nchoose29mes?

•  ndon’tcarebits,2npossiblecircuits•  Ex.n=2,4possiblecircuits,6comparisons

dc0 dc1 CircuitVersion

0 0 A

0 1 B

1 0 C

1 1 D

dc0dc1==dc0dc1? Ifequivalent:

00v.10 A==C

01v.11 B==D

00v.01 A==B

10v.11 C==D

00v.11 A==D

01v.10 B==C

dc0<-0v.dc0<-1withdc1asPI

dc1<-0v.dc1<-1withdc0asPI

Onlyneedtoperformequivalencecheckingtwice!!29

Page 30: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

TypesofRTLX’s•  Don’tCares– Synthesistoolisfreetoassign0or1– Valueknownayersynthesis

•  Unknowns– Unini9alizedorun-drivensignals– Ex.Flip-flopslackingaknownresetvalueorsignalsinaclock-gatedblock

– Unknownun9lopera9onofactualsiliconM.Turpin.TheDangersofLivingwithanX(bugshiddeninyourVerilog).InSNUG,2003.L.PiperandV.Vimjam.X-propaga2onwoes:MaskingbugsatRTLandunnecessarydebugatthenetlist.InDVCon,2012. 30

Page 31: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

X-bugs

•  RTLandgate-levelsimula9ondiscrepancies•  Unintendedpropaga9onofunknownvalues–  Improperresetorpowermanagementsequence

•  NormallyX’sincircuitoutputsduringintermediatecomputa9oncyclesarenotbugs,aslongasthefinalresultiscorrect– ToaddressTrojanthreat,noX’smustappearatoutputsduringanycycle

H.-Z.Chouetal.FindingresetnondeterminisminRTLdesigns:ScalableX-analysismethodologyandcasestudy.InDATE,2010. 31

Page 32: Hardware Trojans Hidden in RTL Don’t Cares - …nicolefern.com/wp-content/uploads/2015/11/ITC...Hardware Trojans Hidden in RTL Don’t Cares - Automated Inser9on and Preven9on Methodologies

Exis9ngX-analysisTools

•  JasperX-prop,AtrentaSpyglass,CadenceIncisive,SynopsysMagellan,etc.

•  RTLandgate-levelsimula9ondiscrepancies•  Unintendedpropaga9onofunknownvalues–  Improperresetorpowermanagementsequence

•  NormallyX’sincircuitoutputsduringintermediatecomputa9oncyclesarenotbugs,aslongasthefinalresultiscorrect

32