Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Virusscanner bouwen

22-11-2012, 09:16 door Anoniem, 16 reacties
Hallo!

Ik heb een klein security vraagje...

Ik werk op een ICT bedrijf, en kwam plots op het knotsgekke idee om een eigen virusscanner te bouwen.
(Misschien het wiel opnieuw uitvinden... Maar ik vindt het een goed idee!)
Maar dan heb ik nu de vraag, hoe bouw je een eigen virusscanner?
Wat heb je ervoor nodig, in welke programmeertaal zijn ze gebouwd?

Het lijkt mij ongelofelijk leuk en leerzaam om mijn eigen virusscanner te bouwen met GUI.
Iemand tips?

Dankjulliewel!
Reacties (16)
22-11-2012, 10:27 door Anoniem
Als je dat moet vragen dan kun je het niet, en moet je nog teveel leren om dit een leerzaam project te maken.

Er zijn erg veel aspecten aan, en de GUI is wel het meest eenvoudige deel. Dat kun je wel bouwen als beginner.

Er zijn open source virusscanners dus daar kun je al kijken hoe ze dat gedaan hebben.
22-11-2012, 10:47 door [Account Verwijderd]
[Verwijderd]
22-11-2012, 11:16 door Flexxy
Google maar: How to build an anti-virus scanner. Zijn genoeg voorbeelden in Visual Basic en andere programma's. Have fun!
22-11-2012, 13:00 door Bitwiper
Wil je alleen on-demand of ook on-access?
22-11-2012, 14:26 door Anoniem
Bitwiper

Topic Starter hier
Ik zou graag On-acces willen.

Flexxy, ik heb even gekeken naar Visual Basic. En ik ga daar zeker mee aan de slag!

Dank jullie wel!
22-11-2012, 14:36 door Anoniem
Steek je energie maar gelijk in iets anders. Hoe leuk en interessant je het ook mag vinden.
De GUI is maar een grafische schil, en heeft verder geen betekenis enkel dat je op "knopjes" kan klikken.

Waar jij geen toegang tot gaat krijgen zijn de virusdefinities want dat is het onderdeel wat een scanner uniek en goed maakt. Hoe meer virusdefinities hoe meer de scanner kan ontdekken.

En ja, als je deze vraag hier al moet stellen dan vraag ik me af wat je op dat ICT bedrijf doet.

Kortom leuk geprobeerd maar je kennis is hiervoor al niet genoeg.

Koop eerst een wat boeken en neem eens contact op met bijv. Roel Schouwenburg (KAV), of solliceer daar eens.

Dit wiel opnieuw uitvinden op dit gebied heeft geen enkele kans van slagen.

Er zijn mensen in de hackers-crackers scene die bouwen een tool zoals bijv. Virustotal en gebruiken dan die databases van andere scanners, maar dat is gewoon data van anderen in een tool stoppen zonder zelf de controle te hebben over een en ander. Ziet misschien leuk uit, maar zegt niks over jouw kunnen. Dus als daar je idee van komt, dan is het al
niet echt iets unieks maar wat meer mensen doen, die denken iets geweldigs te hebben geprogrammeerd.

Programmeren kan iedere gek op vandaag mist je daar een beetje hobby aan hebt.
Genoeg website's met live samples van malware, echter die krijg jij nooit verwerkt in je eigen te bouwen scanner.
Misschien te bereiken daar wat scriptes in te zetten , maar dan nog is het onbegonnen werk.
Ik meen me van vroeger dat er een bedrijf was dat virusdefinities verzamelt en die verder verkocht aan anderen,
maar buiten dat krijg je toch nooit toegang tot een normale data base van virusdefinities.
Mits je 24 uur per dag leeft, goede bronnen hebt, en de juiste mensen kent in de AV-sector.

Dus richt je pijlen op iets anders, og ga echt werken in de AV-sector.
22-11-2012, 15:17 door tegenlicht
Ik vind het een geweldig idee. Je gaat er niets mee verdienen. Dat je de vraag stelt, verraad al dat het geen commercieel succes wordt, maar het is een mooi idee om heel veel aspecten tegelijkertijd te leren. Ik zou het gewoon doen. Je zult je moeten inlezen in besturingssystemen, processen, programmeren, mallware, debugging, reverse engineering. Ik denk dat als je dit een jaar gaat doen, dat je na een jaar een waardeloze virusscanner hebt die de iloveyuou virus vast en zeker herkent, maar dat is onbelangrijk. De kennis die je opdoet, zal behoorlijk veel zijn. Een ander punt. Je kunt het moeilijk op een cv zetten. Je kunt moeilijk er op zetten: Ik heb een virusscanner gemaakt en die herkent bijna niets en hij gebruikt al mijn resources. Doet me denken aan de oude symantec :-)

