HTTP/2 പ്രോട്ടോക്കോളിന്റെ വിവിധ നിർവ്വഹണങ്ങളിൽ 8 DoS കേടുപാടുകൾ തിരിച്ചറിഞ്ഞിട്ടുണ്ട്

Netflix, Google എന്നിവയിൽ നിന്നുള്ള ഗവേഷകർ വെളിപ്പെടുത്തി HTTP/2 പ്രോട്ടോക്കോളിൻ്റെ വിവിധ നിർവ്വഹണങ്ങളിൽ എട്ട് കേടുപാടുകൾ ഉണ്ട്, അവ ഒരു നിശ്ചിത രീതിയിൽ നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനകളുടെ ഒരു സ്ട്രീം അയച്ചുകൊണ്ട് സേവനം നിരസിക്കുന്നതിന് കാരണമാകും. HTTP/2 പിന്തുണയുള്ള മിക്ക HTTP സെർവറുകളേയും ഈ പ്രശ്നം ഒരു പരിധിവരെ ബാധിക്കുകയും വർക്കറുടെ മെമ്മറി തീരുകയോ അല്ലെങ്കിൽ വളരെയധികം CPU ലോഡ് സൃഷ്ടിക്കുകയോ ചെയ്യുന്നു. കേടുപാടുകൾ ഇല്ലാതാക്കുന്ന അപ്‌ഡേറ്റുകൾ ഇതിനകം അവതരിപ്പിച്ചിട്ടുണ്ട് nginx 1.16.1/1.17.3 и H2O 2.2.6, എന്നാൽ ഇപ്പോൾ ലഭ്യമല്ല അപ്പാച്ചെ httpd നും മറ്റ് ഉൽപ്പന്നങ്ങൾ.

ബൈനറി ഘടനകളുടെ ഉപയോഗവുമായി ബന്ധപ്പെട്ട HTTP/2 പ്രോട്ടോക്കോളിൽ അവതരിപ്പിച്ച സങ്കീർണതകൾ, കണക്ഷനുകൾക്കുള്ളിലെ ഡാറ്റാ ഫ്ലോകൾ പരിമിതപ്പെടുത്തുന്നതിനുള്ള ഒരു സംവിധാനം, ഒരു ഫ്ലോ മുൻഗണനാ സംവിധാനം, HTTP/2 കണക്ഷനിൽ പ്രവർത്തിക്കുന്ന ICMP പോലുള്ള നിയന്ത്രണ സന്ദേശങ്ങളുടെ സാന്നിധ്യം എന്നിവ മൂലമാണ് പ്രശ്നങ്ങൾ ഉണ്ടായത്. ലെവൽ (ഉദാഹരണത്തിന്, പിംഗ്, റീസെറ്റ്, ഫ്ലോ ക്രമീകരണങ്ങൾ). പല നിർവ്വഹണങ്ങളും നിയന്ത്രണ സന്ദേശങ്ങളുടെ ഒഴുക്കിനെ ശരിയായി പരിമിതപ്പെടുത്തിയില്ല, അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ മുൻഗണനാ ക്യൂ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്തില്ല, അല്ലെങ്കിൽ ഫ്ലോ കൺട്രോൾ അൽഗോരിതങ്ങളുടെ ഉപോൽപ്പന്ന നിർവ്വഹണങ്ങൾ ഉപയോഗിച്ചു.

തിരിച്ചറിഞ്ഞ മിക്ക ആക്രമണ രീതികളും സെർവറിലേക്ക് ചില അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നതിലേക്ക് വരുന്നു, ഇത് ധാരാളം പ്രതികരണങ്ങൾ സൃഷ്ടിക്കുന്നതിലേക്ക് നയിക്കുന്നു. ക്ലയൻ്റ് സോക്കറ്റിൽ നിന്ന് ഡാറ്റ വായിക്കാതിരിക്കുകയും കണക്ഷൻ അടയ്ക്കാതിരിക്കുകയും ചെയ്താൽ, സെർവർ വശത്തുള്ള പ്രതികരണ ബഫറിംഗ് ക്യൂ തുടർച്ചയായി പൂരിപ്പിക്കുന്നു. ഈ സ്വഭാവം നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിനായി ക്യൂ മാനേജുമെൻ്റ് സിസ്റ്റത്തിൽ ഒരു ലോഡ് സൃഷ്ടിക്കുന്നു, കൂടാതെ നടപ്പിലാക്കൽ സവിശേഷതകളെ ആശ്രയിച്ച്, ലഭ്യമായ മെമ്മറി അല്ലെങ്കിൽ സിപിയു ഉറവിടങ്ങളുടെ ക്ഷീണത്തിലേക്ക് നയിക്കുന്നു.

