NO337222B1 - Automatisk deteksjon og utbedring av sårbare filer - Google Patents

Automatisk deteksjon og utbedring av sårbare filer Download PDF

Info

Publication number
NO337222B1
NO337222B1 NO20042970A NO20042970A NO337222B1 NO 337222 B1 NO337222 B1 NO 337222B1 NO 20042970 A NO20042970 A NO 20042970A NO 20042970 A NO20042970 A NO 20042970A NO 337222 B1 NO337222 B1 NO 337222B1
Authority
NO
Norway
Prior art keywords
binary
security
vulnerable
server
file
Prior art date
Application number
NO20042970A
Other languages
English (en)
Other versions
NO20042970L (no
Inventor
Oleg Ivanov
Sergei Ivanov
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of NO20042970L publication Critical patent/NO20042970L/no
Publication of NO337222B1 publication Critical patent/NO337222B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Electrotherapy Devices (AREA)
  • Television Systems (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

Denne beskrivelsen vedrører generelt utbedring eller "patching" av filer, og mer spesifikt en automatisk, fullstendig, pålitelig og regresjonsfri måte å tilveiebringe sikkerhetspatcher for sårbare binærformaterte programfiler i distribuerte og heterogene databehandlingsmiljøer.
Utvikling av programvare er en vedvarende prosess der et programvareprodukt som innledningsvis er lansert til stadighet vil kunne bli endret gjennom oppdateringer av en programutvikler/-leverandør. Programoppdateringer blir typisk distribuert fra en programleverandør i det som kalles en "servicepakke", som kan lastes ned eller bestilles fra en leverandør for installering på en brukers datamaskin. Servicepakker inneholder typisk program fikser (f.eks. for et operativsystem, et applikasjonsprogram eller annet) som retter opp problemer (dvs. "bugs") som er oppdaget i programkoden etter den første lanseringen av produktet eller etter utsending/tilgjengeliggjøring av den forrige servicepakken.
I tillegg til å inneholde korreksjoner for "bugs" i programmer, kan servicepakker også inneholde sikkerhetspatcher utviklet spesifikt for å utbedre sårbarheter funnet i programfiler. Sårbarheter eller sikkerhetshuller i programmer som oppdages etter at et program er lansert kan utgjøre en betydelig sikkerhetstrussel med tanke på angrep fra "hackere" og virus fra overalt i verden. Når et sikkerhetshull blir oppdaget, er det derfor uhyre viktig å besørge en hurtig og storstilet distribusjon av sikkerhetspatcher til datamaskiner hvor den aktuelle programvaren er installert. I teorien skulle bruken av sikkerhetspatcher for å sikre en slik hurtig og storstilet distribusjon av sikkerhetspatcher være virkningsfull. Når for eksempel en programleverandør oppdager en sårbarhet og da får utviklet en sikkerhetspatch, kan denne bli tilgjengeliggjør! i den seneste servicepakken på en leverandørs nettsted slik at brukere umiddelbart kan laste ned og installere den. Dette ville stoppe de fleste hackere og virus som forsøker å utnytte den oppdagede sårbarheten. Imidlertid er det for systemansvarlige og andre brukere av programprodukter flere negative sider og/eller vanskeligheter knyttet til det å aksessere og installere sikkerhetspatcher. Disse vanskelighetene medfører typisk at mange færre brukere utfører oppdateringene enn det utvikleren hadde tenkt. Resultatet er at sårbarheter på mange datamaskiner over hele verden ikke blir utbedret, slik at disse datamaskinene er utsatt for en betydelig sikkerhetsrisiko.
Én vanskelighet knyttet til det å aksessere og installere sikkerhetspatcher er at dagens metoder for å finne ut om en datamaskin kjører programvare med en kjent sårbarhet krever aktiv bruk av og engasjement i datamaskinen. For eksempel er dagens tilgjengelige metoder i stand til å bestemme hvorvidt spesifikke versjoner av programprodukter trenger å bli oppdatert (f.eks. med en sikkerhetspatch). Imidlertid inkluderes kun de programmene som aktivt kjører på datamaskinen i denne bestemmelsen. Sekundære operativsystemer og applikasjoner som ikke aktivt kjører på en datamaskin blir ikke sjekket, og kan derfor representere et sikkerhetshull som ikke oppdages og således ikke blir tettet. For de produktene som aktivt kjører på en datamaskin, kan en bruker sjekke en liste av tilgjengelige oppdateringer og velge oppdateringer å installere. Enkelte oppdateringer kan være kritiske oppdateringer som er utviklet for å beskytte en datamaskin mot kjente sikkerhetshuller. Forskjellige oppdateringer krever at en bruker starter datamaskinen på nytt for å fullende installeringen. I tillegg må en bruker aktivt velge oppdateringene og installere dem. Av disse og andre grunner er dagens metoder for å aksessere og installere sikkerhetspatcher ikke tilstrekkelig effektive.
En annen vanskelighet i forbindelse med aksess og installering av sikkerhetspatcher er å vite hvorvidt det er behov for en sikkerhetspatch på en datamaskin. Det er av og til vanskelig for brukere å vite om deres datamaskiner kjører sårbar programvare. Videre er dagens metoder for å bestemme hvorvidt en datamaskin kjører programvare med et kjent sikkerhetshull ikke alltid i stand til å kjenne igjen visse utgaver av et programvareprodukt som er kjent for å være sårbart. For eksempel kan uselvstendige eller delte versjoner av enkelte programvareprodukter være distribuert som del av andre produkter. Selv om en delt versjon av et produkt vil kunne inneholde de samme sårbarheter som fullversjonen av produktet, vil således den delte versjonen ikke alltid bli gjenkjent som et produkt med behov for oppdatering gjennom en sikkerhetspatch. Av denne grunn blir delte versjoner av programprodukter som er kjent for å inneholde sikkerhetshull ofte ikke oppdatert.
Andre problemer i forbindelse med aksess og installering av sikkerhetspatcher er knyttet til den tradisjonelle "sikkerhetspakke"-metoden for distribusjon av slike utbedringer. Det å laste ned og installere servicepakker er en tidkrevende og manuell prosess som mange systemansvarlige rett og slett ikke har tid til å utføre. Selv om systemansvarlige har til hensikt å installere en sikkerhetspatch, kan det derfor gå både uker, måneder og år fra en sikkerhetspatch lanseres til den er installert i et gitt system. I slike systemer fjernes derfor ikke risikoen for angrep som utnytter et sikkerhetshull før lenge etter at programleverandøren har tilgjengeliggjør! en sikkerhetspatch.
Videre velger systemansvarlige ofte å ikke laste ned og installere servicepakker som inneholder sikkerhetspatcher, selv om de er klar over de aktuelle sikkerhetsrisikoene. Grunnen til dette er at installering av en sikkerhetspakke i seg selv medfører risiko for systemregresjoner som vil kunne forårsake uønskede endringer av systemets oppførsel. Systemansvarlige legger ofte ned mye tid og arbeid på feilsøking i et system for å få det til å fungere som ønsket. Som nevnt ovenfor representerer imidlertid servicepakker en utvikling av en tidligere versjon av et programprodukt som inneholder de seneste oppdateringer av et produkts kildekode (dvs. at endringene ikke er begrenset til sikkerhetspatcher). I tillegg til å innføre ny og tilsiktet oppførsel i et system, kan nye kodeoppdateringer i en servicepakke introdusere nye "bugs" i et system som vil kunne gjøre at systemet oppfører seg på en uventet måte, noe som i sin tur vil kunne skape betydelige problemer for en systemansvarlig. Systemer blir derfor ofte ikke oppdatert med viktige sikkerhetspatcher ment for å utbedre sårbare programfiler siden systemansvarlige ikke ønsker å risikere regresjoner.
LIU C et al. beskriver i artikkelen "Automated security checking and patching using TestTalk", IEEE Computer Society, 11 September 2000, sidene 261 - 264, en sikkerhetskontroll og patching der sikkerhetsoppdateringer skrevet i maskinlesbart format blir lagt inn av leverandører. En spesifikasjon av en sikkerhetsoppdatering inneholder to deler med informasjon, en sikkerhets skanner og en sikkerhets patcher. Dersom skanneren detekterer at et spesifikt versjonsnummer til et operativsystem er lavere, eller en programpakke er lavere enn et gitt versjonsnummer, er disse filene dømt til å være sårbare. Løsningen da er å oppdatere slike pakker eller programmer.
Følgelig er det behov for en fremgangsmåte for å besørge tetting av sikkerhetshuller i programfiler på en automatisk, fullstendig, pålitelig og regresjonsfri måte.
Automatisk, fullstendig, pålitelig og regresjonsfri tetting av sikkerhetshuller i binære programfiler er beskrevet her.
Ifølge én utførelse mottas en sårbarhets binære signatur og en sikkerhetspatch. En sårbar binærbil identifiseres på en datamaskin basert på sårbarhetens binære signatur. Den sårbare binærfilen på datamaskinen oppdateres med sikkerhetspatchen.
Ifølge en annen utførelse mottas en binær signatur som identifiserer et sikkerhetshull i en binærfil. En sikkerhetspatch utviklet for å tette sikkerhetshullet mottas også. Den binære signaturen og sikkerhetspatchen distribueres til et antall tjenere.
Ifølge en annen utførelse mottas en binær signatur fra en tjener og brukes til å søke gjennom binærfiler. En forespørsel om en sikkerhetspatch sendes til tjeneren dersom den binære signaturen blir funnet i en binærfil. Binærfilen blir da oppdatert med sikkerhetspatchen.
Foreliggende oppfinnelse er særlig egnet til å tilveiebringe et prosessorlesbart medium som omfatter prosessor eksekver bare instruksjoner konstruert for å: motta en binær signatur i en tjener, den binære signaturen er et eksakt bitmønster til en sårbar funksjon innenfor en binær fil, bitmønsteret er assosiert med en sikkerhetssårbarhet i den binære filen i en klientmaskin,
motta en sikkerhetspatch i tjeneren,
identifisere, av tjeneren, en sårbar binær fil i klientmaskinen på grunnlag av den binære signaturen, hvor det å identifisere en sårbar fil inkluderer skanning, av tjeneren, i klientmaskinen og å sammenlikne bitmønsteret til den binære signaturen mot de binære filene plassert i klientmaskinen, og
oppdatere, av tjeneren, den sårbare binærfilen på klientmaskinen med sikkerhetspatchen.
I alle figurene benyttes samme referansenummer til å referere til like komponenter og trekk. Figur 1 illustrerer et eksempel på nettverksmiljø som er egnet til å implementere automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Figur 2 illustrerer et eksempel på utførelse av en distribueringstjener, en søk/utbedring-tjener og en klientmaskin som er egnet til å implementere automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Figur 3 illustrerer et annet eksempel på utførelse av en distribueringstjener, en søk/utbedring-tjener og en klientmaskin som er egnet til å implementere automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Figurene 4 - 6 er blokkdiagrammer som illustrerer eksempler på fremgangsmåter for å besørge automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Figur 7 illustrerer et eksempel på databehandlingsmiljø som er egnet til å implementere en distribueringstjener, en søk/utbedring-tjener og en klientmaskin.
Den følgende beskrivelsen retter seg mot systemer og fremgangsmåter som muliggjør tetting av sikkerhetshuller i binærfiler. Fremgangsmåten for deteksjon og utbedring av sårbare binærfiler er automatisk, pålitelig, regresjonsfri og fullstendig, og kan utføres over nettverk i en ubegrenset skala. Disse fordelene kan oppnås på forskjellige måter, for eksempel ved å utnytte eksisterende antivirus-infrastrukturer, som har stor utbredelse på Internett. En endring av sikkerhetspatcher bort fra konvensjonelle servicepakker muliggjør regresjonsfri tetting av sikkerhetshuller i binærfiler.
Pålitelig deteksjon av sårbare binærfiler (f.eks. i operativsystemer, applikasjonsprogrammer og annet) oppnås med bruk av binære signaturer som er assosiert med sikkerhetshuller. Binære signaturer assosiert med sikkerhetshuller i binærfiler, sammen med sikkerhetspatcher utviklet for å tette slike sikkerhetshuller, lastes opp til en sentral distribueringstjener. Distribueringstjeneren er innrettet for å distribuere de binære signaturene og sikkerhetspatchene i stor skala over forskjellige nettverk, så som Internett. Bruk av en sentral distribueringstjener til å oppdatere nettverkstjenere (f.eks. over Internett) tilveiebringer fullstendig og automatisk distribusjon av utbedringer i et ubegrenset omfang. Nettverkstjenere som mottar slike oppdateringer kan skanne klientmaskiner innenfor underordnede nettverk for å identifisere sårbare filer ved hjelp av binære signaturer, og deretter oppdatere de datamaskinene som er funnet å inneholde sårbare filer ved hjelp av tilhørende sikkerhetspatcher som vil utbedre de sårbare filene. Nettverkstjenere kan også kommunisere med klientmaskiner for å overføre binære signaturer og sikkerhetspatcher til datamaskinene, slik at søk og oppdatering kan gjøres av datamaskinene selv. Det kan også finnes flere nestede nivåer av underordnede nettverk.
Figur 1 illustrerer et eksempel på nettverksmiljø 100 som er egnet til å implementere automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. I det eksemplifiserte nettverksmiljøet 100 er en sentral distribueringstjener 102 koplet til et antall søk/utbedring-tjenere 104 over et nettverk 106(a). En søk/utbedring-tjener 104 er typisk koplet via et nettverk 106(b) til et antall klientmaskiner 108(a) - 108(n). Nettverket 106 er ment å representere et hvilket som helst av en rekke forskjellige tradisjonelle nettverkstopologier og -typer (inklusive optiske, kablede og/eller trådløse nettverk) som anvender en hvilken som helst av en rekke tilgjengelige tradisjonelle nettverksprotokoller (inklusive offentlige og/eller proprietære protokoller). Nettverket 106 kan for eksempel omfatte Internett så vel som eventuelt i hvert fall deler av ett eller flere lokale nettverk (LAN) og/eller regionale nettverk (WAN). Nettverkene 106(a) og 106(b) kan representere samme nettverk, for eksempel Internett, eller atskilte nettverk, for eksempel Internett og en bedrifts lokale nettverk.
Distribueringstjeneren 102 og søk/utbedring-tjenerne 104 er typisk realisert i form av standard webservere, og kan hver være en hvilken som helst av en rekke tradisjonelle databehandlingsanordninger, så som stasjonære PC-er, bærbare eller "Laptop"-type datamaskiner, arbeidsstasjoner, stormaskiner, Internett-bevisste anordninger, kombinasjoner av ovennevnte, og annet. Én eller flere av tjenerne 102 og 104 kan være samme type anordning, eller alternativt være forskjellige typer anordninger. Et eksempel på databehandlingsmiljø for å implementere en distribueringstjener 102 og en søk/utbedring-tjener 104 er beskrevet mer i detalj nedenfor i forbindelse med figur 7.
Klientmaskiner 108 kjører i en typisk klient/tjener-relasjon med en tjener 104 der et antall klienter 108 sender forespørsler til en tjener 104 som tar seg av forespørslene. Klientmaskiner 108 kan være hvilke som helst av en rekke tradisjonelle databehandlingsanordninger, så som stasjonære PC-er, bærbare eller "Laptop"-type datamaskiner, arbeidsstasjoner, stormaskiner, spillkonsoller, håndholdte PC-er, mobiltelefoner eller andre trådløse kommunikasjonsanordninger, personlige digitale assistenter (PDA-er), kombinasjoner av ovennevnte, og annet. Én eller flere av klientmaskinene 108 kan være samme type anordning, eller alternativt være forskjellige typer anordninger. Et eksempel på databehandlingsmiljø for å implementere en klientmaskin 108 er beskrevet mer i detalj nedenfor i forbindelse med figur 7.
Generelt oppnås automatisk og fullstendig deteksjon og utbedring av sårbare binærfiler på klientmaskiner 108 gjennom oppdateringer som gjøres via distribueringstjener 102 som besitter binære signaturer for å identifisere sårbare binærfiler samt sikkerhetspatcher utviklet for å utbedre sårbare filer. Som beskrevet mer i detalj nedenfor i forbindelse med de følgende utførelseseksemplene, distribueres binære signaturer og sikkerhetspatcher til søk/utbedring-tjenere 104, som i sin tur enten aktivt søker etter og oppdaterer sårbare binærfiler på klientmaskiner 108 eller sender de binære signaturene og sikkerhetspatchene til klientmaskinene 108 slik at klientmaskinene 108 selv kan søke etter og utbedre sårbare binærfiler.
Figur 2 illustrerer et eksempel på utførelse av en distribueringstjener 102, en søk/utbedring-tjener 104 og en klientmaskin 108 som er egnet til å implementere automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Distribueringstjeneren 102 omfatter en distribueringsmodul 200 og en database 202 for å motta og lagre binære signaturer og sikkerhetspatcher. Databasen 202 kan bli oppdatert med binære signaturer og sikkerhetspatcher på mange
mulige måter, omfattende for eksempel med bruk av et bærbart lagringsmedium (ikke vist, men se figur 7) eller med bruk av en dataanordning (ikke vist) som er koplet eller koples til tjeneren 102 og innrettet for å laste opp binære signaturer og sikkerhetspatcher til databasen 202.
Et typisk scenario der en database 202 blir oppdatert begynner med en granskning av et programvareprodukt (f.eks. et operativsystem, et applikasjonsprogram eller liknende) iverksatt av utvikleren av programvareproduktet. For eksempel kan en utvikler leie et konsulentfirma som driver med datasikkerhet til å prøve å finne sikkerhetshuller i et nylansert programprodukt. Dersom et sikkerhetshull i et programprodukt oppdages som følge av "hacking" eller annet, kan det bli identifisert et eksakt bit-mønster av den sårbare funksjonen i produktet. Dette bit-mønsteret representerer en binær signatur av den sårbare delen av binærfilen, som er en del av et programprodukt.
Når et sikkerhetshull er oppdaget og analysert, kan det bli utviklet en utbedring som vil fjerne sårbarheten. Slike utbedringer kalles sikkerhetspatcher, og er oppdaterte kodemoduler som er kompilert til eksekverbare binærfiler. Sikkerhetspatcher kan bli installert på datamaskiner som ved hjelp av den binære signaturen er identifisert å kjøre programmer som har sikkerhetshullet. Installering av sikkerhetspatchen vil tette sikkerhetshullet. Distribueringstjeneren 102 gjør det mulig for leverandører av programvare og andre å laste opp binære signaturer fra sårbare binærfiler, sammen med sikkerhetspatcher utviklet for å utbedre de sårbare binærfilene, til databasen 202 for distribusjon.
Distribueringsmodulen 200 er innrettet for å distribuere binære signaturer og sikkerhetspatcher fra databasen 202 til forskjellige søk/utbedring-tjenere 104 over et nettverk 106. Distribueringsmodulen 200 vil typisk automatisk distribuere binære signaturer og sikkerhetspatcher fra databasen 202 når databasen 202 blir oppdatert med nye signaturer og utbedringer. Automatisk distribusjon kan oppnås på mange mulige måter, omfattende for eksempel ved at distribueringsmodulen 200 varsler søk/utbedring-tjenere 104 om at oppdaterte binære signaturer og sikkerhetspatcher er tilgjengelige og venter på forespørsler om å sende de binære signaturene og sikkerhetspatchene, eller ved at den automatisk videresender oppdaterte binære signaturer og sikkerhetspatcher til søk/utbedring-tjenere 104, som er innrettet for å ta imot oppdateringene.
I den utførelsesformen som er illustrert i figur 2, omfatter en søk/utbedring-tjener 104 en søk/utbedring-modul 204 og en database 206 for å motta og lagre binære signaturer og sikkerhetspatcher. Databasen 206 blir typisk automatisk oppdatert med nye binære signaturer og sikkerhetspatcher gjennom kommunikasjon mellom søk/utbedring-modulen 204 og distribueringsmodulen 200 på distribueringstjeneren 102. I tillegg til å oppdatere databasen 206 med binære signaturer og sikkerhetspatcher, er søk/utbedring-modulen 204 innrettet for å aksessere klientmaskiner 108 og lete i binærfiler 208 etter binære signaturer. Søket i binærfilene 208 kan innbefatte søk etter binære signaturer i binærfiler lagret på en hvilken som helst form for medium som er omfattet av eller tilgjengelig for klientmaskinen 108. Binærfiler 208 inneholder typisk kompilert datamaskin-/prosessor-lesbar kode så som et operativsystem eller en fil som inneholder et applikasjonsprogram. Det skal imidlertid bemerkes at binærfilene 208 kan være en hvilken som helst form for binær informasjon inklusive datamaskin-/prosessor-lesbare instruksjoner, datastrukturer, programmoduler og andre data for klientmaskinen 108.
Som angitt nedenfor i beskrivelsen i forbindelse med det eksemplifiserte databehandlingsmiljøet i figur 7, kan et medium på en klientmaskin 108 omfatte et hvilket som helst tilgjengelig medium som er aksesser bart for klientmaskinen 108, så som volatile og ikke-volatile medier så vel som flyttbare og stasjonære medier. Slike datamaskin-/prosessor-lesbare medier kan omfatte volatilt minne, så som direkteaksessminne (RAM) og/eller ikke-volatilt minne så som leseminne (ROM). Datamaskin-/prosessor-lesbare medier kan også omfatte andre flyttbare/stasjonære, volatile/ikke-volatile datamaskin-lagringsmedier, så som for eksempel en harddiskstasjon for å lese fra og skrive til et stasjonært, ikke-volatilt magnetisk medium, en magnetdiskstasjon for å lese fra og skrive til en flyttbar, ikke-volatil magnetisk disk (for eksempel en "diskett"), en optisk disk-stasjon for å lese fra og/eller skrive til en flyttbar, ikke-volatil optisk disk, så som et CD-ROM, en DVD eller et annet optisk medium, andre magnetiske lagringsanordninger, flashminnekort, EEPROM (Electrically Erasable Programmable Read-Only Memory), nettverkstilknyttet lagring og liknende. Alle slike datamaskin-/prosessor-lesbare medier som tilveiebringer både volatil og ikke-volatil lagring av en hvilken som helst form for binær informasjon 208, inklusive datamaskin-/prosessor-lesbare instruksjoner, datastrukturer, programmoduler og andre data for klientmaskinen 108, er tilgjengelig for søk av søk/utbedring-tjeneren 104 gjennom søk/utbedring-modulen 204.
Søk/utbedring-modulen 204 søker således gjennom binærfiler 208 på en klientmaskin 108 for å sjekke om det eksisterer en binær signatur som identifiserer et sikkerhetshull i noen som helst form for binær informasjon i klientmaskinen 108. Dersom bit-mønsteret til den binære signaturen blir funnet i en binærfil 208, tetter søk/utbedring-modulen 204 sikkerhetshullet i binærfilen 208 ved å installere en tilhørende sikkerhetspatch på den aktuelle klientmaskinen 108. Installering av en sikkerhetspatch på klientmaskinen 108 overskriver eller på annen måte fjerner binærfilen eller en del av binærfilen som inneholder sikkerhetshullet.
Figur 3 illustrerer et annet eksempel på utførelse av en distribueringstjener 102, en søk/utbedring-tjener 104 og en klientmaskin 108 som er egnet til å implementere tetting av sikkerhetshuller i binærfiler. I den utførelsesformen som er illustrert i figur 3, blir binære signaturer og sikkerhetspatcher videresendt, eller re distribuert, fra tjeneren 104 til klientmaskiner 108, og søket etter filer med sikkerhetshuller og utbedring av filer med sikkerhetshuller blir utført av klientmaskinen 108 i stedet for av søk/utbedring-tjeneren 104.
I utførelsesformen i figur 3 er distribueringstjeneren 102 innrettet på samme måte som beskrevet over i forbindelse med utførelsesformen illustrert i figur 2. Databasen 202 kan således bli oppdatert med nyoppdagede binære signaturer som identifiserer sikkerhetshuller i binærfiler. Databasen 202 kan også bli oppdatert med tilhørende sikkerhetspatcher som er utviklet for å tette disse sikkerhetshullene.
Søk/utbedring-tjeneren 102 i figur 3 er innrettet på omtrent samme måte som beskrevet ovenfor i forbindelse med figur 2. Søk/utbedring-tjeneren 102 i figur 3 omfatter således en database 206 for å motta og lagre binære signaturer og sikkerhetspatcher. Databasen 206 blir typisk oppdatert automatisk med nye binære signaturer og sikkerhetspatcher gjennom kommunikasjon mellom søk/utbedring-tjeneren 104 og distribueringstjeneren 102. Kommunikasjonen mellom søk/utbedring-tjeneren 104 og distribueringstjeneren 102 går imidlertid gjennom en redistribueringsmodul 300 i stedet for en søk/utbedring-modul 204 som i utførelsesformen figur 2.
Redistribueringsmodulerf300, i tillegg til å oppdatere databasen 206 med binære signaturer og sikkerhetspatcher, er innrettet for å kommunisere med søk/utbedring-modulen 302 på klientmaskinen 108 og overføre en binær signatur til klientmaskinen 108. Søk/utbedring-modulen 302 er innrettet for å motta den binære signaturen og for å søke i binærfiler 208 for å avgjøre om den binære signaturen eksisterer i binærkodet informasjon som er lagret på klientmaskinen 108. Søk/utbedring-modulen 302 i figur 3 fungerer således på tilsvarende måte som søk/utbedring-modulen 204 beskrevet ovenfor i forbindelse med figur 2.
Dersom bit-mønsteret i den binære signaturen blir funnet i en binærfil 208 på klientmaskinen 108, sender søk/utbedring-modulen 302 en forespørsel til redistribueringsmodulen 302 på tjeneren 102. Forespørselen ber redistribueringsmodulen 300 sende sikkerhetspatchen som svarer til den binære signaturen til klientmaskinen 108. Redistribueringsmodulen 300 reagerer på forespørselen med å sende den etterspurte sikkerhetspatchen til klientmaskinen 108. Søk/utbedring-modulen 302 mottar sikkerhetspatchen og tetter sikkerhetshullet i binærfilen 208 ved å installere sikkerhetspatchen på klientmaskinen 108. Som i utførelsesformen i figur 2, vil installering av en sikkerhetspatch på klientmaskinen 108 overskrive eller på annen måte fjerne binærfilen eller en andel av binærfilen som inneholder det oppdagede sikkerhetshullet.
Eksempler på fremgangsmåter for å besørge automatisk deteksjon og tetting av sikkerhetshuller i binærfiler vil nå bli beskrevet, primært med henvisning til figurene 4-6. Fremgangsmåtene er generelt anvendelige for utførelseseksemplene beskrevet ovenfor i forbindelse med figurene 1 - 3. Handlingene i de beskrevne fremgangsmåtene kan utføres med bruk av hvilke som helst egnede midler, for eksempel maskinvareimplementerte logikkblokker i en applikasjons-spesifikk integrert krets eller eksekvering av prosessor-lesbare instruksjoner tilveiebragt i et prosessor-lesbart medium.
Et "prosessor-lesbart" medium, som betegnelsen anvendes her, kan være en hvilken som helst anordning som er i stand til å inneholde, lagre, kommunisere, sende ut eller transportere instruksjoner for bruk eller eksekvering av en prosessor. Prosessor-lesbare medier kan være, uten at de er begrenset til, elektroniske, magnetiske, optiske, elektromagnetiske, infrarødt-baserte eller halvleder-baserte systemer, apparater, anordninger eller overføringsmedier. Mer konkrete eksempler på prosessor-lesbare medier omfatter blant annet en elektrisk forbindelse (elektronisk) med én eller flere kabler, en flyttbar datadiskett (magnetisk), et direkteaksessminne (RAM, magnetisk), et leseminne (ROM, magnetisk), et slettbart programmerbart leseminne (EPROM eller flash-minne), optiske fibre (optisk), en overskrivbar kompaktdisk (CD-RW) (optisk) og et flyttbart CD-ROM (optisk).
Figur 4 illustrerer et eksempel på fremgangsmåte 400 for å besørge automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Binærfilene vil typisk befinne seg eller være lagret på en klientmaskin som betjenes av en tjenermaskin, men de kan også være lagret på tjenermaskinen selv, eller på en hvilken som helst annen dataanordning som er tilgjengelig for tjenermaskinen. I trinn 402 av fremgangsmåten 400 mottas en binær signatur. Den binære signaturen er et bit-mønster er assosiert med et sikkerhetshull i en gitt binærfil, så som et eksekverbart applikasjonsprogram eller et operativsystem som kjører på en klientmaskin. Den binære signaturen mottas fra en sentral distribueringstjener 102 av en underordnet tjener 104.
I trinn 404 mottas en sikkerhetspatch. Sikkerhetspatchen er typisk kompilert, eksekverbar kode som er utviklet for å tette sikkerhetshullet i den aktuelle binærfilen. Sikkerhetspatchen mottas også av den underordnede tjeneren 104 fra den sentrale distribueringstjeneren 102. I trinn 406 identifiseres en sårbar binærfil på grunnlag av den binære signaturen. Identifiseringen av den sårbare binærfilen oppnås typisk ved å søke gjennom binærkodet informasjon som er lagret på forskjellige medier i en datamaskin, så som klientmaskinen 108, og deretter sammenlikne mønsteret/mønstrene til den binære signaturen med den binærkodede informasjonen på mediet. Identifiseringen kan skje på forskjellige måter, for eksempel ved at tjeneren 104 søker gjennom og sjekker all den binærkodede informasjonen som finnes på klientmaskinen. Identifiseringen av en sårbar binærfil kan også oppnås ved å la tjeneren 104 sende den binære signaturen til klientmaskinen, slik at klientmaskinen selv kan utføre søket og sammenlikningen.
I trinn 408 av fremgangsmåten 400 anvendes sikkerhetspatchen til å oppdatere den sårbare binærfilen. Oppdateringen kan skje på forskjellige måter, for eksempel ved at tjeneren 104 installerer sikkerhetspatchen på klientmaskinen 108. Dersom klientmaskinen 108 har utført søket og funnet den sårbare binærfilen, kan klientmaskinen 108 be tjeneren 104 om å oversende sikkerhetspatchen, hvorpå datamaskinen 108 kan installere sikkerhetspatchen for å utbedre den sårbare binærfilen.
Figur 5 illustrerer et annet eksempel på fremgangsmåte 500 for å besørge automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. Fremgangsmåten 500 illustrerer generelt distribusjon av binære signaturer av sikkerhetshuller samt sikkerhetspatchene som er utviklet for å tette disse sikkerhetshullene. I trinn 502 av fremgangsmåten 500 mottas en binær signatur som identifiserer et sikkerhetshull i en binærfil. Den binære signaturen lastes typisk opp til en distribueringstjener 102 i form av et nyoppdaget bit-mønster som identifiserer en sårbarhet i en binærfil av et programvareprodukt som vil kunne være distribuert til mange datamaskiner i et nettverk, så som Internett. Opplastingen gjøres typisk fra en datamaskin som koples eller er koplet til distribueringstjeneren 102 eller fra et bærbart lagringsmedium som settes inn i distribueringstjeneren 102. I trinn 504 mottas en sikkerhetspatch utviklet for å tette sikkerhetshullet av distribueringstjeneren 102 på tilsvarende måte som den binære signaturen.
I trinn 506 distribueres den binære signaturen og sikkerhetspatchen til et antall underordnede tjenere 104 fra distribueringstjeneren 102. Denne distribusjonen er automatisk og kan oppnås på forskjellige måter. For eksempel kan distribueringstjeneren 102, når den mottar en opplastet binær signatur og en tilhørende sikkerhetspatch, automatisk sende den binære signaturen og sikkerhetspatchen over nettverket til alle de underordnede tjenerne 104 som er innrettet for å motta oppdaterte binære signaturer og sikkerhetspatcher. Distribueringstjeneren 102 vil også kunne sende en varsling til tjenerne 104 om at et sikkerhetshull er oppdaget og at en sikkerhetspatch er tilgjengelig som utbedrer sårbarheten. Underordnede tjenere 104 kan da be distribueringstjeneren 102 om å sende den binære signaturen som identifiserer sikkerhetshullet og sikkerhetspatchen. Når den mottar en forespørsel, kan distribueringstjeneren 102 sende den binære signaturen og sikkerhetspatchen til de tjenerne 102 som ber om det.
Figur 6 illustrerer et annet eksempel på fremgangsmåte 600 for å besørge automatisk deteksjon og tetting av sikkerhetshuller i binærfiler. I trinn 602 av fremgangsmåten 600 mottar en klientmaskin 108 en binær signatur fra en tjener 104. Den binære signaturen er assosiert med et sikkerhetshull i en binærfil som kan være lagret hos klientmaskinen 108. I trinn 604 søker klientmaskinen 108 gjennom all den binærkodede informasjonen den har tilgang til og sammenlikner mønsteret/mønstrene i den binære signaturen med den binærkodede informasjonen. Den binærkodede informasjonen som sjekkes av klientmaskinen 108 er typisk i form av datamaskin-/prosessor-lesbare og/eller -eksekver bare instruksjoner, datastrukturer, programmoduler og andre data som er nyttige for klientmaskinen 108, og kan være lagret i både volatile og ikke-volatile lagringsmedier av forskjellige typer.
I trinn 606, dersom klientmaskinen 108 finner en binærfil som inneholder den binære signaturen, sender den en forespørsel til tjeneren 104 om å få overført sikkerhetspatchen. I trinn 608 mottar klientmaskinen 108 sikkerhetspatchen, og i trinn 610 installerer klientmaskinen 108 sikkerhetspatchen for å tette sikkerhetshullet i den binærfilen som inneholder binærkodet informasjon som overensstemmer med mønsteret/mønstrene i den binære signaturen.
Selv om én eller flere fremgangsmåter er illustrert ved hjelp av flytdiagrammer og en tekstlig beskrivelse av trinnene i flytdiagrammene, må det forstås at trinnene ikke nødvendigvis må utføres i den rekkefølgen de er illustrert, og at alternative rekkefølger vil kunne gi tilsvarende fordeler. Videre er ikke fremgangsmåtene på noen måte gjensidig utelukkende, og vil kunne utføres alene eller i kombinasjon.
Figur 7 illustrerer et eksempel på databehandlingsmiljø som er egnet til å implementere en distribueringstjener 102, et søk/utbedring-tjener 104 og en klientmaskin 108 som beskrevet ovenfor med henvisning til figurene 1 - 3. Selv om ett spesifikt oppsett er vist i figur 7, kan distribueringstjeneren 102, søk/utbedring-tjeneren 104 og klientmaskinen 108 implementeres i andre databehandlingsmiljøer.
Databehandlingsmiljøet 700 omfatter et generelt datasystem i form av en datamaskin 702. Komponentene i datamaskinen 702 kan omfatte, men er ikke begrenset til én eller flere prosessorer eller prosesseringsenheter 704, et systemminne 706 og en systembuss 708 som kopler forskjellige system komponenter inklusive prosessoren 704 til systemminnet 706.
Systembussen 708 representerer én eller flere av hvilke som helst av mange typer busstrukturer, omfattende en minnebuss eller minnekontroller, en periferienhet-buss, en akselerert grafikkport og en prosessor eller lokal buss, som anvender en hvilken som helst av en rekke alternative bussarkitekturer. Et eksempel på systembuss 708 er en PCI-buss, også kjent som en Mezzanine-buss.
Datamaskinen 702 omfatter typisk et antall datamaskin-lesbare medier. Slike medier kan være et hvilket som helst tilgjengelig medium som kan aksesseres av datamaskinen 702 og omfatter både volatile og ikke-volatile medier samt flyttbare og stasjonære medier. Systemminnet 706 omfatter datamaskin-lesbare medier i form av volatilt minne, så som et direkteaksessminne (RAM) 710 og/eller ikke-volatilt minne, så som et leseminne (ROM) 712. Et BIOS (Basic Input/Output System) 714, som inneholder de grunnleggende rutinene som hjelper til med å overføre informasjon mellom elementer i datamaskinen 702, for eksempel under oppstart, er lagret i ROM 712. RAM 710 inneholder typisk data og/eller programmoduler som er umiddelbart tilgjengelige for og/eller opereres på av prosesseringsenheten 704.
Datamaskinen 702 kan også omfatte andre flyttbare/stasjonære, volatile/ikke-volatile datamaskin-lagringsmedier. Som et eksempel illustrerer figur 7 en harddiskstasjon 716 for å lese fra og skrive til et stasjonært, ikke-volatilt magnetisk medium (ikke vist), en magnetdiskstasjon 718 for å lese fra og skrive til en flyttbar, ikke-volatil magnetdisk 720 (f.eks. en "diskett"), og en optisk disk-stasjon 722 for å lese fra og/eller skrive til en flyttbar, ikke-volatil optisk disk 724 så som en CD, en DVD eller et annet optisk medium. Harddiskstasjonen
716, magnetdiskstasjonen 718 og optisk disk-stasjonen 722 er alle koplet til systembussen 708 via ett eller flere datamedium-grensesnitt 726. Alternativt kan harddiskstasjonen 716, magnetdiskstasjonen 718 og optisk disk-stasjonen
722 være koplet til systembussen 708 via et SCSI-grensesnitt (ikke vist).
Lagringsstasjonene og deres assosierte prosessor-lesbare medier tilveiebringer ikke-volatil lagring av prosessor-eksekver bare instruksjoner, datastrukturer, programmoduler og andre data for datamaskinen 702. Selv om eksempelet illustrerer en harddisk 716, en flyttbar magnetisk disk 720 og en flyttbar optisk disk 724, må det forstås at andre typer datamaskin-lesbare medier som kan lagre instruksjoner tilgjengelig for en datamaskin, så som magnet kassetter eller andre magnetiske lagringsanordninger, flash-minne, CD-ROM, DVD-er eller andre optiske lagre, RAM, ROM, EEPROM og liknende, også kan anvendes for å implementere det eksemplifiserte datasystemet og - miljøet.
Et hvilket som helst antall programmoduler kan være lagret i harddisken 716, den magnetiske disken 720, den optiske disken 724, ROM 712 og/eller RAM 710, omfattende, som et eksempel, et operativsystem 726, ett eller flere applikasjonsprogrammer 728, andre programmoduler 730 og programdata 732. Hvert av operativsystemene 726, det ene eller de flere applikasjonsprogrammene 728, de andre programmodulene 730 og programdataene 723 (eller en kombinasjon av dem) kan omfatte en utførelsesform av et bufringssystem for informasjon vedrørende nettverksaksess for brukere.
Datamaskinen 702 kan omfatte en rekke forskjellige datamaskin/prosessor-lesbare medier identifisert som kommunikasjonsmedier. Kommunikasjonsmedier innlemmer typisk datamaskinlesbare instruksjoner, datastrukturer, programmoduler eller andre data i et modulert datasignal så som en bærebølge eller en annen transportmekanisme, og omfatter et hvilket som helst informasjonsleveringsmedium. Med betegnelsen" modulert datasignal" menes et signal som får én eller flere av sine særtrekk satt eller endret for det formål å kode inn informasjon i signalet. Som et eksempel, og uten begrensning, omfatter kommunikasjonsmedier kablede medier så som et kabelnettverk eller en direktekoplet forbindelse, samt trådløse medier så som akustiske, RF-baserte, infrarødt-baserte og andre trådløse medier. Enhver kombinasjon av det ovennevnte er også omfattet innenfor rammen av datamaskinlesbare medier.
En bruker kan mate inn kommandoer og informasjon til datasystemet 702 ved hjelp av innmatingsanordninger så som et tastatur 734 og en pekeranordning 736 (f.eks. en "mus"). Andre innmatingsanordninger 738 (ikke konkretisert) kan omfatte en mikrofon, en styrespak, en spillkontroll, en parabolantenne, en serieport, en skanner og/eller liknende. Disse og andre innmatingsanordninger er typisk koplet til prosesseringsenheten 704 via inn/ut-grensesnitt 740 som er koplet til systembussen 708, men kan imidlertid i stedet være tilkoplet via andre grensesnitt og busstrukturer, så som en parallelport, en spillutgang eller en USB- (Universal Serial Bus) -port,
En monitor 742 eller en annen type fremvisningsanordning kan også være koplet til systembussen 708 via et grensesnitt, så som et videoadapter 744. I tillegg til monitoren 742 kan andre periferiske utmatingsanordninger omfatte komponenter så som høyttalere (ikke vist) og en skriver 746, som kan være koplet til datamaskinen 702 via inn/ut-grensesnittene 740.
Datamaskinen 702 kan operere i et nettverksmiljø gjennom logiske forbindelser til én eller flere fjern-datamaskiner, så som en fjern-dataanordning 748. Som et eksempel kan fjern-dataanordningen 748 være en personlig datamaskin, en bærbar datamaskin, en tjener, en ruter, en nettverkstilknyttet datamaskin, en peer-anordning, en annen nettverksnode eller annet. Fjern-dataanordningen 748 er illustrert i form av en bærbar datamaskin som kan omfatte mange av eller alle de elementene og trekkene som er beskrevet her med i forbindelse med datamaskinen 702.
Logiske forbindelser mellom datamaskinen 702 og fjern-datamaskinen 748 er vist i form av et lokalt nettverk (LAN) 750 og et generelt regionalt nettverk (WAN) 752. Slike nettverksmiljøer er vanlige i kontorer, bedriftsomspennende datanettverk, intranett og Internett. Når den kjører i et LAN-nettverksmiljø, er datamaskinen 702 koplet til et lokalt nettverk 750 via et nettverksgrensesnitt eller -adapter 754. Når den kjører i et WAN-nettverksmiljø, omfatter datamaskinen 702 typisk et modem 756 eller andre mekanismer for å etablere kommunikasjon over det regionale nettverket 752. Modemet 756, som kan være internt eller eksternt i forhold til datamaskinen 702, kan være koplet til systembussen 708 via inn/ut-grensesnittene 740 eller hvilke som helst andre egnede mekanismer. Det må forstås at de illustrerte nettverksforbindelsene kun er eksempler, og at andre mekanismer for å etablere én eller flere kommunikasjonsforbindelser mellom datamaskinene 702 og 748 kan anvendes.
I et nettverksmiljø så som det illustrert ved kjøremiljøet 700, kan programmoduler som er vist i datamaskinen 702, eller deler av disse, være lagret i en fjernlokalisert minnelagringsanordning. Som et eksempel erfjern-applikasjonsprogrammer 758 lagret i en lagringsanordning i fjern-datamaskinen 748. For illustrasjonsformål er applikasjonsprogrammer og andre eksekverbare program komponenter, så som operativsystemet, vist her i form av separate blokker, selv om man vet at slike programmer og komponenter til forskjellige tider befinner seg i forskjellige lagringsenheter i datasystemet 702, og eksekveres av prosesseringsenheten(e) i datamaskinen.
Selv om oppfinnelsen er beskrevet i forbindelse med spesifikke oppbygningsmessige trekk og/eller handlinger i fremgangsmåter, må det forstås at oppfinnelsen som definert i de etterfølgende kravene ikke nødvendigvis er begrenset til de spesifikke trekk og handlinger som er beskrevet. Snarere er de spesifikke trekk og handlinger beskrevet som eksempler på utførelse av den krevede oppfinnelsen.

Claims (11)

1. Prosessorlesbart medium som omfatter prosessor eksekver-bare instruksjoner konstruert for å: motta en binær signatur i en tjener (102), den binære signaturen er et eksakt bitmønster til en sårbar funksjon innenfor en binær fil, bitmønsteret er assosiert med en sikkerhetssårbarhet i den binære filen i en klientmaskin (108), motta en sikkerhetspatch i tjeneren (102), identifisere, av tjeneren (102), en sårbar binærfil i klientmaskinen (108) på grunnlag av den binære signaturen, hvor det å identifisere en sårbar fil inkluderer skanning, av tjeneren (102), i klientmaskinen (108) og å sammenlikne bitmønsteret til den binære signaturen mot de binære filene plassert i klientmaskinen (108), og oppdatere, av tjeneren (102), den sårbare binærfilen på klientmaskinen (108) med sikkerhetspatchen.
2. Prosessorlesbart medium ifølge krav 1, der det å oppdatere den sårbare binærfilen på en datamaskin (702) omfatter det å installere sikkerhetspatchen på datamaskinen (702).
3. Prosessorlesbart medium ifølge krav 1, der det å motta omfatter det å motta den binære signaturen og sikkerhetspatchen fra en distribueringstjener innrettet for å distribuere til tjeneren (102) binære signaturer som identifiserer sårbare filer og sikkerhetspatcher utviklet for å utbedre de sårbare filene.
4. Tjener (102) som omfatter det datamaskinlesbare mediet ifølge krav 1.
5. Prosessorlesbart medium som omfatter prosessor eksekver-bare instruksjoner konstruert for å: motta, i en klientmaskin (108), en binær signatur overført fra en tjener (102), den binære signaturen er et eksakt bitmønster til en sårbar funksjon inne i en binær fil, bitmønsteret er assosiert med en sikkerhetssårbarhet i binærfilen, søke etter den binære signaturen i klientmaskinen (108) for å identifisere sårbare binære filer, sende en forespørsel fra klientmaskinen (108) til tjeneren (102) om en sikkerhetspatch dersom en sårbar binær fil er funnet som inneholder den binære signaturen, motta sikkerhetspatchen fra tjeneren (102), så oppdatere den sårbare binære filen med sikkerhetspatchen.
6. Klientmaskin som omfatter det datamaskinlesbare mediet ifølge krav 5.
7. Fremgangsmåte utført av en datamaskin (702), omfattende det å: motta en binær signatur fra en tjener (102) i en klientmaskin (108), den binære signaturen er et eksakt bitmønster til en sårbar funksjon inne i en binær fil, bitmønsteret er assosiert med sikkerhetssårbarhet i den binære filen, søke etter en sårbar fil på grunnlag av den binære signaturen i klientmaskinen (108) for å identifisere en sårbar binær fil, hvor søkingen inkluderer å sammenlikne den binære signaturen med binær informasjon i et lagrings medium i datamaskinen (702), dersom det finnes en sårbar fil, send en forespørsel om en sikkerhetspatch fra klientmaskinen (108) til tjeneren (102), og motta sikkerhetspatchen som svar på forespørselen, så utbedre den sårbare filen med sikkerhetspatchen.
8. Fremgangsmåte ifølge krav 7, der det å utbedre omfatter det å installere sikkerhetspatchen i klientmaskinen (108).
9. Fremgangsmåte ifølge krav 7, der den binære informasjonen velges fra gruppen som omfatter: et operativsystem, en fil assosiert med et applikasjonsprogram, og en datafil.
10. Fremgangsmåte ifølge krav 7, der lagringsmediet velges fra gruppen som omfatter: en harddisk, en magnetisk "floppy"-diskett, et optisk lagringsmedium, en flashminnekort, et elektrisk slettbart, programmerbart leseminne (EEPROM), og et nettverkstilknyttet lagringssted.
11. Fremgangsmåte, omfattende det å: motta, i en avsøkings-patch tjener (104), en binær signatur og en sikkerhetspatch fra en distribueringstjener (102), den binære signaturen er et eksakt bitmønster til en sårbar funksjon inne i en binær fil, bitmønsteret er assosiert med en sikkerhetssårbarhet i den binære filen, søke, av avsøkings-patch tjeneren (104), i en klientmaskin (102) etter en sårbar fil assosiert med den binære signaturen, der søkingen inkluderer å sammenlikne et bitmønster til den binære signaturen mot binære filer plassert i klientmaskinen (108), og dersom det finnes en sårbar fil, utbedre, av avsøkings-patch tjeneren (104) den sårbare filen med sikkerhetspatchen.
NO20042970A 2003-07-16 2004-07-14 Automatisk deteksjon og utbedring av sårbare filer NO337222B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/621,148 US7424706B2 (en) 2003-07-16 2003-07-16 Automatic detection and patching of vulnerable files

Publications (2)

Publication Number Publication Date
NO20042970L NO20042970L (no) 2005-01-17
NO337222B1 true NO337222B1 (no) 2016-02-15

Family

ID=33552851

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20042970A NO337222B1 (no) 2003-07-16 2004-07-14 Automatisk deteksjon og utbedring av sårbare filer

Country Status (18)

Country Link
US (1) US7424706B2 (no)
EP (1) EP1505499A1 (no)
JP (1) JP4652736B2 (no)
KR (1) KR101231410B1 (no)
CN (1) CN1577272B (no)
AU (1) AU2004202974B2 (no)
BR (1) BRPI0402767A (no)
CA (1) CA2471998A1 (no)
CO (1) CO5600216A1 (no)
IL (1) IL162642A (no)
MX (1) MXPA04006784A (no)
MY (1) MY150114A (no)
NO (1) NO337222B1 (no)
NZ (1) NZ533661A (no)
RU (1) RU2358313C2 (no)
SG (1) SG139545A1 (no)
TW (1) TWI354887B (no)
ZA (1) ZA200405076B (no)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US8266699B2 (en) * 2003-07-01 2012-09-11 SecurityProfiling Inc. Multiple-path remediation
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
US7386883B2 (en) * 2003-07-22 2008-06-10 International Business Machines Corporation Systems, methods and computer program products for administration of computer security threat countermeasures to a computer system
US20050097199A1 (en) 2003-10-10 2005-05-05 Keith Woodard Method and system for scanning network devices
US8990366B2 (en) * 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US20050223292A1 (en) * 2004-02-17 2005-10-06 Lee Chee S Single instruction type based hardware patch controller
US8051483B2 (en) * 2004-03-12 2011-11-01 Fortinet, Inc. Systems and methods for updating content detection devices and systems
US7665119B2 (en) 2004-09-03 2010-02-16 Secure Elements, Inc. Policy-based selection of remediation
US8171555B2 (en) 2004-07-23 2012-05-01 Fortinet, Inc. Determining technology-appropriate remediation for vulnerability
US7774848B2 (en) 2004-07-23 2010-08-10 Fortinet, Inc. Mapping remediation to plurality of vulnerabilities
US7761920B2 (en) * 2004-09-03 2010-07-20 Fortinet, Inc. Data structure for policy-based remediation selection
US7703137B2 (en) * 2004-09-03 2010-04-20 Fortinet, Inc. Centralized data transformation
US7672948B2 (en) * 2004-09-03 2010-03-02 Fortinet, Inc. Centralized data transformation
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
US7343599B2 (en) * 2005-01-03 2008-03-11 Blue Lane Technologies Inc. Network-based patching machine
US20060185018A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Systems and methods for shielding an identified vulnerability
DE102005030590B4 (de) * 2005-06-30 2011-03-24 Advanced Micro Devices, Inc., Sunnyvale Sicheres Patchsystem
JP4770306B2 (ja) * 2005-07-12 2011-09-14 日本電気株式会社 端末セキュリティチェックサービス提供方法及びそのシステム
US8272058B2 (en) * 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) * 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) * 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US20070028291A1 (en) * 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
US8132164B1 (en) * 2005-08-01 2012-03-06 Mcafee, Inc. System, method and computer program product for virtual patching
US8245216B2 (en) * 2005-10-11 2012-08-14 Oracle International Corporation Patch management system
US8484725B1 (en) * 2005-10-26 2013-07-09 Mcafee, Inc. System, method and computer program product for utilizing a threat scanner for performing non-threat-related processing
US7784034B1 (en) 2005-12-21 2010-08-24 Mcafee, Inc. System, method and computer program product for hooking a COM interface
US8739288B2 (en) * 2007-07-31 2014-05-27 Hewlett-Packard Development Company, L.P. Automatic detection of vulnerability exploits
US8347277B2 (en) * 2007-08-17 2013-01-01 International Business Machines Corporation Verifying that binary object file has been generated from source files
US8181173B2 (en) * 2007-10-12 2012-05-15 International Business Machines Corporation Determining priority for installing a patch into multiple patch recipients of a network
US20090144828A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Rapid signatures for protecting vulnerable browser configurations
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US8990360B2 (en) 2008-02-22 2015-03-24 Sonos, Inc. System, method, and computer program for remotely managing a digital device
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US20100007489A1 (en) * 2008-07-10 2010-01-14 Janardan Misra Adaptive learning for enterprise threat managment
US20100153942A1 (en) * 2008-12-12 2010-06-17 Lazar Borissov Method and a system for delivering latest hotfixes with a support package stack
KR101052734B1 (ko) * 2009-02-03 2011-07-29 주식회사 안철수연구소 응용 프로그램 패치 장치 및 방법
CN101551773B (zh) * 2009-03-12 2012-04-25 南京大学 符号错误和赋值截断的二进制漏洞检测定位装置
CN101526984B (zh) * 2009-03-16 2012-05-30 腾讯科技(北京)有限公司 一种修复漏洞的方法及装置
RU2422877C1 (ru) * 2009-11-16 2011-06-27 Виталий Евгеньевич Пилкин Способ обозначения инфицированных электронных файлов
US8484753B2 (en) 2009-12-02 2013-07-09 Mcafee, Inc. Hooking nonexported functions by the offset of the function
EP2362314A1 (en) * 2010-02-18 2011-08-31 Thomson Licensing Method and apparatus for verifying the integrity of software code during execution and apparatus for generating such software code
US9268945B2 (en) 2010-03-19 2016-02-23 Contrast Security, Llc Detection of vulnerabilities in computer systems
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US8479188B2 (en) 2010-07-08 2013-07-02 Microsoft Corporation Binary code change vulnerability prioritization
EP2413257B1 (en) * 2010-07-26 2017-04-26 Sony DADC Austria AG Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
US8726388B2 (en) * 2011-05-16 2014-05-13 F-Secure Corporation Look ahead malware scanning
US8931102B2 (en) * 2011-06-01 2015-01-06 International Business Machines Corporation Testing web applications for file upload vulnerabilities
US20130104119A1 (en) * 2011-10-24 2013-04-25 Brian Matsuo Streaming packetized binary patching system and method
WO2013073504A1 (ja) * 2011-11-15 2013-05-23 独立行政法人科学技術振興機構 プログラム解析・検証サービス提供システム、その制御方法、制御プログラム、コンピュータを機能させるための制御プログラム、プログラム解析・検証装置、プログラム解析・検証ツール管理装置
WO2013111532A1 (ja) * 2012-01-25 2013-08-01 日本電気株式会社 管理システム、管理方法およびプログラム
CN103049701A (zh) * 2012-11-30 2013-04-17 南京翰海源信息技术有限公司 基于内存搜索的shellcode的检测系统及方法
US8997082B1 (en) * 2013-07-16 2015-03-31 Amazon Technologies, Inc. Differential patch of content
RU2568295C2 (ru) * 2013-08-07 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ временной защиты операционной системы программно-аппаратных устройств от приложений, содержащих уязвимости
EP3049988B1 (en) * 2013-09-25 2019-04-03 Veracode, Inc. A system and method for automated remedying of security vulnerabilities
US10296884B2 (en) 2013-09-30 2019-05-21 Sonos, Inc. Personalized media playback at a discovered point-of-sale display
US9241355B2 (en) 2013-09-30 2016-01-19 Sonos, Inc. Media system access via cellular network
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9075990B1 (en) * 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
KR101695639B1 (ko) * 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9767290B2 (en) * 2015-03-05 2017-09-19 Fujitsu Limited Autonomous reasoning system for vulnerability analysis
US9749349B1 (en) * 2016-09-23 2017-08-29 OPSWAT, Inc. Computer security vulnerability assessment
US11522901B2 (en) 2016-09-23 2022-12-06 OPSWAT, Inc. Computer security vulnerability assessment
TWI622894B (zh) 2016-12-13 2018-05-01 宏碁股份有限公司 電子裝置及偵測惡意檔案的方法
GB2563618B (en) * 2017-06-20 2020-09-16 Arm Ip Ltd Electronic system vulnerability assessment
US10540496B2 (en) 2017-09-29 2020-01-21 International Business Machines Corporation Dynamic re-composition of patch groups using stream clustering
KR102424357B1 (ko) 2017-10-24 2022-07-25 삼성전자주식회사 부채널 공격으로부터 정보를 보호하는 방법 및 디바이스
US20190138293A1 (en) * 2017-11-09 2019-05-09 Venuetize LLC Pattern recognition platform
KR101955356B1 (ko) 2017-12-08 2019-03-07 한국인터넷진흥원 취약 함수 사용에 의한 취약점을 보완하기 위한 바이너리 패치 장치 및 그 방법
US10984110B2 (en) 2018-03-20 2021-04-20 ReFirm Labs, Inc. Evaluation of security of firmware
US10943015B2 (en) * 2018-03-22 2021-03-09 ReFirm Labs, Inc. Continuous monitoring for detecting firmware threats
EP3762828A1 (en) 2018-05-07 2021-01-13 Google LLC System for adjusting application performance based on platform level benchmarking
US10846080B2 (en) 2018-09-06 2020-11-24 International Business Machines Corporation Cooperative updating of software
KR101995285B1 (ko) * 2018-10-31 2019-07-02 한국인터넷진흥원 취약점이 존재하는 바이너리 패치 방법 및 그 장치
CN109828772B (zh) * 2019-02-19 2022-03-11 百度在线网络技术(北京)有限公司 热更新方法、操作系统、终端设备和存储介质
KR102070010B1 (ko) 2019-02-28 2020-01-29 한국인터넷진흥원 취약 함수 사용에 의한 취약점을 보완하기 위한 바이너리 패치 장치 및 그 방법
EP3745291B1 (en) 2019-05-29 2024-05-08 F. Hoffmann-La Roche AG Interface proxy device for cyber security
US11914721B2 (en) * 2019-06-12 2024-02-27 Nec Corporation Method and contract rewriting framework system for supporting smart contracts in a blockchain network
US11100233B2 (en) 2019-06-26 2021-08-24 International Business Machines Corporation Optimizing operating system vulnerability analysis
CN113672929A (zh) * 2020-05-14 2021-11-19 阿波罗智联(北京)科技有限公司 漏洞特征获取方法、装置及电子设备
CN113836536A (zh) * 2020-06-08 2021-12-24 网神信息技术(北京)股份有限公司 配置漏洞补丁包的方法、服务器、终端设备及介质
US11777984B1 (en) * 2020-09-04 2023-10-03 Wells Fargo Bank, N.A. Automatic threat detection and remediation
US11556330B2 (en) 2020-11-24 2023-01-17 Kyndryl, Inc. Analysis and implementation of security updates
CN113852602B (zh) * 2021-08-11 2023-12-08 奇安信科技集团股份有限公司 文件重建方法、装置,传输设备,电子设备及介质
US20230315438A1 (en) * 2022-03-30 2023-10-05 Kyndryl, Inc. Contextually cognitive edge server manager

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126472A1 (en) * 2001-12-31 2003-07-03 Banzhof Carl E. Automated computer vulnerability resolution system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
US5675711A (en) 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US5930504A (en) * 1996-07-22 1999-07-27 Intel Corporation Dynamic nonvolatile memory update in a computer system
US6016546A (en) 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
AU3781399A (en) 1998-04-30 1999-11-16 Bindview Development Corporation Computer security
US6425126B1 (en) 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
US6493871B1 (en) 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
CA2414281C (en) * 2000-11-17 2009-06-02 Bitfone Corporation System and method for updating and distributing information
KR20030035142A (ko) * 2001-10-30 2003-05-09 주식회사 이글루시큐리티 통합보안관리 서비스 방법
GB2381721B (en) 2001-10-31 2005-02-23 Hewlett Packard Co System and method of defining unauthorized intrusions on a computer system
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126472A1 (en) * 2001-12-31 2003-07-03 Banzhof Carl E. Automated computer vulnerability resolution system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
---, Dated: 01.01.0001 *
LIU C ET AL, Automated security checking and patching using TestTalk, AUTOMATED SOFTWARE ENGINNERING, 200. PROCEEDINGS ASE 2000. THE FIFTEENTH IEEE INTERNATIONAL CONFERENCE ON GRENOBLE, FRANCE 11-15 SEPT. 2000, LOS ALAMITOS, CA USA, IEEE COMPUT. SOC, US, 11 Septemper 2000(2000-09-11), pages 261-264., Dated: 01.01.0001 *

