یوشا

دست نوشته ها و تجربیات شخصی

یوشا

دست نوشته ها و تجربیات شخصی

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی

۶ مطلب با کلمه‌ی کلیدی «Security» ثبت شده است

۲۱
فروردين

اگر شما هم از توسعه دهندگان PHP هستید یا با پروژه های مبتنی بر این زبان سروکار دارید، حتماً میدونید که امنیت کدها چقدر اهمیت داره... باگهای امنیتی میتونن به راحتی به یک کابوس برای کسب و کار تبدیل بشن، مخصوصا از نوع باج افزار/Ransomware اش!

اما خب ابزارهایی وجود دارن که به ما کمک میکنن قبل از رسیدن به مرحله production، مشکلات امنیتی رو شناسایی کنیم... یک خانواده از این ابزارها Security linter ها هستن که با اسکن static کدها، حفره ها و اسیب پذیریهای امنیتی رو برنامه نویس ایجاد کرده رو شنایی و گزارش می کنند.

یکی از این ابزارها، PHP Security Linter هستش که دست ساز خودم هست:

 

PHP Security Linter

این ابزار یک Static analysis tool (تحلیل ایستای کد) برای زبان PHP هست که با اسکن کدها، آسیب پذیری های امنیتی رو بر اساس استانداردهای CIS و OWASP شناسایی میکنه. یعنی بکمک این ابزار و بدون نیاز به اجرای کد، میتونید مشکلاتی مثل SQL Injection، XSS، قرار دادن اطلاعات حساس در کد و غیره... رو پیدا کنید.

 

آدرس مخزن: https://github.com/Yousha/php-security-linter

 

چرا از این ابزار استفاده کنیم؟

  • پشتیبانی از بیش از ۲۰۰ قانون امنیتی (مطابق با CIS و OWASP)

  • سریع و سبک: بدون اجرای کد، آسیب پذیری ها رو تشخیص میده.

  • پشتیبانی از PHP 7.4 و 8.3 

  • خروجی های متنوع: هم بصورت متن در کنسول و هم JSON.

  • قابلیت شخصی سازی: میتونید قوانین خودتون رو اضافه یا برخی رو غیرفعال کنید.

  • مناسب برای DevSecOps: به راحتی با DevSecOps ادغام میشه.

  • با حداقل dependency و سبک!

 

نصب و استفاده

نصبش بسیار سادست، فقط کافیه با Composer اونرو به پروژه اضافه کنید:

composer require --dev yousha/php-security-linter

بعد برای اسکن یک پوشه:

php vendor/bin/php-security-linter --path ./src

اگرم میخوایید پوشه هایی مثل vendor یا tests رو اسکن نکنید:

php vendor/bin/php-security-linter --path ./app --exclude vendor,tests

 

مثال خروجی ابزار

وقتی اسکن انجام میشه، نتیجه رو به صورت خوانا مشاهده میکنید:

Scan Results
========================================

File: /src/auth.php
  ✗ [CRITICAL] OWASP: SQL Injection vulnerability detected (Line 42)
  ✗ [HIGH] CIS: Hardcoded database credentials (Line 15)

File: /src/utils.php
  ✗ [MEDIUM] OWASP: XSS vulnerability possible (Line 88)

Summary: Scanned 24 files, found 3 potential issues.

 

  • یوشا آل ایوب
۰۵
دی

تعریف جرمیابی دیجیتال: به مجموعه فرایند جمع آوری، ارزیابی و ارائه مدارک جمع آوری شده از تجهیزات دیجیتال گفته میشود.

این مدارک دیجیتالی از کامپیوترها، تلفن های همراه، دستگاه های اینترنت اشیا و سرورها به دست می آیند. جرمیابی دیجیتال به حل پرونده های پیچیده ای که بر مدارک دستگاه های دیجیتالی تکیه دارند کمک می کند.

این حوزه کاری زیر مجموعه امنیت سایبری می باشد و به فرد متخصصی که در این حوزه کار میکند متخصص جرمیابی دیجیتال و واکنش به حوادث گفته میشود.

(به انگلیسی Digital Forensics and Incident Response (DFIR))

 

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

Kali

(BackTrack)

سوئیس

رایگان/تجاری

Opensource/Binary

i686, x64

2021

kali.org

