Интелигентно сканиране. Идентифициране на уязвим софтуер на клиентски компютри Какво е уязвим софтуер

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

Въведение

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

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

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

Класификация на уязвимостите в сигурността

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

Класификация на уязвимостите в сигурността в зависимост от софтуерните грешки:

  • Препълване на буфера. Тази уязвимост възниква поради липсата на контрол върху масива извън границите в паметта по време на изпълнение на програмата. Когато пакет от данни, който е твърде голям, препълни ограничения буфер, съдържанието на външните клетки на паметта се презаписва и програмата се срива и срива. Според местоположението на буфера в паметта на процеса, препълването на буфера се разграничава в стека (препълване на буфера на стека), купчината (препълване на буфера на купчината) и областта на статичните данни (препълване на буфера bss).
  • Уязвимости "замърсен вход" (замърсена входна уязвимост). Уязвимости при повреден вход могат да възникнат, когато потребителското въвеждане се предава без достатъчен контрол на интерпретатор на някакъв външен език (обикновено Unix shell или SQL език). В този случай потребителят може да посочи входни данни по такъв начин, че стартираният интерпретатор да изпълни напълно различна команда от тази, предвидена от авторите на уязвимата програма.
  • Уязвимост на форматиран низ. Този видУязвимостта на сигурността е подклас на уязвимостта на „повреден вход“. Възниква поради недостатъчен контрол на параметрите при използване на формат I/O функции printf, fprintf, scanf и др. стандартна библиотека C език. Тези функции приемат като един от параметрите символен низ, който определя входния или изходния формат за следващите аргументи на функцията. Ако потребителят може сам да зададе типа форматиране, тогава тази уязвимост може да е резултат от неуспешно прилагане на функции за форматиране на низове.
  • Уязвимости в резултат на грешки при синхронизация (състезателни условия). Проблемите, свързани с многозадачността, водят до ситуации, наречени „състезателни условия“: програма, която не е проектирана да работи в многозадачна среда, може да вярва, че например файловете, които използва, когато работи, не могат да бъдат променени от друга програма. В резултат на това нападател, който замени съдържанието на тези работни файлове навреме, може да принуди програмата да извърши определени действия.

Разбира се, в допълнение към изброените има и други класове уязвимости в сигурността.

Преглед на съществуващите анализатори

Следните инструменти се използват за откриване на уязвимости в сигурността на програмите:

  • Динамични дебъгери. Инструменти, които ви позволяват да отстранявате грешки в програма, докато тя работи.
  • Статични анализатори (статични дебъгери). Инструменти, които използват информацията, натрупана по време на статичния анализ на програмата.

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

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

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

Уязвимостите се появяват поради добавянето на компоненти на трети страни или свободно разпространяван код (отворен код) към софтуера. Кодът на други хора често се използва "както е" без задълбочен анализ и тестване за сигурност.

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

Класификация на софтуерните уязвимости

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

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

  1. Грешките в дизайна са най-трудни за откриване и коригиране. Това са неточности на алгоритми, отметки, несъответствия в интерфейса между различни модули или в протоколи за взаимодействие с хардуера, въвеждане на неоптимални технологии. Елиминирането им е много времеемък процес, също и защото могат да се появят в неочевидни случаи - например при превишаване на трафика или при свързано голямо количество допълнително оборудване, което усложнява осигуряването на необходимото ниво на сигурността и води до появата на начини за заобикаляне на защитната стена.
  2. Уязвимостите на внедряването се появяват на етапа на писане на програма или въвеждане на алгоритми за сигурност в нея. Това са неправилна организация на изчислителния процес, синтактични и логически дефекти. Съществува обаче риск пропускът да доведе до препълване на буфера или други видове проблеми. Откриването им отнема много време, а елиминирането включва коригиране на определени части от машинния код.
  3. Грешките в конфигурацията на хардуера и софтуера са много чести. Честите им причини са недостатъчното качествено развитие и липсата на тестове за правилна работа допълнителни функции. В тази категория са включени също прости паролии акаунтите по подразбиране остават непроменени.

Според статистиката уязвимостите най-често се откриват в популярни и разпространени продукти – настолни и мобилни. операционна система, браузъри.

