ВсС ваши Π°Π½Π°Π»ΠΈΠ·Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС

И снова здравствуйтС! Π£ мСня ΠΎΠΏΡΡ‚ΡŒ нашлась для вас открытая Π±Π°Π·Π° с мСдицинскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Напомню, Ρ‡Ρ‚ΠΎ совсСм Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ‚ΡƒΡ‚ Π±Ρ‹Π»ΠΎ Ρ‚Ρ€ΠΈ ΠΌΠΎΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° эту Ρ‚Π΅ΠΌΡƒ: ΡƒΡ‚Π΅Ρ‡ΠΊΠ° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²Ρ€Π°Ρ‡Π΅ΠΉ ΠΈΠ· мСдицинского ΠΎΠ½Π»Π°ΠΉΠ½-сСрвиса DOC+, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ сСрвиса Β«Π”ΠΎΠΊΡ‚ΠΎΡ€ рядом» ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… станций скорой мСдицинской ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

ВсС ваши Π°Π½Π°Π»ΠΈΠ·Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС

На этот Ρ€Π°Π· Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС оказался сСрвСр Elasticsearch с Π»ΠΎΠ³Π°ΠΌΠΈ мСдицинской IT-систСмы сСти Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΉ Β«Π¦Π΅Π½Ρ‚Ρ€ молСкулярной диагностики» (CMD, www.cmd-online.ru).

ДисклСймСр: вся информация Π½ΠΈΠΆΠ΅ публикуСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях. Автор Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» доступа ΠΊ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ† ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… источников, Π»ΠΈΠ±ΠΎ Π±Ρ‹Π»Π° прСдоставлСна Π°Π²Ρ‚ΠΎΡ€Ρƒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ доброТСлатСлями.

Π‘Π΅Ρ€Π²Π΅Ρ€ Π±Ρ‹Π» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ ΡƒΡ‚Ρ€ΠΎΠΌ 1-Π³ΠΎ апрСля ΠΈ это ΠΌΠ½Π΅ совсСм Π½Π΅ показалось ΡΠΌΠ΅ΡˆΠ½Ρ‹ΠΌ. ΠžΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΡƒΡˆΠ»ΠΎ Π² CMD ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 10 ΡƒΡ‚Ρ€Π° (МБК) ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 15:00 Π±Π°Π·Π° стала нСдоступной.

По Π΄Π°Π½Π½Ρ‹ΠΌ поисковика Shodan Π΄Π°Π½Π½Ρ‹ΠΉ сСрвСр Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π» Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ 09.03.2019. ΠŸΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Elasticsearch, я писал ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Из Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ вСсьма Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ЀИО, ΠΏΠΎΠ», Π΄Π°Ρ‚Ρ‹ роТдСния ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ², ЀИО Π²Ρ€Π°Ρ‡Π΅ΠΉ, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ исслСдований, Π΄Π°Π½Π½Ρ‹Π΅ исслСдований, Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ скрининга ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π»ΠΎΠ³Π° с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠ² ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°:

