N°d'ordre:2014‐25‐TH

favicon  时间:2021-05-22  阅读:()
SUPELECEcoleDoctoraleMATISSEMathématiques,Télécommunications,Informatique,Signal,SystèmesElectroniquesTHSEDEDOCTORATDOMAINE:STICSpécialité:InformatiquePréparéeauseindel'équipeprojetCIDREConfidentialité,Intégrité,Disponibilité,RépartitionSupélec/INRIASoutenuele15décembre2014par:RadoniainaANDRIATSIMANDEFITRARATSISAHANANACaractérisationetdétectiondemalwareAndroidbaséessurlesfluxd'informationDirecteurdethèse:LudovicMProfesseuràSupélecEncadrantdethèse:ValérieVIETTRIEMTONGProfesseurassociéàSupélecCompositiondujury:Présidentdujury:DavidPICHARDIEProfesseuràl'ENSRennesRapporteurs:Jean‐YvesMARIONProfesseuràl'universitédeLorraineRaduSTATEChercheuràl'universitéduLuxembourgExaminateurs:PascalCARONMatredeConférenceàl'universitédeRouenLudovicMProfesseuràSupélecValérieVietTriemTongProfesseurassociéàSupélecMembresinvités:AnthonyDesnosIngénieurchezGoogleFranceiiTabledesmatièresTabledesguresviiListedestableauxxi1Introduction12tatdel'art52.
1SystèmeAndroid52.
1.
1ArchitecturedusystèmeAndroid62.
1.
2ApplicationsAndroid92.
2SécuritédusystèmeAndroid162.
2.
1MécanismesissusdeLinux162.
2.
2MécanismespropresàAndroid172.
3LimitesdesmécanismesdesécuritéAndroid212.
3.
1Abusdepermission212.
3.
2Permissions:attaquespardélégationetattaquesparcol-lusion212.
3.
3Communicationentrecomposantsvialesintents.
.
.
.
212.
3.
4Failleslogicielles:élévationdeprivilège232.
4MalwareAndroid242.
4.
1Dénitions242.
4.
2MalwaresAndroid:2010à2011[113]252.
4.
3MalwaresAndroiden2013282.
5RenforcementdelasécuritésousAndroid302.
5.
1Protectiondesressourcessensibles302.
5.
2Communicationentreprocessusetentrecomposants.
.
.
352.
5.
3Abusdespermissions392.
6Suivideuxd'information412.
6.
1Suivideuxauseind'uneapplication422.
6.
2Suivideuxauniveausystème432.
6.
3Suivideuxauniveauhardware442.
7Classicationetdétectiondemalware462.
8Analysed'applicationsAndroid482.
8.
1Désassembleur,décompilateur48iiiivTABLEDESMATIRES2.
8.
2Comparaisond'applications493Blare:unmoniteurdeuxd'information553.
1Modèlethéorique553.
1.
1Conteneursd'information563.
1.
2Informationetcontenucourantd'unobjet:itag563.
1.
3Politiquedeuxd'information:pxqptag573.
1.
4Suivietcontrledeuxd'information593.
2Dénitiond'unepolitiquedeuxd'information623.
3KBlare:suivietcontrledeuxviaLSM653.
4AndroBlare:BlaresousAndroid683.
4.
1Communicationentreprocessus:Binder693.
4.
2Suivideuxd'informationdansleBinder723.
4.
3ExécutiondesapplicationsAndroid743.
4.
4Descriptiondesuxobservés843.
4.
5Outilsenespaceutilisateur843.
5AndroBlare:analysed'applicationsAndroid854Graphesdeuxsystème894.
1Graphedeuxsystème894.
2QuelquesopérationsutilessurlesSFG924.
2.
1IntersectiondedeuxSFG:g1[g2924.
2.
2Inclusiond'unSFGdansunautre:g1g2934.
2.
3Nudsetarcsd'unSFG934.
3Constructiond'ungraphedeuxsystème934.
4SFG:prolcomportementald'uneapplication954.
4.
1AnalysedeDroidKungFu1avecAndroBlare954.
4.
2AnalyseduSFGdeDroidKungFu1974.
5Politiquedeuxd'informationàpartird'unSFG1005Caractérisationetdétectiondemalware1075.
1CaractérisationdemalwareAndroid1085.
2valuationdelaméthodedeclassication1115.
2.
1Jeudedonnée1115.
2.
2Expérimentationetrésultat1125.
3Delanécessitédultrage1185.
4Détectiond'exécutiondemalwareAndroid1215.
5valuationdelacapacitédedétection1226Conclusion129Avènementsdéclencheursdecodemalveillant133A.
1Outils133A.
2BadNews134A.
3DroidKungFu1140A.
4DroidKungFu2144TABLEDESMATIRESvA.
5jSMSHider145Publications147Bibliographie149viTABLEDESMATIRESTabledesgures2.
1ArchitecturedelaplateformeAndroid82.
2FichierMANIFEST.
MFdel'applicationHelloActivity182.
3Fichier.
SFdel'applicationHelloActivity193.
1ExtraitdelasortiedelacommandepssousAndroid4.
4583.
2Exempledecontrledeuxd'informationeectuéparBlare.
.
613.
3DesigndeLinuxSecurityModule663.
4Appeld'uneméthodedistantegrceauBinder703.
5Séquencededémarraged'Android753.
6Mécanismedenoticationdel'exécutiond'uneapplicationAndroid773.
7ExempledemessagelevéparBlaresousLinux843.
8FormatdesuxobservésparBlaresousAndroid853.
9AndroBlare:environnementd'analysed'applicationAndroid.
.
874.
1Exempledeuxd'informationcausantl'apparitiond'arcsparal-lèlesdanslesSFG904.
2ExempledeSFGavecdesarcsparallèles904.
3GraphededépendanceetSFGreprésentantlesuxd'informationayantprécédélacorruptiond'unchierfilex924.
4PermissionsdemandéesparunéchantillonsdeDroidKungFu.
.
.
964.
5Listedesapplicationsdanslemenudutéléphoneaprèsl'installa-tiond'unenouvelleapplicationparunéchantillondeDroidKungFu974.
6ExtraitduSFGd'unéchantillondeDroidKungFu984.
7Extraitdesalerteslevéesparl'échantillondeDroidKungFu1lorsdel'évaluationdelapolitiquedeFingerScaner1045.
1S0:sous-grapheencommundeséchantillonsdeBadNews.
.
.
.
1155.
2S1:sous-grapheencommundeséchantillonsdeDroidKungFu11165.
3S2:sous-grapheencommundeséchantillonsdeDroidKungFu21175.
4S3:Sous-grapheencommundeséchantillonsdejSMSHider.
.
.
1175.
5Prolcalculélorsqu'aucunltragen'estréalisé1195.
6Premierprolcalculéenutilisantaucunelisteblanche1205.
7Secondprolcalculéenutilisantaucunelisteblanche1205.
8Troisièmeprolcalculéenutilisantaucunelisteblanche120viiviiiTABLEDESFIGURES5.
9Quatrièmeprolcalculéenutilisantaucunelisteblanche120A.
1Extraitdugraphed'appeldefonctiond'unéchantillondeBadNews137A.
2Extraitdugraphed'appeldefonctiond'unéchantillondeDroid-KungFu141Listedeslistings2.
1Partaged'unepagewebgrceàunintentimplicite.
Extraitducodedunavigateurpardéfautd'Android112.
2FichierAndroidManifest.
xmld'AngryBirdsSpace152.
3ExempedecodeJavaavecetsansréexion292.
4Extraitducodedel'applicationJetBoyfourniavecleSDKAndroid492.
5Extraitducodesmalidel'applicationJetBoy522.
6Extraitducoderésultantdeladécompilationdel'applicationJetBoyavecledécompilateurpardéfautd'Androguard533.
1ExempledepolitiqueAppArmor623.
2ListedesopérationssurleschierssupportéesparBinder.
.
.
.
713.
3Signaturedelafonctionbinder_ioctl713.
4Fonctiondechargementenmémoireducoded'uneapplication.
783.
5Déclarationd'unefamilleGenericNetlinkdanslenoyaupourlemécanismedecoopération793.
6Dénitiond'unecommandeGenericNetlinkpournotierl'exé-cutiond'uneapplication813.
7Enregistrementdelafamilleservantàlanoticationd'exécutiondesapplications823.
8Noticationdel'exécutiond'uneapplicationparlamachinevir-tuelleDalvik834.
1Entréedanslechierpackages.
xmlajoutéesuiteàl'installationd'unenouvelleapplicationparunéchantillondeDroidKungFu.
994.
2ExtraitdelapolitiqueBSPLdel'applicationFingerScanner.
.
1055.
1Contenuduchiersstimestamp.
xmld'unéchantillondeDroid-KungFu1113A.
1FichierAndroidManifest.
xmld'unéchantillondeBadNews.
.
.
135A.
2Codeappeléàlaréceptiond'unIntentparlescomposantsdetypeReceiverd'unéchantillondeBadNews136A.
3ExtraitducodedelaméthodesendRequestd'unéchantillondeBadNews138A.
4Codeappeléàl'exécutionducomposantAdvServiced'unéchan-tillondeBadNews139A.
5ExtraitducontenuduchierAndroidManifest.
xmld'unéchan-tillondeDroidKungFu1142ixxLISTEDESLISTINGSA.
6MéthodeonCreateducomposantSearchServiced'unéchan-tillondeDroidKungFu1142A.
7Contenuduchiersstimestamp.
xmld'unéchantillondeDroid-KungFu1143A.
8MéthodeonCreated'uncomposantserviced'unéchantillondeDroidKungFu2144Listedestableaux2.
1TypesdepermissionAndroid172.
2ExploitsrootconnusetleurusageparlesmalwareAndroidde2010à2011263.
1Intervalledevaleurdutypeintselonsatailleenbits563.
2Blare:méthodedesuivideux603.
3Unextraitdelapolitiquedeuxd'information643.
4ListedeshooksLSMutilisésparKBlarepouvantengendrerunuxd'information674.
1Nombred'alerteslevéesparBlarelorsdel'exécutiondesversionsoriginalesetinfectéesdetroisapplicationsenappliquantunepo-litiqueBSPL1045.
1Classicationdes19échantillonsdemalware.
1145.
2Nombredeprolsobtenusenvariantleltrage1185.
3RésultatdedétectionsurlesapplicationsbénignesprovenantdeGooglePlay.
Tauxdefauxpositif:0%1245.
4Résultatsdeladétectionsur39échantillonsdemalware.
TauxdeVraiPositif:100%125xixiiLISTEDESTABLEAUXListedesalgorithmes1Constructiond'unSFGàpartirdesentréesd'unjournaldeBlare942Calculd'unepolitiquedeuxd'informationBlareàpartird'unSFG1013CalculdespartiescommunesdeSFGd'applicationcaractérisantsoncomportementmalveillantetregroupementdecesSFG.
.
.
.
1094One-step-classificationfunction1095Détectiondel'exécutiondemalwareAndroidbasésurlesuxd'in-formationcausédanslesystème122xiiixivLISTEDESALGORITHMESRemerciementsAvantd'aborderlepourquoidecedocument,jetenaisavanttoutàremercierlesmembresdujuryd'avoiracceptéd'évaluermontravail:DavidPichardiepouravoiracceptédeprésiderlejurydemathèse,RaduStateetJean-YvesMarionpouravoiracceptéd'êtrelesrapporteursdecemémoire,PascalCaronetAn-thonyDesnospouravoiracceptéd'examinermontravail.
JetiensàremercierspécialementLudovicMéetValérieVietTriemTongpourleurencadrementetleurimplicationdanslaréalisationdemathèse,mêmesiparfoiscelan'apasétéfacile,ainsiquelerestedel'équipepourcestroisannéespasséesen-semble.
Finalement,ungrandmerciauxmembresdemafamilleetauxamisquim'ontsoutenutoutaulongdelathèse.
KudosauLangomatic(organisateurs,participantsetstaduO'Connell's)pourtoutescessoiréesdulundirichesenrencontresetendiversitésculturelles.
xvxviLISTEDESALGORITHMESChapitre1IntroductionLancéociellementen2008,Androidestdevenuenquelquesannéeslesys-tèmed'exploitationleplusrépandusurlesplateformesmobilesdetypesmart-phoneettablette[72,107,71].
Audelàdesalargeadoptionparlegrandpublic,ilaégalementsuscitél'intérêtdesdéveloppeursd'applicationsmalveillantesquivoientdanslesystèmeAndroid,uneciblepotentielled'attaqueaumêmeniveauquelesordinateursdebureauàcausedeladiversitédesdonnéesetservicesqu'ilsproposent.
LesappareilstournantsousAndroidorentdiérentesfonctionnali-tésallantdusimpletéléphoneàcellesdesordinateursdebureauetassistantsnumériquespersonnels(pocketsPCouPDA).
Lacombinaisonsdetoutescesfonctionnalitésfontdecesappareilsunpointdeconcentrationdediversdon-néesetservicessensibles(listedecontact,messages,donnéesdegéolocalisation,etc.
)etenconséquenceunecibledevaleurpourlesdéveloppeursdemalware.
Cesdernièresannées,nousavonsainsivul'apparitiond'unnombretoujoursgrandissantd'applicationsmalveillantesquicherchentàvolerlesdonnéesduté-léphone,lescorrompre,espionnerl'utilisateur,abuserdesservicesoertsparletéléphone,etc.
lavuedunombregrandissantdesmalwareAndroid,ildevientnécessairededévelopperdesoutilsd'analysedemalwareandecomprendreleurfonctionnementetplustardlesdétecter.
L'unedesraisonsdelaproliférationdecesmalwareestl'insusancedesmécanismesdesécuritéAndroidàdétecteretbloquerdetellesattaquesetlafacilitéd'accèsàunepartiedesressourcessensiblesdutéléphone.
Androidpro-poseunensembledeméthodespouraccédercesressourcesetcesaccèsnécessiteuneautorisationdelapartdel'utilisateuraumomentdel'installation.
L'ap-plicationestinstalléeuniquementsil'utilisateurvalidetouteslesautorisationsdemandéesparl'application.
Touteapplicationinstalléesurletéléphoneaainsiaccèsauxressourcesdontelleademandél'accèssansquelesystèmenecontrlel'usagequiestfaitdesressources.
Lespremierstravauxliésàlasécuritéd'An-droidsontdoncfocaliséssurl'analysedeslimitesdelasécuritésousAndroidetsurunemanièredelescombler.
Encketal.
proposentparexempledans[47]unevéricationdespermissionsdemandéesparlesapplicationsandes'assurerqu'ellesnesoienttropdangereuses.
Cetyped'approcheacependantuneprin-12CHAPITRE1.
INTRODUCTIONcipalelimitationquiestdenedétecterquecequenoussavonsêtredangereux.
Ilnepermetdoncpasdedétecteretd'apprendredenouvellesattaques.
Danscethèsenousadoptonsuneapprochediérentequiestbaséesurlesuxd'information.
Unuxd'informationdécrituntransfertd'informationentredeuxobjets.
Auniveaudusystèmed'exploitation,ildécritparexempledescommunicationsentredeuxapplicationsoudesaccèsàunchier.
AulieudenousfocalisersurleslimitationsdusystèmeAndroidpouridentierlesscéna-riosd'attaqueetlesdétecterparlasuite,nousproposonsd'apprendrecommentlesattaquesontlieuenanalysantdirectementlesmalwareetutiliserlabasedeconnaissanceacquisedurantl'apprentissagepourdétecterlesmalware.
Se-lonlestravauxdeZhouetal.
laméthoded'infectionprincipaleutiliséeparlesdéveloppeursdemalwareestd'ajouterleurcodemalicieuxàdesapplicationsexistantesetproposerlesversionsinfectéesdecesapplicationsentélécharge-mentsurlesplateformesdetéléchargementtelsqueGooglePlay.
Ensupposantqu'unmalwaresoitdistribuésouslaformedediérentesapplications,nouspouvonssupposerquelesapplicationsinfectéesparlemêmecodemalveillantontpartiellementuncomportementsimilaire.
Enanalysantleséchantillonsdesmalwareetenisolantcescomportementssimilaires,nouspouvonsainsiàlafoisapprendrelecomportementmalveillantd'unmalwareetcalculerunprolpourcemalwareandeledétecter.
Lerestedecedocumentestdivisécommesuit.
Lechapitre2présentelecontextedecetravailetestdiviséendeuxparties.
LapremièrepartieconcernelesystèmeAndroid:l'architecturedusystème,sespointscommunsetdiérencesaveclessystèmesLinux,lanotiond'applicationsAndroid,l'analysedeslimitesdumodèledesécuritéd'Android,lesmenacesquereprésententlesmalwareAndroidetlestravauxessayantdecomblerceslimites.
Ladeuxièmepartieduchapitreintroduitlesbasesnécessairesàl'accomplis-sementdenotreobjectif.
Nousyprésentonsdansunpremiertempslanotiondesuivideuxd'informationetlesdiérentsniveauxexistantpourobserverlesuxd'information.
Parlasuitenousprésentonscommentlesméthodesd'ap-prentissagepeuventêtreutiliséesandeclassieretdétecterdesmalware.
Nousprésentonspourcelaquelquestravauxconnusexploitantlestracesd'exécutiondesmalwarepourlesclassier.
Lechapitre3présenteBlarelemoniteurdeuxd'informationetsonportagepourlesystèmeAndroid.
Blareestunoutildedétectiond'intrusionparamétréparunepolitiquedeuxd'informationandedétecterlesintrusionsdansunsystème.
AyantétédéveloppépourlessystèmesLinux,ilneprenaitainsipasencompteunepartiedesuxexistantsousAndroid.
CesuxsontliésàdesmécanismespropresàAndroidquin'existentpassousLinux.
Dansunpremiertemps,nousprésentonsdonccesmécanismesetlesuxd'informationqu'ilscausentquiétaientinvisiblesàBlare.
Ensuite,nousprésentonscommentnousavonsprisencomptecesmécanismesetamélioréainsil'observationdesuxd'informationsousAndroid.
Lerésultatdecesaméliorations,AndroBlare,estcequinoussertd'environnementd'analysedurantcettethèse.
Lechapitre4introduitunestructurededonnéeappeléegraphedeuxsys-tèmeouSystemFlowGraph.
Cettestructuredécritdemanièrecompacteetpluscompréhensiblelesuxd'informationqueBlareobservedanslessystèmes.
Un3desobjectifsdecettethèseestdecomprendrelefonctionnementd'unmalwareenl'analysantdansnotreenvironnementd'analyseAndroBlare.
Aprèsavoirpré-sentélastructure,nousmontronsdanscechapitre,àtraversl'analysed'unéchantillondemalware,l'utilitédelastructurepourreprésenterlecomporte-mentd'unmalwareetcomprendresoncomportement.
Cettestructurereprésen-tantlecomportementd'uneapplication,nousmontronségalementqu'ellepeutassisterundéveloppeurdanslacréationd'unepolitiquedeuxd'informationpoursonapplication.
Enn,lechapitre5présentenotreapprocheandeclassieretdétecterlesmalwareAndroid.
Laclassicationconsisteàregrouperleséchantillonsd'unmalwareavecuncomportementsimilaireetextaireunprolcaractérisantleséchantillonsd'unmêmegroupe.
Cetteclassications'apparenteàunappren-tissagenonsuperviséetnousprésentonsdanscechapitrecommentnousleréalisonspuisl'évaluonsavecunensembled'échantillonsdemalware.
Ladétec-tionconsisteàutiliserlesprolscalculésdurantlaclassicationpourdétecterd'autreséchantillonsdemalware.
NousprésentonsainsiendeuxièmepartiedecechapitrecommentnousutilisonsAndroBlareetlesprolscalculéspourdétecterl'exécutiondemalwareetévaluonsl'approcheavecd'autreséchantillons.
4CHAPITRE1.
INTRODUCTIONChapitre2tatdel'artL'objectifdecettethèseestdedévelopperuneméthodeandecaractéri-seretdétecterlesmalwaresAndroid.
Laréalisationdecetobjectifs'estfaiteenplusieursétapes:leportagedumoniteurdeuxd'informationBlarepourlesystèmeAndroid,lapropositiond'unestructurededonnéepourreprésenterlesprolsd'uneapplicationetuneméthodedecalculdeproldesmalwaresAndroidainsiquedeleurdétection.
Danscepremierchapitre,nousintrodui-sonsdansunpremiertempslesystèmeAndroid:sonarchitecture,lanotiond'applicationAndroidetlemodèledesécuritéd'Android.
Ensuite,nousmon-tronsensection2.
3et2.
4leslimitesdumécanismedesécuritéAndroidainsiqu'unaperudesmenacesquereprésententlesmalwareAndroid.
Lasection2.
5présenteensuitelesdiérentstravauxvisantàcomblerleslimitesduméca-nismedesécuritéd'Androidainsiqu'àdétecterlesattaquesvisantlesystème.
L'approchepourlaquellenousavonsoptéeestbaséesurlesuxd'informationauniveaudusystème.
Lasection2.
6présenteainsidiérentstravauxliésausuivideuxd'informationetunediscussionsurlesapportsetlimitationsdecesapproches.
UnepartiedesexpérimentationsquenousmenonsdanscettethèseconsisteàexécuterdeséchantillonsdemalwareAndroidetpluspréci-sémentleurcodemalveillant.
CommeévoquédanslestravauxdeZhouetal.
dans[113],certainsmalwarevérientunnombredeconditionsavantd'exécuterleurcodemalveillant.
And'identiercesconditions,ilestnécessaired'analyserstatiquementleséchantillonsdesmalwareconcernés.
Nousprésentonsainsiensection2.
8unensembled'outilsd'analysestatiquedesapplicationsAndroid.
2.
1SystèmeAndroidAndroidpartageunebasecommuneauxsystèmesLinuxquiestlenoyauetunensembledecommandesetutilitairesnécessaires.
Danscettesection,nousprésentonsdansunpremiertempsl'architecturedusystèmeAndroid,celledesesapplicationsetlesmécanismesdesécuritéfournisaveclesystème.
56CHAPITRE2.
TATDEL'ART2.
1.
1ArchitecturedusystèmeAndroidLesystèmeAndroidestdiviséenplusieurscouchescommeillustrésurlagure2.
1.
Lapartielaplusbassereprésentelecurdusystème,c'est-à-direlenoyau,etlerestel'espaceutilisateur.
2.
1.
1.
1NoyauAndroidLenoyauAndroidestuneversionmodiéedunoyauLinux1etreprésentelecurdusystème.
Lenoyauestleprogrammeservantd'interfaceentrelesdiérentscomposantsdusystème(périphériques,processus,chiersetc).
ParmilesmodicationsnotablesapportéesdanslenoyauAndroid,nouspouvonsciterlesmécanismesbinder,ashmem,wakelock,lowmemorykiller,logger,RAMconsoleetParanoidNetworking.
Binderestunmécanismedecommunicationentreprocessusetd'appeldeméthodesdistantes.
L'appeldeméthodesdistantes,appeléRemoteProcedureCallenanglais,consisteàfaireexécuteruneméthodeparuneentitédistante.
IlestinspiréduprojetOpenBinder[81].
Commenousleverronsparlasuite,ilestunélémentessentieldufonctionnementdusystèmeAndroid.
AshmempourAnonymousSharedMemoryestunmécanismedepartagedemémoiresimilaireàceluidunoyauLinuxshm.
Ilestutilisépourpartagerlesdon-néesentreapplicationsAndroid.
Parmiles"nouveautés"apportéesparashmemilyaparexemplel'usagedecompteurpourconnatrelenombredeprocessusfaisantréférenceàunezonedemémoirepartagéeetéviterlesfuitesdemémoire.
Wakelockestunmécanismeservantànotierlenoyaudenepassemettreenveille.
ContrairementauxsystèmesLinux,lesystèmeAndroidessaiepardéfautdesemettreenveilleétantdonnéqu'ilestdestinéàtournersurdesappareilsàressourceslimitées.
Lorsd'exécutiondecodenedevantêtreinterrompu,lewakelockestainsiutilisépourdireausystèmederesteréveillé.
Lowmemorykillerestunmécanismeutiliséparlenoyaupourlibérerdelamémoirelorsqu'ilneresteplusassezdemémoire.
Loggerestunmécanismedejournalisationquiécritlesévènementsdusys-tèmeuniquementdansdeszonesallouéesenmémoire.
Contrairementauxsys-tèmesLinuxtraditionnels,lesévènementsécritsdanslejournaldusystèmenesontainsijamaisécritsdansunchier.
RAMConsoleestunmécanismequipréserveenmémoirelecontenudesévè-nementssystèmesajoutésparducodenoyau(vialafonctionprintk)lorsdelaprécédenteexécutiondusystème.
Soncontenuestaccessiblevialechier/proc/last_kmsg.
SousLinux,lecontenudujournaldesévènementssystèmessontstockésdemanièrepersistantedansleschierssouslerépertoire/var/log/.
Cen'estpaslecassousAndroidetencasdecrashdusystèmeparexemple,ildevientimpossiblederécupérerlesévènementsquiontamenéaucrash.
RAMConsoleestainsiétécréépourrésoudrecettelimitationdusystèmedejourna-lisationsousAndroid.
1.
NoyauutiliséparlesdistributionsdetypeLinuxtellesqueDebianetUbuntu2.
1.
SYSTMEANDROID7ParanoidNetworkestunmécanismecontrlantl'accèsdesapplicationsauréseau.
SousLinux,touteapplicationaledroitd'utiliserlessocketsetaccéderauréseau.
LasocketestlastructuredebaseliéeauxopérationsréseauxsousLinux.
SousAndroid,l'inverseestlarèglecarseulelesapplicationsavecuneautorisationexplicitesontautoriséesàcréerdessocketsetcommuniquersurleréseau.
2.
1.
1.
2EspaceutilisateurL'espaceutilisateursousAndroidpeutêtrediviséenplusieurspartiescommeillustrésurlagure2.
1.
LacoucheApplicationsrenfermelesapplicationsfourniespardéfautsurletéléphoneainsiquecellesquiserontinstalléesplustardparl'utilisateur.
Ils'agitdesapplicationsaveclesquellesl'utilisateurpourrainteragirengénéral(ex:applicationdemessagerieetgestiondescontacts).
LesapplicationsAndroidsontprincipalementécritesenJava.
Androiddonnecependantlapossibilitéd'écrireducodenatifetdel'appelerauseindel'applicationgrceàuneinterfaceappeléeJavaNativeInterfacedontlerleestd'interfacerducodeJavaavecducodenatifécritenC.
Androidframeworkestl'ensembledesservicesetressourcesfourniesparlesystèmeAndroid.
Ils'agitprincipalementdeservicestournantdansquelquesprocessusclésdusystèmeAndroidtelsquesystem_serveretmediaserver.
LacommandeservicelistretournesousAndroidlalistedesservicesprésentsdanslesystème.
SousAndroid2.
3,lacommanderetourneunelistede50servicesetsousAndroid4.
268services.
ParmicesservicesnouspouvonsciterService-Manager,LocationManager.
ServiceManagerrecensetouslesautresservicestournantsurletéléphoneetjoueunrled'annuairepourlesapplicationssou-haitantaccéderàunserviceenparticuliersurletéléphone.
Lorsqu'uneapplica-tiondenavigationsouhaiteparexempleconnatrelalocalisationdel'utilisateur,ellevadansunpremiertempsdemanderauService-ManagerlaréférencedeLocationService.
Unefoiscetteréférencerécupérée,ellepourrademanderàLocationServicelesdonnéesdegéolocalisation.
SurfaceflingerestunautreserviceavecunrlecrucialsousAndroid.
C'estluiquiestchargédecomposeretdessinercequelesdiérentesapplicationssouhaitentacheràl'écrandel'appareil.
Androidruntimeestl'environnementd'exécutiondesapplicationsAndroid.
IlcontientlabibliothèqueJavautilisableparlesapplicationsainsiqu'unema-chinevirtuelleappeléeDalvik.
Labibliothèquereprendunepartiedelabi-bliothèqueJavastandardplusquelquesbibliothèquessupplémentairespropresàAndroid.
LamachinevirtuelleDalvikelleinterprètelebytecodedanslequellesapplicationsAndroidontétécompilées.
LebytecodedalvikestdiérentdubytecodeJavad'oùl'usagedeDalvikàlaplacedesmachinesvirtuellesJavastandard.
DepuisAndroid4.
4,unedeuxièmemachinevirtuelle,ART[85,99],quiestlivréesousformeexpérimentaleaveclaplateforme.
Librariesrenfermelesbibliothèquesnativesdusystème.
Ellessontgénérale-mentutiliséesparlesapplicationsnativesdusystème.
Parmilesbibliothèques8CHAPITRE2.
TATDEL'ARTKernelHALLibrariesAndroidruntimeAndroidframeworkApplicationsBinderAudiodriverext4PowermanagementAshmemDalvikVMBionicOpenGLWebkitSSLCameraHALAudioHAL.
.
.
.
.
.
SurfaceFlingerCameraServicePackageManagerNativetoolsanddaemonsWakelock.
.
.
CorelibrariesLocationService.
.
.
ClockContactsLauncherEmail.
.
.
DisplaydriverLSMBluetoothdriverSMSSQLiteServiceManagerFigure2.
1–ArchitecturedelaplateformeAndroidnouspouvonsparexempleciterbionicquirenfermeentreautresunebiblio-thèqueCetunebibliothèquepourlesupportduC++.
SelonlapageWikipédiasurbionic[3],ils'agitd'uneversionmodiéedelabibliothèquestandardCdeBSDetestpropreàAndroid.
SilesapplicationsutilisateurssontdesapplicationsécritesenJava,ilexistetoutdemêmequelquesapplicationsnativesdanslesystème.
Ils'agitdeservicespropresausystèmeetdequelquesoutilsenlignedecommandequipeuvents'avérerutilespourundéveloppeur.
Cesapplicationsn'ontpaspourbutd'êtreutiliséesparl'utilisateurlambda.
HALouHardwareAbstractionLayersertd'interfacestandardentrelesys-tèmeetlespilotesdespériphériquesprésentssurl'appareil(ex:caméra,capteuretc).
Lesconstructeursécriventainsilespilotesàleurguisemaisdoiventfour-nirlesméthodescorrespondantauxinterfacesHALpourquelesystèmepuisseutiliserlespériphériques.
2.
1.
SYSTMEANDROID92.
1.
1.
3CommunicationsentreprocessusAndroidestunenvironnementd'exécutionoùlesapplicationssontpous-séesàcollaborerpourfonctionner.
Lebutdecettecollaborationestdelimiterladuplicationdecodedanslesapplicationsetdeproposerunensembleassezgranddefonctionnalitésauxdiérentesapplicationsdusystème.
Unexempleillustrantcettecollaborationestl'applicationcaméra.
Pourutiliserlacamérad'unappareil,uneapplicationdoitconnatresonmodedefonctionnementexactsachantqu'unecamérapeutêtrediérented'unmodèledetéléphoneàunautre.
Pourfaciliterlatcheaudéveloppeurdel'application,l'applicationcaméradutéléphoneproposeuneinterfacepermettantauxautresapplicationsdeprendredesphotosouenregistrerdesvidéosàleurplacepuisleurtransmettrelerésul-tat.
Cesystèmedecollaborationreposeplusieursfonctionnalitésdusystème.
Dupointdevuedesdéveloppeursd'application,lacollaborationreposesurl'usagedesintentsetdescomposantsContentProviderpouréchangerdesmessagesetpartagerducontenu.
Nousdonnonsplusdedétailsurcesmécanismesdanslasection2.
1.
2.
1.
unniveauplusbas,lacollaborationreposesurdeuxfonc-tionnalitésd'AndroidquesontBinderetAshmem.
Commenousl'avonsécritensection2.
1.
1,cesdeuxmécanismesserventàeectuerdesappelsdistantsdeprocédureetpartagerdeszonesdemémoireentreprocessus.
2.
1.
2ApplicationsAndroid2.
1.
2.
1Architectured'uneapplication:lesdiérentscomposantsUneapplicationAndroidestécriteenJava.
Contrairementauxapplica-tionsJavastandard,uneapplicationAndroidpeutposséderplusieurspointsd'entrée.
Plusprécisément,uneapplicationAndroidpeutavoirplusieurscom-posantsetchacund'euxpeut-êtreunpointd'entréedansleprogramme.
Ilexistequatretypesdecomposants:Activity,ContentProvider,ServiceetBroadcastReceiver.
ActivityUncomposantActivityestuneinterfaceutilisateur.
Uneappli-cationdemessagerieélectroniquepeutparexempleavoirtroiscomposantsActivity:unpournaviguerentrelesrépertoiresdelamessagerie,ledeuxièmepourl'ached'unmessageetledernierpourl'éditionetl'envoi.
ContentProviderUnContentProviderestuncomposantservantaupar-tagededonnéesd'uneapplication.
Sonrleestdeservird'interfaceentrel'ap-plicationsouhaitantaccéderauxdonnéesetlesdonnées.
Cesdonnéessontgéné-ralementstockéesdansunebasededonnéeslocaleSQLitemaisaucunerestric-tionn'estimposéesurlamanièredestockerlesdonnées.
Lalistedescontactsestparexemplestockéedansunebasededonnéeslocalesdontl'accèssefaitàtraversuncomposantdetypeContentProvider.
10CHAPITRE2.
TATDEL'ARTServiceUnserviceestuncomposanteectuantdestchesenarrièreplan.
Ilestutilisépoureectuerdelonguetchesinternesàl'applicationouàexécuterunetcheàlademanded'uneapplication.
DansunclientFileTransferProtocol,unserviceestutilisépourenvoyerlesdonnéessurleréseauàlesrecevoir.
Celaévitedebloquerl'applicationjusqu'àlandel'envoi.
BroadcastReceiverUnBroadcastReceiverestuncomposantutilisépourécouterlesmessagesenlargediusionsurlesystème.
Unexempledecetypedemessageestlaréceptiond'unnouveauSMS.
Lorsqu'unnouveauSMSestreuparletéléphone,lesystèmeenvoieunmessageenbroadcastpournotierlesdiérentesapplicationsd'envoietréceptiondeSMS.
Cecomposantnepossèdeaucuneinterfacegraphiqueetn'estpascenséexécuterdelonguestches.
2.
1.
2.
2Intents:communicationentrecomposantsUnintentestunmessageutiliséparlescomposantsdesapplicationspourcommuniquerentreeux.
Plusprécisément,ilestutilisépourexécuterqueledes-tinataireexécuteunerequêteàlademandedel'émetteur.
Lecomposantémet-tantl'intentetceluilarecevantnefontpasforcémentpartiedelamêmeap-plication.
Unintentadeuxusagesprincipaux:lanceruncomposantActivityouServiceetdiuserunmessagedanslesystèmeauxcomposantsBroad-castReceiver.
Nousparleronsalorsdanscecasdebroadcastintent.
Ilexistediérentesméthodesfourniesparl'APIAndroidlanceruncomposantActivityouServiceetdiuserunintentdanslesystème.
Cesméthodespeuventêtreclasséesselonletypedecomposantciblé.
LesméthodesutiliséespourenvoyerunintentàuncomposantdetypeActivityetServicesontlesméthodesdontlenomcommencentrespectivementparstartActivityetstartService.
QuantauxméthodesutiliséespourdiuserunintentàdescomposantsBro-adcastReceiver,leurnomssontpréxésparsendBroadcast.
Unintentpeutavoirplusieursattributsdontquatreprincipaux:componentname,action,dataetcategory.
Cesattributsserventàdénirle(s)destina-taire(s)del'intentetlesdonnéesàtransmettre.
Componentnamedésignelenomducomposantdestinéàrecevoirlemessage.
Siunevaleurestassociéeàcetattribut,l'intentestditexplicite.
Danslecascontraire,ilestditimpliciteetilappartientausystèmededénirledestinatairedumessage.
S'ilexisteplusieursdestinatairespossibles,lesystèmedemanderaàl'utilisateurdechoisirledesti-nataireàquilemessageseraenvoyé.
CemécanismeestappliquéuniquementlorsquelesdestinatairespossiblessontdetypeActivity.
S'ils'agitdeService,lesystèmeferalui-mêmelechoix.
Danslecodedulisting2.
1parexemple,lafonctionsharePageémetunintentandepartageruneURLsansdénirlecomposantdestinataire.
sonémission,lesystèmedétermineradoncunelistededestinatairespouvantrecevoirl'intentetproposeraàl'utilisateurdechoisirparmilesélémentsdecetteliste.
Pourcetyped'action,Androidproposeraaumoinsdanslalistel'applicationdemessagerieélectronique,lepressepapiersetlebluetooth.
Pourlesmessagesdetypebroadcastintent,lesystèmeenverraàtouslescomposantsBroadcastReceiveréligibles.
Actionestunechanede2.
1.
SYSTMEANDROID11caractèreetdésignel'actiondemandéeparl'application.
Dataestuneadressepointantversladonnéeàtraiterouletypededonnéesàtraiter.
Categorydé-signeuneouplusieurscatégoriesdecomposantscensésrecevoirlemessage.
Lescatégoriesn'ontaucunlienaveclesquatretypesdecomposantd'uneapplicationAndroid.
partirdecesattributs,lesystèmedénitleoulesdestinatairesdel'intent.
Deuxautresattributspeuvents'ajouterauxquatreprécédents:lesflagsetlesextras.
Lesystèmenelesutilisepaspourdénirleoulesdestinaire(s)del'intent.
Lesflagssontdesattributsdestinésplusausystèmequ'audestina-tairedumessage.
UneanalyserapidedelalistedesflagsfournisparAndroidmontrequ'ilsontunusageassezvarié.
Ilsserventparexempleàdéléguerunepermissiond'accèsenlectureouécritureauxdonnéesassociéesàl'intentouàchoisirdesgroupesd'applicationspouvantrecevoirlemessage.
Nousnedon-neronspasplusdedétailsurcetattributdanscettethèsemaislalistedesflagsfournisparAndroidsontdisponiblesdansladocumentationdelamé-thodesetFlagsdelaclasseIntent[84].
Lesextraspermettentdetransmettredesinformationsadditionnellesaudestinatairedumessage.
Ils'agitd'unelistedecoupleclévaleur.
Danslecodedulisting2.
1,l'intentémisparlafonctioncontientquatreattributsdetypeextras.
Cesattributsserventdanscetexempleàtransmettredesdonnéesliéesàl'URLdelapageàpartager:letitredelapage,uneicneetunecaptured'écran.
1staticfinalvoidsharePage(Contextc,Stringtitle,Stringurl,2Bitmapfavicon,Bitmapscreenshot){3Intentsend=newIntent(Intent.
ACTION_SEND);4send.
setType("text/plain");5send.
putExtra(Intent.
EXTRA_TEXT,url);6send.
putExtra(Intent.
EXTRA_SUBJECT,title);7send.
putExtra(Browser.
EXTRA_SHARE_FAVICON,favicon);8send.
putExtra(Browser.
EXTRA_SHARE_SCREENSHOT,screenshot);9try{10c.
startActivity(Intent.
createChooser(send,c.
getString(11R.
string.
choosertitle_sharevia)));12}catch(android.
content.
ActivityNotFoundExceptionex){13//ifnoapphandlesit,donothing14}15}Listing2.
1–Partaged'unepagewebgrceàunintentimplicite.
Extraitducodedunavigateurpardéfautd'AndroidRemarque:Anqu'uncomposantApuisserecevoirunintentd'uncompo-santappartenantàuneapplicationautrequelasienne,ilfautquececomposantAsoitdéclaréavecl'attributexporteddanslechierAndroidManifest.
xmlde12CHAPITRE2.
TATDEL'ARTsonapplication(section2.
1.
2.
4).
Cetattributestcependantimplicitelorsqu'unintentfilterestdéclarépourcecomposant.
2.
1.
2.
3Intent-lterDanslasectionprécédente,nousavonsprésentélesintents,untypedemessageutiliséparlescomposantsd'uneapplicationpourcommuniqueravecd'autrescomposants.
Lorsdel'émissiondel'intent,lesystèmecalculeàpar-tirdesattributsassociésàl'intentle(s)destinataire(s)dumessage.
Deuxcaspeuventseprésenter.
Danslepremiercas,l'émetteuradéniexplicitementledestinataire(explicitintent).
Lemessageestdonctransmisdirectementaudestinatairechoisiparl'émetteur.
Danslesecondcas,l'émetteurn'apasdé-nidedestinataireetilappartientausystèmedeledénir(implicitintent).
Lorsquececasseprésente,lesystèmedénitlalistedesdestinatairespossiblesgrceàunltredéclaréparchaqueapplicationappeléeintentfilter.
Cedernierdénitpourchaquecomposantquelssontlesintentsquelecompo-santsouhaiterecevoiretestdéclarédanslechierAndroidManifest.
xmlquiaccompagnechaqueapplicationAndroid.
Nousdonnonsplusdedétailsurlecontenudecechierdanslasection2.
1.
2.
4etnousnouscontentonsicid'ex-pliquerlapartiesurlesintentfilters.
Chaquecomposantd'uneapplica-tionestdéclaréedanscechieretchaquedéclarationestaccompagnéededi-versesinformationstellesquel'intentfilter.
L'intentfilterdéclareausystèmelesintentsquechaquecomposantpeuttraiter.
Celtrageestdé-critparunelisted'attributsd'intentsquelesintentstransmisauxcom-posantsdoiventavoir.
Danslelisting2.
2parexemple,l'applicationltrelesintentsquedeuxdesescomposantspeuventrecevoir.
Lepremiercomposant,App,nepeutrecevoirquelesintentsdontlesattributsactionetcategoryontrespectivementcommevaleurassociéeandroid.
intent.
action.
MAINetandroid.
intent.
category.
LAUNCHER.
Quantaudeuxièmecomposant,Bil-lingReceiver,ilnepeutrecevoirquedesintentsauquell'attributactionestassociéàlavaleurcom.
android.
vending.
billing.
RESPONSE_CODE.
2.
1.
2.
4AndroidPackageAndroidPackageestlaformesouslaquelleuneapplicationestproposéeàl'utilisateur.
Ils'agitd'unearchive,communémentappeléeapk,contenantlecodedel'applicationetlesressourcesqu'elleutilise.
Nousprésentonsdanscequisuitlecontenuprincipald'unapk.
AndroidManifest.
xmlAndroidManifest.
xmlestunchierxmlcontenantlesinformationsliéesàl'applicationquisontnécessairesausystème.
Ilestcrééparledéveloppeurdel'application.
Parmilesinformationsqu'ilcontient,nouspouvonsciter:—lenomdupackagedel'application—lecomposantActivityàlanceraulancementdel'application2.
1.
SYSTMEANDROID13—lalistedescomposantsdel'applicationetlesinformationsquisontliésauxcomposants(ex:permissionpouraccéderàuncomposantServicesensible,lesIntentsattendusparlescomposantsdel'applicationetc)—lespermissionsdemandéesparl'application(ex:read_smspourlirelesSMS)—lespermissionsdéclaréesparl'application—lesbibliothèquesutiliséesparl'application—leniveauminimalduSDKAndroidpourquel'applicationpuissefonc-tionnerLelisting2.
2présentelechierAndroidManifest.
xmld'uneversiond'AngryBirdsSpace.
ladeuxièmeligne,sontdénisl'endroitoùl'applicationserainstallée(icilaisséauchoixdusystème)etlenomdupackagedel'application.
Delaligne4àlaligne11sontensuitelistéeslespermissionsdemandéesparl'application.
Icil'applicationdemandeparexempleaccèsàlamémoireexterne,auréseau,auxinformationsliéesautéléphone,auxdonnéesdegéolocalisationetausystèmedepayementproposéparGoogle.
Laligne13décritcommentl'applicationseraprésentéedanslemenudesapplicationsunefoisinstallée:l'icneàutiliseretlenomàacher.
Leresteduchierlistelescomposantsdel'applicationetlesinformationsquiysontliées.
L'applicationaainsiquatrecomposantsdontdeuxdetypeActivity,undetypeServiceetundetypeBroadcastReceiver.
Commeexpliquéprécédemment,ltrerlesmessagesIntentàdestinationdescomposantsdel'applicationestpos-sible.
DansAndroidManifest.
xml,celasefaitvialesentréesintent-filter.
AinsilepremierActivitynerecevraquelesintentsdontl'attributactionalavaleurandroid.
intent.
action.
MAINetlacatégorieestandroid.
intent.
ca-tegory.
LAUNCHER.
Celasigniequec'estcecomposantquiseralancélorsquel'utilisateurcliquerasurl'icnedel'applicationdanslemenudesontéléphone.
QuantauBroadcastReceiver,ilneréagiraqu'auxintentsdontl'attributactionvautcom.
android.
vending.
billing.
RESPONSE_CODEClasses.
dexLecodedechaqueclassed'uneapplicationJavastandardeststockédansdeschiers.
classdiérents.
SousAndroid,cen'estpaslecas.
Touteststockédansunseuletuniquechierquiestclasses.
dex.
Deplus,silecodedesapplicationsJavaestluicompiléenbytecodeJava,celuidesapplicationsAndroidestluicompilédansunautreformatquiestlebytecodedalvik.
C'estlecontenudecechier,ouplusprécisémentuneversionoptimiséedecelui-ci,quiserainterprétéparlamachinevirtuelleDalvikpourexécuterl'application.
AutresUnapkcontientd'autresentréestellesquelesrépertoiresMETA-INF,res,jnietlib.
LerépertoireMETA-INFcontientainsideschiersliésaucontrled'intégritédel'applicationetàl'identicationdesondéveloppeur.
Leréper-toirerescontientlesressourcesutiliséesparl'applicationtellesquedesimages,14CHAPITRE2.
TATDEL'ARTsons,etc.
Lesrépertoiresjnietlibcontiennentlesbibliothèquesutiliséesparl'application.
NousavonsprésentédanscettesectionlesystèmeAndroid:lenoyau,l'espaceutilisateureninsistantsurlesapplicationsetlamanièredontilscoopèrent.
Danslasectionquisuit,nousprésentonslesdiérentsmécanismesdesécuritéprotégeantcesystème.
2.
1.
SYSTMEANDROID151592122273233363740424344Listing2.
2–FichierAndroidManifest.
xmld'AngryBirdsSpace16CHAPITRE2.
TATDEL'ART2.
2SécuritédusystèmeAndroidNousavonsécritdanslasectionprécédentequelenoyaud'AndroidétaitunnoyauLinuxavecunensembledemodicationsetd'ajouts.
UnepartiedesmécanismesdesécuritéoertsparAndroidproviennentainsidusystèmeLinuxauxquelss'ajoutentdesmécanismespropresàAndroid.
Cesmécanismesontpourbutdeprotégerlesapplicationslesunesdesautres,lescommunicationsentreapplicationsetlesressourcessensiblesdisponiblesdanslesystème.
2.
2.
1MécanismesissusdeLinuxLenoyaud'AndroidestuneversionmodiéedunoyauLinux.
Ilbéné-cieainsidesmécanismesoertsparlesnoyauxetsystèmesLinux:systèmemulti-utilisateur,contrled'accès(lecture,écritureetexécution)basésurlesutilisateursetisolationparprocessus.
2.
2.
1.
1Systèmemulti-utilisateuretcontrled'accèsAndroidsupportel'existencedeplusieursutilisateursdanslesystèmeetutiliselemécanismedecontrled'accèsfourniparLinux.
L'accèsauxdiérentesressourcesdanslesystèmeestainsidénipardesdroitsd'accèsenlecture,écritureetexécution.
Cesaccèssontdénispourtroisentités:lepropriétaire,legroupepropriétaireetlesautres.
Ilexisteunensembleprédénid'utilisateurspardéfautsurlessystèmesAn-droiddontunepartieestassociéeaufonctionnementinternedusystème.
Parmicesutilisateursnouspouvonsciterrootquiestl'utilisateuraveclesdroitslesplusélevésdanslessystèmesdetypeLinuxetAndroidetl'utilisateursystemquiestassociéauxdiérentesressourcesnécessairesaufonctionnementdusys-tèmetelsquelesbibliothèquesnativespartagées.
Toutaulongdel'exécutiondusystème,lalistedesutilisateurspeutensuiteévoluer.
Eneet,d'autresutili-sateurssontcréésàchaquefoisqu'uneapplicationestinstalléesurlesystème2.
Cesutilisateursontgénéralementdesdroitsrestreintsàsavoirqu'ilsontuni-quementaccèsauxressourcesappartenantàl'applicationàlaquelleilssontassociés.
Cetterestrictionéviteainsiquelesdonnéesdechierappartenantàuneapplicationnesoitluesoumodiéesparuneautreapplication.
2.
2.
1.
2IsolationdesapplicationsEnplusd'associerdesutilisateursdiérentsàchaqueapplication,Androidlescloisonneégalementenlesexécutantdansdesprocessusdiérentsetenleurattribuantdesrépertoiresdiérentsdanslesquelslesapplicationsstockentlesdonnéesqu'ilmanipulent.
Lesprocessusassociésàchaqueapplications'exé-cutentaveclesdroitsdel'utilisateurassociéàl'applicationetlesrépertoires2.
Ilexisteuneexceptionàcetterègleoùuneapplicationpeutdemanderàpartagerlemêmeidentiantd'utilisateurqued'autresapplications.
Voirlasection2.
1.
2.
4.
2.
2.
SCURITDUSYSTMEANDROID17TypeDescriptionnormalValeurpardéfautdespermissions.
Elleestautomati-quementaccordéeatouteapplicationlademandant.
dangerousNécessiteunevalidationdelapartdel'utilisateurand'accorderlapermission.
Exemple:read_smspourl'accèsauxSMS.
signaturePermissionaccordéeuniquementsil'applicationlademandantestsignéeaveclecerticatdudévelop-peurayantdéclaréelapermission.
signatureOrSystemPermissionaccordéeuniquementauxapplicationssystem,plusprécisémentcellesdanslapartitionsystem,ouàcellesayantétésignéesaveclemêmecerticatquel'applicationayantdéclaréelapermis-sion.
Table2.
1–TypesdepermissionAndroidappartiennentégalementàl'utilisateurauquell'applicationestassociée.
Cecloi-sonnementéviteainsiqu'uneapplicationinterfèreavecl'exécutiond'uneautreapplicationouqu'ellemodielesdonnéesd'uneautreapplication.
2.
2.
1.
3ChirementdelapartitiondedonnéesDepuislaversion3.
0d'Android,lesystèmeorelapossibilitédechirerlapartitiondata.
Cettepartitioncontientl'ensembledesapplicationsduté-léphone,àl'exceptiondesapplicationsfourniespardéfautquel'utilisateurnepeutdésinstaller,ainsiquelesdonnéesqu'ellesmanipulent.
Lechirementestréaliségrceaumoduledm-crypt[15]fourniparlenoyau.
2.
2.
2MécanismespropresàAndroid2.
2.
2.
1PermissionsAndroidproposeunensemblederessourcessensiblesauxapplicationsins-talléessurletéléphone(réseau,caméra,systèmedegéolocalisation,bluetooth,etc.
).
Pourlesutiliser,uneapplicationdevradéclarerlespermissionscorres-pondantes.
Uneapplicationsouhaitantlirelessmsdevraparexempleavoirlapermissionread_sms.
l'installation,l'utilisateurvalidelespermissionsde-mandéesparl'application.
Pourquel'installationsefasse,ildoittouteslesaccepter.
Unefoisl'applicationinstallée,plusaucunevalidationn'estnécessairedelapartdel'utilisateur.
Laseuleexceptionestl'envoidemessagesàdesnu-mérossurtaxésoùl'utilisateurdoitvalider3chaqueenvoi.
Ilexistequatretypesdepermissionquenousrésumonsdansletableau2.
1.
3.
fonctionnalitédisponibledepuisAndroid4.
218CHAPITRE2.
TATDEL'ARTName:AndroidManifest.
xmlSHA1-Digest:9FiHXTmeVecbFb3enszaSlXIZp0=Name:res/layout/hello_activity.
xmlSHA1-Digest:BJz/aHbKT/Or0LwKJZ/jxN+WzmE=Name:resources.
arscSHA1-Digest:khWw+6lJ8dfajIaKkvbCuQ7YYzI=Name:classes.
dexSHA1-Digest:+aR5lPSRcAvOrX+OhsxELXB1qGg=Figure2.
2–FichierMANIFEST.
MFdel'applicationHelloActivity2.
2.
2.
2SignaturedesapplicationsAndroidrequiertquechaqueapplicationsoitsignéeand'êtreinstalléesurletéléphone.
Lesdéveloppeurssignentainsileurapplicationavecuncerticatdontlacléprivéeleurestpropre.
LesapplicationsAndroidsontsignéesavecl'outiljarsigner.
Ilprendenentréeunearchivejarouzipetuncerticat.
Ildonneensortiel'archiveàlaquelleontétéajoutésdeuxchiers:unchieravecl'extension.
sfetunautrechieravecl'extension.
rsaou.
dsaselonlesclésutilisées.
L'entêtedupremierchiercorrespondauhashduchierMANIFEST.
MF.
Lerestedesoncontenuestsimilaireauchiermeta-inf/manifest.
mfquiestprésentdanschaquearchivejar.
MANIFEST.
MFrecensepourchaquechierprésentdansl'archivesonnom,sonhashetl'algorithmedehachageutilisé.
Lagure2.
2estlechiermanifest.
mfdel'applicationHelloActivityfournienexempleaveclekitdedéveloppementAndroid.
Pourchaquechierprésentdansl'archivenousavonssonnom,unalgorithmedehachageetlehashduchier.
Lechier.
SFcontientlesmêmestypesd'informationqueMANIFEST.
MF.
Pourchaquechierprésentdansl'archivenousavonsuneentréeconstituéedunomduchier,unalgorithmedehachageetunhash.
ContrairementàunhashdansMANIFEST.
MF,ils'agitcettefois-ciduhashdel'entréecorrespondantauchierdansMANIFEST.
MF.
Lagure2.
3listelecontenuduchiercert.
sfdel'applicationHelloActivity.
Lechier.
rsaluicontientlasignatureduchier.
sfainsiquelaclépubliquecorrespondantàlacléprivéeutiliséepourlasignature.
LasignaturedesapplicationsAndroidaplusieursobjectifs.
Ellesertàltrerlesapplicationsquipeuventêtreinstalléssurletéléphone.
Pardéfaut,seuleslesapplicationsprovenantdeGooglePlaypeuventêtreinstalléessurletéléphone.
Ils'agitplusprécisémentdesapplicationsdontledéveloppeurauncerticatreconnusurGooglePlay.
Touteapplicationavecunesignatureinconnueserabloquéeàl'installationàmoinsquel'utilisateurn'autoriseexplicitementl'ins-tallationd'applicationsprovenantd'autresplateformes.
Lasignatureidentieégalementtouteslesapplicationsd'unmêmedévelop-peur.
Sicelui-ciestmalveillant,ilestainsipossibled'enleversesapplicationsde2.
2.
SCURITDUSYSTMEANDROID19Signature-Version:1.
0Created-By:1.
0(AndroidSignApk)SHA1-Digest-Manifest:Qenbz+ZjLsHBpHWbAHMYhLpfies=Name:AndroidManifest.
xmlSHA1-Digest:uziqi6KmjjgyRnooQ7j5ZHIKVTw=Name:res/layout/hello_activity.
xmlSHA1-Digest:who+PyjjYjRHN6maNog494Cr+CE=Name:resources.
arscSHA1-Digest:WlDZ0LWZ+zrAmxUTKZuz99hUoZo=Name:classes.
dexSHA1-Digest:QjwcQAkf4iVckku4qf7kiLRSndo=Figure2.
3–Fichier.
SFdel'applicationHelloActivityGooglePlayetdestéléphonesdesutilisateurs.
Lasignatureassureégalementquel'applicationn'apasétémodiéeparunetiercepersonneavantd'êtrepubliée.
Lavéricationsefaitàl'installationdel'application.
Lesystèmevériequelechier.
SFabienétégénéréparledéveloppeur.
IlvérieensuitequelechierMANIFEST.
MFn'apasétémodiéencomparantsonempreinteavecceluilistédanslechier.
SF.
Ilvérieennl'intégritédeschiersdansl'archiveencomparantleurempreiteaveclesvaleurslistéesdanslechierMANIFEST.
MF.
L'installationestarrêtéesiuneincohérenceestdétectée.
Pardéfaut,lesapplicationsAndroidtournentavecdesUIDsdiérentsdansdesprocessusdistincts.
UndéveloppeurpeutcependantvouloirfairetournersesapplicationsaveclemêmeUIDoudansunseulprocessus.
Ilsutpourcelaqu'illedéclaredanslechierAndroidManifest.
xmldesonapplication.
Plusprécisément,ledéveloppeurdéclareunaliasd'UIDquiserapartagés'ilsouhaiteutiliserlemêmeUIDpourplusieursdesesapplications.
S'ilsouhaitefairetournersesapplicationsauseind'unmêmeprocessus,ildéclareunaliasdenomdeprocessus.
Pouréviterquedesdéveloppeursnes'attribuentégalementlemêmeUIDounes'attacheauprocessusfaisanttournerlesapplicationsd'unautredéveloppeur,lesystèmevériequel'applicationdemandantàpartagerlemêmeUIDouàêtreexécutédansleprocessusqu'uneautreapplicationsoitsignéeparlemêmedéveloppeur.
2.
2.
2.
3AnalysedesapplicationsGoogleanalyserégulièrementlesapplicationsproposéesentéléchargementsurGooglePlayainsiquecelleseninstanced'êtreinstalléessurlestéléphonesdesutilisateurs.
Siaucuneinformationsurlanatureexactedesanalysesn'estfournie20CHAPITRE2.
TATDEL'ARTparGoogle,noussavonsqu'uneanalysestatiqueetdynamiquedesapplicationssontfaitespourdétecterdesmotifssynonymesdemenacedansl'applicationoudescomportementsmalveillants.
J.
OberheideetC.
Millerontmontrédans[78]quelesapplicationssoumisessurGooglePlaysontexécutéesdansunemachivevirtuelleetqu'ilétaitpossibledeconstruireunproldecettemachine.
2.
2.
2.
4Protectiondel'appareiletdesesdonnéesAndroidpossèdeunensembled'outilsdestinésauxdéveloppeursdusystème.
Parmicesoutilsnouspouvonsciteradbetfastboot.
Lacommandeadbper-metdecommuniqueravecunémulateurAndroidouuntéléphone.
Parmilesfonctionsproposées,ilyal'ouvertured'unshelldistantsurletéléphone,l'ins-tallationoulasuppressiond'applicationetletransfertdechier.
Pourprotégerletéléphonedetoutusagemalveillantdecesoutils,lacommunicationestpos-sibleuniquementsilemodedebugestactivé.
Uneauthenticationparclédel'ordinateurauprèsdutéléphones'ajouteégalementàceladepuislaversion4.
2d'Androidandeltrerlesmachinespouvantcommuniqueravecletéléphoneviaadb.
Lacommandefastbootsertàeacer/remplacerlecontenudesdié-rentespartitionssurletéléphone.
Andel'utiliser,l'utilisateurdoitdansunpremiertempsdébloquercettefonctionnalitéaudémarrageetceprocessusdedéblocageimpliquelasuppressionducontenudelapartitiondatadutéléphone.
Cettepartitioncontientlesdonnéesdel'utilisateurainsiquedesdiérentesap-plications.
L'actionderemplacerlecontenud'unepartitionestsouventdésignerparl'expressionasheruneimage,l'imageétantlenouveaucontenudelaparti-tion.
Unattaquantdésirantainsiremplacerunepartiedescomposantslogicielsdusystèmeviafastbootnepourraainsiaccéderauxdonnéesdel'utilisateur.
2.
2.
2.
5Administrationdel'appareilAndroidproposedepuissaversion2.
2uneAPIpermettantdedévelopperdesapplicationsand'administrerlestéléphones[83].
L'APIpermetderenforcerlapolitiquesurlesmotsdepasse(ex:taille,expirationetnombredetentatives),imposerlechirementdespartitions,activer/désactiverlacaméra(fonctionna-litédisponibledepuisAndroid4.
0),demanderlacréationd'unnouveaumotdepasse,verrouillerletéléphoneetremettreletéléphoneàlacongurationd'usine.
Nousavonsprésentédanscettesectionlesmécanismesdesécuritéd'Android.
Cesmécanismesontpourbutdeprotégerlesapplications,lesressourcesqu'ellesutilisentetlescommunicationsentrecesprocessus.
Cesmécanismesnesontcependantpasparfaitsetnousmontronsdanslasectionquisuitleurlimitesainsiqu'unaperudesmenacesquereprésententlesmalwareAndroid.
2.
3.
LIMITESDESMCANISMESDESCURITANDROID212.
3LimitesdesmécanismesdesécuritéAndroid2.
3.
1AbusdepermissionLespermissionsdonnentaccèsauxressourcessensiblesdutéléphoneauxapplications.
Sil'utilisateursouhaiteinstalleruneapplication,ildoitluiaccordertouteslespermissionsqu'elleademandées.
Silespermissionsltrentl'accèsauxressourcessensibles,iln'existecependantaucunevéricationauniveaudel'usagedecesressources.
Seulelaconanceauxdéveloppeursdel'applicationpermetdes'assurerqu'iln'yauraaucunabus.
Lesattaqueslesplussimplesutilisentainsilespermissionsdemanièreabusiveetc'estlecasdelaplupartdesmalwareayantpourbutdefairefuirdesdonnéessensiblesdutéléphone.
Unexemplerécentestuneapplicationayantétédétectéecommeunlogicielespion4quicibledesmanifestantsàHongKong[26].
L'applicationdemandeunensembleassezlargedepermissionspourespionnerlesutilisateursdestéléphonessurlesquelsl'applicationestinstallée.
LespermissionsdemandéesdonnentaccèsauxSMS,auxappels,àlalocalisationdel'utilisateur,aumicropourenregistrerl'utilisateur,etc.
Uneapplicationavectropdepermissionspeutparatresuspecteauxyeuxdesutilisateursavertis.
Andenepaséveillerlasuspiciondesutilisateurs,unesolutionpourlesdéveloppeursdemalwareconsisteàutiliserd'autresapplica-tionsprésentessurlesystèmepourmenerl'attaqueouàdiviserl'attaqueentreplusieursapplicationsquicollaborerontpourexécuterl'attaque.
2.
3.
2Permissions:attaquespardélégationetattaquesparcollusionUneattaquepardélégation[49]consisteàdéléguerl'exécutiondelatchenécessitantunepermissionquel'applicationmalveillantenepossèdepasàuneautreapplicationquiellelapossède.
Parexemple,uneapplicationn'ayantpaslapermissiondecommuniquersurleréseaupourraitseservirdunavigateurpourposterdesinformationsoutéléchargerdeschiers.
LeséchantillonsdeBadNews[91]fontparexempleappelaunavigateurdutéléphoneandelan-cerletéléchargementd'applicationssurletéléphone.
Uneattaqueparcollusionconsisteenunecoopérationentreplusieursapplicationspourmeneruneattaque.
Iln'existeaucunmalwareutilisantcetyped'attaqueànotreconnaissance.
Ce-pendant,J.
BoutetetT.
Leclercontmontrélafaisabilitéd'unetelleattaquedans[28].
2.
3.
3CommunicationentrecomposantsvialesintentsLesintentssontdesmessageséchangésentrelescomposantsdesappli-cationspourtransmettredesrequêtes.
Lapossibilitéd'envoyerdesintentsentredeuxdeuxcomposantsdedeuxapplicationsdiérentesapporteunesur-faced'attaquesupplémentaire.
Dans[34],Chinetal.
décriventensebasantsur4.
EmpreinteMD5:15e5143e1c843b4836d7b6d5424fb4a522CHAPITRE2.
TATDEL'ARTleuranalysedufonctionnementdesntentsdesscénariosd'attaquesquipour-raientexploitercettesurfaced'attaqueand'espionnerleséchangesdemessageentreapplication,lesbloquer,lesmodier,éleversesprivilègesetinuencersurlecomportementd'uneapplication.
InterceptiondesmessagesdiusésdanslesystèmeLesbroadcastintentssontdesmessagesdiusésdanstoutlesystème.
Ilspeuventainsiavoirunouplusieursdestinataires.
L'unedesvulnérabilitésqu'introduitcetypedecommunicationestlapossibilitéd'observerlesinfor-mationsdiuséesdanslesystèmeetéventuellementlesintercepter,bloqueroumodier.
Lorsqu'uneapplicationdiuseunbroadcastintent,elledénitunensembled'attributsquipermettentausystèmed'identierlescomposantsBroadcastReceiverprésentsdanslesystèmequiattendentcetypedemes-sage.
PourobserverlesmessagesattendusparlecomposantBroadcastReceiverd'uneapplication,ilsutainsiàuneapplicationmalveillantededéclareruncomposantdumêmetypeaveclemêmeintent-filter.
Pourobserverlesmes-sagesreusparlecomposantBillingReceiverdéclarédanslelisting2.
2,uneapplicationmalveillanten'aqu'àdéclareruncomposantdumêmetypeenpréci-santquececomposantn'acceptequelesintentsavecunattributactiondontlavaleurassociéeestcom.
android.
vending.
billing.
RESPONSE_CODE.
Unbroadcastintentpeutêtretransmisdemanièresimultanéàtouslesdestinatairesouensuivantunordre.
Danslecasdecedernier,l'intentesttransmisd'uncomposantàl'autredansunordredéniparlesystème.
ChaquecomposantBroadcastReceiverpeutainsimodieroubloquerlesinformationstransmisesavantquelemessagenesoittransmisauprochaindestinataire.
Siuneapplicationmalveillantesetrouveaumilieudelachanedetransmission,ellepeutdoncmodierlecontenudel'intentémisetenvoyerdefaussesdonnéesauxcomposantsenattentedumessage.
Ellepeutégalementdéciderdenepasfairesuivrelemessageetempêcherlesautrescomposantsdelerecevoir.
DétournementdesintentsàdestinationdescomposantsActivityetServiceLorsqu'uneapplicationémetunintent,ilpeutsoitdénirexplicitementledestinatairesoitlaisserlesystèmeledéniràsaplace.
Dansledeuxièmecas,l'émetteurn'aaucunegarantiesurl'identitédudestinatairecequidonneainsilapossibilitédedétournerlesmessagesdudestinatairelégitime.
Uneapplicationmalveillantesouhaitantintercepterunimplicitintentn'adoncqu'àdéclareruncomposantayantunintentfiltercorrespondantàl'intentqu'ilsouhaitedétourner.
Parexemple,uneapplicationmalveillantesouhaitantdétournerlepartagedepageeectuéedanslelisting2.
1n'aqu'àdéclareruncomposantActivityavecunintentfiltercorrespondantauxattributsdel'intentàintercepter:unattributactionetunattributdataauxquelssontassociésrespectivementlesvaleursACTION_SENDettext/plain.
2.
3.
LIMITESDESMCANISMESDESCURITANDROID23Siledétournementestthéoriquementpossible,iln'aenréalitéqu'uneproba-bilitédesuccès.
Lorsqu'ilexisteplusieursdestinatairespossiblesdel'intent,unchoixquiestindépendantdel'applicationmalveillanteesteectué.
Sil'intentaétéémispouruncomposantdetypeActivity,lesystèmedemandeàl'utili-sateurdechoisirledestinataireparmilalistedesapplicationspouvantrecevoirl'intent.
Sil'intentaétéémispouruncomposantdetypeService,lesystèmeeectueralui-mêmelechoixetcechoixesteectuédemanièrealéatoire.
Vol/abusdespermissionsNousavonsécritensection2.
1.
2.
2quelesintentspouvaientégalementserviràtransmettredespermissionspouraccéderàdesdonnéesaudestinatairedumessage.
PositionnerleflasgFLAG_GRANT_WRITE_URI_PERMISSIONdonneparexemplel'accèsenlectureauxdonnéesliéesàl'intentaudestinatairedumessage.
Uneapplicationmalveillanteinterceptantdesintentstransmettantdespermissionspeutainsiabuserdecespermissionsetvoleroumodierlesdonnéesauxquelleslespermissionsdonnentaccès.
IntentsmalveillantsLebutdecetteattaqueestd'envoyerdesrequêtesmalveillantesàtraiterparuncomposantcible.
Uncomposantquipeutrecevoirdesintentsd'autresappli-cationsn'estpasseulementexposéauxapplicationsquesondéveloppeurpensaitservirmaisàtoutesapplicationssurlesystème.
Cetteexpositionàtouteslesapplicationsdusystèmeoreainsiunesurfaced'attaqueauxapplicationsmal-veillantesquiellesaussipeutdemanderaucomposantdetraiterunerequête,mêmesicetterequêteestmalicieuse.
LesnavigateurswebsousAndroidontparexempleuncomposantActivityquiouvrelesURLàlademanded'autresap-plications.
Cettefonctionnalitépeutainsiêtredétournéeparuneapplicationquin'apasaccèsauréseauandefairefuirdesdonnéesoutéléchargerdeschiers.
Pourcelal'applicationmalveillanteémettraunintentàdestinationdunaviga-teuranquecedernierouvreuneadresseweb.
LeséchantillonsdeBadNews[91]utilisentparexemplecetteapprocheandetéléchargerdesapplicationssurletéléphone.
2.
3.
4Failleslogicielles:élévationdeprivilègeCommetoutprogramme,lesystèmeAndroidaégalementdesfailleslogi-cielles.
Exploitercertainesd'entreellespermetd'éleverlesprivilègesd'uneap-plicationetainsiexécuterdesopérationssensiblesquenousnepouvionsfaire.
ObtenirlesdroitsrootpermetparexempledemodierlecontenudelapartitionsystemsousAndroidpourinstallerdesapplicationssystèmeoulesremplacer.
LenoyauAndroidétantbasésurunnoyauLinux,ilhériteainsidesesvulnérabilités.
Certainesd'entreelles[5,4]ontparexempleétéexploitéesobtenirdesaccèsrootsurlestéléphones.
24CHAPITRE2.
TATDEL'ARTDesfaillespermettantd'éleverlesprivilègesdesapplicationsexistentégale-mentdansl'espaceutilisateur.
D'aprèslestravauxdeY.
ZhouetX.
Jiang[113],sixvulnérabilitéspermettantd'éleverlesprivilègesdesapplicationsexistaientaumomentdeleuranalyse(voirtableau2.
2)etquatred'entreellesétaientef-fectivementutiliséesparlesmalwarepouréleverleursprivilèges:Asroot[1],exploid[31],RATC/Zimperlich[93]etGingerBreak[32].
Plusrécemment,J.
ForristalaprésentéàlaBlackHat2013unevulnérabilité[51]concernantlavéricationdessignaturesdesapplicationsAndroidàl'installation.
Lavulnéra-bilitépermetd'installeruneversionmodiéed'uneapplicationdontlasignaturerestecelledelaversionoriginale.
Silavulnérabiliténepermetpasd'obtenirlesdroitsroot(aucuneapplicationnetourneavecl'UIDroot),ellerendcependantcaduquelesprotectionsoertesparlasignatureensection2.
2.
2.
Undéveloppeurmalveillantpeutfaireexécutersoncodeaveclesmêmesdroitsquel'applicationoriginalequ'ilamodiée.
IlpeutégalementfairetournersoncodedanslemêmeprocessusouaveclemêmeUIDqu'uneautreapplication.
S'iln'estpaspos-sibled'obtenirlesdroitsroot,ilestcependantpossibled'obtenirlesdroitsdesapplicationssystem.
Cesapplicationsontaccèsàplusdepermissionsquelesapplicationstiercesetdeplussontpersistantessurlesystème.
Unutilisateurnepeutlesenleversansavoirunaccèsrootsursontéléphone.
BienqueGooglemetteàjourrégulièrementlecoded'Android,lesconstruc-teurseuxmettentplusdetempsàproposerdesmisesàjourpourleurtéléphone.
Lafenêtred'exploitationdesvulnérabilitésestainsibienpluslargequesurlesordinateurs.
Nousavonsprésentédanscettesection,leslimitationsdesmécanismesdesécuritésousAndroid.
Ceslimitationspeuventêtreclasséesentroisgroupes.
Lepremiergroupeconcerneleslimitesdelasécuritéoerteparlespermissions.
Lesecondconcernelesrisquesintroduitsparlescommunicationsentrecomposantsvialesintents.
Letroisièmegroupeconcernelesfailleslogiciellesdanslecoded'Androidquipermettentd'éleverlesprivilègesdesapplicationsdanslesystème.
Danslasectionsuivante,nousprésentonslesmalwareAndroidetlesmenacesqu'ilsreprésentent.
2.
4MalwareAndroid2.
4.
1DénitionsNousappelonsmalwareunprogrammeouuncodedontlebutestdenuireàunsystèmedonné.
Danslerestedudocumentnousferonssouventusagedestermeséchantillondemalwareetfamilledemalware.
Unéchantillond'unmal-wareestuneapplication,comprendreiciapplicationAndroidcorrespondantàunchierapk,quicontientcemalware.
Quantàunefamilledemalware,ils'agitdel'ensembledeséchantillonsd'unmalware.
Analyserunmalwarerevientainsi2.
4.
MALWAREANDROID25àanalyserunouplusieursdeseséchantillonsand'extrairedesinformationsliéesaumalwareetdétecterunmalwarerevientàdécidersiuneapplicationdonnéeestunéchantillond'unmalware.
LespremierstravauxquiontconsistéàdresserunbilandesmenacesquereprésententlesmalwaresAndroidsontlestravauxdeY.
ZhouetX.
Jiangdans[113].
Leurstravauxsontbaséssurl'analysedeplusde1200échantillonsdemalwarequ'ilsontcollectéde2010à2011.
Danscequisuit,nousprésentonslesrésultatsdecetteanalyseetl'enrichissonsavecuneanalyseplusrécentebaséesurlesmenacesquereprésententlesmalwareAndroiden2013.
2.
4.
2MalwaresAndroid:2010à2011[113]Méthoded'infectionPourinfecterlestéléphonesdesutilisateurs,lesdéveloppeursdemalwareajoutentleurcodemalveillantàdesapplicationsexistantesetproposentleurversionmodiéesurdesplateformesdetéléchargement:GooglePlayoutouteautreplateformealternative.
Lesapplicationsinfectéessontprésentéescommeuneversiongratuited'uneapplicationpayanteoudesversionsavecplusdefonc-tionnalités.
86%deséchantillonsrécoltéssontainsidesapplicationsoriginalesauxquellesuncodemalveillantaétéajouté.
Letyped'applicationinfectéeestvarié:applicationpayante,jeuxpopulaires,outilstelsquedesmisesàjourdesécuritéainsiquedesapplicationspouradultes.
UndeséchantillonsdeDroid-KungFu2estparexempleuneversionmodiéed'uneapplicationsimulantunscannerd'empreintepourdéverrouillerletéléphone.
Enarrièreplan,lecodemalveillantexploiteunevulnérabilité[92,93]pouréleversesprivilègesetins-tallerdesbinairessurletéléphoneàl'insudel'utilisateur.
Toutlecodemalveillantnesetrouvepasforcémentajoutéàl'applicationoriginale.
Certainséchantillonsnecontiennentainsiqu'unepartieducodemal-veillantdontleresteserarécupéréàl'exécution.
Cedernierpeutêtrestockéentantqueressourcedel'applicationousurunserveurdistantquel'applicationinfectéedevratélécharger.
L'avantageétantquelecodemalveillantnepourraêtredétectélorsdelasoumissiondel'applicationsurlesplateformesdetélé-chargement.
Leséchantillonsd'AnserverBot[112]ontainsiunechargecachéeentantqu'imagedanslesressourcesdesapplicationsetrécupèrentégalementuneautreapplicationmalveillantesurunserveurdistant.
DéclenchementducodemalveillantLedéclenchementducodemalveillantnesefaitpasforcémentdèslelance-mentdel'application.
Lecodemalveillantpeutattendredesévènementsspé-ciquestelsquel'arrivéed'unsmsoul'écoulementd'uncertainlapsdetempsavantdes'exécuter.
Parmilesévènementslesplusutiliséspourdéclencherle26CHAPITRE2.
TATDEL'ARTProgrammevulnérableExploitDateMalwarelesutilisantNoyauAsroot2009/08/16Asrootinit(2.
2)Exploid2010/07/15DroidDream,zHash,Droid-KungFu*adbd(2.
2.
1)zygote(2.
2.
1)RATC/Zimperlich2010/08/212011/02/24DroidDream,BaseBridge,DroidKungFu,DroidDeluxe,DroidCouponashmem(2.
2.
1)KillingInTheNameOf2011/01/06Aucunvold(2.
3.
3)GingerBreak2011/04/21GingerMasterlibsysutils(2.
3.
6)zergRush2011/10/10AucunTable2.
2–ExploitsrootconnusetleurusageparlesmalwareAndroidde2010à2011codemalveillant,nouspouvonsciterland'initialisationaudémarragedusys-tème.
QuandlesystèmeestprêtàexécuterdesapplicationsAndroid,illesi-gnaleenenvoyantunintentaveclemessageboot_completedàtouslescomposantsBroadcastReceiveràl'écoutecetévènement.
Lesautresmessagesévènementsservantdedéclencheursontlaréceptiondemessage,lesappels,lesévènementsliésauxapplications(ex:ajout,suppression,miseàjouretredé-marrage),l'étatdelabatterie,l'étatdelaconnectivitéréseau,etdesévènementssystèmes(ex:cartesimremplie,changementdeclavier).
LedéveloppeurducodemalveillantajouteuncomposantdetypeBroadcastReceiverpourintercepterl'undecesévènementsetexécuterparlasuitelecodemalveillant.
ActionseectuéesLesactionseectuéesparlescodesmalveillantspeuventêtrerépartiesdansquatregroupes:élévationdeprivilège,contrleàdistance,chargenancièreetvoldedonnées.
Commeévoquéensection2.
2.
2,Androidpossèdedesvulnérabilitésquisontexploitéesparlesdéveloppeursmalveillantspoureectuerdesopérationssen-sibles.
Letableau2.
2montred'ailleursunetendanceàutiliserlesexploitsexploid[31],RageAgainstTheCage[92]etZimperlich[93]anéleverlesprivi-lègesdesapplicationsmalveillantesdurantl'attaque.
Lebutdecetteélévationdeprivilègesestd'eectuerdesopérationssensiblestellesquemonterlapartitionsystemavecl'optiond'écriturepouryinstallerdenouvellesapplications.
1172échantillonssoit93%deséchantillonsanalyséssontcontrlablesàdis-tances.
Plusprécisément,1171échantillonsutilisentleprotocoleHTTPpourre-2.
4.
MALWAREANDROID27cevoirdescommandesdesserveursdecommandeetcontrleC&C.
Lesadressesdesserveurssontstockéesenclairouchiréesdanslecode.
EndehorsdesélévationsdeprivilègesetcommunicationavecdesserveursdeC&C,leséchantillonsanalyséspeuventimputerdeschargesnancièresàl'uti-lisateur.
Androidtournantprincipalementsurlessmartphones,lesapplicationsontainsiaccèsauxfonctionsd'appelsetdesms.
4.
4%deséchantillonsétudiésenvoientainsidesmessagesàdesnumérossurtaxés.
Lesnumérossontsoitsto-ckésendurdanslecodedel'applicationsoitrécupérésàpartirdesserveursdeC&C.
Enplusdesactionsprécédentes,lesmalwarerécupèrentégalementlesdon-néessensiblessurletéléphone.
Lesdonnéescibléessontprincipalementlessms,lalistedecontact,etlesinformationssurlecomptedel'utilisateur.
SndApps[62]collecteparexemplelesadressescourrieldel'utilisateuretlesenvoieversunserveurdistant.
volutiondesmalwareSilespremiersmalwareAndroidsontsimples,l'analyseeectuéedans[113]montrequelestechniquesutiliséestendentàsecomplexier:chargeutile,tech-niquescontrel'analysed'application,serveursC&C.
Toutlecodemalveillantestintégrédansunemêmeapplicationdanslespremiersmalware.
L'analysedeséchantillonsrécoltésmontreunetendanceàlediviser,mettreunepartiedansl'applicationservantàl'infectionetlerestedesmorceauxdansuneouplusieurschargesutiles.
Ceschargessontintégréesdirectementdansl'applicationayantserviàinfecterletéléphoneoutéléchar-geretaprèsl'installationdel'application.
LeséchantillonsdeDroidKungFuontainsideuxchargesutilescachéesentantqueressourcesdesapplicationsinfec-téesquiserontinstalléesdanslapartitionsystemunefoisl'échantillonlancé.
L'installationdeceschargessurletéléphoneoreuneprésenceconstantesurletéléphonemêmesilapremièreapplicationestenlevéedutéléphone.
Deplus,silesapplicationssontinstalléessurlapartitionsystème,iln'existeaucunmoyenpourl'utilisateurdelesenleversansavoirlesdroitsrootsurletéléphone.
And'évitertoutedétection,lesdéveloppeursdemalwareutilisentdiversestechniquestellesquelechirementdeschargesutiles,lechirementdecertainesvaleursutiliséesparlemalware,l'usagedetechniquesd'obfuscationdecodeetl'usagedecodenatif.
Lechirementpermetdecacherlanatureexactedesdon-néesmanipulées(ex:adressesdesserveurdeC&C)parl'applicationetréduitainsilapossibilitédedétection.
LesdéveloppeursdeDroidKungFu1chirentainsileschargesutilesdeleurmalwareanqueleurmalwarenesoitdétectéfacilement.
Siuneclédechirementdiérenteestutiliséeparchaqueéchan-tillon,l'analyseseraencorepluscompliquée.
Certainsdéveloppeursdemalwareobfusquentégalementleurcodeandecomplexiersonanalyse[39].
Ilsmo-dientparexemplelenomdesméthodesetdesclassesJavadel'application.
IlestcependantànoterquelekitdedéveloppementAndroid(AndroidSDK)contientunoutilfournissantlemêmetypedeservice[87].
L'usagedecodenatifcomplexieégalementl'analysedesapplications.
Eneet,laplupartdesoutils28CHAPITRE2.
TATDEL'ARTd'analysed'applicationAndroidseconcentrentuniquementsurlecodeécritenJavacarc'estlelangageprincipalpourdévelopperuneapplicationAndroid.
Enutilisantducodenatif,lesdéveloppeursdemalwaresedonnentainsilapossibilitédecacherunepartieducodemalveillantdurantl'analyse.
Certainsmalwareintègrentégalementdesmodulescensésprévenirtoutedé-tection.
Leséchantillonsd'AnserveBotanalysentainsisonenvironnementd'exé-cutionàlarecherched'antiviruspourAndroid.
Deplus,ceséchantillonstirentégalementprotduchargementdynamiquedecode[36].
Lecodedesapplica-tionsAndroidsetrouvedanslechierclasses.
dexdeleurapk.
Cemécanismepermetdechargerducodeendehorsdecechieretcedemanièredynamiquerendantl'analysedel'applicationplusdicile.
D'autresmalwaresvérientéga-lementquelecoden'apasétémodiépourdétectertoutetentatived'analyseducode.
AnserveBotvérieparexemplel'intégritédesoncodeavantdelancerlecodemalveillant.
Enn,l'analysemontreégalementl'usagedesserveursdeC&Candecont-rlerlecomportementdeséchantillonsdemalware.
Lecomportementexactdespremiersmalwaresontdictésàl'avanceparleurdéveloppeur.
Durantleurana-lyse,YZhouetXJiangontcependantconstatéquedanslecasdecertainsmalware,leurcomportementétaitpluttdictéparunserveurdistant.
Lemal-wareseconnectaitainsipériodiquementauserveurquiluienvoyaitparlasuitel'actionqu'ildevaitexécuter.
Surles49malwaresétudiés,27utilisentainsiunserveurdeC&Cpourrecevoirlescommandesàexécutersurletéléphoneinfecté.
L'usagedetellesapprochespermetauxdéveloppeursdegarderuneexibilitésurlesdiérentesactionsàexécuteretlesfaireévoluerencasdebesoin.
2.
4.
3MalwaresAndroiden2013Silestravauxde[113]présentésprécédemmentconcernentuniquementlesmalwaresde2010à2011,larécenteanalyedeV.
ChebyshevetR.
Unuchekdans[33]montreunecontinuitédanslestypesd'actionmenéeparlesmalware.
Ladistributiondesmalwaressefaittoujoursvialesplateformesdetéléchar-gementoulesserveursdeC&C.
celas'ajoute,l'usagedestechniquestellesqueledrive-bydownloadquiconsisteàfairetéléchargerautomatiquementpuisinstalleruneapplicationautéléphonelorsquel'utilisateurvisiteunepageweb.
L'usagedetechniquescontrelesprotectionsanti-malwares'intensieéga-lement.
L'étudemontreainsiquelesdéveloppeursdemalwarecontinuentleurinvestissementdanslesdiversestechniquesd'obfuscationdecode.
Unoutilcom-merciald'obfuscationdecodeauraitétéparexempleutilisésurOpfak.
boetObad.
a[98].
Obad.
aestconsidérécommelemalwareAndroidlepluscomplexeàcejour.
Parmilescaractéristiquesdecemalware,nouspouvonsciterl'in-trospection,lechirementdechainedeschainesdecaractères,l'exploitationdevulnérabilitésquiaectentlesystèmeAndroidetdex2jarquiestunoutilutilisépouranalyserlesapplicationsAndroid.
Plusprécisément,cetoutiltransformelebytecodedalvikenbytecodeJavapermettantparlasuited'obteniruncodeJava"équivalent".
Selonwikibooks[12],"laréexionpermetl'introspectiondesclasses,c'est-à-diredechargeruneclasse,d'encréeruneinstanceetd'accéder2.
4.
MALWAREANDROID29auxmembresstatiquesounon(appeldeméthodes,lireetécrirelesattributs)sansconnatrelaclasseparavance".
Lelisting2.
3présenteunboutcodeenJavautilisantlaréexionetsonéquivalentsansréexion.
.
LadeuxièmeligneinitialiselavariablefooenuneinstancedelaclasseFooetestéquivalenteàlaseptièmeligne.
Latroisièmeetlaquatrièmelignesinitialisentrécupèrentlaméthodehellodefooetl'invoque.
Ellescorrespondentàlahuitièmeligne.
1//Avecreflexion2Objectfoo=Class.
forName("complete.
classpath.
and.
Foo").
3newInstance();4Methodm=foo.
getClass().
getDeclaredMethod("hello",5newClass[0]);6m.
invoke(foo);78//Sansreflexion9Foofoo=newFoo();10foo.
hello();Listing2.
3–ExempedecodeJavaavecetsansréexionL'usagedesvulnérabilitésrestetoujoursd'actualitéauniveaudesmalware.
Lesraisonsprincipalesdecetusageestlanécessitéd'eectuerdesactionssen-siblessansvalidationdel'utilisateur(ex:installationd'applicationsurleté-léphone)oulemaintiend'uneprésencepertinentedumalwaresurl'appareil(ex:installationd'uneapplicationdanslapartitionsystemand'empêchersadésinstallation5).
Parmilesvulnérabilitésémunérésparlesauteurs,ilyalavulnérabilitéMasterKey[51]etcelleliéeauxapplicationsaveclesdroitsd'administrationsurletéléphone.
LavulnérabilitéMasterKeypermetdemodieruneapplicationexistantesansquelamodicationnesoitdétectéelorsdelavéricationdelasignaturedel'application(section2.
2.
2.
2).
Pourexploitercettevulnérabilité,ledévelop-peurmalveillantajoutedenouveauxchiersàl'apktelquechaquenouveauchieraitlemêmenomqu'unchierexistantdansl'apkd'origine.
Ilpeutparexempleajouterunautrechiernomméclasses.
dex.
Unefoislesnouveauxchiersajoutés,ilpubliel'apkmodiétoutengardantlasignaturedel'apkd'origine.
causedelavulnérabilité,lesystèmeneremarquepasl'existencedesdoublonsdansl'apketvérieuniquementl'intégritédeschiersquiétaientprésentsdansl'apkd'originetandisqu'àl'installationilinstalleraleschiersajoutésparledéveloppeurmalveillant.
Cettevulnérabilitéadeuxconséquencesdirectes.
Lapremièreestlevoldel'identitédesdéveloppeursdontl'applicationaétémodiée.
Engardantlasignaturedel'applicationoriginale,ledéveloppeurmalveillantsecachederrièrel'identitédesdéveloppeursdesapplicationsmodi-ées.
Lerisquepourcesderniersestd'êtreaccuséàtordcommeétantmalveillant5.
Unutilisateurnepeutdésinstallerlesapplicationsdanslapartitionsystemcarcettepartitionestmontéeenlectureseule30CHAPITRE2.
TATDEL'ARTetvoirtoutesleursapplicationssuppriméesdesplateformesdetéléchargementtelsqueGooglePlay.
Ladeuxièmeconséquencedecettevulnérabilitéestlapos-sibilitédecontournertouteslesmécanismesdesécuritébaséessurlessignaturesdeapplications.
Enplusdeserviràlavéricationdel'intégritédesapplicationsàleurinstallation,lessignaturesserventégalementàappliquerdescontraintessurcertainesdemandesdesapplications.
Ilspeuventparexempleserviràres-treindrelesapplicationsàquiunepermissionpeutêtreaccordée(tableau2.
1)oulesapplicationsquiontledroitdepartagerlemêmeutilisateur.
Engardantlasignaturedel'applicationqu'ilamodiée,ledéveloppeurmalveillants'as-sureainsiquesaversionmodiéedel'applicationaitlesmêmesprivilègesquel'applicationd'origine.
Ladeuxièmevulnérabilitépermetdegarderuneprésencepersistantesurletéléphonegrceauxdroitsd'administration.
Lorsqu'uneapplicationobtientlesdroitsd'administrationsurletéléphone,ildevientimpossiblepourl'utilisateurdeluirévoquercesdroitsouledésinstaller.
Sijamaisl'utilisateurtentaitderévoquerlesdroitsd'administration,lesystèmesecontentaitdemasquerlefaitquel'applicationpossèdecesdroitsmaisnelesrévoquaitpas.
L'applicationresteainsiinstalléesurletéléphoneaveclesdroitsd'administrationsansquel'utilisateurnesoitaucourant.
Silesdiérentstypesd'attaqueprésentésdans[113]restenttoujoursd'ac-tutaité,l'analysemontrecependantunetendancepourlesattaquesayantunimpactnanciersurl'utilisateur.
AuxapplicationsabusantdesservicesdeSMSenenvoyantdesmessagesàdesnumérossurtaxéss'ajoutentainsilesapplica-tionssefaisantpasserpourdesapplicationsbancairesandevolerlesdonnéesbancairesdesutilisateurstellesqueleurnumérodecompte.
2.
5RenforcementdelasécuritésousAndroid2.
5.
1Protectiondesressourcessensibles2.
5.
1.
1TaintDroidDans[46],Encketal.
présententTaintDroiduneversionmodiéed'Androidcapabledesuivrelesuxd'informationdanslesystème.
Lebutdeleurtravailestd'étudiersilesapplicationsAndroidfontfuirdesdonnéessensiblesversdesentitésdistantes.
Pourcela,ilssélectionnentunensembled'informationsqu'ilsjugentsensiblestellesquelalistedecontactetlesdonnéesdegéolocalisationetobserventcommentellessepropagentdanslesystème.
Ilsontanalysé30desapplicationslespluspopulairesdeGooglePlayetontmontréque2{3d'entreellesfaisaientfuirdesinformationssensiblesversdesserveursdistants.
Poursuivrelesuxd'informationdanslesystème,ilsutilisentuneméthodeditedetaintingquiconsisteàmarquerlesinformationssensiblesand'ensuivrelapropagation.
Chaquefoisqu'uneinformationsensiblesepropage,leconteneurdestinationreoitlamarquedel'informationsensiblepourcaractérisersonnou-veaucontenu.
DansTaintDroid,lesuivideuxd'informationsefaitàdiérentsniveaux:àl'intérieurdel'application,entrelesapplicationsetentreapplications2.
5.
RENFORCEMENTDELASCURITSOUSANDROID31etchiersdusystème.
Poursuivrelesuxàl'intérieurdesapplications,Encketal.
ontmodiélamachinevirtuelleDalvik.
Lorsqu'uneapplicationAndroidestexécutée,soncodeestinterprétéparlamachinevirtuelleDalvik.
TaintDroidsuitainsilesuxd'informationentrelesconteneursd'informationquelamachineDalvikutilisent.
Cesconteneurssontlesvariableslocalesd'uneméthode,sesparamètres,leschampsstatiquesd'uneclasse,leschampsdesinstancesd'uneclasseetlestableaux.
chaquefoisqu'uneinstructiondécrivantunuxd'in-formationexpliciteentredeuxouplusieursconteneursestinterprétéeparlamachinevirtuelleDalvik,TaintDroidconsidèrequeleconteneurdestinationduuxcontientlemélangedesinformationsprovenantdesconteneurssource.
Parexemple,l'aectationàlavariablevsdelavaleurdelavariablevdunemiseàjourdelamarqueassociéevs.
LorsquecetteaectationestinterprétéeparlamachinevirtuelleDalvik,TaintDroidconsidèrequevslesinformationsconte-nuesdansvsontétéremplacéesparcellesdansvdetTaintDroidaecteainsilamarqueassociéeàvdàvs.
Lesuivideuxd'informationentrelesapplicationsetentreuneapplicationetunchierestplussimple.
Lesuivideuxd'informationentrelesapplica-tionsestasseztrivial.
CommeilexisteunensembledeclassesetdeméthodesJavafourniparAndroidpourimplémenterlesmécanismesdecommunication,TaintDroidsecontentedemarquerlesobjetsavecuncontenusensiblequandilssortentd'uneapplicationetàmarquerledestinataired'uneinformationprove-nantd'uneapplicationexterneàl'application.
Lesmarquesdechaqueconteneursontstockésdansunemémoireadjacenteauconteneuretpropagéesàchaquefoisquecesconteneurssontenvoyéesversd'autresapplication.
Quantauxuxd'informationentreuneapplicationetunchier,TaintDroidutiliselesattributsétendus.
Lesattributsétendussontdesfonctionnalitésoertesparlessystèmesdechiertelsqueext2/ext3/ext4(systèmedechierutiliséprincipalementsurAndroid)permettantdestockerdesméta-donnéesliéesauxchiers.
TaintDroidstockeainsidanslesattributsétendusd'unchierlesmarquesdesinformationssensiblesqu'ilcontient.
Lorsqu'uneapplicationaccèdeàunchier,TaintDroidmetàjourlamarqueassociéeauchier(écriture)ouàlavariablerecevantlecontenuduchier(lecture).
SiTaintDroidestcapabledesuivrelesuxd'informationdansuneappli-cation,entrelesapplicationsAndroidetentreuneapplicationetunchier,saportéeestcependantlimitéeauxapplicationsécritesenJava.
Eneet,lemé-canismedesuivideuxdansTaintDroidreposeprincipalementsurlamachinevirtuelleDalvik.
Or,ilestpossibled'utiliserducodenatifsousAndroid.
Celasefait,soitenutilisantlemécanismedeJNI[86]soitenexécutantuneapplicationcompiléeencodenatif.
Lorsquecescasseprésentent,TaintDroiddevientainsiincapabledesuivrelesuxd'informationcausésparlecodenatifcariln'estpasinterprétéparlamachinevirtuelleDalvik.
32CHAPITRE2.
TATDEL'ART2.
5.
1.
2Contrled'accèsauxressourcessensiblesàl'exécution:Mo-ckDroidetAppFenceSousAndroid,l'utilisateurvalidelespermissionsàl'installationdesappli-cations.
l'exécution,iln'aplusaucuncontrlesurlesaccèsetnepeutquefaireconanceauxapplicationspournepasutiliserdemanièremalintention-néelesressourcesetdonnéesauxquellesellesontaccès.
Andepaliercettelimited'Android,MockDroid[24]etAppFence[59]proposentàl'utilisateurdecontrlerl'accèseectuéparlesapplicationsdurantleurexécution.
Lorsqu'uneapplicationsouhaiteaccéderàunedonnéeouressourcesensible,lesystèmede-mandeunevalidationdelapartdel'utilisateur.
L'accèsauxinformationsetressourcessensiblessefontviadesfonctionsdel'APIAndroid.
LesauteursdeMockDroidetd'AppFenceontainsimodiéAndroidand'intercepterlesappelsàcesfonctionsetintroduirelemécanismedevalidationlorsdeleurappel.
Selonl'informationoularessourcedemandéeparl'application,sil'utilisateurluienrefusel'accès,lesystèmesoitluinotierasonindisponibilitéousoninexistence,soitluirenverraunedonnéefactice.
Lesinformationsetressourcessensiblesdontl'accèsestrenforcésontlesdonnéesdegéolocalisation,lalistedecontact,lesinformationsliéesàl'identitédutéléphone,lesSMS,l'envoidemessagedetypebroadcastintent(MockDroid),lesjournauxd'évènement(AppFence)etlesdonnéesdenavigationinternet(AppFence).
Encasderefusd'unaccèsàuneinformationsensible,MockDroidetApp-Fencerenvoientunedonnéevideàl'application.
L'exceptionestl'accèsauxdonnéesidentiantl'appareil.
Encasderefus,lesystèmerenverraunedonnéefacticeàl'application.
DansAppFencel'exceptions'étendauxdonnéesdegéolo-calisationoùlesystèmeenverralesmêmescoordonnéesfacticesàchaquefois.
Encasderefusd'unaccèsréseau,lesystèmesimulel'indisponibilitéduréseau.
AppFencefaitparexemplecroireàl'applicationqueletéléphoneestenmodeavion.
SiAppFenceetMockDroidontlesmêmesobjectifsetapproches,ladiérenceentrelesdeuxrésidedanslefaitqu'AppFenceproposeégalementunmeilleurmécanismepourprotégerlesfuitesdedonnéesversdesserveursdistant.
Pourempêchertoutefuitededonnée,MockDroidsimuleral'indisponibilitéduréseauàtoutetentativedeconnexion.
AppFenceproposeuneapprocheplusneendemandantuniquementunevalidationquandunedonnéesensibleestsusceptibledequitterlesystème.
Pourcefaire,AppFenceintègrelemécanismedesuivideuxd'informationimplémentédansTaintDroid[46].
TaintDroidestcapabledesuivrelesuxd'informationauseind'uneapplication,entrelesapplicationsetentrelesapplicationsetleschiers.
AinsiAppFencenedemandelavalidationdel'utilisateuruniquementquandlesuxobservésauseind'uneapplicationindiquentunefuited'informationversl'extérieur.
Sic'estlecasetencasderefusdel'utilisateur,AppFencebloqueral'envoiensimulantl'indisponibilitéduréseauouomettral'envoidesdonnéessensiblestoutenfaisantcroirelecontraireàl'application.
2.
5.
RENFORCEMENTDELASCURITSOUSANDROID332.
5.
1.
3Protectiondecontenu:PorschaDans[79],Ongtangetal.
proposentunmécanismedeprotectiondecontenupourAndroiddunomdePorscha.
Porschapermetdelierdesdonnéessensiblesàunappareiletunensembledénid'applications.
l'émissiond'uncontenusen-sible,sasourceluiassocieunepolitiquedesécuritéquidénitlesdestinatairesducontenuetlesconditionssouslesquelleslecontenupeutêtreaccédé.
Unepolitiquepeutparexempleêtreunelisted'empreinteMD5desapplicationsau-toriséesàaccéderaucontenuprotégéainsiquedescoordonnéesGPSauxquellesletéléphonedoitsetrouveraumomentdel'accèsaucontenu.
Lecontrled'ac-cèsauxdonnéessensiblessefaitàdiérentsniveaux:àlatransmissiondesdonnéesversletéléphoneetlatransmissiondesdonnéesauxapplicationssurletéléphone.
Pourprotégerlecontenulorsdesatransmissionversuntéléphone,Ongtangetal.
proposentdechirerlemessageenutilisantunsystèmedechif-frementbasésurl'identitédudestinataire[27].
Dansleurtravail,l'identitéestsoitlenumérodutéléphonesoituneadressemail.
Lesmessagescontenantuncontenuprotégésontainsichirésetnepeuventêtrelusqueparleursdestina-taires.
Surletéléphone,Porschavériel'accèsauxdonnéessensiblesenajoutantdespointsdecontrledanslesmécanismesdecommunicationAndroid:àlatransmissiondesdonnéessensiblesauxapplicationsdemessagerieetlorsdescommunicationsentreapplications.
laréceptiondesMMSetdescourriels,Porschavériesiunepolitiquedesécuritéestassociéeaucontenudumessage.
Sic'estlecas,iltransmetuniquementlecontenudumessageauxapplicationsautoriséesàlerecevoir.
DanslecasdesMMS,lesapplicationsnonautoriséesnerecevrontpaslemessage.
Danslecasdescourriels,lemessageesttransmisàtouteslesapplicationscourrielsmaiscellesquinesontpasautoriséesàaccéderauxdonnéessensiblesnerecevrontquelemessagevidédesoncontenu.
Unefoislesdonnéessensiblesstockéessurletéléphone,uneapplicationpeutsouhaiterpartagerlesdonnéessensiblesàd'autresapplicationsdeconancesurlesystème.
Andecontrlercepartage,Porschacontrlelescommunicationsetpartagesdedonnéesutilisantlesintents,lescomposantsdetypeContentProvideretlesappelsdeméthodesdistantes.
Pourprotégerlesdonnéestransmisesviacesmécanismes,uneapplicationattachelapolitiquedesécuritédesdonnéesaumessageservantàtransmettrelesdonnées.
Lorsdelatransmissiondumessage,Porschavérielaprésenced'unepolitiquedesécuritédanslemessageetsic'estlecaslimitelatransmissionauxdestinatairesautorisésparlapolitique.
Pourrésumer,lesystèmedeprotectiondecontenuoertparPorschaper-metdedénirdemanièreplusneàquidesdonnéessensiblespeuventêtretransmisesetsousquellesconditions.
Cependant,contrairementàAppFenceouTaintDroidquisuiventlapropagationdesinformationsdanstoutlesystème(applicationsécritesenJavaetchiers),Porschanerésoutpasleproblèmedel'usagedel'information.
Eneet,Porschaneprotègelesdonnéesquelorsqu'ellespartentdeleurapplicationsource(applicationpartageantlesdonnéesenleurassociantunepolitiquedesécurité).
Unefoisquelesdonnéessonttransmisesàd'autresapplications,iln'yaplusdecontrlesurl'usagequiestenestfait.
34CHAPITRE2.
TATDEL'ARTLedestinatairepeutainsifairefuirlesdonnéessansquelesystèmenesoitaucourant.
2.
5.
1.
4AppIntentUnefuited'informationnesigniepasforcémentqu'uneattaqueaiteulieu.
Selonlescas,lafuitepeutêtreintentionnelle(ex:partagedecoordonnéesgéo-graphiquesparmessagerie),c'est-à-direfaiteparl'utilisateurmême,ouexécutéeparl'applicationsansréelleinterventiondel'utilisateur.
Danslecasd'unefuiteintentionnelle,lerisqued'uneattaqueestmoindre.
Danslesecondcas,fuitedesdonnéessansquel'utilisateurn'aitinitiél'action,laprobabilitéqu'uneattaqueaitlieuestélevéecarl'utilisateurn'apasconsciencedelafuite.
Dans[106],Yangetal.
présententAppIntent,unoutilquianalyselesap-plicationsAndroidandedéterminerlesévènementsetentréesattendusparuneapplicationetentranantunefuited'information.
Lebutd'AppIntentestdefourniràunanalystelesévènementsetentréesattendusparuneapplica-tionmenantàlafuited'uneinformationanquel'analystepuissestatuerdelanaturedelafuite:intentionnelleounon(risqued'uneattaque).
Pourcalculerlesévènementsetentréesentranantunefuite,l'outilanalysestatiquementlecodedel'application.
Dansunpremiertemps,ilconstruitsongraphedeuxdecontrlepuisdétermineàpartirdecegraphelescheminsd'exécutioncontenantunefuited'information.
Unefuited'informationestunensembled'instructionquirécupèrentunedonnéesensiblepuislafaitfuir.
Unefoiscescheminscalculés,AppIntentcalculelasuited'évènementsainsiquelesentréesattenduesquimènentàl'exécutiondelafuited'information.
Lesévè-nementssontlescréationsetexécutionsdescomposantsd'uneapplication(ex:créationetexécutiond'uncomposantActivityoulareprised'exécutionducom-posant)ainsiquelesinteractionsavecl'interfaceutilisateur(ex:validationd'unformulaire)etlesentréessontlesdonnéesliéesàcesévènementstelsquelesat-tributsd'unintentutilisépourlancerl'exécutiond'uncomposantoulesvaleursdeschampsd'unformulaire.
partirdesévènementsetentréescalculés,AppIntentcréeensuitedestestsunitairesquicorrespondentquiexécutentcessuitesd'évènementetdonnentàl'applicationlesentréesmenantàlafuited'uneinformation.
Pourdéterminerdelanaturedesfuitesd'information,l'analysten'aainsiqu'àexécutercestestsunitairesetstatuersilorsdel'observationd'unefuite,lesactionsmenéesàcettefuitesontintentionnellesounon.
Pourévaluerleuroutil,Yangetal.
ontanalysé750échantillonsdemalwareet1000applicationsparmilespluspopulairesdanslasectiondesapplicationsgratuitessurGooglePlay.
Surles750échantillonsmalware,AppIntentadétecté219fuitededonnéesnonintentionnelleset17fuitesintentionnelles(faitesparl'utilisateur).
QuantauxapplicationsdeGooglePlay,AppIntentadétecté26casdefuitesdedonnéesnonintentionnelleset29casdefuitesintentionnelles.
Encomparaison,TaintDroidadétectémoinsdefuitesdedonnées:125danslecasdeséchantillonsdemalwareet40pourlesapplicationsdeGooglePlay.
2.
5.
RENFORCEMENTDELASCURITSOUSANDROID352.
5.
2CommunicationentreprocessusetentrecomposantsLadélégationd'unepartiedel'attaqueàd'autresapplicationsprésentessurlesystèmeetlacollaborationentreapplicationspermettentauxapplica-tionsmalveillantesdecacherleurvéritablenatureauxyeuxdesutilisateurs.
Parexemple,uneapplicationdemandantaccèsauxphotos,auxdonnéesdegéo-localisation,àlalistedecontactsetàinternetparatsuspectecarellepossèdeassezdepermissionpourfairefuirlesdonnéesliéesàl'utilisateur.
Parcontre,lamêmeapplicationavaitl'accèsinternetenmoinsparatmoinssuspectecarrienn'indiquequ'ellepourraitcommuniqueravecuneentitédistante.
Orcommenousl'avonsexpliquédanslasection2.
3.
2,lesapplicationspeuventutiliserd'autresapplicationsoucollaboreravecd'autresapplicationspourmeneruneactionqu'ellesnepouvaientfairetoutesseules.
Danscequisuit,nousprésentonsainsilestravauxvisantàbloquercetyped'attaquesurAndroidencontrlantlescommunicationsentreapplications.
2.
5.
2.
1ComDroidNousavonsprésentéensection2.
3.
3lerésultatd'uneanalysesurlesvulné-rabilitésintroduitesparlescommunicationsbaséessurlesintents.
Pourdétec-tercesvulnérabilités,Chinetal.
ontainsiprésentédans[34]unoutild'analysed'applicationdunomdeComDroid.
ComDroideectuedeuxtypesd'analysesurlecodedesapplicationsetleurchierAndroidManifest.
xml.
Lapremièreanalyseconsisteàanalyserlecodedesapplications.
Durantcetteanalyse,ComDroidétudiecommentlesintentssontcrééspuisémisparuneap-plication.
ComDroidémetunealerteàchaquefoisqu'ildétectequ'unimplicitintentestémisavecunerestrictiontropfaiblesurlesdestinataires.
Uneres-trictionestfaiblesiaucunltragebasésurlespermissionsdudestinatairen'estimposéousilespermissionsimposéessontdetypenormal(voirtableau2.
1).
Unepermissiondetypenormalestunepermissionautomatiquementaccordéeàtouteapplicationlademandant.
Ladeuxièmeanalyseconsisteàanalyserlescomposantsdesapplicationsandedéterminers'ilyaunrisquequelescomposantsreoiventdesrequêtesmal-veillantesvialesintents.
ComDroidconsidèrequ'ilyaunepossibilitépourqu'uncomposantsoitvulnérablesicedernierpeutrecevoirdesintentsprove-nantd'autresapplications6tellesqu'iln'yaitaucunerestrictionbaséesurlespermissionsouunerestrictiontropfaiblesurlesémetteursdel'ntent.
Toutcommedanslapremièreanalyse,unerestrictiontropfaiblebaséesurlespermis-sionsestunerestrictionbaséeuniquementsurlespermissionsdetypenormal.
Sil'analysedescommunicationsvialesintentsmontrelesrisquesquecescommunicationsintroduisent,iln'existecependantpasdeméthodepourdéter-minersicequiaétédétectécommeunrisquedesécuritéestunevulnérabilitédel'applicationouunefonctionnalitéimplémentéeparledéveloppeur.
Enef-fet,lefaitqu'unimplicitintentsoitutiliséouqu'uncomposantsoitexposéaurestedusystèmepeuttraduireunevolontédes'adapterauxapplications6.
Unattributexportedouunintentfilterestdénipourlecomposant36CHAPITRE2.
TATDEL'ARTprésentesdanslesystème.
L'exempletypiqueestl'ouvertured'unepagewebàpartird'uneapplicationautrequelenavigateur.
Ductédudéveloppeurdel'applicationdemandantl'ouverturedelapageweb,lechoixd'envoyerunimplicitintentaulieurdedénirexplicitementlenavigateurpermetdes'assurerqueleliensoitouvertqu'importelenavigateursurlesystème.
IlexisteplusieursnavigateurswebsurAndroid(ex:GoogleChromeetFirefox)etl'utilisateuralapossibilitédechoisirquelnavigateurinstalleretutilisersurletéléphone.
Dénirexplicitementledestinatairedelarequêtepourouvrirlelienrevientainsiàcourirlerisquequeleliennesoitpasouvertcarlenavigateurciblén'estpasprésentsurletéléphone.
Aucontraire,enenvoyantunimplicitintentquetouslesnavigateurspeuventrecevoir,ledéveloppeurs'assurequelelienseraouverts'ilexisteunnavigateursurletéléphone.
Lemêmechoixseprésenteégalementauxdéveloppeursdenavigateursweb.
Enexposantleurnavigateuràtouteapplicationprésentedanslesystème,lesdé-veloppeurss'assurentqueleurapplicationsoitcompatibleavectouteapplicationsouhaitantouvrirunepageweb.
2.
5.
2.
2SaintLespermissionssontlesbasesdultragedescommunicationsentreappli-cationsAndroidpourprotégerl'accèsàdesressourcessensibles.
LecontrledeleurattributionetdeleurusageestcependantassezfaiblesurAndroid.
Eneet,uneapplicationnepeutrestreindrel'attributiond'unepermissionqu'elleadéclaréeàl'installationd'unenouvelleapplicationqu'endéclarantlapermis-sioncommeétantsignature.
Danscecas,lapermissionn'estaccordéequesil'applicationlademandantaétésignéeparlemêmedéveloppeurqueceluidel'applicationl'ayantdéclarée.
Unefoisl'applicationdemandantlapermissioninstalléesurletéléphone,iln'existeégalementaucunerestrictionsursonusage.
Ledéveloppeurd'uneapplicationpourraitparexemplesouhaiterquelesappli-cationscommuniquantaveclasiennenepuisselefairequedansdescontextesprécistelsqu'uneplaged'horaire.
Partantdececonstat,Ongtangetal.
proposentdans[80]uneextensiondesécuritéàAndroiddunomdeSaintdontlebutestdedonnerplusdecontrlesurl'attributiondespermissionsetleurusage.
L'apportdeSaintconsisteenunmodulepermettantdesrestrictionssupplémentairesenplusdespermissionsàl'installationdesapplicationsetàleurexécution,ouplusprécisémentlorsdescommunicationsentreprocessus.
Saintpermetauxapplicationsdedénirunepolitiquedesécuritéquicontrlel'attributiondespermissionsprotégeantleursinterfacesàl'installation.
Pardé-faut,laseulemanièredelimiterl'éligibilitéd'uneapplicationpourl'obtentiond'unepermissionestdedéclarercettedernièrecommeétantdetypesignature7.
Cetypedepermissionn'estaccordéequ'auxapplicationssignéesaveclamêmecléquel'applicationayantdéclarélapermission.
GrceàSaint,lesapplications7.
Voirletableau2.
1pourlalistedestypesdepermission2.
5.
RENFORCEMENTDELASCURITSOUSANDROID37peuventdéclarerdesrestrictionsplusnesurl'attributiondespermissionsàl'installation.
Ellespeuventainsiimposerunerestrictionsurunelistedévelop-peursaulieud'unseulquiestledéveloppeurdel'applicationayantdéclaréelapermission,lesautrespermissionsdemandéesparl'application,sonnumérodeversion,etc.
Lapolitiqued'attributiondénituncomportementpardéfaut(attribuerourefuser)etlescritèresquiyfontexception.
Uneapplicationpeutainsidéclarerqu'unepermissionn'estaccordéeàuneautreapplicationquesiellesatisfaitunensembledeconditionsouàl'inversedéclarerquelapermis-sionestaccordéeàtouteapplicationsaufcellesquisatisfontcetensembledeconditions.
l'exécution,Saintpermetaussidecontrlerlescommunicationsentreapplicationsendénissantgrceauxmêmestypesdepolitiquedesécurité.
L'émetteuretledestinatairepeuventtoutdeuxdénircettepolitique.
Commeàl'installation,l'applicationdénituncomportementpardéfaut(autoriseroubloquer)etlesconditionsquiyfontexception.
Ladiérenceparrapportàl'installationestquel'applicationpeutdénirdescontextesd'exécutioncommeconditiondanslapolitique.
Cescontextespeuventparexempleêtredesplageshoraires,l'étatdeconnexionauréseau;lalocalisationdutéléphone,etc.
Saintoreauxapplicationsuncontrleplusnsurl'attributionetl'usagedespermissionsqu'ilsdéclarentpourprotégerleurscomposants.
l'exécution,SaintsourecependantdesmêmeslimitationsquePorscha[79].
Eneet,laprotectionoerteparSaintselimiteàl'accèsdirectaucomposantdel'applicationprotégéeparlapolitiquedesécurité.
Siuneapplicationautoriséeparlapolitiquedesécuritéestparexempleutiliséelorsd'uneattaquepardélégationpouraccéderaucomposantprotégé,Saintneverraitpasquel'accèsestenfaitréaliséparuneautreapplicationquiellen'estpeut-êtrepasautoriséeparlapolitiquedesécurité.
2.
5.
2.
3QuirePourprotégerlesaccèsàdescomposantssensibles,lestravauxprécédentssecontententdecontrlerl'accèsdirectaucomposant.
Cessolutionssontainsiinecacespourluttercontrelesattaquespardélégation.
Dans[42],Dietzetal.
proposentQuireuneextensiondesécuritéàAndroiddontlebutestdedétecteretbloquerlesattaquespardélégation.
Quiremodielesmécanismesdecom-municationentreapplicationsanqu'àchaquerequêteémise,l'émetteurpuissejoindrelachained'appelayantmenéàl'émissiondecetterequêteetqueledes-tinatairedelarequêtepuissevérierquetouslesélémentsdelachained'appelontlespermissionsnécessairespourdemanderletraitementdelarequête.
Parexemple,siuneapplicationAenvoieunerequêteàuneapplicationBquiàlasuitedelaréceptiondelarequêteenvoieunerequêteàl'applicationCalorslachained'appelunefoisarrivéeàCestAB.
SiCàlaréceptiondelarequêteeectueuneopérationsensible,ellepeutvériersilesapplicationsdanslachained'appelayantmenéàl'exécutioncetteopérationontlespermissionsnécessaires.
Aini,ensupposantqueBaitlapermissionnécessairepourenvoyerlarequêteetqueAnel'aitpas,Cpeutdéciderenconnaissancedecausesiouiounon38CHAPITRE2.
TATDEL'ARTelleexécutel'opérationdemandée.
Sil'opérationsensibleexécutéeparCestparexemplel'éditiondelalistedecontact,alorsCvérieraquelesapplicationsAetBpossèdentlapermissionpouréditerlescontacts(WRITE_CONTACTS).
2.
5.
2.
4IPCInspectionPorteretal.
ontadoptéuneapprochesimilaireàQuirepourbloquerlesattaquespardélégation.
Dans[49],ilsprésententIPCInspectionunmécanismequicontrlelescommunicationsentreapplicationssousAndroid.
Quanduneapplicationreoitunmessage,lesystèmeconsidèrequesespermissionssontréduitesàl'intersectiondel'ensembledesespermissionsavantlaréceptiondumessageetl'ensembledespermissionsdel'émetteur.
Enagissantainsi,ledesti-natairenepeutpluseectuerd'actionsensibleàlademandedel'émetteursicederniern'apaslapermissionnécessairepoureectuerl'action.
Ledestinatairedesmessagesvoitainsisespermissionsàl'exécutionseréduireaufuretàme-surequ'ellereoitdesmessagesdediérenteapplicationsavecdespermissionsdiérentes.
Quelquesrèglesexistentand'éviterquelesapplicationsdestinatairesdesmessagesneperdentleurpermissiondénitivementetdeviennentinutilisables.
Lesapplicationssystèmesfontpartiedelabasedeconance.
Toutmessagepro-venantdecesapplicationsn'entranentdoncaucuneréductiondespermissions.
Unintentpeutserviràdemanderd'exécuteruneactionparticulièreetàêtrenotiéàland'exécutiondecettetche.
Lanoticationsefaitparl'envoid'unintentàl'émetteurduprécédentmessage.
Lorsdelaréceptiondelanotica-tion,lesystèmeconsidèrequ'iln'yapasrisqued'attaqueetn'eectueaucuneréductiondepermission.
Enn,IPCInspectionforcel'usagedemultiplesins-tancesd'unemêmeapplicationpourtraiterlesmessagesquiluisontadressés.
Ledestinataired'unmessageaainsiuneinstanceavecsespermissionsd'origineetd'autresinstancesquitraiterontchacundesmessagesetdontlespermissionsserontréduites.
2.
5.
2.
5PréventiondesattaquespardélégationetparcollusionQuire[42]etIPCInspection[49]neciblentquelesattaquespardélégation.
Deplus,leseulmécanismedecommunicationprisencompteestceluibasésurbinderenutilisantlesintents.
Dans[30],Bugieletal.
présententunenouvelleextensiondesécuritéàAndroidquiestparamétréeparunepolitiquedesécuritéetdontlebutestdebloquerlesattaquespardélégationainsiquelesattaquesparcollusion.
Contrairementauxtravauxprécédents,ilsprennentencomptelapossibilitéquelacommunicationentrelesapplicationssefasseégalementàtraverslesmécanismesstandarddecommunicationsousLinux(chiersetsockets).
IlsétendentunframeworkdesécuritépourAndroiddéveloppédansuntravailantérieur[29]and'observerlesinteractionsentrelesapplications,composantsdusystème(ContentProvideretservices),chiersetsockets.
chaquefoisqu'uneinteractionestobservée,ilsvérientqu'iln'yapasunrisqued'attaque.
Ladétectiondesattaquesutilisentunereprésentationsousforme2.
5.
RENFORCEMENTDELASCURITSOUSANDROID39degraphedesinteractionsentrelesapplications,leschiers,lessocketsetdescomposantsdusystème(ContentProvideretservices).
Lapolitiquedesécuritédécritdespropriétéssurcegraphequipermettentdestatuersiuneinteractioncorrespondàuneattaqueounon.
Parexemple,uneattaquepardélégationestdécriteparlefaitqu'ilexisteuncheminàpartirdunudreprésentantuneapplicationAverslenudreprésentantuneapplicationBtelqueBpossèdedespermissionscritiquesqueAnepossèdepas.
Uneattaqueparcollusionestdécriteparlefaitqu'ilexisteunecheminentrelesnudsdedeuxapplicationsAetBtelquel'uniondespermissionsdeAetBsoitcritique.
Lesauteursnedénissentpascequ'estunensemblecritiquedepermissionsetlaissepluttlesoindeledéniràl'utilisateurquidénitlapolitiquedesécurité.
ContrairementàQuire,Bugieletal.
laissentlechoixàl'utilisateurdedé-nircequ'estuneattaquevialapolitiquedesécurité,cequiapporteàlafoisunavantageetuninconvénientàl'approche.
Lapossibilitédedéniravecpré-cisionlesscénariosd'attaqueal'avantagedelimiterlesfauxpositifslorsdel'exécutiondusystème,c'est-à-diredescommunicationsjugéescommedange-reusesalorsqu'ellesnelesontpas.
Undescassouventignorédanslestravauxprécédentsestqu'uneapplicationpuisseintentionnellementfournirunserviceàuneautreapplication.
L'inconvénientdanscetteapprocheestquel'utilisateurn'apasforcémentlescompétencesnécessairespourdénirunebonnepolitiquedesécuritécequipourraitêtreexploiterparuneapplicationmalveillanteand'échapperàladétection.
2.
5.
3Abusdespermissions2.
5.
3.
1KirinL'approchebasiqueutiliséeparlesapplicationsmalveillantessousAndroidestdedemandertouteslespermissionsquileursontnécessairespoureectuerleurtchemalveillante.
Parexemple,lesapplicationsespionsdontlebutestdetracerl'utilisateurdutéléphonedemandel'accèsauxdonnéesdegéolocalisationetl'accèsàinternet.
Andebloquercetyped'attaque,Encketal.
proposentunsystèmenomméKirindans[47].
LebutdeKirinestdevérierqu'uneapplicationn'apasunensembledepermissionsjugédangereux.
Parexemple,l'accèsauxdonnéesdegéolocalisationetàinternetpermetdefairefuirlesdéplacementsdel'utilisateurdetéléphone.
Ainsi,Kirinvérieàl'installationlespermissionsdemandéesparuneapplication.
Siellecontientunensembledangereux,l'installationestblo-quée.
Ilappartientàl'utilisateurouàl'administrateurdel'appareildedénirlesensemblesdepermissiondangereux.
2.
5.
3.
2WoodpeckerLespermissionsltrentl'accèsauxressourcessensiblessousAndroid.
UneapplicationsanslapermissionREAD_SMSnepeutparexemplelirelabasededonnéesdesSMS.
Dans[54],Graceetal.
ontanalysélesapplicationslivréesavec40CHAPITRE2.
TATDEL'ART8téléphonesAndroidetmontréquecertainesexposaientsansaucunerestrictionlesressourcessensibles.
Lesauteursontidentiédeuxméthodes.
Lapremièreméthode,qu'ilsdisentexplicite,consisteàexposerlesméthodespouraccéderauxressourcessensiblesviadesinterfacespubliquesdontl'accèsestpluslaxistequeceluidelaméthodeprotégée.
Ilsconsidèrentcommentinter-facelescomposantsexposéspubliquementàd'autresapplications.
Ladeuxièmeméthode,cettefois-ciimplicite,consisteàpartagerlemêmeidentiantd'utili-sateurentredeuxapplications.
Celaestpossibleenassociantlamêmevaleuràl'attributsharedUserIddanslechierAndroidManifest.
xmldesdeuxap-plications.
Lesdeuxapplicationstournantaveclemêmeidentiantutilisateur,ellesseretrouventainsiàl'exécutionavecl'uniondespermissionsquelesdeuxapplicationspossèdent.
Graceetal.
ontainsidéveloppéWoodpeckerunoutilpouranalyserlesappli-cationsettrouverd'éventuellesexpositionsderessourcessensibles.
Woodpeckerdénitlespointsd'entréedel'applicationàpartirdesonchierAndroidMa-nifest.
xml,construitsongraphedeuxdecontrle(ControlFlowGraphenanglais)etàpartirduCFGcalculetouslescheminsd'exécutionpossibles.
L'ou-tilconsidèrequ'uneressourcesensibleestexposéeexplicitementsiunchemind'exécutionpartantd'uneinterfacenonprotégéecontientunappelàunefonc-tionsensibleetqu'aucuncontrlen'estfaitavantl'appel.
Pourledeuxièmecas,unealerteestlevéesiuneapplicationindiquepartagersonidentiantutilisateurets'ilexisteunappelàunefonctionsensibledanslecodedel'applicationtellequelapartiecontenantcettefonctionpuisseêtreatteinte.
2.
5.
3.
3AurasiumLaplupartdesapprochesvisantàcontrlerlecomportementdesapplicationssefontenmodiantlesystème.
Dans[105],Xuetal.
proposentcettefois-cidelaisserlesystèmeintactetd'ajouterlecodenécessaireaucontrledansl'appli-cation.
IlsontainsidéveloppéunserviceappeléAurasium8quiprendenentréeuneapplicationetretournesaversionrenforcée.
CetteversionrenforcéeintègreducodeinterceptantlesappelsauxfonctionssensiblessousAndroidanderenforcerunepolitiquedesécurité.
Lesfonctionsconcernéesserventàaccéderàdesressourcessensiblessurletéléphoneetinternet,etàexécuterdesopéra-tionspotentiellementdangereusestellesquelechargementd'unebibliothèqueoul'exécutiond'unbinaire.
Bienquecegenredefonctionssoientdéniesauseindel'APIJavad'An-droid,Aurasiumintercepteleurappelàunniveauplusbas,plusprécisémentauniveaudesfonctionsdelabibliothèqueCdusystèmeetdelamachinevirtuelledalvik.
Ilexisteparexemplediérentesfonctionsdansl'APIpourcommuni-quersurleréseau.
Cependant,auniveausystèmetoutcelasetraduitparunensemblerestreintd'appelssystèmetelsqueconnectetsendmsg.
IlenestdemêmepourlesIPCsbaséssurlebinderquisefontvial'appelsystèmeioctl/dev/binder/.
Lorsquel'appelàunefonctionsensibleestdétectée,l'application8.
http://aurasium.
com2.
6.
SUIVIDEFLUXD'INFORMATION41eninformel'utilisateuretdemandeàl'utilisateurdevaliderl'appels'ilsouhaitequ'ilsepoursuive.
Pourévaluerlacapacitédeleurserviceàinstrumenterlesapplicationsetàfourniruneversiontoujoursfonctionnelle,ilsontsoumisunensemblede3491applicationsdeGooglePlayet1260échantillonsdemalwareàleurservice.
Nousentendonsparversionfonctionnelle,uneapplicationquiselancesanserreuraudémarrageetquiàl'exécutionmontrebiendesinterceptionsàdesappelsdefonctionsensible.
Leurévaluationamontréqu'Aurasiumétaitcapabledefourniruneversionfonctionnelledesapplicationsdansplusde99%descas.
Aucuneévaluationnepermetcependantd'apprécierlacapacitéd'Aurasiumàintercepterlesappelsdefonctioncorrespondantauxattaquessurunsystème.
Nousavonsprésentédanscettesectiondiérentstravauxinhérentsàlasé-curitéd'Android.
PartantduconstatdeslimitesdesmécanismesdesécuritéAndroid,principalementcellesliéesàl'accèsauxressourcessensiblesetauxcommunicationsentreapplications,lesauteursdecestravauxontproposédesextensionsdesécuritéàAndroidetdesoutilsd'analysed'application.
Cesex-tensionsetoutilsontpourbutdedétecterlestentativesexploitantleslimitesdumécanismedesécuritédusystèmeainsiquelesrisquesdesécuritéintroduitparlesmécanismesdecommunicationAndroid.
Parmilesattaquesciblées,ilsciblentprincipalementlevoldedonnéessensibles,l'usagemalveillantdesper-missionsaccordéesauxapplications,lesattaquespardélégationetlesattaquesparcollusion.
Cestravauxconcernentainsidesclassesd'attaqueconnueetes-sayentdelesdétecteroulesprévenir.
Danscettethèse,nousavonsuneapprochediérente.
Aulieudedétecterlesmalwareennousbasantsurleslimitesconnuesdumécanismedesécuritéd'Android,noussouhaitonsdansunpremiertempscaractériserlesmalware(commentleurattaquefonctionne)etnousbasersurcequenousauronsapprispourlesdétecter.
Notreapprocheestbaséesurlesuxd'informationquecausentlesmalwaredanslesystème.
Danslasectionquisuit,nousintroduisonsainsilanotiondeuxd'informationetprésentonsquelquestravauxutilisantlesuivideuxd'informationpourdétecterdesattaques.
2.
6Suivideuxd'informationSuivrelesuxd'informationconsisteàobservercommentlesinformationssepropagentdansunenvironnementdonné.
Ensécurité,lesuivideuxd'in-formationestutilisépourdétecterdesattaquesvisantsoitlacondentialitésoitl'intégritédedonnéesdansunenvironnementdonné.
Enplusdedétecterdesattaques,ilpeutégalementserviràlesbloquer.
Ils'agitdanscecasdecontrledeuxd'information.
42CHAPITRE2.
TATDEL'ART2.
6.
1Suivideuxauseind'uneapplicationSuivrelesuxd'informationauseind'uneapplicationpermetd'avoirunevuenedelamanièredontlesinformationssensiblessonttraitéesparunpro-gramme.
l'exceptiondulangagePerl,leslangagesdeprogrammationn'in-tègrentcependantpasdemécanismedesuivioudecontrledeuxd'informa-tion.
Diverstravauxsesontainsiconcentréssurlesuivietlecontrledeuxdanslesapplicationssoitenproposantuneextensionaulangagedeprogram-mationutilisésoiteninstrumentantl'environnementdanslequell'applicationtourne.
LesapplicationsAndroidsontprincipalementécritesenJava.
Dans[74,73],MyersetLiskovprésententunmodèledesuivideuxd'informationqu'ilsim-plémententdansJif[75],uneextensiondulangageJavacapabledecontrlerlesuxd'informationàl'intérieurd'uneapplication.
Techniquement,Jifestunpréprocesseureectuantuneanalysestatiqueducodesourcepourcontrlerlaconformitédesuxd'informationdansunprogrammeparrapportàunepoli-tiquedeux.
Lapolitiqueestreprésentéepardeslabelsquisontassociésauxvariablesetfonctionsdanslecode.
chaqueobjetestassignéunlabeloùsontdéclarésl'ensembledespropriétairesdel'informationetlesentitésquechaquepropriétaireautoriseàaccéderàl'information.
tantdonnéquechaquepro-priétairedéclareunelistedelecteursautorisés,lalistedeslecteurseectifsestensuitecalculéeenfaisantl'intersectiondelalistequechaquepropriétaireadéclarée.
LelabelL"to1:r1,r2;o2:r2,r3usignieparexemplequel'objetauquelilestattachécontientdesinformationsdonto1eto2sontpropriétaires.
o1eto2n'autorisentrespectivementquer1our2etr2our3àaccéderàl'in-formation.
Lelecteureectifestdoncicir2.
Lorsprétraitementducode,Jif,quiestunpréprocesseurJava,calcullesuxd'informationdansleprogrammeetvériequelespolitiquesdesécuritéassociéesauxvariablessontvériées.
L'approcheproposéeparMyersetLiskovestuneapprochestatiquequiconsisteàannoterlecodesourcedesapplicationspuisàl'analyserpourcontrlerlesuxd'informationdansl'application.
Undesavantagesdel'analysestatiqueparrapportàl'analysedynamiqueestqu'ilcouvretouslescheminsd'exécutionpossiblesetpermetenuneseuleanalysed'identiertouteslesviolationsàunepolitiquedeuxd'information.
Unelimiteàcetteapprocheestcependantlanécessitéd'avoiraccèsaucodesourcedel'applicationpourl'analyser,cequiestrarementlecaspourlesapplicationsAndroidetlimitel'usagedecetteapproche.
LecodedesapplicationsAndroidestlivrésouslaformededalvikbytecodeetilestparfoisobfusquéand'empêcherdesentitéstiercesderetrouverlecodeoriginalàpartirduquelledalvikbytecodeaétégénéré.
Cebytecodeestob-tenuencompilantdansunpremiertempslecodesourcedel'applicationenbytecodeJavapuisencompilantcedernierenbytecodecompréhensibleparlamachinevirtuelleDalvik.
Silestravauxprécédentss'attachentàajouteruneextensiondecontrledeuxd'informationdanslelangagedeprogrammationetcontrlerlesuxd'informationdemanièrestatique,d'autressesontpenchéssurunemodicationdel'environnementd'exécutionpoursuivreetcontrlerlesuxd'informationà2.
6.
SUIVIDEFLUXD'INFORMATION43l'exécutiondesapplications.
Dans[46],Encketal.
proposentTaintDroid,uneversionmodiéed'Androidavecunmécanismedesuivideuxd'informationàl'exécutiondesapplications.
Leurbutétaitd'étudiersilesapplicationsAndroidfontfuirdesdonnéessensiblesdutéléphonevialeréseauouparSMS.
Ilsontdénidansleuroutilunensembled'informationàsurveiller(ex:identiantsdel'appareiletdonnéesdegéolocalisation)etsélectionnéles30applicationsAndroidlespluspopulairespourlesanalyser.
Ilsontmontréqueplusde2{3d'entreellesfaisaientfuirdesdonnéessensibles,principalementlesidentiantsdutéléphone.
Poursuivrelesuxd'information,Encketal.
ontmodiélamachinevirtuelleDalvik.
Ilsontimplémentéuneméthodeditedetaintingquiconsisteàmarquerlesobjetsselonlanaturedeleurcontenu.
DanslamachinevirtuelleDalvik,lesobjetspouvantcontenirdesinformationssontlesvariablesd'uneméthode,sesparamètresetleschampsd'uneclasseainsiquedessesinstances.
Lorsqu'unuxestobseré,lesmarquesassociéesauxobjetsdontlecontenuaétémodiéestmisàjourpourprendreencomptelanaturedeleurnouveaucontenu.
ContrairementàMyersetLiskov,Encketal.
ontoptépouruneapprochedy-namiquepoursuivrelesuxd'informationauseind'uneapplicationdurantsonexécution.
causedelanaturedel'analyse(dynamique),unedesprincipaleslimitationsdeTaintDroidestl'impossibilitéd'observertouslesuxd'informa-tionpossiblesenuneseuleanalyse.
Seulslesuxd'informationexplicitesquiontlieudurantl'exécutiondel'applicationsontdétectés.
SiTaintDroidaunevuepluslimitéedesuxd'informationdansuneapplication,ilpossèdecepen-dantunavantagenonnégligeableparrapportauxapprochesstatiquesquiestqu'ilnenécessitepasl'accèsaucodesourcedesapplicationsanalysées.
Ilestdoncplusadaptépouranalyserlesapplicationsdestinéesàtournéesdansunenvironnementtelsqu'Android.
2.
6.
2SuivideuxauniveausystèmeUnautreniveaud'observationdesuxd'informationestlesystèmed'ex-ploitationoùlesobjetsdusystèmetelsquelesprocessusetleschierssontvuscommedesconteneursd'informationetlesinteractionsentreeuxdesuxd'information.
Dans[109,110],Zeldovichetal.
proposentHiStar,unsystèmed'exploitationquiintègreunmécanismedecontrledeuxd'informationauniveausystème.
LebutdeHiStarestdefournirunsystèmecapabledebloquerlesattaquesvisantàvoleroucorromprelesdonnéessurlesystème.
Poursuivreetcontrlerlesuxd'information,HiStarutiliseleslabelsAsbetos[45].
Unla-belétablitunecorrespondanceentreunecatégoried'informationetunniveaumarquage.
Parexemple,lelabelL"tw3,c2,1usigniequeleniveauassociéauxcatégorieswetcsontrespectivement3et2.
Leniveaupardéfautest1.
Unlabelestassociéàchaqueobjetdusystèmepouvantcontenirdel'information.
Lelabelreprésentepourchaqueobjetsonniveaud'accèspourlesdiérentesca-tégoriesd'information.
Lorsqu'unuxd'informationd'unobjetAversunobjetBalieu,HiStarvériequeleniveaud'accèsdeBpourlescatégoriesd'infor-mationdéniesdanslelabeldeAestsupérieurouégalauniveaud'accèsde44CHAPITRE2.
TATDEL'ARTApourcesmêmescatégories.
Sic'estlecas,leuxestautorisé.
Danslecascontraire,ilestbloqué.
Parexemple,silelabeldeAvauttw3,c2,1uetqueceluideBvauttw2,c3,h2,1ualorsBnepeutaccéderaucontenudeAcarleniveaud'accèsdeBauxàlacatégoried'informationw,ici2,estinférieurauniveaud'accèsdeA,ici3,àlamêmecatégorie.
Pourcontrlerlesuxd'informationdanslesystème,HiStarassociedesniveauxd'accèsauxdiérentsobjetsdusystème.
ContrairementàTaintDroidouAppFence,ilsecontented'établirdesniveauxd'accèsauxinformationsmaisnesuitpasleurpropagationdanslesystème.
Celalimitesonutilitépouranalysercommentlesdonnéesd'uneapplicationsepropagentdanslesystème,cequiestl'undesnosobjectifs.
Danscettethèse,nousutilisonsunmoniteurdeuxd'informationauniveaudusystèmepourobserverlesuxd'information.
CemoniteurestlaversionAndroidd'unmoniteurdeuxd'informationpourLinux,Blare[37],dontlaversionactuelleaétédéveloppéeparChristopheHauser.
Plusprécisément,Blareestunoutildedétectiond'intrusionpourlessystèmesLinuxparamétréparunepolitiquedeuxd'information.
Lapolitiquedénitlesuxautorisésdanslesystèmeettouteviolationdecettepolitiqueconstitueuneintrusion.
Poursuivreetcontrlerlesuxd'information,Blareutilisedeuxlabels,itagetptag,quisontattachésauxobjetsdusystème.
L'itagreprésentelacontaminationcouranted'unobjetetleptagreprésentesacontaminationmaximaleautorisée.
L'itagd'unobjetestainsimisàjouràchaquefoisqu'unuxd'informationmodiantlecontenudel'objetalieutandisqueleptagestdénilorsdelacréationdelapolitiquedeux.
Lorsqu'unuxd'informationd'unobjetAversunobjetBalieu,BlareconsidèrequelesinformationsdeAvontdansBetvériesil'itagdeAestautoriséparleptagdeB.
Sic'estlecas,ilmetàjourl'itagdeBpourprendreencomptesonnouveaucontenu.
Sinonillèveunealerte.
Blareneprévientpaslesintrusionsmaislesdétecte.
Ilnebloquepasleuxencasdeviolationd'unepolitiquemaissecontentedeleverunealerte.
CommeHisTar,leniveaud'observationdeBlareselimiteauniveausystème.
Ilvoitlesobjetsdusystèmecommedesbotesnoireseteectueunesurapproximationdesuxobservés.
Quandunuxd'unobjetAversunobjetBestobservéparBlare,ilconsidèrequetouteslesinformationsdansAsepropagentdansB.
Cettevisionestmoinsnequecequeproposeraitunsuivideuxauniveaudesapplications.
Cependantilal'avantagedenepasdépendred'unlangageenparticuliertelqueleJavaetneselimitepasauxinstancesd'unemachinevirtuelle.
Ilaainsiunevuecomplètedesuxd'informationdirectsentrelesobjetsdusystèmeparrapportàTaintDroidquiestlimitéauxuximpliquantuniquementlesapplicationsécritesenJava.
2.
6.
3SuivideuxauniveauhardwareDans[108],Yinetal.
proposentunenvironnementvirtuelbasésurQuemud'analysedynamiqued'applicationWindowsappeléPanorama.
Panoramasuitlesuxd'informationauniveaumachinetoutenayantconnaissancedesinforma-tionsliéesauxobjetsdusystèmetelsquelesprocessusetleschiers.
Lebutdu2.
6.
SUIVIDEFLUXD'INFORMATION45travailréaliséestdedéterminersiuneapplicationaccèdeàunedonnéesensibledusystèmeetsic'estlecascommentellel'utilise.
Lesdonnéessensiblespeuventêtredesdonnéesfrappéesauclavier,desdonnéesdudisqueoulecontenudepa-quetsréseaux.
Danslecadredel'analyse,cesdonnéessontsupposéesnepasêtreaccédéesparl'applicationanalysée.
Pouranalyseruneapplication,ilsinstallentainsil'applicationdansl'environnementd'analyse,introduisentdesdonnéessen-siblesdanslesystème,etsuiventcommentcesdonnéessepropagent.
partirdesuxobservés,ilsconstruisentungraphedeuxd'informationreprésentantcommentlesdonnéessensiblessesontpropagéesdanslesystème.
Lesnudsetlesarcsdugraphereprésententrespectivementlesobjetsdusystèmeetlesuxd'informationentreeux.
L'applicationanalyséeestconsidéréecommemal-veillantesiunnudlareprésentantestprésentdanslegraphe.
Celasigniequ'àunmomentdonné,l'applicationaaccédéeauxdonnéessensibles.
Sic'estlecas,ilsanalysentensuiteoùlesdonnéessepropagentàpartirdunudreprésentantl'applicationanalysée.
Dansdestravauxplusrécents,Yinetal.
ontproposéDroidScope[106]quiestunenvironnementd'analysed'applicationAndroidquiestl'équivalentdePanoramapourAndroid.
DroidScopesuitégalementlesuxd'informationauniveauhardwaremaiscontrairementàPanorama,iln'apasseulementaccèsauxinformationsliéesauxobjetsdusystèmemaiségalementàdesdonnéesliéesàl'exécutiondesapplicationsdanslamachinevirtuelleDalvik.
Ilaainsiunevueplusnedecequisepassedansuneapplicationtellequelesméthodesquisontutiliséespouraccéderàuneinformation.
Suivrelesuxd'informationauniveauhardwarepermetd'avoirunevuenedesuxd'informations'opérantsurunsystème.
Leniveaudegranularitépourlestockageetl'accèsàuneinformationpeut-êtreréduitàunoctetouunbit,cequiestl'unitédestockagedesdonnées.
Avoirunetellegranularitéacependantuncotélevéentermedetempsd'exécutionquilimitecetteapprocheauxenviron-nementsvirtuelsd'analysed'application.
LesauteursdePanoramaontmesuréuntempsd'exécutiondesapplicationsde30à40foispluslentsqueleurtempsd'exécutionnormal.
NotrebutestdecapturerlecomportementmalveillantdesmalwareAndroidetdelesdétecter.
Sachantquecertainsmalwareessayentdedétecterlaprésenced'environnementvirtuelspouréchapperàtoutedétection,ceniveaud'observationnenousparatdoncpascommeunchoixviable.
Ilexistediérentsniveauxd'observationpoursuivrelesuxd'informationsurunsystème:application,systèmed'exploitationethardware.
Danscethèse,nousoptonspourunsuivideuxauniveaudusystèmed'exploitationand'avoirunevuecomplètedesuxd'informationentrelesdiérentscomposantsdusystème.
Suivrelesuxd'informationàl'intérieurdesapplicationsaunemeilleuregranularitémaissupposequenousayons,soitaccèsaucodesourcedetouteslesapplicationsàanalyser,soitquetouteslesapplicationssoientécritesenJavaetinterprétéesparlamachinevirtuelleDalvik.
Aucunedecessupposi-tionsnes'avèreêtrevraiedanslaréalité.
Suivrelesuxd'informationauniveau46CHAPITRE2.
TATDEL'ARTduhardwareapporteégalementunevueplusneetcontrairementauniveauapplicationnenécessitepasd'accèsaucodesourceoul'usaged'unseullan-gagepourécriretouteslesapplications.
Cependant,commenousl'avonsécritprécédemment,iln'estadaptéqu'auxenvironnementsvirtuels,cequiposeleproblèmedeladétectiondel'environnementd'analyse[68].
Danscettethèse,nousavonsainsifaitlechoixdesuivrelesuxd'informationauniveausystèmeand'êtreindépendantdeladisponibilitéducodesourcedesapplicationsetdulangageutilisépourlesdéveloppertoutenayantunevuecomplètedesuxd'in-formationentrelesobjetsdusystème.
partirdesuxd'informationobservésdanslesystème,nousproposonsdecalculerleprold'unmalwareetapprendresoncomportement.
L'approcheestsimilaireàdel'apprentissage.
Danslasectionquisuit,nousprésentonsdonccommentdesméthodesd'apprentissageontétéappliquéspourclassieretdétecterdesmalware.
2.
7ClassicationetdétectiondemalwareLadétectiondemalwaresefaitgénéralementenutilisantdessignaturesoudesprolscomportementaux.
Lasignatured'unmalwareestunensembledepropriétéscommunesauxchiersdeséchantillonsdumalware.
DanslecasdesapplicationsAndroid,ceschierssontlesapk.
Leprolcomportementald'unmalwareestunensembledepropriétéscommunesàl'exécutiondeséchantillonsdumalware.
Cessignaturesetprolssontconstruitsàpartirdesinformationsobtenuesenanalysant,statiquementoudynamiquement,leséchantillonsdemal-ware.
Latendanceactuelleconsisteàutiliserdesméthodesd'apprentissageandeclassieretdétecterdesmalwares.
Dansnotrecas,noussouhaitonsextraireleprold'unmalwareetsoncomportementàpartirdesuxd'informationqu'ilscausentdanslesystème.
Danscequisuit,nousprésentonsainsiquelquestravauxayantadoptécetteapproche.
L'apprentissageconsisteàapprendredespropriétésliéesàunjeudedonnées.
Ilexistediérentstravauxsurl'analysestatiqued'applicationandedétec-terdesinstancesdemalware(ex:[35]et[58]).
Lessignaturessontdespropriétésliéesaumalwaretellesquedeschainesdecaractères,desressourcesdansl'appli-cation,desappelsàdesfonctionsspéciques,ousimplementl'empreinted'unchier.
SousAndroid,Arpetal.
ontproposéDREBIN[22]pourdétecterleséchantillonsdemalwareAndroidsurlestéléphones.
Lespropriétésprisesencomptelorsdel'analysed'uneapplicationsontlespermissionsdemandées,lescomposantsmatérielsrequis,sescomposants,lesltresd'intentpouractiverlescomposants,lesappelsauxfonctionssensibles,lespermissionsutilisées,lesappelsdefonctionsuspectsetlesadressesdeserveurprésentsdanslecodedel'application.
Pourclassierlesapplications,ilsutilisentunemachineàvecteursdesupport[41,48]quiestuneméthoded'apprentissagesupervisée.
Unappren-tissagesuperviséconsisteàcalculeràpartird'ensemblesdistinctsunmodèlepermettantdedénirl'appartenanced'unélémentàundecesensembles.
partirdedeuxensemblesdistinctsd'applications,l'unecontenantdesapplica-tionsmalveillantesetl'autrecontenantdesapplicationsbénignes,ilscalculent2.
7.
CLASSIFICATIONETDTECTIONDEMALWARE47ainsiunmodèlededétectionquidiérencielesapplicationsmalveillantesdesapplicationsbénignes.
Cemodèleestensuiteutilisésurletéléphoneandedé-tecterlesapplicationsmalveillantes.
L'évaluationeectuéeparlesauteursdeDREBINsurlacapacitédedétectionmontrequeleuroutilatteintuntauxdedétectionde93.
90%surunensemblede1834échantillonsdemalware.
Letauxdedétectiondénirpourcentaged'échantillonsdétectéssurtoutlejeudedonnées.
Lerésultatestprochedesmeilleursrésultatsobtenusparlesproduitsanti-virusqu'ilsonttestésurlemêmejeudedonnées.
Lesmeilleurstauxdedétectionsontde96.
41%etde93.
71%tandisquelepireestde3.
99%.
Ladétectionparanalysestatiquemontrecependantseslimiteslorsquelesdéveloppeursdemalwareutilisentdestechniquesd'obfuscation[21,23,70]andecacherlavéritablenaturedeleursapplicationoudestechniquesdepolymor-phismeetdemétamorphisme[50]andechangerl'aspectducodedesdiérentesinstancesd'unmalware.
LesdéveloppeursdumalwareObad.
a[98]utilisentparexempledeschainesaléatoirespourlesnomsdevariables,méthodeetclasses.
Ilsutilisentégalementdesfonctionsdechirementandemasquerleschainesdecaractèresutiliséesdanslemalwareetcesfonctionschangentd'unéchantillonàl'autre.
Contrairementàl'approchestatique,l'approchedynamiquereposeunique-mentsurl'exécutiondesapplicationspourdétecterleséchantillonsdemalwareetn'estpasainsiaectéeparcesméthodesd'évasion.
Dans[67],Bayeretal.
appliquentuneméthoded'apprentissagenonsuperviséeandeclassierlesapplicationsetdétecterleséchantillonsdemalware.
L'apprentissagenonsuper-viséeconsidèrequ'iln'yapasdegroupementprédénisdesélémentsdanslejeudedonnéesetcalculelui-mêmelesregroupementspossiblesdeceséléments.
LesapplicationsàclassiersontanalyséesdansAnubis[69]and'enextraireunprol.
Leprolestconstituédesdiversesinteractionsaveclesystèmetelsquelesaccèsauxchiersetregistresainsiquelescommunicationsréseaux.
Ilsappliquentégalementuneméthodedetaintingand'observercommentlesinformationsissuesdusystèmesontutiliséesdanslesprochainsappelssystème.
Celas'avèreutilepourltrerlesinformationsàextraire.
Parexemple,sileprogrammeutiliseladatedusystèmepourgénérerlenomd'unnouveauchier,ilnesertàriendestockerlenomcarilseradiérentàchaqueexécution.
Dans[90],Riecketal.
proposentd'utiliserlesinteractionsentrelesappli-cationsanalyséesetlerestedusystèmeandelesclassieretdeseservirdumodèleobtenulorsdel'apprentissagepourdétecterd'autreséchantillonsdemalware.
Pourobtenirlesinteractionsdesapplicationsaveclerestedusystème,ilsexécutentlesapplicationsdansCWSandbox[101],unenvironnementd'ana-lysedynamiqued'application.
Ilsconstruisentensuiteunvecteurreprésentantlecomportementdel'applicationsanalyséeàpartirdesinteractionsobservéesoùchaquedimensionreprésenteunesuited'interactionetutilisentcesvecteursandeclassierdemanièrenonsuperviséelesapplicationsanalysées.
Lesclassesobtenuesàlasuitedecetteétapeserventensuitedemodèleandedétecterdenouvellesinstancesdemalware.
Riecketal.
ontcomparélaqualitédesclassescréesdurantl'apprentissagerapportàcelledeBayeretal.
etontmontréqueleurapprocheobtientun48CHAPITRE2.
TATDEL'ARTmeilleurscore,0.
950,parrapportàcelledeBayeretal.
,0.
881.
Lescorecal-culé,appeléF-Score[8],combineàlafoislaqualitédelaprécisionainsiquedurappeldesclassescalculéesdurantl'apprentissage.
Laprécisionmesurelacorrespondanceentrelesclassescalculéesetlesfamillesdemalwaretandisquelerappelmesurel'éparpillementdeséchantillonsd'unmalwaredansplusieursclasses.
Uneprécisionélevéesigniequechaqueclassecorrespondàunefamilledemalware.
Unrappelélevésigniequechaquefamilledemalwarecorrespondàuneclasse.
LavaleurmaximaleduF-scoreestde1tandisquelapireestde0.
Pluslescoreestélevé,pluslaqualitédel'apprentissageestmeilleure.
Lestravauxprésentésontmontéquel'apprentissagepouvaitserviràcalculerdesmodèlesandeclassieretdétecterdesmalware.
Cetapprentissageesteec-tuéàpartirdespropriétésliéesauxchierscontenantlesapplicationsàanalyseroudeleurstracesd'exécution.
Dansnotrecas,l'apprentissageesteectuésurlesuxengendrésparleséchantillonsdemalwaredanslesystème.
Nousexécu-tonsainsichaqueéchantillondemalwarepourcapturercesuxd'information.
Undesbutsdenotreapprocheestd'identierlecomportementmalveillantdesmalware.
Pourcela,ilfautcapturercecomportementdurantl'analyser.
Pournousenassurer,nousavonsanalyséstatiquementleséchantillonsdecertainsmalwarepouridentierlesévènementsdéclenchantl'exécutionducodemal-veillant.
Danslasectionquisuit,nousprésentonsdoncunensembled'outilsliésàl'analysed'applicationsAndroid.
2.
8Analysed'applicationsAndroidAnalyseruneapplicationapourbutd'extrairedesinformationsliéesàl'applicationtellesquesoncomportement,lesressourcesqu'elleutiliseetlesévènementsattenduspourexécuterunepartiedesoncode.
2.
8.
1Désassembleur,décompilateurAndecomprendrelefonctionnementd'uneapplicationssansavoiràl'exé-cuter,unanalysteasouventrecoursàundésassembleurouundécompilateur.
Désassemblerlecoded'uneapplicationconsisteàleretranscriredansunlangagebasniveaudontlesinstructionsetcellesdel'architecturecenséeinterprétéelecodeàdésassemblerontunefortecorrespondance.
L'architectureinterprétantlecoded'uneapplicationAndroidestlamachinevirtuelleDalvik.
ParmilesoutilspourdésassemblerlesapplicationsAndroid,nouspouvonsciterdedexer[6],apktool,quiutilisesmali[13],Androguard[97]etIDAPro[9].
Lelisting2.
4estunextraitducodedel'applicationJetBoydisponibledansleSDKAndroid.
Lelisting2.
5estlapartiecorrespondante,écriteensmali,aprèsavoirdésassemblél'applicationavecapktool.
Lasyntaxedeslangagesutilisésparcesoutilsestassezexplicitepourcomprendrecequefaitl'applicationetavoiruneidéedel'aspectducodeJavad'origine.
Nousremarquonsparexemplequel'instructionàlaligne4danslelisting2.
4correspondauxinstructionsdelaligne24à28dulisting2.
5.
2.
8.
ANALYSED'APPLICATIONSANDROID491publicvoidonClick(Viewv){2//thisisthefirstscreen3if(mJetBoyThread.
getGameState()==JetBoyThread.
STATE_START){4mButton.
setText("PLAY!
");5mTextView.
setVisibility(View.
VISIBLE);67mTextView.
setText(R.
string.
helpText);8mJetBoyThread.
setGameState(JetBoyThread.
STATE_PLAY);9}10.
.
.
11}Listing2.
4–Extraitducodedel'applicationJetBoyfourniavecleSDKAndroidDécompileruneapplicationrevientàleretranscriredansunlangagehautni-veau(ex:JavaetC).
LesapplicationsAndroidétantécritesenJava,lebutdeladécompilationseraicid'obteniruncodeJavaàpartirdudalvikbytecode.
ParmilesoutilsnotablesnouspouvonsciterAndroguardetlacombinaisondex2jar[43]etJD-Gui[10].
Androguardintègreundécompilateurnatif,dad,maisilpeutégalementfaireappelàd'autresdécompilateurs.
dex2jarestunoutilquitrans-formeledalvikbytecodeenjavabytecodeetJD-Guiestunoutilgraphiquededécompilationdejavabytecode.
DécompileruneapplicationAndroidenoptantpourlacombinaisondecesoutilsrevientainsiàextrairelechierclasses.
dexdel'apk,créeravecdex2jarunchierjar(JavaArchive)etàdécompilercedernieravecJD-Gui.
UnavantagequeJD-GuiasurAndroguardestlapos-sibilitéd'exporterlerésultatdeladécompilationdansleschiers.
class.
Lelisting2.
6listelecodeproduitparladécompilationdel'applicationJetBoyavecAndroguard.
Unediérencenotableaveclecodeorignalestl'usagedesvaleursàlaplacedesvariablesconstantesprésentesdanslecodeoriginal.
Silerésultatdeladécompilationalemérited'êtredansunlangagehautniveau,cetteopérationintègrecependantlerisqued'uneerreurdetranscription.
Lorsdeladécompilationdecertainesapplications,nousavonsainsidétecterdeserreursdanslerésultatdeladécompilationpourlesdeuxoutils.
2.
8.
2Comparaisond'applicationsUneautrefonctionnalitéintéressanted'Androguardestsacapacitéàévaluerlasimilaritéentredeuxapplications.
Androguardcomparelecodedesdeuxapplicationsetcalculequellessontlesméthodesquisontidentiques,similairesetcellesquisontprésentesdansl'unemaispasdansl'autre.
L'undescasd'usagedecettefonctionnalitéestparexempledetrouverlecoderajoutéàuneapplicationentredeuxversions.
Ellepeutégalementserviràidentierlesapplicationsvoléesàleurauteuroriginal.
50CHAPITRE2.
TATDEL'ART2.
8.
2.
1ExtractiondemétadonnéesL'analysepeutégalementavoirpourbutd'extrairedesmétadonnéesliéesàl'application.
DanslecasdeapplicationsAndroid,cesdonnéessontgénérale-mentlecontenuduchierAndroidManifest.
xml.
Cechiercontientdiérentesinformations:permissionsutiliséesparl'application,sonnumérodeversion,lalistedesescomposants,etc.
L'accèsàsoncontenunenécessitepasforcémentunoutilparticuliercarils'agitd'unchierXML.
Androguardoulesoutilsd'ana-lysedynamiqued'applicationtelsqueAndrubisproposecependantd'extraireautomatiquementcesdonnés.
2.
8.
2.
2ScannerdevirusIlexisteplusieursscannersdevirussousAndroiddontcertainssontdis-poniblesdirectementsurGooglePlay.
Ilexistecependantpourlesanalystesdesservicespermettantd'analyserlesapplicationsAndroidpourdétecterleséchantillonsdemalwaresansavoiràlesanalyseravecuneapplicationdansuntéléphone.
VirusTotal[14]estunexempledecetyped'outilenligne.
Pouref-fectueruneanalyse,lesutilisateurssoumettentlechieràanalyserviaunepagedesoumission.
Chaquechiersoumisestensuiteanalysépardiérentsproduitsanti-virusandedétectersiouiounonilestmalveillant.
VirusTotalutiliseàcejour49produitsanti-virus.
Lerésultatdesanalysesdechaqueanti-virusestensuiteretournéeàl'utilisateur.
AndroTotal[2]estunautreoutilsimilaireàVirusTotal.
Commesonnoml'indique,AndroTotalestuniquementdédiéàl'analysed'applicationAndroidalorsqueVirusTotaln'imposeaucunerestric-tionsurletypedechieràanalyser.
Cetyped'outilpeuts'avérerutilepouridentierrapidementdeséchantillonsdemalware.
Zhouetal.
ontparexempleutiliséVirusTotalandeclassierleséchantillonsdemalwarequ'ilsontanalysédans[113].
2.
8.
2.
3Analysedynamiqued'applicationAnalyserdynamiquementuneapplicationconsisteàl'exécuterpourobser-versoncomportement.
L'exécutionsefaitgénéralementàl'intérieurd'unen-vironnementvirtuelsimulantunenvironnementd'exécutiontelqu'unsystèmed'exploitationouunemachine.
Ilsexistentplusieursenvironnementsd'analysed'applicationAndroid.
Certainsd'entreeuxsontdisponiblesvialeurcodesource(ex:DroidBox)ouentantqueserviceenligne(ex:Andrubis).
Ilsontsouventunebasecommuned'informationssurveillées:permissionsutilisées,appelsdefonctionsensibledel'APIAndroid,composantsdel'applicationquiontétéexécutées,accèsauxsystèmesdechier,communicationsréseaux,etémissionsd'appeletSMS.
Pourobservertoutescesinformations,lesauteursdecesoutilsontrecoursàdiérentestechniques:réécrituredecode,suivideuxd'information,obser-vationdesappelssystème,introspectiondel'environnementvirtueld'exécutionetstimulationd'entrée.
2.
8.
ANALYSED'APPLICATIONSANDROID51Laréécrituredecodeconsisteàinjecterlecodenécessaireàl'analysedansl'applicationavantdel'exécuter.
Durantl'exécution,lecodeinjectérenseignerasurlescomportementsd'intérêt.
LesauteursdeDroidBoxontparexempleoptépourcetteméthodeand'observerlesappelsauxdiérentesfonctionssensiblesdel'APIAndroid.
Lesuivideuxd'informationpermetd'observercommentuneinformationsepropagedansunenvironnementdonné.
UnappareilAndroidcontientuncer-tainnombred'informationssensibles(ex:listedecontact)dontl'usageparuneapplicationauraitunecertaineutilitépourunanalyste.
Andrubis,AppsPlay-groundetDroidBoxintègrentainsiTaintDroidandesuivrelesuxd'infor-mationdanslesapplicationsAndroidpourdétectertoutefuited'information.
DroidScopeasonpropremoniteurdeuxd'informationCesenvironnementsd'analysedynamiqued'applicationpeuventêtrefournissousdeuxformes.
Soitleursauteursfournissentunaccèsentantqueservice,l'analyseesteectuéeensoumettantl'applicationàanalyseretl'utilisateurré-cupèrelerésultatdel'analysesousformedepageweboudechiersXMLouJSON,soitilsfournissentl'environnemententéléchargementanquel'utilisa-teurl'exécutesursaprochemachine.
DroidBox[7]estunenvironnementd'analysedynamiqued'applicationAn-droidàtéléchargeretexécutersursapropremachine.
Durantl'exécutiondel'application,l'outilenregistrelescommunicationsréseauxeectuéesparl'ap-plication,lesaccèsauxchiers,lesserviceslancés,lescomposantsBroadcastRe-ceiver,lesclasseschargées,lesopérationscryptographiquesvial'APIAndroid,lesmessagesetlesappelsémis.
Andesuivrelerythmed'évolutiond'Android,DroidBoxinstrumentelecodedesapplicationspourintercepterl'appeldesfonc-tionsd'intérêt.
DroidBoxintègreégalementuneversiondeTaintDroidandedétecterleséventuellesfuitesd'informationsensible.
Sonrapportintègreainsilesfuitesd'informationvialeréseauetparSMSquel'applicationauraitpufaire.
Lelancementdel'applicationestautomatiquemaisilappartientàl'utilisateurd'interagiravecl'application.
Andrubis[100],versionAndroidd'Anubis,estunserviced'analysed'ap-plicationenligne.
Ilfournitlesmêmestypesd'informationqueDroidBox.
SiDroidBoxselimiteauxfonctionsdel'APIAndroid,Andrubisluiconsidèrelefaitquelesapplicationspuissentégalementutiliserducodenatif.
Ilsenregistrentainsidansleurrapportl'usagedesappelssystèmeutilisésparl'application.
UneautrediérenceparrapportàDroidBoxestlagénérationd'évènementsandecouvrirtoutlecode.
DroidBoxsecontentedelancerl'applicationenexécutantsonActivityprincipal.
Andrubisprendencomptelefaitquechaquecompo-santd'uneapplicationestunpointd'entréeduprogrammeetessaiedetousleslancer.
D'aprèsl'étudeeectuéeparNeuneretal.
dans[77],DroidBoxauraitétéuti-lisécommebasepourd'autresenvironnementsd'analysetelsqu'ANANAS[44]etMobileSandbox[94].
Ilexisteégalementd'autresenvironnementsindépen-dantsdeDroidBoxtelsqueSmartDroid[111],CopperDroid[88],DroidScope[106]AASandbox[25]etc.
52CHAPITRE2.
TATDEL'ART1.
methodpubliconClick(Landroid/view/View;)V.
locals52.
parameter"v"3.
prologueconstv4,0x7f0500044const/4v3,0x45const/4v2,0x06.
line92iget-objectv0,p0,7Lcom/example/android/jetboy/JetBoy;->mJetBoyThread:8Lcom/example/android/jetboy/JetBoyView$JetBoyThread;9invoke-virtual{v0},10Lcom/example/android/jetboy/JetBoyView$JetBoyThread;11->getGameState()I12move-resultv013const/4v1,-0x114if-nev0,v1,:cond_015.
line93iget-objectv0,p0,16Lcom/example/android/jetboy/JetBoy;->17mButton:Landroid/widget/Button;18const-stringv1,"PLAY!
"19invoke-virtual{v0,v1},20Landroid/widget/Button;->setText(Ljava/lang/CharSequence;)V21.
line94iget-objectv0,p0,22Lcom/example/android/jetboy/JetBoy;->mTextView:23Landroid/widget/TextView;24invoke-virtual{v0,v2},25Landroid/widget/TextView;->setVisibility(I)V26.
line96iget-objectv0,p0,27Lcom/example/android/jetboy/JetBoy;->mTextView:28Landroid/widget/TextView;29invoke-virtual{v0,v4},30Landroid/widget/TextView;->setText(I)V31.
line97iget-objectv0,p0,32Lcom/example/android/jetboy/JetBoy;->mJetBoyThread:33Lcom/example/android/jetboy/JetBoyView$JetBoyThread;34invoke-virtual{v0,v2},35Lcom/example/android/jetboy/JetBoyView$JetBoyThread;->36setGameState(I)VListing2.
5–Extraitducodesmalidel'applicationJetBoy2.
8.
ANALYSED'APPLICATIONSANDROID531publicvoidonClick(android.
view.
Viewp6)2{3if(this.
mJetBoyThread.
getGameState()!
=15){4.
.
.
5}else{6this.
mButton.
setText("PLAY!
");7this.
mTextView.
setVisibility(0);8this.
mTextView.
setText(1.
76787404569e+38);9this.
mJetBoyThread.
setGameState(0);10}11return;12}Listing2.
6–Extraitducoderésultantdeladécompilationdel'applicationJetBoyavecledécompilateurpardéfautd'Androguard54CHAPITRE2.
TATDEL'ARTNousavonsprésentédanscechapitrelesystèmeAndroidetintroduitlabasedeconnaissancenécessairepourcomprendrenotreapproche.
Aulieudedétecterdesscénariosd'attaqueprédénis,noussouhaitonsendécouvrirdenouvellesetlesdétecter.
Lapremièreétapeàl'atteintedecetobjectifestd'analyserlesuxd'informationcausésparleséchantillonsdemalwareAndroid.
Pourobservercesux,nousutilisonsunmoniteurdeuxd'informationBlarequenousavonsportésousAndroid.
Danslechapitresuivant,nousprésentonscemoniteuretexpliquonslesajoutseectuésàBlarelorsduportagesousAndroid.
Chapitre3Blare:unmoniteurdeuxd'informationpourLinuxetAndroidPoursuivrelesuxd'information,nousutilisonsBlare[37],unsystèmededétectiond'intrusionparamètréparunepolitiquedeuxd'information.
Lapo-litiquedeuxd'informationdécritlesuxautorisésdanslesystèmeetlèveunelarteàchaqueviolationdelapolitique.
Blareestbasésurunmodèledécritensection3.
1etestimplémentépourlessystèmesdetypeLinuxcommedé-critensection3.
3.
Androidintégrantdesfonctionnalitésquiluisontpropres,lepremierapportdelathèseadoncconsistéàmodierBlarepourprendreencomptecertainesfonctionnalitésd'Android.
Lapriseencomptedecesfonction-nalitésdonneunevuepluscomplètedesuxd'informationsousAndroid.
Lasection3.
4décritlesmodicationsapportéesàBlare.
Lerésultatdeceportage,AndroBlare,noussertd'environnementd'analysedynamiqued'applicationand'apprendrelecomportementdesapplicationsàpartirdesuxd'informationqu'ellescausentdanslesystème.
Danslasection3.
5,nousexpliquonsainsicom-mentnousanalysonslesapplicationsdanscetenvironnement.
3.
1ModèlethéoriqueLemodèlethéoriquedeBlare[55,56]décritcommentsuivreetcontrlerlesuxd'informationauniveaudusystème.
Poursuivrelesuxd'information,ilutiliseuneméthodedemarquagequiconsisteàmarquerlesobjetsselonlanaturedeleurcontenu.
Ilexisteainsiunedistinctionimportanteentrelesconteneursd'informationetleurcontenu.
5556CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONTaille8163264Intervaller27,271sr215,2151sr231,2311sr263,2631sTable3.
1–Intervalledevaleurdutypeintselonsatailleenbits3.
1.
1Conteneursd'informationBlaresuitlesuxd'informationauniveaudusystèmed'exploitation.
Ilaainsiunevuedesuxentrelesobjetsdusystème.
LemodèledeBlaredénittroistypesdeconteneurd'information:lesconteneurspersistants,lesconteneursvolatilesetlesutilisateurs.
Unconteneurpersistantestunconteneurquipeutexistersurplusieurscyclesd'exécutiondusystème.
Unchierestl'exemplety-piqued'unconteneurpersistant.
Unconteneurvolatileestconteneurquin'existequeletempsd'uncycled'exécutiondusystème.
Iln'estcrééqu'aprèsledé-marragedusystèmeetestdétruitàl'arrêt.
Lessocketssontdesexemplesdeconteneursvolatiles.
Lesutilisateurssontlesutilisateursdusystème.
chacundecesconteneursseraassociéunensembledemarquesoutagsquipermettentdesuivreetcontrlerlesuxd'information.
NousnoteronsparlasuiteCl'en-sembledesconteneursd'information,PCl'ensembledesconteneurspersistants,VCl'ensembledesconteneursvolatilesetUl'ensembledesutilisateurs.
3.
1.
2Informationetcontenucourantd'unobjet:itagIlexistedeuxtypesd'informationdanslemodèledeBlare.
Lepremierestl'informationmortequicorrespondàtoutedonnéenonexécutéesurlesys-tème.
Lecontenud'unchierestl'exempletypiqued'uneinformationmorte.
Ledeuxièmeestl'informationexécutéequicorrespondàtoutedonnéeexécutée.
Nousnelaretrouvonsquedanslesprocessuscarseulslesprocessuspeuventexécuterdesdonnées.
chaquedonnéedontnoussouhaitonscontrlerlapro-pagationestassociéeunentieruniquel'identiant.
L'ensembledesidentiantsd'informationmorteestnotéeI"t1,2,.
.
.
uetcorrespondl'ensembledesentiersstrictementpositifs.
L'ensembledesidentiantsd'informationexécutéeestnotéeX"t1,2.
.
.
uetcorrespondàl'ensembledesentierstrictementnégatifs.
Enthéorie,ilestpossibledesuivreautantd'informationquesouhaitémaisdanslapratiquel'implémentationimposeratoujoursunevaleurmaximaleetminimaledesidentiants.
LesidentiantssontreprésentéspardesentierssignésdetypeintdanslaversionactuelledeBlare.
Latailledestypesvarieselonl'architecturedusystème(chapitre11deLinuxDeviceDrivers[40]),cequirendimpossiblededéniruneintervalledevaleurxepourlesidentiants.
Letableau3.
1listelesintervallesdevaleurpourunintselonlenombredebitsutiliséspourlestocker.
Ilestànoterqueletypeintdésigneunentiersignéetledernierbitdesareprésentationenmémoireestainsiutilisépourcodersonsigne.
SiIetXsontdeuxensemblesdistincts,ilexistecependantunerelationentreleurséléments.
PourchaqueélémentndeI,nidentieladonnéidentiéeparnlorsqu'elleestexécutéedansunprocessus.
Parexemple,sinoussupposonsque3.
1.
MODLETHORIQUE57lecontenuduchier/system/bin/cat1estidentiépar1alorsleprocessusquiexécuteracatcontiendral'informationidentiéepar1.
ItagLemodèledeBlaremarquechaqueconteneurd'informationpartagap-peléitagpourcaractérisersoncontenu.
SavaleurestunsousensembledeIYXetpourtoutconteneurc,itagpcq"ti1,.
.
.
inusignigiequelecontenudeccontientlesinformationsinitialementidentiéespari1,.
.
.
in.
@cPC,itagpcqPPpIYXq3.
1.
3Politiquedeuxd'information:pxqptagBlareestparamétréparunepolitiquedeuxd'information.
Cettepolitiquedénitlesuxautorisésentrelesconteneursd'informationetestreprésentéeparl'ensembledesptagsdanslesystème.
chaqueconteneurd'informationestainsiassociéundeuxièmetag:ptag.
Leptagdénitlesdiérentscontenusmaximauxautoriséspourleconteneur.
Savaleurestunecollectiondesous-ensembledeIYXetchacundesesélémentsreprésenteuncontenumaximallégalpourleconteneur.
@cPC,ptagpcqPPpPpIYXqqLecontenucourantd'unconteneurcestlégalsiitagpcqestinclusdansaumoinsundesélémentsdeptagpcq.
Leptagd'unconteneurestnulpardéfaut.
Leconteneurn'adoncpasledroitd'accéderàunedonnéeàlaquelleunidentiantaétéassocié.
Touteinformationn'ayantaucunidentiantassociéestconsidérécommenonsensibleetaledroitdesepropagerdansn'importequelconteneur.
LecontenudecestlégalsiDePptagpcqtelqueitagpcqeParexemple,sileptagd'unconteneurvauttt1,2u,t2,3uucelasigniequel'ensembledescontenuslégauxpossiblespourceconteneursontH,t1u,t2u,t3u,t1,2uett2,3u.
Politiqued'unprogramme,politiqued'unprocessus:xptagUnedistinctionimportanteestfaiteentreprogrammeetprocessus.
Toutedonnéepouvantêtreexécutéedanslesystèmeestunprogrammetandisqu'unprocessusestuneinstanced'unprogrammeouplusprécisémentuneentitéexé-cutantunprogramme.
Lecontenud'unchiercom.
android.
browser.
dexestunexempledeprogrammeAndroidetleprocessuscom.
android.
browserestuneinstancedeceprogramme.
1.
catestuneapplicationenlignedecommandequiconcatèneetachelecontenudechiers58CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONUSERPIDPPIDNAMEroot10/initdrm1791/system/bin/drmservermedia1801/system/bin/mediaserverinstall1811/system/bin/installdkeystore1831/system/bin/keystoreradio1861/system/bin/netmgrdnobody1871/system/bin/sensors.
qcomroot1901/system/bin/thermal-engine-hhroot16781/system/xbin/suFigure3.
1–ExtraitdelasortiedelacommandepssousAndroid4.
4xptagLapolitiqued'unprogrammeestexpriméeparuntroisièmetagappeléxptagquiestattachéauconteneurstockantleprogramme.
Toutcommeleptag,lexptagestégalementunecollectiondesous-ensembledeIYX.
Iln'estpasutilisépourvérierlalégalitéd'uncontenumaispourcalculerlavaleurduptagdesprocessus.
@cPC,xptagpcqPPpPpIYXqqUnprocessusestuneinstanced'unprogrammeàl'exécution.
Danslessys-tèmesUnix/Linux,lesprocessuspeuventêtrelistésaveclacommandeps.
Lagure3.
1présenteunextraitdelasortiedelacommandepssousAndroid.
Lesinformationsd'intérêtsontcellesdelapremière,ladeuxièmeetladernièrecolonnes.
Chaquelignelistedesinformationssurunprocessus.
Lapremièreco-lonneidentiel'utilisateurexécutantleprocessus.
Ladeuxièmecolonnelistelesidentiantsdesprocessus.
Ennladernièrecolonnelistelesprogrammesexécu-tésparlesprocessus.
Ainsi,leprogramme/initestexécutéeparl'utilisateurrootdansleprocessusidentiépar1.
Unprocessusétantlerésultatdel'exécutiond'unprogrammeparunuti-lisateur,sapolitiqueestcalculéeàpartirdecelledel'utilisateuretcelleduprogrammequ'ilexécute.
Nousnoteronsexecpc,uqleprocessusrésultantdel'exécutionduprogrammecparl'utilisateuruparlasuite.
Plusprécisément,lapolitiqued'unprocessusrésultedel'intersectiondelapolitiquedel'utilisateuretdecelleduprogrammequ'ilsouhaiteexécuter.
Soientunprogrammecetunutilisateuru.
Lapolitiqueassociéeauprocessusexecpc,uqestl'intersectiondesélémentsdelapolitiquedecavecceuxdelapolitiquedeu.
@pPProget@uPU,ptagpexecpc,uqq"tecXeuu,ecPptagpcqeteuPptagpuquParmilesprocessuslistésparlacommandepsdanslagure3.
1setrouveunprocessusexécutéparl'utilisateurmediaetexécutantleprogrammedansle-3.
1.
MODLETHORIQUE59chier/system/bin/mediaserver.
Ensupposantquelapolitiqueassociéerespec-tivementauprogrammeetàl'utilisateursoittt1,2,3u,t3,4uuettt2,3,5u,t5,12uu,alorslapolitiqueassociéeauprocessusseraittt2,3uu.
Cetuniqueélémentdelapolitiquerésultedel'intersectiondupremierélémentdelapolitiquedupro-grammeavecceluidel'utilisateur.
Lesautresintersectionssonttoutesvides.
Celasigniequeleprocessuspeutcontenirtoutaupluslesinformationsiden-tiéespar2et3.
3.
1.
4Suivietcontrledeuxd'informationLecontenucourantd'unobjetetsapolitiquedeuxsontreprésentésrespec-tivementparl'itagetleptagattachésàl'objet.
L'itagcaractérisantlecontenucourantd'unobjet,savaleurévolueraenfonctiondel'évolutionducontenudel'objetauquelilestattaché.
Leptagparcontreluin'évolueraquesilapolitiquedeuxd'informationn'évolue.
Lesuivietlecontrledeuxd'informationsefaitendeuxétapes.
Lapremièreétapeconsisteàlamiseàjourdel'itagdel'objetdontlecontenuaétémodiésuiteauuxobservé.
Ladeuxièmeétapeconsisteàvérierlalégalitéduuxobservé.
Unuxestlégalsilecontenudesobjetsmodiésparleuxestlégal.
Lavéricationdelalégalitésefaitencomparantlanouvellevaleurdel'itagdel'objetmodiésuiteauuxaveclapolitiqueassociéeàl'objet,àsavoirsonptag.
3.
1.
4.
1Suivideuxd'informationBlareobservelesévènementsdusystèmeprovoquantdesuxd'informationetàchaqueuxobservé,ilmetàjourl'itagdesobjetsdontlecontenuaétémodiéparleux.
Cesuxpeuventêtreclassésdansdiérentsgroupescommelistédansletableau3.
2.
Chaquelignedécritl'interactionentredeuxobjetsdusystèmecausantunuxd'informationetlamanièredontlestagssontmisàjoursquandBlareobserveleux.
Nonseulementl'itagdel'objetmodiéestmisàjourmaisaussisonxptag,saufdanslecasdel'exécutiond'unprogramme.
Lexptagreprésentelapolitiqued'unprogramme.
Orunprogrammeestunedonnéestockéedansunconteneur.
Unprogrammepeutainsiêtrepropagédanslesystèmelorsdesuxd'information.
Andes'assurerquelapolitiqued'unprogrammeresteassociéeàceprogrammemalgrélefaitqu'ilpuisseêtrecopiédansd'autresconteneurs,Blarepropagelexptagdeschiersenmêmetempsquel'itagduchier.
chaquefoisBlareobserveunuxd'information,ileectueunesuraproxi-mationduuxobservé.
Ilconsidèrelepiredescasquiestquelecontenuentierdelasourceduuxd'informations'estpropagéversleconteneurdestination.
Nousexpliquonsci-dessouscesmisesàjoureectuéesparBlarelistéesdansletableau3.
2.
Lorsqu'unprocessusplitlecontenud'unconteneurf,Readpp,fq,Blareconsidèrequelecontenudefs'estpropagédansp.
Lecontenuduprocessusestmodiéparleuxetsonitagchangedevaleur.
Lepiredescasétantquetoutcontenudefsesoitpropagédansp,Blareconsidèrealorsquelenouveau60CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONTyped'évènementDescriptionMiseàjourdestagsReadpp,fqLecturedefparpitagppqitagppqYitagpfqxptagppqxptagpfqXxptagppqWritepp,fqcrituredefparpitagpfqitagppqzXxptagpfqxptagppqWriteapppp,fqcrituredefparpitagpfqpitagppqzXqYitagpfqxptagpfqxptagpfqXxptagppqExecpp,fqExécutionducontenudefparpitagppqtnu,nPitagpfqptagppqxptagpfqTable3.
2–Blare:méthodedesuivideuxcontenudepestunmélangedesonanciencontenuetducontenudef.
Lanouvellevaleurdel'itagdepestdoncl'uniondesonancienitagavecceluidef.
L'exempletypiquedecetypedeuxestlalectured'unchierparunprocessus.
Leschiersnesontcependantpaslesseulsconteneursd'informationdusystèmeàpartirduquelunprocessuspeutliredesdonnées.
Unprocessuspeutégalementliredesdonnéesàpartird'unsocketoud'unmessagevialeslesdemessage[65].
Leconteneurfnereprésentedoncpasuniquementunchiermaistoutautreconteneuràpartirduquelunprocessuspeutliredesdonnées.
Lorsqu'unprocessuspécritdansunconteneurf,Writepp,fq,Blareconsi-dèrequelesinformationsdanspsepropagentversleconteneurf.
LecontenudefchangeetBlaremetàjoursonitag.
Lepiredescasétantquetoutlecontenudepsepropagedansf,lenouveaucontenudefestenconséquentunmélangedesonanciencontenuaveclecontenudepàl'exceptiondesdonnéesexécutées.
Blareconsidèrequ'unprocessusnepropagepaslecodequ'ilexécute.
Lesidentiantsnégatifsnesontdoncpaspropagésdansl'itagdudestinataire.
Lanouvellevaleurdel'itagdefestainsil'uniondesonanciennevaleuravecl'ensembledesidentiantspositifsdansl'itagdep.
Commeexpliquéensection3.
1.
2,lesdonnéessensiblesexécutéesdansunprocessussontidentiéesparunentierstrictementnégatif.
Lorsqu'unprocessusexécuteunprogramme,Blareconsidèrequesoncontenucourantestremplacéparlecodeprovenantduchiercontenantleprogramme.
Sonitagdevientainsil'ensembledesvaleursnégativesdesidentiantsprésentsdansl'itagduchier.
Lesinteractionsentrelesobjetsd'unsystèmeneselimiteàlalecture,écri-tureetl'exécution.
D'autresévènementstelsquelacréationdeconteneuroul'envoidesignauxexistentégalement.
Cesévènementsn'engendrentpasdeuxd'informationexplicitesentrelesobjetsetsontignorésparBlare.
Ilestcepen-danttechniquementpossibledeseservirdecesévènementspourfairefuirdesinformationsetainsiéchapperaucontrleeectuéparBlare.
3.
1.
4.
2Contrledeuxd'informationUnuxd'informationestlégalsilecontenudel'objetquiaétémodiéparleuxestlégal.
Lecontrled'unuxd'informationsefaitendeuxétapes.
3.
1.
MODLETHORIQUE61c2c1ptag={{1,2,3}}ptag={{1,2},{2,3}}itag={3}itag={1}c2c1ptag={{1,2},{2,3}}itag={3}itag={1,3}c2c1ptag={{1,2},{2,3}}itag={3}itag={1,3}(a)(b)(c)ptag={{1,2,3}}ptag={{1,2,3}}Figure3.
2–Exempledecontrledeuxd'informationeectuéparBlare1.
Miseàjourdel'itagdel'objetdontlecontenuaétéchangé.
2.
Contrledelalégalitédunouveaucontenudel'objetmodiéparleux.
Silecontenuestillégalalors,Blareconsidèrequeleuxobservéestillégaletlèveunealerte.
Lagure3.
2illustreunexempledecontrledeuxlorsqueBlareobservelalectured'unchierc1parunprocessusc2.
(a)Lesdeuxconteneurssontmarquéspréalablementavantlalecture.
(b)Lorsdelalectureduchier,Blareconsidèrequelecontenudec1sepropageversc2.
Ilmetainsiàjourlavaleurdeitagpc2qcommedécritdansletableau3.
2pourlalecturedechier.
Lavaleurdeitagpc2qdevientt2,3u.
(c)Aprèslamiseàjourdel'itag,Blarecontrlelalégalitédunouveaucontenuandedéterminersileuxobservéestlégalounon.
Iln'existepasd'élémentdeptagpc2qquiinclutitagpc2q.
Lenouveaucontenuestillégal,cequisigniequeleuxobservéestillégal.
Unealerteestdonclevée.
Blareestoutildedétectiond'intrusionparamétréparunepolitiquedeuxd'information.
Pourdétecteruneintrusion,ilfautainsidansunpremiertempsdénirunepolitiquedesécuritéquiidentielesinformationsàprotégeretoùcesinformationsontledroitdesepropager.
Danslasectionsuivante,nousprésentonsunemanièrededénircettepolitiquedeuxsousAndroid.
62CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION3.
2Dénitiond'unepolitiquedeuxd'informa-tionProtégerunsystèmeavecunoutiltelqueBlaresigniequ'ilfautdansunpremiertempsdénirunepolitiquedesécurité.
DanslecasdeBlare,cettepolitiqueestunepolitiquedeuxd'information.
Elleidentielesinformationsàprotégeretcommentlesprotéger,c'est-à-direlalistedesconteneursoùellesontledroitdesepropager.
Dénirunepolitiquedeuxd'informationpourBlareserésumeenquatreétapes.
1.
Identierlesinformationssensiblesàprotéger.
2.
Associeràchacunedecesinformationsunidentiantunique.
3.
Identierlesconteneurslégauxpourcesinformations.
4.
Dénirlavaleurdesptagsàassocieràcesconteneurs.
Ilexistedeuxapprochespourdénirlapolitiquedesécurité.
Lapremièreconsisteàlacalculeràpartird'uneautrepolitiqueexistantetellequ'unepo-litiquedecontrled'accès.
Dans[56],Gelleretal.
ontproposéunalgorithmequitransformeunepolitiquedecontrled'accèsmandataireAppArmorenunepolitiquedeuxd'informationBlare.
LespolitiquesAppArmordénissentdesprolsdeprogrammelimitantleuraccèsauxautresobjetsdusystèmetelsqueleschiers.
L'algorithmeproposéprendenentréeunensembledeprolsAppArmoretdonneensortieleuréquivalententermedepolitiqueBlare.
Cetteapprochealemérited'êtreautomatiqueetrapidemaisellenepermetpasd'ex-ploitertoutel'expressivitéd'unepolitiqueBlare.
Unexempledecemanqued'expressivitéestlarestrictionsurlesmélangesd'information.
Unconteneuraledroitd'accéderauxinformationsietjmaisn'apasledroitdelesmélanger,c'est-à-direqueleconteneurcontientsoitisoitjmaispaslesdeuxenmêmetemps.
Lelisting3.
1présenteunepolitiqueAppArmorpourleprogrammeapache.
Cettepolitiqueautoriseleprogrammeàlirelecontenudeschiersapache2.
confetindex.
php.
Lapolitiquedeuxquipeutêtredéduitedecettepolitiqueestquelesdonnéesdanslesdeuxchiersonttoutdeuxledroitdesepropagerversleprogrammeapache.
Cependant,lepropriétaireducontenudecesdeuxchierspeutsouhaiterquelecontenudeceschiersnesemélangentpas.
Cettecontraintenepeut-êtreexpriméeavecunepolitiqueAppArmoretunepolitiquedeuxexprimantunetellerestrictionnepeutdoncêtrecalculéeàpartird'unepolitiqueAppArmor.
{/usr/bin/apache,{(/etc/apache2.
conf,w),(/etc/apache2.
conf,r),(/www/index.
php,r),(/usr/bin/ftpd,px)}}Listing3.
1–ExempledepolitiqueAppArmor3.
2.
DFINITIOND'UNEPOLITIQUEDEFLUXD'INFORMATION63Ladeuxièmeapprocheconsisteàdénirmanuellementlapolitiquedeuxd'information.
Cetteapprocheestpluslonguecarelleimpliqueuneanalysecomplètedusystèmemaispermetd'exploitertoutel'expressivitéd'unepolitiqueBlare.
Constructionmanuelled'unepolitiquepourAndroidDans[16],nousavonsproposéunepolitiquedeuxd'informationpourlesystèmeAndroid.
Lapolitiqueaétéconstruiteàlamainensebasantsuruneanalysemanuelledusystème.
Lebutétaitdefournirunepolitiqueàtailleréellepourunsystèmeentier.
Commeécritprécédemment,ladénitiond'unepoli-tiquedeuxsefaitenquatreétapes.
Lapremièreétapeestl'identicationdesinformationssensiblesàsurveiller.
NousavonsconstruitlalistedesinformationssensiblesàpartirdesdonnéesquenousavonsjugéessensiblessurlesystèmeAndroid.
Cesinformationsincluentlesdonnéesliéesàl'utilisateur(ex:listedecontactetdonnéesdegéolocalisation)maisaussicellesliéesauxapplications(ex:codeetparamètresdeconguration).
Lesdonnéessensiblesontétéidentiéesenanalysantmanuellementlecontenudeschierssurlesystèmeetenprenantencomptecellesquisontprotégéesparlemécanismedepermission.
Notrepolitiquerecense150informationssensiblesmélangeantdonnéesnonexécutéesetcodeexécutéàl'intérieurdesprocessus.
Ilexisteencoreplusd'informationsurunsystèmeAndroid2maisnousavonsjugécettequantitéd'informationàsurveillersusantepourconstruireunepolitiquedeuxd'informationpourtoutunsystème.
Ladeuxièmeétapeconsisteàidentierlesconteneursd'information.
LalistedeschiersetprogrammesinstalléessurunsystèmeAndroidestassezsimpleàconstruire.
Grceàlacommandefind,nouspouvonslistertousleschiersdusystème.
Quantauxapplications,lesapplicationslivréessousformed'apksontconnuesgrceàlacommandepmetlesapplicationsnativessontstockéesdans/system/binet/system/xbin.
LalistedesutilisateursestelleparcontremoinsévidenteàconstruirecarcontrairementàunsystèmeLinuxstandard,iln'existepasdechier/etc/passwdnidechier/etc/shadow.
Androiddénitendurunensemblerestreintd'utilisateurnécessaireaufonctionnementdebasedusystèmetelsqueroot,radioetsystem.
Puispourchaqueapplicationnonnativeinstalléesurlesystème,ilassocieunutilisateurunique.
Pourétablirlalistedesutilisateursassociésauxapplications,nousnoussommesbaséssurlecontenudeschiers/data/system/packages.
listou/data/system/packages.
xml.
Ilsrecensentlesinformationsliéesauxapplicationsinstalléessurletéléphonedontl'utilisateurquileurassocié.
Unefoislesdonnéessensiblesetconteneuridentiés,nousavonsensuiteconstruitlapolitiquedeux.
Lapolitiquedechaqueprogrammeaétéconstruiteenanalysantsessourcespourcomprendreàquellesinformationsilaccède.
Lapolitiquedechaqueutilisateuraétéobtenueenfaisantl'uniondespolitiquesdesprogrammesqu'ilpeutexécuter.
Danslaplupartdescas,iln'yauraqu'un2.
Ilexisteplusdesmilliersdechiersrégulierslorsdel'exécutiondusystème.
64CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONIdentiantdesinformations11-44106-55-393937-37Fichierscalendar.
dbcontacts2.
dbmms.
dbtelephony.
dbTelephonyProvider.
apkProgrammescom.
android.
calendarcom.
android.
pro-viders.
contactcom.
android.
pro-viders.
telephonyUtilisateurs10024100041001Table3.
3–Unextraitdelapolitiquedeuxd'informationseulprogrammecarendehorsdesutilisateurssystèmelesautresutilisateursn'exécuterontquel'applicationàlaquelleilsontétéassociés.
Lapolitiquedeschiersaétéconstruiteàpartirdesdonnéesqu'ellescontiennentlorsdel'analyseetdelapolitiquedesprogrammesquiyaccèdent.
Siunedonnéesensibleaététrouvéedansunchier,nousavonssupposéquecechieravaitledroitdecontenirladonnée.
cesdonnéess'ajoutentcellesauxquelleslesapplicationsquiontledroitd'écritureauchierpeuventaccéder.
Nousavonssupposéquetouteapplicationavaitledroitdestockerlesdonnéescontenuesdansleschiersauxquelsl'applicationaunaccèslégal.
Généralement,ils'agitdeschiersdanslerépertoirelocaldel'application.
Pourles150informationsidentiéeslorsdelapremièreétape,nousavonsidentié186conteneursd'informationpouvantaccéderàcesinformationsoùlesstocker.
Lapolitiquecontientdonc186ptags.
Lapolitiquenaleaétéreprésentéesouslaformed'unematricedontunextraitestprésentéedansletableau3.
3.
Lechemincompletdeschiersaétéomispourunemeilleurelisibilité.
Unecroixàl'intersectiond'uneligneetd'unecolonnesigniequeleconteneurcorrespondantàlalignealedroitdestockerl'informationcorrespondantàlaligne.
L'ensembledescroixsuruneligneldétermineainsilecontenumaximalautorisépourleconteneurcorrespondantàl.
L'utilisateur10004(avantdernièreligne)aparexempleledroitd'accéderauxinformationsidentiéespar6,10,39et55.
Autrementdit,sonptagvauttt55,39,6,10uu.
Silapertinencedelapolitiquen'apasétéévaluéedanscetravail,letravaileectuéacependantpermisdemettreenévidencedeuxpoints.
Lepremierest3.
3.
KBLARE:SUIVIETCONTRLEDEFLUXVIALSM65ladicultédelacréationdelapolitiqueàlamaincarelleanécessiteuneanalysecomplètedusystèmepouridentierlesinformationssensiblesetleursconteneurslégaux.
Ledeuxièmepointestlenombred'informationsensiblesurlesystème.
ContrairementàcequelespermissionsAndroidpourraientlaissercroire,ilpeutyavoirunnombreassezconséquentd'informationsensiblesurlesystème.
Lapolitiquequenousavonsconstruiterecense150informationsmaisilyaencoreplusd'informationqueceladansunsystème.
3.
3KBlare:suivietcontrledeuxviaLSMLecurdeBlareaétédéveloppéeentantquemoduledesécuritéLinux.
IlrésidedanslenoyauetestappeléKBlare.
Danslerestedudocument,nousdésignonsparKBlarel'implémentationdeBlaredanslenoyauetBlaretoutl'environnementd'exécutionBlare(KBlarepluslesoutilsenespaceutilisateurliéàBlare).
Lesuxd'informationauniveaudusystèmesefontvialesinter-actionsentrelesobjetsdusystèmeetplusprécisémentvialesappelssystèmeeectuésparlesprocessus.
Pourcontrlerlesuxd'information,KBlareinter-cepteainsilesappelssystèmeenutilisantleshooksLSM[103,102].
LSMestunframeworkdesécuritédanslenoyauutilisépourimplémenterlesmodulesdesécuritéLinux.
Leshookssontdesappelsauxmodulesdesécuritédunoyau.
Ilssontplacésdansleuxd'exécutiondesappelssystèmeanquelesmodulesdesécuritépuisseintercepteretcontrlercesappels.
Pourintercepterunappelsystème,unmoduledesécuritéenregistreunefonctionàassocierauhookcor-respondantàl'appelsystème.
chaquefoisquecehookestatteint,lenoyauappellelafonctionenregistréeanquelemoduledesécuritéeectuelecontrlesouhaité.
Lagure3.
3illustrelefonctionnementgénéraldeLSM.
Lorsd'unappelsystème,lenoyauvériesil'accèsdemandéestautorisépourleprocessusef-fectuantl'appel.
IlcommenceparvérierlaconformitéaveclapolitiqueDACdusystème.
Ensuite,ildonnelamainàLSMquiluidemandeaumoduledesécuritéactif3s'ilautoriseounonl'accèsdemandé.
Cetteétapecorrespondaumomentoùunhookestatteintdansleuxdetraitementdel'appelsystème.
Lafonctionenregistréeauhookestainsiappeléeetstatuesil'accèsestautorisé.
Lorsqu'unprocessusfaitunappelsystème,KBlareinterceptel'appel,calculeleuxcorrespondant,metàjourlestagsdesobjetsmodiésetcontrlelalégalitéduuxobservé.
KBlaresecontentecependantdedétecterlesintrusionsmaisnelesprévientpas.
Mêmeencasdeviolationdelapolitiquedeuxd'information,ilautoriselenoyauàcontinuerletraitementdel'appelsystème.
Letableau3.
4listeleshooksutilisésparKBlaredontl'opérationcorres-pondantepeutengendrerdesuxd'information.
Lapremièrecolonnelisteleshooks,ledeuxièmelesopérationsinterceptéesvialehooketladernièrecolonnelestypesdeuxqueKBlarepeutobserver.
D'autreshookssontutiliséspourlefonctionnementinternedeKBlaremaislesopérationscorrespondantesn'in-duisentaucunuxd'information.
3.
EngénéralunseulmoduleLSMestactif66CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONprocessSyscall#nSecuritymoduleDACLSMUserspaceKernelspaceexecsyscallauthorizeFigure3.
3–DesigndeLinuxSecurityModule3.
3.
KBLARE:SUIVIETCONTRLEDEFLUXVIALSM67HookOpérationFluxpossibleobservéfile_permissionLecture/écritureàun-chierouvertEntreleprocessusetlechieraccédéfile_mmapChargementenmé-moireducontenud'unchierDuchierverslepro-cessusinode_permissionAccèsàuni-nodeEntreunpipeetunpro-cessusbprm_set_credsExécutiond'uneappli-cationnativeDuchiercontenantl'applicationversleprocessussocket_sock_rcv_skbRéceptiond'unpaquetréseauDepaquetreuversleprocessussocket_sendmsgEnvoid'unmessagedansunsocketréseauDuprocessusversleso-cketetlepaquetsocket_recvmsgRéceptiond'unmessageviaunsocketDusocketverslepro-cessusunix_may_sendEnvoid'unmessageviaunsocketUNIXDuprocessusversleso-cketUNIXmsg_queue_msgrcvRéceptiond'unmessageviauneledemessageDuprocessusverslemessageenvoyémsg_queue_msgsndEnvoid'unmessagedansuneledemes-sageDumessagereuversleprocessusdestina-tairedumessageTable3.
4–ListedeshooksLSMutilisésparKBlarepouvantengendrerunuxd'informationStockagedestagsKBlarereprésentelestagsdesobjetsdusystèmeavecdesstructuresconte-nantl'itag,leptagetlexptagassociésauxobjets.
Endehorsdeshooks,LSMaégalementmodiélesstructuresreprésentantlesobjetsdusystèmepourajou-terunchampappelésecurity.
Cechampestunpointeurgénériquedestinéàêtreutiliséparlesmodulesdesécurité.
KBlareutilisecechamppourstockerlepointeurverslastructurereprésentantlestags.
Lesstructuresreprésentantl'ensembledestagsexistentuniquementenmé-moireetn'existentdoncqueletempsd'uncycled'exécutiondusystème.
Andestockerdemanièrepersistantelestagsassociésauxchiers,KBlarestockeégalementleurstagsdanslesattributsétendusdeschiers.
Lesattributsétendussontdeszonedemémoiresurledisquequisontutiliséesparlessystèmesdechierpourstockerdesméta-donnéesliéesauxchiers.
68CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONKBlarecontrlelesuxd'informationeninterceptantlesappelssystèmeetpourintercepterlesappelssystèmeilutiliseleshooksLSM.
Cesappelsper-mettentlesinteractionsentrelesobjetsdusystème:accèsauxchiers,exécutiondecodenatifetcommunicationentreprocessus.
Lenoyaud'AndroidestbasésurceluideLinuxmaiscontientdesfonctionnalitésenplus.
Danslasectionsuivante,nousprésentonscommentnousavonsmodiéKBlareandeprendreencomptelesfonctionnalitésspéciquesàAndroid.
3.
4AndroBlare:BlaresousAndroidLepremierapportdecettethèseestleportagedeBlaresousAndroid.
NousavonsmontréprécédemmentqueBlarecontrlaitlesuxd'informationtradui-santlesaccèsauxchiers,lesexécutiondecodeetlescommunicationsentreprocessus.
CescontrlessontbasésuniquementsurlesinteractionspossiblesentrelesobjetsdusystèmesousLinux.
Or,Androidintègredesfonctionnalitésquiluisontproprespouvantengendrerdesuxd'information.
Cesfonctionna-litéssontl'exécutiondesapplicationsparlesmachinesvirtuellesDalviketlescommunicationsvialeBinder.
LeBinderestunmécanismedecommunicationimplémentéprincipalementdanslenoyauAndroid.
Ilestlabasedescommunicationsentreprocessuspro-posésparleframeworkAndroidtelsquelesintents.
Androidn'utilisepaslesmécanismesdecommunicationoertsparLinux.
LescommunicationsentreapplicationsétaientdoncinvisiblesàKBlare.
LesapplicationsquenousavonsdésignéesparlacoucheApplicationssurlagure2.
1sontlivréessouslaformededalvikbytecodeetinterprétéesparlamachinevirtuelleDalvik.
Ellesnesontdoncpasexécutéesdemanièrenative.
leurexécution,leprocessuscontenantlamachinevirtuellequivainterpréterlecoden'eectuepasd'appelsystèmeexecvemaissecontentedelirepuischargerlecodedel'applicationenmémoire.
Aucunappelsystèmetraduisantl'exécutiond'uneapplicationn'ayantlieu,KBlarenevoyaitdoncpasl'exécutiondesapplications.
Enconséquent,aucunepolitiquenepouvaitêtreappliquéeauxapplicationsAndroidetaucunprocessusn'étaitmarquécommeexécutantuneapplicationlorsquelecodedecetteapplicationétaitassociéeàunidentiant.
LimitationsdeBlare(1)Iln'yavaitaucunevisibilitésurlescommunicationsentreapplicationsAndroid.
(2)KBlarenedétectaitpasl'exécutiondesapplicationsAn-droid.
Lestagsdesprocessusn'indiquaientjamaisl'exécutiond'uneapplicationdontlecodeestsensibleetaucunepolitiquenepouvaitêtreappliquéeauxapplications.
Danscequisuit,nousprésentonscommentnousavonsmodiéBlarepourcomblercemanquedevisibilitéauniveaudesuxd'informationsousAndroid.
3.
4.
ANDROBLARE:BLARESOUSANDROID69NousprésentonslefonctionnementduBinderpuiscommentnousavonsim-plémentélesuividesuxd'informationviacemécanisme.
Ensuite,nousex-pliquonscommentlesapplicationsAndroidsontexécutéesetcommentnousavonsajoutéapriseencomptedeleurexécutiondansBlare.
3.
4.
1Communicationentreprocessus:Binder3.
4.
1.
1FonctionnementLesapplicationsAndroidtournentdansdesprocessusdistinctsmaiscom-muniquentsouvententreellesgrceàdiversmécanismesIPCtelsquelesintentsetlesContentProviders.
CesmécanismessontfournisparleframeworkJavaAndroidmaissebasenttousàunniveauplusbassurleBinder.
LeBinderestunmécanismeIPCquipermetàuneapplicationd'appeleruneméthodedistante,c'est-à-direimplémentéeauseind'uneautreapplicationtournantdansunautreprocessus.
Lecurdecemécanismeestimplémentédanslenoyausousformededriver4danslenoyau.
Parlasuitenousadopteronslestermessuivants.
LeBinderfaitréférenceaucodeduBinderdanslenoyau.
Unserviceestuneap-plicationdontlesméthodespeuventêtreappeléespard'autresapplications.
Unclientestuneapplicationquiappelleuneméthoded'unservice.
Lagure3.
4illustrelefonctionnementdubinderlorsdel'appeld'unemé-thodedistante.
Toutclientdoitavoiruneréférenceduserviceimplémentantlaméthodequ'ilsouhaiteinvoquer.
LeclientcommenceainsipardemanderlaréférenceduservicecibléàunautreserviceappeléContext.
Context,implé-mentésousAndroidparleServiceManager,estunserviced'annuairequifaitcorrespondreàchaquenomdeserviceuneréférenceunique.
Chaqueservicedoits'enregistrerauprèsduServiceManageranquesesméthodespuissentêtrein-voquéespard'autresapplications.
Lorsqu'unclientsouhaiteobtenirlaréférenced'unservice,ilappelleainsilaméthodegetServiceduServiceManagerenluidonnantenargumentlenomduservice.
Unefoislaréférenceduserviceobtenu,leclientappellelaméthode.
L'invocationdelaméthoden'estpasdirecte.
Leclientnecommuniquepasdirectementavecleserveurmaistransmetl'appelaubinderquiluiletransmetauserveur.
Unefoisl'appelreupuisexécutéparleserveur,cedernierrenvoielerésultataubinderquiluiletransmetauclient.
3.
4.
1.
2ImplémentationduBinderdanslenoyauTechniquementparlant,leBinderestimplémentésousformededriverdanslenoyau.
Celasigniequ'ilestprésentédansl'espaceutilisateurentantquechier,/dev/binder,etquelesseulesinteractionspossiblessontdesappelssystèmesurcechier.
Lelisting3.
2listelesopérationssurleschiers,voirlechapitre3de[40],supportésparBinder.
Ellessontlistésdansunestructureappeléefile_operationsquiassocieàchaqueopérationsupportéelafonctioncorrespondante.
Parexemple,lavaleurduchampopencorrespondàlafonc-4.
/drivers/staging/android/binder.
c70CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONClientAppContextBinderDriverServiceAppgetserviceservicerefcallfunc(param)relaycallfunc(param)callreturnrelaycallreturnFigure3.
4–Appeld'uneméthodedistantegrceauBindertion,icibinder_open,quiseraappeléeàchaquefoisqu'unprocessusouvre/dev/binder.
Cellequiaintérêtpournousestlafonctionbinder_ioctl(listing3.
3).
Elleestappeléequandunprocessuseectueunappelsystèmeioctletprendlesargumentsdel'appelsystème.
Ledeuxièmeargumentdelafonction,cmd,corres-pondàlacommandeàexécuterparleBinder.
Binderreconnat5commandes.
—BINDER_WRITE_READestlacommandelaplusimportante.
Ellesertàl'envoietréceptiondedonnées.
—BINDER_SET_MAX_THREADSdénitlenombremaximaldethreadsparpro-cessuspourtraiterlesmessagesreusvialeBinder.
—BINDER_SET_CONTEXT_MGRdénitleContextManager.
Unefoisdéni,ilnepeutêtremodié.
—BINDER_THREAD_EXITnotiel'arrêtd'unthreadutilisépourletraitementdesmessagesreusvialeBinder.
—BINDER_VERSIONretournelenumérodeversionduBinder.
Lorsqu'unprocessusenvoielacommandeBINDER_WRITE_READdanslebutd'envoyerdesdonnées,ildénitunedeuxièmecommandeprécisantletyped'envoi.
Ilexiste14commandes5liéesàl'envoidedonnéesmaisseulesdeuxd'entreellescorrespondentàl'envoidestransactions:BINDER_TRANSACTIONetBINDER_REPLY.
BINDER_TRANSACTIONcorrespondàl'émissiond'unetransac-tiond'unprocessusclientappelantuneméthodedistante.
BINDER_REPLYcorres-pondàl'envoidurésultatdel'appelparleprocessusayantexécutélafonction.
L'envoid'unmessageayantundecesdeuxtypesinitiel'appelàlafonctionbinder_transactionquiimplémentelatroisièmeetlacinquièmeétapesdel'ap-peld'uneméthodedistantecommedécritsurlagure3.
4:callfunc(param)etcallreturn.
Touteactionexécutéeparlenoyausefaitdanslecontexte5.
Voirlafonctionbinder_thread_write3.
4.
ANDROBLARE:BLARESOUSANDROID71d'unprocessusàl'exceptiondesinterruptions6.
Danslecasdesappelssystème,lecontexted'exécutionestceluiduprocessusayantfaitl'appelcequisigniequel'envoidestransactionssefaitdanslecontextedel'émetteur.
LorsqueleBindertransmetunetransactionàunprocessus,ill'ajouteàunelistedetcheàtraiterparceprocessus.
LesprocessusenattentedetransactionconsultentainsicettelistedetchepourtraiterlestransactionsquiluiontététransmisesgrceàlacommandeBINDER_WRITE_READ.
Chacunedestchesauntypedéni.
Ilexiste6typesdetcheentoutdontBINDER_WORK_TRANSAC-TIONquicorrespondautraitementd'unetransactionenattente.
laréceptiond'unetchedecetype,lesinformationsliéesàlatransactionsontenvoyéesauprocessusenespaceutilisateuranqu'ilpuisseexécuterl'appel.
LeBinderestlecurdesIPCsousAndroidmaissonusagen'étaitpascontrléparKBlare.
Ilyadeuxraisonsàcela.
Lapremièreestquesonusagesefaitvial'appelsystèmeioctlorKBlaren'utilisepaslehookpermettantd'interceptercetappel.
LadeuxièmeraisonestqueBinderestunmécanismepropreàAndroid.
Aucuntravailnes'estdoncintéresséàétendreLSMandepouvoircontrlerl'usageduBinderaumomentoùnousnoussommesintéressésauBinderdurantlathèse.
causedecesraisons,KBlareignoraitlesuxd'informationvialeBinderetnepouvaitobserverlescommunicationsentreapplicationsAndroid.
NousprésentonsdanslasectionquisuitcommentKBlareaétéétendupoursuivrelesuxd'informationcausésparsonusage.
1staticconststructfile_operationsbinder_fops=2{3.
owner=THIS_MODULE,4.
poll=binder_poll,5.
unlocked_ioctl=binder_ioctl,6.
mmap=binder_mmap,7.
open=binder_open,8.
flush=binder_flush,9.
release=binder_release,10};Listing3.
2–ListedesopérationssurleschierssupportéesparBinder1staticlongbinder_ioctl(structfile*filp,unsignedintcmd,unsignedlongarg);Listing3.
3–Signaturedelafonctionbinder_ioctl6.
Cen'estjamaisnotrecasdansleBinder72CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION3.
4.
2Suivideuxd'informationdansleBinderPoursuivrelesuxd'informationliéesauxtransactionsvialeBinder,deuxsolutionsontétéenvisagées.
Lapremièresolutionestd'intercepterl'appelsys-tèmeioctlgrceauhookfile_ioctl.
Cettesolutionestlimitéecarellenepermettraitdevoirquel'interactionentrelesprocessuset/dev/binder.
Ornousavonsexpliquéquelevéritableuxs'opéraitentreprocessusetnonentreunprocessuset/dev/binder.
CettelimitationpourraitcependantêtrecontournéenimplémentanttoutlemécanismedetraitementdescommandesenvoyéesviaioctlauBindermaiscetteapprocheestassezlourde.
Ladeuxièmesolution,cellequenousavonsretenu,consisteàétendreLSMandepermettreauxmodulesdesécuritédecontrlerl'envoietlaréceptiondestransactionsvialeBinder.
L'extensiondeLSMquenousavonsapportéconsisteàrajouterunchampsecurityàlastructurereprésentantlestransactionsetdeuxnouveauxhookspourintercepterl'envoietlaréceptiondetransaction.
Toutcommelesmessagesenvoyésdansleslesdemessage,nousconsidéronsquelestransactionssontdesconteneursvolatiles.
Nousavonsainsiajoutéunchampgénériquesecurityàlastructurelesreprésentant.
KBlareutiliseraensuitecechamppourréférencerlestagsassociésàlatransaction.
LesdeuxnouveauxhooksontétérajoutésdanslecodedeBinder7.
Quantauxhooks,nouslesavonsajoutédanslecorpsduBinderpourintercepterleséchangesdetransaction.
Plusprécisément,nousavonsajoutéunhookpourintercepterl'envoid'unetransactionetuneautrepourlaréception.
SousAndroid,KBlareutiliseceshookspoursuivreetcontrlerlesuxd'information8vialeBinder.
Interceptiondel'envoid'unetransactionbinder_transaction_writeNousavonsinsérécehookdanslecorpsdelafonctionbinder_transaction.
CettefonctionestutiliséeparBinderpourtransmettrelestransactionsémisesparlesprocessus.
C'estdanscettefonctionquelanouvelletchecorrespondantàlatransactionestajoutéeàlalistedetcheenattentedudestinataire.
Lehookestinséréavantl'ajoutdelanouvelletche.
DansKBlare,nousavonsdéclaréunefonctioncorrespondantàcehookquipropagelestagsduprocessusverslatransaction.
Lafonctioncréeuneinstancedelastructurecontenantletagdesconteneursd'information,l'associeàlatran-sactionetcopielestagsduprocessus(itagetxptag)verslastructurecontenantlestagsdelatransaction.
Nousconsidéronsquelestransactionsontledroitdecontenirn'importequelleinformation.
Aucuncontrlen'estainsieectué.
Interceptiondelaréceptiond'unetransactionbinder_thread_readLedeuxièmehookestinsérédanslecorpsdelafonctionbinder_thre-ad_read.
Cettefonctionestutiliséepourrécupérerettransmettreauprocessusdestinataireenespaceutilisateurlestchesdanslalisted'attente.
Lafonction7.
drivers/staging/android/binder8.
Fonctionscorrespondantesimplémentéesdanssecurity/blare/binder_ops.
c3.
4.
ANDROBLARE:BLARESOUSANDROID73associéeàcehookpropagelestags(itagetxptag)associésàlatransactionversleprocessusdestinataire.
Uncontrledelalégalitéduuxesteectuée.
Sileuxestillégalalorsunealerteestlevée.
Anquel'alertesoitpluscompréhensible,leuxcorrespondantàl'alerteestdécritecommeunuxdeprocessusayantémislatransactionversleprocessusdestinataire.
Deplus,unetransactionestunconteneurvolatileimplémentésouslaformed'unestructureuniquementconnuedunoyau.
Sadescriptiondansunealerten'apporteraainsiaucuneinformationutileàunanalyste.
Selonlestransactions,lesinformationsliéesàl'émetteurnesontpasajoutéesdanslatransaction.
C'estlecas,parexempledesréponsesretournéesparunappeldistant.
NousavonsmodiéleBinderanquecetteinformationsoittoujourscomprisedanslatransaction.
Remarquesurlesuivideuxd'informationdansleBinderUneautremanièredepropagerlestagsentrelesprocessusauraitétédelefairedirectementàl'envoidelatransactionparleprocessusémetteur.
Ce-pendant,nousavonsoptépourunsuivideuxendeuxtemps.
Lestagssontpropagésduprocessusémetteurverslatransactionpuisdelatransactionversleprocessusdestinataire.
Chaqueactioneectuéeparlenoyausefaittoujoursdanslecontexted'unprocessus.
Pourlesappelssystème,ils'agitduproces-susayanteectuél'appelsystème.
Lorsdel'envoidelatransaction,leBinders'exécuteainsidanslecontexteduprocessusémetteur.
Propagerdirectementlestagsàl'envoisigniemodierlastructureassociéeauprocessusdestinatairetoutenétantdanslecontextedel'émetteur.
Cettepratiquen'estcependantpasconseilléedanslaprogrammationnoyau.
Nousaurionségalementpufairelapropagationlorsdutraitementdestchesdelalisted'attente.
Celasefaitdanslecontexteduprocessusdestinatairemaislerisqueestlapossibilitédechangementducontenuduprocessusémetteurentrel'envoietlaréceptiondelatransaction.
Celapourraitparexemplepermettred'échangerdesdonnéestoutenfaisantcroireàKBlarequ'aucuned'entreellesn'estsensible.
Enoptantpourlapropagationendeuxtempsdestags,nousnemodionspaslastructured'unprocessusautrequeceluiquisertdecontexted'exécutionetnousmaintenonsunecohérenceentrelesidentiantsdesinformationspartantduprocessusémetteuretceuxdesinformationsrécupéréesparledestinataire.
Andeprendreencomptelesuxd'informations'opérantvialeBinder,nousavonsétenduleframeworkLSM.
Nousavonsajoutédeuxnouveauxhookspermettantd'intercepterl'envoietlatransmissiondestransactions.
DanslecodeduBinder,lestransactionsreprésententlesappelsdeméthodesdistantesainsiqueleretourdecesappels.
NousavonsensuiteajoutédeuxfonctionssupplémentairesàKBlarequicorrespondentàcesnouveauxhookseteectuentlapropagationdestagsentrelesapplicationsquicommuniquentvialeBinder.
74CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION3.
4.
3ExécutiondesapplicationsAndroid3.
4.
3.
1InterprétationdecodevsexécutionDansBlare,lapriseencomptedel'exécutiond'uncodesefaiteninter-ceptantlesappelssystèmeexecveetmmapquandlapageestmarquéecommeétantexécutable.
SousAndroid,àl'exceptiondesapplicationsnécessairesaufonctionnementsystème,lesapplicationstournentauseind'instancedelama-chinevirtuelledalvik.
Pourcomprendrecommentcesinstancessontcréées,ilestnécessairedecomprendrelaséquencededémarraged'Android.
Lagure3.
5illustrecetteséquence.
CommepourlessystèmesdetypeLinux,lepremierprocessuslancéestinitquiestencharged'initialiserl'environnementAndroid.
Lesinitialisationsqu'ileectuesontdéniesdansleschiersinit.
*rcàlaracinedusystèmedechier.
Ildénitparexemplelesvariablesd'environnementetmontelespartitions.
Illanceégalementlesdiérentsprocessusdémonsdusystèmetelsqueservicemanager,surfaceflingeretZygote.
sonlancement,cedernierlanceuneinstancedelamachinevirtuelledalvik,créeunsocketserveur,chargeunensemblederessourcesetclassesJava,sedupliquepourcréerleprocessussystem_serveretattendlesconnexionssurlesocketcréé.
System_serverestleprocessusquiexécutelesdiérentsservicesdusystème(ex:ActivityManager).
sacréation,illeslancedoncetlesenregistreauprèsdeservicemanageranqu'ilspuissentêtreappelésparlesdiérentesapplicationsdusystème.
Zygoteestunprocessusclépourl'exécutiondesdiérentesapplicationsAn-droidcarc'estàpartirdeceprocessusquelesautresapplicationssontlancées.
Parexemple,lorsquel'utilisateurlanceunenouvelleapplicationvialemenuprincipaldutéléphone,l'applicationLancherappellelafonctionstartActivitydéniedansActivityManager.
l'exécutiondelaméthode,cedernierenvoieunerequêteàZygotepourlancerl'application.
laréceptiondelarequête,cedernierseduplique9etlancedansleprocessuslslanouvelleapplication.
Aul'exécutiond'unenouvelleapplication,leprocessusl'exécutantchargelecodedel'applicationenmémoire.
Cecodeestsousformatdalviketn'estpasexécuté,comprendrevial'appelsystèmeexecveoummapetmarquéexécutable,maischargécommeunesimpledonnéeenmémoire.
L'exécutiondesapplicationssetraduitparlalecturedeleurcodeenmémoireetsoninterprétationparlamachinevirtuelledalvik.
Commeaucunappelsystèmesynonymed'exécutiondecodepourBlaren'esteectuéalorsBlare,danssaversionavantnosmodi-cations,nedétectaitjamaisl'exécutiondesapplicationsAndroid.
Celaavaitdeuxconséquencesdirectes.
Premièrement,l'exécutiondesapplicationsAndroiddontlecodeestmarquécommesensiblenecausaitpaslemarquagedespro-cessuscommeexécutantducodesensible.
L'itagdesprocessusexécutantlesapplicationsAndroidnecontenaitjamaisd'identiantnégatif.
Ensuite,ilétaitimpossibled'appliquerunepolitiqueparapplicationcardupointdevuedeBlareilsexécutenttouslemêmeprogramme(app_process).
9.
appelsystèmefork3.
4.
ANDROBLARE:BLARESOUSANDROID75Nativedaemons-servicemanager-netd-vold-mediaserver-app_process-XZygote-etcInit-Setupenvvariables-mountpartitions-startnativedaemons-etcZygote-Startadalvikvirtualmachine-Executemainfunctionofzygote-Createaserversocket-Preloadresourcesandclasses-Startsystem_server-Waitforapplicationlaunchrequestsystem_server-Launchservices(ActivityManager,Clipboardetc)-RegisterservicesAppAppAppstartActivityforkforkFigure3.
5–Séquencededémarraged'Android76CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION3.
4.
3.
2Priseencomptedel'exécutiondesapplicationsAndroidPourdétecterl'exécutiondesapplications,nousavonsintroduitunsystèmedecoopérationentrelamachinevirtuelleDalviketKBlare.
Ilpermetàlama-chinevirtuelledenotierKBlarequandellevainterpréterducodeetdoncpermettreàKBlaredevoirquanduneapplicationestexécutée.
laréceptiondelanotication,KBlaremetainsiàjourlestagsconvenablementetappliquelapolitiquedeuxassociéeàl'application.
L'exécutiond'uneapplicationsetraduitparlechargementdesressourcesdel'applicationenmémoireainsiquedesoncode.
Lorsqu'uneapplicationAndroidestinstallée,lesystèmeextraitàpartirdesonapkuneversionoptimiséeducode.
C'estcetteversionoptimiséequiestchargéeenmémoireetinterprétéeparlamachinevirtuelle.
Unbonpointd'insertionpourlanoticationsembleainsiêtrelechargementdecetteversionoptimisée.
Aucunedocumentationtechniquen'existesurlefonctionnementdeDalvikmaisenanalysantsoncodesource,noustrouvonsquelechargementesteectuéparlafonctiondvmDexFileOpenFromFd(listing3.
4).
Cettefonctionchargeenmémoirelecodeoptimiséd'uneappli-cationetanalysesyntaxiquementsoncontenu.
Elleestappeléepardeuxautrefonctions10quiouvrentunchierjaroudex,créelaversionoptimiséeducodeàpartirducontenuduchierouvertetlechargeenmémoire.
Celacorrespondbienàl'exécutiond'uneapplication.
Nousavonsainsiajoutélanotication,fonctionodex_is_mapped,aucorpsdelafonctiondvmDexFileOpenFromFd.
Lagure3.
6illustrelesdiérentesétapesdelapriseencomptedel'exé-cutiondel'application.
Lestagsvertetbleucorrespondentrespectivementaucontenuduchier.
dexetàcemêmecontenulorsqu'ilestexécutéparunpro-cessus.
Letagmarroncorrespondàlapolitiquedesécuritédel'application.
Lesystèmedenoticationestsimilaireàunearchitectureclient/serveur.
Audé-marragedusystème,KBlaresemetenécoutedesnoticationsprovenantdesmachinesvirtuellesDalvik.
(a)Lorsqu'unprocessusinitiel'exécutiond'uneap-plication(chargementduchier.
dexenmémoire),ellechargelecontenuduchier.
dexenmémoire.
KBlarevoitcechargementetmarqueleprocessusquivaexécuterl'applicationcommecontenantlecontenuduchier.
dex.
(b)LamachinevirtuellenotieensuiteKBlarequ'ellevainterpréterlecontenudu-chier.
dex,c'est-à-direl'exécuter.
(c)et(d)laréceptiondelanotication,KBlareconsidèrequeleprocessuscontenantlamachinevirtuelleayantenvoyéelanoticationvaexécuterl'applicationdontlecodeeststockédanslechier.
dex.
KBlaremetdoncàjourlestagsduprocessus.
Ilindiquequeleprocessuscontientlaversionexécutéeducontenuduchier.
dexetappliqueàceprocessuslapolitiquedeuxassociéeaucodequelamachinevirtuellevainterpréter.
Implémentationdelanoticationdel'exécutiond'uneapplicationLanoticationestenvoyéegrceàuncanaldecommunicationentrelama-chinevirtuelleDalviketKBlare.
CecanalestimplémentéavecGenericNet-10.
dvmJarFileOpenetdvmRawDexFileOpenrespectivementdéniesdansdalvik/vm/JarFile.
cppetdalvik/vm/RawDexFile.
cpp3.
4.
ANDROBLARE:BLARESOUSANDROID77VMinit:-Loadressources-Loadoptimzeddex-NotifyKBlare-.
.
.
KBlare:-Listentonotication-Uponnotication:*Gettagsassociatedtotheodexle*Updatetagsassociatedtotheprocessodexle(a)(b)(c)(d)Figure3.
6–Mécanismedenoticationdel'exécutiond'uneapplicationAn-droidlink[52]quiluiutiliselessocketsNetlink[63].
Netlinkestunmécanismedecommunicationquipermetdefairecommuniquerentreeuxdesmorceauxdecodequisontdanslenoyauouenespaceutilisateur.
LacommunicationentrecesdiérentesentitéssefontdansdesbusNetlink,appeléségalementproto-coles.
IlexisteunnombredénidebusdanslessystèmesLinuxetleurnombremaximumestlimitéà32.
Certainsd'entreeuxsontparexempleutiliséspardesoutilsdegestiondutracréseautelsqueiproute2[53].
GenericNetlinkestunmécanismedecommunicationbasésurNetlinketplusprécisémentunmulti-plexeurconstruitaudessusd'unbusNetlink[76].
Lescanauxdecommunicationsontappelésfamillesetilestpossibled'endénirjusqu'à65520pourunseuletmêmebusNetlink.
Nousprésentonsdanscequisuitlesystèmedecoopéra-tionpermettantdefairecommuniquerlesmachinesvirtuellesDalviketKBlare.
Plusprécisément,nousprésentonsladéclarationdelafamilleservantdecanaldecommunication,lecomportementassociéàlaréceptiond'unenoticationetlamiseenattente.
Commeécritprécédemment,lesystèmedenoticationestunearchitectureclient/serveur.
KBlareestleserveurquisemetenattentedesnoticationsd'exécutiond'applicationetlesmachinesvirtuellesDalviksontlesclientesquienvoientlesnoticationsauserveur.
Lacréationd'unserveurd'écouteavecGenericNetlinksefaitentroisétapes:créationd'unefamille,dénitiondescommandesreconnuesparleserveuretenregistrementdelafamille.
AnqueKBlarepuisserecevoirlesnotications,nousdénissonsdanssoncodeunefamilleservantdecanaldecommunication.
Lelisting3.
5montreladéclarationdelafamille.
Nousdéclaronsenpremierlesattributspossiblesd'unmessage.
Nousendéclaronsdeux:DOC_EXMPL_A_MSGetDOC_EXMPL_A_INT.
En-suite,nousdénissonsletypeassociéauxattributs.
Lepremierattributestune78CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION1intdvmDexFileOpenFromFd(intfd,DvmDex**ppDvmDex)2{3DvmDex*pDvmDex;4DexFile*pDexFile;5MemMappingmemMap;6intparseFlags=kDexParseDefault;7intresult=-1;89if(gDvm.
verifyDexChecksum)10parseFlags|=kDexParseVerifyChecksum;1112if(lseek(fd,0,SEEK_SET)attrs[DOC_EXMPL_A_INT];25if(na){26mydata=(int*)nla_data(na);27if(!
mydata)28printk(KERN_INFO"[BLARE_NETLINK]errorwhile"29"receivingdata\n");30}else{31printk(KERN_INFO"[BLARE_NETLINK]nofdfromuserspace");32gotoout;33}3435rcu_read_lock();36dexfile=fcheck(*mydata);37if(dexfile){38interp_exec(dexfile);39}else{40printk(KERN_INFO"[BLARE_NETLINK]couldnotfind"41"structfileof%d\n",*mydata);42}43rcu_read_unlock();44out:45return0;46}4748/*Mapcommandandfunction*/49structgenl_opsdoc_exmpl_gnl_ops_exec_dex={50.
cmd=DOC_EXMPL_C_EXEC_DEX,51.
flags=0,52.
policy=doc_exmpl_genl_policy,53.
doit=doc_exmpl_exec_dex,54.
dumpit=NULL,55};Listing3.
6–Dénitiond'unecommandeGenericNetlinkpournotierl'exécu-tiond'uneapplication82CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION1staticint__initnetlink_init(){2intrc;3printk(KERN_INFO"Blareinitgenericnetlink");45/*registernewfamily*/6rc=genl_register_family(&doc_exmpl_gnl_family);7if(rc!
=0)8gotofailure;910/*registeroperations*/11genl_register_ops(&doc_exmpl_gnl_family,12&doc_exmpl_gnl_ops_exec_dex);1314return0;1516failure:17printk(KERN_INFO"[BLARE_NETLINK]anerroroccuredwhile"18"insertingthegenericnetlinkexamplemodule\n");19return-1;20}2122__initcall(netlink_init);Listing3.
7–Enregistrementdelafamilleservantàlanoticationd'exécutiondesapplications3.
4.
ANDROBLARE:BLARESOUSANDROID831intodex_is_mapped(intfd){2intnl_sd;//Netlinksocket3intid;4intr;5struct{6structnlmsghdrn;7structgenlmsghdrg;8charbuf[256];9}req;10structnlattr*na;1112/*Gettheidentifierofthefamily*/13nl_sd=create_nl_socket(NETLINK_GENERIC,0);14id=get_family_id(nl_sd);1516/*Initnetlinkheader*/17.
.
.
1819/*Initgenericnetlinkheader*/20req.
g.
cmd=DOC_EXMPL_EXEC_DEX;2122/*Composemessage*/23na=(structnlattr*)GENLMSG_DATA(&req);24na->nla_type=DOC_EXMPL_A_INT;25intmlength=sizeof(int);26na->nla_len=mlength+NLA_HDRLEN;27memcpy(NLA_DATA(na),&fd,mlength);28req.
n.
nlmsg_len+=NLMSG_ALIGN(na->nla_len);2930/*Sendmessage*/31structsockaddr_nlnladdr;32memset(&nladdr,0,sizeof(nladdr));33nladdr.
nl_family=AF_NETLINK;34r=sendto(nl_sd,(char*)&req,req.
n.
nlmsg_len,0,35(structsockaddr*)&nladdr,sizeof(nladdr));36close(nl_sd);37return0;38}Listing3.
8–Noticationdel'exécutiond'uneapplicationparlamachinevir-tuelleDalvik84CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATION3.
4.
4DescriptiondesuxobservésKBlaredécritlesuximpliquantdesdonnéessensiblesdansunformatassezverbeuxetsansfournirassezd'informationparfois.
Lagure3.
7estunexemplededescriptiondeuxémisparKBlarelorsqu'ildétecteunuxd'unchierversunprocessus.
Parmilesinformationsquenousaurionsaiméavoirétaientleche-mincompletduchier,sonidentiantetlesinformationsliéesauprocessus.
Avoirlechemincompletduchierpermetàunanalysted'identieravecpré-cisionlechierimpliquédansleux.
L'identiantduchier,soninode,peutégalements'avérerutilesilenomduchierestamenéàchangeraucoursdel'exécutiondusystème.
SousAndroid,nousavonsainsimislesalertessouslaformedécriteen-gure3.
8.
Unmessageestdécoupéentroispartiesséparéesparlecaractère'>'.
Lesdeuxpremièrespartiesdécriventleconteneursourceetdestinationduux.
C_TYPEreprésenteletypeduconteneur(chier,socketetprocessus).
C_NAMEestlenomduconteneur.
Danslecasdessockets,ils'agitdel'adresseIPasso-ciéeàlasocket.
Danslecasdesprocessus,nousdonnonsàlafoislenomduthreadcourantetduprocessus.
Lesdeuxnomspeuventdiérer.
Parexemple,lesservicesdanssystem_servertournentdansdesthreadsavecdesnomsdif-férents.
Avoirlenomdesdeuxpeutainsiaideràcomprendrequellepartiedel'applicationestàl'origineduux.
3.
4.
5OutilsenespaceutilisateurIlexistesousLinuxdesoutilsenlignedecommandepourmanipulerlestagsBlareassociésauxchiers.
Leurcodeestdisponibledanslabranchemasterdudéptkblare-tools[38].
CesoutilsontétéportéssousAndroid,brancheandroid_versiondumêmedépt,etuneversionsousformed'extensiond'unnavigateurdechierAndroidaégalementétédéveloppéelorsd'unstagede2moisparQ.
Dion.
L'extensionpermetdemanipulervial'interfacetactiled'unappareilAndroidlestagsassociésauxchiersetéviteainsid'avoiràouvriruneinterfaceenlignedecommande.
Danslecadred'unautrestage,T.
SaliouadéveloppéBlarePolicyManager(BPM).
BPMimplémentelesfonctionsdecompositionetdevéricationdespolitiquesécritesenBSPLetappliquelapolitiquerésultantdelacompositionsurlesystème.
NousavonsutiliséBPMdans[20]pourcomposeretappliquerlespolitiquesd'applicationtiercesuruntéléphoneavecl'environnementAndroBlare.
Processwithpid98runningcatmadeanillegalREADaccesstofiletoto.
txtFigure3.
7–ExempledemessagelevéparBlaresousLinux3.
5.
ANDROBLARE:ANALYSED'APPLICATIONSANDROID85C_TYPEC_NAMEC_ID>C_TYPEC_NAMEC_ID>ITAGFigure3.
8–FormatdesuxobservésparBlaresousAndroid3.
5AndroBlare:environnementd'analysed'ap-plicationsAndroidDanscettethèse,nousavonsutiliséAndroBlareentantqueenvironnementd'analysed'applicationAndroid.
Lagure3.
9illustrel'environnementainsiquel'usagequenousenauronsdansleschapitressuivants.
Pouranalyserlesappli-cations,nousutilisonsuntéléphoneNexusSfaisanttournerlaversionAOSPd'AndroidIceCreamSandwich.
Nousavonsajoutéautéléphonetoutl'environ-nementAndroBlare:lemoduledesécuritédanslenoyau,lesystèmedenotica-tiond'exécutiond'applicationAndroidetlesoutilsutilisateurspourmanipulerlestags.
NousavonségalementrajoutélesapplicationSuperUseranderece-voirunenoticationvisuelleàchaquefoisqu'uneapplicationdemandelesaccèsrootainsiquebusybox,unéquivalentpluscompletdetoolbox.
Danscetenvironnement,nousexécutonstouteapplicationdontnoussouhai-tonsanalyserlecomportement.
Cecomportementestlapropagationdesdonnéesdel'applicationdanslesystèmeetestobtenugrceausuivideuxd'informationeectuéparAndroBlare.
Pourchaqueapplicationàanalyser,nousrépétonsleprocessussuivant.
Nousinstallonsl'applicationsurletéléphonepuismarquonssonchierapkavecunidentiantunique.
Nousconsidéronsquelechierapkestlasourcedesdonnéesappartenantàl'applicationcarilcontientàlafoissoncodeetlesressourcesqu'elleutilisetellesquelesimages.
Nousexécutonsensuitel'applicationetobservonsavecAndroBlarecommentlesdonnéesdel'applicationsepropagentdanslesystème.
partirdesuxobservés,nouspouvonseectuerdeuxtypesd'action:construireunereprésentationcompacteethumainementcompréhensibledesuxobservés(chapitre4)oudétecterl'exécutiond'instancedemalware(chapitre5).
Nouslaissonslestagsdesautresconteneursd'informationàleurvaleurpardéfaut,ensemblevide,saufpourleschiersservicemanageretsurfaceflingerdans/system/bin.
l'exceptiondecesdeuxchiers,lesautreconteneursnecontiennentdoncaucuneinformationsensibledupointdevued'AndroBlareetn'ontaucunepolitiquedeuxd'information.
Quantauxdeuxchiers,nousleurassignonsl'itagt0upoursignierquelesprocessuslesexécutantsontàignorerpendantlesuivideuxd'information.
L'identiant0n'estpasutilitédanslemodèledeBlarepouridentieruneinformationàsurveiller.
Dansl'implémen-tation,nousnousservonsdecettevaleurpourindiqueràBlarequandignorerdesuxd'information.
Lebutestd'éviterunetropgrandesurapproximationdesuxobservésparAndroBlare.
Lesapplicationsservicemanageretsur-faceflingersontdeuxprocessusclésdusystèmeAndroid.
Lepremierestunserviced'annuairerépertorianttouslesautresservicesdusystème.
Lesapplica-tionssouhaitantutilisercesservicesdoiventdemanderauservicemanagerleurréférenceavantdepouvoirlesutiliser.
Lesecondestenchargededessinersur86CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONl'écrantouteinterfacegraphique.
Lesapplicationssontuniquementconscientsdecequ'ilsveulentacheràl'écran.
Ellesletransmettentàsurfaceflingerquiluicomposeralesachagesdesdiérentesapplicationsetacheralerendunalsurl'écrandel'appareil.
3.
5.
ANDROBLARE:ANALYSED'APPLICATIONSANDROID87AndroidKernelUserspaceBLAREAnalyzedapplicationInformationcontainer1.
.
.
InformationcontainernAnalysedapplicationapkleBlarelogParserMalwaredetectionTrustedcontainerssurfaceingerservicemanagerFigure3.
9–AndroBlare:environnementd'analysed'applicationAndroid88CHAPITRE3.
BLARE:UNMONITEURDEFLUXD'INFORMATIONRésuméDanscechapitre,nousavonsprésentéBlareunsystèmededétectiond'in-trusionparamétréparunepolitiquedeuxd'information,lemodèlesurlequelilestbaséetleprocessusdeportagedeBlaresousAndroid(AndroBlare).
An-droBlareutiliselemêmemodèlethéoriquequeBlaremaisdièredecedernierauniveaudel'implémentation.
LorsduportagedeBlaresousAndroid,nousavonsajoutélapriseencomptededeuxtypesdeuxd'information:uxd'in-formationvialeBinderetl'interprétationducodedesapplicationsAndroidparlamachinevirtuelleDalvik.
LesapplicationsAndroidn'utilisentpaslesméca-nismesdecommunicationfournisparlenoyauLinuxpourcommuniquerentreelles.
laplace,ellesutilisentdiérentsmécanismesfournisparleframeworkJavaquireposenttoussurleBinder.
Andesuivrelesuxd'informationentrelesapplications,nousavonsprisencomptecemécanismedecommunicationdansAndroBlare.
SapriseencompteaconsistéàajouterdeuxnouveauxhooksàLSMetàdénirdanslecodedeKBlarelesfonctionscorrespondantàceshooks.
Ledeuxièmetypedeuxd'informationprisencomptedansAndroBlareconcernel'exécutiondesapplicationsetplusprécisémentl'interprétationdeleurcodeparlamachinevirtuelleDalvik.
LesapplicationsAndroidnesontpasdesapplicationsnativesetleurexécutionétaitdoncinvisibleàBlare.
Lorsqu'uneapplicationestexécutée,soncodeestenréalitéinterprétéeparlamachinevirtuelleDalvik.
Leproblèmeposéparcetteinterprétationducodeestquel'exécutionétaitinvisibleetdoncKBlarenepouvaitmettreàjourcorrectementlestagsdesprocessusexécutantducodesensible.
Aucunprocessusn'étaitmar-quécommeexécutantducodeetaucunepolitiquenepouvaitêtreappliquéeparapplication.
AndepermetteàKBlared'observerl'exécutiond'uneapplicationAndroid,nousavonsainsiajoutéunmécanismedecoopérationentrelamachinevirtuelleDalviketKBlare.
CettecoopérationconsisteànotierKBlarevialessocketsNetlinkdel'exécutiond'uneapplicationparlamachinevirtuelle.
LorsdelaprésentationdumodèledeBlare,nousavonségalementexpliquécommentnousavonsdénimanuellementunepolitiquedeuxd'informationpourlesystèmeAndroid.
Lapolitiqueidentie150informationsàprotégeret186conteneursd'informationpouvantaccéderàcesinformationsoulesstocker.
Cettepolitiqueafaitl'objetd'unepublicationàICC2012[16].
Chapitre4GraphesdeuxsystèmePourchaqueuxd'informationobservéquiimpliqueunedonnéesensible,Blareajouteuneentréedécrivantleuxdansunjournal.
Aufuretàmesurequelesystèmes'exécute,letailledujournalaugmenteetpeutdevenirrapide-mentdicileàanalyserpourunêtrehumain.
Quelquesminutesd'exécutiondusystèmepeutsurepouravoirdesmilliersd'entréesdanslejournaldeBlare.
NousproposonsdoncdanscechapitreunestructureappeléeSystemFlowGraphpourreprésenterlesuxobservésdemanièrepluscompacteetpluscompréhen-sible.
4.
1GraphedeuxsystèmeUngraphedeuxsystème,quenousabrégeonsSFG(SystemFlowGraph)danslerestedudocument,estunmultigrapheorientéG"pV,Eqoùlesnudsreprésententdesconteneursd'informationetlesarcsdesuxd'informationentrelesconteneurs.
UnnudvPVatroisattributsv.
type,v.
nameetv.
idquireprésententrespectivementletypeduconteneur(chier,processusetsocket)correspondantaunud,sonnometsonidentiantduconteneurdanslesystème.
Selonletypeduconteneur,lenomdunudestsoitlechemincompletduchier,lenomduprocessusconcaténéàceluiduthreadoul'adresseIPassociéeàlasocket.
L'identiantestlenumérod'i-nodepourleschiersetlePIDpourlesprocessus.
UnarcePEadeuxattributse.
timestampete.
flowquicorrespondentrespectivementàlalistedesmomentsauxquelsleuxaétéobservéetlesidentiantsdesinformationsimpliquéesdansleux.
Unarcreprésenteunuxd'informationuniqueduconteneurreprésentéparsasourceversleconteneurreprésentéparsadestination.
Leuxpeutêtreobservéplusieursfoisetinclutàchaqueobservationlesmêmesinformationssensibles,i.
elesidentiantsdesinformationsquisepropagentsontlesmêmesàchaqueobservation.
UnSFGestunmultigraphecarilpeutcontenirdesarcsparallèles.
Desarcsparallèlessontdesarcsreliantlesmêmenuds.
UnSFGadeuxarcsparallèles8990CHAPITRE4.
GRAPHESDEFLUXSYSTME[1]fileblob18>processcat19>{1,2}[2]processwoman20>fileblob18{3}[3]processwoman20>fileblob18{3}[4]fileblob18>processcat19>{1,2,3}Figure4.
1–Exempledeuxd'informationcausantl'apparitiond'arcsparal-lèlesdanslesSFGFigure4.
2–ExempledeSFGavecdesarcsparallèleslorsqueBlareaobservédeuxuxd'informationayantlamêmesourceetlamêmedestinationmaisn'impliquantpaslesmêmesinformationssensibles.
Lagure4.
1décritdesuxd'informationcausantlacréationd'arcsparallèlesdanslesSFG.
Lapremièreetdernièreentréesdécriventdesuxayantlamêmesourceetlamêmedestination:deblobàcat.
Cependant,lecontenudeblobaétémodiéparledeuxièmeettroisièmeuxobservésparBlareetainsiledernieruximpliqueuneinformationenplusparrapportàlapremière.
Cesdeuxuxnepeuventdoncêtreconsidéréscommeunuxuniqueetsontreprésentésavecdeuxarcs.
Ledeuxièmeetletroisièmeuximpliquentlesmêmesinformationssensiblesetreprésententdoncunuxd'informationunique.
Ilssontreprésentésparununiquearc.
Graphedeuxsystèmevs.
graphededépendanceDans[66],SamuelT.
KingetPeterM.
Chenutilisentungraphededépen-dancepouranalyserlesintrusionsdansunsystème.
Ungraphededépendancedécritsouslaformed'ungraphelesuxd'informationentrelesobjetsdusys-tème.
Lesnudssontlesobjetsdusystèmeetunarcentredeuxnudssigniequ'ilyaeuunuxd'informationentrelesobjetsreprésentésparlesnudssourceetdestinationdel'arc.
Lorsqu'uneintrusionaétédétectéesurunobjetdusystème,ilsconstruisentlegraphededépendanceetl'analysentand'avoirundébutdediagnosticdel'intrusion.
Legraphededépendanceestconstruitàpartirdesuxd'informationquionteulieujusqu'àladétectiondel'intrusionetsaconstructionestsimilaireàcelled'unSFG.
SiunSFGetungraphededépendancedécriventtouslesdeuxdesuxd'informationentrelesobjetsdusystème,leSFGapportecependantplusde4.
1.
GRAPHEDEFLUXSYSTME91précisioncarilestpluscentrésurlesinformationsquenel'estungraphededépendance.
Ungraphededépendanceprendencomptetoutuxd'informations'opérantdanslesystèmeetnefaitaucunedistinctionentrelesinformationsquisepropagent.
Parcontre,unSFGluineprendraencomptequelesuxd'informationimpliquantlesdonnéesàsurveillerdanslesystèmecequipermetdemieuxltrerlesuxd'informationàanalyserlorsd'uneintrusionetrac-courcirladuréedel'analyse.
Nousdémontronscegainenreprésentantlasuited'évènementsuivanteavecunSFGetungraphededépendancepouranalyseruneintrusion.
Soientunprocessusserverexécutantuneapplicationtraitantdesdonnéesàlademanded'applicationsclientesetfilexunchierdontl'accèsestlimitéàserveretdontl'intégritédoitêtrepréservée.
Surlemêmesystèmetournentnprocessusbéninsexécutantdiérentsclientsdeserver.
chaquerequêteclientequeserverreoit,serversedupliqueetattribueletraitementdelarequêteauprocessuslsrésultantdeladuplication.
Unautreprocessusattackerexécuteégalementuneapplicationclientedeserversurlesystèmemaiscontrairementauxautresclients,ils'agitd'unprocessusmalveillantdontlebutdecorromprelecontenudefilex.
Pourcorromprelecontenudefilex,ilenvoieunerequêtemalicieuseàserverquilorsdesontraitementvaforcerleprocessuslsdeserveràcorromprefilex.
Noussupposonsqueladétectionaitlieuaumomentdelacorruptionetquel'attaquesoitmenéeseulementaprèsquelesnprocessusaientchacunenvoyéaumoinsunerequêteauserveur.
Cettedernièresuppositionpermetd'avoirlepiredescasdanslorsdel'analysecartouslesclientssontd'éventuelssuspects.
Ensupposantquecesévènementssesoientpassésdansl'environnementd'analyseutiliséedans[66],nousconstruisonslegraphededépendanceillus-trédanslagure4.
3.
a.
Enanalysantcegraphe,leseuldiagnosticquenousdéduisonsestquel'undesprocessusclientsapuinuencerleserveuràmodierlecontenudefilex.
Touslesprocessusclientssontdepotentielssuspectscarilsonttousenvoyésdesdonnéesauserveuravantquel'attaquenesoitdétectée.
Sinoussupposonscettefoisquelesmêmeévènementssesoientproduitsdansunenvironnement(Andro)Blareetquepourchaqueclientunidentiantuniqueestassociéauxdonnéesqu'ilenvoiealorsnousaurionsunSFGillustrédanslagure4.
3.
b.
Noussupposonsquel'identiantxestassociéauxdonnéesprovenantdel'applicationmalveillante.
EnanalysantleSFG,nousdéduisonsquefilexaétécontaminéavecdesdonnéesidentiéesparx.
EnltrantleSFGpournegarderquelesarcsimpliquantlesdonnéesidentiéesparx,nousobtenonslapartieengrasduSFGquiindiqueclairementqueleprocessusattackerestàl'originedel'attaque.
92CHAPITRE4.
GRAPHESDEFLUXSYSTMEproc1server.
.
.
procnattackerchild1.
.
.
childnchildlexproc1server{1}.
.
.
procn{n}attacker{x}child1{1}.
.
.
childn{n}child{x}lex{x}(a)(b)Figure4.
3–GraphededépendanceetSFGreprésentantlesuxd'informationayantprécédélacorruptiond'unchierfilex4.
2QuelquesopérationsutilessurlesSFGDansleschapitressuivants,nouseectueronscertainesopérationssurlesSFG.
Nousprésentonsdanscettesectioncesopérationsquinousservirontparlasuite.
4.
2.
1IntersectiondedeuxSFG:g1[g2L'intersectiondedeuxSFGestleSFGdontlesarcssontl'ensembledesarcsencommunauxdeuxSFG.
Lanotiond'arcsencommundedeuxSFGdésignelefaitqu'unepartiedesarcsdesdeuxSFGsontlesmêmes.
Nousconsidéronsqu'unarce1Pg1estlemêmequ'unarce2Pg2si:—lesdeuxarcsimpliquentlesmêmeinformationsdansleuxdécritparchacundesarcs;—leursnudsdedépartrespectifsreprésententlemêmeconteneurd'infor-mation;—leursnudsd'arrivéerespectifsreprésententlemêmeconteneurd'infor-mation.
Deuxnudsreprésentantlemêmeconteneurd'informationdoiventavoirlemêmetypeetlemêmenom.
Nousneprenonspasencomptel'identiantsystèmedesconteneursd'informationcarilssontspéciquesàchaquesystèmeouàuneexécution.
Unprocessusn'existetoutauplusqueletempsd'exécutiondusystème.
Sonidentiantestdoncliéàcetteexécution.
L'identiantd'unchierestliéausystèmeoùilsetrouve.
Ilestgénéréautomatiquementàlacréationduchier.
Unmêmechiersurdeuxsystèmesdiérentsadoncdeuxidentiantsdiérents.
Danslepiredescas,lecotdecetteopérationestdel'ordredeOpnmq,netmétantlenombred'arcdansg1etg2,carnouscomparonsdeuxàdeuxles4.
3.
CONSTRUCTIOND'UNGRAPHEDEFLUXSYSTME93arcsdesdeuxSFG.
4.
2.
2Inclusiond'unSFGdansunautre:g1g2SoientdeuxSFGg1etg2.
Nousconsidéronsqueg1estinclusdansg2sitouslesarcsdeg1sontdesarcsencommunavecg2.
Toutcommel'intersection,lecotdecetteopérationestdanslepiredescasdel'ordredeOpnmq,netmétantlenombred'arcsdesdeuxSFG.
4.
2.
3Nudsetarcsd'unSFGNousdénissionségalementlesfonctionsnodeetedgescommeétantlesfonctionsretournantrespectivementl'ensembledesnudsetdesarcsd'unSFG.
4.
3Constructiond'ungraphedeuxsystèmePourobtenirlareprésentationcompactedujournaldeBlare,nousavonsdéveloppéunoutilquiprendenentréeunjournaldeBlareetdonneensortielareprésentationsousformedeSFG.
L'algorithme1décritlatransformationdujournalenSFG.
Nousdénissonslafonctionto_edgecommeétantunefonctionquicalculel'arccorrespondantàuneentréed'unjournaldeBlareetutilisonsl'opérationpourexprimerlefaitquedeuxarcsreprésententlemêmeuxd'informationunique.
Deuxarcsreprésententlemêmeuxd'informationuniquesileursnudssourcesreprésententlemêmeconteneurd'informationainsiqueleursnuddedestination.
Durantlaconstructiond'unSFG,nousconsidéronsquedeuxnudsv1etv2représententlemêmeconteneurd'informationsil'undescassuivantsestvrai:—v1etv2sontdeschiers,v1.
idestégalàv2.
idetleschierscorrespondantsontsurlamêmepartition;—v1etv2sontdesprocessusetv1.
idestégalàv2.
id;—v1etv2sontdessocketsquisontliéesàlamêmeadresseIP.
Nousutilisonsl'identiantaulieudesnomsdanslecasdesprocessusetdeschierscarlesnomspeuventchangerdurantl'exécutiondusystème.
Lesidentiantsidentientdemanièreuniquechaqueobjetetnechangentpasdurantl'exécutiondusystème.
Utiliserlenomauraitainsicrééuneconfusionpourl'analystecarilnepourraitplusretracercorrectementlapropagationdesuxdanslesystème.
Parexemple,durantl'installationd'uneapplication,unchieravecunnomaléatoireestcréédans/data/dalvik-cache.
Cechiercontientlaversionoptimiséeducodedel'applicationàinstalleretestrenomméensebasantsurlenomdel'applicationàlandel'installation.
Sileconteneurestimpliquédansunuxd'informationavantetaprèssonrenommage,nousaurionsunseuletmêmenudpourlereprésenteraveclesidentiantsalorsquenousaurionsdeuxnudsdiérentsenutilisantlesnoms.
PourchaqueentréedujournaldeBlare,nousvérionssiilexisteunarce1correspondantauuxdécritparl'entrée.
Sic'estlecas,alorsnousajoutonsle94CHAPITRE4.
GRAPHESDEFLUXSYSTMEtimestampdel'entréecouranteàlalistedestimestampsdee1.
Sicen'estpaslecas,nousajoutonsl'arccorrespondantàl'entréecouranteauSFG.
L'ajoutd'unnouvelarcimpliqueégalementl'ajoutdesesnudss'ilsn'existaientpasdansleSFG;c'est-à-direqu'aucundesnudsduSFGn'étaitégalauxnudssourceetdestinationdunouvelarc.
Laconstructions'arrêtequandiln'yaplusd'entréeàtraiteretl'algorithmeretourneleSFG.
And'avoiruneestimationdutempsnécessairepourconstruireunSFGàpartird'unjournald'AndroBlare,nousavonsmesuréletempsd'exécutiondenotrealgorithmesur46journauxdiérents.
Cesjournauxcontiennentenmoyenne126000entrées.
Lesmesureseectuéesontmontréqu'ilafallu25minutespourconstruireles46SFGssoit1minuteet50secondesparSFGet1145entréestraitéesàlaseconde.
Algorithme1:Constructiond'unSFGàpartirdesentréesd'unjournaldeBlareInput:JournaldeBlareOutput:SFGcorrespondantauxuxdécritsdanslejournaldonnéenentréebegingemptySFG;foralltheentryentinBlarelogdoe0to_edgepentq;foundFalse;forallthee1Pgdoife0e1thene1.
timestampe1.
timestampYe0.
timestamp;foundTrue;break;iffoundthenAdde0tog;returng;CompacitéduSFGNousavonsavancéaudébutdecechapitrequelepremieratoutduSFGétaitdereprésenterdemanièrepluscompactelesuxd'informationobservésparBlare.
Cettecompacitéapourconséquencedefaciliterl'analysedesuxobservésandecomprendrecequisepassedanslesystème.
Durantlathèsenousavonsanalyséplusd'unecentained'applicationdontcertainesétaientmalicieusesetd'autresnon.
L'analysedechacuned'entreellesaduréentre2à5minutesselonlesapplicationsetlejournaldeBlareobtenuàlandel'analysecontenaitquelquesmilliersd'entrée,c'est-à-direqueBlareaobservédesmilliersdeuxd'informationetchacundesuxobservésparuneentréedanslejournal.
titre4.
4.
SFG:PROFILCOMPORTEMENTALD'UNEAPPLICATION95d'exemple,l'analysede65applicationsprovenantdeGooglePlayaproduitenmoyenneplusde130000entréesdanslejournaldeBlarealorsquelesSFGproduitsàpartirdechaquejournalontenmoyenneunecentained'arcs.
Laraisondecegainencompacitéestquecertainsuxsontobservésplusieursfoisdurantl'exécutiondusystème.
Leséchangesentreuneapplicationetleprocessussystem_serversontparexemplerépétésplusieursfoiscarceprocessushébergelesapplicationsservicesdusystèmefourniesauxautresapplications.
Unautreexempledecesuxrépétésestlalectureoul'écriturededonnéesvolumineusesdansunchier.
4.
4Graphedeuxsystème:prolcomporte-mentald'uneapplicationUnSFGreprésentedemanièrecompactelesuxd'informationobservéspar(Andro)Blare.
Danscettethèse,nousproposonsd'utiliserleSFGentantqueprold'uneapplication.
Plusprécisément,nousproposonsd'utiliserleSFGpourdécrirecommentuneinformationprovenantd'uneapplicationsepropagedanslesystèmeentier.
AndeconstruireleSFG,nousanalysonsavecAndroBlarecommentl'informationprovenantd'uneapplicationsoussurveillancesepropagedanslesystème.
Nousinstallonsl'application,assignonsunnouvelidentiantiàsesdonnées,marquonssonapkavecunitagégalàtiu,l'exécutonsetana-lysonsavecBlarecommentsesdonnéessepropagentdanslesystème.
Nousassignonsunnouvelidentiantauxdonnéesdel'applicationand'identierlesuxd'informationimpliquantlesdonnéesdel'application.
L'apkcontienttouteslesressourcesd'uneapplication.
Nousleconsidéronsdonccommel'originedesdonnéesd'uneapplicationetlemarquonsavecl'itagtiu.
chaquefoisqueBlareobserveunuxd'informationimpliquantunedonnéeidentiéepariilrajouteuneentréedécrivantleuxobservé.
Enutilisantl'algorithme1,nousconstruisonsensuiteleSFGcorrespondantauxuxobservés.
LeSFGrésultantpeutensuiteêtreanalyséandecomprendrelesactionsd'uneapplication.
Danscequisuit,nousproposonsdeconstruireleSFGd'unéchantillondemalwareAndroidetdel'analyser.
4.
4.
1AnalysedeDroidKungFu1avecAndroBlareDroidKungFu1[61]estunmalwareAndroiddécouverten2011surlesplate-formesdetéléchargementalternativesàGooglePlay.
Ilmènedeuxtypesd'at-taque:levoldesdonnéesliéesautéléphone(IMEI,numérodutéléphoneetversiondusystèmed'exploitation)etl'ajoutd'applicationsurletéléphone.
Levoldesdonnéesestuneattaquebasiquecarl'applicationdemandeàl'instal-lationlespermissionsrequisespouraccéderauxdonnéesetcommuniquersurleréseau.
Unefoisinstallée,l'applicationcollectelesdonnéessensiblesetlesenvoiedansunerequêteHTTPversunserveurdistant.
Enrevanche,l'ajoutd'applicationestpluscomplexeetlespermissionsdemandéesnelaissentenrienprésagerl'installationd'unenouvelleapplication.
Pourinstallerd'autres96CHAPITRE4.
GRAPHESDEFLUXSYSTMEFigure4.
4–PermissionsdemandéesparunéchantillonsdeDroidKungFuapplications,lemalwareélèvesesprivilègesenexploitantunevulnérabilitédusystèmeAndroid[31]ouenutilisantlebinairesu1.
L'échantillonquenousutilisons2provientdelacollectionContagio[82]etaétéproposécommeunclientVoIPsurdesplateformesalternativesàGooglePlay.
Lagure4.
4estunecaptured'écrandespermissionsdemandéesàl'uti-lisateurparl'échantillon.
Parmilesaccèsdemandés,nousremarquonsl'accèsàl'identitédutéléphone(ex:IMEIetnumérodetéléphone)etl'accèsauréseau.
Nousanalysonsl'échantillonavecAndroBlarecommedécritensection3.
5.
Nousl'installonssuruntéléphone,marquonssonapk,l'exécutonsetanalysonsavecAndroBlarecommentsesinformationssepropagentdanslesystème.
Lecodemalveillantdansl'applicationestautomatiquementexécutédèsquenouslanonsl'application.
SuperUsernotiequel'applicationaobtenulesdroitsrootetauboutdequelquessecondes,nousremarquonsunenouvelleapplication,GoogleSSearch,danslemenuprincipaldutéléphone(gure4.
5).
Nousarrêtonsl'analyseetcréonsàpartirdujournaldeBlareleSFGdel'appli-cation.
Lenombred'entréescrééesdanslejournalestde3563etàpartirdeces1.
switchuser2.
EmpreinteMD5:39d140511c18ebf7384a36113d48463d4.
4.
SFG:PROFILCOMPORTEMENTALD'UNEAPPLICATION97Figure4.
5–Listedesapplicationsdanslemenudutéléphoneaprèsl'installa-tiond'unenouvelleapplicationparunéchantillondeDroidKungFuentréesnousconstruisonsleSFGquenousanalysonsdanslasectionsuivante.
4.
4.
2AnalyseduSFGdeDroidKungFu1Lagure4.
6illustreunextraitduSFGdel'échantillon39d140511c18e-bf7384a36113d48463d.
LeSFGentierestplusgrand(106arcset76nuds)maislaguremontrelapartielaplusimportantedupointdevuedel'attaque(partieengras).
LeSFGadeuxtypesdenuds.
Lesellipsesreprésententdesprocessustandisquelesbotesreprésententdeschiers.
Lesarcsreprésententtoujoursdeslabelsmaispourdesraisonsesthétiques,nousnoussommeslimitésàacherlenombredefoisquelesuxcorrespondantsauxarcsontétéobservésainsiqueletimestampdelapremièreobservation.
L'applicationquenousavons98CHAPITRE4.
GRAPHESDEFLUXSYSTME/data/app/com.
aijiaoyou.
android.
sipphone-1.
apksystem_server1-98081668ndroid.
sipphone11-9834181582-98349271/data/system/packages.
xml1-313591933.
google.
ssearch7-31954986982-98347483/data/data/com.
aijiaoyou.
android.
sipphone/gjsvro2-100112038/data/data/com.
aijiaoyou.
android.
sipphone/legacy1-3124612651-100158896gjsvro3-121963546/proc/sys/kernel/hotplug1-121959054/system/bin/gjsvr2-121963729/system/app/com.
google.
ssearch.
apk11-3125039972-312993777dexopt1-3134274862-319553901cat11-312938978/data/dalvik-cache/system@app@com.
google.
ssearch.
apk@classes.
dex2-3134295541-3135735031-3195675737-31954844512-31250380612-312938674Figure4.
6–ExtraitduSFGd'unéchantillondeDroidKungFu4.
4.
SFG:PROFILCOMPORTEMENTALD'UNEAPPLICATION99analyséestleprocessusndroid.
sipphone.
EnanalysantleSFG,nouspouvonsdéduirequedeuxapplicationsontétéinstalléessurletéléphone.
Lorsquel'échantillons'exécute,ilcréedeuxchiers/data/data/com.
aijao-you.
sipphone/gjsvroet/data/data/com.
aijaoyou.
sipphone/legacy.
par-tirducontenudeceschiers,deuxprocessus,gjsvroetcat,créentdeuxnouveauxchiersdanslapartitionsystem:/system/bin/gjsvroet/sys-tem/app/com.
google.
search.
apk.
Celaindiquel'installationd'uneapplica-tionnative,gjsvro,etd'uneapplicationAndroid,com.
google.
search.
apk.
Cesdeuxchiersn'existentpaspardéfautsousAndroid,cequilaissesupposerqu'ilsontétécréésparl'échatillondumalwarequenousanalysons.
Lesuxquisuiventrenforcentcettehypothèsecarlecontenuduchierapksepropageversleprocessussystem_serverquiluilepropagedanslechierpackages.
xml.
Leprocessussystem_serverexécutediversservicesdusystèmedontceluienchargedel'installationdesnouvellesapplications,PackageManager.
PackageManagerobservelacréationdenouveauxchiersdanslerépertoire/system/appquistockelesapplicationssystème.
Siunchierestcréédanscerépertoire,illancel'installationduchier.
Lechierpackages.
xmlcontientlalistedesap-plicationsinstalléessurletéléphone.
Deplus,lecontenuduchierapkestégalementluparleprocessusdexoptquiestencharged'extrairelaversionoptimiséeducoded'uneapplicationàpartirdesonapk.
Unnouveauprocessus,google.
searchaccèdeensuiteàcetteversionoptimiséeainsiqu'àl'apkcrééparlemalwarecequiindiquel'exécutiond'unenouvelleapplication.
Pourconrmerl'installation,nousanalysonslechierpackages.
xml.
Encal-culantladiérencedesoncontenuavantetaprèsl'analysedel'échantillon,nousremarquonsuneentréedécrivantunenouvelleapplicationcom.
google.
ssearch(listing4.
1).
L'entréeindiquequelecodedel'applicationcorrespondauchiercom.
google.
ssearch.
apkdanslapartitionsystem.
Elleindiqueaussil'UIDassociéàl'application:10059.
l'installationd'uneapplication,lesystèmeluiassocieunnouvelUIDdontlavaleurestledernierUIDassociéàuneapplica-tionincrémentéde1.
L'UIDassociéàl'échantillonquenousavonsanalyséest10058.
Celasigniedoncquel'applicationcom.
google.
ssearchaétéinstalléeaprèsl'échantillonquenousavonsanalysé.
481484485486487488Listing4.
1–Entréedanslechierpackages.
xmlajoutéesuiteàl'installationd'unenouvelleapplicationparunéchantillondeDroidKungFuAvantdecréerleschiersdanslapartitionsystem,leprocessusgjsvro100CHAPITRE4.
GRAPHESDEFLUXSYSTMEécritdansunchierhotplug.
Cechierestuneentréeduprocfs,unsystèmedechierservantd'interfacepouraccéderàdesinformationssurlesprocessusetd'autresélémentsdusystèmetelsquelenoyau.
Sil'écriturededonnéedanslechierhotplugnesigniepasforcémentuneattaque,elleestcependantinhabituelleetcorrespondàl'exploitationdelavulnérabilitépourobtenirlesdroitsrootsurlesystème[31].
UnSFGestunmultigrapheorientéquireprésentedemanièrecompactelesuxd'informationobservésparAndroBlare.
Commenousl'avonsmontréàlandelasection4.
3,unecentainedemilliersd'entréedanslejournald'Andro-Blareseréduitenungrapheavecunmoyenneunecentained'arcs.
Grceàsacompacité,cettestructurefacilitel'analysedesuxobservésdanslesystèmeandecomprendrelecomportementd'uneapplication.
Danslecasd'analysedemalware,cettefonctionnalités'avèreintéressantpourétablirundébutdediag-nosticd'uneattaque.
Pourillustrercela,nousavonsanalyséavecAndroBlareunéchantillondumalwareDroidKungFu1etconstruitleSFGcorrespondantauxuxobservésdurantl'analyse.
NousavonsdéduitàpartirduSFGquel'échantillonanalyséinstallaitdeuxapplicationsdanslesystème:unenativeetunesousformed'apk.
Cesdeuxapplicationssontinstalléesdanslapartitionsystem,cequirendleurprésencepersistantesurletéléphone.
Unutilisateurnormalnepeutdésinstalleruneapplicationdanslapartitionsystemsanslesdroitsrootorilsnesontpasdisponiblespardéfautsurlestéléphones.
LeSFGaégalementmisenévidencel'exploitationdelavulnérabilitépouravoirlesdroitsroot(écriturededonnéessensiblesdanslechierhotplug).
Revenonssurletravaileectuédans[16]etprésentéensection3.
2.
Lebutdecetravailétaitdedénirmanuellementunepolitiquedeuxd'informationpourlesystèmeAndroid.
Saréalisationacependantmisenévidenceladicultéd'unetelleapproche.
L'undespré-requisàcettedémarcheestuneconnaissanceapprofondiedusystème.
Orcen'estpassouventlecaspourlesdéveloppeursd'applicationetdénirunepolitiquedeuxpourdesapplicationscenséestour-nerdansunenvironnementAndroBlarepourraits'avèrerdicile.
AvecT.
Saliou,nousavonsainsiproposédans[20]uneapprochesemi-automatiquepourassisterundéveloppeurdanslacréationdelapolitiqued'uneapplication.
4.
5Créationd'unepolitiquedeuxd'informa-tionàpartird'unSystemFlowGraphLadicultédansladénitiond'unepolitiqueestdeconnatretouslesconte-neurslégauxdesinformationsàsurveiller.
Lorsdeladénitiondelapolitiqued'uneapplication,ils'agitdoncd'identiertouslesconteneurspouvantaccéderoustockerlesdonnéesdecetteapplication.
Pourlesidentier,nousproposonsd'analyserlesapplicationspourconstruireleurprolsousformedeSFG.
par-tirduSFG,nousdéduisonsensuitelesconteneurslégauxdesdonnéessurveillées4.
5.
POLITIQUEDEFLUXD'INFORMATIONPARTIRD'UNSFG101carleSFGdécritoùlesinformationssurveilléessepropagentdanslesystème.
Laconstructiondelapolitiquesefaitendeuxétapes.
Dansunpremiertemps,ledéveloppeuranalysesonapplicationdansunenvironnementAndro-Blareetconstruitleproldesonapplicationcommedécritensection4.
4.
Lebutdecetteétapeestd'obtenirdansleSFGtouslesuxd'informationpossiblesquel'applicationpeutcauser.
Ledéveloppeurétantceluiquiconnatlemieuxsonapplication,ilestlemieuxplacépourstimulersonapplicationetcouvrirainsitouteslesfonctionnalitésoertesparl'application.
UnefoisleSFGobtenu,nouscalculonslapolitiquedeuxdel'application.
L'algorithme2décritleprocessusdecalcul.
Lesfonctionscont,ptag,xptag,inedgesetbinretournentrespectivementleconteneurd'informationassociéàunnud,leptagd'unconteneur,sonxptag,lesarcsentrantsd'unnudetlechiercontenantl'applicationexécutéeparunprocessus.
PourchaquenudduSFG,nousconsidéronsqueleconteneurd'informationqu'ilreprésenteestunconteneurlégaldetouteslesinformationsensiblesimpliquéesdanslesarcsentrantsdunud.
Nousconsidéronsquetoutescesinformationspeuventsemélangerdansleconteneur.
Parexemple,sideuxarcse0ete1sontlesarcsentrantsd'unnudnalorsnousconsidéronsqueleconteneurreprésentéparnestunconteneurlégaldesinformationsimpliquéesdanslesuxdécritsparlesdeuxarcs.
Algorithme2:Calculd'unepolitiquedeuxd'informationBlareàpartird'unSFGInput:UnSFGGOutput:Unepolitiquedeuxd'informationbeginptag(socket)H;foreachnPnodes(G)doidsH;foreachePinedges(n)doidsidsYe.
flow;switchtype(n)docaseleptag(cont(n))tidsu;break;caseprocessxptag(bin(cont(n)))tidsu;break;casesocketptag(socket)ptag(socket)Ytidsu;break;Enutilisantcetteapproche,nousavonsconstruitlapolitiquedetroisap-plicationsissuesdeGooglePlay:AngryBirds,FingerScanneretKnifeGame.
102CHAPITRE4.
GRAPHESDEFLUXSYSTMELapolitiqueproduiteestécriteenBSPL[57]etlelisting4.
2estunextraitdel'unedespolitiquesBSPLproduites.
crirelapolitiqueenBSPLpermetdelacomposeravecd'autrespolitiques,notammentcelledusystèmesurlequell'applicationestinstallée.
Lapolitiquelistelesconteneursd'informationprisencompteparlapolitique,lesdonnéessensiblesàsurveilleretpourchaquedonnéesensiblelalistedesconteneurslégauxainsiquelesinformationsaveclesquellesellespeuventsemélangerdansleconteneur.
valuationdespolitiquesproduitesNousavonsmenédeuxtypesd'expérienceand'évaluerlespolitiquesdeuxproduitesàpartirdenotreapproche.
Lapremièreexpérienceconsisteàvaliderlapriseencomptedesuxquel'applicationengendredurantsonexé-cutionparsapolitiquedeux.
Nousnousassuronsqu'aucunealerten'estlevéeparAndroBlarelorsquenousexécutonsl'applicationetappliquonssapolitique.
Ladeuxièmeexpérienceconsisteàvaliderlacapacitédedétectiondelapoli-tiqueencasd'intrusiondanslesystème.
Plusprécisément,nousvérionsquelapolitiquedesécuritépermetladétectiondesdéviationsparrapportaucompor-tementd'originedel'application.
Nousconsidéronsicilecasdesapplicationsmalveillantesquisontàl'originedesapplicationsbénignesmaisauxquellesducodemalveillantaétérajouté.
Cemoded'infectionestleplusutiliséeparlesauteursdemalwareselonl'analysedans[113].
Danslesdeuxtypesd'expériences,nousappliquonslaprocéduresuivante.
Nousinstallonsl'application,appliquonssapolitiqueetl'utilisonscommeunutilisateurnormall'utiliserait.
Enparallèle,nousvérionsavecAndroBlaresilesuxcausésparl'applicationviolentlapolitiquedeuxdumiseenuvre.
Lorsdelapremièreexpérience,nousutilisonslaversiondel'applicationayantservilorsdelacréationdelapolitiqueetvérionsqu'aucunealerten'estlevéelorsdel'utilisationdel'application.
Siaucunealerten'estlevée,celasigniequelapolitiquecouvretouslesuxquel'applicationcausedurantsonexécution.
Lorsdeladeuxièmeexpériencenousutilisonsdesversionsinfectéesdesapplica-tionsutiliséesdansl'expérienceprécédente.
CesversionsinfectéessontdesréelséchantillonsdemalwareprovenantdelacollectionContagio[82].
Lesversionsinfectéesd'AndryBirds,FingerScanneretKnifeGamesontrespectivementdeséchantillonsd'unevariantedeLeNa[104],DroidKungFu1[61]etBadNews[91].
Chacundecesmalwaresessaientd'installerdesapplicationssurletéléphonesoitenusantdesprivilègesdemandéesàl'installationsoitenexploitantdesvulné-rabilitésdanslesystème.
Lebutdeladeuxièmeexpérienceestdoncdedétectercescomportements.
Letableau4.
1listelenombred'alerteslevéeslorsdel'évaluationdespo-litiquesdestroisapplications.
Lorsdelapremièreexpérience,AndroBlaren'alévéaucunealertepourles3applications.
Lespolitiquesrespectivesdestroisap-plicationscouvrentdonctouslesuxqu'ellesengendrentdurantsonexécution.
Lorsdeladeuxièmeexpérience,AndroBlarealevédesalertespourchacunedesversionsinfectéesdesapplicationsutiliséesdurantlapremièreexpérience.
Lesalerteslevéesétantnombreuses,nousnelesmettronspasdansleprésent4.
5.
POLITIQUEDEFLUXD'INFORMATIONPARTIRD'UNSFG103documentmaislagure4.
7estunextraitdecesalertes.
EllelistelesalerteslevéesparAndroBlarelorsdel'analysedelaversioninfectéedeFingerScanner.
Laversioninfectéed'AngryBirdsestunéchantillondeLeNa.
LesanalysessurLeNaindiquentquelemalwareexploitentunevulnérabilitédusystèmeand'obtenirlesprivilègesrootpuisinstallerunenouvelleapplication.
Lorsdel'analysedel'échantillon,AndroBlarealevédesalertesindiquantl'accèsenlectureetécritureàdeschiersdanslerépertoiredel'applicationpard'autresapplications:logoetlogcat.
Logoestuneapplicationbinaireincluseparl'au-teurdumalwaredansl'application.
Logcatestuneapplicationquipermetdelirelecontenudujournaldusystème.
Cesdeuxapplicationslisentetécriventdansleschierslogo,crashlog,flag,execet.
e1240987052dsituésdanslerépertoiredel'applicationanalysée.
Sicesaccèsn'indiquentpasforcémentuneintrusiondanslesystème,ellescorrespondentcependantàlapremièreétapedel'attaquemenéeparlemalware,l'exploitationdelavulnérabilitésurlesystème.
L'analyseeectuéedans[95]indiquequel'applicationinstalleouremplacelesbinairessituéesdans/system/bin.
AndroBlaren'alevéaucunealerteindiquantdetelscomportements.
Pours'assurerqu'ilnes'agitpasdefauxnégatif,nousavonslistélecontenudurépertoireetvériésidenouveauxbinairesontétécréésousilecontenudeschiersprésentsontétéchangépendantl'analysedel'application.
Notreanalyseamontréqu'aucunchiern'aétécréénimodié.
LaversioninfectéedeFingerScannerestunéchantillondeDroidKungFu1.
ToutcommeLeNa,DroidKungFu1exploiteunevulnérabilitédanslesystèmeAndroidand'éleversesprivilègesetinstallerdeuxapplicationssurletélé-phone:unenativeetuneapplicationAndroid.
Lorsdel'analysedel'échantillondeDroidKungFu1,AndroBlarealevédesalertesindiquantl'écriturededonnéessensiblesdansuneentréedeprocfs3,deuxchiersdanslapartitionsystemetlapropagationdesdonnéessensiblesverslechiercontenantlalistedesappli-cationsdutéléphone,l'applicationencharged'unepartiedel'installationdesnouvellesapplicationssurletéléphoneetunnouveauprocessusdontlenomestunepartiedunomd'undesnouveauxchierscréésdanslapartitionsystem.
Cesalertessontlistéesdanslagure4.
7.
Cesalertescorrespondentàl'exploi-tationdelavulnérabilitéparDroidKungFu1ainsiquel'ajoutedenouvellesapplicationsdanslesystème.
Lapremièrealertecorrespondàl'exploitationdelavulnérabilitéparlemalware.
Lesalertesquirestentdécriventl'ajoutdesdeuxnouvellesapplicationssystemainsiquel'exécutiondel'uned'entreelles(com.
google.
ssearch.
apk).
LaversioninfectéedeSavageKnifeGameestunéchantillondeBadNews.
BadNewsestunmalwaredontlecomportementestdictéparunserveurdecommande.
Enanalysantlecodedel'échantillonavecAndroguard[97],nousavonsdécouvertquelemalwarepeutrecevoirXtypesdecommande:instal-leruneapplication,acherunenoticationàl'utilisateur,changerl'adressedesserveursdecommande,téléchargerdeschiersetajouterdesraccourcissoitversdespageswebsoitversdeschierssurletéléphone.
Lorsdel'analysedel'échan-tillon,AndroBlarealevé209alertes.
Unepartied'entreellescorrespondentau3.
Systèmedechierservantd'interfaceàdesdonnéesdusystème,ycomprislenoyau104CHAPITRE4.
GRAPHESDEFLUXSYSTME[POLICY_VIOLATION]processgjsvro:gjsvro984>file/proc/sys/kernel/hotplug4827>itag[-3][POLICY_VIOLATION]processgjsvro:gjsvro984>file/system/bin/gjsvr16738>itag[-33][POLICY_VIOLATION]processgjsvro:gjsvro984>file/system/app/com.
google.
ssearch.
apk8330>itag[-33][POLICY_VIOLATION]processcat:cat990>file/system/app/com.
google.
ssearch.
apk8330>itag[3][POLICY_VIOLATION]processgjsvro:gjsvro984>socket(127.
0.
0.
1)0>itag[-33][POLICY_VIOLATION]file/system/app/com.
google.
ssearch.
apk8330>processdexopt:dexopt991>itag[3][POLICY_VIOLATION]processdexopt:dexopt991>file/data/dalvik-cache/system@app@com.
google.
ssearch.
apk@classes.
dex24632>itag[3][POLICY_VIOLATION]file/data/dalvik-cache/system@app@com.
google.
ssearch.
apk@classes.
dex24632>processdexopt:dexopt991>itag[3][POLICY_VIOLATION]processdroid.
gallery3d:droid.
gallery3d995>file/data/data/com.
android.
gallery3d/shared\_prefs/com.
android.
gallery3d\_preferences.
xml57603>itag[3][POLICY_VIOLATION]file/system/app/com.
google.
ssearch.
apk8330>process.
google.
ssearch:.
google.
ssearch1059>itag[3][POLICY_VIOLATION]file/data/dalvik-cache/system@app@com.
google.
ssearch.
apk@classes.
dex24632>process.
google.
ssearch:.
google.
ssearch1059>itag[3]Figure4.
7–Extraitdesalerteslevéesparl'échantillondeDroidKungFu1lorsdel'évaluationdelapolitiquedeFingerScanerVersionoriginaleVersioninfectéeAngryBirds015Fingerscanner011Knifegame0209Table4.
1–Nombred'alerteslevéesparBlarelorsdel'exécutiondesversionsoriginalesetinfectéesdetroisapplicationsenappliquantunepolitiqueBSPLtéléchargementdedeuxapplications,leurinstallationetleurexécutionsurletéléphone.
L'unedesapplicationsestprésentéecommeétantAdobeFlashmaisestenréalitéunjeuetl'autreapplicationestuneversioninfectéedujeuDoodleJump.
L'autrepartiedesalertesdécriventl'échangededonnéessensiblesdunavigateuravecd'autresobjetsdusystème.
Cesalertessontduesaufaitquel'échantillonanalyséutiliselenavigateurpourinitierletéléchargementdesap-plications.
Pourcela,ilémetunintentpourouvrirlesadresseswebpointantverslesapplicationsàtélécharger.
partircemoment,lenavigateursetrouveainsimarquécommecontenantunedonnéesensibleettoutéchangequ'ilauraaveclesautresélémentsdusystèmeestvuparAndroBlarecommeimpliquantunedonnéesensible.
4.
5.
POLITIQUEDEFLUXD'INFORMATIONPARTIRD'UNSFG1051234512131619222526.
.
.
27.
.
.
282930313240414344.
.
.
45.
.
.
46474849Listing4.
2–ExtraitdelapolitiqueBSPLdel'applicationFingerScanner106CHAPITRE4.
GRAPHESDEFLUXSYSTMERésuméNousavonsprésentédanscechapitreunestructurededonnées,SFG,rep-résentantsouslaformedemultigrapheorientélesuxd'informationqu'Andro-Blaredétectedurantl'exécutiondusystème.
Cettestructureestledeuxièmeapportdelathèseetladeuxièmeétapeversl'accomplissementdenotreobjectifprincipalquiestdeclassieretdétecterlesmalwareAndroid.
Dansl'exempleproposéensection4.
4,nousavonsobtenuunSFGcontenantmoinsde100arcsàpartirdeplusde3000uxobservés.
Grceàsacompacité,leSFGpermetdecomprendrerapidementlesévènementsquisepassentdanslesystème.
L'ana-lysedugrapheobtenuàpartirdesuxengendrésparunéchantillondeDroid-KungFu1nousaainsipermisd'identierl'installationdedeuxapplicationsparlemalware.
Enplusd'utilisercettestructurecommeprold'uneapplica-tion,nousavonségalementmontréqu'ilétaitpossibledes'enservirpourcréerlapolitiqueBlared'uneapplication.
NousavonstestécetteapprochesurtroisapplicationspopulairesdeGooglePlayetmontréquelespolitiquesproduitescapturaientbienlesuxcauséesparlesapplicationsdurantleurexécutionetpermettaientdedétecterlesdéviationsdecomportementduesàtoutcodemal-veillantintroduitdanslesapplications.
Lecontenudecechapitreafaitl'objetdedeuxpublications.
LapremièreaétépubliéeàWISG13[18]etprésentelastructureSFGainsiquelamanièredontellepeutêtreutiliséepourcomprendrelecomportementd'uneapplication.
LadeuxièmepublicationaétépubliéeàIAS13[20]etétenduedansunarticledujournalJIAS[19].
ElleprésentelaméthodedecréationdepolitiqueBSPLàpartird'unSFGainsiquesonévaluation.
Chapitre5CaractérisationetdétectiondemalwareAndroidNousavonsprésentédanslechapitreprécédentunestructurededonnéequidécritdemanièrecompactecommentlesinformationssurveilléesparAndro-Blaresepropagentdanslesystèmeetproposéd'utilisercettestructurepourdécrirecommentuneapplicationpropagesesdonnéesdanslesystème.
Enana-lysantlegraphed'unéchantillondeDroidKungFu1,nousavonsmontréqu'unepartiedugraphecorrespondaitàl'attaqueeectuéeparlemalware.
Selonl'ana-lyseeectuéedans[113],plusde86%deséchantillonsdemalwareAndroidsontdesapplicationsexistantesauxquellesducodemalveillantaétéajouté.
Celasigniedoncqueleséchantillonsd'unmêmemalwareontuncomportementpartiellementcommundaucodemalveillantquileuraétéinjecté.
Unéchan-tillond'unmalwareestuneapplicationconsidéréecommeétantuneéchantillondecemalware.
Unepartiedesuxqu'ilscausentdevraientainsiêtrelesmêmes.
Ensupposantquel'attaqueobservéedanslegraphedel'échantillondeDroid-KungFu1soitdàuncodequiaétéinjectédansl'applicationd'origineetd'autresapplications,peut-onainsiretrouvercesous-graphedanslegraphedesautreséchantillonsNousavonsgénéraliséceproblèmeetrépondonsdanscechapitreauxdeuxquestionssuivantes.
1.
Existe-t-ildessous-graphescommunsauxSFGdesapplicationsmal-veillantestellesquecettepartiecommunecorrespondeaucomportementintroduitparlecodemalveillantdanscesapplications2.
Siuntelsousgrapheexiste,permet-ildedétecterd'autreséchantillonsdumalwareAnderépondreàcesquestions,nousprésentonsetévaluonsdanscecha-pitreuneméthodepourcalculercesous-grapheencommunetuneméthodededétectionutilisantlesuxd'informationetlessous-graphesencommunpourdétecterl'exécutiond'échantillondemalware.
107108CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWARE5.
1CaractérisationdemalwareAndroid:classi-cationd'applicationsmalveillantesAndroidNousproposonsdecaractériserunmalwareavecle(s)sous-graphe(s)encom-munauxSFGdeseséchantillonsquidécritsoncomportementmalveillant.
And'extrairecettepartiecommune,nouscalculonslesarcsencommunauxSFGdeséchantillonsdemalwarecommedécritparl'algorithme3.
Lecalculeec-tuépeutêtrevucommeunprocessusdeclassicationnonsuperviséeoùnouscherchonsàregrouperlesSFG,implicitementlesapplicationscorrespondantes,ayantdespartiescommunesetparallèlementàcalculerunprolpourchaqueclassequicaractériseseséléments.
Idéalement,leséchantillonsd'unmêmemal-wareseraientregroupéesauseind'unemêmeclasseetdonccaractérisésparunseulprol.
Contrairementauxautresapprocheseectuantdesclassicationsnonsuperviséessurleséchantillonsdemalwareoudesapplicationsengéné-ral[67,89,90,22],nousn'utilisonsaucunenotiondedistanceentrechaqueélémentpourdéterminers'ilsdevraientfairepartied'unemêmeclasse.
laplace,nousconsidéronsquedeuxéléments,icidesSFG,fontpartied'unemêmeclasses'ilsontunepartiecommunenonnulle.
Uneclassicationconsisteàapprendreàpartird'unjeudedonnéesunmo-dèledénissantcommentcesdonnéessontoupeuventêtreregroupées.
IcinoussouhaitonscalculerdesclassesdeSFGetlesprolscaractérisantslesélémentsdechaqueclasse.
Cejeudedonnéesestreprésentéparlapremièrelistedonnéeenparamètredel'algorithme3.
Unedeuxièmelisteestdonnéeenparamètremaisellesertuniquementàltrerlesarcsquipourraientfairepartiedesprolsquenouscalculons.
Celtrageesteectuéparlafonctioncleanaudébutdelaclassication.
Nousdonneronsplusdedétailsurcetaspectplustard.
Initialement,laclassicationassocieuneclassediérenteàchacundesSFGdesapplications.
Lerésultatrenvoyéparl'algorithme,c'est-à-direlaclassi-cationnale,estobtenueencalculantunpointxesurl'évolutiondecetteclassication.
Lecalculdupointxeestreprésentéparlabouclewhiletandisquelamiseàjourdelaclassicationestopéréeparlafonctionone-step-clas-sification(algorithme4).
Cettefonctionprendenentréeunelistedeclasseenparamètreetfusionnelespairesdeclassesdontlesprolsontunepartiecommune.
Ensupposantainsiqu'ilyaitnclassesdanslaclassicationdonnéeenparamètre,ellevériepourtoutecombinaisondedeuxclassessileursprolsrespectifsontunepartiecommunenonnulle.
CelasetraduitparC2ncalculsd'intersectiondedeuxSFG.
Sic'estlecas,ellefusionnelesdeuxclassesetas-sociecommeprolàlaclasserésultantecettepartiecommunenonnulle.
Auxélémentsdesdeuxclassesayantétéfusionnéess'ajoutentlesélémentsdesautresclassesdontleprolcontientl'intersectiondesprolsdesdeuxclassesfusion-nées.
Siuneclassen'aétéfusionnéeavecaucuneautreclasse,elleestajoutéetellequelledanslanouvelleclassication.
5.
1.
CARACTRISATIONDEMALWAREANDROID109Algorithme3:CalculdespartiescommunesdeSFGd'applicationca-ractérisantsoncomportementmalveillantetregroupementdecesSFGInput:[g0,.
.
.
,gn]unelistedeSFGwhiteunelisteblanchedeSFGOutput:[(s0,[g01,.
.
.
,g0ism,[gm1,.
.
.
,gmk])]unelistedecoupleassociantlessous-graphescommunsauxgrapheslescontenantbeginassocH;new_assoc[(clean(g0,white),[g0]clean(gn,white),[gn])];whilepassoc‰new_assocqdoassocnew_assoc;new_assocone-step-classificationpassocq;returnassoc;Algorithme4:One-step-classificationfunctionInput:assocunelistedeSFGOutput:unelisted'associationdeSFGbeginnew_assocrs;tmpH;foralltheg1Pkeyspassocqdoforalltheg2Pkeyspassocqztg1udoifpg1,g2qPtmporpg2,g1qPtmpthencontinue;tmptmpYtpg1,g2qu;sg1[g2;ifs"Hthenvvaluepassoc,g1q`valuepassoc,g2q;forallthegPkeyspassocqztg1,g2udoifsgthenvv+value(assoc,g)new_assocaddpnew_assoc,ps,vqq;returnnew_assoc;110CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREPré-traitementdesélémentsàclassier:ltragedesarcsdesSFGNousavonsmentionnéprécédemmentqueladeuxièmelistedonnéeenentréedel'algorithme3étaitutiliséeparlafonctioncleanpourltrerlesarcspouvantfairepartiedesprolsquenouscalculons.
FiltrerlesarcspouvantfairepartiedesprolsestunenécessitécarunepartiedesSFGdesapplicationsAndroidestlamêmequecesapplicationssoientbénignesounon.
NousltronsainsilesarcsàprendreencomptedanslesprolsandenepascalculerdesprolsgénériquesdécrivanttouteapplicationAndroidaulieudeprolsdemalwraredécrivantleurcomportementmalveillant.
CettepartiecommuneentrelesSFGdesapplicationsAndroidestdueàlamanièredontlesapplicationssontécritesetàlamanièredontl'environne-mentAndroidfonctionne.
Eneet,lescomposantsdesapplicationsAndroidsontdescomposantsquiétendentdesclassesprédéniesdansAndroid,àsavoirActivity,BroadcastReceiver,ServiceetContentProvider.
Lescomposantshéritentainsidesfonctionnalitésdecesclasses.
Ainsi,ilsonttousparexemplelamêmeréférenceauContextManager,classeservantàdemanderlesréférencesdesdiérentsservicesdusystème.
Cetteclasseeectuelarequêteauprocessusservicemanagerpardéfaut.
Deplus,l'interactionaveclerestedusystèmesefaitsouventavecdesfonctionsfourniesparl'APIAndroidcequipeutcauserdesuxsimilairesauxapplications.
Pourcréerouaccéderauxpréférencesdel'ap-plication,lesapplicationsutilisentsouventlafonctiongetSharedPreferencesparexemple.
L'usagedespréférencesestconseillédansdiverscastelsquelasauvegardedesdonnéeslorsqu'uneapplicationsestmiseenpauseparlesys-tème.
Lechierstockantlespréférencesestlocalisédanslerépertoirelocaldel'applicationpardéfautetsonaccèsvial'APId'Androidestainsilemêmepourtouteslesapplications.
causedececaractèrecommun,descomportementscommunssontpartagésentrelesapplicationsqu'ellessoientbénignesounon.
Cequiimpliquequ'unepartiedesuxd'informationqu'ellescausentsontlesmêmes.
Encalculantsim-plementlesous-graphecommunauxgraphesdeséchantillonsdemalwaresanseectuerdeltrage,nousrisquerionsd'obtenirungrapheencommuncaracté-risantn'importequelleapplicationAndroidettoutcomportementmalveillantseraainsiabsentdecegraphe.
Pourpalieràceproblème,ilestainsinécessairedeltrerlesélémentsàprendreencomptedanslessous-graphesencommunquenouscalculons.
Danslesexpériencesmenéesensection5.
2,nousltronslesarcsàprendreencomptedanslesprolsdemalware.
Nousignoronslesarcsquidécriventunuximpliquantlesprocessussystem_server,celuiexécutantl'applicationdegaleried'imagesetleschiersdans/acct/uid1.
cesuxs'ajoutentceuxdécritsparlesélémentsdeladeuxièmelistedonnéeenentréedel'algorithme3.
LesélémentsdecettelistesontdesSFGd'applicationsbénignesquenousconsidéronscommereprésentantlescomportementscommunsquenousnesouhaitonspasêtreprisencomptedurantlecalculdesprols.
Nouscalcu-1.
VoirlespagesmanueldeacctsousLinux5.
2.
VALUATIONDELAMTHODEDECLASSIFICATION111lonsdanslasection5.
3lerésultatobtenuquandaucunltragen'estappliquéetmontronsquelesclassesproduitesainsiquelesprolscalculéssonttropgéné-riquespourreéterunquelconquemalware.
Danslasection5.
3,nousmontronsl'utilitédeceltrageenrépétantlaclassicationeectuéeensection5.
2.
5.
2valuationdelaméthodedeclassication5.
2.
1JeudedonnéeAnd'évaluernotrealgorithmedecalculdesous-graphe,nousproposonsdel'appliquersur19échantillonsdemalware:5échantillonsdeBadNews[91],7deDroidKungFu1[61],3deDroidKungFu2[60]et5dejSMSHider[96].
Enplusdeces19échantillons,nousutilisonségalement7applicationsprovenantdeGooglePlaydontlesSFGconstituerontlalisteblanche.
Cesapplicationssontcomposésdequatrejeux(Angrybirds,LittleDentist,FingerScanneretCrazyJump),unnavigateurweb(Firefox),deuxutilitaires(AndroidTermetBusyboxFree)etuneapplicationdefondd'écran(Ironman3live).
BadNewsestunmalwarequiinfectelessystèmesAndroidsouslaformed'applicationslégitimes.
Enanalysantmanuellementles5échantillonsavecAn-droguard,nousavonsdéterminéqueBadNewsestunmalwaredontlecompor-tementestdictéparunserveurdecommandeetcontrle(C&C).
l'exécutionducodemalveillant,ilcontacteleserveurand'obtenirlaprochainecommandeàexécuter.
D'aprèsl'analyseeectuée,ilcomprendplusieurscommandes:té-léchargeretinstalleruneapplication,acherdesinformationssousformedenotication(pagewebàvisiter,miseàjourd'uneapplicationetc),installerdenouveauxicnesquimènentversunepagewebouuneapplicationAndroidquiauraitétépréalablementtéléchargéeetchangerl'adresseduserveurC&C.
Durantlespériodesd'expérimentationquenousavonsmenées,leserveurétaittoujoursactifetenvoyaitlesmêmescommandesàchaquefois:téléchargerdeuxapplicationsetacherdesnoticationsdemisesàjouràl'utilisateurquiunefoiscliquéescausentl'installationdesapplications.
LesdeuxapplicationssontuneversioninfectéedeDoodleJumpetunjeuenRussequiestprésentécommeétantuneversiond'AdobeFlashpourAndroid.
DroidKungFu1estunmalwaredécouverten2011quiinstallefurtivementdesapplicationssurletéléphoneenexploitantdesvulnérabilitésdusystèmeougrceàlacommandesu.
Lesapplicationssontinstalléessurlapartitionsystemanderendrepermanenteleurprésencesurletéléphone.
Cettepartitionestpardéfautmontéeenlectureseuleetpardéfautunutilisateurnepeutenchangerlecontenu.
Unaccèsrootestnécessairepourcela.
DroidKungFu2auncomportementsimilaireàDroidKungFu1.
Ilexploiteégalementunevulnérabilitédusystèmepouréleversesprivilègesetinstallerdesapplicationssurletéléphone.
jSMSHiderestunmalwarequiinstalleégalementd'autresapplicationssurletéléphonedemanièrefurtive.
Contrairementauxdeuxmalwaresprécédents,iln'exploiteaucunevulnérabilitédanslesystèmepourinstallerlesapplications.
112CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWARElaplace,sondéveloppeurasignéleséchantillonsdumalwareaveclacléayantservieàsignerlesapplicationssystèmedanslesimagesnonociellesd'Android.
CesimagessontcrééespardesdéveloppeursdelacommunautéAndroidquidéveloppentdesversionspersonnaliséesdusystème.
L'undesplusconnusestCyanogenMod.
Cettecléestcellequiestprésentedanslesdéptsducodesourced'Androidetestainsiaccessibleàtous.
Ellen'estcependantutiliséepoursignerlesapplicationsdanslesROMocielles.
Ensignantleséchantillonsaveccetteclé,leséchantillonsobtiennentainsidesdroitsréservésauxapplicationssystèmetellesquel'installationd'uneapplicationsurletéléphone.
5.
2.
2ExpérimentationetrésultatAnalysedesapplicationsAnd'obtenirlesSFGdeséchantillons,ilfautdansunpremiertempslesanalyserpourobservercommentleursdonnéessepropagentdanslesystème.
Nousavonsutilisél'environnementd'analysedécritensection3.
5:untéléphoneAndroidfaisanttournerlaversion4.
0d'AndroidIceCreamSandwichauquelaétéajoutél'environnementAndroBlare,c'est-à-direlenoyaumodiéainsiquelesapplicationsenespaceutilisateur.
Pourchaqueapplication,nousrépétonsleprocessussuivant.
Nousl'instal-lonssurletéléphone,associonsunidentiantuniqueàsesdonnéesenmarquantsonapkaveccetidentiantetl'exécutons.
Nousutilisonschaqueapplicationcommeunutilisateurlambdaleferaitselonlesfonctionnalitésproposéesparl'application.
Enadditionàcela,nousintroduisonsdesévènementsdanslesystèmequisontlesélémentsdéclencheursdescodesmalveillantsprésentsdansleséchantil-lonsétudiés.
Cesévènementsontétédécouvertsenanalysantlecodedequelqueséchantillonsdecesmalwares.
Nousprésentonsdanscequisuitcesévènementsdéclencheursmaisinvitonslelecteuràlirel'annexeApourl'analysedétailléeayantmenéàleurdécouverte.
And'éviterouderetardertoutedétection,lesdéveloppeursdemalwareajoutentparfoisdesconditionsàl'exécutiondeleurcode.
LecodemalveillantdansBadNewsnes'exécuteparexemplequelorsquelecomposantMainServicenereoitunintentluisigniantdes'exécuter.
Pouréviterquelecomposantnesoitlancéàlaréceptionden'importequelintent,ledéveloppeurdeBadNewsajouteunevéricationsupplémentairelorsdelaréceptiondumessage.
Ilvériequel'intentreucontienneunparamètreupdateetquelavaleurassociéeàceparamètrevauttrue.
Nousenvoyonsainsimanuellementunintentavecunparamètreupdatedontlavaleurassociéevauttrueàcecomposantanquelecodemalveillants'exécuteetquenouspuissionsobserverlesuxd'informationqu'ilcause.
Nouseectuonsl'envoigrceàlacommandeam,accessibleàpartirdushelld'Androidcommelemontrelacommandeci-dessous.
$amstartserviceAPP_NAME/PACKAGE_NAME.
AdvService\--ezupdate15.
2.
VALUATIONDELAMTHODEDECLASSIFICATION113DanslecasdeDroidKungFu1etDroidKungFu2,certainséchantillonsontuneduréeminimaled'attenteavantd'exécuterlecodemalveillant.
Cetteduréeestobtenueensoustrayantl'heuredusystèmeavecunedatestockéedansunchiersstimestamp.
xmldanslerépertoirelocaldel'application.
Lelisting5.
1estlecontenuduchieravanttoutemodicationpourundeséchantillonsdeDroidKungFu1.
Enremplaantlavaleurstockéedanscechierparuneva-leurassezpetite,parexemple1,nousforonsl'exécutionducodemalveillant.
Nouschangeonsicilecontenuduchiersstimestamp.
xmllorsdel'analysedeséchantillonsdeDroidKungFu1etDroidKungFu2andes'assurerquelecodemalveillantsoitexécuté.
1234Listing5.
1–Contenuduchiersstimestamp.
xmld'unéchantillondeDroid-KungFu1QuantauxéchantillonsdejSMSHider,iln'estpasnécessaired'introduireunquelconqueévènementcarlecodemalveillantestexécutédèslelancementdel'application.
Unefoislesapplicationsanalysées,nousconstruisonslesSFGcorrespondantsetcalculonslespartiesquileursontcommunesavecunoutilimplémentantl'algorithme3.
Nousprésentonsdanscequisuitlesrésultatsobtenus.
RésultatspartirdesSFGobtenus,nousavonscalculé4prols,c'est-à-dire4SFG.
chacund'entreeuxestassociéunsous-ensembledesSFGdonnésenentrée.
Letableau5.
1présentelesrésultatsducalcul.
Lapremièrecolonnelisteleséchantillonsutilisés.
Ladeuxièmecolonneindiquelafamilleàlaquellel'échantil-lonappartientselonlaclassicationeectuéeparlesauteursdelacollectiond'oùilprovient.
Latroisièmecolonneindiquelacollectiond'oùprovientl'échantillon.
LescolonnesrestantesreprésententchacuneunprolquiaétécalculéàpartirdesSFGdeséchantillons.
Pourchaqueéchantillon,unecasenonvidedansl'unedecescolonnessigniequeleSFGdel'échantilloncontientleSFGcorrespondantauprol.
Parconséquent,leprolcaractériselecomportementdel'échantillon.
Lesprolscalculéssontillustrésparlesgures5.
1,5.
2,5.
3et5.
4.
LeSFGdel'échantillonlive.
photo.
savanna.
apkcontientparexempleS0,leSFGillustréparlagure5.
1.
Surles19échantillonsutilisés,17d'entreeuxsontregroupésexactementselonleurclassicationdansleurbased'origine.
LeprolS0,gure5.
1,caractériseleséchantillonsdeBadNews.
Ildécritl'envoidesdonnéesdel'applicationversundeuxserveursdistant,letéléchar-gementdedeuxapplicationsetunepartiedeleurinstallationainsiquedeleurexécution.
L'envoidesdonnéescorrespondauxuxpartantdunavigateur,and-114CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREEmpreinteMD5deséchantillonsFamille:Origine§S0S1S2S398cfa989d78eb85b86c497ae5ce8ca19BNC'e70964e51210f8201d0da3e55da78ca4BNI'4ecf985980bcc9b238af1fdadd31de48BNI'ccab22538dd030a52d43209e25c1f07bBNI'3a648e6b7b3c5282da76590124a2add4BNI'994af7172471a2170867b9aa711efb0dDKF1G'39d140511c18ebf7384a36113d48463dDKF1G'7f5fd7b139e23bed1de5e134dda3b1caDKF1A'107af5cf71f1a0e817e36b8deb683ac2DKF1A'6625f4a711e5afaee5f349c40ad1c4abDKF1G'6b7c313e93e3d136611656b8a978f90dDKF1A'4f6be2d099b215e318181e1d56675d2cDKF2G'72dc94b908b0c6b7e3cb293d9240393cDKF2G'f438ed38b59f772e03eb2cab97fc7685DKF2G'ac2a5a483036eab1b363a7f3c2933b51DKF1A'0417b7a90bb5144ed0067e38f7a30ae0JSHG'a3c0aacb35c86b4468e85bfb9e226955JSHG'd25008db2e77aae53aa13d82b20d0b6aJSHA'24663299e69db8bfce2094c15dfd2325JSHA':BN:BadNews,DKF1:DroidKungFu1,DKF2:DroidKunFu2,JSH:jSMSHider§C:Contagio,G:GenomeProject,A:Androguard,I:InternetTable5.
1–Classicationdes19échantillonsdemalware.
5.
2.
VALUATIONDELAMTHODEDECLASSIFICATION11557664-les/player24642-/data/dalvik-cache/data@app@com.
realarcade.
DOJ-1.
apk@classes.
dex1047-dexopt*1050-.
realarcade.
DOJ**81-mediaserver***57667-les/stats*57663-les/4200*57665-les/4201*57666-les/multi**32791-/data/app/com.
realarcade.
DOJ-1.
apk***320-ndroid.
launcher*57460-downloads.
db577-iders.
downloads*57361-data_30-(82.
x.
x.
x)762-id.
defcontainer7958-/mnt/asec/smdl2tmp1/pkg.
apk*1026-ackageinstaller*15-/sdcard/download/adobe.
ash.
apk*80-drmserver*14-/sdcard/download/doodle.
jump.
apk*275-d.
process.
media*57378-downloads.
db-journal*973-android.
browser****8237-/data/drm/fwdlock/kek.
dat***0-(213.
x.
x.
x)******Figure5.
1–S0:sous-grapheencommundeséchantillonsdeBadNews116CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREroid.
browser,versdeuxsocketsréseaux.
Surlagure,nousavonsintentionnel-lementmasquéunepartiedesadressesIP.
Aprèsvérication,l'unedesadresses,213.
x.
x.
x,estcelleduserveuràpartirduquellesapplicationssonttéléchar-gées.
Letéléchargementestdécritparl'écriturededonnéessensiblesdansdeuxchiersapkparleprocessusiders.
downloads.
Cedernierexécutel'applicationpardéfautenchargedestéléchargementsdechier.
L'accèsàcesdeuxchiersparlesprocessusid.
defcontaineretpackageinstallerindiqueleurinstal-lationetlapremièrecomposanteconnexeduSFGenpartantduhautdécritl'exécutiond'unenouvelleapplication,unedecellesquiontététéléchargéesparlemalware.
Ici,ils'agitdelaversioninfectéedeDoodleJump.
L'exécutiondel'autreapplicationn'estpasprésentedansleprolcarilestinstallédansunré-pertoirechiréquinesupportepaslesattributsétendus.
IlestainsiimpossiblepourAndroBlaredesuivrelesuxd'informationimpliquantleschiersdanscetypederépertoire.
LeprolS1,gure5.
2,caractériseleséchantillonsdeDroidKungFu1àl'ex-ceptiondedeuxd'entreellesquenousexpliqueronsdansleparagraphesuivant.
S1décritlacopiededeuxchiersdanslapartitionsystemetl'exécutiondel'uned'entreellesparlasuite.
Leurdestinationindiquequ'ils'agitd'uneapplicationnativeetd'uneapplicationAndroid.
8330-/system/app/com.
google.
ssearch.
apk338-ndroid.
launcher*1106-dexopt*57656-/data/data/blare-anonym/gjsvro1056-gjsvro**0-(127.
0.
0.
1)*16735-/system/bin/gjsvr*24640-/data/dalvik-cache/system@app@com.
google.
ssearch.
apk@classes.
dex*1105-cat**57660-/data/data/blare-anonym/legacy**Figure5.
2–S1:sous-grapheencommundeséchantillonsdeDroidKungFu1LeprolS2,gure5.
3,caractériseleséchantillonsdeDroidKunFu2ainsiquedeuxéchantillonsdeDroidKungFu1quinesontpascaractérisésparS1.
S2indiquel'accèsducontenudedeuxchiersaucontenuteintésparlesprocessussecbinoetcat.
Sicesuxn'indiquentriendemalveillantensoi,ellescorres-pondentcependantaudébutdel'attaqueeectuéeparlemalware.
Cesprocessusserventeneetàlacopied'applicationsmalveillantesdanslesystème.
Comme5.
2.
VALUATIONDELAMTHODEDECLASSIFICATION117mentionnéprécédemment,deuxéchantillonsdeDroidKungFu1sontégalementcaractérisésparS2.
LaraisonestqueceséchantillonspartagentuniquementdescomportementsencommunavecleséchantillonsdeDroidKunFu2entermedeux.
Ainsiaucunechiergjsvrooucom.
google.
search.
apk,nilesprocessuscorrespondantsn'ontétécréésdurantleuranalyse.
1111-cat57651-/data/data/blare-anonym/mycfg.
ini1113-cat*1073-secbino*971-secbino57656-/data/data/blare-anonym/WebView.
db**57652-/data/data/blare-anonym/secbino*Figure5.
3–S2:sous-grapheencommundeséchantillonsdeDroidKungFu2LeprolS3,gure5.
4,caractériseleséchantillonsdejSMSHideretdécritl'installationainsiqueledébutdel'exécutiond'unenouvelleapplication.
L'accèsauchiertestnew.
apkparleprocessusid.
defcontainerindiquel'installationd'unenouvelleapplication.
LalectureduchierjSMSHider.
apkparleprocessusdexoptpuislacréationd'unchier.
dexparcedernierindiquel'exécutiond'unenouvelleapplication.
Eneet,leprocessusdexoptestceluiencharged'extrairelecodedesapplicationsàpartirdel'apketdecréersaversionoptimisée.
partirdesSFGd'échantillonsde4famillesdemalware,nousavonsextrait4prolscomportementauxsouslaformedeSFG.
Chacundecesprolscorres-pondàunefamilledemalwareetdécritunepartiedescomportementsconnusdecesmalwares.
LecalculdecesprolsestrendupossiblegrceauxSFGde7applicationsbénignesquinousserventàltrerlesélémentsfaisantpartiedecesprols.
Lalisted'applicationestcomposéede5jeux(AngryBirds,CrazyJump,FingerprintscanneretDentist),d'unnavigateurinternet(Firefox)etdedeuxutilitaires(unterminaletlaboteàoutilbusybox).
883-dexopt24640-/data/dalvik-cache/data@app@j.
SMSHider-1.
apk@classes.
dex**32788-/data/app/j.
SMSHider-1.
apk*748-id.
defcontainer57659-/data/data/blare-anonym/les/testnew.
apk*Figure5.
4–S3:Sous-grapheencommundeséchantillonsdejSMSHider118CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREFiltrageNombredegroupecréésAucunltrage1Sanslalisteblanche4Filtredebaseplus7SFG420applicationsdeGooglePlay4Table5.
2–Nombredeprolsobtenusenvariantleltrage5.
3DelanécessitédultrageNousappliquonsunprocessusdeltragedansl'évaluationeectuéeensec-tion5.
2.
2.
Celtreestcomposédesarcsdécrivantdesuxaveclesprocessussystem_serveretmediaserverainsiqueceuxdesSFGde7applications.
Laraisondeceltrageestd'éviterdecalculerdesclassesetprolstropgénériquesquinereètentaucunmalware.
Andemontrerlanécessitédeceltrage,nousrépétonsl'expériencemaisenfaisantvarierleltrage.
Nousavonsréa-lisél'expériencesansutiliseraucunltre,c'est-à-diresanslisteblanchenilesuximpliquantlesconteneurscitésensection5.
1,sanslalisteblanchepuisenutilisantleltragedelasectionprécédentemaisenajoutantdesSFGsup-plémentairesàlalisteblanche.
Letableau5.
2présentelesrésultatsobtenus.
Chaqueligneprésentelerésultatobtenuselonleltrageappliqué.
Lapremièrecolonnelistelesdiérentsltragesetlasecondelenombredeprols/groupescréé.
Nousdiscutonsdanscequisuitdelapertinencedesgroupescréés.
Enutilisantaucunltrage,l'algorithmeextraitunseulsous-graphequiestunepartiecommuneauxSFGdes19échantillonsdemalwareutilisés.
La-gure5.
5illustrecesous-graphe.
Lesuxdécritsparlesous-grapheindiqueuni-quementdeséchangesd'informationentreleprocessussystem_serveretdié-rentsprocessus.
Leprolcalculéesttropgénériqueetnedécritaucuncompor-tementmalveillantconnudesmalwaresutilisés.
Enltrantsanslalisteblanche,nousobtenons4prolsassociésà4groupesdiérents.
Silenombredeprolscorrespondaunombredemalwaresutilisés,ilsnedécriventcependantaucuneactionmalveillanteetleséchantillonsdanschaquegroupesontdeséchantillonsdemalwarediérentdontlecomportemententermedeuxd'informationnedevraitpasêtrelemême.
Lesgures5.
6,5.
7,5.
8et5.
9illustrentlesprolscalculésetdécriventdesuxtoutàfaitnormauxdanslesystème.
Lapremièreguredécritparexempleunsimpleéchanged'informationentrelesapplicationssystèmecom.
android.
phoneetcom.
android.
systemui.
Enétendantlalisteblancheutiliséeensection5.
2.
2de20SFGsupplémen-taires,nousobtenonslesmêmesprolsetlesmêmesgroupesqueceuxcalculésdanslasection5.
2.
2.
Augmenterlenombred'élémentsdanscettelisteestinutileetlesSFGdesapplicationsquilacomposentreprésententdemanièresatisfai-santelescomportementsgénériquesquenoussouhaitionsignorerdurantnotreclassication.
5.
3.
DELANCESSITDUFILTRAGE119326-ndroid.
launcher135-system_server*82-mediaserver*292-m.
android.
phone*903-app_process****206-ndroid.
systemui*673-ufou.
android.
su*310-com.
android.
nfc**32783-/data/app/blare-anonym-1.
apk*Figure5.
5–Prolcalculélorsqu'aucunltragen'estréalisé120CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWARE308-m.
android.
phone221-ndroid.
systemuiFigure5.
6–Premierprolcalculéenutilisantaucunelisteblanche202-ndroid.
systemui32781-/data/app/blare-anonym-1.
apkFigure5.
7–Secondprolcalculéenutilisantaucunelisteblanche276-d.
process.
media57526-/data/data/com.
android.
providers.
media/databases/external.
db57524-/data/data/com.
android.
providers.
media/databases/external.
db-walFigure5.
8–Troisièmeprolcalculéenutilisantaucunelisteblanche1400-m.
android.
email1416-ndroid.
exchange57472-/data/data/com.
android.
email/databases/EmailProvider.
db57473-/data/data/com.
android.
email/databases/EmailProvider.
db-journalFigure5.
9–Quatrièmeprolcalculéenutilisantaucunelisteblanche5.
4.
DTECTIOND'EXCUTIONDEMALWAREANDROID121L'algorithme3quenousavonsproposédanscettesectionestalgorithmedeclassicationquiregroupelesSFGdesapplicationsayantdespartiescommunesnonnullesetcalculeàlafoisleprolcorrespondantàchaqueclasse.
Nousavonsévaluécetalgorithmeavecunjeudedonnéesde19échantillonsprovenantde4famillesdemalwarediérentes.
Enappliquantl'algorithmesurlesSFGdes19échantillons,nousavonscalculé4prolstelsquechaqueprolcorrespondeàunefamilledemalwarediérentetdécritlecomportementmalveillantdumalwareauquelilcorrespond.
Danslasectionquisuit,nousproposonsuneméthodededétectiond'échantillondemalwareenutilisantlesprolscalculésparnotrealgorithme.
5.
4Détectiond'exécutiondemalwareAndroidLesrésultatsprécédents,tableau5.
1,montrentqueleséchantillonsdemal-warepeuventêtrecaractérisésparunSFGquidécritunepartiedecomporte-mentmalveillantqu'ilsont.
Danscettesection,nousproposonscettefoisd'uti-lisercesprolsSFGpourdétecterl'exécutiond'autreséchantillonsdemalware.
Plusprécisément,nousproposonsd'utilisercesprolsSFGentantqueprolderéférenceandedétectersilesdonnéesd'uneapplicationsoussurveillancesepropagentdelamêmemanièrequecelledécriteparl'undesSFG.
L'algorithme5décritleprocessusdedétectionpouruneapplication/infor-mationdonnée.
IlprendenentréelesuxobservésparAndroBlareainsiqu'unelistedeprolSFGaveclesquelsilcomparelesuxobservéspourdétecterl'exé-cutiondemalware.
l'initialisationduprocessusdedétection,nouscommen-onsparconstruireunelisted'associationdanslaquellenousassocionschaquearcdesprolsdonnésenentréeaveclalistedesprolsSFG(s)oùilestprésent.
Cetteétapefacilitelarecherched'unecorrespondanceentrelesuxobservésetlesarcsdesprolsSFG.
Lorsdelaphasededétection,nouscomparonsensuitechaqueuxobservéaveclesarcsdesdiérentsprolsSFGandetrouverunesimilaritéentreeux.
Siunesimilaritéesttrouvée,nouslevonsunealerte.
Nousconsidéronsqu'ilyaunesimilaritéentreunuxd'informationetunarcsilesconteneursd'informationdedépartetd'arrivéeduuxobservésontrespective-mentlesmêmequeceuxdécritsparlesnudsdedépartetd'arrivéedel'arcetquelesinformationsquisepropagentdansleuxobservéetceluiduuxdécritparl'arcsontlesmêmes.
Leconteneurd'informationdansuneentréedeBlareestlemêmequeceluireprésentéparunnudd'unSFGlorsqu'ilsontlemêmetypeetlemêmenom.
Aprèsavoirlevél'alerte,nousenlevonsl'arcdelalisted'associationandenepasleverlamêmealerteplusieursfois.
122CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREAlgorithme5:Détectiondel'exécutiondemalwareAndroidbasésurlesuxd'informationcausédanslesystèmeInput:LjournaldeBlare,sig_llistedeprolsSFGbeginnotseenemptyassociationlist;forallthegPsig_ldoforalltheePedgespgqdoifeRkeyspnotseenqthenAddpe,tguqtonotseen;elseoldvaluepe,notseenq;Removepe,oldqfromnotseen;Addtheassociationpe,oldYtguqtonotseen;foralltheentryePLdoifto_edgepeqPlightkeyspnotseenqthenlvaluepto_edgepeq,notseenq;forallthegPldoAlertthatasimilaritywithnamepgqhasbeenfound;Removepto_edgepeq,lqfromnotseen;5.
5valuationdelacapacitédedétectionAnd'évaluerlacapacitédedétectiondel'approcheprésentéeprécédem-ment,nousproposonsdeuxtypesd'expérience.
Lepremierconsisteàévaluerletauxdefauxpositif,c'est-à-direcalculerletauxdefaussesalerteslevéeslorsquedesapplicationsbénignessontanalysées.
Ledeuxièmeconsisteàéva-luerletauxdevraipositif,c'est-à-direcalculerletauxd'alerteslevéeslorsquedesapplicationsmalicieusessontexécutées.
Pourmenercesexpériences,nousproposonsd'analyserdesapplications,bénignesetmalicieuses,dansl'environ-nementd'analyseprésentéensection3.
5etàpartirdesuxobservésdétecterlesexécutionsdemalware.
JeudedonnéesNousutilisons70desapplicationslespluspopulaires2dansGooglePlaypourlapremièreexpérienceet39échantillonsdemalwareprovenantdes4famillesdemalwareutiliséesdanslasection5.
2.
2.
Noussupposonsqueles70applicationssontbénignescarellesn'ontlevéaucunealertelorsquenouslesavonssoumisesàlaplateformed'analysedeVirusTotal[14].
2.
aumoisdeJuin20135.
5.
VALUATIONDELACAPACITDEDTECTION123Analysedesapplicationsetdétectiondel'exécutiondemal-wareLeprocessusd'analysedechaqueapplicationsestlemêmequ'ensection5.
2.
2.
IlsetraduitparsoninstallationdansunenvironnementAndroBlare,lemar-quagedesonapketsonexécution.
Nousutilisonschaqueapplicationcommeunutilisateurnormalleferaitetenparallèle,nousintroduisonslesévènementsdéclenchantlecodemalveillantdansleséchantillonsdemalware.
Introduirecesévènementsnousassurequelecodemalveillantsedéclenchedurantl'analyseandedéterminersiouiounonnotreapprochepermetdedétecterl'exécutionducodemalveillant.
Unefoislesapplicationsanalysées,nousanalysonslesuxobservésparAn-droBlarepourdétecterl'exécutiondemalware.
Ladétectionestréaliséeulté-rieurementàl'analysecarnoussouhaitionscollecterlesuxetêtrecapablesdelesréutiliserplustard.
L'outilutiliséestcependantcapabledefaireladétectionentempsréel.
RésultatdeladétectionLorsdel'analysedesuxengendrésparlesdiérentesapplications,notreoutilalevédesalertespourchacundeséchantillonsdemalwareetaucunepourlesapplicationsbénignes.
Lestableaux5.
3et5.
4résumentlerésultatdesexpériencesmenéesrespectivementsurlesapplicationsbénignesprovenantdeGooglePlayetleséchantillonsdemalware.
Lepremiertableauprésentelesrésultatsaveclesapplicationsbénignespro-venantdeGooglePlay.
Lapremièrecolonnelistelesdiérentescatégoriesd'ap-plicationutiliséedurantl'expérience.
Ladeuxièmeindiquelenombred'échan-tillonsutiliséspourchaquecatégorie.
Latroisièmeindiquelescorrespondancesentrelesuxobservésetl'unedesprolsutilisés.
Ladernièreindiqueletotaldesuxobservéslorsdel'analysedesapplicationsdechaquecatégorie.
Ledeuxièmetableauprésentelesrésultatsobtenusavecleséchantillonsdemalware.
Lapremièrecolonnelisteleséchantillons.
Ladeuxièmeindiquecom-mentl'échantillonaétécatégorisédanssacollectiond'origine.
Latroisièmeindiquelacollectiond'originedel'échantillon.
LaquatrièmeindiquelenombredeuxobservésparAndroBlaredurantl'analyse.
Lescolonnesrestantesin-diquentlenombredecorrespondanceentreleprolSFGetlesuxobservés.
Plusprécisément,lesvaleursdanscescolonnesindiquentlenombred'arcduprolSFGquicorrespondentàaumoinsundesuxobservésdurantl'analysedel'échantillon.
L'analysedesuxcausésparlesapplicationsbénignesmontrequenotreoutiln'adétectéaucunuxquicorrespondàl'undesarcsdesprolsutilisés.
Surles70applicationsbénignesanalysées,aucunen'aétédétectéecommeexécutantducodemalveillant,cequinousdonneuntauxdefauxpositifnul.
Chaqueéchantillondemalwareacausélalevéed'alerteparnotreoutildedétection.
Plusprécisément,chaqueéchantillonaétédétectéavecleprolSFGcorrespondantàlafamilled'origineàlaquelleilestsupposéappartenir.
Ainsi,les124CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWARECatégoriechantillonsSignatureJournalmatchentriesJeux4807386736Utilitaires80403427Réseauxsociaux50567605Photo/Vidéo50579883Magazine30169622Table5.
3–RésultatdedétectionsurlesapplicationsbénignesprovenantdeGooglePlay.
Tauxdefauxpositif:0%échantillonsdeBadNews,DroidKungFu1,DroidKungFu2etjSMSHiderontétédétectésrespectivementgrceauprolS0,S1,S2etS3.
Lamajoritédeséchan-tillonsacauséautantd'alertequedenombred'arcqueleprolpourlequelunecorrespondanceaététrouvé.
L'échantillonlive.
photo.
drop.
apkaparexemplecausé36uxdiérentsquicorrespondentaux36arcsduprolSFGdeBadNews.
Cependant,quelqueséchantillonsn'ontcausélalevéed'alertequepourunepar-tiedesarcsduprolSFGdelafamilledemalwareàlaquelleilssontassociés.
Celaestdaufaitquedurantleuranalyse,unepartieducomportementat-tendunes'estpasexécuté.
L'échantillon41f7b03a94d38bc9b61f8397af95a204n'aparexemplecauséque4correspondancessur11entrelesuxqu'ilaen-gendrésetlesarcsdeS1.
LeprolS1décritl'installationdedeuxapplications,unenativeetuneapkdanslapartitionsystemdutéléphone.
L'échantillonn'acependantinstalléquel'applicationnativedurantnotreanalysecarl'apkcenséêtreinstalléestunchiervideetlaprocédured'installationestainsiavortéeparlesystème.
5.
5.
VALUATIONDELACAPACITDEDTECTION125EmpreinteMD5deséchantillonsLabel:Origin§LogsizeS0;S1;S2;S3;d25008db2e77aae53aa13d82b20d0b6aJSHA795984{424663299e69db8bfce2094c15dfd2325JSHA1796084{439d140511c18ebf7384a36113d48463dDKF1A/G356511{117f5fd7b139e23bed1de5e134dda3b1caDKF1A577211{11a81dc5210b3444b8e6f002605a97292dDKF1A32333{11107af5cf71f1a0e817e36b8deb683ac2DKF1A725711{11ac2a5a483036eab1b363a7f3c2933b51DKF1A35965{5e741a9bc460793b9afdadc963d6e8c1dDKF1A32303{116b7c313e93e3d136611656b8a978f90dDKF1A77405{5389b416fb0f505d661716b8da02f92a2JSHG1797024{4a3c0aacb35c86b4468e85bfb9e226955JSHG75274{40417b7a90bb5144ed0067e38f7a30ae0JSHG321454{4d25008db2e77aae53aa13d82b20d0b6aJSHG1229514{4f0fcef1c52631ae36f489351b1ba0238JSHG2118234{406dea6a4b6f77167eaf7a42cb9861bbeDKF1G727066{11994af7172471a2170867b9aa711efb0dDKF1G1395911{11107af5cf71f1a0e817e36b8deb683ac2DKF1G18722111{1171fe80d5bf6d08890de3c76a3292fc09DKF1G1570911{11ecc4aad77ab042a4fa1693fc77afb8acDKF1G10791011{11b763bc07f641bb915a4e745f1de315DKF1G1809848{116625f4a711e5afaee5f349c40ad1c4abDKF1G498211{115c593a7ab5e61f76d2e0e61c870da986DKF1G9936311{1141f7b03a94d38bc9b61f8397af95a204DKF1G134744{11f438ed38b59f772e03eb2cab97fc7685DKF2G349065{54f6be2d099b215e318181e1d56675d2cDKF2G2839905{5805bbc69ef376c4b5f2c1b1c1006d2DKF2G494045{513a491126dd11f1ef51a4b067f10f368DKF2G2784255{572dc94b908b0c6b7e3cb293d9240393cDKF2G2941635{5e4d348e97db481507a0cea64232c8065DKF2G646165{547c035dd1288bad27b3681535e68c8BNI29881936{36d8943ed5be382c22c9a206af08150aBNI36357836{36ccab22538dd030a52d43209e25c1f07bBNI16783736{363a648e6b7b3c5282da76590124a2add4BNI33251936{364ecf985980bcc9b238af1fdadd31de48BNI12516736{365b08c96794ad5f95f9b42989f5e767b5BNC13284636{36422d1290422ebfbf48ec34f0990fba21BNI63420235{3698cfa989d78eb85b86c497ae5ce8ca19BNC56892036{36e70964e51210f8201d0da3e55da78ca4BNI25332036{368b9e8a2e93c3f3c18b8f5820f21e2458BNI14924836{36:BN:BadNews,DKF1:DroidKungFu1,DKF2:DroidKunFu2,JSH:jSMSHider§C:Contagio,G:GenomeProject,A:Androguard,I:InternetTable5.
4–Résultatsdeladétectionsur39échantillonsdemalware.
TauxdeVraiPositif:100%126CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREBilanetdiscussionNousavonsprésentéetévaluédanscechapitreunenouvelleméthodedeclassicationetdedétectiondeséchantillonsdemalwarebaséesurlesuxd'in-formationqu'ilscausentdanslesystèmedécritsparleurSFG.
Laméthodedeclassicationproposéepeut-êtrevuecommeunapprentissagenonsuperviséoùnouscherchonsàconstruiredesclassesd'échantillonsdemalwareoùlesSFGdesélémentsd'unemêmeclassepartagenttousunepartiecommune.
Cettepartiecommuneestcenséedécrirel'attaquemenéeparle(s)malware(s)etcaractériserleséchantillonsdelaclassequ'ellereprésenteentantqueprolcomportemental.
Nousavonsévaluélaméthodeproposéeenclassiant19échantillonsde4mal-waresdiérents.
Laclassicationdeceséchantillonsadonnéensortie4classesdistinctesquireprésententchacunundes4malwaresetlapartiecommunedesSFGdesélémentsdechaqueclassedécritunepartiedel'attaquemenéeparlesmawares.
partirdesprolscaractérisantchaqueclasse,nousavonsproposédedétec-terdeséchantillonsdes4malawresutilisésdurantlaclassication.
Laméthodededétectionconsisteàcomparerlesuxobservéscausésparleséchantillonsana-lysésaveclesarcsdesprolscomportementauxcalculés.
chaquefoisqu'unecorrespondanceesttrouvée,unealerteestlevée.
Nousavonsévaluécettemé-thodeavec36échantillonsdemalwareainsique70applicationsbénignespro-venantdeGooglePlayetavonsobtenuuntauxdevraipositifde100%ainsiqu'untauxdefauxpositifde0%.
Leséchantillonsdemalwareontbienétédé-tectéetaucunealerten'aétélevéedanslecasdesapplicationsbénignes.
Deplus,chaqueéchantillondemalwareaétédétectégrceauprolcaractérisantlaclasseassociéeaumalwareobtenuedurantlaclassication.
Laraisondelaqualitédesrésultatsobtenusaussibienpourlaclassicationquepourladétectionestqueleprolcalculéneselimitepasauxprocessusexé-cutantleséchantillonsdemalware.
Ilinclutégalementtoutélémentdusystèmeayantaccèsauxinformationsprovenantdeséchantillonsdemalware.
Mêmesiunmalwarechangesonaspect,leprolcalculéneseraquetrèspeuimpactécarlemalwaren'apasdecontrleoualorstrèspeusurtouslesautresélémentsdusystèmeayantaccèsàsesinformationsaudébutdel'attaque.
Silecascontraires'avéraitêtrevrai,c'est-à-direquelemalwareauncontrletotalsurtouslesautresélémentsdusystème,alorsilpourraitpropagersesinformationsdema-nièrediérenteàchaqueexécutionetempêchernotrealgorithmedecalculerunproloudedétecterl'exécutiondel'undeseséchantillons.
L'approcheproposéesebasesuruneanalysedynamiquedesapplicationsand'observerlesuxd'informationqu'ellescausentdanslesystème.
Commetouteapprochedynamique,ellesoureainsidelamêmelimitationquiestlacouverturedecodedurantl'analyseetqui,pourlemoment,limitelapossibilitéd'automatiserentièrementtoutleprocessusd'analyseetdeclassicationdesap-plications.
Eneet,durantl'analysenousstimulonslesapplicationseninteragis-santavecellesvialeurinterfacegraphiqueetintroduisonsdesévènementsdanslesystèmeandedéclencherlecodemalveillantdansleséchantillonsdemal-ware.
Cettestimulationestréaliséemanuellement.
Deplus,ilnousanécessité5.
5.
VALUATIONDELACAPACITDEDTECTION127d'analyserquelqueséchantillonsdemalwareandedéterminerlesévènementsdéclenchantlecodemalicieuxprésentsdansleurcode.
Ilseraitainsiintéressantpourstimulerlesapplicationsetcouvrirlemaximumdecodeàl'exécution.
LaméthodedecaractérisationdemalwareAndroidproposéedanscechapitreafaitl'objetd'unepublicationàlaconférenceNSS14[17].
128CHAPITRE5.
CARACTRISATIONETDTECTIONDEMALWAREChapitre6ConclusionDanscettethèsenousavonsproposéetévaluéunenouvelleméthodeandecaractériser/classieretdétecterlesmalwaresAndroid.
And'yarriver,noussommespassésparplusieursétapesquiontconsistéàporterunmoniteurdeuxd'informationsurAndroid,proposerunestructurecompacteethumainementcompréhensibledesuxd'informationquelemoniteurobservequipuisseaiderunanalysteàcomprendrelecomportementd'uneapplicationetclassierainsiquedétecterleséchantillonsdemalwareàpartirdecettestructure.
LapremièreétapedelathèseaconsistéàcréerAndroBlare,uneversionAndroiddeBlare.
BlareaétéinitialementdéveloppépourlessystèmesLinux,etplusprécisémentpourlesnoyauxLinux.
SilesystèmeAndroidestprochedessystèmesLinux,lenoyauAndroidétantbasésurlenoyauLinuxetsuitlamêmenumérotation,ilpossèdecependantquelquesfonctionnalitésquiluisontpropresetqu'ilafalluprendreencomptelorsduportagedeBlareversAndroid.
Cesfonctionnalitéssontl'exécutiondesapplicationsAndroidetlemécanismedecommunicationentreprocessusvialeBinder.
NousavonsainsiintroduitdeuxextensionsdansAndroBlarepourprendreencomptecesdeuxfonctionnalitésd'Android.
Cesextensionsajoutentlapriseencomptedesuxd'informations'opérantvialeBinderetunmécanismedecoopérationentrelesinstancesdelamachinevirtuelleDalviketKBlare.
Cesdeuxextensionssontimportantescarellespermettentd'observerlesuxd'informationentrelesapplicationsAndroidainsiquel'exécutiondesapplications.
DiérentsmécanismessontutilisésparlesapplicationspourcommuniqueraveclerestedesapplicationssurlesystèmeettouscesmécanismesreposentsurleBinder.
Cescommunicationsn'étaientcependantpasvisiblesaveclaversionLinuxdeBlarecarBinderestspéciqueàAndroidetn'estdoncpasprisencompte.
LapremièreextensioncombledonccettelimitationdeBlareeninterceptantlesémissionsetréceptiondetransactioneteneectuantlesopérationsdepropagationetdecontrledesuxd'infor-mationcorrespondantes.
QuantauxapplicationsAndroid,leurexécutionestégalementinvisibleaveclaversionLinuxdeBlare.
Lecodedecesapplicationsétantlivrésousformededalvikbytecode,ellesnesontpasexécutéesdirectementmaisinterprétéesparlamachinevirtuelleDalvik.
Ladeuxièmeextensionpermet129130CHAPITRE6.
CONCLUSIONdonc,grceaumécanismedecoopération,decomblercetteautrelimitationdelaversionLinuxdeBlare.
Grceàcemécanismedecoopération,lesinstancesdelamachinevirtuelleDalviknotientKBlaredanslenoyauàchaquefoisquelecoded'uneapplicationestsurlepointd'êtreinterprété.
laréceptiond'unenotication,KBlaremetàjourlelabelduprocessusexécutantlamachinevir-tuelleayantémislanoticationpoursignierlecodequ'ilexécuteetappliquerlapolitiquedeuxd'informationdel'applicationauprocessus.
Ladeuxièmeétapeaconsistéàproposerunestructurereprésentantdema-nièrepluscompacteetpluscompréhensiblelesuxd'informationobservésparBlarequenousavonsappellégraphedeuxsystèmeouSFG.
Pouruneinfor-mationdonnée,leSFGdécritcommentelleestpropagéedanstoutlesystème.
Commenousl'avonsmontrédanslechapitre4,cettestructures'avèreutilesurtroisaspects.
Premièrement,sareprésentationestpluscompacteetfacilitel'analysedesuxd'informationobservésdanslesystème.
chaquefoisqu'unuxd'informationimpliquantunedonnéesensible,comprendreunedonnéeàlaquelleunidentiantaétéassocié,estobservé,Blareajouteuneentréedécri-vantceuxdansunjournal.
Orcommenousl'avonsmontrédanslechapitre4,certainsdecesuxsontrépétésplusieursfoisdurantl'analysedel'applicationcequiauboutdequelquesentranelacréationdemilliersd'entréesdanslejour-naldeBlarealorsqu'enréalitéseuleunecentainedeuxd'informationuniquesontétéobservés.
Ensuite,leSFGaideàcomprendrelecomportementd'uneapplication.
Dansnotrecas,nousnoussommesintéressésauxapplicationsmal-veillantes.
L'analysed'unéchantillondeDroidKungFu1amontréqu'unepartiedesonSFGdécrivaitl'attaquemenéeparlemalware,àsavoirtentatived'élé-vationdeprivilègeetinstallationdedeuxapplicationsdanslesystème.
Latroisièmeetdernièreétapeaconsistéconsisteenlaclasscationetdétec-tiondemalware.
Danscetteétape,nousavonsproposéd'utiliserleprolsousformedeSFGdesapplicationsand'extraireleprold'unmalware.
Dansl'étapeprécédente,nousavonsmontréqueunepartieduSFGdel'échantillondeDroidKungFu1correspondaitaucomportementmalveillantdumalware.
D'aprèslestravauxdeZhouetal.
dans[113],lesdéveloppeursdemalwareajoutentsou-ventleurcodemalveillantdansplusieursapplicationsexistantespourinfecterlesutilisateurs.
Celasigniedoncquelemêmecodemalveillantpeutêtreretrouvédansleséchantillonsd'unmêmemalwareouqu'unesimilaritéenmatièredecomportementpeutêtreretrouvédanslecodemalveillantdeceséchantillons.
Partantdececonstat,nousavonsémisl'hypothèsequesiunepartieduSFGd'uneapplicationmalveillantecorrespondaucomportementmalveillantetquesilaméthoded'infectionprincipaledesdéveloppeursdemalwareétaitd'injecterleurcodemalveillantdansdesapplicationsexistantesalorsunepartiedesSFGdeséchantillonsd'unmêmemalwaredevraitêtrelemême.
DirectionpourdestravauxfutursLepremierapportdelathèseestAndroBlare,lerésultatduportagedeBlaresousAndroid.
AndroBlaresuitlesuxd'informationenconsidérantles131objetsdusystèmecommedesbotesnoires.
Commenousl'avonsévoquéensection2.
6,uneobservationauniveausystèmeoreunevuecomplètedesuxentrelesdiérentsobjetsdusystèmemaisaunegranularitémoinsnequ'uneobservationauniveauapplicatif.
Parexemple,danslecasd'AndroBlare,unuxd'unobjetAversunobjetBsigniequetouteslesinformationsdansAsepropagentversB(piredescas).
Celan'estpasforcémentlecasetilsepeutqu'aucuneinformationsensiblenesesoitpropagée.
Lagranularitéd'observationn'estdoncpasassezne.
Unaxeàexplorerseraitainsidecombinerlesniveauxd'observationsystèmeetapplicatifsousAndroidand'anerlagranularitédesuxobservés.
L'apportd'unetelleestnonnégligeabledanslecasdecertainsprocessustelsquesystem_servercarceprocessusexécuteplusieursservicesavecquilesapplicationsinteragissenttous,cequiestunesourcedel'explosiondesmarquesdanslaversionactuelled'AndroBlare.
Unautreapportdelathèse,quiestleprincipal,estl'usagedesSFGentantqueproldesmalware.
Pourcalculerceprol,nouscalculonslesintersectionsdesSFGdeséchantillonsdemalware.
Cetteintersectionn'autoriseaucunedé-viation,mêmemoindre,danslesuxobservés.
Parexemple,lesuxdécrivantunprocessusP1communiquantavecunprocessusP2viaunchieretlesuxdécrivantlesmêmesprocessusP1etP2communiquantcettefoisdemanièredirectesontconsidéréscommedesuxdiérents.
Cependant,danslaréalité,ilsdécriventlamêmeactionquiestlacommunicationentredeuxprocessus.
Nousparlonsdanscecasdeuxsimilaire.
Ilseraitainsiintéressantd'explorerl'usagedelasimilaritéàlaplaced'unecorrespondancestricteentrelesuxd'informationobservés.
L'usagedelasimilaritépourraitparexemplerévélerlaressemblanceentredeuxouplusieursmalware.
Ilpourraitégalementamélio-rerlarésistancedel'approchefaceàdesdéviationsdecomportementdansleséchantillonsdesmalware.
L'approchequenousproposonspourclassieretdétecterlesmalwareestuneapprochedynamique.
NousanalysonsdansunenvironnementAndroBlarelesapplicationsandecapturerlesuxd'informationqu'ilscausentdanslesystème.
L'unedeslimitesdecetteapprocheestlacouverturedecode.
Nouscouvronsdurantl'exécutionqu'unepartiedetoutlecodedel'applicationquenousanalysons.
Danslecasdel'analysedeséchantillonsdemalware,nousavonsparexempleduanalyséstatiquementleurcodeandetrouverlesévènementsdéclenchantlecodemalveillant.
Cesévènementsontensuiteétéintroduitsdu-rantl'analysedeséchantillonsavecAndroBlareandes'assurerqueleurcom-portementmalveillantsoitcapturé.
Quantauxapplicationsbénignes,nouslesavonsutilisécommeunutilisateurnormalpendantcinqminutesmaiscelanegarantiepasunecouvertureoptimaleducode.
UnaxeàexplorerseraitainsiuneméthodepourcouvrirtoutlecodedesapplicationsdurantleuranalyseavecAndroBlareanquetoutleurcomportementsoitcapturéetd'automatisertoutleprocessusd'analysedesapplications.
Celaouvriraitégalementlavoieàuneexpérimentationàplusgrandeéchelledesméthodesdeclassicationetdedétectionquenousavonsproposédanscettethèse.
Ilestsouventplusdiciledenirquedecommencer.
132CHAPITRE6.
CONCLUSIONAnnexeAAnalysed'échantillonsdemalware:recherchedesévènementsdéclenchantleurcodemalveillantLorsdelavalidationexpérimentaledesapprochespourlacaractérisationetladétectiondemalwareAndroid,nousavonsutilisédeséchantillonsde4mal-waresdiérents:DroidKungFu1,DroidKungFu2,jSMSHideretBadNews.
Lebutdesexpériencesmenéesétaitdemontrerqu'ilétaitpossibledecaractérisersousformedeSFGlecomportementmalveillantdesmalwareetd'utilisercesSFGpourdétecterl'exécutiond'autresinstancesdesmalwarequenoussuppo-sionsnon-connues.
Pourcaptureretdétectercecomportementmalveillant,ilsnousafalluintroduiredesévènementsdanslesystèmeandedéclencherlecodemalveillant.
Nousprésentonsdanscequisuitl'analysedequelqueséchantillonsdemalwareandedéterminercesévènements.
A.
1OutilsPouranalyserleséchantillonsdemalware,nousutilisonsprincipalementlesoutilsAndroguardetapktool.
Nousnousservonsprincipalementd'AndroguardandedécompileràlavoléelecodedesapplicationsAndroidetd'apktoolpourextrairelecontenudeschiersapk,décoderenclairlecontenudes-chiersAndroidManifest.
xmlainsiquepourdésassemblerensmalilecodedesapplications.
133134ANNEXEA.
VNEMENTSDCLENCHEURSDECODEMALVEILLANTA.
2BadNewsBadNewsestunmalwareAndroiddécouverten2013quiserépandaitsous-formed'applicationsexistantesinfectéesparuncodemalveillant.
Lerapportd'analyseeectuédans[91]indiquequelecomportementdeBadNewsestdictéparunserveurC&C.
Lorsqu'unclientseconnecte,leserveurluienvoieunecommandeàexécuteretattendsaprochaineconnexionpourluiindiquerlaprochaineactionàeectuer.
Trouverl'évènementdéclencheurducomportementmalveillantdeséchantillonsdeBadNewsrevientainsiàtrouverl'évènementquidéclencheleconnexionversleserveurpuisletraitementdelacommandeàexécuter.
PouridentierlesévènementsdéclencheursducodemalveillantsdeBad-News,nousavonsanalysél'undeseséchantillons1provenantdelacollectionContagio.
L'approchequenousavonsadoptéestdepartirdesdiérentspointsd'entréedel'applicationand'identierlecodeimplémentantlecomportementdeBadNews,puisdéterminerl'évènementattenduparl'applicationpourdé-clencherl'exécutionducode.
Lescomposantssontlespointsd'entréed'uneap-plicationAndroid.
quelquesexceptionsprès,ilsdoiventtousêtrelistésdanslechierAndroidManifest.
xml.
LelistingA.
1présentelecontenudecechierpourl'échantillonanalysé.
Ilindiquequel'applicationpossèdecinqcomposants:deuxdetypeActivity,unServiceetdeuxdetypeReceiver.
L'analyseducodedesdeuxcomposantsReceiverindiquequ'ilsexécutenttousdeuxlamêmeactionàlaréceptiond'unintent,listingA.
2,àsavoirlelan-cementducomposantAdvService.
L'analyseducodedeAdvServices'avèrefructueusecarparmilesméthodesdececomposantsetrouveuneméthodesendRequest,listingA.
3,quiimplémentelecomportementattendudeBad-News:envoid'unerequêteversunserveurdistantetexécutiondediérentesactionsselonlaréponsereue:installationd'application,ajoutderaccourcisurletéléphone,achagedenoticationetc.
Lecodeayantétéidentié,ilresteàdéterminercommentilestappeléetsousquellesconditions.
L'unedesfonctionnalitésd'Androguardestdeconstruirelegraphed'appeldesfonctionsd'uneapplicationetdel'exportersousunformatdegraphereconnupardesoutilsdevisualisationetmanipulationdegraphetelsqueGephi.
GrceàlacommandeandrogexfdansAndroguard,nouscréonsainsiungraphesousleformatgexfdécrivantlesappelsdefonctiondansl'échantillonanalyséetquenouspouvonsouvriravecGephi.
LagureA.
1estunextraitdugraphed'appelproduitquandnouslevisualisonssousGephi.
Chaquenudre-présenteuneméthodedontlelabelcomportelenomdelaclasseoùlaméthodeestdéclarée,sonnometsasignature.
Quantauxarcs,ilsreprésententlesappelsdefonctionentrelesméthodes.
UnarcdeAversBsigniequelaméthodeAap-pellelaméthodeB.
AinsilaméthodesendRequestestdirectementappeléepargetUpdate.
Enanalysantlapremièrecomposanteconnexedugrapheàpartirdubasdelagure,nousremarquonsquesendRequestestuniquementappelédu-rantl'exécutiond'unThreadimplémentéparlaclasseAdvService$12.
Lacom-1.
SHAsum:f1b351d1280422c5d1e3d2b1b04cb96a5d195f622.
méthoderunA.
2.
BADNEWS13519212627282930313436383940414244454647484951ListingA.
1–FichierAndroidManifest.
xmld'unéchantillondeBadNewsposanteconnexeenhautdelagurenousrévèleégalementquelethreadn'estinstanciéquelorsdel'exécutiondelaméthodeonStartCommanddeAdvService,c'est-à-direlorsqu'AdvServicereoitunintentluidemandantdes'exécuter.
L'analyseducodedeonStartCommand,listingA.
4nousleconrmeetnousindiquemêmelaconditionpourquelethreadsoitlancé.
Eneetpourqu'ilsoitexécuté,ilfautquel'intentreuparAdvServicecontienneunparamètreupdatedontlavaleurdoitêtrediérentede03.
Ainsipourlancerl'exécutionducodemalveillantdeBadNews,ilfautenvoyerunintentavecunparamètreupdatedontlavaleurestàtrueaucomposantAdvService.
Danslecasdecertainséchantillons,lecomposantAdvServiceestnommédiéremment.
Ilsutdanscecasd'envoyerl'intentàcecomposant.
Lacommandeampermetl'envoidel'intentàpartirdelalignedecommandesousAndroidcommeillustréci-dessous.
Ilestnécessairedepréciseràlafoisle3.
LesbooléenssontconsidéréscommedesentierssousDalvik136ANNEXEA.
VNEMENTSDCLENCHEURSDECODEMALVEILLANTnomcompletdel'applicationainsiqueceluiducomposantanquelesystèmepuissedéterminerledestinataireexactdumessage.
$amstartserviceAPP_NAME/PACKAGE_NAME.
AdvService\--ezupdate11publicvoidonReceive(android.
content.
Contextp4,android.
content.
Intentp5){2v0=newandroid.
content.
Intent();3v0.
setAction("com.
mobidisplay.
advertsv1.
AdvService");4v0.
putExtra("update",1);5p4.
startService(v0);6return;7}ListingA.
2–Codeappeléàlaréceptiond'unIntentparlescomposantsdetypeReceiverd'unéchantillondeBadNewsA.
2.
BADNEWS137FigureA.
1–Extraitdugraphed'appeldefonctiond'unéchantillondeBadNews138ANNEXEA.
VNEMENTSDCLENCHEURSDECODEMALVEILLANT1privatevoidsendRequest(Stringp24){2v12=android.
net.
Proxy.
getDefaultHost();3v13=android.
net.
Proxy.
getDefaultPort();4v4=newjava.
net.
URL(p24);5if(v13245678910131415161718192021ListingA.
5–ExtraitducontenuduchierAndroidManifest.
xmld'unéchan-tillondeDroidKungFu11publicvoidonCreate(){2super.
onCreate();3v5=this.
getSharedPreferences("sstimestamp",0);4v3=v5.
getLong("start",0.
0,v8);5v0=System.
currentTimeMillis();6if(v3!
=0.
0){7if((v0-v3)>=14400000.
0){8this.
mPreferences=this.
getSharedPreferences("permission",0);9if(com.
google.
ssearch.
Utils.
isConnected(this)!
=0){10this.
doSearchReport();11}12this.
getPermission();13this.
provideService();14}else{15this.
stopSelf();16}17}else{18v2=v5.
edit();19v2.
putLong("start",v0,v1);20v2.
commit();21this.
stopSelf();22}23return;24}ListingA.
6–MéthodeonCreateducomposantSearchServiced'unéchantillondeDroidKungFu1A.
3.
DROIDKUNGFU11431234ListingA.
7–Contenuduchiersstimestamp.
xmld'unéchantillondeDroid-KungFu1144ANNEXEA.
VNEMENTSDCLENCHEURSDECODEMALVEILLANTA.
4DroidKungFu2DroidKungFu2[60]estunmalwaredécouverten2011etconsidérécommeayantétéécritparlemêmegroupededéveloppeursqueDroidKungFu1.
Lerapportsursonanalyseindiquequ'ilsontd'ailleursuncomportementsimilairecarilsexploitenttousdeuxdesvulnérabilitésdanslesystèmepouréleverleurprivilègesetinstallerdenouvellesapplciationssurletéléphone.
Ladiérenceentrelesattaquessontlesapplicationsqu'ilsinstallentsurletéléphone.
EnanalysantundeséchantillonsdeDroidKungFu25,nousremarquonsrapidementqueleurmoded'exécutionestlemême.
VoirlistingA.
8.
DansDroidKungFu2,lecodemalveillantestéxécutélorsdelacréationd'unserviceetsouslaconditionqu'uncertaintempssesoitécoulé.
Nouspouvonsaussid'ailleursremarquerquelenomdecertainesméthodesappeléessontexactementlesmêmes(ex:getPermission).
Ilsutdemodierlavaleurduparamètrestartdanssstimestamp.
xmlpourfaireainsicroireàl'applicationqueplusde1800000.
0mssesontécouléesetforcerl'exécutionducodemalveillant.
1publicvoidonCreate(){2super.
onCreate();3v5=this.
getSharedPreferences("sstimestamp",0);4v3=v5.
getLong("start",0.
0,v8);5v0=System.
currentTimeMillis();6if(v3!
=0.
0){7if((v0-v3)>=1800000.
0){8this.
mPreferences=this.
getSharedPreferences("permission",0);9this.
updateInfo();10this.
getPermission();11this.
provideService();12}else{13this.
stopSelf();14}15}else{16v2=v5.
edit();17v2.
putLong("start",v0,v1);18v2.
commit();19this.
stopSelf();20}21return;22}ListingA.
8–MéthodeonCreated'uncomposantserviced'unéchantillondeDroidKungFu25.
MD5:f438ed38b59f772e03eb2cab97fc7685A.
5.
JSMSHIDER145A.
5jSMSHiderLeséchantillonsdejSMSHiderexécutenttousleurcodemalveillantdèslelancementdel'application.
Iln'yaainsinulbesoind'introduiremanuellementdesévènementsdanslesystème.
146ANNEXEA.
VNEMENTSDCLENCHEURSDECODEMALVEILLANTPublicationsVVietTriemTong,RAndriatsimandetra,SGeller,SBoche,FTronel,CHau-ser.
Miseenuvredepolitiquesdeprotectiondesuxd'informationdansl'en-vironnementAndroid.
Computer&ElectronicsSecurityApplicationsRendez-vous,2011.
Rennes,France.
RadoniainaAndriatsimandetra,StéphaneGeller,ValérieVietTriemTong.
De-signinginformationowpoliciesforandroid'soperatingsystem.
IEEEInterna-tionalConferenceonCommunications,2012(ICC2012).
Ottawa,CanadaRAndriatsimandetra,V.
VietTriemTong,LMé.
DiagnosingintrusionsinAndroidoperatingsystemusingsystemowgraph.
WorkshopInterdisciplinairesurlaSécuritéGlobale,2013(WISG2013).
Troyes,France.
MJaume,RAndriatsimandetra,V.
VietTriemTong,LMé.
SecureStatesver-susSecureExecutions.
9thInternationalConferenceonInformationSystemsSecurity,2013(ICISS2013).
Kolkata,India.
RAndriatsimandetra,VVietTriemTong,TSaliou.
InformationFlowPoliciesvsMalware.
InternationalConferenceonInformationAssuranceandSecurity,2013(IAS2013).
YassmineHammamet,Tunisia.
RAndriatsimandetraandVVietTriemTong.
CapturingAndroidMalwareBehaviourusingSystemFlowGraph.
The8thInternationalConferenceonNet-workandSystemSecurity,2014(NSS2014).
Xi'an,ChinaRAndriatsimandetra,VVietTriemTong,TSaliou.
InformationFlowPoliciesvsMalware–FinalBattle-.
JournalofInformationAssuranceandSecurity,DynamicPublishersInc.
,USA,2014,9(2),pp.
72-82.
RAndriatsimandetra,VVietTriemTong.
PosterAbstract:HighlightingEa-silyHowMaliciousApplicationsCorruptAndroidDevices.
ResearchinAttacks,IntrusionsandDefenses,2014(RAID2014).
Gothenburgh,Sweden.
147148PUBLICATIONSBibliographie[1]Android-root2009-08-16source.
http://www.
zenthought.
org/content/file/android-root-2009-08-16-source.
[2]Andrototal.
http://andrototal.
org.
[3]Bionic(software).
http://en.
wikipedia.
org/wiki/Bionic_%28software%29.
[4]Cve-2009-2692.
http://web.
nvd.
nist.
gov/view/vuln/detailvulnId=CVE-2009-2692.
[5]Cve-2013-6282.
http://cve.
mitre.
org/cgi-bin/cvename.
cginame=CVE-2013-6282.
[6]dedexer.
http://dedexer.
sourceforge.
net/.
[7]droidbox.
androidapplicationsandbox.
https://code.
google.
com/p/android-apktool/.
[8]F1score.
https://en.
wikipedia.
org/wiki/F-score.
[9]Idapro.
https://www.
hex-rays.
com/products/ida/.
[10]Javadecompiler.
http://jd.
benow.
ca/.
[11]Netlinkprotocollibrarysuite(libnl).
http://www.
carisma.
slowglass.
com/~tgr/libnl.
[12]Programmationjava/réexion.
http://fr.
wikibooks.
org/wiki/Programmation_Java/R%C3%A9flexion.
[13]smali,anassembler/disassemblerforandroid'sdexformat.
https://code.
google.
com/p/smali/.
[14]Virustotal.
https://www.
virustotal.
com/.
[15]dm-crypt.
http://git.
kernel.
org/cgit/linux/kernel/git/torvalds/linux.
git/tree/Documentation/device-mapper/dm-crypt.
txt,2014.
[16]RadoniainaAndriatsimandetra,StéphaneGeller,andValérieVietTriemTong.
Designinginformationowpoliciesforandroid'soperatingsystem.
InIEEEInternationalConferenceonCommunications,2012.
[17]RadoniainaAndriatsimandetraandValérieVietTriemTong.
CapturingAndroidMalwareBehaviourusingSystemFlowGraph.
InNSS2014-The8thInternationalConferenceonNetworkandSystemSecurity,Xi'an,China,October2014.
149150BIBLIOGRAPHIE[18]RadoniainaAndriatsimandetra,ValérieVietTriemTong,andLudovicMé.
Diagnosingintrusionsinandroidoperatingsystemusingsystemowgraph.
InWorkshopInterdisciplinairesurlaSécuritéGlobale,2013.
[19]RadoniainaAndriatsimandetra,ValérieVietTriemTong,andThomasSaliou.
Informationowpoliciesvsmalware–nalbattle–.
JournalofInformationAssuranceandSecurity,9(2):72–82,2014.
[20]RadoniainaAndriatsimandetra,ValérieVietVietTriemTong,andTho-masSaliou.
Informationowpoliciesvsmalware.
InInformationassu-ranceandsecurity-2013,2013.
[21]AndrewW.
Appel.
Deobfuscationisinnp,aug2002.
[22]DanielArp,MichaelSpreitzenbarth,MalteHübner,HugoGascon,KonradRieck,andCERTSiemens.
Drebin:Eectiveandexplainabledetectionofandroidmalwareinyourpocket.
InNDSS2014,2014.
[23]AriniBalakrishnanandChloeSchulze.
Codeobfuscationliteraturesurvey.
Technicalreport,ComputerSciencesDepartment-UniversityofWiscon-sin,Madison,2005.
CS701ConstructionofCompilers,Instructor:CharlesFischer.
[24]AlastairR.
Beresford,AndrewRice,NicholasSkehin,andRipdumanSo-han.
Mockdroid:tradingprivacyforapplicationfunctionalityonsmart-phones.
InProceedingsofthe12thWorkshoponMobileComputingSys-temsandApplications,2011.
[25]ThomasBlasing,LeonidBatyuk,A-DSchmidt,SeyitAhmetCamtepe,andSahinAlbayrak.
Anandroidapplicationsandboxsystemforsus-picioussoftwaredetection.
InMaliciousandunwantedsoftware(MAL-WARE),20105thinternationalconferenceon,pages55–62.
IEEE,2010.
[26]OhadBobrov.
Chinesegovernmenttargetshongkongprotes-terswithandroidmratspyware.
https://www.
lacoon.
com/chinese-government-targets-hong-kong-protesters-android-mrat-spyware/,2014.
[27]DanBonehandMattFranklin.
Identity-basedencryptionfromtheweilpairing.
InAdvancesinCryptology—CRYPTO2001,pages213–229.
Springer,2001.
[28]JoanyBoutetandTomLeclerc.
Grandtheftandroid:Phishingwithpermission.
http://sagsblog.
telinduslab.
lu/index.
php/post/201309%5CS-Team-at-Hacklu-2013%3A-GRAND-THEFT-ANDROID%3A-PHISHING-WITH-PERMISSION,2013.
[29]SvenBugiel,LucasDavi,AlexandraDmitrienko,ThomasFischer,andAhmad-RezaSadeghi.
Xmandroid:Anewandroidevolutiontomiti-gateprivilegeescalationattacks.
Technicalreport,TechnischeUniversitatDarmstadt,CenterforAdvancedSecurityResearchDarmstadt,2011.
[30]SvenBugiel,StephanHeuser,andAhmad-RezaSadeghi.
mytunes:Se-manticallylinkedanduser-centricne-grainedprivacycontrolonandroid.
Technicalreport,CASED,2012.
151[31]C-Skills.
Androidtrickery.
http://c-skills.
blogspot.
fr/2010/07/android-trickery.
html,2010.
[32]C-skills.
Yummyyummy,gingerbreak!
http://c-skills.
blogspot.
fr/2011/04/yummy-yummy-gingerbreak.
html,2011.
[33]VictorChebyshevandRomanUnuchek.
Mobilemalwareevolution:2013,022014.
[34]ErikaChin,AdriennePorterFell,KateGreenwood,andDavidWagner.
Analyzinginter-applicationcommunicationinandroid.
InMobiSys'11,2011.
[35]MihaiChristodorescuandSomeshJha.
Staticanalysisofexecutablestodetectmaliciouspatterns.
InProceedingsofthe12thconferenceonUSE-NIXSecuritySymposium-Volume12,SSYM'03,pages12–12,Berkeley,CA,USA,2003.
USENIXAssociation.
[36]FredChung.
Customclassloadingindalvik,July2011.
[37]CIDRE.
Blareids.
www.
blare-ids.
org.
[38]CIDRE.
Gitrepositoriesofblare.
https://git.
blare-ids.
org.
[39]ChristianCollberg,ClarkThomborson,andDouglasLow.
Ataxonomyofobfuscatingtransformations.
Technicalreport,UniversityofAuckland,1997.
[40]JonathanCorbet,AlessandroRubini,andGregKroah-Hartman.
LinuxDeviceDrivers.
O'ReillyMedia,thirdeditionedition,2005.
[41]NelloCristianiniandJohnShawe-Taylor.
AnIntroductiontoSupportVectorMachines:AndOtherKernel-basedLearningMethods.
CambridgeUniversityPress,NewYork,NY,USA,2000.
[42]AnthonyDesnosandGeoroyGueguen.
Android:Fromreversingtodecompilation.
Technicalreport,BlackHatAbuDhabi2011,2011.
[43]dex2jarteam.
dex2jartoolstoworkwithandroid.
dexandjava.
classles.
https://code.
google.
com/p/dex2jar/.
[44]ThomasEder,MichaelRodler,DieterVymazal,andMarkusZeilinger.
Ananas-aframeworkforanalyzingandroidapplications.
InAvailability,ReliabilityandSecurity(ARES),2013EighthInternationalConferenceon,pages711–719.
IEEE,2013.
[45]PetrosEfstathopoulos,MaxwellKrohn,SteveVanDeBogart,CliFrey,DavidZiegler,EddieKohler,DavidMazieres,FransKaashoek,andRobertMorris.
Labelsandeventprocessesintheasbestosoperatingsystem.
InACMSIGOPSOperatingSystemsReview,2005.
[46]WilliamEnck,PeterGilbert,ByunggonChun,LandonP.
Cox,JaeyeonJung,PatrickMcDaniel,andAnmolN.
Sheth.
Taintdroid:Aninformation-owtrackingsystemforrealtimeprivacymonitoringonsmartphones.
InInProc.
oftheUSENIXSymposiumonOperatingSys-temsDesignandImplementation(OSDI),2010.
152BIBLIOGRAPHIE[47]WilliamEnck,MachigarOngtang,andPatrickMcdaniel.
Mitigatingan-droidsoftwaremisusebeforeithappens.
Technicalreport,ThePennsyl-vaniaStateUniversity,2008.
[48]Rong-EnFan,Kai-WeiChang,Cho-JuiHsieh,Xiang-RuiWang,andChih-JenLin.
Liblinear:Alibraryforlargelinearclassication.
TheJournalofMachineLearningResearch,9:1871–1874,2008.
[49]AdriennePorterFelt,HelenJ.
Wang,AlexanderMoshchuk,StevenHanna,andErikaChin.
Permissionre-delegation:Attacksanddefenses.
InPro-ceedingsofthe20thUSENIXConferenceonSecurity,SEC'11.
USENIXAssociation,2011.
[50]EricFiliol.
Metamorphism,formalgrammarsandundecidablecodemu-tation.
J.
Comp.
Sci,pages70–75,2007.
[51]JeForristal.
Android:Oneroottoownthemall,2013.
[52]LinuxFoundation.
Genericnetlinkhowto.
http://www.
linuxfoundation.
org/collaborate/workgroups/networking/generic_netlink_howto,2009.
[53]LinuxFoundation.
iproute2.
http://www.
linuxfoundation.
org/collaborate/workgroups/networking/iproute2,2009.
[54]DebinGao,MichaelK.
Reiter,andDawnSong.
Gray-boxextractionofexecutiongraphsforanomalydetection.
InProceedingsofthe11thACMconferenceonComputerandcommunicationssecurity,pages318–329,2004.
[55]StéphaneGeller.
Informationowandexecutionpolicyforamodelofdetectionwithoutfalsenegatives.
NetworkandInformationSystemsSe-curity(SAR-SSI),2011Conferenceon,2011.
[56]StéphaneGeller,ChristopheHauser,FrédéricTronel,andValérieVietTriemTong.
Informationowcontrolforintrusiondetectionderivedfrommacpolicy.
InIEEEInternationalConferenceonCommunications,2011.
[57]StéphaneGeller,ValérieVietTriemTong,andLudovicMé.
Bspl:Alanguagetospecifyandcomposene-grainedinformationowpolicies.
InSECURWARE2013,TheSeventhInternationalConferenceonEmergingSecurityInformation,SystemsandTechnologies,2013.
[58]KentGrin,ScottSchneider,XibHu,andTzickerChiueh.
Automaticgenerationofstringsignaturesformalwaredetection.
InProceedingsofthe12thInternationalSymposiumonRecentAdvancesinIntrusionDetection(RAID2009),2009.
[59]PeterHornyack,SeungyeopHan,JaeyeonJung,StuartSchechter,andDavidWetherall.
"thesearen'tthedroidsyou'relookingfor":Retrottingandroidtoprotectdatafromimperiousapplications.
InCCS'11,2011.
[60]XuxianJiang.
Securityalert:Newdroidkungfuvariantsfoundinalter-nativechineseandroidmarkets.
http://www.
csc.
ncsu.
edu/faculty/jiang/DroidKungFu2/.
153[61]XuxianJiang.
Securityalert:Newsophisticatedandroidmalwaredroid-kungfufoundinalternativechineseappmarkets.
http://www.
csc.
ncsu.
edu/faculty/jiang/DroidKungFu.
html.
[62]XuxianJiang.
Questionableandroidapps–sndapps–foundandremo-vedfromocialandroidmarket.
http://www.
csc.
ncsu.
edu/faculty/jiang/SndApps/,2011.
[63]KevinKaichuanHe.
Kernelkorner-whyandhowtousenetlinksocket.
http://www.
linuxjournal.
com/article/7356,2005.
[64]ArianeKeller.
Kernelspace-userspaceinterfaces.
http://people.
ee.
ethz.
ch/~arkeller/linux/kernel_user_space_howto.
html.
[65]MichaelKerris.
Thelinuxprogramminginterfaces-posixmessagequeues.
http://man7.
org/tlpi/download/TLPI-52-POSIX_Message_Queues.
pdf.
[66]SamuelT.
KingandPeterM.
Chen.
Backtrackingintrusions.
InProcee-dingsofthenineteenthACMsymposiumonOperatingsystemsprinciples,pages223–236,BoltonLanding,NY,October2003.
ACMPress.
[67]ChristopherKruegel,EnginKirda,PaoloMilaniComparetti,UlrichBayer,andClemensHlauschek.
Scalable,behavior-basedmalwarecluste-ring.
InProceedingsofthe16thAnnualNetworkandDistributedSystemSecuritySymposium(NDSS2009),12009.
[68]MohitKumar.
Dynamicanalysistoolsforandroidfailtodetectmalwarewithheuristicevasiontechniques.
http://thehackernews.
com/2014/05/dynamic-analysis-tools-for-android-fail.
html,2014.
[69]InternationalSecureSystemsLab.
Anubis-malwareanalysisforunknownbinaries.
http://anubis.
iseclab.
org/.
[70]CullenLinnandSaumyaDebray.
Obfuscationofexecutablecodetoim-proveresistancetostaticdisassembly.
InCCS'03:Proceedingsofthe10thACMconferenceonComputerandcommunicationssecurity,pages290–299,NewYork,NY,USA,2003.
ACM.
[71]RadmonLlamas,MelissaChau,andMichaelShirer.
Worldwidesmart-phonemarketgrows28.
6%yearoveryearintherstquarterof2014,accordingtoidc.
http://www.
idc.
com/getdoc.
jspcontainerId=prUS24823414,2014.
[72]LisaMahapatra.
Androidvs.
ios:What'sthemostpopularmo-bileoperatingsysteminyourcountryhttp://www.
ibtimes.
com/android-vs-ios-whats-most-popular-mobile-operating-system-your-country-1464892,2013.
[73]AndrewC.
MyersandBarabaraLiskov.
Complete,safeinformationowwithdecentralizedlabels.
InIEEESymposiumonSecurityandPrivacy,1998.
[74]AndrewC.
MyersandBarbaraLiskov.
Adecentralizedmodelforinfor-mationowcontrol.
SIGOPSOper.
Syst.
Rev.
,31(5):129–142,1997.
154BIBLIOGRAPHIE[75]AndrewC.
MyersandBarbaraLiskov.
Protectingprivacyusingthedecen-tralizedlabelmodel.
ACMTrans.
Softw.
Eng.
Methodol.
,9(4):410–442,2000.
[76]PabloNeira-Ayuso,RafaelMGasca,andLaurentLefevre.
Communicatingbetweenthekernelanduser-spaceinlinuxusingnetlinksockets.
Software:PracticeandExperience,40,2010.
[77]SebastianNeuner,VictorvanderVeen,MartinaLindorfer,MarkusHuber,GeorgMerzdovnik,MartinMulazzani,andEdgarWeippl.
Entersandbox:Androidsandboxcomparison.
ProceedingsoftheIEEE.
[78]JonOberheideandCharlieMiller.
Dissectingtheandroidbouncer,2012.
Summercon.
[79]MachigarOngtang,StephenMcLaughlin,WilliamEnck,andPatrickMc-Daniel.
Semanticallyrichapplication-centricsecurityinandroid.
InAn-nualComputerSecurityApplicationsConference,volume0,pages340–349,LosAlamitos,CA,USA,2009.
IEEEComputerSociety.
[80]XinmingOu,WayneFBoyer,andMilesAMcQueen.
Ascalableapproachtoattackgraphgeneration.
InProceedingsofthe13thACMconferenceonComputerandcommunicationssecurity,pages336–345.
ACM,2006.
[81]PalmSource.
Openbinder.
http://www.
angryredplanet.
com/~hackbod/openbinder/docs/html/index.
html.
[82]MilaParkour.
Contagiomobile.
contagiominidump.
blogspot.
com.
[83]AndroidOpenSourceProject.
Deviceadministration.
https://developer.
android.
com/guide/topics/admin/device-admin.
html.
[84]AndroidOpenSourceProject.
Intent.
http://developer.
android.
com/reference/android/content/Intent.
html#setFlags%28int%29.
[85]AndroidOpenSourceProject.
Introducingart.
http://source.
android.
com/devices/tech/dalvik/art.
html.
[86]AndroidOpenSourceProject.
Jnitips.
http://developer.
android.
com/training/articles/perf-jni.
html.
[87]AndroidOpenSourceProject.
Proguard.
http://developer.
android.
com/tools/help/proguard.
html.
[88]AlessandroReina,AristideFattori,andLorenzoCavallaro.
Asystemcall-centricanalysisandstimulationtechniquetoautomaticallyreconstructandroidmalwarebehaviors.
EuroSec,April,2013.
[89]KonradRieck,ThorstenHolz,CarstenWillems,PatrickDüssel,andPavelLaskov.
Learningandclassicationofmalwarebehavior.
InProceedingsofthe5thinternationalconferenceonDetectionofIntrusionsandMal-ware,andVulnerabilityAssessment,DIMVA'08,pages108–125,Berlin,Heidelberg,2008.
Springer-Verlag.
[90]KonradRieck,PhilippTrinius,CarstenWillems,andThorstenHolz.
Au-tomaticanalysisofmalwarebehaviorusingmachinelearning.
J.
Comput.
Secur.
,December2011.
155[91]MarcRogers.
Thebearerofbadnews.
https://blog.
lookout.
com/blog/2013/04/19/the-bearer-of-badnews-malware-google-play/,2013.
[92]Sebastian.
Droid2.
http://c-skills.
blogspot.
fr/2010/08/droid2.
html,2010.
[93]Sebastian.
Zimperlichsources.
http://c-skills.
blogspot.
fr/2011/02/zimperlich-sources.
html,2011.
[94]MichaelSpreitzenbarth,FelixFreiling,FlorianEchtler,ThomasSchreck,andJohannesHomann.
Mobile-sandbox:havingadeeperlookintoandroidapplications.
InProceedingsofthe28thAnnualACMSymposiumonAppliedComputing,pages1808–1815.
ACM,2013.
[95]TimStarzzere.
Securityalert:Legacymakesanotherappearance,meetlegacynative(lena).
https://blog.
lookout.
com/blog/2011/10/20/,2011.
[96]TimStrazzere.
June15,2011securityalert:Malwarefoundtar-getingcustomroms(jsmshider).
https://blog.
lookout.
com/blog/2011/06/15/security-alert-malware-found-targeting\discretionary{-}{}{}custom-roms-jsmshider/.
[97]Androguardteam.
Reverseengineering,malwareandgoodwareanalysisofandroidapplications.
.
.
andmore(ninja!
).
https://code.
google.
com/p/androguard/.
[98]RomanUnuchek.
Themostsophisticatedandroidtrojan.
https://www.
securelist.
com/en/blog/8106/The_most_sophisticated_Android_Trojan,June2013.
[99]MarkoVitas.
Artvsdalvik-introducingthenewandroidruntimeinkitkat.
http://www.
infinum.
co/the-capsized-eight/articles/art-vs-dalvik-introducing-the-new-android-runtime-in-kit-kat.
[100]LukasWeichselbaum,MatthiasNeugschwandtner,MartinaLindorfer,Ya-nickFratantonio,VictorvanderVeen,andChristianPlatzer.
Andrubis:Androidmalwareunderthemagnifyingglass.
Technicalreport,ViennaUniversityofTechnology,2014.
[101]CarstenWillems,ThorstenHolz,andFelixFreiling.
Towardautomateddynamicmalwareanalysisusingcwsandbox.
IEEESecurityandPrivacy,5(2):32–39,mar2007.
[102]ChrisWright,CrispinCowan,andJamesMorris.
Linuxsecuritymodules:Generalsecuritysupportforthelinuxkernel,2002.
[103]ChrisWright,CrispinCowan,StephenSmalley,JamesMorris,andGregKroah-Hartman.
Linuxsecuritymoduleframework.
InOLS2002Procee-dings,2002.
[104]TimWyatt.
Securityalert:Newvariantsoflegacynative(lena)identied.
http://blog.
lookout.
com/blog/2012/04/03/security-alert-new-variants-of-legacy-native-lena-identified/,2013.
156BIBLIOGRAPHIE[105]RubinXu,HassenSaidi,andRossAnderson.
Aurasium:Practicalpolicyenforcementforandroidapplications.
InUSENIXSecurity'12,2012.
[106]Lok-KwongYanandHengYin.
Droidscopeseamlesslyreconstructingosanddalviksemanticviewsfordynamicandroidmalwareanalysis.
InProceedingsofthe21stUSENIXSecuritySymposium,August2012.
[107]JayYarow.
Thischartshowsgoogle'sincredibledominationoftheworld'scomputingplatforms.
http://www.
businessinsider.
com/androids-share-of-the-computing-market-2014-3,2014.
[108]HengYin,DawnSong,ManuelEgele,ChristopherKruegel,andEnginKirda.
Panorama:capturingsystem-wideinformationowformalwaredetectionandanalysis.
InCCS'07:Proceedingsofthe14thACMconfe-renceonComputerandcommunicationssecurity,pages116–127,NewYork,NY,USA,2007.
ACM.
[109]NickolaiZeldovich,SilasBoyd-Wickizer,EddieKohler,andDavidMa-zières.
Makinginformationowexplicitinhistar.
InOSDI'06:Procee-dingsofthe7thsymposiumonOperatingsystemsdesignandimplemen-tation,pages263–278,Berkeley,CA,USA,2006.
USENIXAssociation.
[110]NickolaiZeldovich,SilasBoyd-Wickizer,andDavidMazières.
Securingdistributedsystemswithinformationowcontrol.
InNSDI'08:Procee-dingsofthe5thUSENIXSymposiumonNetworkedSystemsDesignandImplementation,pages293–308.
USENIXAssociation,2008.
[111]CongZheng,ShixiongZhu,ShuaifuDai,GuofeiGu,XiaoruiGong,XinhuiHan,andWeiZou.
Smartdroid:anautomaticsystemforrevealingui-basedtriggerconditionsinandroidapplications.
InProceedingsofthesecondACMworkshoponSecurityandprivacyinsmartphonesandmobiledevices,pages93–104.
ACM,2012.
[112]YajinZhouandXuxianJiang.
Ananalysisoftheanserverbottrojan.
Technicalreport,NQMobileSecurityResearchCenter,2011.
[113]YajinZhouandXuxianJiang.
Dissectingandroidmalware:Characte-rizationandevolution.
InProceedingsofthe2012IEEESymposiumonSecurityandPrivacy,SP'12,pages95–109,Washington,DC,USA,2012.
IEEEComputerSociety.

Sharktech:美国/荷兰独立服务器,10Gbps端口/不限流量/免费DDoS防护60G,319美元/月起

sharktech怎么样?sharktech (鲨鱼机房)是一家成立于 2003 年的知名美国老牌主机商,又称鲨鱼机房或者SK 机房,一直主打高防系列产品,提供独立服务器租用业务和 VPS 主机,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹,所有产品均提供 DDoS 防护。此文只整理他们家10Gbps专用服务器,此外该系列所有服务器都受到高达 60Gbps(可升级到 100Gbps)的保护。...

NameCheap优惠活动 新注册域名38元

今天上午有网友在群里聊到是不是有新注册域名的海外域名商家的优惠活动。如果我们并非一定要在国外注册域名的话,最近年中促销期间,国内的服务商优惠力度还是比较大的,以前我们可能较多选择海外域名商家注册域名在于海外商家便宜,如今这几年国内的商家价格也不贵的。比如在前一段时间有分享到几个商家的年中活动:1、DNSPOD域名欢购活动 - 提供域名抢购活动、DNS解析折扣、SSL证书活动2、难得再次关注新网商家...

Gcorelabs:美国GPU服务器,8路RTX2080Ti;2*Silver-4214/256G内存/1T SSD,1815欧/月

gcorelabs怎么样?gcorelabs是创建于2011年的俄罗斯一家IDC服务商,Gcorelabs提供优质的托管服务和VPS主机服务,Gcorelabs有一支强大的技术队伍,对主机的性能和稳定性要求非常高。Gcorelabs在 2017年收购了SkyparkCDN并提供全球CDN服务,目标是进入全球前五的网络服务商。G-Core Labs总部位于卢森堡,在莫斯科,明斯克和彼尔姆设有办事处。...

favicon为你推荐
杭州市西湖区翠苑第四幼儿园智慧校园采购项目支持ipadC1:山东品牌商品馆x-routerX-Router这个软件有什么用ms17-010win10华为 slatl10是什么型号360chrome使用360急速浏览器,360chrome进程结束不了csshack针对IE6的CSS HACK是什么?css3按钮html点击按钮怎么弹出一个浮动的窗体googleadsense我申请Google AdSense要怎样才能通过Google AdSense呀?重庆电信测速重庆电信对BT开始限制了?
hkbn bluevm iisphpmysql http500内部服务器错误 lamp配置 ibrs cdn加速原理 phpmyadmin配置 linux服务器维护 100mbps 电信托管 空间首页登陆 512mb 网页提速 linode支付宝 双线空间 杭州电信 国外代理服务器 北京主机托管 广东服务器托管 更多