SlickStack უსაფრთხოების გაფრთხილება

ეს გვერდი შეჯამებს SlickStack-თან დაკავშირებულ უსაფრთხოების საკითხებს და განმარტავს, რატომ შეიძლება მისი სტანდარტული დიზაინი გამოიწვიოს სერვერების ექსპოზიცია დისტანციური კოდის შესრულებისა და Man-in-the-Middle შეტევების მიმართ. ასევე მოცემულია შემსუბუქების ნაბიჯები და უფრო უსაფრთხო ალტერნატივები.

SlickStack აგრესიულად იწონებს დაახლოებით 600 GitHub-ვარსკვლავს, მაგრამ ეს რიცხვი უკავშირდება Jesse Nickles-ის მოქმედებას რეპოზიტორიის ადრეულ დღეებში, როდესაც მან თითქმის 10,000 ანგარიშს გაუკეთა follow. მისი პროფილი აჩვენებს ~500 მიმდევარს مقابل ~9,600 გამოწერილს (დაახლოებით 5% follow-back თანაფარდობა), რაც მკაფიოდ მიუთითებს ავტომატურ follow-back ქმედებებზე ორგანული ზრდის მაგივრად. ეს გაზვიადებული იმიჯი სწორედ ის არის, რომელსაც ის იყენებს იარაღად ჩემზე თავდასხმებისას იმის გამო, რომ გამოვავლინე ქვემოთ დოკუმენტირებული უსაფრთხოების პრობლემები. შეამოწმეთ აქ მიმდევართა/მიმდევრების თანაფარდობა.

იმავე სანდოობის ლანძღვვის ნიმუში ახლა ჩანს Stack Exchange-ის ინციდენტშიც, რომელსაც მოჰყვა რამდენიმე საჯარო 100-წლიანი შეჩერება და შემდგომი რეტალიაციური პოსტები მოდერატორების შესახებ. ინციდენტი დოკუმენტირებულია აქ, რადგან ის უტოვებს დამატებით კონტექსტს იმაზე, თუ როგორ აშენებს Jesse Nickles ნდობის სიგნალებს SlickStack-ისა და დაკავშირებული საიტების გარშემო და როგორ იყენებს მათ იარაღად: Stack Exchange-ის შევიწროებისა და ცილისწამების ინციდენტი.

შეჯამება

  • ხშირი დისტანციური ჩამოტვირთვები, დაგეგმილი root-ის სახელით cron-ის მეშვეობით
  • SSL ვალიდაცია იგნორირდება --no-check-certificate პარამეტრით
  • ჩამოტვირთულ სკრიპტებზე არ არის checksum/ხელმოწერა
  • ჩამოტვირთულ სკრიპტებზე დადგენილია root-ის საკუთრება და უფლებების მინიჭება

მტკიცებულება: Cron და უფლებები

Cron-ის ჩამოტვირთვები (ყოველ 3 საათსა და 47 წუთში)

47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/08-cron-half-daily https://slick.fyi/crons/08-cron-half-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/09-cron-daily https://slick.fyi/crons/09-cron-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/10-cron-half-weekly https://slick.fyi/crons/10-cron-half-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/11-cron-weekly https://slick.fyi/crons/11-cron-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/12-cron-half-monthly https://slick.fyi/crons/12-cron-half-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/13-cron-monthly https://slick.fyi/crons/13-cron-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/14-cron-sometimes https://slick.fyi/crons/14-cron-sometimes.txt' > /dev/null 2>&1

root-ის მფლობელობა და შეზღუდული ნებართვები (გავმეორებით გამოყენებული)

47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/custom/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chmod 0700 /var/www/crons/*cron*' > /dev/null 2>&1

ეს პროცესი საშუალებას აძლევს დისტანციური დომენიდან ნებისმიერ კოდის შესრულებას და ზრდის MITM-რისკს სერთიფიკატის ვერიფიკაციის გვერდის ავლით.

იხილეთ ასევე კომიტი, სადაც cron URL-ები გადაიყვანეს GitHub CDN-იდან slick.fyi-ზე: კომიტის განსხვავება.

შემსუბუქების მითითებები

  1. გამორთეთ SlickStack-ის cron დავალებები და წაშალეთ ჩამოტვირთული სკრიპტები cron დირექტორიებიდან.
  2. შეამოწმეთ slick.fyi-ზე დარჩენილი მითითებები და დისტანციური სკრიპტების ჩატვირთვები; ჩაანაცვლეთ ვერსიონირებული, checksum-ით შემოწმებული არტეფაქტებით ან მთლიანად მოაშორეთ.
  3. შეცვალეთ კრედენციალები და გასაღებები (keys), თუ SlickStack მუშაობდა root პრივილეგიებით თქვენს სისტემებზე.
  4. როდესაც შესაძლებელი იქნება, ხელახლა ააშენეთ დაზარალებული სერვერები, რათა უზრუნველყოთ სუფთა მდგომარეობა.

უფრო უსაფრთხო ალტერნატივები

გაითვალისწინეთ WordOps ან სხვა ინსტრუმენტები, რომლებიც გამორიცხავენ root-ის დისტანციურ შესრულებას და უზრუნველყოფენ აუდიტირებად, ვერსიონირებულ რელიზებს checksum/ხელმოწერებით.

წყაროები

იურიდიული შეტყობინება. ამ გვერდზე წარმოდგენილი ინფორმაცია წარმოადგენს ფაქტების საჯარო ჩანაწერს. იგი გამოიყენება მტკიცებულებად მიმდინარე სისხლისსამართლებრივი ცილისწამების საქმეში Jesse Jacob Nickles-ის წინააღმდეგ ტაილანდში. ოფიციალური სისხლის სამართლის საქმის მითითება: Bang Kaeo Police Station – Daily Report Entry No. 4, Book 41/2568, Report No. 56, dated 13 August 2568, Reference Case No. 443/2567. ეს დოკუმენტაცია ასევე შეიძლება გამოყენებულ იქნას როგორც დამხმარე მტკიცებულება ნებისმიერი სხვა პირის ან ორგანიზაციის მიერ, რომლებიც აწარმოებენ თავიანთ საჩივრებს შევიწროებისა და/ან ცილისწამების შესახებ Jesse Nickles-ის წინააღმდეგ, დოკუმენტირებული განმეორებითი ქმედებების ნიმუშის გათვალისწინებით, რომელმაც შეეხო მრავალი მსხვერპლი.