Ki jan tan senkronizasyon te vin an sekirite

Ki jan tan senkronizasyon te vin an sekirite
Ki jan yo asire ke tan per se pa bay manti si ou gen yon milyon aparèy gwo ak ti kominike atravè TCP / IP? Apre yo tout, chak nan yo gen yon revèy, ak lè a dwe kòrèk pou tout nan yo. Pwoblèm sa a pa ka kontourne san ntp.

Ann imajine pou yon minit ke nan yon segman nan enfrastrikti endistriyèl IT la gen difikilte ak senkronize sèvis sou tan. Imedyatman pil gwoup lojisyèl Enterprise kòmanse echwe, domèn dezentegre, mèt ak nœuds Standby san siksè fè efò pou retabli sitiyasyon an.

Li posib tou ke yon atakè fè espre eseye deranje tan an atravè yon atak MiTM oswa DDOS. Nan yon sitiyasyon konsa, nenpòt bagay ka rive:

  • Modpas kont itilizatè yo pral ekspire;
  • Sètifika X.509 ap ekspire;
  • Otantifikasyon de-faktè TOTP ap sispann travay;
  • sovgad yo pral vin demode epi sistèm nan pral efase yo;
  • DNSSec pral kraze.

Li klè ke chak depatman IT enterese nan operasyon an serye nan sèvis senkronizasyon tan, epi li ta bèl si yo te serye ak san danje nan operasyon endistriyèl.

Kraze NTP nan 25 minit

Pwotokòl Rezo - milenè yo gen yon sèl singularité, yo te demode epi yo pa bon pou anyen ankò, men ranplase yo pa tèlman fasil menm lè yon mas kritik nan amater ak finansman akimile.

Plent prensipal la sou NTP klasik se mank de mekanis serye pou pwoteje kont atak pa entrigan. Yo te fè plizyè tantativ pou rezoud pwoblèm sa a. Pou reyalize sa, nou premye aplike yon mekanis pre-pataje kle (PSK) pou echanje kle simetrik.

Malerezman, metòd sa a pa t peye pou yon rezon ki senp - li pa echèl byen. Konfigirasyon manyèl obligatwa sou bò kliyan an depann sou sèvè a. Sa vle di ke ou tou senpleman pa ka ajoute yon lòt kliyan jis konsa. Si yon bagay chanje sou sèvè NTP a, tout kliyan yo dwe reconfigure.

Lè sa a, yo te vini ak AutoKey, men yo imedyatman dekouvri yon kantite frajilite grav nan desen an nan algorithm nan tèt li epi yo te oblije abandone li. Bagay la se ke grenn nan gen sèlman 32-bit, li twò piti epi li pa gen ase konpleksite enfòmatik pou yon atak devan.

  • ID kle - simetrik kle 32-bit;
  • MAC (kòd otantifikasyon mesaj) - sòm chèk pake NTP;

Autokey kalkile jan sa a.

Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)

Ki kote H() se yon fonksyon hash kriptografik.

Yo itilize menm fonksyon an pou kalkile sòm chèk pake yo.

MAC=H(Autokey||NTP packet)

Li sanble ke tout entegrite chèk pake a chita sou otantisite bonbon yo. Yon fwa ou genyen yo, ou ka retabli autokey la ak Lè sa a, spoof MAC la. Sepandan, sèvè NTP a sèvi ak yon grenn lè génération yo. Sa a se kote trape an manti.

Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))

Fonksyon MSB_32 koupe 5 bit ki pi enpòtan nan rezilta kalkil md32 hash la. Bonbon kliyan an pa chanje osi lontan ke paramèt sèvè yo pa chanje. Lè sa a, atakè a ka sèlman retabli nimewo inisyal la epi li kapab poukont jenere bonbon.

Premyèman, ou bezwen konekte ak sèvè NTP la kòm yon kliyan epi resevwa bonbon. Apre sa, lè l sèvi avèk yon metòd fòs brital, atakè a retabli nimewo inisyal la apre yon algorithm senp.

