дом Статии Влияние на икономическата кибернетика на работа блокчейн приложения: основни заплахи (Част 1)

Влияние на икономическата кибернетика на работа блокчейн приложения: основни заплахи (Част 1)

25
0

На пазара на информационната сигурност, като правило, на стъпка изостава от иновациите в света на информационните технологии. Много компании много често си спомнят за безопасността на продукта, в случай, когато нещо вече се е случило и последващите рискове за откриване и експлоатация на липса на сигурност надхвърлят цената на самостоятелно търсене недостатък и да я коригират.

Говорител на компанията BugBounty.Center Григорий Васильков — платформа за предоставяне на възможности за одит на сигурността за компании от трети страни в областта на блокчейн технологии и интелигентни договори — специално за ForkLog анализира основните рискове за блокчейн компании, свързани със сигурността. Общо ще бъдат публикувани три материал на тази становящуюся все по-актуална тема.

Още 20 години преди откриване на уязвимости често опира до тяхното търсене в Windows и Linux. Повечето хакери се опита да се възползват клас атаки Buffer Overflow и да получите отдалечен достъп до компютър. Преди 15 години, с масовото въвеждането на уеб-ресурси, се появи друг клас атаки, насочени към експлоатация на недостатъци в сигурността на уеб технологии: XSS, SQL injection и др.

Преди седем години започва да се разпространява Internet of Things (Ин) технологии за масова употреба, причинени което се появява класификация атаки OWASP Internet of Things Project. Вече в близко бъдеще ни предстои да се види целия клас на недостатъци в сигурността, отнасящи се до блокчейн-иновации и дори изкуствения интелект.

Началото на масовото използване на програмируеми интелигентни договори в блокчейн среда следва да се счита за 2016 година. Именно в тази година, настъпили резонансен сух The DAO в блокчейне Ethereum, вследствие на което обществото започна по-внимателно да обърнат внимание на проблемите на безопасността при проектирането на интелигентни договори.

Тъй като умни договори се занимават пряко с движението на ценни криптовалютных единици между контрагента, сигурността на интелигентни договор е от първостепенно значение при изпълнението на операциите.

При разработването на интелигентни договор често се налага решаване на отделни задачи. Въпреки програмиране договори до голяма степен напомня на традиционното програмиране, тя засяга важни нови проблеми на сигурността, тъй като криптовалюта и жетони притежават ценност, която трябва да се защитава. Ако изпратите пари умен договор със съществуващата уязвимост, вие най-вероятно ще рискуват да загубят всички средства. Освен това, програмиране умни договори изисква икономическото мислене, които традиционните програмистите могат и не се ползват.

Умни договори трябва да бъдат проектирани с отчитане на интересите на всички страни, дори ако участниците ще променят данните, които увеличават тяхната икономическа полза. Проектиране на архитектура на приложението предполага, че при програмирането на интелигентни договори са необходими допълнителни предпазни мерки и проверка.

Какви блокчейны изложени на рискове за сигурността днес

В този момент, с оглед на популярността на провеждане на ICO, повечето участници блокчейн общност едва ли ще могат да назове повече от дузина блокчейн платформи, на които може да се създаде интелигентни договори. Най-вероятно, много ще спре на Ethereum. Въпреки това вече сега броят на блокчейн платформи, на които можете да се реализират в една или друга степен умни договори, е към 40.

Всяка нова блокчейн платформа се опитва да се предвидят свои собствени характеристики, които ще помогнат тя да заеме водеща позиция в общността. Някои от платформи представляват частен блокчейн и са насочени към корпоративния сектор, някои от позицията на себе си като на хибридна платформа, това е съчетават в себе си като частен, така и публичен блокчейн.

Всяка платформа има свои собствени характеристики, дават възможност за получаване на данни от външни източници. При някои този функционалност се реализира от кутията, други за този функционален предлага да се използват система от външни надеждни възли — Оракули, които могат да предоставят надеждни външни данни.

За увеличаване скоростта на операциите в блокчейн мрежа и обработка на информация от различни платформи се използват различни алгоритми за консенсус: POW, POS, DPOS, POI и други подобни

Най-вероятно повечето блокчейн системи, в които не е предвидена логика имплементации умни договори ще останат в задния двор на историята и ще невостребованы дори и като средство за обмен на ценности. Така или иначе 2018 година ние помним като година на развитието на интелигентни договори и блокчейн платформи, които все повече ще се отрази на сегмент децентрализираните системи.

Езици за програмиране умни договори

В момента повечето фирми за писане на умни договори използват платформа Ethereum и език за програмиране Солидност. Но вече през следващата година нов блокчейн платформа ще има огромно разнообразие в използваните езици за програмиране. Все по-често ще се прилага като познати езици, като например: С++, C#, Java, Go, Солидност, Kotlin, Rust, Scala, Javascript, Plutus, така и свои собствени: Michelson, Simvolio и др

