커널 내에서 루트 계정에 대한 액세스를 제한할 수 있습니까?
즉, 버튼을 누르면 시스템은 누른 버튼을 감지한 다음 부팅 시 루트 계정에 대한 액세스를 허용합니다. 나에게 있어서 이는 내 프로그램 중 하나의 버그가 개방형 포트를 가지고 있고 취약할 수 있는 해커 공격으로 이어지는 것을 방지하는 데 도움이 될 수 있습니다!
공격자의 움직임을 제한할 수 있다면 민감한 데이터를 손상시키지 않고 공격자가 액세스할 수 있는 정보도 제한할 수 있을 것입니다. 이를 수행하는 특별한 방법이 있습니까? Android는 액세스, 부팅 매개변수 또는 다른 커널과 같은 권한을 어떻게 관리하나요?
가능한?
답변1
Linux/Unix를 사용하면 일반적으로 무엇이든 가능하지만 대부분의 경우 침입은 루트 계정에 로그인하여 정문을 통해 수행되지 않습니다. 보다 일반적인 공격 벡터는 높은 권한으로 실행되는 프로세스를 대상으로 한 다음 응용 프로그램 기능의 약점을 식별하고 악용하는 것입니다.
보다 일반적인 접근 방식은 이렇게 높은 권한으로 애플리케이션을 실행하지 않는 것입니다. 일반적으로 루트로 애플리케이션을 시작한 다음 대체 사용자로 프로세스의 다른 복사본을 포크합니다.
또 있다chroot
환경또한 기본 파일 시스템의 노출을 제한하는 데에도 사용됩니다.
당신이 지나가면Red Hat 서버 보안 참조관심이 있으시면 제가 언급한 내용의 대부분을 더 자세히 다루고 있습니다.
답변2
기존 구현에 대해 잘 모르지만 하나 작성할 수 있습니다.폴리아크릴아미드버튼을 눌러야 하는 모듈.
그러나 이는 루트로 로그인하는 데 사용하는 자격 증명을 획득하는 악성 코드로부터 시스템을 보호할 뿐입니다. 예를 들어, sudo
루트로 명령을 실행하기 위해 비밀번호를 사용 하고 입력했는데 일부 맬웨어가 사용자의 비밀번호를 알아내면 사용자가 sudo
이를 감지하지 않고도 맬웨어가 실행될 수 있습니다. 버튼을 눌러야 하는 경우 이는 불가능해집니다.
이것은 거의 쓸모가 없습니다. 이 작업을 수행할 수 있는 악성 코드는 sudo
사용자가 처음 실행되는 것을 발견할 때 루트 권한으로 실행되는 무언가를 피기백하여 심을 수도 있습니다 . 이는 가장 일반적인 공격 벡터는 아닙니다. 맬웨어는 커널이나 루트로 실행되는 프로그램의 버그를 악용하여 루트 권한을 얻는 경우가 많습니다. 이것은 버튼을 누를 필요가 없습니다. 누구에게나 이는 완전히 정상적인 동작이기 때문입니다. 이미 실행 중인 프로그램은 프로그래밍된 작업을 수행하고 있습니다. 프로그램이 원래 수행해야 할 작업 대신 공격자가 제공한 코드를 실행한다는 사실은 도움이 되지 않습니다. 컴퓨터는 사용자가 원하는 작업을 수행하는 것이 아니라 지시받은 작업을 수행합니다.