октомври 25, 2019

Разбирање на малициозен софтвер

Source: http://xfront.com/malware/index.html

Неодамна се обидов да научам за малициозен софтвер. Да ги организирам моите мисли, создадов модел на релевантни концепти. Malware вклучува софтверски програми, така што ми требаше да моделирам програми – нивните влезови и излези. Научив дека малициозен софтвер вклучува намера да предизвикам штета, затоа требаше да ги моделирам луѓето да создаваат програми со намера (или малициозен или бенигни) и да го моделираат поимот штета. Научив дека не постои општо прифатена дефиниција за малициозен софтвер. Некои луѓе го дефинираат малициозен софтвер како софтвер создаден со злонамерна намера; други го дефинираат како софтвер што предизвикува штета. Ја усвоив дефиницијата дека малициозен софтвер е софтвер создаден со злонамерна намера и кога ги извршувам неговите резултати предизвикуваат штета.

Подолу се дадени изјави за субјектите и односите што ги искажав во мојот модел. Забележете дека ја користам програмата за зборови наместо софтвер. Јас правам разлика помеѓу програмите и влезовите во програмите. Влезовите може да бидат софтвер, код, текст или бинарен. Програми за обработка (извршување/интерпретирање) влезови. Целта е да се утврди кои влезови се малициозен софтвер.

  1. Програмите се создадени од луѓе.
  2. Влезовите во програмите ги создаваат луѓето.
  3. Секој влез во програма произведува по еден излез.
  4. Со оглед на истиот влез, програмата секогаш произведува ист излез.
  5. Создадена е програма за обработка на одреден сет на влезови и производство на одреден пакет на излези. Вистинскиот пакет влезови во програмата и резултатите произведени од програмата може да бидат поголеми. Тоа е, очекуваното I/O е подмножество на вистинскиот I/O.
  6. Кога некое лице создава влез во програмата, тој има или бенигни или малициозни намери.
  7. Некои излези предизвикуваат штета.
  8. Влезовите што програмата е креирана за обработка се бенигни. Резултатите што програмата е креирана да ги произведува не предизвикуваат штета.
  9. Ако горенаведените изјави се задоволни, тогаш логично следат следниве заклучоци:
  • Внесувањата дека е креирана програма за обработка не се малициозен софтвер; само влезовите што програмата не е креирана за обработка, може да бидат малициозен софтвер.
  • Софтверот напишан со бенигна намера може да биде малициозен софтвер. Може да има бенигни влезови што, кога се извршуваат од програма, резултираат со излези што предизвикуваат штета.

Моделирањето вклучува апстракција на нерелевантните аспекти и поедноставување на некои релевантни аспекти. Ги покажав горенаведените изјави на пријател и тој идентификуваше работи што мојот модел ги изостави и поедностави. Подолу се коментарите на моите пријатели, во црвена боја.

1. Програмите се создадени од луѓе.

Некои програми се создадени од други програми. На пример, на Лек му се дава граматика како влез и излегува парсер (што е програма). Значи, програма создаде програма.

2. Влезовите во програмите ги создаваат луѓето.

Повеќето од денешниот софтвер е вграден софтвер. Овие програми ги добиваат своите влезови од сензори и активатори. Значи, повеќето придонеси се од не-луѓе.

3. Секој влез во програма произведува по еден излез.

Ако програмата не успее, може да не произведе никаков излез, или може да произведе погрешен излез, или може да произведе вистински излез во погрешно време (што, во суштина, е иста работа како погрешен излез).

4. Со оглед на истиот влез, програмата секогаш произведува ист излез.

Тоа скоро никогаш не е точно во вградени програми во реално време. На пример, влезот на програмата е вентил за производство на кафе кој го контролира протокот на вода во машината за кафе, а излезот е нивото на водата. Дајте му на програмата ист влез (вентил) и скоро секогаш излезот (нивото на водата) ќе биде различен.

5. Создадена е програма за обработка на одреден сет на влезови и производство на одреден пакет на излези. Вистинскиот пакет влезови во програмата и резултатите произведени од програмата може да бидат поголеми. Тоа е, очекуваното I / O е подмножество на вистинскиот I / O.

Програмата треба секогаш да ги проверува влезовите пред да ги обработи. Значи, збирот на влезови што се обработуваат треба да биде еднаков на сетот на влезови што програмата е креирана за обработка.

6. Кога некое лице создава влез во програмата, тој има или бенигни или малициозни намери.

Како што беше кажано претходно, луѓето не се единствените субјекти што создаваат влезови. Дали сензорите и активаторите имаат намери?

7. Некои излези предизвикуваат штета.

Добро.

8. Влезовите што програмата е креирана за обработка се бенигни. Резултатите што програмата е креирана да ги произведува не предизвикуваат штета.

Размислете за програма што контролира крило. Влезот е од пит-цевка. Да претпоставиме дека има мраз на пит-цевката, што резултира во влез во програмата што произведува излез (конфигурација на крилото) што предизвикува авионот да запре. Влезот е во опсегот што го очекува програмата и има бенигни намери (претпоставувајќи дека пит-цевката има намери), но излезот создава штета.

9. Ако горенаведените изјави се задоволни, тогаш логично следат следниве заклучоци:

  • Внесувањата дека е креирана програма за обработка не се малициозен софтвер; само влезовите што програмата не е креирана за обработка, може да бидат малициозен софтвер.

Уредно.

  • Софтверот напишан со бенигна намера може да биде малициозен софтвер. Може да има бенигни влезови што, кога се извршуваат од програма, резултираат со излези што предизвикуваат штета.

Да, има неколку влезови што се бенигни, а сепак резултираат со штета. Никој немал намера радијациониот систем да предизвика штета, но поради грешки во системот, некој бил убиен.


Потсетете се дека усвоив дефиниција дека малициозен софтвер е софтвер создаден со злонамерна намера и кога егзекутиран предизвикува штета. Еве што мојот пријател мораше да каже за тоа:

Да претпоставиме дека има недостаток во дизајнот на програмата, што изложува ранливост што некој ја експлоатира; дали е тој програм малвер? Дали е бубачки имплементирање на малициозен софтвер само затоа што може да се искористи? Мислам дека тоа беше SSH што имаше грешка во него за нешто како 10 години, сè додека некој не ја искористи бубачката. Дали програмата SSH беше малициозен софтвер 10 години што грешката не беше откриена? Што ако има маана во дизајнот на програмата што има потенцијал да предизвика штета, на пр., Недостаток во софтверот на авионот што може да предизвика да се сруши. Дали е тоа малициозен софтвер?

Последно ажурирано: 19 јуни 2019. Автор: Роџер Костело/Roger Costello