Software Engineering Institute (한국어)

NTP 작동 방식

Segal의 법칙

시계를 가진 사람은 현재 시간을 알고 있습니다. . 시계가 두 개인 사람은 확신 할 수 없습니다.

컴퓨터 과학자 David L. Mills는 1980 년대 초 컴퓨터 시계를 표준 시간 기준과 동기화하기 위해 NTP를 만들었습니다. NTP가 시작된 이래로 자원 봉사자 그룹은 NTP 풀 프로젝트는 많은 Linux 배포판 및 네트워크 어플라이언스에 대해 전 세계적으로 공개적으로 사용할 수있는 대규모 “수백만 명의 클라이언트에게 NTP 서비스를 사용하기 쉽고 안정적인 NTP 서비스를 제공하는 가상 시간 서버 클러스터”를 유지했습니다.

NTP에 자세히 설명되어 있습니다. .org에서 NTP는 한 계층에서 다른 계층으로 시간을 전달하여 계층 적 방식으로 작동합니다. 예를 들어 Stratum 0은 기준 시계 역할을하며 가장 정확하고 정밀한 시간 서버입니다 (예 : 원자 시계, GPS 시계 및 무선 시계). .) Stratum 1 서버는 Stratum 0 서버에서 Stratum 15까지 시간이 걸립니다. Stratum 16 cl ock은 어떤 소스에도 동기화되지 않습니다. 클라이언트의 시간은 하나 이상의 계층 서버와의 패킷 교환을 통해 설정됩니다. 이러한 패킷은 각 메시지에 타임 스탬프를 지정하고 메시지를 전송하는 데 걸리는 시간은 클라이언트에 있어야하는 시간에 대한 합의를 설정하는 알고리즘의 요소입니다.

NTP는 합의를 통해 정확한 시간 소스를 제공 할 수 있습니다. 여러 입력 서버. 또한 사용 가능한 시간 서버가 정확하지 않은지 식별 할 수 있습니다. 한 가지 문제는 NTP가 인터넷 커뮤니티가 더 친근했던시기에 구축되었다는 것입니다. NTP가 시작되는 동안 NTP 서버는 사용자 확인과 관련이 없습니다. 1980 년대 초반에는 개발자가 자신의 NTP 솔루션 문제를 해결하고 확인하는 데 사용할 수있는 리소스로 NTP 서버를 공개적으로 사용할 수있었습니다.

NTP의 표준 프로토콜은 UDP (User Datagram Protocol)입니다. 이 디자인 결정은 남용의 기회를 만들었습니다. 연결이없는 UDP는 최선형 프로토콜이므로 TCP (Transmission Control Protocol)보다 패킷을 스푸핑하고 손실하기 쉽습니다. NTP 풀 프로젝트 자원 봉사자들이 계속해서 NTP를 발전 시켰지만, 많은 네트워크 관리자와 사업주들이 자신의 장비를 패치하려는 동기는 그다지 강력하지 않습니다. 처음부터 NTP 네트워킹 프로토콜은 수많은 시스템에 통합되었습니다. 그 중 많은 시스템이 패치되지 않았으며 20 개 이상의 개정판 코드를 실행할 수 있습니다.

NTP 취약성과 관련된 공격

p>

Cory Doctorow는 최근 Boing / Boing에 대한 오래된 NTP의 잠재적 인 오류에 대해 썼습니다.

NTP는 상호 작용하는 거의 모든 컴퓨터가 시계를 정확하게 유지하는 방법입니다. 더군다나 NTP의 취약점은 인터넷의 많은 시간 서버를 서비스 거부 공격에 대한 힘을 증가시켜 거의 막을 수없는 공격으로 만들었습니다. .

최근 DDoS 공격에 사용되는 방법은 취약성에 의존하지 않고 잘못된 구성에 의존합니다. NTP 서비스는 모니터링되는 서버 목록에 대한 쿼리 요청에 응답합니다. 스푸핑 된 소스가있는 단일 작은 요청은 600 개의 서버 목록을 생성하여 대상으로 보낼 수 있습니다. 취약점이 없더라도 수백 또는 수천 대의 서버가 무의식적 인 대상으로 리디렉션 될 때 피해자는 고통을 유발하는 문제의 의미에 대해 신경 쓰지 않습니다. 그들은 단지 구제를 원합니다.