Algorithm pou atake kalkil la nan nimewo inisyal la lè l sèvi avèk metòd la fòs brital.

   for i=0:2^32 − 1 do
        Ci=H(Server-IP||Client-IP||0||i)
        if Ci=Cookie then
            return i
        end if 
    end for

Adrès IP yo li te ye, kidonk tout sa ki rete se kreye 2 ^ 32 hash jiskaske bonbon ki te kreye matche ak youn nan resevwa nan men sèvè NTP la. Sou yon estasyon lakay regilye ak Intel Core i5, sa pral pran 25 minit.

NTS - nouvo Autokey

Li te enposib sipòte twou sekirite sa yo nan Autokey, ak nan 2012 li te parèt yon nouvo vèsyon pwotokòl. Yo nan lòd yo konpwomi non an, yo deside rebrand, se konsa Autokey v.2 te ame rezo Tan Sekirite.

Pwotokòl NTS a se yon ekstansyon sekirite NTP e kounye a sèlman sipòte mòd unicast. Li bay gwo pwoteksyon kriptografik kont manipilasyon pake, anpeche snooping, balanse byen, rezistan nan pèt pake rezo a, ak rezilta nan pi piti kantite pèt presizyon ki fèt pandan sekirite koneksyon.

Yon koneksyon NTS konsiste de de etap ki itilize pwotokòl kouch pi ba yo. Sou premye a Nan etap sa a, kliyan an ak sèvè dakò sou divès paramèt koneksyon ak echanj bonbon ki gen kle ak tout seri done ki akonpaye yo. Sou dezyèm Nan etap sa a, sesyon aktyèl NTS ki pwoteje an pran plas ant kliyan an ak sèvè NTP la.

Ki jan tan senkronizasyon te vin an sekirite

NTS konsiste de de pwotokòl pi ba yo: Network Time Security Key Exchange (NTS-KE), ki inisye yon koneksyon an sekirite sou TLS, ak NTPv4, dènye enkarnasyon pwotokòl NTP la. Yon ti kras plis sou sa a anba a.

Premye etap - NTS KE

Nan etap sa a, kliyan NTP la kòmanse yon sesyon TLS 1.2/1.3 sou yon koneksyon TCP separe ak sèvè NTS KE la. Pandan sesyon sa a, bagay sa yo rive.

  • Pati yo detèmine paramèt yo AEAD algorithm pou dezyèm etap la.
  • Pati yo defini yon dezyèm pwotokòl pi ba-kouch, men nan moman sa a sèlman NTPv4 sipòte.
  • Pati yo detèmine adrès IP ak pò sèvè NTP la.
  • Sèvè NTS KE bay bonbon anba NTPv4.
  • Pati yo ekstrè yon pè kle simetrik (C2S ak S2C) nan materyèl la bonbon.

Apwòch sa a gen gwo avantaj ke tout chay transmèt enfòmasyon sekrè konsènan paramèt koneksyon tonbe sou pwotokòl TLS pwouve ak serye. Sa a elimine nesesite pou reenvante wou pwòp ou a pou yon lanmen NTP an sekirite.

Dezyèm etap - NTP anba pwoteksyon NTS

Nan dezyèm etap la, kliyan an byen senkronize tan an ak sèvè NTP la. Pou rezon sa a, li transmèt kat ekstansyon espesyal (champ ekstansyon) nan estrikti a pake NTPv4.

  • Ekstansyon Idantifyan Inik la gen yon nonce o aza pou anpeche atak reparèt.
  • NTS Cookie Extension gen youn nan bonbon NTP ki disponib pou kliyan an. Depi sèlman kliyan an gen kle simetrik AAED C2S ak S2C, sèvè NTP la dwe ekstrè yo nan materyèl bonbon.
  • NTS Cookie Placeholder Extension se yon fason pou yon kliyan mande bonbon adisyonèl nan sèvè a. Ekstansyon sa a nesesè pou asire repons sèvè NTP la pa pi long pase demann lan. Sa a ede anpeche atak anplifikasyon.
  • NTS Authenticator ak Encrypted Extension Fields Extension gen chifreman AAED ak kle C2S, header NTP, timestamps, ak EF ki pi wo a kòm done ki akonpaye yo. San ekstansyon sa a li posib pou spoof timestamps.

