Hoe spoor ik een Trojaans
Opsporen van Trojaanse paarden is eenvoudig, als je een statisch zoekpatroon te scannen voor hebben. Anti-virus software routinematig detecteert (sommige) Trojanen met veel hetzelfde patroon zoek-technieken die worden gebruikt voor het detecteren van virussen. Echter, de identificatie van een bekende Trojan is niet altijd de beste verdediging. Detectie van voorheen onbekende Trojans is ook (conceptueel) eenvoudig, mits u steeds de beste beveiliging praktijken (letterlijk altijd, althans als de beschermde systeem betreft). Meeste detectiemethoden op traditionele multi-user systemen voort uit een principe soms object verzoening. Object verzoening is een mooie manier van vragen: 'Gaat het nog net de manier waarop ik ze links? " Hier is hoe het werkt: Objecten zijn systeem gebieden, zoals bestanden of mappen. Verzoening is het proces van het vergelijken van die voorwerpen tegen een momentopname record van dezelfde voorwerpen die op sommige eerdere datum waarop het beschermde voorwerp stond bekend als een betrouwbaar, "schone" staat. Opmerking Strikt genomen is er geen "schone staat" tijd. Zelfs een "dag nul"-systeem de installatie van software op een maagd systeem gaat uit van een suite met programma geen vervangingen en terug deuren. Kun je plaats onbeperkt vertrouwen in een systeem dat je niet helemaal vanaf nul opbouwen jezelf? "Geen bedrag van de bron-niveau controle of toetsing u zal beschermen van het gebruik van niet-vertrouwde code," zegt Ken Thompson in zijn Beschouwingen over Vertrouwen Trust. Betekent dit dat we moeten opgeven over deze aanpak? Natuurlijk niet, maar we moeten niet vergeten dat, zelfs als we bouwen een aanvraag onderzocht ning van de broncode, kunnen wij niet in staat zijn om de compiler of elk fragment van hardware microcode vertrouwen op het systeem moederbord. Meer algemeen is het proces beschreven als doel verzoening is bekend als de detectie van veranderingen, integriteit controleren, of integriteit beheer. Echter, deze termen zijn niet strikt synoniem. Change detectie beschrijft gewoon iedere techniek die de gebruiker waarschuwt voor het feit dat een object is veranderd in een bepaald opzicht. Integriteit controle heeft dezelfde fundamentele betekenis, maar wordt vaak genomen om een meer verfijnde aanpak, niet alleen om het opsporen van veranderingen impliceren in weerwil van de pogingen om het te verbergen, maar om ervoor te zorgen dat de rapportage software zelf niet wordt ondermijnd. Integrity management is een meer algemene term. Het kan niet alleen de detectie van ongeautoriseerde wijzigingen, maar ook andere methoden voor het behoud van integriteit van het systeem. Dergelijke methoden kunnen bestaan uit enkele of alle van de volgende, in willekeurige volgorde:
Een eenvoudige methode voor het testen bestand integriteit, is gebaseerd op meldingen van wijzigingen in het dossier staat informatie. Verschillende bestand integriteit tests variëren in complexiteit. Zo kunt u grof test integriteit van een bestand met behulp van een van de volgende indexen:
Helaas, geen van deze drie methoden vormen een werkelijk adequate verdediging tegen meer dan de grofste aanval. Elke keer dat een bestand wordt gewijzigd, zijn waarden veranderen. Bijvoorbeeld, elke keer als het bestand wordt geopend, gewijzigd en opgeslagen, een nieuwe datum van laatste wijziging ontstaat. Echter, deze datum kan gemakkelijk worden gemanipuleerd. Beschouw het manipuleren van dit bestand timestamp. Hoe moeilijk is het? Verander de systeemtijd van toepassing, de gewenste bewerkingen, archief van het bestand, en het opnieuw instellen van het systeem tijd. Beter nog, krijg en sla de datum / tijd informatie met behulp van standaard C library functies (bijvoorbeeld), te wijzigen of vervanging van het object, en het herstel van het bestand wijziging datum. Op een single-user systeem (zoals MS-DOS) met minimale of geen toegang controles, wordt de betrokken codering triviaal. Voor deze rea zoon, het controleren van de tijd van wijziging is een onbetrouwbare manier om te detecteren. Ook de laatste datum van wijziging blijkt niets als het bestand is ongewijzigd (bijvoorbeeld als het alleen was gekopieerd, bekeken, of gemaild). Aan de andere kant, als er een verschil tussen de wijzigingsdatum geretourneerd door het systeem en de datum van wijziging geregistreerd door een systeem van toezicht nut, er is een duidelijke mogelijkheid van schadelijke actie. Een andere manier om de integriteit van een bestand te controleren is door onderzoek van de omvang ervan. Toch kan deze waarde zeer gemakkelijk te manipuleren, hetzij door garnering of als opvulmateriaal het bestand zelf, of door een wijziging van de waarde die door het besturingssysteem. Er zijn andere indexen. Kan bijvoorbeeld elementaire checksums worden gebruikt. Hoewel checksums betrouwbaarder zijn dan de tijd en datum af te stempelen, kunnen ze worden gewijzigd, ook. Als u vertrouwen op een basis-checksum systeem (of gebruik de detectie van veranderingen software, die gebaseerd is op eenvoudige controleberekening), is het vooral belangrijk dat u uw checksum lijst te houden in een vertrouwde omgeving. Dit kan betekenen dat op een aparte server of zelfs een apart medium, alleen toegankelijk voor root of andere vertrouwde gebruikers. Checksums werken efficiënt en adequaat voor het controleren van de integriteit van een bestand overgedragen, bijvoorbeeld van punt A naar punt B, maar zijn niet geschikt voor hoge beveiligingstoepassingen. Ze zijn gewoon niet ontworpen om te waken tegen een kwaadaardige poging om ze te ondermijnen om valse informatie terug. Een minder gemakkelijk ondermijnd techniek betreft de berekening van een meer geavanceerde digitale vingerafdruk voor elk bestand met behulp van verschillende algoritmes. Een familie van algoritmen genoemd de MD-serie kan worden gebruikt voor dit doel. Een van de meest populaire implementaties is een systeem genaamd MD5. MD5MD5 behoort tot een familie van one-way hash functies genaamd bericht algoritmen verteren. De MD5-systeem is gedefinieerd in RFC 1321 als volgt: Het algoritme neemt als input een bericht van willekeurige lengte en produceert als output een 128-bit "vingerafdruk" of "message digest" van de input. Het is computationeel vermoedde dat het onhaalbaar is om twee berichten met dezelfde boodschap verteren, of voor een bericht verteren met een bepaalde vooraf gespecificeerde doel bericht produceren. De MD5-algoritme is bedoeld voor digitale handtekeningen, waar een groot bestand moet worden "samengeperst op een veilige manier" alvorens te worden gecodeerd met een eigen (geheime) sleutel van een publiek-sleutel cryptografie zoals RSA. Wanneer u een bestand via MD5 lopen, de vingerafdruk naar voren als een 32-karakter waarde. Het ziet er als volgt uit: 2d50b2bffb537cc4e637dd1f07a187f4 Veel sites die verspreiden MD5 UNIX-software te gebruiken voor het genereren van digitale vingerafdrukken voor hun distributies. Als je hun mappen bladeren, kunt u onderzoeken of het originele digitale vingerafdruk van elk bestand. Een typisch directory listing kan er zo uitzien: MD5 (wn-1.17.8.tar.gz) = 2f52aadd1defeda5bad91da8efc0f980 MD5 (wn-1.17.7.tar.gz) = b92916d83f377b143360f068df6d8116 MD5 (wn-1.17.6.tar.gz) = 18d02b9f24a49dee239a78ecfaf9c6fa MD5 (wn-1.17.5.tar.gz) = 0cf8f8d0145bb7678abcc518f0cb39e9 MD5 (wn-1.17.4.tar.gz) = 4afe7c522ebe0377269da0c7f26ef6b8 MD5 (wn-1.17.3.tar.gz) = aaf3c2b1c4eaa3ebb37e8227e3327856 MD5 (wn-1.17.2.tar.gz) = 9b29eaa366d4f4dc6de6489e1e844fb9 MD5 (wn-1.17.1.tar.gz) = 91759da54792f1cab743a034542107d0 MD5 (wn-1.17.0.tar.gz) = 32f6eb7f69b4bdc64a163bf744923b41 Als u een bestand van een dergelijke server te downloaden en te vinden dat de digitale vingerafdruk van het gedownloade bestand anders is, is er een goede kans dat er iets mis is. Met of zonder MD5, integriteit beheer is een complex proces. Diverse hulpprogramma's zijn ontworpen om te helpen bij de integriteit van het beheer van complexe en gedistribueerde systemen. De volgende hulpprogramma's waren oorspronkelijk UNIX-gebaseerd, maar soortgelijke programma's zijn beschikbaar voor Microsoft-besturingssystemen. TripwireTripwire (geschreven in 1992) is een uitgebreid bestand integriteit tool. Tripwire is goed ontworpen, gemakkelijk te begrijpen, en eenvoudig uitgevoerd. De oorspronkelijke waarden (digitale vingerafdrukken) voor bestanden die moeten worden bewaakt worden bewaard in een database-bestand. Deze database bestand in eenvoudige ASCII-formaat is toegankelijk wanneer er een handtekening moet worden berekend of geverifieerd. Idealiter zou een hulpmiddel zoals Tripwire onmiddellijk worden gebruikt na een frisse (dag nul) installatie. Dit geeft u 100% zekerheid van het dossier van integriteit van het systeem als een startpunt (of bijna 100%-herinner me de Ken Thompson artikel). Zodra u de volledige database voor uw dossier systeem genereert, kunt u de invoering van andere gebruikers (die onmiddellijk zal vullen uw systeem met rommel die, eventueel, ook kunnen worden vingerafdrukken en gecontroleerd op latere controles). Hier zijn een aantal van de meer handige functies:
Tripwire is een populaire en doeltreffend instrument, maar er zijn enige zekerheid de gemeenschappelijke vraagstukken waarmee de meeste of alle integriteit management tools. Een van deze kwestie houdt verband met de database van de waarden die wordt gegenereerd en onderhouden. Vanaf het begin Tripwire's auteurs waren zich terdege bewust van dit: De database wordt gebruikt door de integriteit checker moet worden beschermd tegen ongeautoriseerde wijzigingen; een indringer die kan veranderen van de database kan ondermijnen de gehele integriteit controleren regeling. Een methode van bescherming van de database op te slaan op read-only media. Dit elimineert elk gevaar van manipulatie. Kim en Spafford suggereren dat de database worden beschermd op deze manier, hoewel ze wijzen dat dit een aantal praktische, procedurele problemen kan opleveren. Veel hangt af van hoe vaak de database wordt bijgewerkt, en de omvang ervan. Zeker, als u de uitvoering van Tripwire of een soortgelijke voorziening op grote schaal (en met behulp van de meest strikte instellingen), de handhaving van een alleen-lezen database kan worden formidabel. Zoals gewoonlijk is dit afbreekt tot een trade-off tussen de hoogte van het risico en het ongemak van de vaststelling en handhaving paranoïde standaardinstellingen. TAMUDe TAMU Tiger suite (uit Texas A & M University) is een verzameling van instrumenten die sterk en Hance de veiligheid van een UNIX-doos. Deze tools zijn gemaakt in huis, in reactie op een uitgebreide aanval van een gecoördineerd geheel van crackers. Het pakket is gemoderniseerd en omgedoopt TARA (Tiger Analytical Research Assistant). Het bevat een aantal scripts gebruikt voor UNIX-systemen scannen op problemen. HobgoblinHobgoblin is een interessante uitvoering van file-en systeem-integriteit controleren. Het is zowel een taal en een tolk. De taal, volgens de auteurs, beschrijft de eigenschappen van een set van bestanden, en de tolk controleert of de beschrijving overeenkomt met de werkelijke bestanden, en vlaggen eventuele uitzonderingen. Op andere platformenFile integrity checkers bestaan voor Windows, (in feite is er een uitvoering van Tripwire voor Windows NT). Integrity checkers zijn niet noodzakelijk uitdrukkelijk bedoeld om meerdere machines te controleren en bestandssystemen over netwerken. Sommige oudere DOS-en Windows-tools gebruiken eenvoudige CRC controleberekening als een index en dus wellicht gemakkelijker te ondermijnen dan instrumenten die MD5 en aanverwante algoritmen gebruiken. De meeste zijn bedoeld voor gebruik als een aanvulling op virusscanners (sinds aantoonbare wijzigingen van een infectable voorwerp zou kunnen wijzen virus infectie). Dit doet niets af aan het potentiële nut van integrity checkers als een middel om het opsporen van mogelijke vervangingen van gecompromitteerde code voor systeembestanden. Echter, de detectie van veranderingen minder is gunstig gelegen op Windows-platforms in dat systeem bestanden toegankelijk door meerdere toepassingen kan worden vervangen door legitieme installaties en upgrades. Er is vaak een scherpere afbakening op andere platformen tussen bestanden die behoren tot het systeem en bestanden die behoren tot een applicatie. Bovendien veranderen detectie werkt alleen goed met bepaalde vormen van binaire uitvoerbare bestanden, zelfs in het kader van het virus detectie. Veel virussen en Trojaanse paarden te infecteren bestanden waarvan de belangrijkste doel is om gegevens bevatten (spreadsheets, tekstverwerking bestanden, enzovoort). Echter, dergelijke bestanden zijn meestal bestemd om te worden gewijzigd, evenals de log-bestanden gebruikt op vele multi-user systemen om mogelijke schadelijke actie track. Het is duidelijk dat de detectie van veranderingen gebaseerd op het vermoeden dat bestanden blijven statisch is niet gaan werken in deze gevallen. In sommige gevallen is het mogelijk om veranderingen die zouden kunnen duiden op een overtreding (de toevoeging van de macro-code aan een Word-bestand, bijvoorbeeld) te specificeren. Deze benadering vereist dat de inspectie software "weet" meer over de internals van het bestand, en niet alleen de digitale vingerafdruk. Dat zou leiden tot ernstige administratieve problemen, zodat de aanpak is niet goed favoriet op dit moment. De veiligste verdediging is echter om ongeoorloofde wijziging van systeembestanden proactief blokkeren door code te ondertekenen, read-only media en andere preventieve maatregelen. een artikel afkomstig van Marcel Baldwin
|
|||
|