Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

OpenSource software en veiligheid

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Ik vraag me al wat langer af hoe je opensource software toch enorm veilig kan maken.

Even een theoretisch voorbeeld wat ik bedoel : Neem even dat een erg bekende shooter zoals 'counterstrike' opensource zou zijn. Op zich zou dat érg leuk zijn , maar aangezien iedereen zomaar de source code kan bezien , lijkt het me dat er snel cheats/hacks voor geschreven zullen worden. Nu weet ik zelf ook wel dat 'veilig omdat de source code gesloten is' niet goed is én zeker niet echt veilig is , maar het bied voor vele games toch al wel een basis van veiligheid tov cheaters/hackers.


Nu vroeg ik me af hoe je dus (neem als voorbeeld een FPS game) én opensource kan laten zijn én voorbeeld 'steam accounts' kan laten bevatten én veilig kan zijn tegen cheaters.

Ik heb wat lopen googlen achter dit , maar niet al te veel gevonden :(.

Ps : een link in mijn nadeel : http://www.bluesnews.com/...?id=1&time=19991226003141

[ Voor 6% gewijzigd door DeadLock op 08-03-2007 19:06 ]

Strava


  • Brent
  • Registratie: September 2001
  • Laatst online: 23:33
Kijk eens bij de vele OS shooters die er wel zijn, Nexuiz, AlienArena en Warsow om er een paar te noemen.

Punt is, dat cheats en hacks vaak gebruiken maken van fouten in code of ontwerpfouten. Met een OS ontwerp kan iedereen in principe een code review doen en oplossingen voor deze fouten schrijven. Bovendien kun je, net als CS, code verifieren op moment van uitvoering.

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • Jungian
  • Registratie: Juni 2006
  • Niet online

Jungian

>_<

Doordat software Open Source is zijn er veel meer mensen in staat exploits / bugs te fixen als die opduiken.

0.0


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Ik ben het helemaal eens met jullie , 90% van de mensen die de code 'lezen' zullen willen helpen bugs/fouten eruit te halen. Over deze mensen niets dan lof :).

Maar het gaat me dus over die 10% die het wél wil verzieken door allerlei cheats/hacks te maken. Wanneer deze mensen de source code hebben , zullen zei ook véél sneller werkende cheats vinden. Anders moet je al gaan decompilen , geheugen lezen , .... en weet ik veel wat allemaal om aan een cheat te kunnen beginnen.

Dus mijn vraag overnieuw : Hoe kan je opensource software (en specifiek games) beveiligen tegen cheaters/hackers als de source code helemaal open is ?

Strava


  • Jungian
  • Registratie: Juni 2006
  • Niet online

Jungian

>_<

evert_ schreef op donderdag 08 maart 2007 @ 19:12:
Dus mijn vraag overnieuw : Hoe kan je opensource software (en specifiek games) beveiligen tegen cheaters/hackers als de source code helemaal open is ?
Zorgen dat je goede code schrijft en dat er mensen paraat staan om problemen te fixen. Hetzelfde verhaal als bij closed-source software eigenlijk. Dat mensen de code in kunnen zien wil niet zeggen dat het persé brakke code is waar je naar zit te kijken ;)

[ Voor 11% gewijzigd door Jungian op 08-03-2007 19:18 ]

0.0


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Met dat verschil dat bij closed source zaken veel 'veilig door gesloten source' is. Dit is natuurlijk maar schijnveilig , maar kan van die 10% mensen die cheats willen maken toch al groot deel tegenhouden.

Edit : Ik heb het ook niet over al bestaande games die brak zijn doordat ze opensource zijn ofzo ;). Ik vroeg me gewoon af 'wat als je een groot game wilt maken , maar toch opensource , hoe zit het dan met de beveiliging ervan'.

[ Voor 36% gewijzigd door DeadLock op 08-03-2007 19:20 ]

Strava


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Tsja, wellicht kan je iets met gesignde code of iets dergelijks, maar ik weet zo één twee drie geen manier om dat intrinsiek veilig te doen.