Om er toch nog iets aan te hebben voor je cv kun je het volgende doen. Een goed boek bestuderen over OSes, neem die van william stalling bv. Vervolgens kun je een microsoft certificaat halen wat heel diep op windows ingaat. die hebben ze vast. reverse engineering, kun je bijvoorbeeld het boek lezen: mallware analyst cookbook en een certificaat forensics hales van die ethical hacker club. Dan zal dat jaar in ieder geval ook nuttig zijn voor je CV.

Ik hoop dat je er wat aan hebt. En wie weet wordt het zelfs een commercieel succes ;-)

p.s. Als de gebroeders Wright zich lieten tegenhouden door de opmerkingen van mensen om zich heen, dan waren we ergens bij de eerste Fokker beland.
22-11-2012, 15:30 door Anoniem
Een open-source virusscanner is ClamAV. http://www.clamav.net. Een blik op de broncode brengt je misschien op ideeën.
22-11-2012, 15:49 door Anoniem
Door tegenlicht: Ik vind het een geweldig idee. Je gaat er niets mee verdienen. Dat je de vraag stelt, verraad al dat het geen commercieel succes wordt, maar het is een mooi idee om heel veel aspecten tegelijkertijd te leren. Ik zou het gewoon doen. Je zult je moeten inlezen in besturingssystemen, processen, programmeren, mallware, debugging, reverse engineering. Ik denk dat als je dit een jaar gaat doen, dat je na een jaar een waardeloze virusscanner hebt die de iloveyuou virus vast en zeker herkent, maar dat is onbelangrijk. De kennis die je opdoet, zal behoorlijk veel zijn. Een ander punt. Je kunt het moeilijk op een cv zetten. Je kunt moeilijk er op zetten: Ik heb een virusscanner gemaakt en die herkent bijna niets en hij gebruikt al mijn resources. Doet me denken aan de oude symantec :-)

Om er toch nog iets aan te hebben voor je cv kun je het volgende doen. Een goed boek bestuderen over OSes, neem die van william stalling bv. Vervolgens kun je een microsoft certificaat halen wat heel diep op windows ingaat. die hebben ze vast. reverse engineering, kun je bijvoorbeeld het boek lezen: mallware analyst cookbook en een certificaat forensics hales van die ethical hacker club. Dan zal dat jaar in ieder geval ook nuttig zijn voor je CV.

Ik hoop dat je er wat aan hebt. En wie weet wordt het zelfs een commercieel succes ;-)

p.s. Als de gebroeders Wright zich lieten tegenhouden door de opmerkingen van mensen om zich heen, dan waren we ergens bij de eerste Fokker beland.


Jojo, en dat in een jaar, en een baan hebben in de ICT, met Google niet juist kunnen zoeken (want daar staat al veel, zonder het te hebben gedaan want anders zou hij het hier niet vragen) en dan te zeggen met GUI.

Ik wil de persoon niet afkraken hoor, maar wat de AV experts jaren over hebben gedaan en nog steeds dag en nacht mee bezig zijn doe je echt niet in een jaar tijd.

Ik zou zeggen stop ermee, maar goed laat je vooral niet weerhouden door mee.
Ik denk wel dat het tijd verknoeien is.
Als je de materie echt leuk vind ga dan in de AV sector werken.
Dan ben je ook met het item bezig, en heel misschien helpt het wel.

Maar AV lopen sowiesotoch altijd achter, het kat en muis spel.
22-11-2012, 16:00 door Anoniem
"Ik vind het een geweldig idee. Je gaat er niets mee verdienen. Dat je de vraag stelt, verraad al dat het geen commercieel succes wordt, maar het is een mooi idee om heel veel aspecten tegelijkertijd te leren. Ik zou het gewoon doen."

