Jeg sidder og tænker på om c# kan blive kørt i et sikkert miljø, uden at være bange for at den kode der bliver kørt, vil smadre ens styresystem og læse fortrolige oplysninger.
jeg regner med at man skriver koden i en browser, og kan compile og køre det igennem browseren (KUN Console programmer),
Jeg køre det på en Debian VPS, så håber jeg kan køre en Shell hvor programmet bliver kørt, så jeg kan pipeline Shell outputtet en browser med noget smart Server-side kode som jeg sådan set godt kan finde ud af.
Jeg håber bare at det er muligt at lave nogen utroligt sikre sandbox instanser til hver bruger der compiler noget kode, så de ikke kan få adgang til serverens tjenester eller filer, ud over dem de selv laver.
Men sandbox er meget svaert at lave sikker med meget omfattende og komplekse frameworks.
Oracle har de facto givet op for Java applets.
Og MS er ikke forglad for .NET sandbox laengere.
Dit link siger jo selv:
We are updating our guidance to reflect that Code Access Security and Security-Transparent Code will not be supported as a security boundary with partially trusted code, especially code of unknown origin. We advise against loading and executing code of unknown origins without putting alternative security measures in place.
helt i orden, det lyder nok til jeg må give op på min ide desværre, så hvis jeg skal køre noget sikkert, vil det være og lave noget virtuelt miljø/OS til og køre mit kode?
findes der eventuelt en C# Parser der simulere en kørsel af noget kode, istedet for at køre det compilet?
helt i orden, jeg må kigge lidt mere på det, ellers kan man vel køre koden igennem en skanner og tjekke for hvad for referencer man implementere og fjerne dem fra koden før man compiler, jeg må prøve og se om det ikke findes VM miljøer da er udviklet til denne type situationer.
dog ikke på en "clean" mono, jeg regner med og slette store dele af frameworket, som f.eks System.io osv. og erstatte dem med mine egne dll filer som ikke har nogen funktioner, ud over og retunernere simuleret værdier. det er grunden til jeg vil køre det i et VM miljø, så mono'en ikke skal bruget til andet.
men kan man godt "smadre" ens mono på denne måde, og erstatte .net bibliotekerne med "dummies"?
Går ud fra man eventuelt kunne compile med C# Core, og lave de "falske" framework filer på denne måde, da bruger ikke kan ændre andet end .cs filen, og jeg så kan lave min config fil til og bruge mine dummy namespaces
Jeg regner først og fremmest bare og udelukke at en bruger kan lavet kode der kan bruge System.IO der nok er den farligeste.
VPS'en og VM miljøet skal udelukket bruges til og teste C# øvelser, som f.eks at en bruger skal lave Properties der laver korrekte værdier, når de bliver kørt igennem nogen teste (Unit tests f.esk).
ideen var og lave øvelserne lidt som et spil, hvor man optjener en score, ud fra hvor mange øvelser der giver korrekte værdier.
lidt ligesom spillet "SHENZHEN I/O" hvor man udvikler assembly kode, jeg er godt nok vild med det spil, og det gav mig ideen og lave et browser basseret spil der minder om det, dog lidt mere fokuseret på at undervisning end spil delen.
Om der findes systemer, som er 100,0000 procent sikre ved jeg ikke.
Og en tilkobling til internettet er (og vil altid være) en risiko. Vi prøver så at sikre med ANTI-VIRUS / Mal-Ware - scanninger og brundmure. Visse mere avancerede systemer bruger intelligente system-netværk, med gateways og intelligente routere og krypteringssystemer.
Men der er altid en risiko ved dette (du kan sammenligne med dit bankkort ).
Jeg har 2 netværk. Et tilkoblet WWW- og et , som ikke er tilkoblet. For ca. 3 1/2 år siden havde jeg en (måske flere) særdeles sejlivet-/de viru-s -/a på mit daværende system (eet stort) og jeg måtte geninstallere hele systemet for at få det virus-frit. De tog 2 hele dage at få det op igen. Da var det jeg delte det op i 2 netværk.
Et internet -net (2 maskiner) og et udviklings-net Jeg henter filer fra nettet som TEXT - pdf- (kort sagt kode -filer), scanner for virus- malware og lægger den / dem på en 16GB dongel og overfører manuelt til udviklings-nettet. KUN TEXT filer da jeg i tvivlstilfælde kan læse filens indhold.
Lidt langsommeligt - måske, men jeg har ikke haft virus på udviklings-nettet siden. Og internet-nettet scannes dagligt for virus og malware.
Om det er sikkert - tja - Men jeg er tilfreds med systemet.
det er derfor jeg nu overvejer og "banne" namespaces fra og blive brugt, så man slet ikke kan bruge redskaberne til og.. også selvfølgelig at fjerne dllimports.
alt jeg skal kunne er og bruge uskadeligt redskaber også fjerne alt andet. jeg regner med og læse filen igennem med et script og fjerne keywords først, men det kræver nok jeg bruger en form for streng forberedelse, så jeg ikke kommer ud i de kan escape eller andet, for at undgå filter.
Men jeg tror ogsaa at der er andre. F.eks. System.Diagnostics.
Du skal ogsaa vaere opmaerksom paa at du kan risikere at der er assemblies som indeholder baade noedvendig kode og farlig kode.
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.