NO336813B1 - Fremgangsmåte og system for å håndheve et sett av sikkerhetsregler ved hjelp av en sikkerhetspåtvingende virtuell maskin - Google Patents
Fremgangsmåte og system for å håndheve et sett av sikkerhetsregler ved hjelp av en sikkerhetspåtvingende virtuell maskin Download PDFInfo
- Publication number
- NO336813B1 NO336813B1 NO20051525A NO20051525A NO336813B1 NO 336813 B1 NO336813 B1 NO 336813B1 NO 20051525 A NO20051525 A NO 20051525A NO 20051525 A NO20051525 A NO 20051525A NO 336813 B1 NO336813 B1 NO 336813B1
- Authority
- NO
- Norway
- Prior art keywords
- security
- virtual machine
- data
- instruction
- enforcing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000009471 action Effects 0.000 claims description 30
- 238000004886 process control Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 20
- 238000012360 testing method Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000003068 static effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000009931 harmful effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01H—STREET CLEANING; CLEANING OF PERMANENT WAYS; CLEANING BEACHES; DISPERSING OR PREVENTING FOG IN GENERAL CLEANING STREET OR RAILWAY FURNITURE OR TUNNEL WALLS
- E01H5/00—Removing snow or ice from roads or like surfaces; Grading or roughening snow or ice
- E01H5/04—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material
- E01H5/06—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades
- E01H5/065—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades characterised by the form of the snow-plough blade, e.g. flexible, or by snow-plough blade accessories
- E01H5/066—Snow-plough blade accessories, e.g. deflector plates, skid shoes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Storage Device Security (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
En fremgangsmåte og et system for å håndheve et sett av sikkerhetsregler innkodet i et instruksjonssett for en sikkerhetspåtvingende virtuell maskin er tilveiebrakt. Et sikkerhetssystem tilveiebringer en sikkerhetspåtvingende virtuell maskin som kjører sikkerhetsprogrammer uttrykt ved instruksjonssettet for den sikkerhetspåtvingende virtuelle maskinen. Sikkerhetssystemet lagrer sikkerhetsprogrammet i instruksjonslageret for den sikkerhetspåtvingende virtuelle maskinen. Når en sikkerhetspåtvingningsaktuell hendelse inntreffer, eksekverer den sikkerhetspåtvingende virtuelle maskinen instruksjonene i sitt instruksjonslager ved anvendelse av data for den sikkerhetspåtvingningsaktuelle hendelsen for å påtvinge settet av sikkerhetsregler.
Description
Foreliggende oppfinnelse vedrører generelt påtvingning av et sett av sikkerhetsregler for å hindre uønsket oppførsel av et dataprogram.
Programvaresystemer, så som operativsystemer og filsystemer, eksponerer applikasjonsprogrammeringsgrensesnitt som applikasjonsprogrammer kan anvende for å aksessere tjenestene som tilbys av programvaresystemene. Et applikasjonsprogrammeringsgrensesnitt kan tilby funksjoner med parametere for å utføre en spesifisert tjeneste. Foreksempel kan et filsystem ha en funksjon (også referert til som et "systemkaN") for å opprette en ny fil. Denne funksjonen kan ta parametere som spesifiserer et lagringssted for filen, et filnavn, en filtype, en filstør-relse og annet for filen som skal opprettes. Når et applikasjonsprogram anroper en funksjon, sender det med faktiske parametere svarende til de formelle parametrene som er definert for funksjonen. Funksjonen kan utføre visse sjekker på de faktiske parametrene for å sikre at de er lovlige. For eksempel kan filopprett-ingsfunksjonen sikre at den spesifiserte filtypen er lovlig. Dersom en parameter ikke er lovlig, returnerer funksjonen en feil til applikasjonsprogrammet.
Programvaresystemer kan av mange grunner være ekstremt komplekse. Et programvaresystem kan forsøke å være bakover kompatibelt med alle tidligere versjoner av dette programvaresystemet. I så fall kan programvaresystemet være nødt til å støtte alle funksjonene i de tidligere versjonenes applikasjonsprogrammeringsgrensesnitt. Siden nye funksjoner typisk blir lagt til i hver versjon, kan antallet funksjoner bli meget stort og samspillet mellom disse kompleks. Noen programvaresystemer kan også omfatte programvarekomponenter utviklet av forskjellige avdelinger av samme firma eller av forskjellige firmaer. Samspillet mellom disse komponentene kan også være nokså kompleks.
Det har blitt viktigere for programvaresystemer å sikre at deres applikasjonsprogrammeringsgrensesnitt ikke er sårbare overfor verken utilsiktet feilbruk eller forsettlige angrep. Én sårbarhet i et programvaresystem kan være gjennom parametrene i dets applikasjonsprogrammeringsgrensesnitt. Når funksjonene i tidligere versjoner er kombinert med de i nyere versjoner, og når komponenter fra forskjellige utviklere er integrert, kan den eksisterende parametervalideringen som utføres av funksjonene være utilstrekkelig til å sikre at funksjonene oppfører seg korrekt. For eksempel kan et applikasjonsprogrammeringsgrensesnitt i et filsystem utviklet av ett firma være integrert med en filtjener utviklet av et annet firma. Para meteren som bestemmer maksimal filstørrelse i applikasjonsprogrammeringsgren-sesnittet kan ha en verdi som overstiger det som støttes av filtjeneren. I et slikt til-felle kan en filstørrelse som er akseptabel for applikasjonsprogrammeringsgrense-snittet forårsake problemer hos filtjeneren. Som et annet eksempel kan en system-ansvarlig ønske å begrense den maksimale filstørrelsen ytterligere, men ikke ha noe tilgjengelig middel for å påtvinge denne begrensningen.
I artikkelen "Java security: How to install the security manger and customize your security policy", Internet Article, [Online] 20 November 1997 (1997.11.20) av B. Venners beskrives en sikkerhets administrator under JAVA programsystemet. Denne JAVA API påtvinger en skreddersydd sikkerhetspolitikk på en applikasjon ved at enhver applikasjon spør sikkerhets administratoren om tillatelse til å utføre enhver handling som potensielt er skadelig. For enhver potensielt skadelig handling er det implementert en fremgangsmåte i administratoren som definerer om en handling er skadelig eller ikke. Hver slik fremgangsmåte er identifiserbar ved at de starter med samme kvalifisering som «check», det vil si «kontroller». Den aktuelle implementasjonen av slike fremgangsmåter definerer den skreddersydde sikkerhetspolitikken for applikasjonen. Imidlertid kan dette systemet ikke hindre såkalte «denial of service» angrep på datamaskiner da fiendtlige programmer kan allokere hukommelse til den er brukt opp, og ved at det er vanskelig å stoppe aktivering av tråder av programmer til maskinen blir overbelastet.
Det ville være ønskelig å ha en mekanisme for å håndheve sikkerhetsregler, og spesielt sikkerhetsregler som spesifiserer gyldighetsbetingelser for parametere i applikasjonsprogrammeringsgrensesnitt.
En fremgangsmåte og et system for å håndheve et sett av sikkerhetsregler tilveiebringes av en sikkerhetspåtvingende virtuell maskin. Den sikkerhetspåtvingende virtuelle maskinen omfatter en prosessormotor, et instruksjonslager, et datalager og en instruksjonspeker. Den sikkerhetspåtvingende virtuelle maskinen kjører et sikkerhetsprogram spesifisert ved anvendelse av et mellomspråk som er kompilert fra en høy-nivå representasjon av settet av sikkerhetsregler. Sikkerhetsprogrammet lastes inn i instruksjonslageret for eksekvering. Når en sikkerhetspåtvingningsaktuell hendelse inntreffer, så som et anrop til en funksjon i et applikasjonsprogrammeringsgrensesnitt, blir data knyttet til den sikkerhetspå tvingningsaktuelle hendelsen lagret i datalageret og prosessormotoren begynner å hente inn og eksekvere instruksjonene for sikkerhetsprogrammet fra instruksjonslageret. Instruksjonene spesifiserer handlinger som skal utføres for å håndheve sikkerhetsreglene basert på dataene i den sikkerhetspåtvingningsaktuelle hendelsen.
Foreliggende oppfinnelse er særlig egnet til å tilveiebringe en fremgangsmåte i et datasystem for å påtvinge et sett av sikkerhetsregler kodet i et instruksjonssett til en virtuell sikkerhetsmaskin, der sikkerhetsreglene spesifiserer sikkerhet for systemkall, der fremgangsmåten omfatter det å: fremskaffe et sett av sikkerhetsregler representert i et høy-nivå språk,
kompilere settet av sikkerhetsregler til et sikkerhetsprogram som er en representasjon av sikkerhetsreglene i instruksjonssettet til den virtuelle sikkerhetsmaskinen,
laste inn sikkerhetsprogrammet i et instruksjonslager for den sikkerhetspåtvingende virtuelle maskinen, og
når en sikkerhetspåtvingningsaktuell hendelse inntreffer, eksekvere i den virtuelle sikkerhetsmaskinen instruksjonene for sikkerhetsprogrammet i instruksjonslageret basert på data for den sikkerhetspåtvingningsaktuelle hendelsen for å påtvinge settet av sikkerhetsregler.
Videre er foreliggende oppfinnelse særlig egnet til å tilveiebringe et sikkerhetspåtvingende system konfigurert til å påtvinge sikkerhetsregler kodet i et instruksjonssett til virtuell sikkerhetsmaskin, hvor sikkerhetssystemet innbefatter komponenter som utføres i brukermodus og komponenter som utføres i kjernemodus, der systemet innbefatter: en regel-sett-kompilator konfigurert til å bli utført i bruker modus, regel-sett-kompilatoren er videre konfigurert til å motta en sikkerhetsregel representert i et høy-nivå språk og å generere et sikkerhetsprogram som er en representasjon av sikkerhetsregelen i instruksjonssettet til den virtuelle sikkerhetsmaskinen,
en programinnlastingskomponent konfigurert til å kjøre i kjernemodus, programinnlastingskomponenten er videre konfigurert til å laste opp sikkerhetsprogrammet til et instruksjonslager i den virtuelle sikkerhetsmaskinen, og en virtuell sikkerhetsmaskin for å detektere når en applikasjon i bruker modus gjør et systemkall med parametere som er i strid med e sikkerhetsreglene, der den
virtuelle sikkerhetsmaskinen er konfigurert til å kjøre i kjernemodus, den virtuelle sikkerhetsmaskinen omfatter: instruksjonslageret inneholder instruksjoner som implementerer settet av sikkerhetsregler,
et data lager som inneholder data for settet av sikkerhetsregler,
et parameter lager som inneholder parametere til et systemkall,
en systemkall-overvåkingskomponent tilpasset til å overvåke systemkallene, og
en prosessormotor som eksekverer instruksjonene for sikkerhetsprogrammet i instruksjonslageret ved anvendelse av data i data lageret og parametere i parameterlageret for å bestemme hvorvidt systemkallet er i strid med settet av sikkerhetsregler.
Figur 1 er et blokkdiagram som illustrerer komponenter i sikkerhetssystemet ifølge én utførelsesform. Figur 2 er et blokkdiagram som illustrerer datalagerets datastruktur ifølge én utførelsesform. Figur 3 er et diagram som illustrerer oppbygningen til en instruksjon for den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Figur 4 er et flytdiagram som illustrerer prosesseringen til en programinnlastingskomponent ifølge én utførelsesform. Figur 5 er et flytdiagram som illustrerer prosesseringen til en systemkall-overvåkningskomponent ifølge én utførelsesform. Figur 6 er et flytdiagram som illustrerer prosesseringen til prosessormotoren i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Figur 7 er et flytdiagram som illustrerer prosesseringen til en derefererings-komponent i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelses-form. Figur 8 er et flytdiagram som illustrerer prosesseringen til en testevaluer-ingskomponent i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførel-sesform. Figur 9 er et flytdiagram som illustrerer prosesseringen til en testkomponent i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Figur 10 er et flytdiagram som illustrerer prosesseringen til en komponent for sammenlikning av tegnstrenger i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Figur 11 er et flytdiagram som illustrerer prosesseringen til en ikke testkomponent i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelses-form.
En fremgangsmåte og et system i et datasystem for å håndheve et sett av sikkerhetsregler innkodet i et instruksjonssett for en sikkerhetspåtvingende virtuell maskin er tilveiebrakt. I én utførelsesform tilveiebringer et sikkerhetssystem en sikkerhetspåtvingende virtuell maskin som kjører sikkerhetsprogrammer uttrykt ved instruksjonssettet (dvs. et mellomspråk) for den sikkerhetspåtvingende virtuelle maskinen. Sikkerhetssystemet kan omfatte en kompilator som mottar et sett av sikkerhetsregler representert i et høynivåspråk og genererer et sikkerhetsprogram som er en representasjon av sikkerhetsreglene i mellomspråket for den sikkerhetspåtvingende virtuelle maskinen. Sikkerhetssystemet lagrer sikkerhetsprogrammet i et instruksjonslager for den sikkerhetspåtvingende virtuelle maskinen. Når en sikkerhetspåtvingningsaktuell hendelse inntreffer (dvs. en handling som må sjekkes for å sikre at den utføres i overensstemmelse med sikkerhetsreglene) eksekverer den sikkerhetspåtvingende virtuelle maskinen instruksjonene i sikkerhetsprogrammet fra sitt instruksjonslager ved anvendelse av data fra den sikkerhetspåtvingningsaktuelle hendelsen for å påtvinge sikkerhetsreglene. Dersom den sikkerhetspåtvingningsaktuelle hendelsen tyder på at det gjøres et forsøk på å ut-føre en uønsket oppførsel (f.eks. en handling som vil kunne utnytte et sikkerhets-hull i et operativsystem), kan da sikkerhetsprogrammet stanse forsøket. I én utfør-elsesform kjører den sikkerhetspåtvingende virtuelle maskinen i sikkerhetssystemet i kjernen til et operativsystem for å identifisere og stanse forsøk av applikasjoner og eksterne systemer på å utføre en oppførsel som er uønsket i det datasyste-met hvor sikkerhetssystemet kjører.
I én utførelsesform avgjør sikkerhetssystemet når parametere til et systemkall gjort av en applikasjon til en systemtjeneste (f.eks. for et fil- og minne-administreringssystem) vil kunne føre til en uønsket oppførsel. Settet av sikkerhetsregler omfatter regler som hver spesifiserer en betingelse basert på parametere til systemkallet og en handling som skal utføres når betingelsen er oppfylt. For eksempel kan en regels betingelse være oppfylt når et systemkall for å opprette en fil gjøres med en parameter som spesifiserer en filstørrelse større enn 1 GB. Handlingen knyttet til denne regelen kan være å stanse opprettelsen av filen. Høy-nivåspråket kan være et XML-basert språk, og hver regel kan være identifisert ved regel-, betingelses- og handlingsetiketter. Når reglene i settet av sikkerhetsregler representert i høynivåspråket kompileres, blir hver regel oversatt til instruksjoner i mellomspråket som danner sikkerhetsprogrammet. For eksempel kan en regel bli oversatt til en sekvens av instruksjoner. Én som sammenlikner systemkallet med en verdi som angir at funksjonen er "oppretting av fil," én som sammenlikner en filstørrelsesparameter med en konstant med verdien 1 GB og én som mater ut en angivelse om å stanse systemkallet.
I én utførelsesform omfatter den sikkerhetspåtvingende virtuelle maskinen en prosessormotor, et instruksjonslager, en instruksjonspeker og et datalager. Når den sikkerhetspåtvingende virtuelle maskinen initialiseres for å håndheve sikkerhetsreglene, laster sikkerhetssystemet inn et sikkerhetsprogram i instruksjonslageret som implementerer sikkerhetsreglene. Sikkerhetssystemet laster også inn data for sikkerhetsprogrammet i datalageret. Når et systemkall mot-tas, lagrer sikkerhetssystemet parametrene til systemkallet (inklusive en verdi som identifiserer systemkallet) i datalageret. Sikkerhetssystemet kan også lagre prosesstyringsinformasjon for prosessen som gjorde systemkallet i datalageret. Sikkerhetssystemet initialiserer instruksjonspekeren til å peke til en startinstruksjon for sikkerhetsprogrammet. Prosessormotoren starter sikkerhetsprogrammet ved å hente inn og eksekvere startinstruksjonen som instruksjonspekeren peker til. Hver instruksjon som eksekveres modifiserer instruksjonspekeren til å peke til den neste instruksjonen som skal eksekveres. Instruksjonene refererer til dataene i datalageret for å håndheve sikkerhetsreglene. Kjøringen av sikkerhetsprogrammet genererer et utmatet handlingssett som spesifiserer hvilke handlinger (f.eks. stanse et systemkall) som skal utføres for å påtvinge sikkerhetsreglene.
I én utførelsesform kan sikkerhetsreglene omfatte et del-regelsett for hvert systemkall som tar parametere som skal sjekkes. Sikkerhetssystemet kan kompilere hvert del-regelsett til et separat under-sikkerhetsprogram som kan bli lastet inn i instruksjonslageret uavhengig av de andre under-sikkerhetsprogrammene. Hvert del-regelsett kan svare til sikkerhetspåtvingningen for ett enkelt sys temkall. Sikkerhetssystemet kan opprettholde en avbildning av hvert systemkall til en startinstruksjonspeker i instruksjonslageret og en startdatapeker til dataene i datalageret for det aktuelle under-sikkerhetsprogrammet. Når det påtvinger settet av sikkerhetsregler for et gitt systemkall, initialiserer sikkerhetssystemet instruksjonspekeren til den tilhørende startinstruksjonspekeren og datapekeren til den til-hørende startdatapekeren. Under-sikkerhetsprogrammene kan referere til instruksjoner og data relativt instruksjonspekeren og datapekeren eller startinstruksjonspekeren og startdatapekeren. På den måten gjøres instruksjonene og dataene for hvert under-sikkerhetsprogram flyttbare. I den følgende beskrivelsen tar ett enkelt sikkerhetsprogram seg av alle systemkall ved å identifisere hvert systemkall og hoppe til den korrekte instruksjonen for å behandle dette systemkallet. Fagmannen vil forstå at det beskrevne systemet kan tilpasses for å støtte et eget program for hvert systemkall.
Figur 1 er et blokkdiagram som illustrerer komponenter i sikkerhetssystemet ifølge én utførelsesform. Sikkerhetssystemet omfatter noen komponenter som kjører i brukermodus 100 og andre som kjører i kjernemodus 120. En regelsett-kompilator 102 er en komponent som kjører i brukermodus og kompilerer et sett av sikkerhetsregler i et regellager 103 til sikkerhetsprogrammer som kan kjøres av den sikkerhetspåtvingende virtuelle maskinen. Komponentene i kjernen omfatter en systemkall-overvåkningskomponent 121, en programinnlastingskomponent 122 og en sikkerhetspåtvingende virtuell maskin 125. Den sikkerhetspåtvingende virtuelle maskinen omfatteren instruksjonspeker (ip) 126, en prosessormotor 127, et instruksjonslager 128 og et datalager 129. Programinnlastingskomponenten laster inn sikkerhetsprogrammer generert av regelsett-kompilatoren i instruksjonslageret for den sikkerhetspåtvingende virtuelle maskinen, lagrer program-data i datalageret og setter startinstruksjonspekeren. Systemkall-overvåkningskomponenten fanger opp systemkall gjort av applikasjonsprogrammer 101 og lagrer parametrene til hvert systemkall og prosesstyringsinformasjon for applika-sjonsprogrammene i datalageret. Etter å ha fanget opp et systemkall og lagret parametrene til dette, instruerer systemkall-overvåkningskomponenten prosessormotoren til å kjøre sikkerhetsprogrammet i instruksjonslageret. Prosessormotoren kjører sikkerhetsprogrammet ved å innhente instruksjoner som pekes til av instruksjonspekeren og å utføre operasjonene som spesifiseres av instruksjonene. Opera sjonene omfatter lagring av handlinger som skal utføres for å påtvinge settet av sikkerhetsregler i et utmatet handlingssett i datalageret. Når sikkerhetsprogrammet har kjørt ferdig, utfører systemkall-overvåkningskomponenten handlingene i det utmatede handlingssettet.
Databehandlingsanordningen hvor sikkerhetssystemet er realisert kan omfatte en sentralprosesseringsenhet, minne, innmatingsanordninger (f.eks. tastaturer og pekeranordninger), utmatingsanordninger (f.eks. fremvisningsanord-ninger) og lagringsanordninger (f.eks. harddisker). Minnet og lagringsanordning-ene er datamaskin-lesbare medier som kan inneholde instruksjoner som realiserer sikkerhetssystemet. I tillegg kan datastrukturene og meldingsstrukturene være lagret eller bli overført ved hjelp av et dataoverføringsmedium, så som et signal i en kommunikasjonsforbindelse. Forskjellige kommunikasjonsforbindelser kan anvendes, så som Internett, et lokalt nettverk, et regionalt nettverk eller en punkt-til-punkt-basert, oppringt forbindelse.
Figur 1 illustrerer et eksempel på et passende driftmiljø hvor sikkerhetssystemet kan realiseres. Dette driftsmiljøet er bare ett eksempel på et passende driftsmiljø, og er ikke ment å antyde noen som helst begrensninger vedrørende sikkerhetssystemets bruksområde eller funksjonalitet. Andre velkjente data-systemer, -miljøer, og anordninger som kan være egnet for bruk omfatter personlige datamaskiner, tjenermaskiner, håndholdte anordninger eller laptop-anordninger, flerprosessorsystemer, mikroprosessor-baserte systemer, programmerbar for-brukerelektronikk, personlige datamaskiner i nettverk, minidatamaskiner, storma-skiner, distribuerte databehandlingsmiljøer som omfatter hvilke som helst av sys-temene eller anordningene over, og liknende.
Sikkerhetssystemet kan beskrives i den generelle sammenhengen datamaskin eksekver bare instruksjoner, så som programmoduler, som eksekveres av én eller flere datamaskiner eller andre anordninger. Generelt omfatter programmoduler rutiner, programmer, objekter, komponenter, datastrukturer og annet som utfører konkrete oppgaver eller implementerer abstrakte datatyper. Program-modulenes funksjonalitet kan typisk kombineres eller distribueres som ønsket i forskjellige utførelsesformer.
Figur 2 er et blokkdiagram som illustrerer datastrukturen i datalageret ifølge én utførelsesform. Datalageret omfatter en datastruktur 201 forfaste data, en datastruktur 211 for dynamiske data, en datastruktur 221 for systemkall-parametere, en datastruktur 231 for prosesstyringsdata og et utmatet handlingssett 241. Datastrukturen for faste data omfatter en tabell 202 for faste data og et lager 203 for faste data. Tabellen for faste data inneholder elementer med fast størrelse som refererer til faste data lagret i lageret for faste data. Med "faste data" menes data for sikkerhetsprogrammet som er konstante gjennom levetiden til det lastede settet av sikkerhetsregler. Faste data kan bare endres ved å laste inn et nytt sett av sikkerhetsregler. Datastrukturen for dynamiske data har en tilsvarende oppbygning som datastrukturen forfaste data, men den lagrer "dynamiske data" heller enn "faste data". Med "dynamiske data" menes data for sikkerhetsprogrammet som kan modifiseres uten å laste inn et nytt sett av sikkerhetsregler. For eksempel kan dynamiske data omfatte navn på applikasjoner som er unntatt fra sikkerhetsreglene. Hvert element i tabellene for faste og dynamiske data peker til data i det tilhørende datalageret. Dataene i lagrene forfaste og dynamiske data er representert i et selvbeskrivende format. Dette formatet omfatter informasjon om datatype og datastørrelse. I én utførelsesform støtter den sikkerhetspåtvingende virtuelle maskinen boolske variabler, heltall, tegnstrenger og rå binærdata (også referert til som "datablokker"), i tillegg matriser av heltall, tegnstrenger og datablokker. Instruksjoner refererer til de faste og dynamiske dataene ved anvendelse av indekser i tabellene for faste og dynamiske data. Når den eksekverer en instruksjon, avbilder den sikkerhetspåtvingende virtuelle maskinen indeksen i tabellene for faste og dynamiske data ved å innhente det indekserte elementet og bruke dets verdi som peker til begynnelsen av dataposten i lageret for faste eller dynamiske data. Siden dataene er selvbeskrivende kan dataenes type og størrelse bestemmes. Datastrukturen for systemkall parametere omfatter en tabell 222 for tegnstrenger, en tabell 223 for heltall og en tabell 224 for rå binærdata. Parametrene til systemkallet lagres i disse tabellene i henhold til datatype. Datastrukturen for prosesstyringsdata er en tabell som inneholder et element for hver enhet av prosesstyringsinformasjon som er tilgjengelig for den sikkerhetspåtvingende virtuelle maskinen. I én utførelsesform omfatter prosesstyringsinformasjonen en applikasjonsidentifikator og en prosesstråd-identifikator. Det utmatede handlingssettet kan være et sett av handlingsflagg som genereres under eksekvering av sikkerhetsprogrammet og som angir hvilke handlinger som skal utføres
for å påtvinge settet av sikkerhetsregler på systemkallet. Handlingene kan omfatte blokkering av systemkallet og varsling av en bruker. Figur 3 er et diagram som illustrerer oppbygningen til en instruksjon for den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Hver instruksjon omfatter et operasjonsfelt 310, et felt parameterl (" p1") 320, et felt true-gren (" tb") 330, et felt false-gren (" fb") 340 og et felt parameter2 (" p2") 350. Feltet p1 refererer til data assosiert med systemkallet (dvs. lagret i systemkall-datastrukturen eller i prosesstyring-datastrukturen), og feltet p2 refererer til data assosiert med sikkerhetsprogrammet (dvs." immediate" data eller data lagret i datastrukturene forfaste eller dynamiske data). Feltet operasjon omfatter en deskriptor for parameter2 311 ("m") og en operasjonskode 312. Deskriptoren for parameter2 spesifiserer hvordan parameter2 skal tolkes. Parameter2 kan inneholde immediate data, en referanse til dynamiske data eller en referanse til faste data. Når en referanse er spesifisert, de refererer den sikkerhetspåtvingende virtuelle maskinen parameter2 før den utfører operasjonen angitt av instruksjonen. Operasjonskoden identifiserer operasjonen angitt av instruksjonen, som beskrevet mer detaljert nedenfor. Feltet parameterl inneholder en deskriptor 321 ("s") for parameterl og en indeks 322. Deskriptoren for parameterl angir hvorvidt parameterl refererer til en systemkall-parameter eller til prosesstyringsinformasjon. Dersom deskriptoren for parameterl angir en systemkall-parameter, spesifiserer da et antall av indeks-ens mest signifikante bit hvorvidt tabellen for tegnstrenger, tabellen for heltall eller tabellen for rå binærdata i datastrukturen for systemkall-parametere skal indekse-res, og et antall av de minst signifikante bit angir det indekserte elementet i tabellen. Dersom deskriptoren for parameterl angir prosesstyringsinformasjon, angir da indeksen den spesifikke prosesstyringsinformasjonen. Feltene true-gren og false-gren inneholder offset-verdier som spesifiserer den neste instruksjonen å eksekvere avhengig av hvorvidt statuskoden for denne instruksjonen evalueres til true eller false. Offset-verdien legges til gjeldende instruksjon-pekeren for å peke til den neste instruksjonen som skal eksekveres. Tabellene 1 og 2 illustrerer instruksjonene for den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Instruksjonene kan deles inn i de som utfører en test på data og de som ikke gjør det. Tabell 1 illustrerer instruksjonene som ikke tester data.
Tabell 2 illustrerer instruksjonene som tester data. Instruksjonsmønsteret kan definere et regulært uttrykk for å sammenlikne to tegnstrenger, noe som er nyttig for" Wild Card" -type sammenlikninger av filnavn (f.eks. "<*>.DAT").
Figur 4 er et flytdiagram som illustrerer prosesseringen til programinnlastingskomponenten ifølge én utførelsesform. Komponenten anropes når et sikkerhetsprogram skal lastes inn i den sikkerhetspåtvingende virtuelle maskinen. Et sikkerhetsprogram inneholder virtuelle instruksjoner, en blokk av faste data og en blokk av dynamiske data. Blokken av faste data omfatter informasjonen i tabellen forfaste data etterfulgt av informasjonen i lageret forfaste data. Komponenten kopierer blokken av faste data til lageret for faste data med start fra en startadres se. Komponenten legger da til denne startadressen i hver offset-verdi i tabellen for faste data for å konvertere offset-verdiene til pekere. Komponenten prosesser blokken av dynamiske data på en tilsvarende måte. De virtuelle instruksjonene inneholder offset-verdier som er i forhold til begynnelsen av lageret for faste data og lageret for dynamiske data. I trinn 401 bestemmer komponenten en startadresse i lageret for faste data og kopierer blokken av faste data for sikkerhetsprogrammet med start ved denne startadressen. I trinn 402 legger komponenten til startadressen i hver offset-verdi i tabellen forfaste data for å konvertere offset-verdiene for sikkerhetsprogrammet til pekere. I trinn 403 bestemmer komponenten en startadresse i lageret for dynamiske data og kopierer blokken av dynamiske data for sikkerhetsprogrammet med start ved denne startadressen. I trinn 404 legger komponenten til startadressen i hver offset-verdi i tabellen for dynamiske data for å konvertere offset-verdiene for sikkerhetsprogrammet til pekere. I trinn 405 kopierer komponenten de virtuelle instruksjonene for sikkerhetsprogrammet til instruksjonslageret og avslutter.
Figur 5 er et flytdiagram som illustrerer prosesseringen til systemkall-overvåkningskomponenten ifølge én utførelsesform. Komponenten anropes når et systemkall blir oppdaget. Komponenten initialiserer datastrukturen for systemkall-parametere og datastrukturen for prosesstyringsinformasjon og starter deretter den sikkerhetspåtvingende virtuelle maskinen. Komponenten kan også tilveiebringe en instruksjonspeker til instruksjonen for å begynne å kjøre for å prosessere systemkallet. Når det anvendes under-sikkerhetsprogrammer, kan komponenten ha en avbildning fra systemkall til startinstruksjonspekerne og til startdatapek-erne til datastrukturene for de faste og dynamiske dataene for dette systemkallet. Programinnlastingskomponenten kan bli anropt flere ganger for å laste forskjellige underprogrammer av sikkerhetsprogrammet for å prosessere forskjellige systemkall. Siden instruksjonene og dataene er offset-basert kan instruksjonene og data bli lagret i den neste ledige adressen i instruksjonslageret og datastrukturene. I trinn 501 setter komponenten gjeldende instruksjon-pekeren til startinstruksjonspekeren for sikkerhetsprogrammet og setter det utmatede handlings settet til en initial tilstand (f.eks. tom). I trinnene 502-504 går komponenten i en sløyfe og lagrer parametrene til systemkallet i den tilhørende datastrukturen. I trinn 502 velger komponenten den neste parameteren til systemkallet. I bestemmelsestrinn 503, dersom alle systemkallets parametere allerede er valgt, fortsetter komponenten i trinn 505, ellers fortsetter komponenten i trinn 504. I trinn 504 lagrer komponenten den valgte parameteren i den aktuelle tabellen i datastrukturen for systemkall-parametere og går til trinn 502 for å velge systemkallets neste parameter. I trinnene 505-507 går komponenten i en sløyfe og lagrer prosesstyringsinformasjon i den tilhørende datastrukturen. I trinn 505 velger komponenten den neste prosesstyringsinformasjonen for prosessen som har gjort systemkallet. I bestemmelsestrinn 506, dersom all prosesstyringsinformasjon allerede er valgt, fortsetter komponenten i trinn 508, ellers fortsetter komponenten i trinn 507. I trinn 507 lagrer komponenten den valgte prosesstyringsinformasjonen i datastrukturen for prosesstyringsdata og går deretter til trinn 505 for å velge den neste prosesstyringsinformasjonen. Alternativt, heller enn å anvende og initialisere en intern datastruktur for prosesstyringsdata, kan sikkerhetssystemet innhente prosesstyringsinformasjon direkte fra en prosesstyringsblokk når det er behov for den. Fagmannen vil forstå at en prosesstyringsblokk opprettes av et operativsystem når en prosess blir opprettet. I trinn 508 starter komponenten den sikkerhetspåtvingende virtuelle maskinen for å påtvinge settet av sikkerhetsregler på det detekterte systemkallet. Når sikkerhetsprogrammet som kjøres av den sikkerhetspåtvingende virtuelle maskinen har avsluttet, utfører komponenten handlingene i det utmatede handlingssettet.
Figur 6 er et flytdiagram som illustrerer prosesseringen til prosessormotoren
i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Prosessormotoren initialiserer datastrukturen for systemkall-parametere basert på det detekterte systemkallet, starter den sikkerhetspåtvingende virtuelle maskinen og utfører handlingene i det utmatede handlingssettet. I trinnene 601-607 går prosessormotoren i en sløyfe og laster inn og eksekverer instruksjonene for sikkerhetsprogrammet lagret i instruksjonslageret inntil eksekvering av en stoppinstruk-sjon. I én utførelsesform kan sikkerhetsreglene bestemme at når en betingelse for en regel er oppfylt, ingen andre regler skal testes. I trinn 601 laster prosessormotoren inn instruksjonen som pekes til av gjeldende instruksjon-pekeren. I trinn 602 anroper prosessormotoren en komponent for å de referere parameterl og parameter. I bestemmelsestrinn 603, dersom instruksjonens operasjonskode definerer en testoperasjon, fortsetter prosessormotoren i trinn 604. Dersom instruksjonskod-
ens operasjonskode angir en operasjon som ikke omfatter tester (annet enn en stoppoperasjon), fortsetter prosessormotoren i trinn 608. Dersom instruksjonskod-ens operasjonskode angir en stoppoperasjon, fortsetter prosessormotoren i trinn 609.1 trinn 604 anroper prosessormotoren testevalueringskomponenten for å bestemme hvorvidt testoperasjonen har returnert true eller false. Den anropte komponenten setter et statuskodeflagg til true eller false. I bestemmelsestrinn 605, dersom statuskoden har verdien true, fortsetter prosessormotoren i trinn 607, ellers fortsetter prosessormotoren i trinn 606. I trinn 606 legger prosessormotoren offset-verdien i feltet false-gren til gjeldende instruksjon-pekeren og går deretter til trinn 601 for å laste inn den neste instruksjonen. I trinn 607 legger prosessormotoren offset-verdien i feltet true-gren til gjeldende instruksjon-pekeren og går deretter til trinn 601 for å laste inn den neste instruksjonen. I trinn 608 anroper prosessormotoren komponenten som utfører operasjoner som ikke omfatter tester og går deretter til trinn 601 for å laste inn den neste instruksjonen. Komponenten som ut-fører operasjoner som ikke omfatter tester gjennomfører operasjonen definert av instruksjonen og setter gjeldende instruksjon-pekeren til å peke til den neste instruksjonen som skal eksekveres. Komponenten som utfører operasjoner som omfatter tester legger til offset-verdien i feltet true-gren (eller parameter2 i tilfellet med en hopp-instruksjon) for instruksjonen til i instruksjonspekeren. I trinn 609 eksekverer komponenten stoppinstruksjonen og avslutter.
Figur 7 er et flytdiagram som illustrerer prosesseringen til de refererings-komponenten i den sikkerhetskontrollerende virtuelle maskinen ifølge én utfør-elsesform. Denne komponenten de refererer parameterl og parameter2 for den innlastede instruksjonen. I trinnene 701-708 de refererer komponenten parameterl I bestemmelsestrinn 701, dersom parameterl er en systemkall-parameter, som angitt av deskriptoren for parameterl, fortsetter komponenten i trinn 703, ellers fortsetter komponenten i trinn 702. I trinn 702 setter komponenten den de refererte parameterl til prosesstyringsinformasjonen spesifisert av indeksdelen av parameterl og fortsetter deretter i trinn 709. I bestemmelsestrinn 703, dersom indeksdelen av parameterl angir at systemkall-parameteren er et heltall, fortsetter komponenten i trinn 704, ellers fortsetter komponenten i trinn 705.1 trinn 704 setter komponenten den de refererte parameterl til heltallet spesifisert av indeksen og fortsetter i trinn 709. I bestemmelsestrinn 705, dersom indeksdelen av parame- teri angir at systemkall-parameteren er en tegnstreng, fortsetter komponenten i trinn 706, ellers fortsetter komponenten i trinn 707. I trinn 706 setter komponenten den de refererte parameterl til tegnstrengen spesifisert av indeksen og fortsetter i trinn 709.1 bestemmelsestrinn 707, dersom indeksdelen av parameterl angir at systemkall-parameteren er rå binærdata, fortsetter da komponenten i trinn 708, i motsatt fall har det oppstått en feil. I trinn 708 setter komponenten den de refererte parameterl til de rå binærdataene spesifisert av indeksen og fortsetter i trinn 709.
I trinnene 709-714 de refererer komponenten parameter2. I bestemmelsestrinn 709, dersom deskriptoren for parameter2 angir" immediate" data, fortsetter da komponenten i trinn 710, ellers fortsetter komponenten i trinn 711. I trinn 710 setter komponenten den de refererte parameter2 til verdien til parameter2 i den innlastede instruksjonen og returnerer. I bestemmelsestrinn 711, dersom deskriptoren for parameter2 angir faste data, fortsetter komponenten i trinn 712, ellers fortsetter komponenten i trinn 713. I trinn 712 setter komponenten den de refererte parameter til de faste dataene spesifisert av parameter2 i den innlastede instruksjonen og returnerer. I bestemmelsestrinn 713, dersom deskriptoren for parameter angir dynamiske data, fortsetter da komponenten i trinn 714, i motsatt fall har det oppstått en feil. I trinn 714 setter komponenten den de refererte parameter til de dynamiske dataene spesifisert av parameter2 i den innlastede instruksjonen og returnerer. Figur 8 er et flytdiagram som illustrerer prosesseringen til testevalueringskomponenten i den sikkerhetspåtvingende virtuelle maskinen ifølge én utfør-elsesform. Komponenten dekoder operasjonskoden i den innlastede instruksjonen og anroper en komponent som tester denne operasjonskoden. Den anropte komponenten setter statuskoden til true eller false. I bestemmelsestrinnene 801-803 dekoder komponenten operasjonskoden i den innlastede instruksjonen. I trinnene 804-806 anroper komponenten komponentene for å realisere den dekodede operasjonskoden og returnerer.
Figur 9 er et flytdiagram som illustrerer prosesseringen til testkomponenten
i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Testkomponenten implementerer test-operasjonskoden. I trinn 901 setter komponenten statuskoden til verdien til den de refererte parameter og returnerer. Figur 10 er et flytdiagram som illustrerer prosesseringen til tegnstreng-sammenligningskomponenten i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelsesform. Komponenten bestemmer hvorvidt den de refererte parameterl matcher den de refererte parameter2. I én utførelsesform kan den sikkerhetspåtvingende virtuelle maskinen anvende mønsterbasert sammenlikning. For eksempel kan en parameter omfatte en "Wild Card"-basert spesifikasjon eller mer generelt et regulært uttrykk. I bestemmelsestrinn 1001, dersom parameterl og parameter2 har samme lengde, fortsetter komponenten i trinn 1003, ellers kan ikke de de refererte parameterne være like, og komponenten fortsetter i trinn 1002. I trinn 1002 setter komponenten statuskoden til false og returnerer. I trinnene 1003-1006 går komponenten i en sløyfe og sjekker hvert tegn i tegnstrengene definert av de de refererte parameterne. I trinn 1003 velger komponenten det neste tegnet i hver tegnstreng. I bestemmelsestrinn 1004, dersom alle tegnene i tegnstrengene allerede er valgt, fortsetter komponenten i trinn 1008, ellers fortsetter komponenten i trinn 1005. I trinn 1005 normaliserer komponenten de valgte tegnene. Foreksempel kan komponenten konvertere hvert tegn til minuskelutgaven for å implementere en versalsensitiv sammenlikning. I bestemmelsestrinn 1006, dersom de valgte tegnene er like, går komponenten til trinn 1003 for å velge de neste tegnene i tegnstrengene, ellers fortsetter komponenten i trinn 1007. I trinn 1007 setter komponenten statuskoden til false og returnerer. I trinn 1008 sammenfaller alle tegnene i tegnstrengene, og komponenten setter statuskoden til true og returnerer. Figur 11 er et flytdiagram som illustrerer prosesseringen til ikke testkomponenten i den sikkerhetspåtvingende virtuelle maskinen ifølge én utførelses-form. Komponenten utfører operasjonen spesifisert av ikke test-operasjonskoden for den innlastede instruksjonen, inkludert å sette gjeldende instruksjon-pekeren til å peke til den neste instruksjonen som skal eksekveres. I bestemmelsestrinn 1101, dersom operasjonskoden er en handlingsoperasjon, fortsetter komponenten i trinn 1102, ellers fortsetter komponenten i trinn 1103. I trinn 1102 legger komponenten parameter2 i den innlastede instruksjonen til i det utmatede handlingssettet og fortsetter i trinn 1107. I bestemmelsestrinn 1103, dersom operasjonskoden er en" reset" -operasjon, fortsetter komponenten i trinn 1104, ellers fortsetter komponenten i trinn 1105. I trinn 1104 nullstiller komponenten det utmatede handlings settet og fortsetter i trinn 1107. I bestemmelsestrinn 1105, dersom operasjonskoden er en hopp-operasjon, fortsetter komponenten i trinn 1106, ellers fortsetter komponenten å dekode ytterligere operasjonskoder. I trinn 1106 legger komponenten parameter2 (p2) til gjeldende instruksjon-pekeren (ip) og returnerer. I trinn 1107 legger komponenten verdien i feltet true-gren (tb) til gjeldende instruksjon-pekeren og returnerer.
Fagmannen vil forstå at selv om spesifikke utførelsesformer av sikkerhetssystemet er beskrevet herfor illustrasjonsformål, forskjellige modifikasjoner er mulige innenfor oppfinnelsens ramme og idé. Fagmannen vil forstå at et sikkerhetssystem som anvender en sikkerhetspåtvingende virtuell maskin kan brukes til å håndheve en rekke forskjellige sikkerhetsregler. For eksempel kan sikkerhetssystemet brukes til å påtvinge sikkerhet for meldinger mottatt over et nettverk, transaksjoner mottatt av en transaksjonsprosesser og mer generelt en hvilken som helst applikasjon som eksponerer et applikasjonsprogrammeringsgrensesnitt. Følgelig er oppfinnelsen ikke begrenset av annet enn de etterfølgende kravene.
Claims (33)
1. Fremgangsmåte i et datasystem for å påtvinge et sett av sikkerhetsregler kodet i et instruksjonssett til en virtuell sikkerhetsmaskin, der sikkerhetsreglene spesifiserer sikkerhet for systemkall,karakterisert vedat fremgangsmåten omfatter det å: fremskaffe et sett av sikkerhetsregler representert i et høy-nivå språk, kompilere settet av sikkerhetsregler til et sikkerhetsprogram som er en representasjon av sikkerhetsreglene i instruksjonssettet til den virtuelle sikkerhetsmaskinen, laste inn sikkerhetsprogrammet i et instruksjonslager for den sikkerhetspåtvingende virtuelle maskinen, og når en sikkerhetspåtvingningsaktuell hendelse inntreffer, eksekvere i den virtuelle sikkerhetsmaskinen instruksjonene for sikkerhetsprogrammet i instruksjonslageret basert på data for den sikkerhetspåtvingningsaktuelle hendelsen for å påtvinge settet av sikkerhetsregler.
2. Fremgangsmåte ifølge krav 1, der settet av sikkerhetsregler spesifiserer sikkerhet for systemkall.
3. Fremgangsmåte ifølge krav 1, der den sikkerhetspåtvingningsaktuelle hendelsen er at en applikasjon gjør et systemkall.
4. Fremgangsmåte ifølge krav 3, der parametere til systemkallene er dataene for den sikkerhetspåtvingningsaktuelle hendelsen.
5. Fremgangsmåte ifølge krav 3, der prosesstyringsinformasjon for en applikasjon som gjør systemkallet er dataene for den sikkerhetspåtvingningsaktuelle hendelsen.
6. Fremgangsmåte ifølge krav 1, der data for sikkerhetsprogrammet lagres i en datastruktur for faste data.
7. Fremgangsmåte ifølge krav 6, der en instruksjon omfatter en referanse til faste data lagret i datastrukturen forfaste data.
8. Fremgangsmåte ifølge krav 1, der data for sikkerhetsprogrammet lagres i en datastruktur for dynamiske data.
9. Fremgangsmåte ifølge krav 8, der en instruksjon omfatter en referanse til dynamiske data lagret i datastrukturen for dynamiske data.
10. Fremgangsmåte ifølge krav 1, der en instruksjon identifiserer et lagringssted for den neste instruksjonen som skal eksekveres.
11. Fremgangsmåte ifølge krav 1, der den sikkerhetspåtvingende virtuelle maskinen støtter boolske variabler, heltall, tegnstrenger og rå binærdata.
12. Fremgangsmåte ifølge krav 1, der den sikkerhetspåtvingende virtuelle maskinen støtter regulære uttrykk-baserte sammenlikninger.
13. Fremgangsmåte ifølge krav 1, der kjøring av sikkerhetsprogrammet genererer et utmatet handlingssett som spesifiserer hvordan å behandle den sikkerhetspåtvingningsaktuelle hendelsen.
14. Fremgangsmåte ifølge krav 1, der eksekveringen av instruksjonene gjøres i kjernemodus.
15. Fremgangsmåte ifølge krav 1, der instruksjonen omfatter en operasjonskode, parametere og forgreningsfelter.
16. Sikkerhetspåtvingende system konfigurert til å påtvinge sikkerhetsregler kodet i et instruksjonssett til virtuell sikkerhetsmaskin, hvor sikkerhetssystemet innbefatter komponenter som utføres i brukermodus og komponenter som utføres i kjernemodus,karakterisert vedat systemet innbefatter: en regel-sett-kompilator (102) konfigurert til å bli utført i bruker modus, regel-sett-kompilatoren er videre konfigurert til å motta en sikkerhetsregel representert i et høy-nivå språk og å generere et sikkerhetsprogram som er en representasjon av sikkerhetsregelen i instruksjonssettet til den virtuelle sikkerhetsmaskinen, en programinnlastingskomponent (122) konfigurert til å kjøre i kjernemodus, programinnlastingskomponenten er videre konfigurert til å laste opp sikkerhetsprogrammet til et instruksjonslager (128) i den virtuelle sikkerhetsmaskinen, og en virtuell sikkerhetsmaskin (125) for å detektere når en applikasjon (101) i bruker modus gjør et systemkall med parametere som er i strid med e sikkerhetsreglene, der den virtuelle sikkerhetsmaskinen er konfigurert til å kjøre i kjernemodus, den virtuelle sikkerhetsmaskinen omfatter: instruksjonslageret (128) inneholder instruksjoner som implementerer settet av sikkerhetsregler, et data lager (129) som inneholder data for settet av sikkerhetsregler, et parameter lager som inneholder parametere til et systemkall, en systemkall-overvåkingskomponent (121) tilpasset til å overvåke systemkallene, og en prosessormotor (127) som eksekverer instruksjonene for sikkerhetsprogrammet i instruksjonslageret ved anvendelse av data i data lageret og parametere i parameter lageret for å bestemme hvorvidt systemkallet er i strid med settet av sikkerhetsregler.
17. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der høynivåspråket er på et XML-basert format.
18. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der høynivåspråket har regler som er spesifisert i form av en betingelse og en handling som skal ut-føres når betingelsen er oppfylt.
19. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der systemkall-overvåkningskomponenten lagrer parametere til et detektert systemkall i parameterlageret.
20. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der en programinnlastingskomponent laster inn instruksjoner i instruksjonslageret.
21. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der instruksjonssettet er et redusert instruksjonssett.
22. Sikkerhetspåtvingende virtuell maskin ifølge krav 18, omfattende et lager for prosesstyringsinformasjon for å lagre prosesstyringsinformasjon som blir brukt ved eksekvering av instruksjonene.
23. Sikkerhetspåtvingende virtuell maskin ifølge krav 18, der data lageret omfatter en datastruktur for faste data (201) og en datastruktur for dynamiske data (211).
24. Sikkerhetspåtvingende virtuell maskin ifølge krav 18, der instruksjoner omfatter en referanse til data lageret.
25. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der hver instruksjon identifiserer et lagringssted for den neste instruksjonen som skal eksekveres.
26. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der den sikkerhetspåtvingende virtuelle maskinen støtter boolske variabler, heltall, tegnstrenger og rå binærdata.
27. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der den virtuelle maskinen støtter regulært uttrykk-baserte sammenlikninger.
28. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der eksekveringen av instruksjonene genererer et utmatet handlingssett som spesifiserer hvordan gjen-nomføre påtvingningen av settet av sikkerhetsregler.
29. Sikkerhetspåtvingende virtuell maskin ifølge krav 16, der en instruksjon omfatter en operasjonskode (312), parametere (320, 350) og forgreningsfelter (330, 340).
30. Datamaskin-lesbart medium som inneholder instruksjoner som når de eksekveres i en datamaskin utfører en metode i henhold til hvilket som helst krav 1 til 15.
31. Datamaskin-lesbart medium ifølge krav 30, videre omfattende et datalager for data som blir brukt for å påtvinge settet av sikkerhetsregler.
32. Datamaskin-lesbart medium ifølge krav 30, der instruksjonene danner et flyttbart under-sikkerhetsprogram.
33. Datamaskin-lesbart medium ifølge krav 30, der hver instruksjon identifiserer en neste instruksjon som skal eksekveres.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/832,798 US8607299B2 (en) | 2004-04-27 | 2004-04-27 | Method and system for enforcing a security policy via a security virtual machine |
Publications (3)
Publication Number | Publication Date |
---|---|
NO20051525D0 NO20051525D0 (no) | 2005-03-22 |
NO20051525L NO20051525L (no) | 2005-10-28 |
NO336813B1 true NO336813B1 (no) | 2015-11-02 |
Family
ID=34939240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO20051525A NO336813B1 (no) | 2004-04-27 | 2005-03-22 | Fremgangsmåte og system for å håndheve et sett av sikkerhetsregler ved hjelp av en sikkerhetspåtvingende virtuell maskin |
Country Status (17)
Country | Link |
---|---|
US (1) | US8607299B2 (no) |
EP (1) | EP1596298B1 (no) |
JP (1) | JP4902129B2 (no) |
KR (1) | KR101143154B1 (no) |
CN (1) | CN1690957B (no) |
AU (1) | AU2005200911B2 (no) |
BR (1) | BRPI0501171A (no) |
CA (1) | CA2499688C (no) |
CO (1) | CO5680123A1 (no) |
MX (1) | MXPA05003403A (no) |
MY (1) | MY147383A (no) |
NO (1) | NO336813B1 (no) |
NZ (1) | NZ539022A (no) |
RU (1) | RU2390837C2 (no) |
SG (1) | SG116580A1 (no) |
TW (1) | TWI423040B (no) |
ZA (1) | ZA200502451B (no) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469346B2 (en) * | 2003-06-27 | 2008-12-23 | Disney Enterprises, Inc. | Dual virtual machine architecture for media devices |
US8607299B2 (en) | 2004-04-27 | 2013-12-10 | Microsoft Corporation | Method and system for enforcing a security policy via a security virtual machine |
WO2006017388A1 (en) * | 2004-08-03 | 2006-02-16 | Softricity, Inc. | System and method for controlling inter-application association through contextual policy control |
US7913092B1 (en) * | 2005-12-29 | 2011-03-22 | At&T Intellectual Property Ii, L.P. | System and method for enforcing application security policies using authenticated system calls |
US7725614B2 (en) * | 2006-08-08 | 2010-05-25 | Sandisk Corporation | Portable mass storage device with virtual machine activation |
US20080127142A1 (en) * | 2006-11-28 | 2008-05-29 | Microsoft Corporation | Compiling executable code into a less-trusted address space |
US20080250407A1 (en) * | 2007-04-05 | 2008-10-09 | Microsoft Corporation | Network group name for virtual machines |
US8397216B2 (en) * | 2008-02-29 | 2013-03-12 | International Business Machines Corporation | Compiler for a declarative event-driven programming model |
US8365149B2 (en) * | 2008-02-29 | 2013-01-29 | International Business Machines Corporation | Debugger for a declarative event-driven programming model |
US8627299B2 (en) | 2008-02-29 | 2014-01-07 | International Business Machines Corporation | Virtual machine and programming language for event processing |
US9940181B2 (en) * | 2008-07-14 | 2018-04-10 | Nyotron Information Security Ltd. | System and method for reacting to system calls made to a kernal of the system |
US8533833B2 (en) * | 2008-07-14 | 2013-09-10 | Nyotron Information Security Ltd. | System, a method, and a data-structure for processing system calls in a computerized system that implements a kernel |
EP2194456A1 (en) * | 2008-12-05 | 2010-06-09 | NTT DoCoMo, Inc. | Method and apparatus for performing a file operation |
US20100162240A1 (en) * | 2008-12-23 | 2010-06-24 | Samsung Electronics Co., Ltd. | Consistent security enforcement for safer computing systems |
US8561090B2 (en) * | 2009-02-26 | 2013-10-15 | Red Hat, Inc. | Method and an apparatus to implement secure system call wrappers |
EP2237200A1 (en) * | 2009-04-01 | 2010-10-06 | Alcatel Lucent | Method for filtering the streaming of virtual environment content assets, a related system, network element and a related virtual environment content asset |
US8429648B2 (en) * | 2009-05-28 | 2013-04-23 | Red Hat, Inc. | Method and apparatus to service a software generated trap received by a virtual machine monitor |
US8813069B2 (en) * | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
KR101113820B1 (ko) * | 2010-03-16 | 2012-02-29 | 소프트캠프(주) | 응용프로그램의 파일 입출력 보안방법과 보안시스템 |
JP2012084071A (ja) | 2010-10-14 | 2012-04-26 | Toshiba Corp | デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置 |
US9129138B1 (en) * | 2010-10-29 | 2015-09-08 | Western Digital Technologies, Inc. | Methods and systems for a portable data locker |
US8566899B2 (en) * | 2011-03-16 | 2013-10-22 | Symantec Corporation | Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
JP5275432B2 (ja) | 2011-11-11 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
AU2012337403B2 (en) | 2011-11-16 | 2015-04-30 | V-Key Inc | Cryptographic system and methodology for securing software cryptography |
JP5204290B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、システム、及び装置 |
JP5204291B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、装置、システム |
JP5100884B1 (ja) | 2011-12-02 | 2012-12-19 | 株式会社東芝 | メモリ装置 |
JP5112555B1 (ja) | 2011-12-02 | 2013-01-09 | 株式会社東芝 | メモリカード、ストレージメディア、及びコントローラ |
JP5275482B2 (ja) | 2012-01-16 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
US8966574B2 (en) | 2012-02-03 | 2015-02-24 | Apple Inc. | Centralized operation management |
CN102831342B (zh) * | 2012-07-28 | 2016-01-06 | 北京深思数盾科技有限公司 | 一种提高安卓***中应用程序保护强度的方法 |
US9087191B2 (en) * | 2012-08-24 | 2015-07-21 | Vmware, Inc. | Method and system for facilitating isolated workspace for applications |
US9201811B2 (en) | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
US8984294B2 (en) | 2013-02-15 | 2015-03-17 | Kabushiki Kaisha Toshiba | System of authenticating an individual memory device via reading data including prohibited data and readable data |
US20150277949A1 (en) * | 2014-03-27 | 2015-10-01 | Thiam Wah Loh | Securing shared interconnect for virtual machine |
US10402584B1 (en) * | 2015-10-01 | 2019-09-03 | Hrl Laboratories, Llc | System and method for translating security objectives of computer software to properties of software code |
US10289853B2 (en) * | 2016-03-31 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure driver platform |
US10650138B2 (en) * | 2017-01-27 | 2020-05-12 | Hewlett Packard Enterprise Development Lp | System call policies for containers |
US11831655B2 (en) | 2017-10-02 | 2023-11-28 | Qualcomm Incorporated | Incorporating network policies in key generation |
CN109639449B (zh) * | 2017-10-09 | 2021-09-03 | 中兴通讯股份有限公司 | 虚拟化流镜像策略自动化管理的方法、设备及介质 |
CN109992974B (zh) * | 2017-12-29 | 2023-04-14 | 中兴通讯股份有限公司 | 虚拟机字节码文件的保护方法、设备及可读存储介质 |
US10747711B2 (en) * | 2018-03-20 | 2020-08-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Dynamic hybridized positional notation instruction set computer architecture to enhance security |
US11108823B2 (en) | 2018-07-31 | 2021-08-31 | International Business Machines Corporation | Resource security system using fake connections |
US11182507B2 (en) * | 2018-08-30 | 2021-11-23 | Micron Technology, Inc. | Domain crossing in executing instructions in computer processors |
US10915465B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory configured to store predefined set of domain registers for instructions being executed in computer processors |
US11914726B2 (en) | 2018-08-30 | 2024-02-27 | Micron Technology, Inc. | Access control for processor registers based on execution domains |
US11500665B2 (en) | 2018-08-30 | 2022-11-15 | Micron Technology, Inc. | Dynamic configuration of a computer processor based on the presence of a hypervisor |
US10915457B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory access control through permissions specified in page table entries for execution domains |
US10942863B2 (en) | 2018-08-30 | 2021-03-09 | Micron Technology, Inc. | Security configurations in page table entries for execution domains using a sandbox application operation |
US11481241B2 (en) * | 2018-08-30 | 2022-10-25 | Micron Technology, Inc. | Virtual machine register in a computer processor |
US10452868B1 (en) * | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
US11880422B2 (en) | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
US11698980B2 (en) * | 2019-09-12 | 2023-07-11 | Arm Limited | System, devices and/or processes for secure computation on a virtual machine |
US11588859B2 (en) * | 2021-03-15 | 2023-02-21 | Zscaler, Inc. | Identity-based enforcement of network communication in serverless workloads |
WO2022270385A1 (ja) | 2021-06-22 | 2022-12-29 | デジタル・インフォメーション・テクノロジー株式会社 | プログラム、情報処理装置、方法 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4792895A (en) * | 1984-07-30 | 1988-12-20 | International Business Machines Corp. | Instruction processing in higher level virtual machines by a real machine |
JP3381927B2 (ja) * | 1997-01-17 | 2003-03-04 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 分散コンピュータ・システムにおいて資源を保護する方法 |
US6370571B1 (en) * | 1997-03-05 | 2002-04-09 | At Home Corporation | System and method for delivering high-performance online multimedia services |
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US6125447A (en) * | 1997-12-11 | 2000-09-26 | Sun Microsystems, Inc. | Protection domains to provide security in a computer system |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6170009B1 (en) | 1998-07-17 | 2001-01-02 | Kallol Mandal | Controlling devices on a network through policies |
US6658571B1 (en) * | 1999-02-09 | 2003-12-02 | Secure Computing Corporation | Security framework for dynamically wrapping software applications executing in a computing system |
US6546546B1 (en) * | 1999-05-19 | 2003-04-08 | International Business Machines Corporation | Integrating operating systems and run-time systems |
US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
GB2365561B (en) | 1999-12-14 | 2004-06-16 | Ibm | Conditional access control |
US6567974B1 (en) * | 2000-02-25 | 2003-05-20 | Sun Microsystems, Inc. | Small memory footprint system and method for separating applications within a single virtual machine |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
US6973493B1 (en) * | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
CA2315449A1 (en) * | 2000-08-10 | 2002-02-10 | Ibm Canada Limited-Ibm Canada Limitee | Generation of runtime execution traces of applications and associated problem determination |
KR20020033859A (ko) | 2000-10-30 | 2002-05-08 | 송영호 | 리눅스 보안 커널 |
WO2002086699A2 (en) * | 2001-04-23 | 2002-10-31 | Atmel Corporation | Microprocessor for executing byte compiled java code |
US20020184520A1 (en) * | 2001-05-30 | 2002-12-05 | Bush William R. | Method and apparatus for a secure virtual machine |
US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
GB2376761A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk |
US7698713B2 (en) | 2001-09-20 | 2010-04-13 | Google Inc. | Altered states of software component behavior |
GB2381092B (en) * | 2001-10-19 | 2005-10-19 | Ibm | Object locking in a shared VM environment |
JP2003173301A (ja) * | 2001-12-07 | 2003-06-20 | Hitachi Ltd | ネットワーク,サーバおよびストレージのポリシーサーバ |
JP4522705B2 (ja) | 2001-12-13 | 2010-08-11 | 独立行政法人科学技術振興機構 | ソフトウェア安全実行システム |
US7415270B2 (en) * | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US7536181B2 (en) * | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
US7178049B2 (en) | 2002-04-24 | 2007-02-13 | Medius, Inc. | Method for multi-tasking multiple Java virtual machines in a secure environment |
US20030204500A1 (en) * | 2002-04-25 | 2003-10-30 | Jean-Francois Delpech | Process and apparatus for automatic retrieval from a database and for automatic enhancement of such database |
US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
US7149510B2 (en) * | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
JP2004126854A (ja) | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
US7117481B1 (en) * | 2002-11-06 | 2006-10-03 | Vmware, Inc. | Composite lock for computer systems with multiple domains |
US7657937B1 (en) * | 2003-01-02 | 2010-02-02 | Vmware, Inc. | Method for customizing processing and response for intrusion prevention |
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US20050044301A1 (en) * | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US7478388B1 (en) * | 2004-04-21 | 2009-01-13 | Vmware, Inc. | Switching between multiple software entities using different operating modes of a processor in a computer system |
US8607299B2 (en) | 2004-04-27 | 2013-12-10 | Microsoft Corporation | Method and system for enforcing a security policy via a security virtual machine |
-
2004
- 2004-04-27 US US10/832,798 patent/US8607299B2/en active Active
-
2005
- 2005-02-28 AU AU2005200911A patent/AU2005200911B2/en not_active Ceased
- 2005-03-01 TW TW094106137A patent/TWI423040B/zh not_active IP Right Cessation
- 2005-03-07 CA CA2499688A patent/CA2499688C/en active Active
- 2005-03-08 SG SG200501470A patent/SG116580A1/en unknown
- 2005-03-16 RU RU2005107408/09A patent/RU2390837C2/ru not_active IP Right Cessation
- 2005-03-22 MY MYPI20051234A patent/MY147383A/en unknown
- 2005-03-22 NO NO20051525A patent/NO336813B1/no not_active IP Right Cessation
- 2005-03-22 CO CO05026108A patent/CO5680123A1/es not_active Application Discontinuation
- 2005-03-23 BR BR0501171-0A patent/BRPI0501171A/pt not_active IP Right Cessation
- 2005-03-23 NZ NZ539022A patent/NZ539022A/en not_active IP Right Cessation
- 2005-03-24 ZA ZA200502451A patent/ZA200502451B/en unknown
- 2005-03-25 JP JP2005088743A patent/JP4902129B2/ja not_active Expired - Fee Related
- 2005-03-25 KR KR1020050024933A patent/KR101143154B1/ko active IP Right Grant
- 2005-03-29 CN CN2005100626459A patent/CN1690957B/zh active Active
- 2005-03-29 MX MXPA05003403A patent/MXPA05003403A/es active IP Right Grant
- 2005-04-12 EP EP05102869.4A patent/EP1596298B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
EP1596298B1 (en) | 2017-02-08 |
KR20060044764A (ko) | 2006-05-16 |
EP1596298A1 (en) | 2005-11-16 |
US8607299B2 (en) | 2013-12-10 |
AU2005200911A1 (en) | 2007-02-15 |
CO5680123A1 (es) | 2006-09-29 |
NZ539022A (en) | 2007-05-31 |
KR101143154B1 (ko) | 2012-05-08 |
AU2005200911B2 (en) | 2010-10-21 |
CA2499688A1 (en) | 2005-10-27 |
JP4902129B2 (ja) | 2012-03-21 |
NO20051525L (no) | 2005-10-28 |
NO20051525D0 (no) | 2005-03-22 |
TWI423040B (zh) | 2014-01-11 |
CN1690957A (zh) | 2005-11-02 |
JP2005316964A (ja) | 2005-11-10 |
CA2499688C (en) | 2014-02-25 |
BRPI0501171A (pt) | 2006-01-10 |
TW200617702A (en) | 2006-06-01 |
RU2390837C2 (ru) | 2010-05-27 |
CN1690957B (zh) | 2010-06-09 |
MY147383A (en) | 2012-11-30 |
SG116580A1 (en) | 2005-11-28 |
RU2005107408A (ru) | 2006-08-27 |
MXPA05003403A (es) | 2005-10-31 |
ZA200502451B (en) | 2006-12-27 |
US20050257243A1 (en) | 2005-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NO336813B1 (no) | Fremgangsmåte og system for å håndheve et sett av sikkerhetsregler ved hjelp av en sikkerhetspåtvingende virtuell maskin | |
KR102206115B1 (ko) | 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지 | |
US5748964A (en) | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions | |
AU2014348812B2 (en) | Improved control flow integrity system and method | |
US6075940A (en) | System and method for pre-verification of stack usage in bytecode program loops | |
US5815661A (en) | Platform independent object and object application loader and method | |
EP1984843B1 (en) | Software system with controlled access to objects | |
US10229268B2 (en) | System and method for emulation-based detection of malicious code with unmet operating system or architecture dependencies | |
CA3167549A1 (en) | Method and apparatus for authority control, computer device and storage medium | |
US20240143739A1 (en) | Intelligent obfuscation of mobile applications | |
CN110717181B (zh) | 基于新型程序依赖图的非控制数据攻击检测方法及装置 | |
US20080209265A1 (en) | Information-Processing Method and Apparatus | |
Qiu et al. | Libcapsule: Complete confinement of third-party libraries in android applications | |
Requet | AB model for ensuring soundness of a large subset of the Java Card virtual machine | |
CN115994061A (zh) | 识别文件打开方式篡改方法、装置、电子设备和存储介质 | |
CN117688551A (zh) | 启动路径白名单更新方法、装置、电子设备及存储介质 | |
BRPI0501171B1 (pt) | Method in a computing device to enforce a security policy | |
Nature Type | CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer | |
Mappings | Weakness Ordinalities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CHAD | Change of the owner's name or address (par. 44 patent law, par. patentforskriften) |
Owner name: MICROSOFT TECHNOLOGY LICENSING, US |
|
MM1K | Lapsed by not paying the annual fees |