Атерис, пакет со алатки за тестирање на Python Code

Google го претстави неодамна ослободувањето на Атерис проект, што е развој на збир на алатки со отворен извор специјализирана за тестови за замаглување на Python кодот и екстензии за Цајтон напишани на C / C ++.

Проектот користи мотор базиран на libFuzzer и може да се користи заедно со алатките за дезинфекција на адреси и недефинирани средства за дезинфекција за однесување за откривање на дополнителни грешки. Кодот е отворен под лиценцата Апачи 2.0.

За Google Atheris

Според зборовите на Google Atheris, тоа е пакет алатки што може да се користи за автоматско наоѓање грешки во Python-кодот и природните екстензии. Атерис е uzzубител на „покриеност со покриеност“, што значи дека Атерис постојано ќе пробува разни влезови во вашето шоу додека го гледа како работи и ќе се обиде да најде интересни патеки.

Прегледот на кодот за Python 2.7 и Python 3.3+ е поддржан, но за целосно водено покривање, се препорачува да се користат гранките Python 3.8 и 3.9, кои сега поддржуваат статистички податоци за опкодови според опкодови.

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

На пример, при проверка на библиотеката за парсирање YAML во Атерис, откриено е дека некои конструкции на YAML, како што е назначување "-_" наместо цел број или користење список наместо клуч, фрлаат неочекуван исклучок наместо стандардот YAMLErrors грешка

Fuzz тестот е добро позната техника за откривање на грешки во програмирањето. Многу од овие грешки што може да се забележат имаат сериозни безбедносни импликации. Гугл откри илјадници безбедносни пропусти и други грешки при користење на оваа техника. Fuzzing традиционално се користи на мајчин јазик, како C или C ++, но минатата година создадовме нов Python fuzzing мотор. Денес, го ослободивме нејасниот мотор Атерис како отворен извор.

Атерис исто така може да се користи за да се идентификуваат разликите во однесувањето на библиотеки насочени кон идентични задачи. На пример, збирна проверка на пакетот Пајтон „idna“ и библиотеката „libidn2“, кои ја извршуваат задачата за декодирање на интернационализираните имиња на домени, откриле дека тие не секогаш даваат ист резултат.

Една од најдобрите употреби на Атерис е за диференцијални дифузери. Овие се ѓубриња кои бараат разлики во однесувањето на две библиотеки што треба да го прават истото. Еден од примерите на ѓубрива во пакет со Атерис го прави токму ова за да го спореди пакетот „Идна“ на Пајтон со пакетот Ц „libidn2“.

Особено, ако доменот користел секвенци на Уникод, тогаш „idna“ и „libidn2“ го конвертирале интернационализираното име на домен во различни домаќини.

Општо, Атерис е корисен во чистиот питонски код сè додека имате начин да изразите какво е „правилното“ однесување, или барем да изразите кои однесувања се дефинитивно неправилни. Ова би можело да биде сложено како прилагодениот код во фузерот што ја проценува точноста на излезот на библиотеката или едноставно како проверка дали не се појавуваат неочекувани исклучоци.

Важно е да се земе предвид тоа тестовите за размахнување генерираат поток од сите видови на случајни комбинации на влезни податоци, близу до вистинските податоци (на пример HTML страници со случајни параметри за ознаки, датотеки или слики со абнормални заглавија, итн.) и поправете ги можните грешки во процесот.

Ако која било низа резултира со исклучок или не одговара на очекуваниот одговор, ова однесување најверојатно укажува на грешка или ранливост.

Конечно, како што споменавме Атерис работи со Python кодот во верзиите 2.7 и 3.3+, иако Google силно препорачува да се користат 3.8+ и природни наставки напишани за CPython.

Виндоус сè уште не е меѓу поддржаните оперативни системи, затоа моторот засега ги интересира само корисниците на Linux и Mac OS X.

За да го користат на овие платформи, програмерите мора да имаат инсталирана тековна верзија на прегледот на компајлерот Clang.

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


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

Биди прв да коментираш

Оставете го вашиот коментар

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени со *

*

*

  1. Одговорен за податоците: Мигел Анхел Гатон
  2. Цел на податоците: Контролирајте СПАМ, управување со коментари.
  3. Легитимација: Ваша согласност
  4. Комуникација на податоците: Податоците нема да бидат соопштени на трети лица освен со законска обврска.
  5. Складирање на податоци: База на податоци хостирани од Occentus Networks (ЕУ)
  6. Права: Во секое време можете да ги ограничите, вратите и избришете вашите информации.