NTP는 많은 서비스들의 효율성과 보안성을 위해 많이 쓰이는 핵심 인프라 기능입니다.
NTP는 이름과 같은 NTP와 이를 보다 단순하게 구현한 SNTP(Simple NTP)가 있습니다.
보안 회사인 Cure53은 이 중 오픈 소스로 이 프로토콜을 구현하고 있는 3 개의 서비스들의 보안성을 측정했다고 합니다.
그 3 개는 ntpd, NTPSec, chronyd 입니다.
ntpd는 최소 25년동안 사용된 기본적인 NTP 프로그램입니다.
또한 3 개의 프로그램중 제일 복잡하며 제일 많은 레거시 코드들을 내재하고 있습니다.
ntpd는 서로 다른 형식의 코드와 서로 다른 접근 방식의 코드들이 섞여서 작성되어 있습니다.
따라서 철저하게 검사하였다고 해도 갑자기 튀어나오는 문제를 전부 알아내기란 힘들 것입니다.
이미 말했듯 ntpd는 매우 복잡한 프로그램이며, 복잡성은 보안의 적입니다.
ntpd는 1 개의 심각한, 2개의 높은, 1 개의 보통, 8 개의 낮은 위험도의 취약점을 갖고 있습니다.
NTPSec은 ntpd의 포킹된 프로그램이며, 이 중 필요없는 많은 기능들을 걷어내고
사용하는 코드들도 대부분 리팩토링되었습니다. 이미 걷어낸 코드만 ntpd 코드의 75%가 됩니다.
아직 NTPSec은 프로젝트가 시작된지 얼마 안됐으며, 첫 메이저 버전도 나오지 않은 상태입니다.
그래서 높은 기대를 갖게 되지만, 또한 보안적으로 염려되는 부분이 아직 존재하고 있습니다.
NTPSec은 3 개의 높은, 1 개의 중간, 3 개의 낮은 위험도의 취약점을 갖고 있습니다.
chronyd는 NTPSec과는 다르게 스크래치부터 개발되었으며,
NTPv4 프로토콜을 서버 및 클라이언트 모드가 가능하도록 개발되었습니다.
또한 stratum1 인 서버로 운영할 수도 있으며,
도중에 통신이 안되거나, 매우 혼잡한 네트워크, 항상 운영되지 않거나(노트북같은), 가상 머신에서 돌아가는 등의
매우 까다로운 네트워크 조건의 환경하에서도 정상 작동할 수 있도록 설계되었습니다.
chronyd는 보안 검사를 의뢰한 사람도 놀라게 할 정도로 보안적인 흠결이 거의 없었습니다.
Cure53의 보안 검사자에 의하면 chronyd는 매우 견고하며, 강하고, 보안을 염두에 둔 프로그램임을 알 수 있었다고 합니다.
일반적으로도 프로그램은 잘 설계되어 있으며 적절한 위치에서 적절하게 추상화되어 있다고 합니다.
프로그램의 사용 범위는 매우 넓게 설계되어 있지만, 실제 프로그램 구현은 우아하며 필요최소한의 복잡성만을 갖고 있습니다.
chronyd는 매우 견고하며 믿을 수 있는 프로그램이라고 평합니다.
단 2 개의 낮은 위험도의 취약점을 갖고 있습니다.
각 NTP 구현 소프트웨어들의 취약점의 갯수는 위의 차트를 이용하여 비교할 수 있으며,
전체 보고서는 출처를 통해서 확인할 수 있습니다.
이젠 뭐만하면 NTR이라고 읽게되네 ;;
이젠 뭐만하면 NTR이라고 읽게되네 ;;
이젠 뭐만하면 NTR이라고 읽게되네 ;; (2)
RHEL7이나 CENTOS7부터는 크로니가 기본설치되던....(NTP도 안깔리는 건 아니지만...) 뭔가 이유가 있겠거니....하고 크로니로 바꿧는데 앞으로도 써봐야겠군요.
씹덕들 개극혐 그냥 본인들만 생각하고 있으면 되는걸 꼭 댓글로 싸질러요