Verder kan je natuurlijk heel veel aan de serverkant regelen. Bij CS heb je wallhacks. Blijkbaar geeft de server dus door aan jouw computer dat er aan de andere kant van de muren mannetjes lopen, en hoeft jouw gehackte CS alleen maar de muur doorzichtig te maken. Ik denk dan ook dat de grootste winsten te boeken zijn door een veel intelligentere server; die alleen de informatie naar de clients doorstuurt die de client mag hebben. Dat maakt de taken die een server moet uitvoeren wel ontzettend veel uitgebreider en dus zwaarder.

  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Ok , je voorbeeld van 'gesignde code' haalt het voordeel van OS wel weer weg , als je niets mag veranderen kan je source al bijna even goed gesloten houden :+ .

Alles op server regelen lijkt me wel érg zwaar zowel voor server (qua CPU gebruik) als voor het netwerk. Ik heb wel geen ervaring met hedendaagse games , wat op server en wat op client gedaan wordt , maar het dunkt me dat server relatief weinig doet , buiten zorgen dat alle clients braaf hun data tig keren per frame voorgeschoteld krijgen :).

Strava


  • Brent
  • Registratie: September 2001
  • Laatst online: 23:33
evert_ schreef op donderdag 08 maart 2007 @ 19:29:
Ok , je voorbeeld van 'gesignde code' haalt het voordeel van OS wel weer weg , als je niets mag veranderen kan je source al bijna even goed gesloten houden :+ .
Euh, nee? Code is gewoon beschikbaar, ook hoe het signen gaat (en dat gaat per hashes enzo, dus aan die code als hacker heb je niets). Alleen op een bepaalde server kun je dan alleen maar met bepaalde software spelen, namelijk versie X, met mod Y en skins Z en verder geen hacks. Kan toch prima? Iedereen kan zijn eigen versie en server opzetten, niets wat dat tegen houd toch?

Open Source een signing kunnen prima door 1 deur, sterker nog, het is schering en inslag ;)

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Euhm , zoals je zelf al aangeeft staat er in de code hoe die checksums / signs gemaakt worden. Erg leuk , maar als je nu gewoon even sniffed (of in ram uitleest) wat de hash is van goede code , dan de cheat erin zet en dan gewoon de 'hard coded' hash doorstuurt ?

Nogal erg gesimplificieerd , maar dat zou ten slot van rekening wel werken ?

Strava


  • Brent
  • Registratie: September 2001
  • Laatst online: 23:33
evert_ schreef op donderdag 08 maart 2007 @ 19:37:
Euhm , zoals je zelf al aangeeft staat er in de code hoe die checksums / signs gemaakt worden. Erg leuk , maar als je nu gewoon even sniffed (of in ram uitleest) wat de hash is van goede code , dan de cheat erin zet en dan gewoon de 'hard coded' hash doorstuurt ?

Nogal erg gesimplificieerd , maar dat zou ten slot van rekening wel werken ?
Daarom moet je ook zorgen dat niet jan en alleman aan je geheugen kunnen komen :+ Daarnaast, alles is te omzeilen, maar het gaat erom het zo moeilijk mogelijk te maken.

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Er is een verschil tussen weten hoe iets werkt en er een weg omheen vinden. Je weet prima hoe een fysieke muur werkt, toch kan je er niet doorheen lopen.

Punt is om te zorgen dat er goed over alle koppelvlakken / toegangspunten is nagedacht. Dus in het geval van een spel de hoeveelheid gegevens die wordt verstuurd van / naar de server, bij een forum dat de enige mogelijke i/o toegang via het invoerscherm is (en dat hier geen HTML of SQL kan worden geplaatst), etc.

Trouwens NOS -> BV

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Breepee schreef op donderdag 08 maart 2007 @ 19:39:
Daarom moet je ook zorgen dat niet jan en alleman aan je geheugen kunnen komen :+ Daarnaast, alles is te omzeilen, maar het gaat erom het zo moeilijk mogelijk te maken.
Tsja, maar moeilijk maken is nogal lastig bij OS code ;). Daarom vroeg ik me net dus ook af of het uberhaupt wel kán. Het is net zoiets als DRM, je wilt je content beveiligen tegen misbruik, maar de misbruiker is precies degene die het ook normaal moet kunnen gebruiken. Daar zijn ook geen intrinsiek veilige oplossingen voor en zal dus altijd gebruik maken van of obfuscation (closed source), óf van de mogelijkheden die een bovenliggende laag zoals Operating system of een hardwarelaag kan bieden...

  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
