피드로 돌아가기
Hacker NewsInfrastructure
원문 읽기
ARM64 Assembly 기반 libc-free 정적 웹 서버 구현
Show HN: Building a web server in assembly to give my life (a lack of) meaning
AI 요약
Context
표준 라이브러리(libc) 의존성을 완전히 제거한 최저 수준의 추상화 계층 구현을 목표로 함. MacOS ARM64 환경에서 syscall을 직접 제어하여 OS 커널과 애플리케이션 간의 오버헤드를 최소화한 시스템 설계.
Technical Solution
- Fork-per-connection 모델 채택을 통한 단순 요청 처리 구조 설계
- syscall-only 아키텍처 구현으로 libc 런타임 오버헤드 및 의존성 완전 제거
- Atomic PUT 구현을 위해 임시 파일 생성 후 renameatx_np()를 통한 데이터 무결성 보장
- O_NOFOLLOW_ANY 및 PATH_MAX 기반 검증을 통한 Path Traversal 공격 및 심볼릭 링크 취약점 방어
- 10초 타임아웃 설정 및 요청 경로 길이 제한을 통한 Slowloris DoS 공격 완화
- sa_tramp 필드를 직접 활용한 시그널 핸들러 설계로 libc 트램펄린 과정 생략
실천 포인트
1. Path Traversal 방지를 위해 입력 경로의 '..' 패턴 차단 및 루트 디렉토리 강제 접두어 부여 검토
2. 파일 업로드 시 원자성(Atomicity) 확보를 위해 임시 파일 작성 후 Rename 방식 적용
3. DoS 방어를 위해 헤더 수신 및 전체 요청 처리 시간에 대한 엄격한 타임아웃 설정