Ki jan tan senkronizasyon te vin an sekirite

Lè yo resevwa yon demann nan men yon kliyan, sèvè a verifye otantisite nan pake NTP la. Pou fè sa, li dwe dechifre bonbon yo, ekstrè algorithm AAED ak kle yo. Apre w fin tcheke avèk siksè pake NTP pou validite, sèvè a reponn kliyan an nan fòma sa a.

  • Ekstansyon Idantifyan inik se yon kopi miwa demann kliyan an, yon mezi kont atak reparèt.
  • NTS Cookie Extension plis bonbon pou kontinye sesyon an.
  • NTS Authenticator ak ekstansyon ankripte jaden ekstansyon gen chifreman AEAD ak yon kle S2C.

Dezyèm lanmen an ka repete anpil fwa, kontourne premye etap la, paske chak demann ak repons bay kliyan an bonbon adisyonèl. Sa a gen avantaj ki relativman resous TLS operasyon yo nan informatique ak transmèt PKI done yo divize pa kantite demann repete. Sa a se espesyalman pratik pou espesyalize FPGA timekeepers, lè tout fonksyonalite prensipal yo ka pake nan plizyè fonksyon soti nan jaden an nan kriptografi simetrik, transfere tout pil TLS la nan yon lòt aparèy.

NTPSec

Ki sa ki espesyal sou NTP? Malgre lefèt ke otè a nan pwojè a, Dave Mills, te eseye dokimante kòd li pi byen ke posib, li se yon pwogramè ki ra ki pral kapab konprann sibtilite yo nan algoritm senkronizasyon tan ki gen 35 ane fin vye granmoun. Gen kèk nan kòd la te ekri anvan epòk POSIX la, ak API Unix la te trè diferan de sa yo itilize jodi a. Anplis de sa, konesans nan estatistik yo bezwen klè siyal la soti nan entèferans sou liy fè bwi.

NTS pa t premye tantativ pou ranje NTP. Yon fwa atakè yo te aprann eksplwate frajilite NTP pou anplifye atak DDoS, li te vin klè ke chanjman radikal yo te nesesè. Epi pandan ke pwojè NTS yo te prepare ak finalize, US National Science Foundation nan fen ane 2014 te resevwa yon sibvansyon ijan pou modènizasyon NTP.

Gwoup travay la te dirije pa sèlman nenpòt moun, men Eric Stephen Raymond - youn nan fondatè ak poto kominote Open Source ak otè liv la Katedral ak Baza. Premye bagay Eric ak zanmi l yo te eseye fè se te deplase kòd NTP la soti nan platfòm BitKeeper nan git, men li pa t mache konsa. Lidè pwojè Harlan Stenn te kont desizyon sa a epi negosyasyon yo bloke. Lè sa a, li te deside fouchèt kòd pwojè a, ak NTPSec te fèt.

Eksperyans solid, ki gen ladan travay sou GPSD, yon background matematik ak konpetans nan majik nan lekti kòd ansyen - Eric Raymond te egzakteman pirate a ki te kapab retire yon pwojè konsa. Ekip la te jwenn yon espesyalis migrasyon kòd ak nan jis 10 semèn NTP etablisou GitLab. Travay te an plen swing.

Ekip Eric Raymond te pran travay la menm jan ak Auguste Rodin te fè ak yon blòk wòch. Lè yo retire 175 KLOC nan ansyen kòd, yo te kapab siyifikativman redwi sifas atak la lè yo fèmen anpil twou sekirite.

Men yon lis enkonplè ki enkli nan distribisyon an:

  • Refclock san papye, demode, demode oswa kase.
  • Bibliyotèk ICS ki pa itilize.
  • libopts/autogen.
  • Ansyen kòd pou Windows.
  • ntpdc.
  • Autokey.
  • Kòd C ntpq la te reekri nan Python.
  • Kòd sntp/ntpdig C a te reekri nan Python.

Anplis de sa nan netwaye kòd la, pwojè a te gen lòt travay. Isit la se yon lis pasyèl nan reyalizasyon:

  • Pwoteksyon Kòd kont debòde tanpon yo te amelyore anpil. Pou anpeche tanpon debòde, tout fonksyon fisèl ki pa an sekirite (strcpy/strcat/strtok/sprintf/vsprintf/gets) yo te ranplase ak vèsyon ki an sekirite ki aplike limit gwosè tanpon yo.
  • Te ajoute sipò NTS.
  • Amelyore presizyon etap tan diz fwa pa konekte pyès ki nan konpitè fizik. Sa a se akòz lefèt ke revèy òdinatè modèn yo te vin pi egzak pase sa yo lè NTP te fèt. Pi gwo benefisyè sa yo te GPSDO ak radyo tan dedye.
  • Nimewo a nan lang pwogramasyon te redwi a de. Olye de Perl, awk e menm S scripts, se koulye a tout Python. Akòz sa a, gen plis opòtinite pou reutilize kòd.
  • Olye pou yo nouy nan autotools scripts, pwojè a te kòmanse sèvi ak yon sistèm bati lojisyèl waf.
  • Mizajou ak reòganize dokiman pwojè yo. Soti nan yon koleksyon dokiman kontradiktwa epi pafwa akayik, yo te kreye dokiman ki byen pasab. Chak switch liy lòd ak chak antite konfigirasyon kounye a gen yon vèsyon sèl nan verite. Anplis de sa, paj man ak dokiman entènèt yo kounye a kreye nan menm dosye debaz yo.

NTPSec disponib pou yon kantite distribisyon Linux. Nan moman sa a, dènye vèsyon ki estab se 1.1.8, pou Gentoo Linux li se penultyèm lan.

(1:696)$ sudo emerge -av ntpsec
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R    ] net-misc/ntpsec-1.1.7-r1::gentoo  USE="samba seccomp -debug -doc -early -gdb -heat -libbsd -nist -ntpviz -rclock_arbiter -rclock_generic -rclock_gpsd -rclock_hpgps -rclock_jjy -rclock_local -rclock_modem -rclock_neoclock -rclock_nmea -rclock_oncore -rclock_pps -rclock_shm -rclock_spectracom -rclock_trimble -rclock_truetime -rclock_zyfer -smear -tests" PYTHON_TARGETS="python3_6" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]

Kwonik

Te gen yon lòt tantativ pou ranplase ansyen NTP la ak yon altènatif ki pi an sekirite. Chrony, kontrèman ak NTPSec, ekri apati de tè a epi li fèt pou opere seryezman nan yon pakèt kondisyon, tankou koneksyon rezo enstab, disponiblite pasyèl rezo oswa konjesyon, ak chanjman tanperati. Anplis de sa, chrony gen lòt avantaj:

  • chrony ka senkronize revèy sistèm lan pi vit ak pi gwo presizyon;
  • chrony se pi piti, konsome mwens memwa, ak aksè CPU a sèlman lè sa nesesè. Sa a se yon gwo plis pou ekonomize resous ak enèji;
  • chrony sipòte timestamp kenkayri sou Linux, sa ki pèmèt senkronizasyon trè egzat sou rezo lokal yo.

Sepandan, chrony manke kèk nan karakteristik yo nan ansyen NTP a, tankou emisyon ak multicast kliyan / sèvè. Anplis de sa, NTP klasik sipòte yon pi gwo kantite sistèm opere ak platfòm.

