Fuzzing гэж юу вэ?

Юу гэж бүдүүлэг байна

Танилцуулга: Fuzzing гэж юу вэ?

2014 онд Хятадын хакерууд Олон нийтийн эрүүл мэндийн системд хакерджээ, АНУ-ын ашгийн төлөөх эмнэлгийн сүлжээ бөгөөд 4.5 сая өвчтөний мэдээллийг хулгайлсан байна. Хакерууд хакердахаас хэдэн сарын өмнө OpenSSL криптографийн санд илэрсэн Heartbleed хэмээх алдааг ашигласан байна.

Heartbleed нь халдагчид урьдчилсан шалгалтыг давахад хангалттай хүчинтэй буруу хүсэлт илгээх замаар зорилтот руу нэвтрэх боломжийг олгодог халдлагын векторуудын ангиллын жишээ юм. Програмын өөр өөр хэсгүүд дээр ажилладаг мэргэжилтнүүд түүний аюулгүй байдлыг хангахын тулд чадах бүхнээ хийдэг ч програмыг эвдэж, хөгжүүлэлтийн явцад түүнийг эмзэг болгож болзошгүй бүх булангийн тохиолдлыг бодох боломжгүй юм.

Эндээс л "бүдүүлэг" гарч ирдэг.

Муухай довтолгоо гэж юу вэ?

Fuzzing, fuzz testing эсвэл fuzzing attack нь санамсаргүй, гэнэтийн эсвэл хүчингүй өгөгдлийг (fuzz гэж нэрлэдэг) программд оруулахад ашигладаг автоматжуулсан програм хангамжийн туршилтын арга юм. Программ нь буфер хэт ихсэх, гацах, санах ойн алдагдал, утас гацах, унших/бичих эрх зөрчигдөх зэрэг ер бусын эсвэл гэнэтийн үйлдлүүдийг хянадаг. Дараа нь fuzzing хэрэгсэл буюу fuzzer нь ер бусын зан үйлийн шалтгааныг илрүүлэхэд ашиглагддаг.

Fuzzing нь бүх систем нь илрүүлэхийг хүлээж буй алдаануудыг агуулдаг гэсэн таамаглал дээр суурилдаг бөгөөд үүнийг хийхэд хангалттай цаг хугацаа, нөөцийг өгч болно. Ихэнх системүүд маш сайн задлан шинжлэгч эсвэл оролтын баталгаажуулалтаас сэргийлдэг кибер гэмт хэрэгтнүүд програмын аливаа таамаглалын алдааг ашиглахаас. Гэсэн хэдий ч, дээр дурдсанчлан, хөгжүүлэлтийн явцад булангийн бүх тохиолдлыг хамрах нь хэцүү байдаг.

Fuzzers нь бүтэцлэгдсэн оролтыг хүлээн авдаг эсвэл ямар нэгэн итгэлцлийн хил хязгаартай програмуудад ашиглагддаг. Жишээлбэл, PDF файлыг хүлээн авдаг програм нь файлыг .pdf өргөтгөлтэй, PDF файлыг боловсруулах задлан шинжлэгчтэй эсэхийг баталгаажуулах шаардлагатай.

Үр дүнтэй fuzzer нь эдгээр хил хязгаарыг даван туулахад хангалттай хүчинтэй оролтуудыг үүсгэж чаддаг ч програмын доод хэсэгт гэнэтийн үйлдэл гаргахад хангалттай хүчингүй байдаг. Баталгаажуулалтыг давж гарах нь цаашид ямар нэгэн хохирол учруулахгүй бол тийм ч их ач холбогдолтой биш тул энэ нь чухал юм.

Fuzzers SQL тарилга, сайт хоорондын скрипт, буфер халих, үйлчилгээ үзүүлэхээс татгалзах зэрэгтэй маш төстэй халдлагын векторуудыг илрүүлдэг. Эдгээр бүх халдлага нь системд санамсаргүй, хүчингүй эсвэл санамсаргүй өгөгдлийг оруулсны үр дүн юм. 

 

Фузерын төрлүүд

Фузерүүдийг зарим шинж чанараар ангилж болно:

  1. Довтолгооны бай
  2. Бөөрөнхий үүсгэх арга
  3. Оролтын бүтцийн талаархи мэдлэг
  4. Хөтөлбөрийн бүтцийн талаархи мэдлэг

1. Довтолгооны бай

Энэ ангилал нь fuzzer-ыг туршихад ашиглаж буй платформын төрлөөс хамаарна. Fuzzers нь ихэвчлэн сүлжээний протоколууд болон програм хангамжийн програмуудад ашиглагддаг. Платформ бүр хүлээн авдаг тодорхой төрлийн оролттой тул өөр өөр төрлийн fuzzer шаарддаг.

