linux2019. 10. 15. 12:07

linux version 4.9.x 아래에 추가된 kernel config 인해, snd copy에서 panic 발생함.

우선 disable 시키면 해당 현상은 사라진다

 

security 관련 enhancement 같은데, copy_to_user, copy_from_user를 사용하면 회피할 수 있을 것으로 기대된다.

 

CONFIG_CPU_SW_DOMAIN_PAN: Enable use of CPU domains to implement privileged no-access

 

추가로 구글 사이트를 검색해보면 Kernel Hardening 항목에 설명이 되어있다.

 

PAN emulation (Privileged Access Never)을 위의 config를 통해 활성화 한다.

아래의 본문의 내용은 간단히 말해서 kernel area에서 memcpy를 사용하지 말라는 의미이며 이는 기존 코드의 동작에서 kernel panic이 발생할 수 있음을 암시한다.

 

memcpy -> copy_to_user/copy_from_user 로 변경 필요하다.

 

 

본문: 

PAN emulation exposes direct user space access from the kernel, which is not allowed. 
Drivers attempting to access user space memory need to be changed to use the standard 
copy_to_user()/copy_from_user() functions instead.

 

 

최종 결과 :

PAN emulation enable 이후, 아래와 같이 변경 시 동작 가능하다.

memcpy 자체를 모두 disallow 하는 것은 아니고, user <-> kernel space 간의 direct copy를 disable 하는 것

 

usage : 

copy from kernel space memory to kernel space memory -> memcpy 

copy from user space memory to kernel space memory -> copy_from_user 

copy from kernel space memory to user space memory -> copy_to_user

 

출처:

https://cateee.net/lkddb/web-lkddb/CPU_SW_DOMAIN_PAN.html

https://source.android.com/devices/architecture/kernel/hardening

https://android-developers.googleblog.com/2017/08/hardening-kernel-in-android-oreo.html

'linux' 카테고리의 다른 글

timer example  (0) 2021.07.08
Network interface Restart 시 주의 사항  (0) 2019.11.21
Overview NEC protocol  (0) 2019.06.28
scp 사용법  (0) 2019.06.21
git commit/ clone 관련 tip  (0) 2019.06.13
Posted by easy16