തിരിച്ചറിഞ്ഞ കേടുപാടുകൾ:

  • CVE-2019-9511 (ഡാറ്റ ഡ്രിബിൾ) - സ്ലൈഡിംഗ് വിൻഡോയുടെ വലുപ്പവും ത്രെഡ് മുൻഗണനയും കൈകാര്യം ചെയ്യുന്നതിലൂടെ ഒരു ആക്രമണകാരി ഒന്നിലധികം ത്രെഡുകളിലേക്ക് വലിയ അളവിലുള്ള ഡാറ്റ അഭ്യർത്ഥിക്കുന്നു, 1-ബൈറ്റ് ബ്ലോക്കുകളിൽ ഡാറ്റ ക്യൂവുചെയ്യാൻ സെർവറിനെ നിർബന്ധിക്കുന്നു;
  • CVE-2019-9512 (പിംഗ് ഫ്ലഡ്) - ഒരു HTTP/2 കണക്ഷനിലൂടെ ഒരു ആക്രമണകാരി പിംഗ് സന്ദേശങ്ങളെ തുടർച്ചയായി വിഷലിപ്തമാക്കുന്നു, ഇത് അയച്ച പ്രതികരണങ്ങളുടെ ആന്തരിക ക്യൂ മറുവശത്ത് വെള്ളപ്പൊക്കത്തിലേക്ക് നയിക്കുന്നു;
  • CVE-2019-9513 (റിസോഴ്സ് ലൂപ്പ്) - ഒരു ആക്രമണകാരി ഒന്നിലധികം അഭ്യർത്ഥന ത്രെഡുകൾ സൃഷ്‌ടിക്കുകയും ത്രെഡുകളുടെ മുൻഗണന തുടർച്ചയായി മാറ്റുകയും ചെയ്യുന്നു, ഇത് മുൻഗണനാ ട്രീ ഷഫിൾ ചെയ്യാൻ കാരണമാകുന്നു;
  • CVE-2019-9514 (പ്രളയം പുനഃസജ്ജമാക്കുക) - ഒരു ആക്രമണകാരി ഒന്നിലധികം ത്രെഡുകൾ സൃഷ്ടിക്കുന്നു
    കൂടാതെ ഓരോ ത്രെഡിലൂടെയും ഒരു അസാധുവായ അഭ്യർത്ഥന അയയ്ക്കുന്നു, ഇത് സെർവർ RST_STREAM ഫ്രെയിമുകൾ അയയ്‌ക്കുന്നതിന് കാരണമാകുന്നു, പക്ഷേ പ്രതികരണ ക്യൂ പൂരിപ്പിക്കുന്നതിന് അവ സ്വീകരിക്കുന്നില്ല;

  • CVE-2019-9515 (ക്രമീകരണങ്ങൾ വെള്ളപ്പൊക്കം) - ആക്രമണകാരി ശൂന്യമായ "ക്രമീകരണങ്ങൾ" ഫ്രെയിമുകളുടെ ഒരു സ്ട്രീം അയയ്ക്കുന്നു, അതിന് പ്രതികരണമായി സെർവർ ഓരോ അഭ്യർത്ഥനയുടെയും രസീത് അംഗീകരിക്കണം;
  • CVE-2019-9516 (0-ദൈർഘ്യമുള്ള തലക്കെട്ടുകൾ ലീക്ക്) - ഒരു ആക്രമണകാരി ഒരു അസാധുവായ നാമവും അസാധുവായ മൂല്യവുമുള്ള തലക്കെട്ടുകളുടെ ഒരു സ്ട്രീം അയയ്‌ക്കുന്നു, കൂടാതെ സെർവർ ഓരോ തലക്കെട്ടും സംഭരിക്കുന്നതിന് മെമ്മറിയിൽ ഒരു ബഫർ അനുവദിക്കുകയും സെഷൻ അവസാനിക്കുന്നത് വരെ അത് റിലീസ് ചെയ്യാതിരിക്കുകയും ചെയ്യുന്നു. ;
  • CVE-2019-9517 (ആന്തരിക ഡാറ്റ ബഫറിംഗ്) - ആക്രമണകാരി തുറക്കുന്നു
    നിയന്ത്രണങ്ങളില്ലാതെ ഡാറ്റ അയയ്‌ക്കുന്നതിന് സെർവറിനായുള്ള HTTP/2 സ്ലൈഡിംഗ് വിൻഡോ, പക്ഷേ TCP വിൻഡോ അടച്ച് സൂക്ഷിക്കുന്നു, ഇത് യഥാർത്ഥത്തിൽ സോക്കറ്റിലേക്ക് ഡാറ്റ എഴുതുന്നത് തടയുന്നു. അടുത്തതായി, ആക്രമണകാരി വലിയ പ്രതികരണം ആവശ്യമുള്ള അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നു;

  • CVE-2019-9518 (ശൂന്യമായ ഫ്രെയിമുകൾ ഫ്ലഡ്) - ഒരു ആക്രമണകാരി ഡാറ്റ, തലക്കെട്ടുകൾ, തുടർച്ച, അല്ലെങ്കിൽ PUSH_PROMISE എന്നിങ്ങനെയുള്ള ഫ്രെയിമുകളുടെ ഒരു സ്ട്രീം അയയ്ക്കുന്നു, എന്നാൽ ശൂന്യമായ പേലോഡും ഫ്ലോ ടെർമിനേഷൻ ഫ്ലാഗും ഇല്ലാതെ. ആക്രമണകാരി ഉപയോഗിക്കുന്ന ബാൻഡ്‌വിഡ്‌ത്തിന് ആനുപാതികമല്ലാത്ത, ഓരോ ഫ്രെയിമും പ്രോസസ്സ് ചെയ്യുന്നതിന് സെർവർ സമയം ചെലവഴിക്കുന്നു.

അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക