신뢰할 수없는 코드/어셈블리를 호스팅 할 응용 프로그램 도메인이 있습니다. 나는 보안 속성으로 보안 문제를 모두 해결했다. 신뢰할 수없는 코드는 전용 스레드에서 실행됩니다. CLR은 2.0입니다. 이것은 AppDomainShellAppDomainSeed입니다. 쉘이 주 도메인에서 실행 중이며 시드가 신뢰할 수없는 도메인의 신뢰할 수있는 프록시/도우미입니다.샌드 박스 AppDomain의 스레드 보안
새로운 스레드 생성 및 우선 순위 변경을 제한하고 싶습니다.. 현재 신뢰할 수없는 어셈블리가 ThreadPriority를 설정할 수 있습니다. 10k 스레드를 생성하여 운영 체제를 가장 위험에 처하게하거나 죽일 수 있습니다. SecurityPermissionFlag.ControlThread이 있지만 Abort()와 같은 고급 작업을 막을 수 있습니다.
스레드 클래스 구현을 살펴 보았습니다. 간단한 작업을위한 C# API에는 선언적 보안이 없으며 나머지 구현은 기본입니다.
OS 레벨에서이를 막기 위해 Win32의 일부 기능을 사용할 수 있다고 생각합니다. 그러나 운영 체제가 신뢰할 수없는 스레드/코드/어셈블리를 어떻게 인식합니까? SetThreadPrincipal()?
악용 될 수있는 CLR API가 있습니까? 나는 설치가 필요없고 Mono에 포팅 할 필요가없는 솔루션을 선호한다. -/hmmm.
다른 아이디어는 환영합니다. 감사!
제레미가 더 많은 문맥을 요구했습니다. 그래서 Robocode 로봇을위한 .NET 호스트에서 작업합니다. 처음 출시 된 것은 아닙니다. Robocode가 자바 일다는 것을 아시다시피. 로봇이 속임수를 쓰려고 시도 할 것입니다. 악의적 인 어셈블리입니다. 이제는 속도 때문에 같은 과정에서 필요합니다. Java의 robocode 전투 코어와 .NET의 로봇 사이에 초당 약 5000 건의 호출이 필요합니다. java nad .NET 간의 빠른 통합을 달성하기 위해 무료 프로젝트가 없기 때문에 새로운 프로젝트 jni4net을 시작했습니다. IKVM은 Robocode 커뮤니티의 대부분이 순수한 Java이므로 가능성이 없습니다. 내 블로그에 더. –