﻿<?xml version="1.0" encoding="utf-8"?>
<ArticleSet>
  <ARTICLE>
    <Journal>
      <PublisherName>مرکز منطقه ای اطلاع رسانی علوم و فناوری</PublisherName>
      <JournalTitle>فصلنامه فناوری اطلاعات و ارتباطات ایران</JournalTitle>
      <ISSN>2717-0411</ISSN>
      <Volume>16</Volume>
      <Issue>61</Issue>
      <PubDate PubStatus="epublish">
        <Year>2024</Year>
        <Month>12</Month>
        <Day>7</Day>
      </PubDate>
    </Journal>
    <ArticleTitle>Improving Code Coverage Metrics for Discovering Vulnerabilities in Stateful Network Protocols using Hybrid Fuzzing</ArticleTitle>
    <VernacularTitle>بهبود معیار پوشش کد برای کشف آسیب پذیری در پروتکل‌های شبکه دارای حالت توسط فازینگ ترکیبی</VernacularTitle>
    <FirstPage>72</FirstPage>
    <LastPage>84</LastPage>
    <ELocationID EIdType="doi" />
    <Language>fa</Language>
    <AuthorList>
      <Author>
        <FirstName>حمید</FirstName>
        <LastName>رضایی رهورد</LastName>
        <Affiliation>دانشگاه سجاد</Affiliation>
      </Author>
      <Author>
        <FirstName>مهدی</FirstName>
        <LastName>سالخورده حقیقی</LastName>
        <Affiliation>دانشگاه صنعتی سجاد</Affiliation>
      </Author>
    </AuthorList>
    <History PubStatus="received">
      <Year>2023</Year>
      <Month>10</Month>
      <Day>15</Day>
    </History>
    <Abstract>&lt;p&gt;Fuzzing software is a method for finding security vulnerabilities in applications. In this method, by sending random data to the program, attempts are made to find cases that lead to undesirable behaviors and errors such as memory corruption or unauthorized access. One of the proposed methods for improving and enhancing fuzzing is the use of symbolic analysis and dynamic-symbolic execution. In this method, in addition to generating random data, logical analysis of the program and its symbolic execution are used to generate data that can cover new paths in program execution. In this research, we have shown that the dynamic-symbolic execution method can be used for fuzzing network protocols and also improve this process. For this purpose, the first framework for hybrid fuzzing of network protocols has been designed and implemented. The results on two services dcmtk and dnsmasq show that hybrid fuzzing performs better in terms of code coverage compared to traditional fuzzing. Branch coverage in the dcmtk service improved by 2.71 percent compared to AFLNet, which was able to make the negative performance of NyxNet compared to AFLNet positive. Also, branch coverage in the dnsmasq service improved by 37.72 percent compared to AFLNet and by 11.82 percent compared to NyxNet.&lt;/p&gt;</Abstract>
    <OtherAbstract Language="FA">&lt;p&gt;فازینگ نرم&amp;zwnj;افزار، روشی برای یافتن آسیب&amp;zwnj;پذیری&amp;zwnj;های امنیتی در برنامه&amp;zwnj;های کاربردی است. در این روش با ارسال داده&amp;zwnj;های تصادفی به برنامه، سعی می&amp;zwnj;شود مواردی پیدا شود که منجر به رفتارهای نامطلوب و خطاهایی همچون خرابی حافظه یا دسترسی&amp;zwnj;های غیرمجاز شود. یکی از روش&amp;zwnj;های پیشنهادی برای بهبود و اثربخشی فازینگ، استفاده از تحلیل نمادین و اجرای پویا-نمادین است. در این روش علاوه بر تولید داده&amp;zwnj;های تصادفی، از تحلیل منطقی برنامه و اجرای نمادین آن برای تولید داده&amp;zwnj;هایی استفاده می&amp;zwnj;شود که بتوانند مسیرهای جدیدی از اجرای برنامه را پوشش دهند. در این پژوهش نشان داده&amp;zwnj;ایم که می&amp;zwnj;توان از روش اجرای پویا-نمادین برای فازینگ پروتکل&amp;zwnj;های شبکه استفاده نمود و همچنین این فرایند را بهبود بخشید. بدین منظور اولین چارچوب برای فازینگ ترکیبی پروتکل&amp;zwnj;های شبکه طراحی و پیاده&amp;zwnj;سازی شده است. نتایج بر روی دو سرویس dcmtk و dnsmasq نشان می&amp;zwnj;دهند که فازینگ ترکیبی در معیار پوشش کد نسبت به فازینگ سنتی عملکرد بهتری دارد. پوشش شاخه در سرویس dcmtk مقدار 2.71 درصد نسبت به AFLNet بهبود داشته است که توانسته عملکرد منفی NyxNet نسبت به AFLNet را مثبت نماید. همچنین پوشش شاخه در سرویس dnsmasq نسبت به AFLNet مقدار 37.72 درصد و نسبت به NyxNet مقدار 11.82 درصد بهبود داشته است.&lt;/p&gt;</OtherAbstract>
    <ObjectList>
      <Object Type="Keyword">
        <Param Name="Value">آزمون نرم افزار، آزمون فازینگ</Param>
      </Object>
      <Object Type="Keyword">
        <Param Name="Value">آزمون پروتکل های شبکه</Param>
      </Object>
      <Object Type="Keyword">
        <Param Name="Value">آسیب پذیری</Param>
      </Object>
      <Object Type="Keyword">
        <Param Name="Value">اجرای نمادین</Param>
      </Object>
      <Object Type="Keyword">
        <Param Name="Value">اجرای پویا-نمادین</Param>
      </Object>
    </ObjectList>
    <ArchiveCopySource DocType="Pdf">http://jour.aicti.ir/ar/Article/Download/44407</ArchiveCopySource>
  </ARTICLE>
</ArticleSet>