Жишээлбэл, програмуудтай ажиллах үед хэрэглэгчийн интерфэйс, командын мөрийн терминал, маягт/текст оруулах, файл байршуулах гэх мэт програмын янз бүрийн оролтын сувгууд дээр бүх бүдэг бадаг оролдлого гардаг. Тиймээс fuzzer-ийн үүсгэсэн бүх оролт нь эдгээр сувгуудтай таарч байх ёстой.

Харилцаа холбооны протоколуудтай харьцдаг фузерууд пакетуудтай ажиллах ёстой. Энэ платформыг чиглүүлж буй fuzzers нь хуурамч пакетуудыг үүсгэх эсвэл тасалдсан пакетуудыг өөрчлөх, дахин тоглуулах прокси болж чаддаг.

2. Fuzz үүсгэх арга

Мөн fuzzer-уудыг хэрхэн өгөгдлөөр анивчуулахын тулд хэрхэн үүсгэж байгаагаар нь ангилж болно. Түүхэнд, fuzzers эхнээс нь санамсаргүй өгөгдөл үүсгэх замаар fuzz-ийг бий болгосон. Энэ техникийг санаачлагч профессор Бартон Миллер үүнийг анх ингэж хийсэн юм. Энэ төрлийн fuzzer-ийг a гэж нэрлэдэг үе дээр суурилсан fuzzer.

Гэсэн хэдий ч онолын хувьд итгэлцлийн хил хязгаарыг алгасах өгөгдлийг бий болгох боломжтой боловч үүнийг хийхэд ихээхэн цаг хугацаа, нөөц шаардлагатай болно. Тиймээс энэ аргыг ихэвчлэн энгийн оролтын бүтэцтэй системд ашигладаг.

Энэ асуудлын шийдэл бол итгэлцлийн хил хязгаарыг даван туулах хангалттай хүчинтэй, гэхдээ асуудал үүсгэх хангалттай хүчингүй өгөгдөл үүсгэхийн тулд хүчинтэй гэж мэдэгдэж буй өгөгдлийг мутаци хийх явдал юм. Үүний сайн жишээ бол А DNS fuzzer Энэ нь домэйн нэрийг авч, дараа нь заасан домэйны эзэмшигч рүү чиглэсэн хортой домэйнүүдийг илрүүлэхийн тулд домэйн нэрний том жагсаалтыг үүсгэдэг.

Энэ арга нь өмнөхөөсөө илүү ухаалаг бөгөөд боломжит сэлгэлтийг мэдэгдэхүйц нарийсгадаг. Энэ аргыг ашигладаг fuzzers гэж нэрлэдэг мутацид суурилсан fuzzers

Эмзэг байдлыг арилгахад шаардлагатай хамгийн оновчтой fuzz өгөгдөл дээр нэгдэхийн тулд генетикийн алгоритмуудыг ашигладаг сүүлийн үеийн гуравдахь арга бий. Хөтөлбөрт оруулахдаа туршилтын өгөгдөл бүрийн гүйцэтгэлийг харгалзан үзээгүй өгөгдлийг байнга сайжруулж ажилладаг. 

Хамгийн муу гүйцэтгэлтэй өгөгдлийн багцыг өгөгдлийн сангаас хасдаг бол хамгийн сайн нь мутаци болон/эсвэл нэгтгэдэг. Дараа нь шинэ үеийн өгөгдлийг дахин fuzz test хийхэд ашигладаг. Эдгээр fuzzers гэж нэрлэдэг хувьслын мутацид суурилсан fuzzers.

3. Оролтын бүтцийн талаархи мэдлэг

Энэхүү ангилал нь fuzz өгөгдөл үүсгэхдээ програмын оролтын бүтцийг мэддэг, идэвхтэй ашигладаг эсэх дээр суурилдаг. А тэнэг тэнэг (програмын оролтын бүтцийг мэддэггүй fuzzer) ихэвчлэн санамсаргүй байдлаар fuzz үүсгэдэг. Үүнд үүслийн болон мутацид суурилсан fuzzer-ууд багтаж болно. 


Хэрэв fuzzer програмын оролтын загвараар хангагдсан бол fuzzer нь өгсөн оролтын загвартай таарч өгөгдөл үүсгэх эсвэл өөрчлөхийг оролдож болно. Энэ арга нь хүчингүй өгөгдөл үүсгэхэд зарцуулсан нөөцийн хэмжээг улам бүр багасгадаг. Ийм fuzzer-ийг а гэж нэрлэдэг ухаалаг гажиг.

4. Хөтөлбөрийн бүтцийн талаархи мэдлэг

