프로세스 스케줄링에서 CFS의 Weight 기반 공정성 실험

프로세스 스케줄링에서 CFS의 Weight 기반 공정성 실험 알아보기 프로세스 스케줄링은 운영체제의 핵심 기능 중 하나로, CPU와 같은 시스템 자원을 여러 프로세스에 효율적으로 할당하는 역할을 합니다. 특히 CFS (Completely Fair Scheduler)는 리눅스 운영체제에서 기본적으로 사용되는 스케줄러로, ‘완전한 공정성’을 목표로 설계되었습니다. CFS는 각 프로세스에 CPU 시간을 공정하게 분배하기 위해 Weight 기반의 스케줄링 방식을 사용합니다. 이 글에서는 CFS의 […]

커널 수준에서의 I/O 병목 진단: blk-mq와 io_uring 분석

커널 수준 I/O 병목 진단 blk-mq와 io_uring 분석: 성능 최적화를 위한 가이드 I/O(Input/Output) 병목 현상은 시스템 성능 저하의 주범 중 하나입니다. 특히 데이터베이스, 웹 서버, 빅데이터 처리 시스템 등 I/O 집약적인 애플리케이션에서는 더욱 심각한 문제가 될 수 있습니다. 이 글에서는 리눅스 커널 수준에서 I/O 병목을 진단하고 해결하는 데 사용되는 두 가지 핵심 기술인 blk-mq와 io_uring을 […]

seccomp 필터링을 통한 최소 권한 실행 환경 만들기

seccomp 필터링을 통한 최소 권한 실행 환경 구축 가이드 보안은 모든 소프트웨어 개발 및 운영의 핵심 요소입니다. 특히, 외부 입력을 처리하거나 네트워크에 연결된 프로그램은 보안 취약점에 노출될 위험이 높습니다. 이러한 위험을 완화하기 위한 효과적인 방법 중 하나가 바로 seccomp (Secure Computing Mode) 필터링을 이용한 최소 권한 실행 환경 구축입니다. seccomp란 무엇이며 왜 중요할까요? seccomp는 리눅스 […]

SSH Hardening Beyond Passwords: FIDO2 & Hardware Token 연동

SSH 보안 강화 패스워드 너머 FIDO2 & 하드웨어 토큰 연동 가이드 SSH(Secure Shell)는 서버에 안전하게 접속하고 관리하기 위한 필수적인 프로토콜입니다. 하지만 단순히 패스워드만을 사용하는 SSH는 무차별 대입 공격, 피싱, 키로깅 등 다양한 보안 위협에 취약합니다. 이러한 위협을 효과적으로 방어하기 위해 FIDO2와 하드웨어 토큰을 SSH 인증에 통합하는 것이 강력한 해결책이 될 수 있습니다. 이 가이드에서는 FIDO2와 […]

Auditd로 시스템 콜 수준 침입 감지 구축

Auditd 시스템 콜 수준 침입 감지 구축 가이드 시스템 보안은 끊임없이 진화하는 위협에 맞서 싸우는 지속적인 과정입니다. 침입 탐지 시스템(IDS)은 이러한 위협을 식별하고 대응하는 데 중요한 역할을 합니다. Auditd는 Linux 시스템에서 시스템 콜 수준의 활동을 감사하는 강력한 도구이며, 이를 활용하여 효과적인 침입 탐지 시스템을 구축할 수 있습니다. Auditd란 무엇인가 Auditd는 Linux 감사 시스템의 사용자 공간 […]

chroot와 namespace의 보안 경계가 실제로는 허물어지는 이유

chroot와 네임스페이스 보안 경계의 허점 파헤치기 chroot와 네임스페이스는 시스템 보안을 강화하기 위해 오랫동안 사용되어 온 기술입니다. 마치 컨테이너처럼 프로세스를 격리된 환경에 가두어, 만약 프로세스가 해킹당하더라도 전체 시스템에 대한 피해를 최소화하는 것이 목표입니다. 하지만 완벽한 보안은 존재하지 않듯, chroot와 네임스페이스 역시 완벽한 방어막은 아닙니다. 이 글에서는 왜 chroot와 네임스페이스가 완벽한 보안 경계를 제공하지 못하는지, 그리고 어떻게 […]

PAM(Pluggable Authentication Module)의 인증 흐름 역추적

PAM 인증 흐름 역추적, 왜 알아야 할까요? PAM, 즉 Pluggable Authentication Modules는 리눅스 시스템에서 사용자 인증을 처리하는 핵심 구성 요소입니다. 사용자가 로그인할 때, `sudo` 명령어를 사용할 때, 또는 다른 서비스에 접근할 때, PAM은 다양한 인증 방법을 통해 사용자를 확인합니다. PAM의 동작 방식을 이해하는 것은 시스템 보안을 강화하고 문제 해결 능력을 향상시키는 데 매우 중요합니다. 잘못된 […]

Linux Capabilities와 rootless 환경의 경계 실험

Linux Capabilities와 Rootless 환경 탐험: 보안과 유연성의 균형 리눅스 시스템 관리와 보안에 관심을 갖는 분이라면 Linux Capabilities와 Rootless 컨테이너라는 용어를 들어보셨을 겁니다. 이 두 가지 기술은 시스템 보안을 강화하고, 권한 상승 위험을 줄이며, 컨테이너 환경을 더욱 유연하게 만들어 줍니다. 이 글에서는 Linux Capabilities와 Rootless 환경에 대한 기본적인 이해를 돕고, 실제 활용 사례와 유용한 정보들을 제공하여 […]

SELinux 보안 정책을 커스텀 모듈 단위로 리빌드하기

SELinux 보안 정책 커스텀 모듈 리빌드 완벽 가이드 SELinux(Security-Enhanced Linux)는 리눅스 커널의 보안 모듈로서, 필수 접근 제어(MAC)를 구현하여 시스템의 보안을 강화합니다. 기본 SELinux 정책은 대부분의 환경에 적합하지만, 특정 애플리케이션이나 서비스의 요구 사항에 맞게 정책을 조정해야 하는 경우가 있습니다. 이때 커스텀 모듈을 활용하여 SELinux 정책을 확장하고 리빌드하는 방법을 배우는 것은 매우 중요합니다. SELinux 정책 커스터마이징, 왜 […]

Page Cache, Slab Allocator, 그리고 커널 메모리 압박의 역학

Page Cache, Slab Allocator, 커널 메모리 압박 이해하기 운영체제는 시스템의 모든 부분을 원활하게 작동시키기 위해 끊임없이 노력합니다. 그 중심에는 메모리 관리가 있으며, Page Cache와 Slab Allocator는 커널 메모리 압박을 완화하는 데 중요한 역할을 합니다. 이들은 파일 시스템 성능을 향상시키고 커널 내부 자료 구조를 효율적으로 관리하는 핵심 요소입니다. 이 글에서는 Page Cache, Slab Allocator, 그리고 커널 […]