Intel ΠΎΡ‚ΠΊΡ€ΠΈ ΠΊΠΎΠ΄Π° Π½Π° систСмата Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ControlFlag Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π°

Компания Intel Ρ€Π°Π·ΠΊΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с изслСдоватСлския ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ControlFlag, насочСн към ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСма Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, която Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ качСството Π½Π° ΠΊΠΎΠ΄Π°. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° инструмСнти позволяват Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΌΠΎΠ΄Π΅Π», ΠΎΠ±ΡƒΡ‡Π΅Π½ Π½Π° голямо количСство ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ ΠΊΠΎΠ΄, Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² изходния ΠΊΠΎΠ΄, написан Π½Π° високо Π½ΠΈΠ²ΠΎ Π΅Π·ΠΈΠΊΠΎΠ²Π΅, ΠΊΠ°Ρ‚ΠΎ C/C++. БистСмата Π΅ подходяща Π·Π° опрСдСлянС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠΎΠ΄Π°, ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° типографски Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, Π΄ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° пропуснати ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π° NULL стойности Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ControlFlag Π΅ написан Π½Π° C++ ΠΈ Π΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ MIT Π»ΠΈΡ†Π΅Π½Π·.

БистСмата сС самообучава, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° статистичСски ΠΌΠΎΠ΄Π΅Π» Π½Π° наличния масив ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π² GitHub ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. На Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, систСмата ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ шаблони Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° конструкциитС Π² ΠΊΠΎΠ΄Π° ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° синтактично Π΄ΡŠΡ€Π²ΠΎ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π·ΠΈ шаблони, отразяващо ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎ Π΄ΡŠΡ€Π²ΠΎ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, обСдиняващо ΠΎΠΏΠΈΡ‚Π° ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° всички Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ тСкстовС.

Π—Π° провСрявания ΠΊΠΎΠ΄ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ процСс Π½Π° опрСдСлянС Π½Π° шаблони, ΠΊΠΎΠΈΡ‚ΠΎ сС сравняват с Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎΡ‚ΠΎ Π΄ΡŠΡ€Π²ΠΎ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π“ΠΎΠ»Π΅ΠΌΠΈ разминавания с съсСдни ΠΊΠ»ΠΎΠ½ΠΈ сочат Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° аномалия Π² провСрявания шаблон. БистСмата ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° позволява Π½Π΅ само Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ Π³Ρ€Π΅ΡˆΠΊΠ° Π² шаблона, Π½ΠΎ ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ корСкция. НапримСр, Π² ΠΊΠΎΠ΄Π° Π½Π° OpenSSL бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΎ конструкцията Β«(s1 == NULL) ∧ (s2 == NULL)Β», която сС ΡΡ€Π΅Ρ‰Π°ΡˆΠ΅ Π² синтактичното Π΄ΡŠΡ€Π²ΠΎ само 8 ΠΏΡŠΡ‚ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΉ-близкият ΠΊΠ»ΠΎΠ½ с Β«(s1 == NULL) || (s2 == NULL)Β» сС ΡΡ€Π΅Ρ‰Π°ΡˆΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 7000 ΠΏΡŠΡ‚ΠΈ. БистСмата ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° установи аномалия Β«(s1 == NULL) | (s2 == NULL)Β», която сС ΡΡ€Π΅Ρ‰Π°ΡˆΠ΅ Π² Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ 32 ΠΏΡŠΡ‚ΠΈ.

Intel ΠΎΡ‚ΠΊΡ€ΠΈ ΠΊΠΎΠ΄Π° Π½Π° систСмата Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ControlFlag Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄Π° "if (x = 7) y = x;" систСмата установи, Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "if" Π·Π° сравняванС Π½Π° числови стойности сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° конструкцията "ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° == число", Π·Π°Ρ‚ΠΎΠ²Π° с голяма вСроятност ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅Ρ‚ΠΎ "ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° = число" Π² ΠΈΠ·Ρ€Π°Π·Π° "if" Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°. Π’Π°Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° Π±ΠΈΡ…Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ»ΠΈ ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ, Π½ΠΎ Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ тях ControlFlag Π½Π΅ ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°Ρ‚ всички възмоТни Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ, Π° сС основава Π½Π° статистика Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ конструкции Π² голям Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

ΠšΠ°Ρ‚ΠΎ СкспСримСнт, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ControlFlag Π² ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ тСкстовС Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° cURL, която чСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° качСствСн ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ ΠΊΠΎΠ΄, бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΎ нСзабСлязано ΠΎΡ‚ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚ структурата "s->keepon", ΠΊΠΎΠΉΡ‚ΠΎ имашС числов Ρ‚ΠΈΠΏ, Π½ΠΎ бСшС сравнСн с Π±ΡƒΠ»Π΅Π²Π°Ρ‚Π° стойност TRUE. Π’ ΠΊΠΎΠ΄Π° Π½Π° OpenSSL, освСн спомСнатия ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с "(s1 == NULL) ∧ (s2 == NULL)", ΡΡŠΡ‰ΠΎ бяха ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ "(-2 == rv)" (ΠΌΠΈΠ½ΡƒΡΡŠΡ‚ бСшС ΠΏΠ΅Ρ‡Π°Ρ‚Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°) ΠΈ "BIO_puts(bp, ":")".

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster