ARMv8 AArch64 어셈블리 입문 가이드

C 코드를 gcc -S로 컴파일해 어셈블리 출력을 구경해본 적은 있어도, 처음부터 어셈블리만으로 프로그램을 짜서 빌드하고 실행해본 경험은 드물다. 하지만 커널의 부팅 초기 코드, 예외/인터럽트 벡터 핸들러, 컨텍스트 스위칭처럼 C로는 표현할…

Continue ReadingARMv8 AArch64 어셈블리 입문 가이드

bpftrace로 리눅스 시스템 콜과 지연시간 디버깅하기

특정 프로세스가 어떤 시스템 콜을 얼마나 자주 호출하는지, 혹은 파일 하나를 여는 데 왜 갑자기 수십 밀리초가 걸리는지 알아내야 할 때 strace부터 떠올리기 쉽다. 하지만 strace는 매 시스템 콜마다 대상…

Continue Readingbpftrace로 리눅스 시스템 콜과 지연시간 디버깅하기

‘GhostLock'(CVE-2026-43499): 15년 묵은 리눅스 커널 rtmutex 버그가 root와 컨테이너를 함께 내준 이유

리눅스 커널의 rtmutex(real-time mutex)는 스레드 간 우선순위 역전을 막기 위한 priority inheritance 로직을 담고 있는, 십수 년 넘게 손댈 일이 거의 없던 오래된 락(lock) 서브시스템입니다. 그런데 2026년 7월, 바로 이…

Continue Reading‘GhostLock'(CVE-2026-43499): 15년 묵은 리눅스 커널 rtmutex 버그가 root와 컨테이너를 함께 내준 이유

Ubuntu 커널 파라미터(sysctl) 튜닝으로 서버 성능 최적화하기

동시접속이 많은 웹 서버나 DB 서버를 운영하다 보면 애플리케이션 코드에는 문제가 없는데도 특정 부하 구간에서 연결이 끊기거나 응답이 느려지는 상황을 만난다. 원인을 따라가 보면 애플리케이션이 아니라 커널 기본값이 병목인 경우가…

Continue ReadingUbuntu 커널 파라미터(sysctl) 튜닝으로 서버 성능 최적화하기

‘한 글자’ 취약점(CVE-2026-23111): nf_tables use-after-free가 만든 리눅스 로컬 루트 권한상승

리눅스 커널의 패킷 필터링 서브시스템 nf_tables(넷필터)에서 발견된 CVE-2026-23111은 권한 없는 로컬 사용자가 root 권한을 얻을 수 있는 use-after-free 취약점입니다. 더 놀라운 점은 이 버그의 원인이 코드 한 글자, 정확히는 논리…

Continue Reading‘한 글자’ 취약점(CVE-2026-23111): nf_tables use-after-free가 만든 리눅스 로컬 루트 권한상승

Python asyncio로 비동기 시스템 모니터링 구현하기

서버 여러 대의 상태를 순차적으로 점검하는 스크립트를 짜본 적이 있다면 익숙한 문제가 있다. 호스트 10대를 ping으로 확인하는 데 각각 1초가 걸린다면, for 루프로 하나씩 처리할 경우 전체 실행 시간은 10초에…

Continue ReadingPython asyncio로 비동기 시스템 모니터링 구현하기