시스템의 시간 동기화 또는 그 부족은 시스템의 기본 기능을 손상시킬 수있는 취약성의 중요한 원인이 될 수 있습니다. DDoS 공격에 기여하는 NTP 남용 외에도 네트워크에서 시간 동기화는 가짜 또는 악의적으로 반복되는 인증 데이터 전송 지연과 관련된 재생 공격 (즉, 재생 공격)의 기회를 만듭니다.

예를 들어 사용자가 시도 할 때 재생 공격이 발생할 수 있습니다. 다른 사용자에게 신원 증명을 제공합니다. 중간에있는 악의적 인 행위자가 메시지를 가로 채서 의도 한 대상에 도달하지 못하게합니다. 그런 다음 악의적 인 사용자는 신원 확인 요청을 보내고 도난 된 증명을 유효성 검사로 포함합니다. 시간이 동기화되지 않으면 교환이 허용되는 기간이 안전하다고 간주되는 범위 이상으로 증가하여 속임수를 허용 할 수 있습니다. 합법적 인 사용자로 가장 한 사기꾼의 신원을 확인했습니다. 공정하게 말하면 이러한 유형의 재생 공격은 흔하지 않으며 해당 경로에서 네트워크, 통신 경로 및 손상된 시스템에 액세스하지 않고 성공적으로 실행하기가 매우 어렵습니다.

Shaun Kelly와 같은 많은 보안 전문가 은 NTP가 로그를 조작하고 컴퓨터 시스템의 시간을 변경하여 이벤트 순서를 변경하는 데 사용되었다고 언급했습니다.시계가 동기화되지 않으면 네트워크 분석가가 서로 다른 시스템에서 로그 상관 관계를 수행하는 데 훨씬 더 많은 시간을 할애합니다. NTP를 조작하면 네트워크 활동과 이벤트 순서를 식별하여 공격을 파악하기가 훨씬 더 어려워집니다.

시간이 제대로 작동하지 않아 위험에 처할 수있는 다른 애플리케이션으로는 고속 거래 및 보안 카메라가 있습니다. 키 교환 및 토큰과 관련된 많은 시간에 민감한 암호화 알고리즘도 NTP 약점으로 인해 위험합니다.

NTP 모범 사례

이 게시물의 나머지 부분에서는 자체 NTP 서버를 구성하고 공용 NTP 서버를 요청하는 모범 사례를 자세히 설명합니다.

외부 호스트에 공용 NTP를 사용합니다. 기업 외부에 배포 할 기능, 서비스 또는 기타 임베디드 플랫폼을 구축하는 경우 네트워크 관리자는 앞서 언급 한 사용 가능한 서버 풀에서 공용 NTP 서버를 요청하는 것을 고려할 수 있습니다.

대부분의 공용 NTP 서버가 참여 규칙을 지정한다는 점에 유의하는 것이 중요합니다. 기업에 NTP를 사용할 기업 내 여러 장치가있는 경우 공개적으로 사용 가능한 서버에 액세스하기 위해 경쟁하는 대신 동기화 할 자체 계층을 설정하는 것이 좋습니다.

