FreeBSD의 커널은 "잠겨" 있습니까?

FreeBSD의 커널은 "잠겨" 있습니까?

우연히 남자랑 얘기하고 있었어맥 천재바이러스 주제에.

그는 Mac 운영 체제의 기반이 되는 FreeBSD 커널이 "잠겨 있어" 어떤 바이러스도 내 Mac에 해를 끼칠 수 없다고 언급했습니다.

나는 그가 무슨 뜻인지 잘 이해하지 못합니다.

누군가 이것을 설명할 수 있나요?

답변1

그는 자신이 무슨 말을 하는지 몰랐습니다. 내 생각에 그는 다음과 같은 몇 가지 사항에 대해 이야기하고 있는 것 같습니다.

  1. 사용자는 루트가 아닌 사용자로 로그인되어 있으므로 사용자 프로세스는 단순히 모듈을 로드하거나 커널을 변경할 수 없습니다. (물론 모든 macOS 바이러스는 이 취약점을 우회하기 위해 커널의 결함을 이용하거나 단순히 사회 공학을 사용하여 사용자가 비밀번호를 입력하도록 유도합니다)
  2. MacOSX는 10.0 이전 버전보다 메모리 보호 기능이 향상되었습니다. 아마도 "천재"는 MacOS 9 및 이전 버전을 기억할까요? 거의 모든 최신 운영 체제에는 이제 이 기능이 있으며 바이러스 작성자를 막지 못합니다.

내 생각엔 이 Mac Genius가 마케팅 중 일부를 잘못 기억했을 수도 있습니다. MacOSX가 바이러스에 감염되었을 수 있습니다. Unix 계열 시스템을 사용하면 확실히 몇 가지 이점이 있고 BSD Userland + Mach 마이크로커널이 제공하는 추가 보호 기능도 있지만 MacOSX 커널이 바이러스에 면역이 있다는 것은 명백히 거짓입니다.

답변2

그는 osx 10.8에 존재하는 것으로 보이며 아마도 동일한 의미를 갖는 freebsd의 kern.securelevel 변수를 언급하고 있을 수 있습니다. fbsd man 7 보안에서:

 The security level can be set with a
 sysctl(8) on the kern.securelevel variable.  Once you have set the secu-
 rity level to 1, write access to raw devices will be denied and special
 chflags(1) flags, such as schg, will be enforced.  You must also ensure
 that the schg flag is set on critical startup binaries, directories, and
 script files -- everything that gets run up to the point where the secu-
 rity level is set.  This might be overdoing it, and upgrading the system
 is much more difficult when you operate at a higher security level.  You
 may compromise and run the system at a higher security level but not set
 the schg flag for every system file and directory under the sun.  Another
 possibility is to simply mount / and /usr read-only.  It should be noted
 that being too draconian in what you attempt to protect may prevent the
 all-important detection of an intrusion.

 The kernel runs with five different security levels.  Any super-user
 process can raise the level, but no process can lower it.  The security
 levels are:

 -1    Permanently insecure mode - always run the system in insecure mode.
       This is the default initial value.

 0     Insecure mode - immutable and append-only flags may be turned off.
       All devices may be read or written subject to their permissions.

 1     Secure mode - the system immutable and system append-only flags may
       not be turned off; disks for mounted file systems, /dev/mem and
       /dev/kmem may not be opened for writing; /dev/io (if your platform
       has it) may not be opened at all; kernel modules (see kld(4)) may
       not be loaded or unloaded.

 2     Highly secure mode - same as secure mode, plus disks may not be
       opened for writing (except by mount(2)) whether mounted or not.
       This level precludes tampering with file systems by unmounting
       them, but also inhibits running newfs(8) while the system is multi-
       user.

       In addition, kernel time changes are restricted to less than or
       equal to one second.  Attempts to change the time by more than this
       will log the message ``Time adjustment clamped to +1 second''.

 3     Network secure mode - same as highly secure mode, plus IP packet
       filter rules (see ipfw(8), ipfirewall(4) and pfctl(8)) cannot be
       changed and dummynet(4) or pf(4) configuration cannot be adjusted.

 The security level can be configured with variables documented in
 rc.conf(8).

chflags 명령을 사용하여 디렉토리나 파일에 불변 플래그와 추가 플래그를 설정할 수 있습니다. 커널 보안 수준을 낮추거나 끄려면 단일 사용자를 부팅해야 합니다. 경고: OSX가 이 기능을 최대한 활용하는지 여부는 알 수 없지만, 사용할 수 있다는 것만 알고 있습니다.

참고 2: osx는 실제로 mach 커널을 기반으로 합니다. 사용자 레이어 항목은 freebsd에서 제공됩니다. 하지만 커널이 이 변수를 정의하는 것을 보니 같은 의미일 수도 있겠다는 생각이 듭니다.

관련 정보