"<Message FromSystem="CMDLis" ToSystem="Any" Date="2019-02-26T14:40:23.773"><Patient ID="9663150" Code="A18196930" Family="XXX" Name="XXX" Patronymic="XXX" BornDate="XXX-03-29" SexType="F"><Document>ΠŸΠ°ΡΠΏΠΎΡ€Ρ‚</Document><Order ID="11616539" Number="DWW9867570" State="normal" Date="2017-11-29T12:58:26.933" Department="1513" DepartmentAltey="13232" DepartmentName="Π‘ΠΌΠ°ΠΉΠ» Π­Π»ΠΈΡ‚" FullPrice="1404.0000" Price="1404.0000" Debt="1404.0000" NaprOrdered="2" NaprCompleted="2" ReadyDate="2017-12-01T07:30:01" FinishDate="2017-11-29T20:39:52.870" Registrator="A759" Doctor="A75619" DoctorFamily="XXX" DoctorName="XXX" DoctorPatronymic="XXX"><OrderInfo Name="TEMP_CODE">0423BF97FA5E</OrderInfo><OrderInfo Name="Π‘Π΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ">-1</OrderInfo><OrderInfo Name="Пин">DWW98675708386841791</OrderInfo><OrderInfo Name="БкидкаНаЗаказ">0</OrderInfo><OrderInfo Name="Π‘ΠœΠšΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»Π΅Π½Π”ΠΎ">18.03.2019</OrderInfo><OrderInfo Name="Π‘ΠœΠšΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚">РОББ RU.13БК03.00601</OrderInfo><Serv Link="1" PathologyServ="1" Code="110101" Name="ΠžΠ±Ρ‰ΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΌΠΎΡ‡ΠΈ (Urine test) с микроскопиСй осадка" Priority="NORMAL" FullPrice="98.0000" Price="98.0000" ReadyDate="2017-11-30T07:30:01" FinishDate="2017-11-29T20:14:22.160" State="normal"/><Serv Link="2" Code="300024" Name="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг II тримСстра бСрСмСнности, расчСт риска хромосомных Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΠΏΠ»ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° LifeCycle (DELFIA)" Priority="NORMAL" FullPrice="1306.0000" Price="1306.0000" ReadyDate="2017-12-01T07:30:01" FinishDate="2017-11-29T20:39:52.870" State="normal"/><Probe ID="64213791" Number="3716965325" Date="2017-11-29T00:00:00" OuterNumber="66477805" Barcode="3716965325" Biomater="66" BiomaterName="ΠšΡ€ΠΎΠ²ΡŒ (сыворотка)" Type="physical"><Probe ID="64213796" Number="P80V0018" Date="2017-11-29T12:58:26.933" Biomater="66" BiomaterName="ΠšΡ€ΠΎΠ²ΡŒ (сыворотка)" WorkList="80" WorkListName="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг" Type="virtual"><Param State="Valid" User="A872" UserFIO="XXX" UserStaff="Π’Ρ€Π°Ρ‡ ΠšΠ›Π”" Code="3005" guid="7BA0745FD502A80C73C2CAD341610598" Name="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг II тримСстра бСрСмСнности, расчСт риска хромосомных Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΠΏΠ»ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° LifeCycle (DELFIA)" Group="ΠŸΠ Π•ΠΠΠ’ΠΠ›Π¬ΠΠ«Π™ Π‘ΠšΠ Π˜ΠΠ˜ΠΠ“" GroupCode="80" GroupSort="0" Page="1" Sort="2"><LinkServ IsOptional="0">2</LinkServ><Result Name="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг II тримСстра бСрСмСнности, расчСт риска хромосомных Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΠΏΠ»ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° LifeCycle (DELFIA)" Value="Π“ΠΎΡ‚ΠΎΠ² (см.ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)" User="A872" UserFIO="XXX" Date="2017-11-29T20:39:03.370" isVisible="1" HidePathology="0" IsNew="0"><File Name="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг 2 тримСстр_page1.png" Type="image" Format="png" Title="3716965325_prenetal2_page1" Description="ΠŸΡ€Π΅Π½Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ скрининг 2 тримСстр_page1" Sort="1">iVBORw0KGgoAAAANSUhEUgAABfoAAAfuCAIAAAArOR8rAAD//0lEQVR4Xuy9P7BtQ7u+/e3oECF6iRAhQoQI0SZCtIkQIdpEiBCxI0SIECFiV50qRKg6VYgQIUKEiDfiRL7rnPtXz+nqHnPMsfb6s+cc61rBqjl79Oh++uoe/eceT/c8888///

Π― Π·Π°Π±ΠΈΠ» всС Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ символом Β«XΒ». Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Из Ρ‚Π°ΠΊΠΈΡ… Π»ΠΎΠ³ΠΎΠ² Π»Π΅Π³ΠΊΠΎ (ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ· Base64) ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ PNG-Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ скрининга, ΡƒΠΆΠ΅ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для чтСния Π²ΠΈΠ΄Π΅:

ВсС ваши Π°Π½Π°Π»ΠΈΠ·Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС

ΠžΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΎΠ³ΠΎΠ² ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» 400 Мб ΠΈ суммарно Π² Π½ΠΈΡ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΎΡΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° записСй. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ каТдая запись прСдставляла собой Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ CMD:

Π₯ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Вас, Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ 01.04.2019 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ уязвимости Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… логирования ΠΈ хранСния ошибок Elasticsearch.

На основании этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, нашими сотрудниками совмСстно с ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ спСциалистами Π±Ρ‹Π» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ доступ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅. Ошибка ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±Π°Π·Ρƒ исправлСна.

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ появлСниС Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ с Π»ΠΎΠ³Π°ΠΌΠΈ ошибок ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, связанной с чСловСчСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π±Ρ‹Π» ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ 01.04.2019.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ внСшними спСциалистами проводятся мСроприятия для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°ΡƒΠ΄ΠΈΡ‚Π° ИВ-инфраструктуры Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

НашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ систСмой ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ отвСтствСнности пСрсонала.

ВСкущая программная инфраструктура ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ использованиС Π±Π°Π·Ρ‹ Elasticsearch для хранСния ошибок. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ надСТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСм Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСна миграция ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… сСрвСров Π² Π¦ΠžΠ” нашСго ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°, Π½Π° сСртифицированноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Вас Π·Π° своСврСмСнно ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Новости ΠΏΡ€ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ инсайдСров всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° ΠΌΠΎΠ΅ΠΌ Telegram-ΠΊΠ°Π½Π°Π»Π΅ Β«Π£Ρ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈΒ».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