selinux
created : 2022-09-02T20:23:50+00:00
modified : 2022-09-02T20:44:54+00:00
공부 계기
- nerdctl 에 최근 기여하게 되면서 issue를 유심히 보게되었는데 selinux 관련 주제로 불타서 대충 개념만 알고 있었는데, 구현레벨에서 이걸 어떻게 하는지를 전혀 모르고 있다는 것을 알게 되었다.
개념
- Security Enhanced Linux
- 상태나 생긴 이유나 이런건 다른 곳에도 많이 나와있으므로 스킵
- 구현과 동작 방식:
- Kernel space 에 Security Policy 와 AVC(Access Vector Cache) 가 있다.
- 이를 통해서 유저레벨에서 뿐만 아니라 추가적으로 관리를 한다.
- 동작하는 코드는 아래 순서로 보면 쉽다.:
- 결론적으로 말하면 SELinux 를 쓰면 성능이 감소한다는 이야기는 어느정도 사실이다. hook 을 걸어 추가 로직을 동작시키는 방식이니까, 하지만 진짜 그렇게 떨어지나 보기는 조금 어렵다.:
- phoronix-Fedora 23 SELinux Impact 자료를 보면 유의미하게 떨어진다고 보기 어려운 결과가 나온다. 저정도 성능감소 때문에 서버에서 SELinux 를 못킨다? c, rust 말고는 어플리케이션 금지하는건가? 그게 훨씬 유의미 하지 않나? 이런 생각이 들거 같다.
- 뭐 이것저것 추가적인 권한제어 로직이 있는거니 작업하기 번거롭기는 할 것 같다.
- 아직 이해하지 못한 부분:
- containers/container-selinux github 를 통해서 container selinux 를 관리하는 것 같은데, 어떻게 여기 레포에 추가되면 SELinux Policy 에 추가되는거지? 라는 의문이 있다. 컨테이너는 공부하면 할수록 신기하기만 하다.