იცით, რა არის LDAP ინექცია? ეს არის კოდის ინექციის ტექნიკა, რომელიც მიზნად ისახავს აპლიკაციებს, რომლებიც ქმნიან ინექციის მოთხოვნებს მომხმარებლის არასანიტარული შეყვანის გამოყენებით. LDAP (მსუბუქი დირექტორიის წვდომის პროტოკოლი) ჩვეულებრივ გამოიყენება დირექტორიის ძიებისთვის, როგორიცაა მომხმარებლების ავთენტიფიკაციის ან ორგანიზაციული მონაცემების მოძიება. როდესაც თავდამსხმელები აწვდიან სპეციალურად შექმნილ შეყვანის მონაცემებს, რომლებიც შეიცავს LDAP მეტასიმბოლოებს, მათ შეუძლიათ შეცვალონ დირექტორიის მოთხოვნების ლოგიკა მონაცემებზე არასწორად წვდომის ან შეცვლის მიზნით. ფაქტობრივად, LDAP ინექციის დაუცველობა წარმოიქმნება მაშინ, როდესაც ფილტრები დინამიურად იქმნება მომხმარებლის მიერ კონტროლირებადი მნიშვნელობებიდან შეყვანის გაწმენდის ან ვალიდაციის გარეშე.
როგორ მუშაობს: LDAP ინექციის შეტევის მექანიკა #
LDAP ინექციის შეტევა ხდება მაშინ, როდესაც მომხმარებლის მიერ მოწოდებული მონაცემები არასაიმედო გზით არის ინტეგრირებული LDAP მოთხოვნაში. განვიხილოთ login ფილტრი:
(&(cn=” + მომხმარებლის სახელი + “)(მომხმარებლის პაროლი=” + პაროლი + “))თუ თავდამსხმელი ვალიდური მომხმარებლის სახელის ნაცვლად წარადგენს * ან ტერმინატორის თანმიმდევრობას, ფილტრის ლოგიკა უფრო ფართო შეფასების ან ყოველთვის ჭეშმარიტი პირობის სახით იშლება, რაც ეფექტურად გვერდს უვლის ავთენტიფიკაციას. ზუსტად ასე მოქმედებს ეს ინექცია: LDAP ლოგიკის ინექცია დაგეგმილი ქცევის შესაფერხებლად.
ამგვარად, LDAP ინექციის დაუცველობა წარმოიშობა არასანდო შეყვანის გზით შეკითხვების აგებიდან, რომელიც მოიცავს სპეციალურ სიმბოლოებს, როგორიცაა ფრჩხილები, ბრჭყალები და ველური ნიშნები, რომლებიც ცვლის შეკითხვის სემანტიკას.
გარდა ამისა, ისინი მაშინ ხდება, როდესაც აპლიკაციის კოდი მომხმარებლის მონაცემებს არაუსაფრთხოდ კოპირებს LDAP მოთხოვნაში და ვერ ახერხებს მეტასიმბოლოების ნეიტრალიზებას, რაც თავდამსხმელებს საშუალებას აძლევს შეაფერხონ ან მანიპულირონ მოთხოვნის ლოგიკა, მიიღონ წვდომა არაავტორიზებული მონაცემებზე ან შეცვალონ შესრულების ნაკადი.
რატომ არის მნიშვნელოვანი LDAP ინექციის შეტევა? #
LDAP ინექციის შეტევას შეუძლია ავთენტიფიკაციის დარღვევა, მგრძნობიარე ინფორმაციის გაჟონვა ან დირექტორიის სტრუქტურის შეცვლაც კი. Imperva ხაზს უსვამს, რომ საფრთხის შემქმნელებს შეუძლიათ ავთენტიფიკაციის პროცესების დარღვევა, მომხმარებლის სახელების/პაროლების ნახვა ან შეცვლა, მავნე პროგრამების ინსტალაცია და პრივილეგიების ესკალაცია, რაც გამოიწვევს მონაცემთა დარღვევას, რეპუტაციის დაზიანებას და ფინანსურ ზარალს.
LDAP ინექციის დაუცველობამ შეიძლება გავრცელდეს ურთიერთდაკავშირებულ სერვისებში, განსაკუთრებით enterprise გარემო, რომელიც იყენებს LDAP-ს ერთჯერადი შესვლის (SSO), ავტორიზაციის ან მომხმარებლის იდენტიფიკაციისა და ნებართვების კოორდინაციისთვის.
LDAP ინექციის არსებული დაუცველობის ნიშნები #
კიბერუსაფრთხოებაში მმართველობა გულისხმობს, თუ როგორ ავლენს ლიდერობა, პოლიტიკა და ძირითადი საშიშროების ნიშნები:
- კოდი მომხმარებლის შეყვანის მონაცემებს პირდაპირ LDAP ფილტრებში აერთიანებს.
- შეყვანის ვალიდაციის არარსებობა ან გაქცევა.
- შეყვანისას შეუზღუდავად გამოიყენეთ სპეციალური სიმბოლოები, როგორიცაა () * & | =.
- მოულოდნელი მოთხოვნის შედეგები, მაგალითად, ავტორიზაცია წარმატებით ხორციელდება ავტორიზაციის მონაცემების მიუხედავად, ან მომხმარებელთა ფართო სიები მინიმალური შეყვანის შემთხვევაშიც კი ბრუნდება.
მომხმარებლის შეყვანიდან არასწორად აგებულმა მოთხოვნებმა შეიძლება გამოიწვიოს მონაცემების არაავტორიზებული მოძიება ან ლოგიკის გვერდის ავლა.
როგორ შევამციროთ ისინი?
LDAP ინექციის დაუცველობის შემცირება მოიცავს:
ა. შეყვანის ვალიდაცია / დაშვებულთა სია
მხოლოდ ცნობილი, უსაფრთხო სიმბოლოები ან შაბლონები მიიღება. უარყავით ან გაასუფთავეთ საკონტროლო სიმბოლოები, როგორიცაა *, (, ), &, |, =. PortsWigger გირჩევთ LDAP მეტასიმბოლოების შემცველი შეყვანის დაბლოკვას ან მკაცრი ასო-ციფრული შაბლონების აღსრულებას.
ბ. გაქცევა / კოდირება
გამოიყენეთ LDAP-სპეციფიკური გაქცევის ფუნქციები: გამორჩეული სახელის გაქცევა DN კონტექსტებისთვის და ძიების ფილტრის გაქცევა პრედიკატებისთვის. OWASP გთავაზობთ დეტალურ პრევენციის ინსტრუქცია მორგებული ინსტრუქციებით
გ. პარამეტრიზებული მოთხოვნები / უსაფრთხო API-ები
მოერიდეთ ფილტრების შექმნას სტრიქონების შეერთების გზით. გამოიყენეთ LDAP ბიბლიოთეკები, რომლებიც მხარს უჭერენ პარამეტრების შეკავშირებას ან ფილტრის კონსტრუქციის API-ებს (მაგ., UnboundID SDK-ის Filter.createANDFilter(…)), რათა დარწმუნდეთ, რომ მომხმარებლის შეყვანილი მონაცემები განიხილება როგორც მონაცემები და არა როგორც სინტაქსი.
დ. მინიმალური პრივილეგიის პრინციპი (PoLP)
LDAP-ის მინიმალური წვდომის უფლებებით დაკავშირება. ინექციის შემთხვევაშიც კი, ის ზღუდავს თავდამსხმელის მიერ შესასრულებელი ქმედებების ხაზგასმას. PoLP-ის ხაზგასმა კომბინირებულია ნულოვანი ნდობა და MFA ზემოქმედების შესამცირებლად.
ე. უსაფრთხო ჩარჩოები / ბიბლიოთეკები
გამოიყენეთ ჩარჩოები, რომლებიც ავტომატურად გამორიცხავენ ან ასუფთავებენ შეყვანის მონაცემებს და ხელს უშლიან ნედლი შეკითხვების შექმნას.
ვ. კოდის ანალიზის ინსტრუმენტები
.NET-ში გამოიყენეთ CA3005 ანალიზი LDAP ოპერატორებამდე მიმავალი არასანდო HTTP შეყვანის აღმოსაჩენად; გამოასწორეთ ეს პრობლემა შეყვანის გასუფთავებით, გაქცევით ან სიის დაშვებით.
ზ. ტესტირება (სტატიკური, დინამიური, კალმის ტესტირება)
ინტეგრირება გაუკეთეთ როგორც Static AppSec-ს (SAST) და დინამიური (Dast) სკანირება LDAP ინექციის დაუცველობის აღმოსაჩენად როგორც მოსვენების, ასევე გაშვების დროს.
თ. ჟურნალირება, მონიტორინგი, გაფრთხილება
აღმოაჩინეთ ანომალიური ფილტრის ნიმუშები, წარუმატებელი მცდელობები ან მოულოდნელი მოთხოვნის სტრუქტურები. სემპერისი გირჩევთ, რომ აკონტროლოთ Active Directory არარეგულარული LDAP მოთხოვნების ან მეტამონაცემების მანიპულირების თვალსაზრისით.
ტერმინთა განმარტებითი ლექსიკონის შემაჯამებელი ცხრილი #
| ვადა | რაც იმას ნიშნავს, |
|---|---|
| LDAP ინექცია | კოდის ინექციის ტექნიკა, რომელიც იყენებს LDAP ფილტრებში მომხმარებლის მიერ არასანიტარულ შეყვანას. |
| რა არის LDAP ინექცია? | დაუცველობა, რომელიც გამოწვეულია LDAP მოთხოვნების არასანდო შეყვანის გამოყენებით შექმნით. |
| LDAP ინექციის შეტევა | ფაქტობრივი ექსპლუატაცია, სადაც შეყვანა ცვლის LDAP შეკითხვის ლოგიკას ან იძლევა წვდომას. |
| LDAP ინექციის დაუცველობა | კოდის დონის ხარვეზი LDAP ინექციის შეტევების განხორციელების საშუალებას იძლევა. |
რატომ არის ეს მნიშვნელოვანი DevSecOps-ში? #
იყიდება DevSecOps გუნდებიLDAP ინექციის დაუცველობის თავიდან აცილება სასიცოცხლოდ მნიშვნელოვანია ავტორიზაციის ნაკადების და დირექტორიაში მხარდაჭერილი წვდომის კონტროლის უზრუნველსაყოფად. უწყვეტი ინტეგრაცია pipelines უნდა მოიცავდეს სტატიკური კოდის შემოწმებას არაუსაფრთხო შეკითხვის კონსტრუქციისთვის და დინამიურ ტესტირებას ფილტრის მანიპულირებისთვის. უსაფრთხოების მენეჯერებმა უნდა უზრუნველყონ გაქცევის ბიბლიოთეკების გამოყენება, პარამეტრიზებული API-ს გამოყენება და მინიმალური პრივილეგიებისა და შეყვანის ვალიდაციის პოლიტიკის დაცვა.
DevSecOps-ის გაძლიერება Pipelineქსიგენისთან ერთად #
ახლა, როდესაც იცით, რა არის LDAP ინექცია, იცით, რომ თანამედროვე აპლიკაციების მათგან დაცვა მოითხოვს არა მხოლოდ კოდის დონის შესწორებებს. DevSecOps გუნდებმა უნდა უზრუნველყონ უსაფრთხოება მთელ სისტემაში. პროგრამული უზრუნველყოფის განვითარების ციკლი, კოდიდან აწყობამდე და განლაგებამდე.
ინსტრუმენტები, როგორიცაა ქსიგენი გუნდებს მიეცით საშუალება, ადრეულ ეტაპზე აღმოაჩინონ ინექციის რისკები სტატიკური ანალიზის ინტეგრირებით, IaC სკანირება და პოლიტიკის უსაფრთხო აღსრულება პირდაპირ CI/CD სამუშაო პროცესები. არაუსაფრთხო შეკითხვის კონსტრუქციის, დამოკიდებულების რისკების ან არასწორი კონფიგურაციების მუდმივი მონიტორინგით, Xygeni ხელს უწყობს LDAP ინექციის შეტევების თავიდან აცილებას მათ წარმოებამდე მიღწევამდე.
ისეთი პლატფორმების ინტეგრირება, როგორიცაა Xygeni, უსაფრთხოებას განვითარების სიჩქარესთან აკავშირებს, უზრუნველყოფს რეალურ დროში ხილვადობას, ავტომატიზირებულ კონტროლს და დიზაინის მიხედვით უსაფრთხო ინჟინერიაზე მორგებულ გამოსწორების სახელმძღვანელოს.