Такъв брой езици за програмиране в активно развиваща се несъвършена областта поставя под заплаха безопасността на употребата на тази технология и повишава рисковете от възникване на критични ситуации. За опознаването на характеристиките на технологии и езици за програмиране трябва да е минало достатъчно време. Разработчиците също се нуждаят от време, за да овладеят много нюанси на развитие, както и опознаването на правилата за безопасно писане на код. На пазара блокчейн технологии сега е само във фазата на възникване, и блокчейн-общност все още не е достигнало до единна класификация на недостатъци в сигурността и пропуски, които разработчиците могат да използват като модели за безопасно писане на код.

Проблеми от гледна точка на сигурността на умни договори

Сега много блокчейн-платформа (ако не всички) са изправени пред множество технически проблеми: скалируемост, скорост на операциите, неприкосновеността на личния живот, получаване на данни от външни източници, цената на сделката и други. Всички тези проблеми създателите на блокчейн платформи се опитват да решат. В тази статия ние не ще бъдем дълбоко докосват проблеми архитектура блокчейн системи, а да се съсредоточим върху проблемите на сигурността на приложенията.

До данни на проблеми, изграждане на архитектурата на сигурност може да се дължи на следното:

  • В публичното блокчейн-платформи логиката на работа и код умно договора са на разположение на всички участници платформа;
  • Личните данни, съхранени в умните договорите, също са на разположение на всички участници платформа;
  • При получаване на данни от външни централизирани източници, умен договор не може ясно да се гарантира надеждността на тези данни.

Нека да разгледаме всеки един елемент от по-детайлно. За по-голяма яснота ще разгледаме аспектите на безопасността на пример блокчейна Ethereum предвид популярността му.

В блокчейне Ethereum умни договори най-често се разработват в высокоуровневом език за програмиране Солидност, а след това се събират в bytecode, обработват и съхраняват в блокчейн-блок. Ако погледнем от страна на bytecode на всеки договор, това можем да видим в дълъг низ в шестнадесетична система 0x6060604052600261010860005055604051611b51380380611b518339810….

На пръв поглед, да се разбере, че прави умен договор не е възможно. Въпреки това вече има много безплатни инструменти, които ви позволяват да се възстанови opcodes (машинни инструкции, които имат уникален идентификационен номер) от bytecode (последователност от байтове, които се извършват на преводач).

За пример може да се ByteCode To Opcode Disassembler. В резултат можем да се получи още по-четлив код:

PUSH1 0x60
PUSH1 0x40
MSTORE
PUSH1 0x02
PUSH2 0x0108
PUSH1 0x00
ПОП
SSTORE
PUSH1 0x40
MLOAD
PUSH2 0x1b51
CODESIZE

Вече при гледане на opcodes можем да определим и анализираме инструкции, които произвеждат математически операции. Но за повечето разработчици анализ opcodes, поради своята сложност, е малко да се каже.

През август 2017 г. на конференцията Defcon е представен инструмент Porosity, който е първият декомпилятором умни договори за блокчейне Ethereum. Този инструмент ви позволява да доведе до высокоуровневому език за програмиране Солидност всеки bytecode. Сега не е необходимо да се анализира opcodes договор за разбиране на неговата работа. Нападателят може да вземе всеки, публикувани умен договор и да прочетете всички налични в него методи, дори ако разработчиците са се опитали да се скрият някаква логика.

При разработването на интелигентни договори имайте предвид, че всички публикувани данни в блокчейн автоматично стават видими за всички участници платформа. Така че за пренос и съхранение на критично важните данни в прав текст не може да се използва. Грешен пример за проектиране на приложения може да послужи като анонимен система за гласуване, когато всеки участник изпраща своя глас за един или друг изход в прав текст. В този случай атакуващият може да анализира получените гласове и косвено или пряко да повлияят на резултата от гласуването. За да се предотврати публикуването на критични данни в прав текст, трябва да използвате различни видове преобразуване, например, хеширование. Но в такъв случай потребителите умно договор могат да се използват централизиран услуга за автоматизация на процеса на хеширане, което от своя страна също налагат допълнителни рискове за сигурността.

Получаване на данни от външни недоверенных източници също поставя под заплаха изпълнението на заложената логика умно договор. За да направите това, вие трябва да използвате системата на външни Пророчества, които могат да бъдат изложени на риск. Също така и на външния ресурс, към който се случи обръщането във вярата, е изложен на риск от разкриване.

Трябва да се отбележи, че за публични блокчейнов докато не е представен с точен алгоритъм за получаване на данни от външни източници, което би било напълно не е податлива на рискове за сигурността и логиката на когото е било залегнало в протокола блокчейна.