Мөн fuzzers-ийг тэд бүдэгрүүлж буй програмынхаа дотоод ажиллагааг мэддэг эсэхээс хамаарч ангилж болох бөгөөд энэ ойлголтыг бүдэг бадаг өгөгдөл үүсгэхэд тусалдаг. Хөтөлбөрийг дотоод бүтцийг нь ойлгохгүйгээр шалгахын тулд fuzzers ашигладаг бол үүнийг хар хайрцагны тест гэж нэрлэдэг. 

Хар хайрцагны туршилтын явцад бий болсон fuzz өгөгдөл нь ихэвчлэн санамсаргүй байдлаар байдаг бөгөөд хэрэв fuzzer нь хувьслын мутацид суурилсан fuzzer биш бөгөөд тэнд түүний бүдгэрэлтийн нөлөөг хянаж, үүнийг ашиглан "сурдаг". мэдээлэл түүний fuzz өгөгдлийн багцыг боловсронгуй болгох.

Нөгөө талаас цагаан хайрцагны тест нь тодорхой бус өгөгдлийг үүсгэхийн тулд програмын дотоод бүтцийн загварыг ашигладаг. Энэ арга нь fuzzer програмын чухал цэгүүдэд хүрч, түүнийг шалгах боломжийг олгодог. 

Түгээмэл Fuzzing хэрэгслүүд

Олон шуугиан байна арга хэрэгсэл тэнд үзэг шалгагчид ашигладаг. Хамгийн алдартай зарим нь:

Хязгаарлалтын хязгаарлалт

Fuzzing бол үзэгний туршилтын үнэхээр хэрэгтэй техник боловч алдаа дутагдалтай биш юм. Эдгээрийн зарим нь:

  • Энэ нь гүйхэд нэлээд удаан хугацаа шаардагдана.
  • Хөтөлбөрийн хар хайрцагны туршилтын явцад олдсон эвдрэл болон бусад гэнэтийн үйлдлүүд нь дүн шинжилгээ хийх, дибаг хийх боломжгүй бол хэцүү байж болно.
  • Ухаалаг мутацид суурилсан fuzzer-д зориулсан мутацийн загвар үүсгэх нь цаг хугацаа их шаарддаг. Заримдаа, оролтын загвар нь өмчлөгч эсвэл үл мэдэгдэх учраас боломжгүй ч байж болно.

 

Гэсэн хэдий ч, энэ нь муу хүмүүсээс өмнө алдаануудыг олж илрүүлэхийг хүсдэг хүмүүст маш хэрэгтэй бөгөөд шаардлагатай хэрэгсэл юм.

Дүгнэлт

Fuzzing бол програм хангамжийн эмзэг байдлыг илрүүлэхэд ашиглаж болох хүчтэй үзэг шалгах арга юм. Олон төрлийн fuzzers байдаг бөгөөд шинэ fuzzers байнга хөгжиж байна. Хэдийгээр fuzzing нь үнэхээр хэрэгтэй хэрэгсэл боловч түүнд хязгаарлалт байдаг. Жишээлбэл, fuzzers зөвхөн маш олон эмзэг байдлыг олж чаддаг бөгөөд тэдгээр нь маш их нөөц шаарддаг. Гэсэн хэдий ч, хэрэв та энэ гайхалтай техникийг өөртөө туршиж үзэхийг хүсвэл бид танд байна Манай платформ дээр ашиглах боломжтой үнэгүй DNS Fuzzer API. 

Тэгэхээр та юу хүлээж байна вэ? 

Өнөөдрөөс эргэлзэж эхлээрэй!

Коболдын захидал: HTML-д суурилсан имэйлийн фишинг халдлага

Коболдын захидал: HTML-д суурилсан имэйлийн фишинг халдлага

Коболд захидал: HTML-д суурилсан цахим шуудангийн фишинг довтолгоонууд 31 оны 2024-р сарын XNUMX-нд Luta Security компани Коболд захидал хэмээх шинэ боловсронгуй фишинг векторын талаар гэрэл гэгээ оруулсан нийтлэлийг нийтлэв.

Цааш унших "
Google ба Нууцлалын домог

Google ба Нууцлалын домог

Google болон Нууцлалын домог 1 оны 2024-р сарын XNUMX-нд Google нь Нууцлалын горимоос цуглуулсан олон тэрбум өгөгдлийн бүртгэлийг устгах замаар нэхэмжлэлийг шийдвэрлэхээр тохиролцов.

Цааш унших "
MAC хаягийг хэрхэн хуурах вэ

MAC хаягууд ба MAC хуурамчаар үйлдэх: цогц гарын авлага

MAC хаяг ба MAC хуурамчаар үйлдэх: иж бүрэн гарын авлага Удиртгал Харилцаа холбоог хөнгөвчлөхөөс эхлээд аюулгүй холболтыг идэвхжүүлэх хүртэл MAC хаягууд нь төхөөрөмжийг таних үндсэн үүрэг гүйцэтгэдэг.

Цааш унших "