Also Published As

Publication number Publication date
CA2471998A1 (en) 2005-01-16
NO20042970L (no) 2005-01-17
RU2358313C2 (ru) 2009-06-10
AU2004202974B2 (en) 2009-12-03
NZ533661A (en) 2005-05-27
BRPI0402767A (pt) 2005-03-08
IL162642A0 (en) 2005-11-20
IL162642A (en) 2010-12-30
US7424706B2 (en) 2008-09-09
KR20050009198A (ko) 2005-01-24
JP4652736B2 (ja) 2011-03-16
US20050015760A1 (en) 2005-01-20
MXPA04006784A (es) 2005-03-23
KR101231410B1 (ko) 2013-02-07
MY150114A (en) 2013-11-29
CO5600216A1 (es) 2006-01-31
AU2004202974A1 (en) 2005-02-03
ZA200405076B (en) 2005-06-03
CN1577272A (zh) 2005-02-09
TW200508849A (en) 2005-03-01
JP2005038428A (ja) 2005-02-10
EP1505499A1 (en) 2005-02-09
RU2004118827A (ru) 2006-01-10
TWI354887B (en) 2011-12-21
CN1577272B (zh) 2011-01-12
SG139545A1 (en) 2008-02-29

Similar Documents

Publication Publication Date Title
NO337222B1 (no) Automatisk deteksjon og utbedring av sårbare filer
US10055576B2 (en) Detection of malicious software packages
CN102521081B (zh) 修复遭破坏的软件
US9436827B2 (en) Attesting a component of a system during a boot process
CN103530563B (zh) 用于更新经授权软件的系统和方法
US8612398B2 (en) Clean store for operating system and software recovery
CN102067146B (zh) 安全的应用程序流式传输
CN103390130B (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
US20070289019A1 (en) Methodology, system and computer readable medium for detecting and managing malware threats
CN103329093A (zh) 更新软件
US8561180B1 (en) Systems and methods for aiding in the elimination of false-positive malware detections within enterprises
KR101512611B1 (ko) 시스템 파일을 수리하기 위한 시스템 및 방법
CN104517054A (zh) 一种检测恶意apk的方法、装置、客户端和服务器
CN104036194B (zh) 一种应用程序中泄露隐私数据的漏洞检测方法及装置
CN112800429A (zh) 一种基于基础性的uefi bios固件系统中驱动程序保护的方法
JP2012008732A (ja) インストール制御装置およびプログラム
CN104036193B (zh) 一种应用程序的本地跨域漏洞检测方法及装置
Liu et al. Security analysis of vendor customized code in firmware of embedded device
JP7315028B2 (ja) 検証情報修正装置、検証情報修正方法、および、検証情報修正プログラム
US11762650B1 (en) Method and apparatus for secure offline software update
CN112527624A (zh) 检测系统、检测方法及使用检测方法执行的更新验证方法
Brady et al. Dynamic Repair of Mission-Critical Applications with Runtime Snap-Ins
Peltonen Automated Testing of Detection and Remediation of Malicious Software
De Decker A comparative study on the security of network-connected devices
US20200287748A1 (en) System and Method For Retrieving Data From A Non-Networked, Remotely-Located Data Generating Device

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