Logic in Code,
Freedom in Travel.

인생 뭐 있나 사람 사는거 다 똑같지

실무 경험/실무 개발 & 협업

실무 경험/실무 개발 & 협업

CVE-2026-31431 "Copy Fail": 732바이트 파이썬으로 리눅스 루트 탈취 이슈

TL;DR: 2017년에 심어진 커널 크립토 최적화 코드 한 줄이 로컬 권한 탈취(LPE)로 이어지는 취약점이 터졌다. PoC는 이미 공개됐고, 732바이트짜리 Python 스크립트 하나로 Ubuntu/RHEL/Amazon Linux/SUSE 전부 루트 탈취가 가능하다.1. 배경과 문제: "계정 비밀번호 백도어, 커널 업데이트는 리스크가 크다."우리 서버는 OVH 베어메탈 위에서 동작하는 온프레미스 환경이다. 어느 날 모니터링 채널에 CVE 하나가 올라왔다.CVE-2026-31431, 일명 "Copy Fail" 이며 영향받는 배포판은 Ubuntu/Amazon Linux/RHEL/SUSE 인데 사실상 웬만한 서버에 설치되어 있는 리눅스 전부이다.문제는 커널 업데이트를 바로 실행하기에는 애매한 상황이었다. ..

2026. 5. 4. 14:29
실무 경험/실무 개발 & 협업

IDC 베어메탈 + Docker Swarm 복합 장애 살려내기

이슈팀장님과 같은 버스를 타고 지하철에서 갈라졌는데, 서비스 장애 모니터링 슬랙 채널에서 알림이 쏟아지기 시작했다.핸드폰으로 빠르게 영향 범위(Blast Radius) 를 파악했다. 다행히 장애 도메인은 예상보다 작았다. 웹서버 티어(Tier)와 해당 DB 인스턴스에만 국한되었고, 권위 네임서버(Authoritative DNS)와 기타 부가 서비스들은 정상 응답을 유지하고 있었다. 장애 인지까지 MTTD(Mean Time To Detect) 약 3~5분 모니터링 시스템이 역할을 잘 해줘서 일찍 알았다. 용어Blast Radius (영향 범위): 장애가 실제로 영향을 미치는 시스템의 범위. 좁을수록 복구가 쉽다.MTTD (Mean Time To Detect): 장애가 발생한 시점부터 인지하는 데까지 걸린 ..

2026. 4. 14. 13:56
실무 경험/실무 개발 & 협업

[블록체인] - 솔라나 메인넷 노드, RPC 트러블슈팅

솔라나 메인넷 노드 서버를 운영하기 위해서는 하드웨어 스팩이 좋아야 한다.내가 관리하는 솔라나 서버는 Intel Xeon Gold 6442Y (48코어), 256GB RAM이라는 엄청난 스펙을 가지고 있지만 블록체인 노드의 지랄맞은 특성으로 인해 동기화 지연, Docker NAT 라우팅 문제, Nginx 포트 고갈(TIME_WAIT), I/O 최적화 과정까지 이슈가 있었다.트러블슈팅 1. 점점 멀어지는 블록 동기화노드를 설치하고 스냅샷을 다운받고 블록 동기화 진행 과정을 solana catchup 명령어로 모니터링을 하는데 블록이 점점 멀어졌다. 블록이 멀어진다는 것은 입금을 확인하는데 걸리는 시간이 지연되고, 출금도 지연되는 것이다. 즉 노드가 죽은거나 마찬가지였다. 조치 1: --only-known-..

2026. 4. 1. 16:19
실무 경험/실무 개발 & 협업

[트러블슈팅] - 유지보수가 중단된 클라이언트와의 TLS 핸드셰이크

"우리 서버는 요청이 잘 가는데요, 우리는 문제가 없어요" 라는 말은 조심스러워 해야 하는 말이다.구체적인 원인을 찾는데만 3개월이 걸린 이슈가 있었다.PG사(결제 대행사) 서버가 우리쪽 서버로 "완료" 통지(Webhook)를 보냈는데, 우리 서버에는 아무런 요청도, 로그도 남지 않는 현상이 있었다. PG사는 "너희 서버가 503(Service Unavailable)을 응답하고 있어"라고 주장했고, 나는 "Nginx, Apache 로그를 다 뒤져봐도 요청 온 흔적조차 없다" 고 응답했다. PG사의 웹훅 버그 가능성부터 /etc/hosts 설정을 통해 전혀 다른 IP로 DNS 캐싱이 되어 있는 것은 아닌지 의심했다. 하지만 PG사는 단순히 'curl' 요청 결과만을 근거로 문제가 없다는 답변만 반복할 뿐..

2026. 2. 2. 23:40
실무 경험/실무 개발 & 협업

휴먼에러를 방지하는 방법 1 - git add -p(git add partial (or patch)

우리가 커밋을 하고 코드를 push/merge 할 때에는 잘 동작하고 테스트도 잘 통과되었기 때문에 그랬을 것이다. 내가 서비스의 이해도가 깊고, 코드를 장악하고 있고, 테스트 커버리지가 100 이 나온다 하더라도 주의하고 침착해야 한다. 코드 한줄로 회사가 문을 닫을수도 있는게 개발자, 엔지니어로서의 책임이라 생각된다. 엔지니어의 책임으로서 꼭 알아야 할 1가지가 있다면 git add -p 이다.git add -p는 변경된 파일의 일부만 선택적으로 스테이지에 추가할 수 있도록 도와주는 기능이다. 전체 파일을 한 번에 커밋하지 않고, 필요한 부분만 선택해서 커밋하고 싶을 때 사용하며 매번 사용하는 습관을 들이면 좋다.습관을 들인다면 10년후 누군가 내 코드의 의도를 쉽게 파악하는데 도움이 된다. 누가 ..

2025. 4. 24. 00:14
실무 경험/실무 개발 & 협업

[블록체인] - Integer overflow 와 underflow

새로운 토큰을 상장하기 위해서는 스마트 컨트릭트(Smart Contract) 를 검토해야했다.해당 토큰이 어떤 로직으로 작동하며, 보안상 취약점이나 비정상적인 동작 가능성이 있는지를 스마트 컨트릭트를 통해 확인할 수 있다.그래서 새로운 토큰을 상장하기 위해서는 스마트 컨트릭트를 확인하고 특약이 필요한지 검토 후 계약을 해야한다. Smart Contract 검토 목적Contract 검토 내용Tokenomics 구조 파악 : 발행량, 공급량, 디플레이션 구조 등소유권(Ownership) 및 관리자 권한 : 특정 주소에 과도한 권한이 집중되어 있는지이벤트 및 트랜잭션 로그 확인: 정상적인 기록 구조가 있는지위험 로직 존재 여부 : 거래 중단, 밴 기능, 과도한 세금(Tax), 자동 유동성 이동 등네트워크별 차..

2025. 4. 21. 23:56