مدت زمان مطالعه:
0

Application Control یکی از مهمترین Security Profileهای FortiGate برای شناسایی و کنترل برنامههاست. تفاوت اصلی آن با فیلترهای ساده پورت این است که فقط به TCP/UDP Port نگاه نمیکند؛ بلکه با کمک Application Signature و IPS Decoder تلاش میکند نوع واقعی ترافیک را تشخیص دهد، حتی اگر برنامه از پورت غیرمعمول یا رفتار متفاوت استفاده کند.
این مقاله بر اساس FortiOS 7.6 نوشته شده است و هدف آن این است که ادمین شبکه بداند Application Control دقیقاً کجا کاربرد دارد، چه تفاوتی با Web Filter و DNS Filter دارد، برای کنترل VPN، Proxy، Remote Access، DoH و ابزارهای دور زدن Policy چطور باید طراحی شود و در زمان نوشتن Profile باید به چه نکاتی دقت کند.
در مستندات Fortinet، Application Control برای تشخیص ترافیک تعداد زیادی از برنامهها معرفی شده و Fortinet توضیح میدهد که Application Control از IPS Protocol Decoderها برای تحلیل ترافیک و شناسایی برنامهها استفاده میکند. همچنین در FortiOS 7.6 میتوان Application Sensor ساخت، Ruleهای مبتنی بر Category یا Application تعریف کرد و سپس Sensor را روی Firewall Policy اعمال نمود.
مروری بر این مقاله
Application Control در FortiGate پروفایلی است که ترافیک را از نظر نوع برنامه بررسی میکند و بعد بر اساس سیاست ادمین، آن برنامه را Allow، Monitor، Block، Quarantine یا محدود میکند. برای مثال ممکن است ترافیک روی TCP/443 باشد، اما FortiGate با Application Control تشخیص دهد که این ترافیک مربوط به VPN، Proxy، Remote Access، File Sharing، Social Media، GenAI یا DNS over HTTPS است.
این قابلیت برای زمانی مهم است که بستن پورت کافی نیست. امروزه بسیاری از برنامهها روی HTTPS یا پورتهای رایج کار میکنند. اگر فقط پورت را کنترل کنید، ممکن است برنامهای مثل ابزار Remote Access، VPN یا Proxy همچنان از همان مسیر مجاز عبور کند. Application Control تلاش میکند ماهیت برنامه را تشخیص دهد، نه فقط شماره پورت را.
این سه قابلیت گاهی با هم اشتباه گرفته میشوند، اما هرکدام در یک لایه متفاوت تصمیم میگیرند.
| قابلیت | مبنای تصمیمگیری | مثال کاربردی |
|---|---|---|
| DNS Filter | نام دامنه در مرحله DNS Query | Block کردن دامنههای Phishing، Botnet یا Newly Registered Domain |
| Web Filter | URL، Category، Rating و سیاست وب | Block کردن سایتهای Gambling، Malware، Adult یا Proxy Avoidance |
| Application Control | رفتار و Signature برنامه در ترافیک | تشخیص و کنترل AnyDesk، TeamViewer، VPN، Proxy، DoH یا GenAI |
برای مثال اگر هدف شما بستن یک سایت خاص است، Web Filter مناسبتر است. اگر میخواهید Resolve شدن دامنههای مخرب را کنترل کنید، DNS Filter مناسبتر است. اما اگر میخواهید ابزارهای VPN، Proxy یا Remote Access را حتی روی پورتهای رایج تشخیص دهید، Application Control نقش اصلیتری دارد.
FortiGate برای Application Control از Application Signatureها و IPS Decoderها استفاده میکند. یعنی ترافیک عبوری از Policy بررسی میشود و اگر با الگوی یک برنامه یا Category مشخص Match شود، Rule مربوط به آن Application Sensor اعمال میشود.
Ruleها میتوانند بر اساس Category، Technology، Popularity، Risk یا Application مشخص نوشته شوند. برای مثال میتوانید کل Category مربوط به Proxy را Block کنید، اما برای یک برنامه خاص Exception بگذارید. یا میتوانید Remote Accessها را Monitor کنید و فقط ابزارهای پرریسک را Block کنید.
در سازمانهای بزرگ، Application Control فقط برای Block کردن نیست. خیلی وقتها ابتدا در حالت Monitor استفاده میشود تا تیم امنیت بداند کاربران واقعاً از چه برنامههایی استفاده میکنند؛ سپس بر اساس ریسک و نیاز کسبوکار، Policy نهایی نوشته میشود.
اگر کاربران بتوانند از VPN یا Proxy استفاده کنند، ممکن است Web Filter، DNS Filter و حتی بعضی سیاستهای دسترسی دور زده شوند. در این سناریو بهتر است Categoryهای مربوط به Proxy، VPN، Anonymizer و Proxy Avoidance در Application Control بررسی و در صورت نیاز Block شوند.
ابزارهایی مثل AnyDesk، TeamViewer، RustDesk، Chrome Remote Desktop و ابزارهای مشابه در بسیاری از سازمانها ریسک جدی ایجاد میکنند. اگر بدون کنترل استفاده شوند، ممکن است کانال دسترسی خارج از فرآیند رسمی IT ایجاد شود.
در این سناریو میتوانید Remote Accessها را برای کاربران عادی Block کنید، برای تیم IT فقط از IP یا User Group مشخص Allow کنید و همه رخدادها را Log بگیرید.
DNS over HTTPS و DNS over TLS میتوانند باعث شوند DNS Queryهای کاربران از DNS Filter کلاسیک عبور نکند. Application Control میتواند در شناسایی DoH کمک کند، اما برای تشخیص دقیقتر DoH روی HTTPS معمولاً SSL Inspection اهمیت زیادی دارد. FortiGuard برای DNS over HTTPS Signature مشخص دارد و اشاره میکند که برای تشخیص Custom DoH Serverها به Deep Inspection نیاز است.
در FortiOS 7.6، Fortinet برای کنترل بعضی سرویسهای GenAI هم سناریوهای Application Control ارائه کرده است. این موضوع برای سازمانهایی مهم است که میخواهند دسترسی به سرویسهای هوش مصنوعی عمومی را Monitor یا محدود کنند.
برای ساخت Application Control Profile در FortiOS 7.6 از مسیر زیر وارد شوید:
سپس یک Sensor جدید بسازید و Ruleهای موردنیاز را بر اساس Category یا Application مشخص تعریف کنید.
برای یک Policy کاربران سازمانی، ساختار پیشنهادی میتواند این باشد:
| گروه برنامه | Action پیشنهادی | توضیح |
|---|---|---|
| VPN / Proxy / Anonymizer | ابتدا Monitor، سپس Block | برای جلوگیری از دور زدن Policy |
| Remote Access | Block برای کاربران عادی | برای تیم IT میتوان Policy جدا ساخت |
| P2P / File Sharing | Block یا Monitor | بسته به سیاست سازمان |
| GenAI | Monitor یا کنترلشده | برای بررسی Shadow AI و نشت داده |
| Business Applications | Allow | برنامههای مورد نیاز سازمان |
در CLI، Application Control Sensor با دستور config application list ساخته میشود. نمونه زیر یک Sensor پایه میسازد و یک Category را در حالت Monitor قرار میدهد. شماره Categoryها باید در محیط واقعی از GUI یا خروجی FortiGate بررسی شوند.
config application list
edit "APP-Users-Control"
set comment "Application control profile for corporate users - FortiOS 7.6"
set extended-log enable
set other-application-log enable
config entries
edit 1
set category 6
set action monitor
set log enable
next
edit 2
set category 2
set action block
set log enable
next
end
next
end
برای سناریوی GenAI، Fortinet در مستندات FortiOS 7.6 نمونهای ارائه کرده که Category مربوط به GenAI را در Application Sensor مانیتور میکند. ساختار کلی به این شکل است:
config application list
edit "GenAI-Monitor"
config entries
edit 1
set category 36
set action pass
set log enable
next
end
next
end
show application list show application list "APP-Users-Control"
بعد از ساخت Application Control Sensor، باید آن را روی Firewall Policy اعمال کنید. در GUI:
نمونه CLI:
config firewall policy
edit 100
set name "Users-to-Internet"
set srcintf "LAN"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set utm-status enable
set application-list "APP-Users-Control"
set ssl-ssh-profile "certificate-inspection"
set logtraffic all
set nat enable
next
end
اگر تشخیص برنامههای HTTPS برای شما مهم است، ممکن است نیاز باشد بهجای certificate-inspection از deep-inspection استفاده کنید؛ اما Deep Inspection باید با طراحی درست Certificate، استثناها و تست مرحلهای انجام شود.
برای کاربران سازمانی، هدف معمولاً کنترل ابزارهای دور زدن Policy، Remote Access غیرمجاز، P2P و بعضی سرویسهای پرریسک است. پیشنهاد میشود ابتدا Profile در حالت Monitor اجرا شود و بعد از بررسی لاگها، Block مرحلهای انجام شود.
در Guest Network معمولاً سیاست سختگیرانهتر است، چون کاربر عضو سازمان نیست و دسترسی او باید محدود باشد.
برای سرورها باید با احتیاط عمل کرد. سرورها ممکن است برای Update، API، Repository یا SaaS به برنامههای مشخص نیاز داشته باشند. ابتدا Monitor کنید، برنامههای ضروری را مستند کنید و سپس Ruleهای Block را محدود و هدفمند بنویسید.
بخش زیادی از ترافیک امروزی رمزنگاریشده است. اگر FortiGate فقط Certificate Inspection انجام دهد، ممکن است برای بعضی برنامهها اطلاعات کافی برای تشخیص دقیق نداشته باشد. Deep Inspection دید بیشتری میدهد، اما هزینه عملیاتی و فنی هم دارد.
| نوع SSL Inspection | دید FortiGate | اثر روی Application Control |
|---|---|---|
| Certificate Inspection | اطلاعات Certificate، SNI و Metadata محدود | برای تشخیص کلی بعضی برنامهها کافی است، اما برای برنامههای پیچیده محدودیت دارد |
| Deep Inspection | Decrypt، Inspect و Re-encrypt ترافیک | دقت تشخیص را برای بعضی برنامههای HTTPS، DoH و سرویسهای پیچیده بیشتر میکند |
برای دیدن رخدادهای Application Control در GUI، مسیرهای رایج اینها هستند:
برای بررسی تنظیمات از CLI:
show application list show firewall policy
اگر برنامهای تشخیص داده نمیشود، این موارد را بررسی کنید:
| مورد | وضعیت مطلوب |
|---|---|
| نسخه FortiOS | سناریو با FortiOS 7.6 و Patch Version دستگاه تطبیق داده شده باشد |
| Application Sensor | برای هر گروه کاربری Profile جدا ساخته شده باشد |
| Monitor Phase | قبل از Block گسترده، لاگ چند روزه بررسی شده باشد |
| Firewall Policy | utm-status فعال و application-list روی Policy درست اعمال شده باشد |
| SSL Inspection | برای برنامههای HTTPS، نوع Inspection درست انتخاب شده باشد |
| Remote Access | برای کاربران عادی Block و برای تیم IT در Policy جدا کنترل شده باشد |
| VPN / Proxy | ابزارهای دور زدن Policy شناسایی، Monitor و سپس کنترل شده باشند |
| DoH / DoT | کنترل DoH و DoT در کنار DNS Filter و Web Filter بررسی شده باشد |
| Logging | لاگ Application Control فعال و در FortiAnalyzer قابل گزارشگیری باشد |
| Signature Update | Application Control Signature بهروز باشد |