Рискове от използване на уязвими програми

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

Тъй като минава доста време от момента на откриване на уязвимост до публикуването на корекция (пач), има доста възможности за заразяване компютърни системичрез дупки за сигурност в кода. В този случай потребителят трябва само да отвори, например, злонамерен PDF файл с експлойт веднъж, след което нападателите ще получат достъп до данните.

Инфекцията в последния случай се извършва по следния алгоритъм:

  • Потребителят получава електронна пощафишинг имейл от доверен подател.
  • Файлът с експлойта е прикачен към писмото.
  • Ако потребителят се опита да отвори файл, компютърът е заразен с вирус, троянски кон (шифровач) или друг зловреден софтуер.
  • Киберпрестъпниците получават неоторизиран достъп до системата.
  • Крадат се ценни данни.

Изследванията, проведени от различни компании (Kaspersky Lab, Positive Technologies), показват, че има уязвимости в почти всяко приложение, включително антивирусите. Следователно вероятността за инсталиране на софтуерен продукт, съдържащ недостатъци с различна степен на критичност, е много висока.

За да се сведе до минимум броят на пропуските в софтуера, е необходимо да се използва SDL (Security Development Lifecycle, защитен жизнен цикъл на разработка). Технологията SDL се използва за намаляване на броя на грешките в приложенията на всички етапи от тяхното създаване и поддръжка. По този начин, когато проектират софтуер, специалистите по информационна сигурност и програмистите моделират кибер заплахи, за да намерят уязвимости. По време на програмирането в процеса се включват автоматични инструменти, които незабавно съобщават за потенциални недостатъци. Разработчиците се стремят значително да ограничат функциите, достъпни за непроверени потребители, което помага да се намали повърхността на атака.

За да минимизирате въздействието на уязвимостите и щетите от тях, трябва да следвате някои правила:

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

При стартиране интелигентно сканиране Програма Avastще провери вашия компютър за следните видове проблеми и след това ще предложи опции за отстраняването им.

  • Вируси: файлове, съдържащи зловреден код, което може да повлияе на сигурността и производителността на вашия компютър.
  • Уязвим софтуер: Програми, които трябва да се актуализират и могат да бъдат използвани от хакери, за да получат достъп до вашата система.
  • Разширения за браузър с лоша репутация: Разширения на браузъра, които обикновено се инсталират без ваше знание и засягат производителността на системата.
  • Слаби пароли: пароли, които се използват за достъп до повече от една сметкав интернет и може лесно да бъде хакнат или компрометиран.
  • Мрежови заплахи: Уязвимости във вашата мрежа, които биха могли да позволят атаки на вашите мрежови устройства и рутер.
  • Проблеми с производителността: обекти ( Ненужни файловеи приложения, проблеми, свързани с настройките), които могат да попречат на работата на вашия компютър.
  • Конфликтни антивируси: антивирусен софтуер, инсталиран на компютъра с Avast. Многократни антивирусни програмизабавя компютъра и намалява ефективността на антивирусната защита.

Забележка. Някои проблеми, открити от Smart Scan, може да изискват отделен лиценз за разрешаване. Откриването на ненужни типове проблеми може да бъде деактивирано в .

Открити проблеми за решаване

Зелена отметка до областта за сканиране показва, че не са открити проблеми, свързани с нея. Червен кръст означава, че сканирането е идентифицирало един или повече свързани проблеми.

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

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

Управление на настройките за интелигентно сканиране

За да промените настройките на Smart Scan, изберете Настройки Общи Интелигентно сканиранеи посочете за кой от изброените типове проблеми искате да стартирате Smart Scan.

  • Вируси
  • Остарял софтуер
  • Добавки за браузър
  • Мрежови заплахи
  • Проблеми със съвместимостта
  • Проблеми с производителността
  • Слаби пароли

По подразбиране всички видове проблеми са активирани. За да спрете проверката за конкретен проблем, когато извършвате интелигентно сканиране, щракнете върху плъзгача Включенидо типа проблем, така че да промени състоянието на Изключен.

Кликнете Настройкидо надписа Сканиране за вирусиза да промените настройките за сканиране.