문제

CLR이 버퍼 오버플로 공격을 방지하므로 .Net 플랫폼이 더 안전하다고 말하는 것이 맞습니까?

관리되는 OS(예: 코스모스, 샤프OS 또는 특이), 공격자가 앱에 IL 코드를 삽입하는 것이 기술적으로 가능합니까?

관리되지 않는 앱에서는 불가능한 공격에 대해 걱정해야 합니까?

도움이 되었습니까?

해결책

대부분의 경우 당신 말이 맞습니다.안전한 유형 시스템(.NET 또는 Java뿐만 아니라)을 사용하는 애플리케이션은 애플리케이션이 이러한 제약 조건을 위반하는 것을 허용하지 않습니다.

버퍼 오버플로 및 기타 많은 원격 코드 악용은 해당 언어 및 런타임의 제약 조건이 검사를 제공하지 않고 프로그램이 메모리에서 임의 코드를 실행하는 것과 같은 작업을 수행하지 않는다는 것을 보장할 수 없기 때문에 발생합니다.안전 시스템은 코드에 이러한 영향이 없는지 확인합니다.

(참고로 C#은 여전히 ​​안전하지 않은 작업을 수행하고 임의의 코드를 실행하도록 자체적으로 설정할 수 있습니다.다소 번거롭고 실제 응용 프로그램에서는 사용되지 않을 것입니다.)

관리되는 브라우저에서 볼 수 있는 보안 허점은 CLR을 안전한 환경으로 사용하여 임의의 코드를 로드할 수 있다는 것입니다.CLR에서 생성된 코드(즉, 애플리케이션의 JIT)는 안전하지만 로더와 검증자 자체는 일반적으로 낮은 언어로 작성됩니다.악의적으로 형성된 어셈블리로 인해 실제 CLR이 임의의 코드를 실행할 수 있는 몇 가지(.NET의 경우 2개라고 생각합니다) 보안 허점이 있었습니다.그러나 이는 상대적으로 드문 문제이며 표면적이 다른 경우보다 훨씬 적습니다.

그렇습니다. 완전히 안전하고 관리되는 브라우저 자체는 이러한 특정 공격의 희생양이 되지 않습니다.하지만 이는 또한 비슷한 방식(플래시?)으로 플러그인을 작성하고 실행해야 함을 의미합니다.마지막으로, 타깃으로 삼을 수 있는 다른 보안 허점이 있지만 일반적으로 관리되지 않는 애플리케이션에서 발견할 수 있는 것보다 덜 심각합니다.예를 들어, 크로스 사이트 스크립팅은 여전히 ​​문제로 남아 있습니다.그러나 최소한 "문서를 보면 임의의 코드를 실행할 수 있습니다"라는 유형의 문제는 발생하지 않습니다.

다른 팁

CLR (및 JVM)은 많은 일반적인 공격을 방지하지만 모든 위협을 제거하지는 않습니다. CLR 또는 모든 라이브러리에는 악용을 허용하는 버그가 포함될 수 있습니다. 응용 프로그램 오류는 악용을 허용 할 수 있습니다. SQL 주입은 응용 프로그램의 입력 검증 부족으로 인해 가능한 공격의 예입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top