Ik neem aan dat de topicstarter ook door zal hebben dat hij hier niets mee zal verdienen, en het klinkt zeker als een uitdagend project. Wat dat betreft zeg ik ook ''gewoon doen'', en trek je niets aan van de negatieve reacties van enkelen hier ;)

"Als ik jullie was, dan zou ik dit knotsgekke idee daarom lekker laten varen. Want het is niet meer dan dat."

Wat is er tegen knotsgekke ideeen indien je daar van kan leren ? Dat de topicstarter naar alle waarschijnlijkheid geen produkt zal maken dat ook maar in de buurt komt van bekende commerciele virusscanner doet toch helemaal niet ter zake ?
22-11-2012, 16:14 door Anoniem
Door tegenlicht:
p.s. Als de gebroeders Wright zich lieten tegenhouden door de opmerkingen van mensen om zich heen, dan waren we ergens bij de eerste Fokker beland.

Natuurlijk, maar nou hebben we inmiddels de Boeing 747 en de Airbus A380 en nou komt er iemand die
zegt "ik werk hier op een metaalwerkplaats en ik wil ook zo'n ding bouwen maar ik weet niet of ik nou moet lijmen
of klinknagelen, heeft iemand tips".

Als beginnersprojectje is dit niet echt iets.
Ikzelf heb zelfs het vermoeden dat er een soort incrowd is waar zich zowel de virusmakers als de virusscannermakers
in bevinden, en die onderling informatie uitwisselen. Als je ziet hoeveel signatures voor virussen die "niet in het wild"
zijn er dagelijks worden toegevoegd, dan moeten die scannermakers een andere bron hebben.
En bedenk dat het in het belang is van de scannermakers is dat er veel virussen zijn en veel bij komen. Dat is immers
de basis waarop zij verkopen.
(dit is in de tijd dat virussen nog meer plaagstootjes waren vast het geval geweest. of het nu met de trojans die
voor keihard geldelijk gewin zorgen nog steeds zo gaat is de vraag)

Dit wereldje zul je als nieuwkomer die nog niets gepresteerd heeft niet zomaar in komen.
22-11-2012, 18:00 door tegenlicht
"Ik wil de persoon niet afkraken hoor, maar wat de AV experts jaren over hebben gedaan en nog steeds dag en nacht mee bezig zijn doe je echt niet in een jaar tijd."

De topicstarter wil ook geen concurrent worden van kaspersky. Natuurlijk lopen ze voor. Hij wil iets leren, en je zult je verbazen hoeveel je kunt leren in een jaar met zo'n project. Je komt met termen in aanraking die je niet eerder bent tegengekomen. Toen ik 8 jaar terug op school zat, moest ik een eigen besturingssysteem maken. Het is uiteindelijk geen android geworden. Ik heb de code niet eens meer, maar ik heb wel geleerd hoe een besturingssysteem er in essentie uitziet. Kun je alle systeem beheer en programmercertificaten halen, maar door zelf iets te maken waar niemand op de wereld wat aan heeft, leer je heel veel. En dat is exact wat de topicstarter wil. Dus ik zeg doen.

"Natuurlijk, maar nou hebben we inmiddels de Boeing 747 en de Airbus A380 en nou komt er iemand die
zegt "ik werk hier op een metaalwerkplaats en ik wil ook zo'n ding bouwen maar ik weet niet of ik nou moet lijmen
of klinknagelen, heeft iemand tips"."

Als de meneer van de bouwplaats zegt dat hij dat wil doen om wat te leren dan zeg ik doen. Vooral niet verwachten dat het wat wordt, maar steek er lekker veel energie in zodat je er van leert.
22-11-2012, 18:10 door Anoniem
Er zijn heel veel programmeerprojecten waar je je op kunt uitleven.
Zolang je je nog moet afvragen in welke taal zo iets gemaakt wordt kun je beter niet aan de filtering api als
eerste project beginnen. Een probleem is bijvoorbeeld dat als je iets doet in je filter wat niet goed is, meteen
je hele systeem aan diggelen ligt. Je moet dan in veilige mode opstarten en je filtering driver verwijderen.
(dit gebeurde vroeger ook nog wel eens als je bijvoorbeeld 2 virusscanners installeerde, bij wrakkige software
misschien nog steeds wel)