Pou enfim fonksyonalite sèvè a ak demann NTP nan pwosesis chronyd la, jis ekri pò 0 nan dosye chrony.conf la. Sa a se fè nan ka kote pa gen okenn bezwen kenbe tan pou kliyan NTP oswa kanmarad. Depi vèsyon 2.0, pò sèvè NTP a louvri sèlman lè aksè pèmèt yo pa yon direktiv pèmèt oswa kòmand ki apwopriye, oswa yon parèy NTP se configuré, oswa yon direktiv emisyon yo itilize.

Pwogram nan konsiste de de modil.

  • chronyd se yon sèvis ki kouri nan background nan. Li resevwa enfòmasyon sou diferans ki genyen ant revèy sistèm lan ak sèvè tan ekstèn lan epi ajiste lè lokal la. Li aplike tou pwotokòl NTP epi li ka aji kòm yon kliyan oswa sèvè.
  • chronyc se yon sèvis piblik liy kòmand pou siveyans pwogram ak kontwòl. Itilize pou ajiste divès paramèt sèvis yo, pou egzanp ki pèmèt ou ajoute oswa retire serveurs NTP pandan chronyd kontinye ap kouri.

Depi vèsyon 7 nan RedHat Linux itilizasyon chrony kòm yon sèvis senkronizasyon tan. Pake a disponib tou pou lòt distribisyon Linux. Dènye vèsyon ki estab se 3.5, prepare pou liberasyon v4.0.

(1:712)$ sudo emerge -av chrony
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB
Total: 1 package (1 new, 1 binary), Size of downloads: 246 KiB
Would you like to merge these packages? [Yes/No]

Ki jan yo mete pwòp sèvè chrony aleka ou sou entènèt la pou senkronize tan sou yon rezo biwo. Anba la a se yon egzanp mete kanpe yon VPS.

Egzanp mete kanpe Chrony sou RHEL / CentOS sou VPS

Ann pratike yon ti kras kounye a epi mete pwòp sèvè NTP nou an sou yon VPS. Li trè senp, jis chwazi tarif ki apwopriye a sou sitwèb RuVDS, jwenn yon sèvè pare epi tape yon douzèn kòmandman senp. Pou rezon nou an, opsyon sa a se byen apwopriye.

Ki jan tan senkronizasyon te vin an sekirite

Ann ale nan mete kanpe sèvis la epi premye enstale pake chrony la.

[root@server ~]$ yum install chrony

RHEL 8 / CentOS 8 itilize yon manadjè pake diferan.

[root@server ~]$ dnf install chrony

Apre enstale chrony, ou bezwen kòmanse ak aktive sèvis la.

[root@server ~]$ systemctl enable chrony --now

Si ou vle, ou ka fè chanjman nan /etc/chrony.conf, ranplase sèvè NPT ak sa ki pi pre yo pou diminye tan repons lan.

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

Apre sa, nou mete sou pye senkronizasyon nan sèvè NTP la ak nœuds ki soti nan pisin lan espesifye.

[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service

Li nesesè tou yo louvri pò a NTP deyò a, otreman firewall la pral bloke koneksyon fèk ap rantre nan nœuds kliyan yo.

[root@server ~]$ firewall-cmd --add-service=ntp --permanent 
[root@server ~]$ firewall-cmd --reload

Sou bò kliyan an, li se ase yo mete zòn nan tan kòrèkteman.

[root@client ~]$ timedatectl set-timezone Europe/Moscow

Fichye /etc/chrony.conf la espesifye IP oswa non lame sèvè VPS nou an k ap kouri sèvè NTP chrony.

server my.vps.server

Epi finalman, kòmanse senkronizasyon tan sou kliyan an.

[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true

Pwochenn fwa mwen pral di w ki opsyon ki genyen pou senkronize tan san entènèt la.

Ki jan tan senkronizasyon te vin an sekirite

Ki jan tan senkronizasyon te vin an sekirite

Sous: www.habr.com

Add nouvo kòmantè