피드로 돌아가기
GeekNewsSecurity
원문 읽기
Openrsync - OpenBSD 팀의 rsync 구현
OpenBSD 기반 rsync의 ISC 라이선스 재구현 및 보안 샌드박싱 강화
AI 요약
Context
기존 rsync의 GPL 라이선스 제약과 복잡한 프로세스 구조로 인한 유지보수 및 보안 관리의 한계 발생. 특히 최신 rsync 코드베이스의 회귀 버그 증가로 인해 신뢰할 수 있는 단순한 구현체의 필요성 대두.
Technical Solution
- Generator와 Receiver를 단일 프로세스로 통합하여 프로세스 간 통신 오버헤드 제거 및 이벤트 루프 기반의 읽기·쓰기 요청 처리 구조 설계
- OpenBSD의 pledge(2)와 unveil(2) 시스템 호출을 도입하여 실행 모드별 시스템 권한 제한 및 목적지 디렉터리 외 파일시스템 접근 원천 차단
- 보안성 강화를 위해 서버 모드의 MD4 해시 시드 생성 방식을 time(3)에서 arc4random(3)으로 변경하여 예측 가능성 제거
- 파일 크기와 수정 시간이 다른 경우 Adler-32(4바이트) 및 MD4(16바이트) 해시를 순차적으로 사용하는 계층적 데이터 검증 로직 구현
- 블록 크기를 파일 크기의 제곱근 기반 8의 배수 올림 처리 방식을 적용하여 전송 효율 최적화
- 타 OS 이식성을 위한 Glue Layer를 추가하되, OS별 보안 메커니즘 차이로 인해 보안 기능은 OpenBSD에서만 완전하게 보장하는 제약 조건 설정
실천 포인트
1. 프로세스 간 경계 제거를 통한 단일 프로세스 이벤트 루프 구조의 성능 이득 검토
2. 시스템 수준의 권한 제한(Sandbox)을 통해 취약점 노출 시 피해 범위를 최소화하는 보안 설계 적용
3. 해시 알고리즘 선택 시 빠른 체크섬(Adler-32)과 정밀한 체크섬(MD4)을 조합한 다단계 검증 전략 고려
4. 라이선스 제약 사항이 프로젝트 확장성에 미치는 영향을 분석하여 대체 구현체 검토