Samba 개발 과정: 프로토콜 역공학 기법
Source
Evernote/Technote scraps/Samba의 개발과정 KLDP.md
Summary
Andrew Tridgell 이 작성한 이 문서는 Samba 가 CIFS/SMB 프로토콜을 구현하기 위해 사용한 역공학 기법들을 설명합니다. 공개된 불완전한 명세서를 보완하기 위해 네 가지 주요 방법을 활용했습니다. 1) 공개된 초안 및 명세서 참조, 2) ‘프랑스 카페 기법’(정상 트래픽 스니핑 및 오류 상황 유발을 통한 반응 분석), 3) ‘프로토콜 스캐너’(자동화된 브루트포스 테스트를 통한 명령어 및 파라미터 탐색), 4) ‘차이 기법’(가상 서버와 실제 서버의 반응 비교를 통한 미지 프로토콜 규명). 이러한 방법론들은 12 년에 걸쳐 Samba 개발에 적용되었습니다.
Key Points
- Samba 개발은 공개된 CIFS/SMB 명세서(draft-leach-cifs-v1-spec-02 등)의 한계를 극복하기 위한 역공학에 기반함
- 프랑스 카페 기법: 네트워크 스니핑을 통해 정상 통신 패턴 학습 및 의도적인 오류 유발(예: 권한 없는 접근)을 통해 오류 코드 및 프로토콜 규칙 파악
- 프로토콜 스캐너: 가능한 모든 명령어 및 데이터 크기 조합을 자동으로 시도하여 서버의 반응을 분석하고 새로운 기능 발견
- 차이 기법: 구현된 가상 서버와 실제 Microsoft 서버의 응답 차이를 비교 분석하여 미해결 프로토콜 동작 규명
- 이러한 방법론들은 12 년 간의 Samba 개발 기간 동안 지속적으로 사용됨