F_J_K schreef op donderdag 08 maart 2007 @ 19:41:
Er is een verschil tussen weten hoe iets werkt en er een weg omheen vinden. Je weet prima hoe een fysieke muur werkt, toch kan je er niet doorheen lopen.

Punt is om te zorgen dat er goed over alle koppelvlakken / toegangspunten is nagedacht. Dus in het geval van een spel de hoeveelheid gegevens die wordt verstuurd van / naar de server, bij een forum dat de enige mogelijke i/o toegang via het invoerscherm is (en dat hier geen HTML of SQL kan worden geplaatst), etc.

Trouwens NOS -> BV
Nu maak je een vergelijking met een forum, waar je moet zorgen dat er geen SQL injection e.d. mag kunnen gebruikt worden, maar het probleem bij een OS spel is juist dat code injection ALTIJD kan.

Strava


  • mithras
  • Registratie: Maart 2003
  • Niet online
Kijk bijvoorbeeld naar Second Life. Ik weet niet precies hoe ze het hebben gedaan, maar ook SL is open source.
En het zal niet zo hard van stapel lopen dat er bots geprogrammeerd worden die veel geld voor jou gaan verdienen. Het zou vast wel kunnen, maar ik denk dat ze er rekening mee hebben gehouden.

Daarnaast is het wel een heikel punt omdat beveiligingen open liggen. Echter is dit het enige "voordeel" van closed software tov open source software: security by obscurity. Wat /me F_J_K zegt: zolang je de muur maar lang maakt en voldoende dik, zal het enige tijd kosten voordat er een gat onder gegraven kan worden. Vervolgens is het mooie dan weer van open source dat iedereen dat gat kan vinden en je met elkaar het vol kan storten met beton :)
evert_ schreef op donderdag 08 maart 2007 @ 19:59:
[...]

Nu maak je een vergelijking met een forum, waar je moet zorgen dat er geen SQL injection e.d. mag kunnen gebruikt worden, maar het probleem bij een OS spel is juist dat code injection ALTIJD kan.
Naast phpBB (wat dus wel vaak belaagd wordt) zijn er vele anderen stukken open source forum software die wel goed werken (en phpBB steeds beter). Het geeft wel aan dat open source niet per definitie betekent dat het super simpel gehackt kan worden ;)

[ Voor 25% gewijzigd door mithras op 08-03-2007 20:02 ]


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

evert_ schreef op donderdag 08 maart 2007 @ 19:59:
Nu maak je een vergelijking met een forum, waar je moet zorgen dat er geen SQL injection e.d. mag kunnen gebruikt worden, maar het probleem bij een OS spel is juist dat code injection ALTIJD kan.
Niet persé. Momenteel zijn sommige closed source spellen zo :

Client1 -> Server : Ey server, ik heb client 2 doodgeschoten
Server -> Client1 : Oh, dan zullen we die eens omleggen
Server -> Client2 : Ga es dood!
Client2 -> Server : Ok!

Bij een open source spel moet het zoiets worden:

Client1 -> Server : Ey server, ik schiet een kogel vanaf mijn plek in die richting
Server -> Client1 : Ah, en volgens mijn berekeningen sta jij daar, en als je die richting op schiet, raak je Client 2!
Server -> Client2 : Ga es dood!
Client2 -> Server : Ok!

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

Zelfs al zou er 10% van de gebruikers meer hacks kunnen vinden dan er oplossingen worden gevonden, dan nog bereik je een soort van evenwicht,

als er meer bugs worden gevonden, gaan meer mensen zich storen aan de crackers, een simpel te fixen bug wordt dan meten gefixed, juist omdat er vaak misbruik van gemaakt wordt.
Misbruikt niemand de bug, tjah dan kan de ene hacker er een tijd van profiteren, tot iemand er door benadeeld wordt en er iets aan doet.

SEcure open source coden is net als wiskunde.