Видове атаки

Приложения и умни договори, които използват блокчейн, са нови и експериментални. Така че трябва да се очакват постоянни промени в архитектурата на сигурност, тъй като се откриват нови грешки и пропуски в сигурността.

За програмирането на интелигентни договори се изисква мислене, различно от използваното при писане на централизирани приложения. Цената на грешки могат да бъдат високи и при невъзможността за ъпгрейд на смарт договор корекция може да бъде също така е невъзможно, което прави развитието в нещо повече прилича на хардуер или програмиране програмиране на финансови приложения от уеб или мобилен развитие. Затова не е достатъчно да се защитава от известни атаки и уязвимости — трябва да се проучи архитектура за изграждане на сигурни приложения.

За много средства сега се споменават и описват технически атака на умни договори, но почти никой не споменава за икономическо-технически нападения и заплахи, които са обвързани с грешки бизнес модел и бизнес логика. Този клас недостатъци в сигурността започва само да се появи, преди създаването на блокчейна и умни договори той присъства в по-малка степен.

Ще се опитаме да се класифицира този вид слабости на сигурността и ще дадем определение, което той е.

Икономическо-технически атака

При проектирането на архитектурата на сложни информационни системи, като се използват интелигентни договори, ние сме екип от разработчици изправени пред факта, че не може ясно да се предвидят и да се предскаже поведението на всички елементи на системата, които могат пряко или косвено да повлияе на логиката на изпълнение на работата. Без изрично представа за броя и вида на получените данни е много трудно да се разработи логика изключване грешки.

Например при разпределението на печалбата от лотарията трудно да се предскаже, колко потребители ще се възползват награда, ако в условията на заложено, че може да спечели повече от един участник. За централизирани приложения разпределение на печалба не би било проблем, но за децентрализирано непредусмотрительность на всички входящи данни могат да изиграят лоша шега, и се стигне до замразяване на финал на умном договора.

Икономическо-техническа «атака» — това е съвкупност от действия на нападателя, което води до нарушаване на икономическата стабилност на информационната система. В резултат на успешна атака може да стане промяна и икономически показатели, съхранявани в информационната система, или с тяхното нарушаване.

Икономическите недостатъци, като правило, не е ясно, видимо и да изисква пълно разбиране на механизма на предаване на ценности в системата, както и взаимодействие на елементи на приложението. За търсене на икономическо-технически недостатъци в умните договорите за предпочитане е да се постигне разбиране на методите на икономическо-математически и система за моделиране, както и принципите на работа на технологията блокчейн. Описателен език на подобни вероятностни зависимости в управлявани и мениджъри на информационни системи е разработена в рамките на тази дисциплина, като икономическа кибернетика.

В широк смисъл под икономическа кибернетикой разбират област на науката, които са възникнали по време на съвместната математика и кибернетика на икономиката, включително и математическо програмиране, изследване на операциите, икономическо-математически модели, эконометрику и математическа икономика.

Икономическа кибернетика разглежда икономиката, както и на нейните структурни и функционални компоненти, като сложна система, в която протичат процесите на регулиране и управление, регистрирано движение и трансформация на информация. Икономическа кибернетика изследва процесите на управление на сложни икономически системи, с помощта на инструментариум экономико-математическо моделиране и управление на процеси, които са по същество информационни, базирующимися на икономическа информация.

За проектирането на сложни блокчейн системи трябва да се вземат предвид основните елементи на икономическата кибернетика:

  • Система за анализ на компонентите на
  • Йерархия на взаимодействие на сложни елементи
  • Йерархично управление на елементи на
  • Съвпадение на целите в йерархична елементи
  • Обработка на получената информация
  • Оптимизиране на потока на информация в областта на управление на
  • Контрол и управление на организационни системи
  • Задачи за класификация
  • Цялостна оценка на елементите на системата
  • Кибернетические модели на социални и икономически системи

Благодарение на използването на блокчейна, икономическа кибернетика като науката е сега, може да получите на второ дишане, тъй като прилагането на блокчейн технологии е пряко свързано с изграждането на икономическите процеси и системи.

Прилагането на икономическата кибернетика при проектирането на приложения за блокчейне трябва да помогне в откриването на труднопрогнозируемых на моделите на поведение, които влияят върху безопасността на това приложение.

Ние не си поставяме за цел да опише всички параметри на икономическата кибернетика. В тази статия само се описва и се дава решение на един от многото задачи — задачи за строителството. Прилагане на методи за икономическа кибернетика, ние сме се опитали да се класифицира икономическо-технически заплахи, които могат да повлияят на определени функционални приложения.

Намери грешка в текста? Маркирайте го и натиснете CTRL+ENTER

Източник: forklog

ВАШИЯТ КОМЕНТАР

Please enter your comment!
Please enter your name here