BlackArch

آمریکا

رایگان

Opensource/Binary

x64

2021

blackarch.org

Grml

استرالیا

رایگان

Opensource

i686, x64

2021

grml.org

Parrot OS

ایتالیا

رایگان

Opensource/Binary

x64

2021

parrotlinux.org

Pentoo

سوئیس

رایگان

Opensource

i686, x64

2020

pentoo.ch

CAINE

ایتالیا

رایگان

Opensource

x64

2021

caine-live.net

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

ForLEx

ایتالیا

رایگان

Opensource

x86

2019-10

forlex.it

PALADIN

آمریکا

 

تجاری

Opensource/Binary

x86, x64

?

sumuri.com

DEFT Linux

ایتالیا

رایگان

i686

2018-09

deftlinux.net

BackBox Linux

ایتالیا

رایگان

Opensource/Binary

x86, x64

2020

backbox.org

ALT Linux

روسیه

رایگان

Opensource/Binary

i586, x64

2021

en.altlinux.org

 

basealt.ru

radare2

?

رایگان

Opensource

x86

2021

rada.re/n/

ArchStrike

آمریکا

رایگان

Opensource

i686, x64

2021

archstrike.org

Santoku

?

رایگان

Opensource

x64

2014

santoku-linux.com

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

Bugtraq

اسپانیا

رایگان

x86, x64

2013

bugtraq-team.net

URIX OS

بلغارستان

رایگان

x64

2016-01

urix.us

SIFT

؟

؟

x64

2019

digital-forensics.sans.org

Cyborg Linux

هند

رایگان

Opensource

x86

2015

cyborg.ztrela.com

Security Onion

آمریکا

رایگان

Opensource/Binary

x86

2021

securityonion.net

ADIA

?

رایگان

Opensource

x64

2017

forensics.cert.org

NST

آمریکا

رایگان

 Opensource

x64

2021

networksecuritytoolkit.org

Tsurugi Linux

Japan

رایگان

Opensource

x64

2021

https://tsurugi-linux.org


 

دانلود فایل PDF

  • یوشا آل ایوب
۲۵
تیر

مقالات مرتبط:

نکاتی برای افزایش امنیت وبسایت

 

1- حتاالمکان از کتابخانه های template engine برای کدنویسی لایه View/UI وب اپلیکیشن استفاده کنید و نه کدنویسی inline/mixed.

 

2- برای کاهش مصرف پهنای باند و افزایش سرعت سایت، همیشه فایلهای CSS, JavaScript, HTML رو minify و lint کنید:

CSS:

https://github.com/purifycss/purifycss

https://cssnano.co/guides/getting-started

https://github.com/ben-eb/cssnano-cli

https://github.com/css/csso-cli

https://github.com/uncss/uncss

JS:

https://github.com/nolanlawson/optimize-js

 

3- بطور منظم و ماهیانه پهنای باند وبسایت/سرور رو چک کنید.

 

4- یک سیستم اسکنر پیاده کنید که نوع دسترسی و زمان تغییر فایلها و دایرکتوری های کل سایت رو اسکن و به شما گزارش کنه.

 

5- از استفاده بیش از حد کوکی و ذخیره اطلاعات حساس/نمایشی  در داخلشون خودداری کنید.

  • یوشا آل ایوب
۱۸
مهر

مقالات مرتبط:

#2 - نکاتی برای افزایش امنیت وبسایت

 

 

1- مکانیزم و شیوه کار پروتوکل HTTP رو کامل فرا بگیرید.

 

2- همیشه کتابخانه ها و فریم ورکهای استفاده شده در وب اپلیکیشن رو بروز نگه دارید.

 

3- جهت جلوگیری از click-jacking مقدار هدر X-Frame-Options رو DENY قرار بدید:

Apache httpd.conf:

Header always append X-Frame-Options DENY


Apache .htaccess:

Header append X-FRAME-OPTIONS "DENY"


Nginx:

add_header X-Frame-Options "DENY";


PHP:

header('X-Frame-Options: DENY');

 

4- بصورت هفتگی یا ماهیانه کل سایت رو توسط نرم افزارها و سایتهای اسکنر امنیتی چک کنید:

https://observatory.mozilla.org

https://securityheaders.com

https://urlvoid.com