BEide kanten weten hoe wiskunde werkt,
Als een van de 2 kanten zich niet aan de regels houdt, klopt volgens de ander de uitkomst niet, en kan de persoon met de fout 2 dingen doen, opnieuw berekenen, of stoppen met de deal/disconnecten/disconnected worden.

[ Voor 25% gewijzigd door killercow op 08-03-2007 20:41 ]

openkat.nl al gezien?


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Die redenering volg ik helemaal en is erg leuk , alleen wat in volgende situatie :

Client besluit iets minder 'normaal' te spelen , gaat in code kijken en haalt code weg om muren te tekenen. Voila , daar is de wallhack waaraan bovenstaande manier niets aan kan doen.

Strava


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

evert_ schreef op donderdag 08 maart 2007 @ 20:40:
Die redenering volg ik helemaal en is erg leuk , alleen wat in volgende situatie :

Client besluit iets minder 'normaal' te spelen , gaat in code kijken en haalt code weg om muren te tekenen. Voila , daar is de wallhack waaraan bovenstaande manier niets aan kan doen.
Client schiet op een poppetje achter een muur,
Server bekijkt line of sight, klaar, wall hack opgelost.
Oke, je zou een en ander kunnen gooien op, ja maar ik kan wel door sommige muren schieten als ik wist dat die persoon daar achter rende. dan bouw je en soort cache in de server, kan de client raden waar het slachtoffer zit? zoja? hit!, zo nee? geen hit.

openkat.nl al gezien?


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

killercow schreef op donderdag 08 maart 2007 @ 20:43:
[...]


Client schiet op een poppetje achter een muur,
Server bekijkt line of sight, klaar, wall hack opgelost.
Oke, je zou een en ander kunnen gooien op, ja maar ik kan wel door sommige muren schieten als ik wist dat die persoon daar achter rende. dan bouw je en soort cache in de server, kan de client raden waar het slachtoffer zit? zoja? hit!, zo nee? geen hit.
Euhm, als je hem achter de muur ziet lopen; hoef je hem niet meteen te beschieten, maar kan je ook wachten tot hij het het hoekje om komt voor je schiet ;). En dan zit hij dus wel in je line of sight.

Het probleem in dat geval is dus dat de server teveel informatie verstuurt; namelijk dat er achter die muur een mannetje loopt, en die informatie hoort er gewoon niet te zijn bij de client. Pas zodra een karakter werkelijk in de line of sight komt, hoeft de client het te weten.

  • mithras
  • Registratie: Maart 2003
  • Niet online
eamelink schreef op donderdag 08 maart 2007 @ 20:34:
[...]


Client1 -> Server : Ey server, ik schiet een kogel vanaf mijn plek in die richting
Server -> Client1 : Ah, en volgens mijn berekeningen sta jij daar, en als je die richting op schiet, raak je Client 2!
Server -> Client2 : Ga es dood!
Client2 -> Server : Ok!
offtopic:
Client1 -> Server: Ey server, er vliegt een kogel op precies de uitgerekende plek waar het hoofd van iemand staat die ik kan zien!

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

eamelink schreef op donderdag 08 maart 2007 @ 20:48:
[...]


Euhm, als je hem achter de muur ziet lopen; hoef je hem niet meteen te beschieten, maar kan je ook wachten tot hij het het hoekje om komt voor je schiet ;). En dan zit hij dus wel in je line of sight.

Het probleem in dat geval is dus dat de server teveel informatie verstuurt; namelijk dat er achter die muur een mannetje loopt, en die informatie hoort er gewoon niet te zijn bij de client. Pas zodra een karakter werkelijk in de line of sight komt, hoeft de client het te weten.
Nee, dat bedoelde ik niet

Stel,

ClientA ziet clientB lopen (met line of sight te berekenen door de server)
ClientB loopt achter muurtje
CleintA schiet op goed geluk op muurtje wetende dat clientB daar achter verdween.

De server kan dan een estimated guess maken of clientA dat kon weten of niet, afhankelijk van hoe lang het geleden was dat hij clientB voor het laatst wel kon zien.

