적재 가능 커널 모듈
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
적재 가능 커널 모듈(LKM)은 운영 체제의 커널에 기능을 추가하거나 수정하는 데 사용되는 모듈이다. LKM은 메모리 효율성을 높이고, 시스템 유지보수를 용이하게 하며, 개발 편의성을 제공하는 장점이 있다. 하지만 성능 저하, 보안 취약성, 호환성 문제와 같은 단점도 존재한다. 리눅스, FreeBSD, macOS, 윈도우 등 다양한 운영 체제에서 LKM을 구현하며, 각 운영 체제는 LKM의 로드, 언로드, 보안, 호환성을 위해 고유한 방식을 사용한다. 보안 강화를 위해 모듈 로딩 제한, 디지털 서명, 권한 관리, 보안 감사 등의 방안이 사용된다.
더 읽어볼만한 페이지
- 운영 체제 커널 - 커널 (컴퓨팅)
커널은 운영 체제의 핵심으로, 하드웨어와 소프트웨어 간 상호 작용을 관리하며 시스템 보안, 자원 관리, 하드웨어 추상화, 프로세스 스케줄링, 프로세스 간 통신, 다중 작업 환경 지원 등의 기능을 제공하고, 모놀리식, 마이크로, 혼합형 커널 등으로 구현되며 가상화 및 클라우드 컴퓨팅 환경에서 중요성이 커지고 있다. - 운영 체제 커널 - 로더 (컴퓨팅)
로더는 운영 체제에서 프로그램을 메모리에 적재하고 실행하는 소프트웨어 구성 요소이며, 유닉스와 윈도우 등에서 실행 파일의 유효성 검사, 메모리 매핑, DLL 초기화 등의 작업을 수행한다. - 리눅스 커널 - 리눅스 리브레
리눅스 리브레는 자유 소프트웨어 철학에 따라 리눅스 커널에서 독점 바이너리 블롭을 제거한 커널로, 보안과 안정성 향상을 가져오지만 일부 하드웨어 기능 제한을 초래할 수 있으며, 여러 리눅스 배포판에서 사용된다. - 리눅스 커널 - 리눅스 보안 모듈
리눅스 보안 모듈은 리눅스 커널 변경을 최소화하면서 강제적 접근 통제 모듈을 구현하는 프레임워크로, 시스템 호출 시 훅을 삽입하여 접근을 제어하며 다양한 보안 모듈 통합을 지원하지만, 오버헤드, 남용 가능성, 구조적 한계에 대한 비판도 있다. - FreeBSD - TrueOS
TrueOS는 2005년 PC-BSD로 시작하여 FreeBSD를 기반으로 사용 편의성을 강조한 운영 체제이며, 2016년 TrueOS로 이름이 변경되었으나 2020년에 개발이 중단되었다. - FreeBSD - DragonFly BSD
DragonFly BSD는 FreeBSD에서 파생되어 모놀리식 커널과 마이크로커널의 장점을 결합한 하이브리드 커널 구조를 채택한 자유 운영 체제로, HAMMER 및 HAMMER2 파일 시스템 지원, CPU별 스레드 스케줄러, 유저랜드 가상 커널 기능 등을 제공한다.
적재 가능 커널 모듈 | |
---|---|
개요 | |
유형 | 동적으로 로드 가능한 모듈 |
설명 | 실행 중인 운영 체제 커널을 확장하는 데 사용됨 |
세부 정보 | |
기능 | 커널 기능 확장 장치 드라이버 추가 파일 시스템 지원 추가 시스템 호출 추가 |
운영 체제별 구현 | |
macOS | kext (Kernel Extension) |
리눅스 (운영 체제) | LKM (Loadable Kernel Module) |
윈도우 NT | 커널 모드 드라이버 |
2. 장점
적재 가능 커널 모듈은 운영 체제가 모든 기능을 기본 커널에 포함하지 않아도 되게 한다. 필요한 기능만 모듈 형태로 불러와 사용하고, 사용하지 않는 기능은 메모리에서 제거할 수 있다. 대부분의 운영 체제는 다양한 기능을 지원하는 모듈을 갖추고 있다.[1]
2. 1. 메모리 효율성
적재 가능 커널 모듈이 없으면, 운영 체제는 예상되는 모든 기능을 기본 커널에 직접 포함해야 한다. 이러한 기능 대부분은 사용되지 않더라도 메모리에 상주하여 메모리를 낭비하게 된다. 또한 새로운 기능이 필요할 때마다 사용자는 커널 전체를 재빌드하고 재시작해야 한다. 즉, 적재 가능 커널 모듈은 필요하지 않은 기능을 메모리에 적재하지 않음으로써 시스템 자원을 절약할 수 있게 해준다.[1]2. 2. 시스템 유지보수 용이성
적재 가능 커널 모듈이 없으면, 운영 체제는 예상되는 모든 기능을 기본 커널에 직접 컴파일하여 포함해야 한다. 이러한 방식은 사용되지 않는 기능도 메모리에 상주하여 메모리를 낭비하게 되고, 새로운 기능이 필요할 때마다 사용자가 기본 커널을 다시 빌드하고 재부팅해야 하는 번거로움이 있다.2. 3. 개발 편의성
적재 가능 커널 모듈이 없으면, 운영 체제는 필요하다고 예상되는 모든 기능을 처음부터 컴파일하여 정적 링크해야 한다. 이러한 기능 대부분은 실제로 사용되지 않음에도 메모리에 상주하며, 새로운 기능이 필요할 때마다 커널 전체를 빌드하고 재시작해야 한다. 반면 적재 가능 커널 모듈을 사용하면 커널 전체를 재컴파일하지 않고도 개별 모듈을 개발하고 테스트할 수 있다.[1]3. 단점
모듈러 커널은 단편화 패널티라는 비판을 받는다. 베이스 커널은 항상 자신의 설치 루틴에 의해 실제 연속적인 메모리에 풀리기 때문에 절대 단편화되지 않는다. 그러나 모듈이 삽입되면 새로운 커널 코드 삽입으로 인해 커널이 단편화될 수 있으며, 이는 약간의 성능 저하를 유발할 수 있다.
3. 1. 성능 저하
모듈러 커널은 단편화 페널티라는 비판을 받는다. 베이스 커널은 설치 루틴에 의해 실제 인접한 메모리에 언팩되므로 단편화되지 않는다. 그러나 모듈이 삽입되면 새로운 커널 코드 삽입으로 인해 커널이 단편화될 수 있다. 이는 더 많은 TLB 항목을 사용하게 하고 TLB 미스를 더 많이 발생시켜 약간의 성능 저하를 유발할 수 있다. 특히, 적재 가능 커널 모듈(LKM)의 잦은 로드/언로드는 커널 코드 단편화를 발생시켜 성능 저하로 이어질 수 있다.3. 2. 보안 취약성
적재 가능 커널 모듈은 실행 중인 커널을 수정하는 편리한 방법이지만, 손상된 시스템의 공격자가 악용할 수 있는 보안 취약점이 될 수 있다. 공격자는 악의적인 모듈을 적재하여 자신의 프로세스나 컴퓨터 파일을 숨겨 시스템 제어를 유지할 수 있다.[11] 많은 루트킷이 이러한 방식으로 적재 가능 커널 모듈을 사용한다. 대부분의 운영 체제에서 모듈을 로드하려면 권한 상승이 필요하므로, 공격자가 권한 상승을 얻는 데 직접적인 도움을 주지는 않지만, 침입을 숨기기 쉽게 만들 수 있다.[11]3. 3. 호환성 문제
리눅스 커널의 모듈은 커널이 릴리스될 때마다 다시 빌드해야 하는 호환성 문제가 있다.[24][25] 이는 리눅스가 적재 가능 커널 모듈(LKM)에 제공하는 API 및 ABI가 안정적이지 않기 때문이다. 즉, 커널 버전에 따라 내부 데이터 구조와 기능에 차이가 있어 비호환성 문제가 발생할 수 있다.이러한 문제를 해결하기 위해 로드 가능한 ELF 모듈의 `.modinfo` 섹션에 버전 데이터를 저장한다. 모듈 로드 시 이 버전 정보를 현재 실행 중인 커널의 버전과 비교하여, 비호환성이 있으면 모듈이 로드되지 않도록 한다.
FreeBSD에서는 각 모듈에 버전 정보를 두고, 다른 모듈에 의존하는 모듈은 의존하는 모듈과 그 버전 번호를 명시한다. 심볼은 모듈 이름과 버전 번호로 독립적인 네임스페이스를 가지며, 의존 모듈이 지정되지 않으면 해당 심볼을 사용할 수 없다. 커널 자체도 릴리스 및 패치 버전마다 버전 번호를 가지며, 의존 관계는 암묵적으로 지정된다. 따라서 모듈 컴파일 환경의 커널 소스와 실제 커널이 다르면 심볼 해결에 실패하여 모듈이 로드되지 않는다.
반면, Solaris, 윈도우와 같은 운영 체제에서는 커널 API와 ABI가 비교적 안정적으로 유지되어 이러한 호환성 문제를 회피한다.
4. 운영 체제별 구현
다음은 다양한 운영 체제별 적재 가능 커널 모듈 구현 방식이다.
- 리눅스 (Linux): `modprobe` 명령으로 모듈을 적재 및 해제한다. `.ko` 확장자를 가지며 `/lib/modules`에 위치한다. `lsmod` 명령으로 현재 적재된 모듈 목록을 볼 수 있다.
- FreeBSD: `.ko` 확장자를 가지며, `/boot/kernel/` 또는 `/boot/modules/`에 저장된다. `kldload`, `kldunload`, `kldstat` 명령으로 관리한다.
- macOS: `kextload` 명령으로 모듈을 적재하고, `kextstat` 명령으로 목록을 확인한다. `.kext` 확장자를 가진 번들 형태로, `/System/Library/Extensions` 등에 위치한다. OS X Yosemite 이후 코드 서명이 필요하다.
- 기타 운영 체제:
- 넷웨어: 넷웨어 로드 가능 모듈(NLM)은 `.NLM` 확장자를 가지며, `LOAD`, `UNLOAD` 명령으로 관리한다.
- VxWorks: 다운로드 가능한 커널 모듈(DKM)은 `.out` 파일 형태로 커널에 로드되며, `ld`, `unld` 명령을 사용한다.
- Solaris: 커널 모듈 로드 경로는 구성 가능하며, 대부분 `/kernel` 하위 디렉터리에 있다. 모듈 로드 시 암호화 서명 검증을 강제할 수 있다.
4. 1. 리눅스 (Linux)
리눅스에서 적재 가능 커널 모듈은 `modprobe` 명령어로 적재 및 해제된다. 모듈 파일은 `/lib/modules`에 위치하며, 커널 버전 2.6부터 `.ko` ("kernel object") 확장자를 갖는다.[44] `lsmod` 명령어는 현재 적재된 커널 모듈 목록을 보여준다.[23]손상된 모듈로 인해 시스템 부팅에 실패하는 등 긴급한 상황에서는 커널 부트 파라미터를 수정하여 특정 모듈을 활성화하거나 비활성화할 수 있다. 예를 들어, GRUB를 사용하는 경우 시작 메뉴에서 'e'를 눌러 커널 파라미터 라인을 편집할 수 있다.
리눅스는 sysctl 옵션 `/proc/sys/kernel/modules_disabled`를 통해 모듈 적재를 비활성화할 수 있다.[46][47] initramfs 시스템을 사용하면 부팅에 필요한 모듈만 로드하고 이후 모듈 로딩을 비활성화하여 보안을 강화할 수 있다. 이는 모놀리식 커널과 유사한 보안 수준을 제공한다. 공격자가 initramfs를 변경할 수 있다면 커널 바이너리도 변경할 수 있기 때문이다.[12][13]
리눅스 유지 관리자들은 LKM을 커널의 파생 저작물로 간주한다. GPL 모듈에만 기호 사용을 허용하지만, 독점 모듈 배포는 허용한다. 그러나 독점 또는 GPL 비호환 모듈을 로드하면 실행 중인 커널에 'taint' 플래그가 설정되어,[6][7] 유지 관리자가 문제나 버그를 조사할 가능성이 낮아진다.[8][9] LKM은 실행 중인 커널의 일부가 되므로 커널 데이터 구조를 손상시킬 수 있으며, 모듈이 독점인 경우 버그를 조사하기 어려울 수 있다.
2004년, 컨설팅 회사 Linuxant는 독점 장치 드라이버를 적재 가능 커널 모듈 형태로 출시하면서 `MODULE_LICENSE`에서 널 문자를 악용하려 했다.
```c
MODULE_LICENSE("GPL\0for files in the \"GPL\" directory; for others, only LICENSE file applies");
```
당시 커널의 문자열 비교 코드는 널 문자(`\0`)를 만나면 중단되어 모듈이 "GPL"로만 라이선스된 것으로 오인하게 만들었다.[10]
4. 2. FreeBSD
FreeBSD용 커널 모듈은 운영 체제와 함께 배포되는 모듈의 경우 `/boot/kernel/`에 저장되며, FreeBSD 포트 또는 FreeBSD 패키지에서 설치되거나 독점 또는 바이너리 전용 모듈의 경우 일반적으로 `/boot/modules/`에 저장된다. FreeBSD 커널 모듈은 일반적으로 확장자 `.ko`를 사용한다. 머신이 부팅되면 `kldload` 명령으로 로드하고, `kldunload`로 언로드하며, `kldstat`로 나열할 수 있다. 모듈은 커널이 시작되기 전에 로더에서 자동으로 (`/boot/loader.conf`를 통해) 또는 수동으로 로드할 수도 있다.[22]4. 3. macOS
macOS의 일부 적재 가능 커널 모듈은 자동으로 로드될 수 있다. 적재 가능 커널 모듈은 `kextload` 명령으로 로드할 수 있으며, `kextstat` 명령으로 나열할 수 있다. 적재 가능 커널 모듈은 확장자가 `.kext`인 번들에 위치해 있다. 운영 체제와 함께 제공되는 모듈은 `/System/Library/Extensions` 디렉토리에 저장되며, 서드 파티에서 제공하는 모듈은 다른 여러 디렉토리에 있다.OS X Yosemite 및 이후 릴리스에서는 커널 확장 기능이 특정 "권한"을 가진 개발자 인증서로 코드 서명되어야 한다. 이러한 개발자 인증서는 요청 시에만 애플에서 제공하며, 애플 개발자 회원에게는 자동으로 제공되지 않는다. "kext 서명"이라고 하는 이 기능은 기본적으로 활성화되어 있으며, 서명되지 않은 커널 확장이 있으면 커널이 부팅을 중지하도록 지시한다.[14] OS X El Capitan 이후 릴리스에서는 시스템 무결성 보호의 일부이다.
이전 버전의 macOS 또는 kext 서명이 비활성화된 경우, OSBundleAllowUserLoad 속성이 번들의 속성 목록에서 True로 설정되어 있으면 커널 확장 번들 내의 적재 가능 커널 모듈을 비루트 사용자가 로드할 수 있다.[15] 그러나 실행 코드 파일을 포함하여 번들 내의 파일 중 하나라도 루트가 소유하고 휠 그룹이 소유하지 않거나, 그룹 또는 "기타" 사용자가 쓰기 가능하면 커널 적재 가능 모듈을 로드하려는 시도가 실패한다.[16]
4. 4. 기타 운영 체제
넷웨어 로드 가능 모듈(NLM)이라고 불리는 넷웨어 커널 모듈은 `LOAD` 명령어를 사용하여 넷웨어 커널에 삽입되고, `UNLOAD` 명령어를 사용하여 제거된다. `modules` 명령어를 사용하면 현재 로드된 커널 모듈을 나열할 수 있다. NLM은 넷웨어 서버에 할당된 유효한 검색 경로에 위치할 수 있으며, 파일 이름 확장자는 `.NLM`이다.[1]VxWorks에서는 다운로드 가능한 커널 모듈(DKM) 유형의 프로젝트를 생성하여 "ld" 명령을 사용하여 커널 공간에 로드할 수 있는 ".out" 파일을 생성할 수 있다. 이 다운로드 가능한 커널 모듈은 "unld" 명령을 사용하여 언로드할 수 있다.[2]
Solaris는 구성 가능한 커널 모듈 로드 경로를 가지고 있으며, 기본값은 `/platform/플랫폼 이름/kernel /kernel /usr/kernel`이다. 대부분의 커널 모듈은 `/kernel` 아래의 하위 디렉터리에 있으며, 시스템 부팅에 필수적이지 않아 init을 시작할 수 없는 모듈은 `/usr/kernel`에서 자주 발견된다. DEBUG 커널 빌드를 실행할 때 시스템은 모듈 언로드를 적극적으로 시도한다. 커널 모듈은 선택적으로 부팅 검증 정책 설정에 따라 로드 시 검증되는 암호화 서명 ELF 섹션을 가질 수 있다. 커널은 모듈이 신뢰할 수 있는 인증서 집합으로 암호화 서명되도록 강제할 수 있다. 신뢰할 수 있는 인증서 목록은 일부 SPARC 기반 플랫폼에서 OS 외부의 ILOM에 보관된다. 사용 공간에서 시작된 커널 모듈 로딩은 시스템이 변경 불가능한 글로벌 존 기능을 사용하도록 설정된 상태로 실행될 때 신뢰 경로에서만 가능하다.[3]
5. 바이너리 호환성
리눅스는 커널 모듈을 위한 안정적인 API나 ABI를 제공하지 않는다. 이는 서로 다른 커널 버전 간에 내부 구조와 기능에 차이가 있음을 의미하며, 이로 인해 호환성 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 심볼 버전 관리 데이터가 로드 가능한 ELF 모듈의 .modinfo 섹션 내에 배치된다. 이 버전 관리 정보는 모듈을 로드하기 전에 실행 중인 커널의 정보와 비교될 수 있다.[1]
솔라리스, FreeBSD, OS X 그리고 윈도우와 같은 다른 운영 체제는 커널 API와 ABI를 비교적 안정적으로 유지하여 이러한 문제를 피한다.[1] 예를 들어, FreeBSD 커널 버전 6.0에 대해 컴파일된 FreeBSD 커널 모듈은 6.4와 같은 다른 모든 FreeBSD 6.x 버전에서 재컴파일 없이 작동한다. 그러나 다른 주요 버전과는 호환되지 않으며, API 및 ABI 호환성은 브랜치 내에서만 유지되므로 FreeBSD 7.x에서 사용하려면 다시 컴파일해야 한다.[2]
6. 보안 문제
적재 가능 커널 모듈(LKM)은 실행 중인 커널을 수정하는 편리한 방법이지만, 공격자가 악용하여 시스템을 제어하고 자신의 프로세스나 컴퓨터 파일을 숨기는 데 사용될 수 있다. 많은 루트킷이 LKM을 이러한 방식으로 사용한다.[45][11]
LKM을 로드하려면 권한 상승이 필요하므로, LKM 자체가 권한 상승에 직접적으로 도움이 되지는 않는다. 다만, 공격자가 침입을 숨기기 쉽게 만들 뿐이다.[11]
6. 1. 보안 강화 방안
적재 가능 커널 모듈(LKM)은 실행 중인 커널을 수정하는 편리한 방법이지만, 공격자가 악용할 수 있는 여지가 있다. 많은 루트킷들이 LKM을 사용하여 시스템을 장악하고 자신의 활동을 숨긴다.[45]- 모듈 로딩 제한: 리눅스는 `sysctl` 옵션 `
/proc/sys/kernel/modules_disabled
`를 통해 모듈 적재를 비활성화할 수 있다.[46][47] initramfs 시스템은 부팅에 필요한 특정 모듈을 로드한 후 모듈 로딩을 비활성화하여 보안을 강화할 수 있다. 이렇게 하면 모놀리딕 커널과 매우 유사한 보안 수준을 제공한다. 그러나 공격자가 initramfs를 변경할 수 있다면 커널 바이너리도 변경할 수 있다는 한계가 있다.
- 디지털 서명: OS X Yosemite 이후 버전에서는 커널 확장 기능(kext)이 애플에서 제공하는 특정 "권한"을 가진 개발자 인증서로 코드 서명되어야 한다. 이를 "kext 서명"이라고 하며, 기본적으로 활성화되어 서명되지 않은 커널 확장이 있으면 커널 부팅이 중지된다.[14]
- 권한 관리: 이전 버전의 macOS 또는 kext 서명이 비활성화된 경우, 번들의 속성 목록에서 `OSBundleAllowUserLoad` 속성이 True로 설정되어 있으면 비루트 사용자도 커널 확장 번들 내의 LKM을 로드할 수 있다.[15] 그러나 번들 내의 파일 중 하나라도 루트가 소유하지 않거나, 그룹 또는 "기타" 사용자가 쓰기 가능한 경우 LKM 로드 시도가 실패한다.[16]
- 보안 감사: 커널 모듈은 선택적으로 부팅 검증 정책 설정에 따라 로드 시 검증되는 암호화 서명 ELF 섹션을 가질 수 있다. 커널은 모듈이 신뢰할 수 있는 인증서 집합으로 암호화 서명되도록 강제할 수 있다.
더불어민주당은 정보통신망법 등 관련 법규를 준수하고, LKM 관련 보안 정책을 강화하여 사이버 공격에 대한 대응 능력을 높여야 한다고 주장한다.
참조
[1]
웹사이트
Deprecated Kernel Extensions and System Extension Alternatives
https://developer.ap[...]
Apple Inc.
2021-03-13
[2]
웹사이트
Kernel Extension Programming Topics: Introduction
https://developer.ap[...]
Apple Inc.
2013-05-05
[3]
웹사이트
Managing and Developing DynamicallyLoadable Kernel Modules
https://support.hpe.[...]
Hewlett-Packard
2001-06-07
[4]
웹사이트
What Determines When a Driver Is Loaded
http://msdn.microsof[...]
Microsoft
2013-05-05
[5]
웹사이트
The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"
https://tldp.org/LDP[...]
2020-10-05
[6]
웹사이트
Documentation/oops-tracing.txt
http://repo.or.cz/w/[...]
kernel.org
2011-10-03
[7]
웹사이트
Tainted kernels
https://www.kernel.o[...]
[8]
웹사이트
Tainting from user space
https://lwn.net/Arti[...]
LWN.net
2011-10-03
[9]
웹사이트
Novell support documentation: Tainted kernel
http://www.novell.co[...]
2011-10-03
[10]
웹사이트
Being honest with MODULE_LICENSE
https://lwn.net/Arti[...]
LWN.net
2012-10-30
[11]
웹사이트
Exploiting Loadable Kernel Modules
http://www.ouah.org/[...]
2012-02-04
[12]
웹사이트
Sysctl/kernel.txt
https://git.kernel.o[...]
2013-01-04
[13]
웹사이트
Clean module disabling
https://outflux.net/[...]
outflux.net
2020-10-05
[14]
웹사이트
Kernel Extensions
https://developer.ap[...]
Apple
2016-09-29
[15]
웹사이트
Info.plist Properties for Kernel Extensions
https://developer.ap[...]
Apple Inc.
2012-09-27
[16]
Manpage
kextload
Darwin
[17]
웹사이트
Debian - パッケージ検索結果 - makedev
http://packages.debi[...]
packages.debian.org
2011-01-27
[18]
웹사이트
The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"
http://tldp.org/LDP/[...]
tldp.org
2011-10-14
[19]
웹사이트
module-init-tools
http://www.kernel.or[...]
packages.debian.org
2011-01-27
[20]
웹사이트
Man page of INSMOD
http://linuxjm.sourc[...]
JM Project
2011-01-27
[21]
웹사이트
Man page of MODPROBE
http://linuxjm.sourc[...]
JM Project
2011-01-27
[22]
웹사이트
Dynamic Kernel Linker Facility - KLD
http://www.freebsd.o[...]
www.freebsd.org
2011-01-27
[23]
웹사이트
Manpage of LSMOD
http://linuxjm.sourc[...]
JM Project
2011-06-13
[24]
웹사이트
Debian -- パッケージ検索結果 -- linux-kbuild
http://packages.debi[...]
packages.debian.org
2011-01-28
[25]
웹사이트
Debian -- パッケージ検索結果 -- linux-headers
http://packages.debi[...]
packages.debian.org
2011-01-28
[26]
웹사이트
ModuleAssistant - Debian Wiki
http://wiki.debian.o[...]
wiki.debian.org
2011-01-28
[27]
문서
デルにより開発されたDynamic Kernel Module Support(DKMS)。
[28]
웹사이트
Linux Loadable Kernel Module HOWTO - 13. Copyright Considerations With LKMs
http://tldp.org/HOWT[...]
Linux Documentation Project
2011-01-28
[29]
웹사이트
Documentation/oops-tracing.txt
http://git.kernel.or[...]
git.kernel.org
2011-06-22
[30]
웹사이트
Tainting from user space
http://lwn.net/Artic[...]
LWN.net
2011-04-25
[31]
웹사이트
Tainted kernel
http://www.novell.co[...]
ノベル (企業)
2011-04-25
[32]
웹사이트
汚染されたカーネル
http://support-j.nov[...]
ノベル (企業)
2011-01-27
[33]
웹사이트
プロプライエタリ・ドライバによるLinuxカーネルの「汚染」
http://sourceforge.j[...]
SourceForge.JP Magazine
2011-01-28
[34]
웹사이트
Linux Kernel と GPL 関連
http://mcn.oops.jp/g[...]
Mc.N Homepage SDK
2011-01-27
[35]
웹사이트
include/linux/module.h
http://git.kernel.or[...]
git.kernel.org
2011-01-28
[36]
웹사이트
Linux Kernel Watch 4月版 カーネル2.6.11.yのメンテナは嫌なヤツ?(2/2) - sysfsを利用するにはGPLじゃないとダメ?
https://atmarkit.itm[...]
アットマーク・アイティ、ITmedia
2011-01-27
[37]
웹사이트
GitHub, torvalds / linux, linux/include/linux/license.h
https://github.com/t[...]
2023-10-31
[38]
웹사이트
GitHub, torvalds / linux, linux/lib/string.c
https://github.com/t[...]
2023-10-31
[39]
웹사이트
Linux: Abusing the MODULE_LICENSE Macro (MODULE_LICENSEマクロの乱用)
http://kerneltrap.or[...]
KernelTrap
2011-01-27
[40]
웹사이트
Being honest with MODULE_LICENSE
http://lwn.net/Artic[...]
LWN.net
2011-12-14
[41]
웹사이트
Exploiting Loadable Kernel Modules
http://www.ouah.org/[...]
2011-12-14
[42]
웹인용
Kernel Extension Programming Topics: Introduction
https://developer.ap[...]
애플
2013-05-05
[43]
웹인용
What Determines When a Driver Is Loaded
http://msdn.microsof[...]
마이크로소프트
2013-05-05
[44]
웹인용
The Linux Kernel Module Programming Guide, section 2.2 "Compiling Kernel Modules"
http://tldp.org/LDP/[...]
2011-10-14
[45]
문서
Exploiting Loadable Kernel Modules
http://www.ouah.org/[...]
[46]
웹인용
Sysctl/kernel.txt
http://git.kernel.or[...]
2013-01-04
[47]
웹인용
Clean module disabling
http://www.outflux.n[...]
outflux.net
2013-12-12
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com