AspectJAssessmentfromaSecurityPerspectiveDimaAlhadidi,NadiaBelblidia,MouradDebbabiConcordiaInstituteforInformationSystemsEngineeringConcordiaUniversity,Montreal,Quebec,CanadaEmail:dmalhad@cs.
concordia.
caEmail:nabel@ciise.
concordia.
caEmail:debbabi@ciise.
concordia.
caAbstract—1AspectJisausefulandexpressiveaspectorientedprogrammingextensiontotheJavaprogramminglanguage.
ThispaperaddressestheevaluationofAspectJfromasecurityper-spective.
Moreaccurately,wepresentanassessmentofAspectJprimitivesinordertocopewithsecurityhardeningofJavaapplications.
Moreover,weproposenewconstructsandshowtheirrelevanceandimportanceinhardeningthesecurityofJavaprograms.
I.
MOTIVATIONSANDBACKGROUNDComputersecurityisascienceconcernedwiththecontrolofrisksrelatedtocomputeruse.
Theacceleratingtrendsofin-terconnectedness,extensibility,andcomplexityareincreasingthethreatofsucharisk[1].
ApplicationsecurityhardeningbecomesapriorityandoneofthefastestgrowingeldsinITmarkettoday.
Themaingoalofapplicationsecurityhardeningistoreinforcetheapplicationsecurityandthereforetominimizethelikelihoodofviolatingsecurityproperties.
Alegitimatequestionthatonecouldaskis:"Whatisthemostappropriatecomputationstyleorprogrammingparadigmforsecurityhardening"Anaturalansweristoresorttoanaspectorientedlanguage.
Thisanswerisjustiedbythefactthataspectorientedlanguageshavebeencreatedtodealwiththeseparationofconcerns.
Thisisexactlywhatasecurityengineerneedswhenhardeninganapplication.
Hewouldliketoinjectandstrengthensecuritywithoutdigginginthelogicoftheapplication/middleware.
Aspectorientedprogramming(AOP)[2]hasbeenproposedasawaytoimprovemodularityofsoftwaresystemsbyallowingencapsulationofcrosscuttingconcerns.
Crosscuttingconcernsgenerallyrefertononfunctionalpropertiesofasoftwaresuchassecurity,synchronization,logging,etc.
Whenprogrammed,thesecrosscuttingconcernsresultintangledandscatteredcode.
Inthispaper,weaddressthesecurityhardeningofJavaapplications.
ThemostprominentAOPextensiontoJavaisdenitelyAspectJ[3].
ThebeautifultechnicaldesignisbehindthesuccessandthewideuseofAspectJintheAOPcommunity.
AspectJcomeswithnewconceptsandconstructssuchas:joinpoints,pointcuts,andadvices.
Ajoinpointis1ThisresearchisfundedbyNSERC(NaturalSciencesandEngineeringResearchCouncilofCanada)DND(DepartmentofNationalDefence)grantincollaborationwithBellCanadaandDRDC(DefenceResearchandDevelopmentCanada)atValcartier.
apointinthecontrolowgraphofanapplicationsuchasmethodcall,objectconstruction,oreldaccess.
Apointcutisaconceptthatclassiesjoinpointsinthesamewayatypeclassiesvalues.
Accordingly,AspectJdenesvariouspointcutconstructorstodesignatevariousjoinpoints.
Anadviceisacodefragmentexecutedwhenjoinpointssatisfyingitspointcutarereached.
Thisexecutioncanbedonebefore,after,oraroundaspecicjoinpoint.
Inthispaper,wepresentanassessmentofAspectJfromasecurityhardeningperspective.
Thisamountstoansweringthefollowingquestions:AreAspectJprimitivesexpressiveenoughtoformulateallthecommonsecurityhardeningpracticesIncasetheanswerisnegative,whatarethenewAOPlanguageconstructsthatneededtobeproposedTheremainderofthispaperisstructuredinthefollowingway.
TheappropriatenessofAspectJforsecurityhardeningisdiscussedinSectionII.
SectionIII,IV,andVaredevotedtothedescriptionofdataowpointcut,predicatedcontrolowpointcut,andlooppointcutrespectivelyandtheirusefulnessfromasecuritypointofview.
InSectionVI,wesuggestanewwildcardforpatternmatching.
SectionVIIdiscussestheneedforusingmodierpatternsuchaspublicintypepatternsyntax.
SectionVIIIpresentstheneedforapointcuttopickoutjoinpointsassociatedwithsettingandgettinglocalvariablesinsidelocalmethods.
SectionIXdiscussestheneedforsynchronizedblockpointcut.
SectionXintroducesthemostrelevantrelatedworks.
Finally,afewremarksandadiscussionoffutureresearchareultimatelysketchedasaconclusioninSectionXI.
II.
ASPECTJANDSECURITYThissectionassessesAspectJfromasecuritystandpoint.
AspectJisageneralaspectorientedlanguagethathasnotbeenengineeredwithsecurityinmind.
Inspiteofthis,thecurrentconstructsinAspectJareofagreatuseinsecurityhardening.
Becauseofthespacelimitation,wecannotexhibitpracticalexamplesthatcorroboratetheusefulnessofAspectJconstructs.
AspectJoffersthreekindsofadvicestodescribewhereaspectsaretobeapplied:Before,after,oraround.
Allofthemareimportantfromasecurityhardeningpointofview:Abefore-advicecanbeusedtoinjectsomesecuritycodeasauthenticationbeforeacriticaloperation.
Anafter-adviceismeanttoinjectsomesecuritycodeaftersomelocationsintheprogram.
Forinstance,onecanaddsomeintegritycheckingcode.
Anaround-advicecanbeusedtochangeanon-securemethodbyamoresecureoneatparticularpointsintheprogram.
AspectJhasacomprehensiveandexpressivepointcutspeci-cationlanguagethatallowstospecifyparticularpointsinthecontrolowoftheprogramwhereadvicesaretobeapplied.
Allofthemareimportantfromasecuritystandpoint.
TableIshowstheusefulnessoftheAspectJpointcutsaccordingtothesecuritytarget.
AlthoughAspectJsupportsthoseefcientandusefulpointcutdesignatorsforsecurityhardening,theyarenotenoughtoexpressallthesecurityhardeningpractices.
Indeed,weidentiedthefollowingpossibleextensionstoAspectJ:Dataowpointcut.
Predictedcontrolowpointcut.
Looppointcut.
Wildcardforpatternmatching.
Modiersintypepatternsyntax.
Pointcutsforgettingandsettinglocalvariables.
Synchronizedblockjoinpoints.
Thesesuggestedextensionswillbediscussedindetailsinthefollowingsections.
III.
DATAFLOWPOINTCUTMasuharaandKawauchi[6]havedenedadataowpoint-cutforsecuritypurposesbutthispointcuthasnotbeenimplementedyet.
Thepointcutidentiesjoinpointsbasedontheoriginsofvalues.
Cross-sitescripting(XSS)probleminweb-applicationsisanexamplepresentedbythemtoclarifytheneedforsuchapointcut.
AwebsitemightbevulnerabletoXSSattacksifitreectsinputbacktotheusersuchassearchenginesandshoppingsites.
Cross-sitescripting(XSS)isdescribedinFigure1.
Theydeneadowpointcuttosolvethisproblem.
Thepointcutinterceptsanyjointpointthatprintsanunauthorizedstringtoaclient.
Unauthorizedstringisastringthatiscreatedfromoneoftheclient'sinputparameters.
Sanitizingisusedtoreplacecharactersthatcomefromuntrustedprincipals,andreplacethemwithquotedcharacters.
Throughthispointcut,owofdatacanbetracedandactionscanbedoneaccordingly.
Hereisanotherexamplethatclariestheneedforsuchapointcutinspiredfrom[7].
Ifaprogramopensacondentialle,readsdatafromthisle,andthensendsdataoverthenet,thiswillbeconsidereddangerousfromasecuritypointofview.
Adata-owanalysisusingdowpointcutcantellwhetherthedatasentoverthenetactuallydependsontheinformationreadfromthecondentialle.
Nowarningisneededifthedatasentdonotdependonthedataextractedfromthecondentialle.
TableIIclariesourexample.
IV.
PREDICTEDCONTROLFLOWPOINTCUTKiczales[4]hasproposedthepredictedcontrolowpoint-cutpcflowbutthispointcuthasnotbeenimplementedyet.
Apointcutpcflow(p)matchesatajoinpointiftheremayFig.
1.
Cross-siteScriptingAttackexistapathtoanotherjoinpointwherepmatches.
Kiczaleshasdiscussedthisnewpointcutwithhisknowndrawingexample.
InhisexamplewhichappearsinTableIII,hehasusedpredictedcontrolowpointcuttoselectpointsintheexecutionthatmodifyvariablespreviouslyreadwithinthecontrolowofthemethodFigureElement+.
draw().
Wecangetbenetfromthisexampleusingthesameideabutinadifferentsituationtohardensecurityofapplications.
In[5],authorsspokeaboutdetectingintruderswithvisualdataanalysis.
Basedonthisidea,wecandrawsomechartsforsecurityimportantparameterssuchasleactivity(opening,reading,andwritingles),registryactivity(creating,reading,andwritingregistrykeys),ornetworktrafc.
Thesechartscanbeanalyzedtodiscoverifsomethingwronghappens.
ItispossibletousethesameconceptinKiczales'sexamplecombinedwiththeideaofdetectingintruderswithvisualdataanalysisasfollows.
Anychangesinsecuritychartsbysettingspecicparametersinawayoranotherwillnotonlybereectedinthedisplaybutalsosomenecessarystepsmustbetakeninresponsetosuchchangestoprotectthesystemandapplication.
SoKiczales'sexamplecanberewrittentoserveourpurposesasinTableIV.
V.
LOOPPOINTCUTHarbulotandGurdpresentin[8]aloopjoinpointmodelwhichdemonstratestheneedforamorecomplexjoinpointinAspectJ.
TheirapproachtorecognizeloopsisbasedonSecurityHardeningTargetPointcutMethodcall/executionoraconstructorcall/execution.
call,executionFieldread/write.
get,setSettingsecurityenvironmentduringtheinitializationinitialization,staticinitialization,ofaclassoranobject.
preinitializationExecutioncontext.
args,this,targetExecutingsecurityhardeningcodedependsonaparticularcondition.
ifWithinaparticularclassormethod.
within,withincodeInthecontrolowofotherparticularpoints.
cflow,pcflowLogexceptionsrelatedtosecurity.
handlerTABLEIASPECTJPOINTCUTSANDSECURITYOpenFile//ActionsotherthanOpenFile,ReadFile,orSend.
ReadFile//ActionsotherthanOpenFile,ReadFile,orSend.
//Before-Adviceusingadataowpointcuttotestifthe//datathatwillbesentdependsontheinformationread//fromthele.
SendTABLEIISECURITYDFLOWPOINTCUTpointcut*displayState():pcflow(execution(voidFigureElement+.
draw()))&&get(*FigureElement+.
*);afterset(update();}TABLEIIIKICZALES'SDRAWINGEXAMPLEpointcut*displayState():pcflow(execution(voidSecurityElement+.
draw()))&&get(*SecurityElement+.
*);afterset(update();//Takeanactionaccordingtothetypeofthechange}TABLEIVSECURITYVERSIONOFKICZALES'SEXAMPLEacontrol-owanalysisatthebytecodelevel.
TheyrestrictedtheirstudytoloopsiteratingoveranIteratororarangeofintegers.
Thisresearchlackstheanalysisofinniteloopsandloopsthatcontainbooleanconditions.
Throughpointcutsthatpickoutsuchloops,anexcessivesecurityproblemscanbesolvedeasily.
Aninniteloopisasetofinstructionsthatexecutedrepeatedly.
Thisisconsideredadesiredbehaviorinsomesituationsasindatabaseservers.
Databaseserversloopforeverwaitingforarequesttoprocessit.
Ontheotherhand,inniteloopisconsideredabugwhichismadebyprogrammersunintentionally.
Maliciouscodeisasetofinstructionsthatmakeyoursystemdosomethingthatanattackerwantstodo.
Malicious-codewritersexploitinniteloopstodotheirne-fariousjobsbylaunchingdenial-of-serviceattacks.
Denial-of-serviceattacksconsumesystemresourcesuntiltheapplicationortheentiresystembecomesunusable.
Haltingwebbrowserisanexampleofadenial-of-serviceattackbyrunningacodethatopensadialogwindowinnitenumberoftimes.
Thisattackrequirestherebootoftheworkstation.
Asanotherexample,thecodebelowcanlockthestatuslineatthebottomoftheHotJavabrowser,preventingitfromloadinganymorepages.
Strings="net.
www.
html.
MeteredStream";Objecto=Class.
forName(s);synchronized(o){while(true)Thread.
sleep(10000);}ThereisnogeneralmethodstospecifywhetheracodewilleverhaltorrunforeverbutAspectJmustincludemechanismstopredicttheexistenceofsuchinniteloopsandthennotiestheuserifshewantstocontinuewiththisworkornot.
Asasuggestion,itispossibletoaddapointcutthatisassociatedwiththeloopbody.
Throughanafter-advicewithsuchapointcut,wecanincrementacountereverytimethisbodyisexecuted.
Ifthecountervaluebecomesmorethanathresholdspeciedaccordingtothetypeoftheapplication,analertispoppedupgivingtheusertheoptiontoaborttheexecution.
Urgentneedstopointcutsthatarerelatedtoloopsmustpushtheresearchinthisarea.
VI.
PATTERNMATCHINGWILDCARDThereisaneedforanewwildcardinAspectJtoperformpatternmatching.
AlthoughpatternmatchingcanbedonebyplainAspectJ,itishoweverbettertodoitinadeclarativemannertosimplifythecode.
Weillustratethispointwithanexamplerelatedtosecurity.
Virusesalwaysinjectthemselvesinsideexecutablelesbyopeningandwritingtosuchles.
So,itisessentialtocontrolopeningandwritinglesthathavean"exe"extension.
Forexample,letuswriteapointcutthatpicksoutallconstructorcalljoinpointsoftheformFileWriter(x,y)wheretheparameterxisastringwhosevalueendswiththeword"exe".
UsingplainAspectJ,thepointcutwillhavethefollowingform:pointcutp:call(FileWriter.
new(String,String))&&args(x,*)&&if(isExtension(x));WhereisExtensionisabooleanmethodwithoneargumentdenedinsidetheaspecttotestifitsargumentvalueendswiththeword"exe".
AlthoughwewereabletowritethepointcutusingplainAspectJ,thishasbeendonewithaheavysyntaxandextramethodslikeisExtension.
WesuggestanotherwaythatusesthesamenotationsusedinSQLsuchaslikekeywordand"%"charactertoeasetheburdenontheuserandsimplifythecode.
Thepreviouspointcutdenitioncanberewrittenaccordingtooursuggestionas:pointcutp:call(FileWriter.
new(Stringlike"%exe%",String);Obviously,usingsuchwildcardsstatesdirectlytheprogram-mer'sintentwithouttheneedtoencodetheessentialidea.
Besides,itmakestheprogramclearandcrisp.
VII.
TYPEPATTERNMODIFIERSAspectJuses(asdescribedinAspectJquickreferenceontheeclipsesite[9])fourkindsofpatternsinthepointcutsyntax:Methodpattern,constructorpattern,eldpattern,andtypepattern.
Patternsareusedinsideprimitivepointcutdesignatorstomatchsignaturesandconsequentlytodeterminetherequiredjoinpoints.
Thesyntaxofallpatternscontainsthemodierskeywordexceptthetypepatternsyntax.
Thissectiondiscussestheneedforsuchakeywordinthetypepatternsyntaxtoenrichthematchingprocess.
AJavaclassdeclarationmayincludethefollowingmodierpatterns:public,abstract,ornal.
Apublicclassisaclassthatcanbeaccessedfromotherpackages.
Anabstractclassisaclassthathasatleastoneabstractmethodthatisnotimplemented.
Aclassthatisdeclaredasnalmaynotbeextendedbysubclasses.
Anyclass,method,object,orvariablethatisnotprivateisapotentialentrypointforanattack.
Hence,usingmodiersinthetypepatternsyntaxshouldbeveryusefulfromasecuritypointofview.
TheexampleinTableVdescribesacasewherethepublicmethodf()insidethepublicclassSensitivedeliverssensitiveinformation.
Inthiscase,itisessentialtoaddasecuritymechanismthatauthenticatestheclientsofsuchpublicclassesthatareexposedbytheapplicationtotheoutsideworld.
Hence,wewouldliketobeabletouseapublicmodierpatternintypepatternsyntaxtopickoutpublicclassesonly.
Thistechniquecanbealsousedtodetectnon-nalclassesthataredangeroussincetheycanoftenbeextendedinunseenways.
VIII.
LOCALVARIABLESSETANDGETAspectJallowstopickoutjoinpointswhereattributesarereferencedorassignedthroughgetandsetdesignatorsbutitdoesnotprovidesimilarpointcutstolocalvariablesdenedinsidemethods.
AspectJdoesnotallowlocalvariablesofamethodtobeexposedtotheadvicecode.
AtechniquethatdoessuchathingwillbehelpfulandincreasestheefciencyofAspectJespeciallyfromasecuritypointofview.
Forexample,securitydebuggersmayneedtotrackthevaluesoflocalvariablesinsidemethods.
Withsuchnewpointcuts,itwillbeeasytowriteadvicesbeforeoraftertheuseofthesevariablestoexposetheirvalues.
Condentialdatacanbeprotectedusingthesekindsofpointcutsbypreventingthemfrombeingusedimproperly.
Theproblemofprotectingsecretorcondentialinformationincomputersystemsisawellknownproblem.
Theproposedsolutionstosolvethisproblemaretoencryptdatasentontheinternetandtouseanaccesscontroltechniquestoprotectles.
However,thesesolutionsarenotenoughtopreventthepropagationofinformation.
Apromisingapproachforprotectingprivacyandintegrityofsensitivedataistostaticallycheckinformationowwithinprogramsthatmanipulatethatdata.
Thisapproachisdiscussedin[10].
Insteadofdoingstaticanalysis,wewilluseAOPtoperformcodeinstrumentationbyinsertingchecksbeforeoraftergettingorsettingeldsorlocalvariables.
ThefollowingexampleinTableVIclariestheidea.
Wecanseethatthesensitiveinformationstoredinthepri-vateeldsensitiveInfohasbeenexposedbytransferringitsvaluetothelocalvariablelocalstrdenedinsidethemethodf().
ThenthevalueoflocalstrisstoredinsidethepubliceldpublicInfowhichmadetheinformation1:importjava.
io.
*;2:publicclassSensitive{3:privateStringsensitiveInfo;4:publicvoidf(){5://.
.
.
.
6:System.
out.
println(sensitiveInfo);7://.
.
.
.
8:}9:}TABLEVTYPEPATTERNMODIFIERS1:importjava.
io.
*;2:classTest{3:privateStringsensitiveInfo;4:publicStringpublicInfo;5:privatevoidf(){6:Stringlocalstr;7:sensitiveInfo=/*SomeCalculation*/8:localstr=sensitiveinfo;9://.
.
.
.
10://.
.
.
11:publicInfo=localstr;12:}13:}TABLEVILOCALVARIABLESGETANDSETaccessiblefromoutsidetheclass.
Usingpointcutsthattrackeldsaswellaslocalvariablescanhelpustondsuchacaseandpreventit.
IX.
SYNCHRONIZEDBLOCKJOINPOINTThesynchronizedblockhasnotbeentreatedyetinAspectJorinanyotherAOPframework.
Therearenojoinpointsassociatedwithsuchablockuntilnow.
Thecurrentimple-mentationofAspectJallowspickingoutcallstosynchronizedmethodsbutdoesnotallowpickingoutsynchronizedblocks.
Theimportanceofthejoinpointsforsynchronizedcodehasbeenalreadydiscussedforthreadmanagement.
Borner[11]haspresentedanarticleontheseissuesandhasdiscussedtheusefulnessofcapturingsynchronizedblockssuchascalculat-ingthetimeacquiredbyalock.
IthasalsobeenpointedoutthatpointcutsforcapturingsynchronizedblockshavenotbeenprototypedyetinAspectJbecauseoftheweaving.
Accordingtothediscussion,theweavingisdonestaticallyinAspectJsoitwillbeverydifcultandpossiblyimpossibletohandlethesepointcutsatcompile-time.
Inthispaper,wedon'tcareabouttheimplementationbutwedocareabouttheimportanceofsuchpointcutsforsecurityissues.
Thenextexamplewilldiscussthisimportance.
Supposewehaveasynchronizedblockthatlaunchesadenial-of-serviceattackbycontainingacodethateatstheCPUcycleslikethecodethatimplementsAckermanfunctionin[12].
Ackermanfunctionisafunctionoftwoparameterswhosevaluegrowsveryfast.
Itisessentialtohaveajointpointatthebeginningofthesynchronizedblock.
Throughthisjoinpoint,wecanwriteabefore-advicethatlimitstheCPUusageorlimitthenumberofinstructionsthatcanrun.
Thislimitationwillfailtheattack.
LetustakeanotherexamplethatisshowninTableVII.
Weneedtoinsertadvicesbeforesynchronizedblocksbecausethesamethreadcanacquirethelocktwice.
Inthiscase,wesaythatthecodeisreentrant.
Thisbehaviorcancauseadenial-of-serviceattack.
Toclarifymore,ifthethreadwhoownsthelockmanipulateswithles,thiswillblockusersfromaccessinglestowhichtheyhaveaccessto.
Abefore-advicecanuseJavaassertionstocheckthatyouhavenotgotalockbeforeenteringasynchronizedblock.
X.
RELATEDWORKThemostrelevantrelatedworksarethosethatdiscusstheuseofAOPtoenforcesecurity.
However,researcheffortsthatareconsumedinthissubjectdonotequalizetheimportanceofit.
AmongtheattemptsistheDarpa-FundedprojectofCigitalLabs[13],[14],[15]thatappliesAOPtoenforcesecurityinsoftwaresystems.
ThemainoutcomeofthisprojectisasecuritydedicatedaspectextensionofCcalledCSAW[13]andaweavingtool.
CSAWaddressessmall-sizedproblemsasbufferoverowanddatalogging.
DeWinetal[16],[17],[18],[19],[20],[21]exploredtheuseofAOPtointegratesecurityaspectswithinapplicationsandappliedAspectJtoenforceaccesscontrol.
Huang,Wang,andZhanghaveim-plementedareusableandgenericaspectlibraryJSAL[22]thatprovidessecurityfunctions.
ThisaspectlibraryisbasedonAspectJandcommonJavasecuritypackages.
Inordertoenrichtheexpressivenessofpointcutstoenforcesecurityissues,MasuharaandKawauchi[6]presentanewpointcutpublicclassA{.
.
.
publicvoidf(){//Before-Advice:assert!
Thread.
holdsLock(this);synchronized(this){.
.
.
/*accessfiles*/.
.
.
}}}TABLEVIISYNCHRONIZEDBLOCKcalleddataowpointcut.
Itexpresseseasilysomesecurityconcernsthataresensitivetoowofinformationinaprogramexecution.
Bodkin[23]reportsasurveyincommonsecuritycrosscuttingconcernsforwebapplicationswritteninJava.
HeanalyzestherelevantjoinpointsthatcanbeusedinAOPsystemstoexpresssuchcrosscuttingconcerns.
HecitedtheneedforthepredicatedcontrolowandthedataowpointcutsinAspectJ-likelanguages.
Thiscontributionisveryclosetowhatwehavedone.
However,noneofthesepreviousworksexaminedanddis-cussedthecompletenessofAspectJfromasecurityperspectiveinacomprehensiveandextensivewayaswedid.
OurworkevaluatestheeffectivenessofAspectJsupportforsecurityhardeninginJavaapplicationsandexposesareas(especiallyinpointcutdenitions)forfurtherinvestigation.
XI.
CONCLUSIONANDFUTUREWORKThispaperdiscussestheneedsinAspectJtoenforcesecurityissuessuccessfully.
Wehaveshownthatsecurityaspectsmustgetbenetfromnewconceptsrelatedtopointcutdenitionsinordertoexpresssomesecurityhardeningpractices.
Hence,adescriptionofdataowpointcutandpredicatedcontrolowpointcutandtheirusefulnessfromasecuritypointofviewarepresented.
Besides,theimportanceoflooppointcuttopreventmaliciousattacksisexposed.
Anewwildcardforpatternmatchingissuggested.
Inaddition,wehavediscussedtheneedforusingmodierpatternlikepublickeywordintypepatternsyntax.
Theneedforapointcuttopickoutjoinpointsassociatedwithsettingandgettinglocalvariablesinsidelocalmethodsisalsodiscussedaswellasnewjoinpointsforsynchronizedblocks.
Inthefuture,weplantogiveimplementationsolutionstoalltheabovesuggestionsandcomeupwithacomprehensiveAOPsecuritylanguage.
REFERENCES[1]G.
McGrawandG.
Morrisett.
AttackingMaliciousCode:AReporttotheInfosecResearchCouncil.
IEEESoftware,17(5):33–41,2000.
[2]G.
Kiczales,J.
Lamping,A.
Menhdhekar,C.
Maeda,C.
Lopes,J.
M.
Loingtier,andJ.
Irwin.
Aspect-orientedprogramming.
InMehmetAksitandSatoshiMatsuoka,editors,ProceedingsEuropeanConferenceonObject-OrientedProgramming,volume1241,pages220–242.
Springer-Verlag,Berlin,Heidelberg,andNewYork,1997.
[3]G.
Kiczales,E.
Hilsdale,JimHugunin,MikKersten,JeffreyPalm,andWilliamGriswold.
AnOverviewofAspectJ.
Budapest,2001.
SpringerVerlag.
[4]G.
Kiczales.
TheFunhasJustBegun,KeynotetalkatAOSD2003.
http://www.
cs.
ubc.
ca/gregor/,2003.
[5]S.
TTeoh,T.
J.
Jankun-Kelly,K.
LMa,andF.
S.
Wu.
Visualdataanalysisfordetectingawsandintrudersincomputernetworksystems.
IEEEComputerGraphicsandApplications,specialissueonVisualAnalytics,2004.
[6]H.
MasuharaandK.
Kawauchi.
DataowPointcutinAspect-OrientedProgramming.
InAPLAS,pages105–121,2003.
[7]J.
Bergeron,M.
Debbabi,J.
Desharnais,M.
M.
Erhioui,Y.
Lavoie,andN.
Tawbi.
StaticDetectionofMaliciousCodeinExecutablePrograms.
InSymposiumonRequirementsEngineeringforInformationSecurity(SREIS'01),Indianapolis,Indiana,USA,2001.
SpringerVerlag.
[8]B.
HarbulotandJ.
R.
Gurd.
AJoinPointforLoopsinAspectJ.
InProceedingsofthe4thworkshoponFoundationsofAspect-OrientedLanguages(FOAL2005),March2005.
[9]AspectJQuickReference.
http://www.
eclipse.
org/aspectj/doc/released/quickA4.
pdf.
[10]A.
C.
Myers.
JFlow:PracticalMostly-StaticInformationFlowControl.
InSymposiumonPrinciplesofProgrammingLanguages,pages228–241,1999.
[11]J.
Borner.
SemanticsforaSynchronizedBlockJoinPoint.
http://jonasboner.
com/2005/07/18/semantics-for-a-synchronized-block-join-point/,July2005.
[12]G.
McGrawandE.
Felten.
SecuringJavaGettingDowntoBusinesswithMobileCode.
JohnWiley&Sons,1999.
[13]CigitalLabs.
AnAspect-OrientedSecurityAssuranceSolution.
Tech-nicalReportAFRL-IF-RS-TR-2003-254,CigitalLabs,Dulles,Virginia,USA,2003.
[14]V.
ShahandF.
Hill.
UsingAspect-OrientedProgrammingforAddressingSecurityConcerns.
InISSRE2002,pages115–119,2002.
[15]J.
Viega,J.
T.
Bloch,andC.
Pravir.
ApplyingAspect-OrientedProgram-mingtoSecurity.
CutterITJournal,14(2):31–39,2001.
[16]B.
DeWin.
AOSDisanEnablerforGoodEnoughSecurity.
http://citeseer.
ist.
psu.
edu/728786.
html,2003.
[17]B.
DeWin,F.
Piessens,W.
Joosen,andT.
Verhanneman.
OntheImportanceoftheSeparation-of-ConcernsPrincipleinSecureSoftwareEngineering.
WorkshopontheApplicationofEngineeringPrinciplestoSystemSecurityDesign,Boston,MA,USA,November6–8,2002,AppliedComputerSecurityAssociates(ACSA),2002.
[18]B.
DeWin,B.
Vanhaute,andB.
DeDecker.
HowAspect-OrientedPro-grammingCanHelptoBuildSecureSoftware.
Informatica,26(2):141–149,2002.
[19]B.
VanhauteandB.
DeWin.
AOP,SecurityandGenericity.
1stBelgianAOSDWorkshop,VrijeUniversiteitBrussels,Belgium,November8,2001,2001.
[20]B.
Vanhaute,B.
DeWin,andBartB.
DeDecker.
BuildingFrameworksinAspectJ.
WorkshoponAdvancedSeparationofConcerns,ECOOP2001.
[21]B.
DeWin,B.
Vanhaute,andB.
DeDecker.
SecurityThroughAspect-OrientedProgramming.
InB.
DeDecker,F.
Piessens,J.
Smits,andVanHerreweghen,editors,AdvancesinNetworkandDistributedSystemsSecurity,pages125–138,2001.
[22]M.
Huang,C.
Wang,andL.
Zhang.
TowardaReusableandGenericSecurityAspectLibrary.
InAOSDTechnologyforApplication-levelSecurity,March2004.
[23]R.
Bodkin.
EnterpriseSecurityAspects.
InAOSD2004Workshop,Lancaster,UK,2004.
WHloud Official Notice(鲸云官方通知)(鲸落 梦之终章)]WHloud RouMu Cloud Hosting若木产品线云主机-香港节点上新预售本次线路均为电信CN2 GIA+移动联通BGP,此机型为正常常规机,建站推荐。本次预售定为国庆后开通,据销售状况决定,照以往经验或有咕咕的可能性,但是大多等待时间不长。均赠送2个快照 2个备份,1个默认ipv4官方网站:https:/...
Tudcloud是一家新开的主机商,提供VPS和独立服务器租用,数据中心在中国香港(VPS和独立服务器)和美国洛杉矶(独立服务器),商家VPS基于KVM架构,开设在香港机房,可以选择限制流量大带宽或者限制带宽不限流量套餐。目前提供8折优惠码,优惠后最低每月7.2美元起。虽然主机商网站为英文界面,但是支付方式仅支付宝和Stripe,可能是国人商家。下面列出部分VPS主机套餐配置信息。CPU:1cor...
百纵科技:美国高防服务器,洛杉矶C3机房 独家接入zenlayer清洗 带金盾硬防,CPU全系列E52670、E52680v3 DDR4内存 三星固态盘阵列!带宽接入了cn2/bgp线路,速度快,无需备案,非常适合国内外用户群体的外贸、搭建网站等用途。官方网站:https://www.baizon.cnC3机房,双程CN2线路,默认200G高防,3+1(高防IP),不限流量,季付送带宽美国洛杉矶C...
waitingforreboot为你推荐
域名服务商请问那些域名服务商是怎么捣鼓这么多域名的? 它们为什么可以做这个asp虚拟空间怎样在一个虚拟空间里放上一个ASP和一个PHP的网站网站空间购买网站空间购买注意事项网站空间商网站空间商的选择??国外网站空间怎么样把网站空间放到国外去?虚拟主机控制面板如何利用虚拟主机控制面板对网站进行管理apache虚拟主机如何用Apache配置安全虚拟主机 - PHP进阶讨论最好的虚拟主机谁来推荐一下哪里的虚拟主机比较好asp虚拟主机怎样查看虚拟主机是支持ASP还是PHP程序的广西虚拟主机南宁有实力的网络公司推荐下?
绍兴服务器租用 免费域名跳转 中文域名交易中心 七牛优惠码 google电话 winscp site5 t楼 bluehost 南昌服务器托管 cpanel空间 bgp双线 qq云端 绍兴电信 卡巴斯基是免费的吗 512mb 独享主机 免费asp空间 服务器机柜 comodo 更多