Fuzzing (original) (raw)

About DBpedia

Fuzzing, también conocido como fuzz testing, es una técnica de pruebas de software desarrollado por el científico Barton Miller para determinar si los puntos débiles de un programa implican un riesgo de seguridad en software o en sistemas de ordenadores. La técnica consiste en proporcionar datos inválidos, inesperados o aleatorios a las interfaces de introducción de datos para comprobar si las rutinas de solución detectan las entradas erróneas. Este proceso puede durar bastante tiempo (incluso días), pero es una medida útil para prevenir problemas tales como caídas, aserciones de código erróneas, o para encontrar potenciales filtraciones de memoria ​.

Property Value
dbo:abstract Fuzz testování (fuzzing) je technika testování softwaru, často automatizovaná alespoň částečně, která na vstup počítačovému programu poskytuje chybná, neočekávaná, nebo náhodná data.U programu jsou při tom monitorovány vzniklé výjimky, jako jsou pády, nesplnění testovacích výrazů, nebo paměťové úniky. Fuzz testování se běžně používá pro testování bezpečnostních problémů v aplikacích a počítačových systémech. Obor zabývající se tímto testováním se díky Bartonu Millerovi zrodil na Univerzitě ve Wisconsinu v roce 1988.Toto rané dílo zahrnuje nejen použití náhodného nestrukturalizovaného testování, ale také sadu nástrojů pro vyhodnocení široké škály softwarových nástrojů na různých platformách. Také umožňuje systematickou analýzu druhu chyb, které byly odhaleny tímto druhem testování. Kromě toho je s veřejným přístupem k dispozici zdrojový kód tohoto nástroje, testovací procedury a surová výsledná data. Program pro fuzz testování má dvě formy, které mohou být využity pro různé druhy testování . Nejčastějším cílem testování jsou formáty souboru a síťové protokoly, ale jakýkoli druh vstupu může být testován. Zajímavé druhy vstupů jsou proměnné prostředí, události klávesnice a myši a pořadí volání API. Dokonce i položky, které nejsou považovány za vstup, mohou být testovány. Jako například obsah databáze, sdílená paměť, nebo přesné prokládání vláken. Pro bezpečnostní účely je nejpodstatnější vstup, který protíná (vstup z nedůvěryhodných zdrojů).Například je mnohem důležitější testovat kód, který zpracovává nahrávání souboru libovolným uživatelem, než testování kódu který analyzuje konfigurační soubor, který je přístupný pouze privilegovaným uživatelům. (cs) فحص عشوائي أو فازينق (بالإنجليزية: Fuzz testing)‏ هي طريقة تستخدم للفحص عن المشاكل الأمنية التي تحدث نتيجة الاخطاء في الترميز أو الثغرات الأمنية سواء كانت في النظام أو في البرامج المستخدمة أو الشبكات من خلال إرسال أو إدخال كمية ضخمة جداً من البيانات العشوائية إلى تطبيقات مختلفة أو إلى الإنترنت. كما قد تم تطويره من قبل بارتون ميلر في جامعة ويسكونسن في عام 1989 م. الفحص العشوائي قد يكون آلي أو شبة آلي كما أنه يعمل بشكل فعال في التعامل مع التهديدات الأمنية التي تؤدي إلى تحطيم البرامج مثل هجمات الحرمان من الخدمة، أو اختراق البرامج النصية عبر الموقع التي غالبا تحدث من خلال القراصنة الخبيثة. وكذلك يكون بصورة أقل فعالية في التعامل مع التهديدات التي من الممكن أن لا تؤدي إلى تدمير التطبيقات مثل برامج التجسس أو الفيروسات أو أحصنة الطروادة. وأهم ما يمتاز به هو الدقة والسرعة في فحص البرامج التي توجد بها ثغرات أمنية أو أخطاء. وفي المقابل من أبرز عيوبه لا يمثل الأمن الكامل للبرامج بسبب اعتماده على وجود برامج أخرى تمكنه من العمل بصورة جيدة كاختبار بيتا أو اختبار الصندوق الاسود ويحجب التفاصيل الفنية. (ar) Fuzzing, auch Robustness Testing, Fuzzy Testing oder Negative Testing, ist eine automatisierte Technik für Softwaretests, bei der das zu testende Programm an einer oder mehreren Eingabeschnittstellen immer wieder mit Zufallsdaten beschickt wird. Mit zufälligen Daten können meistens Situationen im Betrieb des Programms erzeugt werden, die mit anderen Testverfahren nicht erreicht werden. Programme sind häufig nicht auf beliebige Eingangsdaten ausgelegt und können dann bei nicht plausiblen Daten ungewollt abstürzen und damit auch Sicherheitslücken (engl. Vulnerabilities) offenbaren. Daher ist Fuzzing eine der wichtigsten Techniken von Sicherheitsspezialisten. Das Fuzzing (Fuzz-Testing, nach dem englischen Wort fuzzy für „unscharf, verschwommen“) wurde an der Universität von Wisconsin-Madison 1989 von Barton Miller und seinen Studenten entwickelt. (de) Fuzzing, también conocido como fuzz testing, es una técnica de pruebas de software desarrollado por el científico Barton Miller para determinar si los puntos débiles de un programa implican un riesgo de seguridad en software o en sistemas de ordenadores. La técnica consiste en proporcionar datos inválidos, inesperados o aleatorios a las interfaces de introducción de datos para comprobar si las rutinas de solución detectan las entradas erróneas. Este proceso puede durar bastante tiempo (incluso días), pero es una medida útil para prevenir problemas tales como caídas, aserciones de código erróneas, o para encontrar potenciales filtraciones de memoria ​. (es) In programming and software development, fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take structured inputs. This structure is specified, e.g., in a file format or protocol and distinguishes valid from invalid input. An effective fuzzer generates semi-valid inputs that are "valid enough" in that they are not directly rejected by the parser, but do create unexpected behaviors deeper in the program and are "invalid enough" to expose corner cases that have not been properly dealt with. For the purpose of security, input that crosses a trust boundary is often the most useful. For example, it is more important to fuzz code that handles the upload of a file by any user than it is to fuzz the code that parses a configuration file that is accessible only to a privileged user. (en) Le fuzzing (ou test à données aléatoires) est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger. Exemples de points d'entrée d'un programme : * Fichiers * Périphériques (clavier, souris, etc.) * Variables d'environnement * Réseau * Limitation des ressources (mémoire, disque dur, temps CPU, etc.) * etc. Le grand avantage du fuzzing est que l'écriture de tests est extrêmement simple, ne demande aucune connaissance du fonctionnement du système et permet de trouver des vulnérabilités facilement. D'ailleurs, le fuzzing est également utilisé pour traquer des failles de sécurité ou dans la rétro-ingénierie. La première trace du fuzzing est la publication datant du 12 décembre 1990 : « An Empirical Study of the Reliability of UNIX Utilities » [1] écrite par Barton P. Miller, Lars Fredriksen, et Bryan So. Le résumé indique que durant les essais ils ont été capables de faire planter « entre 25 et 33 % des programmes utilitaires de n'importe quelle version d'UNIX ». Le rapport présente les outils de test mais également l'origine des erreurs. Le fuzzing est tellement simple à utiliser et si efficace pour trouver des vulnérabilités que le chercheur en sécurité informatique Charlie Miller a refusé de dévoiler les vulnérabilités zero day trouvées dans le code de logiciels célèbres (contrairement au règlement du concours de sécurité informatique Pwn2Own), afin de protester contre les éditeurs qui n'utilisent pas assez cette technique simple selon lui. Cette simplicité est toutefois à relativiser lorsqu'il s'agit de trouver des vulnérabilités dans l'implémentation de protocoles notoirement connus (HTTP par exemple) dans des serveurs. En effet, les paramètres d'entrée sont souvent testés et protégés rigoureusement (contrôle de forme), chaque erreur menant à un abandon immédiat de la routine de traitement de la requête test. La probabilité de trouver des vulnérabilités par fuzzing en un temps acceptable devient alors très faible. Pour corriger cela, il est nécessaire de recourir au « smart fuzzing », dont le concept consiste à faire varier progressivement certains paramètres de requêtes et de suites de requêtes pouvant être considérées comme légitimes par les automates cibles, ceci afin de pouvoir pénétrer plus en profondeur dans le cœur du programme attaqué et ainsi de maximiser les probabilités d'identification de vulnérabilités. Inversement au fuzzing qui est une méthode de test par boîte noire, la méthode de test par boîte blanche analyse un système dont on connaît exactement le fonctionnement. (fr) Nella programmazione e nello sviluppo software, il fuzzing (o fuzz testing) è una tecnica automatizzata di collaudo del software che prevede l'immissione di dati non validi, imprevisti o casuali come input di un programma tramite appositi programmi detti fuzzer. Il programma da testare viene quindi monitorato per rilevare eventuali errori o falle di sicurezza di un software come arresti anomali, asserzioni errate interne al codice o potenziali memory leak. Tipicamente i fuzzer vengono utilizzati per testare programmi che accettano input strutturati. Questa struttura è specificata, ad esempio, in un formato di file o in un protocollo e distingue gli input validi da quelli non validi. Un fuzzer efficace genera input semi-validi che sono "abbastanza validi" in quanto non vengono rifiutati direttamente dal parser, ma creano comportamenti imprevisti più in profondità nel programma e sono quindi definiti "abbastanza non validi", ovvero fanno saltare fuori i cosiddetti "corner case" (ovvero casi limite non preventivati) che non sono stati adeguatamente trattati. (it) 퍼즈 테스팅(Fuzz testing) 또는 퍼징 (fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재적인 메모리 누수 발견 등 같은 예외에 대한 감시가 이루어진다. 퍼징은 주로 소프트웨어나 컴퓨터 시스템들의 보안 문제를 테스트하기 위해 사용된다. 이것은 하드웨어나 소프트웨어 테스트를 위한 형식이다. 퍼징이라는 분야는 1988년 위스콘신 대학교 매디슨의 바턴 밀러에 의해 생겨났다. 초창기의 연구는 무작위의 구조화되지 않은 테스트 뿐만 아니라, 이런 종류의 테스팅으로 인해 공개되는 오류들을 체계적으로 분석하는 것과 함께 여러 다양한 플랫폼에서의 다양한 소프트웨어 유틸리티들을 평가하기 위한 체계적인 툴들의 집합을 포함하였다. 게다가, 그들은 그들의 툴 소스코드, 테스트 절차 그리고 원자료 결과에 대한 접근도 공개하였다. 퍼징 프로그램의 형태로 변이 기반과 생성 기반 두 종류가 있으며, 화이트, , 또는 블랙박스 검사에 사용된다. 파일 형식과 통신 프로토콜들은 테스트의 가장 흔한 목표이지만, 어떤 종류의 프로그램 입력도 퍼즈될 수 있다. 흥미로운 입력들로는 환경 변수, 키보드와 마우스 이벤트, 그리고 API 호출의 순서 등이 있다. 입력으로 간주되지 않는 이벤트 항목들도 퍼즈될 수 있는데, 데이터베이스, 공유 메모리의 내용 또는 스레드들의 정확한 인터리빙 등이 있다. 보편적인 면에서, 신뢰 범위를 가로지르는 입력이 가장 흥미로운 주제이다. 예를 들면, 모든 유저에게 허용된 파일 업로드를 다루는 코드를 퍼즈하는 것이 오직 권한을 가진 사용자만 접근할 수 있는 설정 파일을 분석하는 코드를 퍼즈하는 것보다 중요하다. (ko) ファジング(英語: fuzzing)とは、コンピュータプログラムヘの入力として、無効なデータ、予期しないデータ、ランダムなデータを用いた自動化ないし半自動化されたソフトウェアテストの手法である。コンピュータプログラムにファズ(「予測不可能な入力データ」の意、英語: fuzz)を与えることで、意図的に例外的な状況を発生させ、その例外的な状況での挙動を確認するという方法を用いる。ファズテスト(fuzz testing)とも呼ばれる。また、ファジングの対象プログラムに対してファズテストを実行するツールは、ファザー(fuzzer)と呼ばれる。 (ja) Fuzz-testen of fuzzing is een techniek die de software van een apparaat test. De techniek dient om programmeerfouten of beveiligingsgaten te vinden door willekeurige data, genaamd fuzz, in het systeem te sturen in een poging om het te doen crashen. Wanneer een kwetsbaarheid is gevonden zal de Fuzz-test de mogelijke oorzaak weergeven. (nl) Fuzz testing (fuzzing) – automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim dziur, przydatnych przy atakach hakerskich[potrzebny numer strony]. Polega ona na zautomatyzowanym wysyłaniu do programu różnego rodzaju losowych danych wejściowych i rejestrowaniu niepożądanych wydarzeń, takich jak crash, wycieki pamięci czy nieautoryzowany dostęp. Dane mogą być wprowadzane: * z linii poleceń, * za pomocą plików otwieranych w programie, * za pomocą zdarzeń klawiatury i myszki, * za pomocą protokołów internetowych. Termin wprowadził Barton Miller z Uniwersytetu Wisconsin-Madison ok. 1989 roku, choć samo podejście było stosowane już wcześniej. Fuzz testing jest mniej skuteczne w przypadku zagrożeń bezpieczeństwa, które nie powodują awarii programu, takich jak spyware, niektóre wirusy, robaki, trojany i keyloggery. Chociaż fuzz testing jest proste, to oferuje wysoki stosunek korzyści do kosztów i może ujawnić poważne defekty, które są pomijane, gdy oprogramowanie jest pisane i debugowane w klasyczny sposób. Nie może jednak dostarczyć pełnego obrazu ogólnego bezpieczeństwa, jakości lub skuteczności programu i jest najbardziej skuteczny w połączeniu z szeroko zakrojonymi testami black box testing, beta testing i innymi metodami debugowania[potrzebny numer strony]. Przy pomocy wolnego i otwartego fuzzera AFL autorstwa Michała „lcamtufa” Zalewskiego wykryto nieznane wcześniej podatności bezpieczeństwa i błędy w dziesiątkach programów i platform, takich jak PuTTY, PHP, OpenSSL, LibreOffice, Firefox, GnuPG, nginx, BIND, curl, Tor, kernelach iOS i OpenBSD, filtrze pakietów NetBSD czy Apache httpd. (pl) Фа́ззинг (англ. fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования (англ. random testing), часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах. При проверке безопасности наибольший интерес вызывают проверки на границе доверия. Например, намного важнее провести фаззинг формы загрузки файлов неавторизованным пользователем, чем загрузку конфигурационного файла авторизованным привилегированным пользователем. (ru) Fuzzing é uma técnica de teste de software, frequentemente automatizada ou semi automatizada, que envolve fornecer dados aleatórios, inválidos ou inesperados como entradas para programas de computador. O programa é então monitorado, analisando exceções, como erros em tempo de execução. Fuzzing é uma técnica comumente utilizada para testar problemas de segurança em softwares ou sistemas computacionais. Existem duas formas de programas fuzzing: baseados em mutação e baseados em geração, que podem ser empregadas como testes de caixa branca, cinza e preta. Os maiores alvos para este tipo de teste são os formatos de arquivos e protocolos de rede, mas qualquer tipo de entrada de programa pode ser criada. Entradas interessantes incluem, variáveis de ambiente, eventos de teclado e mouse, e chamadas de API. Até itens normalmente não considerados "entrada" podem ser gerados, ou fuzificados, como o conteúdo de banco de dados, memória compartilhada, ou trocas de contextos entre threads. Com o objetivo de avaliar o nível de segurança, entradas que ultrapassam as barreiras de segurança são consideradas as mais interessantes. Por exemplo, é mais importante fuzificar código que realiza o upload de um arquivo por qualquer usuário que fuzificar código que analisa arquivo de configuração que é acessível a apenas um usuário privilegiado. (pt) 模糊测试 (fuzz testing, fuzzing)是一种软件测试技术。其核心思想是將自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞。 模糊测试最早由威斯康星大学的Barton Miller于1988年提出。他们的工作不仅使用随机无结构的测试数据,还系统的利用了一系列的工具去分析不同平台上的各种软件,并对测试发现的错误进行了系统的分析。此外,他们还公开了源代码,测试流程以及原始结果数据。 模糊测试工具主要分为两类,变异测试(mutation-based)以及生成测试(generation-based)。模糊测试可以被用作白盒,灰盒或黑盒测试。文件格式与网络协议是最常见的测试目标,但任何程序输入都可以作为测试对象。常见的输入有环境变量,鼠标和键盘事件以及API调用序列。甚至一些通常不被考虑成输入的对象也可以被测试,比如数据库中的数据或共享内存。 对于安全相关的测试,那些跨越可信边界的数据是最令人感兴趣的。比如,模糊测试那些处理任意用户上传的文件的代码比测试解析服务器配置文件的代码更重要。因为服务器配置文件往往只能被有一定权限的用户修改。 (zh) Фазинг (англ. fuzzing,fuzz testing) — техніка автоматизованого тестування програмного забезпечення, яка полягає в тому, що на вхід програми подаються недійсні, невідповідні або випадково згенеровані дані. Таким чином відбувається перевірка на обробку виключних ситуацій, випадкові падіння тощо. Як правило, фазери використовуються для тестування програм, які сприймають на ввід визначені структури даних, наприклад, файли відомого формату. Ефективний фазер може згенерувати потік даних, який стане «досить валідним» для того, щоб пройти початкові перевірки парсера, але при подальшій обробці виявить поведінку програми при перевищенні допустимих значень для певних параметрів або інші неочікувані ситуації. З міркувань безпеки найбільш цікавим є тестування коду, який порушує «рівні довіри». Наприклад, важливо перевірити код, який перевіряє формат файлів перед відправленням їх до сервера на обробку, або парсить конфігураційний файл, який задає налаштування користувача з підвищеними правами. (uk)
dbo:wikiPageExternalLink http://car-online.fr/en/spaces/fabien_duchene/publications/2014-06-PhD_thesis/ https://web.archive.org/web/20160110215132/http:/www.softscheck.com/publications/softScheck%20Pohl%20Cost-Effective%20Identification%20of%20Less-Than%20Zero-Day%20Vulnerabilities%20WPE.pdf http://www.cs.wisc.edu/~bart/fuzz http://www.ee.oulu.fi/research/ouspg/ https://docs.google.com/viewer%3Furl=https%3A%2F%2Fgithub.com%2Fs7ephen%2FRuxxer%2Fraw%2Fmaster%2Fpresentations%2FRuxxer.ppt https://www.youtube.com/watch%3Fv=KAoBCe9coIM http://ieeexplore.ieee.org/xpl/articleDetails.jsp%3Farnumber=6756892&sortType%3Dasc_p_Sequence%26filter%3DAND%28p_IS_Number%3A6756734%29 https://fuzzing-project.org/
dbo:wikiPageID 1710557 (xsd:integer)
dbo:wikiPageLength 45257 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1123514593 (xsd:integer)
dbo:wikiPageWikiLink dbr:Protection_ring dbr:Root_cause_analysis dbr:Message_passing dbr:Morris_worm dbr:Mutation_(genetic_algorithm) dbr:Memory_debugger dbr:Memory_leak dbr:Trust_boundary dbr:Bash_(Unix_shell) dbr:Binary_search_algorithm dbr:Bitwise_operation dbr:Defense_Advanced_Research_Projects_Agency dbr:Arbitrary_code_execution dbr:Responsible_disclosure dbr:Cyclic_redundancy_check dbr:Unix-like dbr:David_Brumley dbr:Deadlock dbr:Debugging dbc:Security_testing dbr:Instrumentation_(computer_programming) dbc:Software_testing dbr:Toolchain dbr:Vulnerability_(computing) dbr:Communications_protocol dbr:Chromium_(web_browser) dbr:Classic_Mac_OS dbr:Environment_variable dbr:FreeBSD dbr:GUI dbr:Glitching dbr:Google_Chrome dbr:Grammar_induction dbr:Concolic_testing dbr:Control-flow_integrity dbr:Corner_case dbr:Dana_Angluin dbr:Random_testing dbr:Aqua_(user_interface) dbr:Libpng dbr:Lighttpd dbr:Linux dbr:MacPaint dbr:Mac_OS_X dbr:Shodan_(website) dbr:Smoke_testing_(software) dbr:Computer_file dbr:Computer_program dbr:Computer_programming dbr:Computer_programming_in_the_punched_card_era dbr:Test_automation dbr:Patch_(computing) dbr:Static_program_analysis dbr:Symbolic_execution dbr:Transport_Layer_Security dbr:Httpd dbr:CERT_Coordination_Center dbr:C_(programming_language) dbr:AddressSanitizer dbr:Data_integrity dbr:Win32 dbr:Windows dbr:Windows_NT dbr:GNU dbr:Cyber_Grand_Challenge dbr:Hash_function dbr:Software_maintainer dbr:Security_bug dbr:Active_learning_(machine_learning) dbr:American_fuzzy_lop_(fuzzer) dbr:Data_transmission dbr:Database dbr:Dynamic_program_analysis dbr:False_positive dbr:File_format dbr:Basic_block dbr:Capture_the_flag_(cybersecurity) dbr:Checksum dbr:Differential_testing dbr:Formal_grammar dbr:Formal_methods dbr:Formal_specification dbr:Glitch dbr:Gray-box_testing dbr:Delta_Debugging dbr:Production_(computer_science) dbr:Real-time_computing dbr:Regression_testing dbr:Heartbleed dbr:Internet_Explorer dbr:Crash_(computing) dbr:Runtime_error_detection dbr:Software_bugs dbr:Abstract_syntax_tree dbr:Black-box_testing dbr:Black_box dbr:System_testing dbr:Code_coverage dbr:Program_transformation dbr:Stack_trace dbr:Thread_(computing) dbr:Model-based_specification dbr:Reference_implementation dbr:Test_oracle dbr:Use-after-free dbr:Division_by_zero dbr:Assertion_(software_development) dbr:Automatic_bug_fixing dbr:Buffer_overflow dbr:Bug_tracking_system dbr:Portable_Network_Graphics dbr:Software_development dbr:Software_testing dbr:Encrypted_communication dbr:Infinite_monkey_theorem dbr:Microsoft dbr:Microsoft_Edge dbr:OneFuzz dbr:Open-source dbr:OpenSSL dbr:Operating_systems dbr:Race_condition dbr:Reduced_instruction_set_computer dbr:Shellshock_(software_bug) dbr:Software_bug dbr:System_call dbr:Model-based_testing dbr:Self-hosting_(web_services) dbr:Shell_(computing) dbr:Software_versioning dbr:Undefined_behavior dbr:Exploit_(computer_security) dbr:Program_analysis dbr:Event_(computing) dbr:Shared_memory dbr:Monkey_testing dbr:Security_testing dbr:White-box_testing dbr:Parser dbr:Steve_Capps dbr:Chromium_web_browser dbr:UNIX dbr:Finite_state_machine dbr:Crash_reporting dbr:Random_data dbr:Error-detecting_code dbr:Denial_of_service dbr:Trillion_(short_scale)
dbp:wikiPageUsesTemplate dbt:ISBN dbt:Main dbt:Reflist dbt:Short_description dbt:Software_testing dbt:Information_security
dct:subject dbc:Security_testing dbc:Software_testing
rdf:type dbo:MusicGenre
rdfs:comment Fuzzing, también conocido como fuzz testing, es una técnica de pruebas de software desarrollado por el científico Barton Miller para determinar si los puntos débiles de un programa implican un riesgo de seguridad en software o en sistemas de ordenadores. La técnica consiste en proporcionar datos inválidos, inesperados o aleatorios a las interfaces de introducción de datos para comprobar si las rutinas de solución detectan las entradas erróneas. Este proceso puede durar bastante tiempo (incluso días), pero es una medida útil para prevenir problemas tales como caídas, aserciones de código erróneas, o para encontrar potenciales filtraciones de memoria ​. (es) ファジング(英語: fuzzing)とは、コンピュータプログラムヘの入力として、無効なデータ、予期しないデータ、ランダムなデータを用いた自動化ないし半自動化されたソフトウェアテストの手法である。コンピュータプログラムにファズ(「予測不可能な入力データ」の意、英語: fuzz)を与えることで、意図的に例外的な状況を発生させ、その例外的な状況での挙動を確認するという方法を用いる。ファズテスト(fuzz testing)とも呼ばれる。また、ファジングの対象プログラムに対してファズテストを実行するツールは、ファザー(fuzzer)と呼ばれる。 (ja) Fuzz-testen of fuzzing is een techniek die de software van een apparaat test. De techniek dient om programmeerfouten of beveiligingsgaten te vinden door willekeurige data, genaamd fuzz, in het systeem te sturen in een poging om het te doen crashen. Wanneer een kwetsbaarheid is gevonden zal de Fuzz-test de mogelijke oorzaak weergeven. (nl) 模糊测试 (fuzz testing, fuzzing)是一种软件测试技术。其核心思想是將自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞。 模糊测试最早由威斯康星大学的Barton Miller于1988年提出。他们的工作不仅使用随机无结构的测试数据,还系统的利用了一系列的工具去分析不同平台上的各种软件,并对测试发现的错误进行了系统的分析。此外,他们还公开了源代码,测试流程以及原始结果数据。 模糊测试工具主要分为两类,变异测试(mutation-based)以及生成测试(generation-based)。模糊测试可以被用作白盒,灰盒或黑盒测试。文件格式与网络协议是最常见的测试目标,但任何程序输入都可以作为测试对象。常见的输入有环境变量,鼠标和键盘事件以及API调用序列。甚至一些通常不被考虑成输入的对象也可以被测试,比如数据库中的数据或共享内存。 对于安全相关的测试,那些跨越可信边界的数据是最令人感兴趣的。比如,模糊测试那些处理任意用户上传的文件的代码比测试解析服务器配置文件的代码更重要。因为服务器配置文件往往只能被有一定权限的用户修改。 (zh) فحص عشوائي أو فازينق (بالإنجليزية: Fuzz testing)‏ هي طريقة تستخدم للفحص عن المشاكل الأمنية التي تحدث نتيجة الاخطاء في الترميز أو الثغرات الأمنية سواء كانت في النظام أو في البرامج المستخدمة أو الشبكات من خلال إرسال أو إدخال كمية ضخمة جداً من البيانات العشوائية إلى تطبيقات مختلفة أو إلى الإنترنت. كما قد تم تطويره من قبل بارتون ميلر في جامعة ويسكونسن في عام 1989 م. (ar) Fuzz testování (fuzzing) je technika testování softwaru, často automatizovaná alespoň částečně, která na vstup počítačovému programu poskytuje chybná, neočekávaná, nebo náhodná data.U programu jsou při tom monitorovány vzniklé výjimky, jako jsou pády, nesplnění testovacích výrazů, nebo paměťové úniky. Fuzz testování se běžně používá pro testování bezpečnostních problémů v aplikacích a počítačových systémech. (cs) Fuzzing, auch Robustness Testing, Fuzzy Testing oder Negative Testing, ist eine automatisierte Technik für Softwaretests, bei der das zu testende Programm an einer oder mehreren Eingabeschnittstellen immer wieder mit Zufallsdaten beschickt wird. Mit zufälligen Daten können meistens Situationen im Betrieb des Programms erzeugt werden, die mit anderen Testverfahren nicht erreicht werden. Programme sind häufig nicht auf beliebige Eingangsdaten ausgelegt und können dann bei nicht plausiblen Daten ungewollt abstürzen und damit auch Sicherheitslücken (engl. Vulnerabilities) offenbaren. Daher ist Fuzzing eine der wichtigsten Techniken von Sicherheitsspezialisten. (de) In programming and software development, fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take structured inputs. This structure is specified, e.g., in a file format or protocol and distinguishes valid from invalid input. An effective fuzzer generates semi-valid inputs that are "valid enough" in that they are not directly rejected by the parser, but do create unexpected behaviors deeper in the program and are "invalid enough" to expose corner cases that have not been properly dealt with. (en) Le fuzzing (ou test à données aléatoires) est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger. Exemples de points d'entrée d'un programme : * Fichiers * Périphériques (clavier, souris, etc.) * Variables d'environnement * Réseau * Limitation des ressources (mémoire, disque dur, temps CPU, etc.) * etc. (fr) 퍼즈 테스팅(Fuzz testing) 또는 퍼징 (fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재적인 메모리 누수 발견 등 같은 예외에 대한 감시가 이루어진다. 퍼징은 주로 소프트웨어나 컴퓨터 시스템들의 보안 문제를 테스트하기 위해 사용된다. 이것은 하드웨어나 소프트웨어 테스트를 위한 형식이다. 퍼징이라는 분야는 1988년 위스콘신 대학교 매디슨의 바턴 밀러에 의해 생겨났다. 초창기의 연구는 무작위의 구조화되지 않은 테스트 뿐만 아니라, 이런 종류의 테스팅으로 인해 공개되는 오류들을 체계적으로 분석하는 것과 함께 여러 다양한 플랫폼에서의 다양한 소프트웨어 유틸리티들을 평가하기 위한 체계적인 툴들의 집합을 포함하였다. 게다가, 그들은 그들의 툴 소스코드, 테스트 절차 그리고 원자료 결과에 대한 접근도 공개하였다. (ko) Nella programmazione e nello sviluppo software, il fuzzing (o fuzz testing) è una tecnica automatizzata di collaudo del software che prevede l'immissione di dati non validi, imprevisti o casuali come input di un programma tramite appositi programmi detti fuzzer. Il programma da testare viene quindi monitorato per rilevare eventuali errori o falle di sicurezza di un software come arresti anomali, asserzioni errate interne al codice o potenziali memory leak. (it) Fuzz testing (fuzzing) – automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim dziur, przydatnych przy atakach hakerskich[potrzebny numer strony]. Polega ona na zautomatyzowanym wysyłaniu do programu różnego rodzaju losowych danych wejściowych i rejestrowaniu niepożądanych wydarzeń, takich jak crash, wycieki pamięci czy nieautoryzowany dostęp. Dane mogą być wprowadzane: * z linii poleceń, * za pomocą plików otwieranych w programie, * za pomocą zdarzeń klawiatury i myszki, * za pomocą protokołów internetowych. (pl) Fuzzing é uma técnica de teste de software, frequentemente automatizada ou semi automatizada, que envolve fornecer dados aleatórios, inválidos ou inesperados como entradas para programas de computador. O programa é então monitorado, analisando exceções, como erros em tempo de execução. Fuzzing é uma técnica comumente utilizada para testar problemas de segurança em softwares ou sistemas computacionais. (pt) Фа́ззинг (англ. fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования (англ. random testing), часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах. (ru) Фазинг (англ. fuzzing,fuzz testing) — техніка автоматизованого тестування програмного забезпечення, яка полягає в тому, що на вхід програми подаються недійсні, невідповідні або випадково згенеровані дані. Таким чином відбувається перевірка на обробку виключних ситуацій, випадкові падіння тощо. Як правило, фазери використовуються для тестування програм, які сприймають на ввід визначені структури даних, наприклад, файли відомого формату. Ефективний фазер може згенерувати потік даних, який стане «досить валідним» для того, щоб пройти початкові перевірки парсера, але при подальшій обробці виявить поведінку програми при перевищенні допустимих значень для певних параметрів або інші неочікувані ситуації. (uk)
rdfs:label فحص عشوائي (ar) Fuzz testování (cs) Fuzzing (de) Fuzzing (es) Fuzzing (en) Fuzzing (it) Fuzzing (fr) 퍼징 (ko) ファジング (ja) Fuzz testing (pl) Fuzz-testen (nl) Fuzzing (pt) Фаззинг (ru) 模糊测试 (zh) Фазинг (uk)
owl:sameAs wikidata:Fuzzing dbpedia-ar:Fuzzing dbpedia-cs:Fuzzing dbpedia-de:Fuzzing dbpedia-es:Fuzzing dbpedia-fa:Fuzzing dbpedia-fr:Fuzzing dbpedia-it:Fuzzing dbpedia-ja:Fuzzing dbpedia-ko:Fuzzing dbpedia-lmo:Fuzzing dbpedia-nl:Fuzzing dbpedia-pl:Fuzzing dbpedia-pt:Fuzzing dbpedia-ru:Fuzzing dbpedia-tr:Fuzzing dbpedia-uk:Fuzzing dbpedia-zh:Fuzzing https://global.dbpedia.org/id/FEXh
prov:wasDerivedFrom wikipedia-en:Fuzzing?oldid=1123514593&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Fuzzing
is dbo:wikiPageDisambiguates of dbr:Fuzz
is dbo:wikiPageRedirects of dbr:Fuzz_testing dbr:Fuzzing_tool dbr:Data-fuzzing dbr:Fuzzer dbr:Test_case_reduction dbr:Fuzz-testing dbr:Fuzz_test dbr:Fuzz_tested dbr:Fuzz_tester dbr:Fuzz_testers dbr:Fuzz_tests dbr:Fuzzers dbr:Fuzzing_test dbr:Fuzztesting
is dbo:wikiPageWikiLink of dbr:Penetration_test dbr:Proxmark3 dbr:Mathias_Payer dbr:Glitching dbr:Corner_case dbr:Thomas_Dang dbr:Lightning_Memory-Mapped_Database dbr:Compiler_correctness dbr:Fault_injection dbr:Test_automation dbr:Fuzz dbr:Fuzz_testing dbr:Fuzzing_tool dbr:Stress_testing_(software) dbr:Microsoft_and_open_source dbr:Mutation_testing dbr:H._D._Moore dbr:DBM_(computing) dbr:Alternate_Instruction_Set dbr:Glitch dbr:2016_Cyber_Grand_Challenge dbr:Halt_and_Catch_Fire_(computing) dbr:Edge_case dbr:Test_oracle dbr:Data-fuzzing dbr:Illegal_opcode dbr:Implementations_of_differentially_private_analyses dbr:Metasploit_Project dbr:Browser_security dbr:Shellshock_(software_bug) dbr:Shotgun_debugging dbr:Undefined_behavior dbr:List_of_unit_testing_frameworks dbr:Robustness_testing dbr:Fuzzer dbr:Syzkaller dbr:Test_case_reduction dbr:Fuzz-testing dbr:Fuzz_test dbr:Fuzz_tested dbr:Fuzz_tester dbr:Fuzz_testers dbr:Fuzz_tests dbr:Fuzzers dbr:Fuzzing_test dbr:Fuzztesting
is foaf:primaryTopic of wikipedia-en:Fuzzing