https://virustotal.com
https://immuniweb.com/websec
https://detectify.com
http://amn.bayan.ir
https://ssllabs.com/ssltest/index.html

http://isithacked.com
https://app.upguard.com/webscan
https://app.webinspector.com/online_scan
https://suip.biz/?act=sqlmap
https://pentest-tools.com/home
https://sitecheck.sucuri.net
https://quttera.com
https://siteguarding.com

https://transparencyreport.google.com/safe-browsing/search

 

5- داده های ورودی توسط کاربر را بدقت بررسی، برش و فیلترسازی کنید.

 

6- برای اپلیکیشن، قابلیت debug mode درست کنید تا در مواقع لزوم بتونید فعالیت های اپلیکیشن رو مانیتور و خطازدایی کنید.

  • یوشا آل ایوب
۱۰
خرداد

تهدیدهای سایبری خودروهای مدرن، به دلیل افزایش فناوری‌ های دیجیتال و اتصال به اینترنت، درحال تبدیل شدن به یک چالش جدی هستن... با توسعه سیستم‌ های نرم‌ افزاری، ارتباطات بی‌ سیم و فناوری‌ های خودران، خودروهای امروزی در معرض حملات سایبری مختلفی قرار دارند که میتواند امنیت و حریم خصوصی سرنشینان خودرو را به خطر بیندازد...

مهم‌ ترین تهدیدهای سایبری خودروهای مدرن عبارتند از:

  1. دسترسی غیرمجاز به سیستم‌ های حیاتی: هکرها ممکن است از طریق آسیب‌پذیری‌ های نرم‌افزاری، کنترل سیستم‌ هایی مانند ترمز، فرمان یا حتی موتور را به دست بگیرند و باعث ایجاد حوادث جانی شوند!

  2. سرقت داده‌ های حساس: بسیاری از خودروها اطلاعاتی مانند موقعیت جغرافیایی، تاریخچه سفرها، شماره های تماس، و حتی اطلاعات شخصی راننده را ذخیره می‌ کنند که در صورت نفوذ، می‌تواند مورد سوء استفاده قرار گیرند.

  3. حملات بدافزاری: نصب نرم‌ افزارهای مخرب روی سیستم‌ های خودرو میتواند عملکرد آن را مختل کند یا امکان جاسوسی از کاربر خودرو را فراهم سازد.

  4. حملات به شبکه‌ های ارتباطی خودرو (V2X): خودروهای متصل (Connected cars) از فناوری‌ هایی مانند V2V (ارتباط خودرو با خودرو / VechineToVechile) و V2I (ارتباط خودرو با زیرساخت) استفاده می‌ کنند که در صورت عدم رمزنگاری مناسب داده ها و اتصالات، ممکن است مورد حمله قرار گیرند.

  5. حملات اشغال سرویس (DoS): با overload کردن سیستم‌ های ارتباطی یا عملیاتی خودرو، ممکن است سرویس‌ های حیاتی خودرو از کار بیفتند.

  6. و...

 

در تصویر زیر، برخی از تهدید های خودروهای مدرن توسط شرکت KasperySky طراحی شده است:

  • یوشا آل ایوب
۱۱
شهریور

 

چند نمونه از توابعی که در php.ini بهتره Disable بشن:

apache_child_terminate,
apache_reset_timeout,
unregister_tick_function,
rpc,
exec,
dl,
show_source,
apache_note,
apache_setenv,
closelog,
debugger_off,
debugger_on,
define_syslog_variables,
escapeshellarg,
escapeshellcmd,
ini_restore,
openlog,
passthru,
pclose,
pcntl_exec,
popen,
proc_close,
proc_get_status,
proc_nice,
proc_open,
proc_terminate,
shell_exec,
syslog,
system,
url_exec

 

نکته: این توابع باید در قسمت disable_functions در فایل php.ini قرار بگیرن.

توجه: در سیستم های local اگر از برنامه Composer یا pickle استفاده می کنید نباید توابع escapeshellarg, exec, passthru رو غیرفعال کنید. اگر از برنامه PHPMD استفاده می کنید نباید تابع proc_open و ini_restore رو غیرفعال کنید. و اگر از برنامه PHPCS استفاده می کنید نباید تابع proc_get_status و proc_close رو غیرفعال کنید.

  • یوشا آل ایوب