Als clientA een wallhack had gebruik en dus zomaar door muren zou gaan schieten, is de tijd dat hij clientB niet heeft gezien te groot, en kunnen de shots dus genegeerd worden.

openkat.nl al gezien?


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Goed, dan ga je een soort intelligentie gebruiken om dat soort dingen te ontdekken. Want iemand kan natuurlijk ook gewoon op goed geluk op een muurtje schieten, of misschien weet hij wel van een teammaatje dat daar iemand staat ;)

Ik denk trouwens dat je 'educated guess' bedoeld, want de meeste guesses zijn wel estimated ;)

[ Voor 17% gewijzigd door eamelink op 08-03-2007 21:05 ]


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

eamelink schreef op donderdag 08 maart 2007 @ 21:04:
Ik denk trouwens dat je 'educated guess' bedoeld, want de meeste guesses zijn wel estimated ;)
Spot on!

openkat.nl al gezien?


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Sorry , maar dat systeem vind ik waardeloos ; Neem nu dat je via teamspeak ofzo samen met wat vrienden speelt , dan kan je vaak weten waar de vijanden zitten. Dus dan kan je opvoorhand al gaan schieten zonder dat je het weet. In dit geval zou je dan cheaten .... ?

Strava


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

evert_ schreef op donderdag 08 maart 2007 @ 22:06:
Sorry , maar dat systeem vind ik waardeloos ; Neem nu dat je via teamspeak ofzo samen met wat vrienden speelt , dan kan je vaak weten waar de vijanden zitten. Dus dan kan je opvoorhand al gaan schieten zonder dat je het weet. In dit geval zou je dan cheaten .... ?
Alweer:

Spot on!
Want jij zou het niet geweten hebben, tenzij je een unfair advantage had dat er een user dood is en via teamspeak jouw instructies geeft. (float mode, en dan alles vertellen aan je maatjes)
Laat users elkaar dan maar "painten" zodat client A aan client B kan vertellen via de mini-map waar client C zit. en zo client A's line of sight kan unlocken door muren heen.

openkat.nl al gezien?


  • DeadLock
  • Registratie: December 2005
  • Laatst online: 29-11 19:29

DeadLock

Vastlopen is relatief....

Topicstarter
Dat hele idee vind ik nogal brak eerlijk gezegd , stel je voor dat je nade (zonder te weten waar de enemy is) , pc denkt dat je hem niet kon weten staan en kickt je voor cheaten ?

Vaak gebeurd het in games dat je vijanden hoort OF nade / schiet op plaatsen waar je denkt/verwacht dat ze gaan komen. Dat gaat de server helemaal niet kunnen bepalen op een eerlijke manier :).

Strava


Verwijderd

evert_ schreef op zondag 11 maart 2007 @ 12:14:
Dat hele idee vind ik nogal brak eerlijk gezegd , stel je voor dat je nade (zonder te weten waar de enemy is) , pc denkt dat je hem niet kon weten staan en kickt je voor cheaten ?

Vaak gebeurd het in games dat je vijanden hoort OF nade / schiet op plaatsen waar je denkt/verwacht dat ze gaan komen. Dat gaat de server helemaal niet kunnen bepalen op een eerlijke manier :).
Dat klopt, en dat geeft toch helemaal niet? Als jij op een plek wilt gaan schieten waarvan je verwacht dat er iemand zou kunnen komen, dan moet je dat maar gewoon doen. Het is de server die geen informatie mag geven over dingen die je niet kunt weten. Zo hoor de client eigenlijk niet eens te weten wat hij aan het renderen is. Want als je kunt afleiden dat je een bepaald model aan het renderen bent, weet je ook waar je moet schieten, en zo is er een aimbot geboren.
In een ideaal geval zendt de client alleen instructies naar de server, en krijgt hij complete beelden terug. Het gaat er immers uitendelijk om dat de persoon die de computer bedient alle beslissingen moet maken. Door de client enorm "dom" te maken bereik je dat. Maar erg efficiënt is het niet. En uiteindelijk is het ooit wel mogelijk om met beeldherkenning dan alsnog een aimbot te maken. Maar wallhacks zijn dan in elk geval onmogelijk.
Pagina: 1