내부 구성 네트워크에 대한 NTP 계층 적 서비스. Stratum 1 또는 Stratum 0 NTP 어플라이언스를 구입하여 일반 서버 비용보다 적은 비용으로 내부적으로 사용할 수 있습니다. 매우 저렴한 비용으로 개인 NTP 서버를 설정할 수도 있습니다. COTS (Commercial Off the Shelf) NTP 서버를 설정할 수있는 가능성은 최근 Raspberry Pi 컴퓨터를 Stratum-1 서버로 구성하려는 노력에서 입증되었습니다. 직접 구성하기로 결정한 경우 다음 모범 사례를 고려하십시오.

  • UTC 시간으로 표준화하십시오. 기업 내에서 모든 시스템을 UTC (Coordinated Universal Time)로 표준화합니다. UTC로 표준화하면 동기화되는 장치의 시간대에 관계없이 조직 내 및 외부 당사자와의 로그 상관 관계가 단순화됩니다.
  • 네트워크 시간 서비스 보안. Stratum 서버에서 사용할 수있는 명령을 제한하십시오. 계층 서버의 공개 쿼리를 허용하지 마십시오. 알려진 네트워크 / 호스트 만 해당 계층 서버와 통신하도록 허용합니다.
  • 암호화에 대한 비즈니스 요구를 고려하십시오. 많은 관리자가 암호화 된 통신 및 암호화 된 인증으로 네트워크를 보호하려고합니다. NTP 통신 보안을 위해 NTP와 관련된 암호화 서비스가 있지만 암호화를 사용하면 키 관리 요구와 같은 문제에 더 많은 소스가 도입되고 더 높은 계산 오버 헤드가 필요하기 때문에 여기서주의해야합니다.
  • Segal의 법칙을 기억하십시오. 이상적으로는 Stratum 0 또는 Stratum 1 서버를 3 개 이상 보유하고 해당 서버를 기본 마스터로 사용하는 것이 좋습니다. Segal의 법칙을 기억하십시오 : NTP 2 개 보유 서버는 어느 것이 정확한지 알기 어렵게 만듭니다. 두 개의 Stratum 0 서버는 확정적인 것으로 간주되는 시간 소스를 사용하고 있기 때문에보다 정확한 타임 스탬프를 제공합니다.

시간 소스가 세 개 이상 있으면 네트워크가 유지 관리 할 수 있습니다. 주 마스터 중 하나가 실패하더라도 정확한 시간. 이상적으로 NTP 서버는 지리적으로 서로 다른 3 곳에 위치합니다. 이 기본 마스터 그룹은 기업의 시간 소스가됩니다. 보조 계층 서버에만 서비스를 제공하므로 숨겨진 마스터로 간주됩니다. 이 구성을 통해 해당 서버는 실제로 조직에 서비스를 제공하는 배치 된 보조 마스터에 시간을 제공 할 수 있습니다. 기본 마스터는 숨겨진 상태로 유지되며 다른 곳에서 서비스를 제공하는 NTP 인프라에서만 액세스됩니다. 이 공급망을 통해 조직 전체에 정확한 시간을 제공하고 정확한 시간 소스를 입증하는 여러 소스를 확보 할 수 있습니다.

시간 동기화가 필요한 장치가 더 많은 위치에서는 Stratum 2 또는 Stratum 3 서버를 추가 할 수 있습니다. 시스템에 부하를 더 분산하고 더 많은 NTP 클라이언트 그룹에 서비스를 제공하기 위해 보조 마스터뿐만 아니라 서로에게 의존하게합니다.

최신 개정에 내부 NTP 서비스를 설정하여 안정적인 코드와 그 사용을 표준화하기 위해 시간에 의존하는 시간 기반 네트워크 공격 또는 프로세스의 실행 가능성은 협력하기가 더 어렵습니다. 로그의 시간이 이제 기록 시스템이 될 수 있기 때문에 손상에서 이벤트 순서를 쉽게 식별 할 수 있습니다. 법 집행 기관 및 기타 수사 기관의 경우 정확한 NTP 서비스는 증거를 평가하고 일련의 사건을 시퀀싱하는 데 매우 건설적 일 수 있습니다.

완벽하고 미리보기

공격이 더욱 정교 해짐에 따라 CERT의 네트워크 분석가 팀은 네트워크 내에서 제대로 배치되지 않은 인터넷 연결 서비스를 점점 더 많이 발견합니다. Langston은 DNS Best Practices에 대한 최근 게시물에서 이러한 서비스 중 많은 부분이 내부 및 외부 네트워크 애플리케이션의 보안 및 운영을위한 기반을 구성한다고 썼습니다.

이것은 최상의 서비스를 제공하는 일련의 블로그 게시물 중 최신입니다. 이러한 기본 구조에 대한 관행을 통해 정부 기관 및 기타 기업이 네트워크 내에서 숨겨진 취약점 소스를 해결하는 데 도움이됩니다. 팀장 인 Rachel Kartch는이 시리즈의 첫 번째 게시물 인 Distributed Denial of Service Attacks : Four Best Practices for Prevention and Response를 게시했습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다