Ik zou zeggen als je met zo iets wilt experimenteren beperk je in eerste instantie dan tot een on-demand
scanner, ga dan eerst kijken naar netwerk filtering, en als dat allemaal gesneden koek is denk dan eens
over on-access file scanning.

Niet in Visual Basic natuurlijk... dat kun je hooguit voor de GUI nemen.
23-11-2012, 00:46 door saintnick
Even een serieus vraagje: heb je nog het bonnetje van je pc?
Want ik zou hem maar heel gauw gaan terugbrengen en het geld terugvragen. En dan snel naar bart smit en een leuke legosetje uitzoeken, of een ipad.

En als je toch niet van je idee bent af te brengen: alle antivirus wordt tegenwoordig in Java geschreven. Dat is namelijk de meest veilige onverwoestbare programeertaal gebleken (java komt voort uit javascript, en dat is het koffiesoort uit Belize dat sinds jaar en dag alle programmeurs 's ochtends drinken).

Succes!
23-11-2012, 09:20 door Anoniem
Een virusscanner is in zeker opzicht net zo'n programma als alle andere. Als je programmas kan bouwen, kan je ook een virusscanner bouwen. Maar als je moet vragen wat voor programmeertaal een goed idee is, nou, dan zou ik eerst eens beginnen met een paar verschillende programmeertalen te leren. Jawel, meerdere verschillende, zodat je zelf een behoorlijke afweging kan maken. En dan kan je eens gaan kijken wat een virusscanner allemaal moet kunnen en dan kan je daar zelf een geschikte taal bij zoeken. (Ik weet nu al waar je op zou moeten uitkomen, maar dit is jouw oefening.)

Aan de andere kant, populaire virusscanners geraken in een spel van kat en muis met wat ze willen detecteren, want dat wil het gedetecteerde dan weer niet. Dat heeft gevolgen. Welke? Denk daar maar eens over na.

Persoonlijk heb ik het niet op GUIs, want GUIs schalen niet. Ik kan ze niet makkelijk scripten, en dus automatiseert het niet lekker. Automatiseren is toch wel de kerntaak van een ICTbedrijf, of zie ik dat nu verkeerd? Maar als je graag een GUI maakt zal ik je niet tegenhouden.

Bedenk wel: GUIs zijn, aan de ene kant, zo ongeveer het makkelijkste om "even te maken", en aan de andere kant ook het misleidendste, dus best lastig goed te doen. In een virusscanner gaat het er om dat je detecteert wat je wil detecteren, niet dat je je gebruiker nodeloos bangmaakt met halfbegrepen concepten. Dan moet je toch beginnen met zelf snappen wat je presenteert, nietwaar?

En verder moet je weten hoe je detecteert wat je wil detecteren. Patroonherkenning en wat dies meer zij. Is op zich ook al een leuke tak van sport. Oh, en leer ook even over false en true positives en negatives, over precision en recall--allemaal zaken waar je je in moet verdiepen.

En dan het genereren van die patronen zodat je ze kan herkennen. Zoals al opgemerkt hebben verschillende bedrijven omvangrijke vangnetten uitstaan en grote databases met voorbeelden en specialisten* om uit wat ze gevangen hebben "virusdefinities" te distilleren. Wat een hoop tijd kost en lang niet altijd goed gaat. Dan zie je in het nieuws dat er weer eens een virusscanner een vitaal onderdeel van windows (of zichzelf) als rootkit of trojaan aangemerkt had. Oeps, toen deed windows het niet meer. Wat nu?

Ja, het is een behoorlijk wild plan. Wil je het echt, nuja dan heb je een hoop kennis en kunde nodig. Best leuk om dat allemaal te vergaren natuurlijk. Kost al redelijk wat tijd om meer te doen dan een beetje schetsen wat er zoal bij komt kijken. Je bent er wel even zoet mee, veel plezier.

* Ze zijn natuurlijk niet allemaal even snugger. Had laatst een discussie met zo iemand die gewoon niet snapte wat'ie op z'n bord gekregen had: Een "stock" mirc.exe met custom scripts die hele rare dingen deden, verspreid via (behoorlijk inepte) social engineering. Maar het was geen bekende "virusmanier" dus kon hij er geen soep van maken. Tsja.
23-11-2012, 11:35 door [Account Verwijderd]
[Verwijderd]
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.