بایگانی برچسب: s

استفاده از APIهای ChatGPT به صورت کاملا رایگان!

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

احتمالا شما هم دوست داشتید که از APIهای OpenAI استفاده کنید ولی هزینه‌های بالایی داشته و اونطوری که باید و شاید، نتونسته شما رو راضی کنه. در این پست، می‌خوام یک راهکار بهتون نشون بدم که به صورت «کاملا رایگان» بتونید از این APIها استفاده کنید. فقط یادتون باشه که این روش رو فقط برای مصارف شخصی استفاده کنید، چون اگر ببریدش روی محصول، ممکنه دردسرساز بشه براتون.

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

پیش‌نیازها

برای این که از این آموزش استفاده کنیم، نیاز داریم این موارد رو بلد باشیم:

  • آشنایی پایه با APIها و این که چطور کار می‌کنند (می‌تونید یکی از مطالب قدیمی من رو بخونید)
  • آشنایی اجمالی با پایتون

همین؟ بله همین!

شروع به کار

نصب کتابخانه‌های مربوطه

مثل هر پروژه دیگری، ابتدا نیاز داریم تا کتابخانه‌ها و چارچوب‌های مربوط به اون رو، روی سیستم خودمون نصب کنیم. چون این پروژه پایتونیه، از ابزار pip استفاده خواهیم کرد.

اما قبل از اون، بهتره یک محیط مجازی پایتون ایجاد کنیم:

virtualenv -ppython3 .venv

بعد از اون، وقتشه که فعالش کنیم:

source .venv/bin/activate

دقت کنید این پروسه فعال‌سازی، در ویندوز کمی متفاوت از مک و لینوکسه که با یک سرچ ساده، می‌تونید بهش برسید. البته توصیه شخصیم اینه که روی ویندوز هم از WSL استفاده کنید که بدون مشکل تمامی کدهایی که در این پست قرار دادم، براتون اجرا بشه (چون هم روی لینوکس، هم مک و هم WSL تستشون کردم).

بعد از فعالسازی، ترمینال شما به این شکل درمیاد:

(venv) ~:$

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

حالا وقتشه که کتابخونه‌های openai و g4f رو نصب کنیم:

pip install "g4f[all]" openai

این دو کتابخونه، دقیقا تنها چیزهایی هستند که ما نیاز داریم!

حالا g4f چیه؟

عبارت g4f مخفف gpt4free و بازی با عبارت gpt for free یعنی «جی‌پی‌تی رایگان»ئه! حالا این کتابخونه چه کاری می‌کنه که gpt رایگان به ما می‌رسونه؟ 😁

کاری که این کتابخونه می‌کنه، اینه که میاد و از providerهای مختلفی که داره (بعضیا مثل Airforce/OpenRouter با خواست خودشون البته در اختیارش قرار دادند) استفاده می‌کنه و به شما امکان استفاده از مدل‌های متنوع هوش مصنوعی مثل GPT, Claude, Mistral و … رو میده. در واقع یک «تلاش برای دمکراتیزه کردن هوش مصنوعی» در نوع خودش می‌تونه محسوب بشه.

و خب نه فقط چت‌بات، که APIهای تولید تصویر (بخصوص با مدل Dall-E) رو هم پشتیبانی درستی داره می‌کنه! اما حقیقتش رو بخواهید، مدل‌های تصویرش به شدت محدودن و بهتره که به همین متنی‌ها قناعت بورزیم 😁

چرا به OpenAI نیاز داریم؟

این هم سوال خوبیه. مگه نگفتیم قرار نیست از خود OpenAI یا سایر فراهم‌کنندگان APIهاش سرویس بگیریم؟ درسته. ولی نیاز داریم به کتابخونه پایتونیش برای این که بتونیم از API لوکالمون استفاده کنیم!

راه‌اندازی API لوکال

خب الان وقتشه یک پنجره ترمینال جدید باز کنید، طبق چیزی که گفته شد، محیط مجازی رو فعال کنید و سپس تایپ کنید:

g4f api

بعدش enter بزنید و صبر کنید تا API بیاد بالا. وقتی API بیاد بالا چنین صحنه‌ای می‌بینید:

و تبریک، API ما قابل استفاده‌ست.

نوشتن کد پروژه

این همه توضیح دادیم تا برسیم به بخش جذاب ماجرا، که نوشتن کدهای پروژه‌مونه!

اول لازم داریم تا کتابخونه‌های لازم رو به پروژه اضافه کنیم:

from openai import OpenAI

این قطعه کد، میاد و کلاس OpenAI رو از کتابخونه openai برای ما در پروژه لود می‌کنه.

بعدش نیاز داریم یک کارخواه OpenAI درست کنیم:

client = OpenAI(
 api_key = "FAKE", 
 base_url = "http://localhost:1337/v1"
)

خب یک توضیحی بدم، کتابخونه OpenAI بدون API Key کار نمی‌کنه. به همین خاطر یک مقدار بی‌خود (در اینجا عبارت FAKE) رو وارد کردیم. در قسمت Base URL هم آمدیم و به این کتابخونه فهموندیم که به جای این که به APIهای خود OpenAI متصل بشه، به لوکال هاست ما متصل بشه.

در واقع کل کار رو اینجا انجام دادیم و حالا مونده یک مرحله! اون هم اینه که یک چت با مدل مورد نظر بسازیم:

response = client.chat.completions.create(
 model = "gpt-4o", 
 messages = [
   {
     "role" : "user",
     "content" : "Hello"
   }
  ],
)

و همونطوری که می‌بینید فرمت پیام‌های ما، فرمت چت و اسم مدلمون هم gpt-4o گذاشتیم. البته امکان استفاده از مدل‌های دیگر هم هست ولی اینجا با gpt-4o کار داشتیم 😁

و حالا وقتشه که نتیجه رو  در ترمینال ببینیم:

print(response.choices[0].message.content)

و تمام!

کد کامل

کد کامل این پروژه هم به این شکل خواهد شد:

from openai import OpenAI

client = OpenAI(
 api_key = "FAKE", 
 base_url = "http://localhost:1337/v1"
)

response = client.chat.completions.create(
 model = "gpt-4o", 
 messages = [
   {
     "role" : "user",
     "content" : "Hello"
   }
  ],
)

print(response.choices[0].message.content)

ملاحظات قانونی

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

مثلا من پیشنهاد می‌کنم برای خیلی از پروژه‌هایی که با g4f قراره بسازید از mixtral-8x22b استفاده کنید. هم خوبه، هم اوپن سورسه و هم فارسی می‌فهمه. یا مثلا llama-3.1-70b و llama-3.1-405b و …

در کل میخوام بگم که می‌تونیم این موضوع رو کاملا درست و قانونی هم در دستان خودمون داشته باشیم و لذت هم ببریم 😎

جمع‌بندی

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

احتمالا در آینده، باز هم ابزار یا API خوب در حوزه هوش مصنوعی و بخصوص هوش مصنوعی زایا (Generative AI) معرفی کنم. امیدوارم که موفق و موید باشید و این آموزش به دردتون خورده باشه.

ضمنا، لطفا از مدل‌های تجاری به صورت غیرقانونی استفاده نکنید 😁

Share

استفاده از LLMها بعنوان سیستم‌عامل، آیا با نسل جدیدی از سیستم‌های عامل روبرو خواهیم شد؟

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

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

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

سیستم‌عامل چیست؟

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

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

سفر به اعماق گنو/لینوکس

احتمالا اسم «لینوکس» یا «گنو/لینوکس» یا «اوبونتو» و امثالهم، به گوشتون خورده، نه؟ اگر از خوانندگان بلاگ من باشید که بیشتر از این‌ها به گوش شما خورده و احتمالا از BSD و Solaris و OpenIndiana و … هم خوندید 😁

گنو/لینوکس یک سیستم‌عامل کامله که از دو بخش تشکیل شده: گنو و لینوکس! حالا گنو چیه و لینوکس چیه؟ با هم بررسی می‌کنیم.

  • لینوکس: یک هسته یا کرنله که در ابتدای دهه ۹۰ میلادی، توسط شخص شخیص لینوس بندیکت تروالدز که در اون زمان ۲۱ سالش بوده، ساخته شده. این هسته سیستم عامل (kernel) وظیفه‌ش مدیریت فرایندها و سخت‌افزاره. در واقع این هسته، میاد می‌شینه وسط سیستم‌عامل و اون تعامل لازم رو با سخت‌افزار و فرایند‌ها برای ما تسهیل می‌کنه.
  • گنو: مجموعه‌ای از ابزارهاست که بعنوان بخشی از جنبش نرم‌افزار آزاد در سال ۱۹۸۳ میلادی به رهبری ریچارد متیو استالمن ساخته شده. گنو، سیستم‌عاملی بود استالمن به عنوان یک اکت اعتراضی نسبت به سیاست‌های AT & T در قبال کد منبع یونیکس، شروع به ساختش کرد.

حالا گنو/لینوکس چیه؟ خیلی ساده بخواهیم بگیم، گنو یک سری ابزارهای مورد نیاز کاربره و در فضای کاربر یا User Space اجرا میشه. اگر دوست دارید بیشتر در موردش بدونید، می‌تونید مستندات گنو و استانداردهای مربوطه رو مطالعه کنید.

ولی خب بذارید یکم ساده‌ترش کنیم. فرض کنیم که ما یک هسته سیستم‌عامل داریم که داره به خوبی و خوشی، با سخت‌افزار ارتباط می‌گیره و کارش رو می‌کنه. اما نیاز داریم که یوزر بتونه از طریقی، فرایندهای مد نظر خودش یا همون «برنامه‌»ها رو اجرا کنه. به همین خاطر نیاز به یک «پوسته» یا shell هم داریم. مثلا گنو، یک ابزار بسیار خوبی داره به نام bash که این کار رو انجام می‌ده.

از طرفی، اصلا وقتی برنامه رو نوشتیم، با چی باید اجراش کنیم؟ اینجا ابزارهایی مثل GNU Binutils خودشون رو نشون میدن. البته لازم به ذکره که با ابزارهایی مثل GNU Compiler Collection یا GCC هم برنامه‌ها رو می‌تونیم بسازیم.

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

پس هوش مصنوعی چه؟ از آن نور وارد می‌شود

خب اینجا جا داره که ما بریم و کمی با مفاهیم و مطالب مربوط به هوش مصنوعی آشنا شیم.

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

خیلی بی‌راه فکر نمی‌کنید البته، ولی بیایید کمی ابتدا LLMها رو بشناسیم و بعد بریم سراغ این که LLM OS یا «سیستم‌عامل مدل زبانی بزرگ» چطور کار خواهد کرد برامون 🙂

شناخت بهتر LLMها

قبلا در پست مربوط به مارال ۷ میلیارد پارامتری (لینک) و پستی که درش از چیرگی زبان انگلیسی روی دنیای AI شکایت و گله کرده بودم (لینک) در مورد LLMها صحبت کردم. اما بهتره که کمی در موردشون بیشتر با هم بدونیم.

LLM چیست؟

مدل‌های زبانی بزرگ (به انگلیسی Large Language Model) مدل‌ها و ابزارهای مبتنی بر هوش مصنوعی هستن که با تکنیک‌های یادگیری عمیق مثل RLHF یا یادگیری تقویتی با بازخورد انسانی تربیت میشن. در واقع این مدل‌ها یک هدف بیشتر ندارند: بیشترین نزدیکی به زبان آدمیزاد.

یکی از دلایلی که مدل‌هایی مثل GPT-2 یا Bloom زمان خودشون خیلی ترکوندند، این بود که اون موقع بهترین شکل ممکن رو برای تولید زبان داشتند اما خب GPT-3 و LLaMa 3.1 و …؛ به شدت در این زمینه بهتر عمل کردند.

مدل‌های زبانی بزرگ، معمولا اینطوری کار می‌کنند:

همون‌طوری که می‌بینید، کاربر یه محتوایی رو برای LLM فراهم می‌کنه که اینجا گفته recite the first law و بعد مدل، اومده بر اساس داده‌ای که انسان‌ها پیش‌تر بهش دادند، یک سری کلمه پیشنهاد میده. مثلا اینجا، در حال بیان قوانین سه‌گانه رباتیک ایزاک آسیموفه.

اما از این موضوع بگذریم، یک بحث دیگر هم که LLMها به خوبی می‌تونن درکش کنن و این برمی‌گرده به تعداد متغیرهایی که در داده ورودی دیدن، ارتباط معنایی بین کلمات می‌تونه باشه که خب با توجه به این که عمده LLMها در حال حاضر Human Feedback یا بازخورد انسانی در مرحله پیش‌آموزششون دخیله، چیز عجیبی نیست و ناظرین انسانی، بهشون بازخورد لازم رو میدن.

کاربردهای LLMها

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

  • تولید محتوا برای وبلاگ، وبسایت و MVP
  • تولید محتوا برای ویدئوهای یوتوب و اینستاگرام
  • تولید کد
  • تولید داستان برای بازی‌های رایانه‌ای
  • تولید کدهای SQL
  • و …

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

کدام سیستم‌عامل‌ها، به هوش مصنوعی مجهز شدند؟

در حال حاضر مایکروسافت با ارائه Copilot و اپل با ارائه Apple Intelligence تا حد خوبی، هوش مصنوعی رو به سیستم‌های عاملشون آوردند.

همچنین اگر اشتباه نکنم دو سه ماه پیش بود که مایکروسافت ایده‌ای به اسم Copilot+PC رو مطرح کرد که کوپایلت، بیاد و حرکات کاربر رو زیرنظر بگیره و بعد بهش پیشنهاد بده چطور می‌تونه بهتر از کامپیوترش استفاده کنه و خب می‌دونید چه فاجعه حریم‌ خصوصی می‌تونست بشه!

اما در حال حاضر، این که LLMها بتونن سیستم‌عامل رو «کنترل کنن» چیزیه که در حد چندین پروژه آزمایشگاهی مونده و به اون شکل، تجاری‌سازی نشده. چیزی که این همه تا اینجا در موردش خوندید و از اینجا به بعد قراره تازه جذاب باشه :))

رویای کارپاتی: سیستم‌عامل مبتنی بر LLMها

چندی پیش، آندره کارپاتی (که از بزرگان هوش مصنوعی و علوم کامپیوتره) در یوتوب ویدئوی با عنوان مقدمه‌ای بر LLMها منتشر کرد و چیزی حدود یک ساعت در مورد پتانسیل‌های این مدل‌ها، حرف زد و در نهایت ایده LLM OS رو مطرح کرد 🙂

سیستم‌عامل مبتنی بر LLM چطور قراره کار کنه؟

خب بیایید بریم به همون گنو/لینوکس. وقتی شما «ترمینال» رو باز می‌کنید، قراره چه اتفاقی بی‌افته؟ آفرین قراره shell رو ببینید. بعدش چه اتفاقی می‌افته؟ شما شروع می‌کنید به وارد کردن دستورات سیستم‌عامل. مثلا با دستور ls می‌تونید بیایید و محتویات یک پوشه رو ببینید.

حالا فرض کنید جای این که دستورات ترمینال لینوکس رو حفظ کنید، به فارسی یا انگلیسی، برای کامپیوترتون توضیح بدید. این دقیقا میشه کاری که LLM قراره در سیستم‌عامل برای ما انجام بده.

چطور این اتفاق می‌افته؟ در اکثر زبان‌های برنامه‌نویسی ما قادر هستیم که از subprocessها استفاده کنیم. یعنی با کمک subprocessها و LLM می‌تونیم اینطوری کار رو پیش ببریم:

  • شما به سیستم‌عامل می‌گید که «برنامه X رو باز کن»
  • سیستم‌عامل از طریق یک رابط متنی یا صوتی، این دستور رو از شما می‌گیره و به LLM ارسال می‌کنه.
  • حالا LLM طوری تنظیم شده که اون رو به یک subprocess تبدیل کنه و اجراش کنه، کد مربوطه رو تولید و اجرا می‌کنه.
  • بعد از اجرا، برنامه X اجرا میشه (اونطوری که ازش خواستید) و نتیجه توسط LLM به شما گفته میشه.

خیلی دقیق بخواهید بهش نگاه کنید، میشه شبیه چیزی مثل Jarvis در فیلم‌های Iron Man یا حتی «سامانتا» در Her. حتی میشه گفت تا حد خوبی شبیه The Machine در سریال Person of Interest هم هست.

چالش‌های LLM OS

اما این ایده هم مثل سایر ایده‌های هوش مصنوعی، خالی از ایراد و چالش نیست. چندتا از چالش‌های بزرگش رو با هم بررسی کنیم:

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

همین سه چالش کافیه تا فعلا چنین چیزی رو به درستی نتونیم داشته باشیم. با این که تلاش‌هایی هم در موردش شده.

جمع‌بندی

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

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

در کل، پیشرفت جامعه بشری به کمک AI انتهای جالبی خواهد داشت، البته به شرط این که براش انتهایی بشه متصور شد!

موفق و خندون باشید.

Share

هرآنچه باید در مورد خودروهای خودران بدانید!

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

ابتدا که بحث خودروهای خودران خیلی مطرح شد، سال ۲۰۱۴ بود و تسلا قابلیت «خلبان خودکار» (یا البته بهتره در این مورد خاص، بگیم راننده خودکار) رو برای خودروهاش معرفی کرد. اگر می‌خواهید در مورد اتوپایلت تسلا بیشتر بدونید هم می‌تونید این لینک رو مطالعه کنید. ابتدا خیلی برام سوال بود که چطور میشه یک وسیله نقلیه مثل یک خودرو، کامیون و …؛ خودران باشه و نیازی به هیچ اپراتوری نداشته باشه. مثلا یکی از چیزایی که به ذهن من (و احتمالا خیلی‌های دیگه) می‌رسه، بینایی ماشین باشه. این درسته اما همه‌ش نیست.

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

هوش مصنوعی چطور یاد می‌گیره رانندگی کنه؟

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

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

حالا از این بگذریم، کم کم یک موضوع مهم رو یاد می‌گیریم. موضوع چیه؟ این که «تابلوها، علائم، فرمان پلیس و … همه مهم هستند و باید بهشون توجه کرد و احترام گذاشت. اما مهم‌تر از آن‌ها، دیدن رانندگی باقی راننده‌هاست». اینجا اهمیت این موضوع کم کم روشن میشه که بفهمیم همه ما، قرار نیست عین هم رانندگی کنیم. خیلی‌ها هستند که برای هضم دل‌تنگی‌هاشون تخت‌گاز میرن. خیلی‌ها هستند که در لاین سرعت با سرعت ۴۰ تا میرن. خیلی‌ها هم درست رانندگی می‌کنن ولی راهنما نمیزنن و … . در واقع ما با تجربه می‌فهمیم که رفتار راننده‌ها چطوره و این رفتار رو آنالیز می‌کنیم و به نتایجی می‌رسیم که باعث میشن ما راننده بهتری بشیم.

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

خودروهای خودران چه داده‌ای نیاز دارند؟

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

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

داده‌های علائم راهنمایی و رانندگی

خب هوش مصنوعی هم عین خودمون نیازمند اینه که آیین‌نامه رو بلد باشه. در واقع باید بتونه علائم رو تشخیص بده. البته مهم اینجا اینه که این علائم چی هستند، و بعد با باقی داده‌ای که دریافت می‌کنه بتونه در مورد نحوه رانندگی تصمیم‌گیری کنه. پس ابتدا لازمه که هزاران عکس مختلف از علائم رانندگی داشته باشیم و یک مدل خاص (معمولا از نوع Object Detection که خب می‌تونیم از مدل‌هایی مثل YOLO براش استفاده کنیم) براش آموزش بدیم. البته موضوعاتی مثل رنگ‌بندی علائم در کشورهای مختلف هم می‌تونه مساله‌ساز باشه که خب بعدتر می‌تونیم روی اون تصمیم بگیریم. مثلا یکی از این مسائل، «آبی» بودن چراغ سبز در کشور آلمانه. شما چه راه‌حلی براش دارید؟

تصویر مسیر

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

زاویه فرمان، میزان فشار روی پدال گاز و دفعات و شدت فشرده شدن ترمز

این هم مورد مهمیه. در واقع ما وقتی با خودرویی رانندگی می‌کنیم روی چند چیز همیشه کنترل داریم. در کیسی که ما راننده یک خودروی دستی هستیم، علاوه بر فرمان و گاز و ترمز، روی کلاچ و دنده هم کنترل داریم. اما از اونجا که خودروهای خودران عموما برقی هستند، جای «دنده عوض کردن» با Speed Control عوض شده (البته این به معنای نداشتن گیربکس یا دیفرانسیل نیست، فقط انتقال قدرت شکل دیگری به خودش گرفته) و به همین خاطر کلاچ و دنده دیگه حضور خاصی در این پروسه ندارند.

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

فاصله

خودروهای خودران، علاوه بر تعداد زیادی دوربین، تعداد خوبی سنسور هم برای تشخیص فواصل دارند. این سنسورها یا از نوع LiDAR (یا Light detection and ranging) یا فراصوت (Ultrasonic) یا حتی RADAR (که مخفف Radio detection and ranging است) یا ترکیبی از این موارد هستند. با استفاده از این سنسورها، فاصله از موانع، عابرین پیاده، خودروهای دیگر و … ثبت و ضبط میشه و بعدا به مدل هوش‌مصنوعی ما می‌تونه کمک بده که اینجا چه خبر بوده و در موقعیت مشابه، چه تصمیماتی باید اتخاذ کنه.

موارد دیگر

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

قوانین استفاده از خودروهای خودران

در ایران هنوز بحثی از حضور خودروهای خودران مطرح نشده (و احتمالا از اونجایی که عمده این خودروها در حال حاضر ساخت امریکا هستند و هنوز حرفی از نمونه‌های ژاپنی، کره‌ای، چینی، آلمانی و … به میان نیست حالا حالاها هم مطرح نشه) و صرفا یک خبر از مخالفت پلیس راهور (لینک) با این موضوع به دست من رسیده ولی در باقی کشورها، بخصوص امریکا؛ به شدت روی قوانینی که مربوط به وسایل نقلیه خودران باشه کار میشه.

در حال حاضر، هیچ کشوری «خودروی ۱۰۰٪ بدون راننده» رو نمی‌پذیره و حتی خودروهایی که «بدون حضور راننده» به حرکت درمیان، نیازمند این هستند که توسط اپراتور کنترل بشن. این مورد، برای اینه که خودروها بدون هیچ راننده و کنترلی ممکنه موجب تصادف و آسیب به سایر خودروها، ساختمان‌ها و افراد بشن.

در مورد Auto Pilot هم که معمولا با حضور راننده‌ست، حتی قانون اینه که خودروها باید مطمئن بشن که راننده از اتوپایلت برای خوابیدن، بازی کردن با گوشی و … استفاده نمی‌کنه. مثلا در ویدئویی که در مورد تسلای مدل ۳ ساخته شده (لینک) نشون داده میشه که خودرو خودش ازتون میخواد که هر یک دقیقه یک بار، فرمان رو تکون بدید تا بفهمه که بیدارید یا حواستون پرت نشده. در ویدئوی دیگر هم نشون داده شد که اگر شما به هشدارهای ماشین توجه نکنید، ماشین خاموش میشه و حتی نمی‌ذاره چندین ساعت از اتوپایلت استفاده کنید (لینک) و تمامی این موارد، تابع قوانینیه که برای این خودروها چیده شدند.

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

جمع‌بندی و سخن آخر

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

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

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

سخن آخر هم این که مثل همیشه ممنونم از این که وقت گذاشتید و این مطلب رو خوندید و امیدوارم که این مطلب، مفید فایده واقع شده باشه 🙂

Share

نقشه راه بینایی ماشین برای مبتدیان

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

این مطلب، اصلا و ابدا قرار نیست «آموزش» باشه و همونطوری که ابتدای مطلب گفتم، صرفا «نقشه راه» برای شماست.

بینایی ماشین، بینایی کامپیوتری

بینایی ماشین چیه؟

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

شاخه‌های زیادی برای بینایی ماشین داریم اعم از تشخیص چهره، تشخیص متن، خواندن نویسه‌های نوری (OCR)، واقعیت افزوده، واقعیت مجازی و … . هرکدوم از این شاخه‌ها، تخصص‌های خاص خودش رو می‌طلبه که در ادامه مطالب بهش خواهیم پرداخت.

کجا کاربرد داره؟

کاربردهای بینایی ماشین، می‌تونه در بسیاری از جاها باشه. نمونه‌ش مثلا همین پروژه‌ای که من زده بودم:

اندازه‌گیری اشیا با بینایی ماشین

همونطور که می‌بینید، این پروژه برای اندازه‌گیری اشیاء مختلف با کمک بینایی ماشین ساخته شده بود. همچنین، یک پروژه دیگر این بود که حروف اشاره (که مورد استفاده ناشنوایانه) رو تشخیص میداد. در دنیای امروز تقریبا در هر جایی که کوچکترین استفاده‌ای از تصویر میشه، مثل ویرایش و ساخت تصویر؛ تشخیص اقلام درون تصویر و …؛ بینایی ماشین داره در ابعاد وسیعی استفاده میشه.

چرا باید بلدش باشیم؟

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

از کجا شروع کنیم؟

خب مهم‌ترین بخش این مطلب دقیقا همینجاست که قراره با هم یاد بگیریم که چه پیش‌نیازهایی برای یادگیری بینایی ماشین وجود داره. هر پیش‌نیاز رو با هم کمی بررسی خواهیم کرد 🙂

  • برنامه‌نویسی پایتون: از اونجایی که پایتون زبان ساده‌ایه و اکثر آدمها دنبال یادگیریشن (و این یعنی منابع آموزشی خیلی خوبی براش هست) بهتره که پایتون رو تا حد خوبی یاد بگیرید. حد خوب، یعنی حدی که شما بتونید یک نرم‌افزار ساده ولی کاربردی رو باهاش توسعه بدید (مثلا یه ماشین حساب یا چیزی مشابه اون).
  • مقدمات یادگیری ماشین: بینایی ماشین به شکلی یکی از زیرمجموعه‌های هوش مصنوعی محسوب میشه. این نشون میده که اگر شما به الگوریتم‌ها و تئوری یادگیری ماشین و … آشناییت کافی داشته باشید، می‌تونید در این فیلد هم پیشرفت قابل توجهی کنید. گذشته از این، یادگیری ماشین می‌تونه بهتون در «هوشمندسازی» بیشتر نرم‌افزارهای بینایی ماشین کمک کنه.
  • آشنایی مختصر با جاوا یا سی++: از اونجایی که پایتون یک زبان مفسری محسوب میشه، ممکنه خیلی‌جاها (مثلا در یک برد آردوینو) نتونیم مستقیم ازش استفاده کنیم و همچنین استفاده ازش پیچیدگی خاصی به همراه داشته باشه؛ بهتره یک زبان سطح پایین‌تر مثل سی++ هم کمی آشنا باشیم. همچنین اگر قصد این رو دارید که اپلیکیشن تلفن همراه بنویسید که از بینایی ماشین استفاده می‌کنه، بد نیست دستی هم در جاوا داشته باشید.
  • آشنایی با سخت‌افزارها و سیستم‌های نهفته (Embedded Systems): یکی از کاربردهای عظیم بینایی ماشین، فعالیت‌های Surveillance می‌تونه باشه (البته این که این فعالیت‌ها بد یا خوب هستند بحث جداییه). یکی از نمونه‌هاش می‌تونه «سیستم حضور و غیاب با تشخیص چهره» باشه، یا حتی «دفترچه تلفن هوشمند» و … 🙂 به همین دلیل، بد نیست که کمی با سیستم‌های نهفته و سخت‌افزارهایی مثل Jetson Nano و Raspberry Pi آشنایی داشته باشید.
  • آشنایی با لینوکس: این واقعا نیاز به توضیح خاصی نداره، روایت داریم اگر لینوکس بلد نیستی، برنامه‌نویس نیستی 🙄

لیست بالا به شما کمک می‌کنه که محکم‌تر در زمینه بینایی ماشین، قدم بردارید. هرجاش رو که بلد نباشید می‌تونید با جستجو پیداش کنید و یاد بگیرید و از یادگیری، لذت ببرید 🙂

سخن آخر

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

Share

مهندسی اجتماعی – هوشمندی متن‌باز (OSINT)، خبرسازی

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

هوشمندی متن‌باز (OSINT)

همانطوری که در قسمت اول خدمت شما عرض کردم، ما در شبکه‌های اجتماعی و در کل در اینترنت خیلی از خودمون ردپا به جا میذاریم. هوشمندی‌ متن‌باز یا Open Source Intelligence دقیقا همینجا به کار هکرها میاد. روش کلاه‌سفیدش به نظر می‌تونه بررسی عقاید و سلایق مردم برای تولید محصول باشه (مثلا خواننده‌ها به ما پول بدند که در سلیقه موسیقی مردم فضولی کنیم و براشون تحلیل ارائه بدیم) و روش کلاه‌سیاهش می‌تونه این باشه که دیتای جمع‌آوری شده رو بهونه‌ای کنیم برای پرونده‌سازی و اخاذی از دیگران.

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

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

توییتر

چند وقت پیش، در توییتر بحثی به نام «ابر کلمات» داغ بود. افرادی که دسترسی به API توییتر داشتند، برای افراد این ابر کلمات رو میساختند. اما من از اونجایی که حوصله نداشتم با توییتر نامه‌نگاری کنم، دنبال ابزاری بودم که حداقل توییت‌های حساب‌های حفاظت‌نشده رو به سادگی بتونه استخراج کنه. اونجا بود که با ابزار twint آشنا شدم (لینک). ابزار twint یا twitter intelligence ابزاریه که به شما کمک می‌کنه به سادگی در توییتر بچرخید و مثلا توییت‌های یک شخص رو استخراج کنید.

برای مثال، برای این که ۱۰۰ توییت آخر ریاست جمهوری آمریکا رو استخراج کنیم، کافیه دستور تویینت رو به این شکل اجرا کنیم:

twint -u potus --limit 100 -o potus.json --json

به این شکل، ما به سادگی به ۱۰۰ توییت آخر اون حساب کاربری دسترسی داریم.

البته می‌تونیم این دستور رو هی گسترش بدیم و ویژگی‌هایی مثل تاریخ، ساعت، مکان و … هم بهش اضافه کنیم. حالا این کجا به کارمون میاد؟ یه سناریوی خیلی ساده (که مربوط به بخش دوم همین مطلب هم میتونه بشه) رو در نظر بگیرید. مثلا قراره موز گران بشه. شما کافیه که twint رو به این شکل اجرا کنید:

twint -s "گرانی موز" --near Tehran --limit 1000

این هزار توییت آخری که مربوط به «گرانی موز» میشن رو برای ما لیست می‌کنه. می‌تونیم بفهمیم چه کسانی بهش دامن زدند و چه کسانی پیروی کورکورانه کردند و … . خلاصه که اتصال نقاط به یکدیگر خیلی راحتتر میشه.

اینستاگرام

برای اینستاگرام هم ابزارهایی وجود دارند که کمک کنند شما به سادگی بتونید در دیتایی که مردم به صورت حفاظت‌نشده (پابلیک یا عمومی) منتشر کردند بخزید و ببینید که دنیا دست کیه. OSINT در اینستاگرام، علاوه بر مقاصد خبیث (😂) می‌تونه به شدت بهتر برای مقاصد بازاریابی و تجاری استفاده بشه. چرا که بسیاری از مردم، در اینستاگرام به دنبال چیزایی که دوست دارند می‌گردند و خیلی‌ها هم حتی خریداشون رو از طریق اینستاگرام انجام می‌دن.

البته، اینستاگرام الگوریتم‌های عجیب و غریب زیاد داره و جدیدا APIش هم کمی سخت‌گیر تر شده. ابزاری که برای اینستاگرام پیدا کردم، اسمش هست Osintgram (لینک) و این ابزار رو متاسفانه فرصت نشده که تست کنم هنوز. اما، یک ویدئوی خوب از کانال NetworkChuck براش پیدا کردم که می‌تونید اینجا ببینیدش.

ابزارهای دیگر؟

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

خبرسازی

خبرسازی، یکی از راه‌های دیگر مهندسی اجتماعی، برای جا انداختن یک مفهوم یا یک ترس یا حتی طرفداری از شخصه. خبرسازی‌ها، معمولا از طرف یک نفر نیستند بلکه از طرف گروه‌ها انجام میشن. مثال کلاسیکش هم می‌تونه ماجرای فیسبوک و رباتهای روسی در جریان انتخابات امریکا باشه.حالا این خبرسازی‌ها به چه شکل صورت می‌گیره؟ معمولا یک الگوریتم خاصی رو داره. به جهت این که مثالش کمی ملموس‌تر باشه، از ترند «آهنربایی شدن بدن بعد دریافت واکسن» که تازگی‌ها خیلی روش مانور داده شد استفاده می‌کنم.

  • مرحله اول: یک نفر به قصد شوخی در پلتفرم‌های شوخی مثل تیک‌تاک، ویدئویی میذاره از این که اشیا فلزی بعد دریافت واکسن بهش می‌چسبن (لینک)
  • مرحله دوم: افرادی که می‌دونن این موضوع شوخیه، اون رو در شبکه‌های اجتماعی به نمایش میذارند.
  • مرحله سوم: اشخاصی که از ابتدا با موضوع واکسن مشکل داشتند، با زدن سر و ته (دقت کنید زدن سر و ته اینجا واقعا مهمه!) داستان، اون رو بازنشر میدن.
  • مرحله چهارم: توهمش در بسیاری از افراد به وجود میاد و یک سری خبر واقعی‌تر و غیرتیک‌تاکی ساخته میشه (لینک)
  • مرحله پایانی: افراد زیادی باور می‌کنند که چنین چیزی وجود داره …

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

چطور بفهمیم که قربانی خبرسازی نشدیم؟

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

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

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

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

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

همچنین بخوانید

Share

چطور نخستین دنبال‌کنندگان اینستاگرام را دریافت کنیم؟

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

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

ساخت صفحه

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

تکمیل مشخصات

اولین قدم برای این که صفحه شما بتونه دنبال‌کننده دریافت کنه، اینه که مشخصاتش کامل باشه. در واقع شما به این موارد نیاز دارید:

  • تبدیل صفحه به صفحه Professional (در صورتی که صفحه واقعا قراره یک صفحه حرفه‌ای و مرتبط با برند شما باشه)
  • تصویر نمایه
  • بیوگرافی
  • لینک‌هایی مثل شماره تماس و وبسایت هم اگر دارید قرار بدید بد نیست. چرا که موتورهای جستجو ممکنه از همون‌ها بتونن افراد رو به شما برسونن.

قرار دادن پست

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

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

به دنبالِ دنبال‌کننده گشتن …

خب شما دنبال‌کنندگان خودتون رو میخواید درست؟ اینجا جاییه که من فرمولش رو به شما می‌گم. اول از همه ببینیم که دنبال‌کننده (فالوئر/Follower) کیه؟ شخصیه که بخاطر محتوایی که شما تولید می‌کنید میاد و پیج رو دنبال می‌کنه. حالا وقتی محتوا کمه یا محتوا نداریم چطور می‌تونیم دنبال‌‌کننده جذب کنیم؟ برای پاسخ به این سوال، من سه احتمال زیر رو براتون توضیح میدم:

  • دنبال‌کننده ارگانیک: دنبال‌کننده ارگانیک، یعنی یک شخص یا بیزنس حقیقی پشت حساب کاربریش نشسته. بهترین نوع دنبال‌کننده بلاشک، همینه. چرا؟ چون می‌دونید که افرادی هستند که برای محتوای شما فالوتون کردند و با تقلب کردن یک نرم‌افزار شخص ثالث، به دنبال‌کنندگان شما اضافه نشدند.
  • دنبال‌کننده جعلی: حساب‌های جعلی که خودتون می‌سازید، ربات‌هایی که دنبال‌کننده رو در زمان کم به حساب شما اضافه می‌کنن و … از این دست هستند. این دنبال‌کننده‌ها فعالیتی ندارند و فقط عدد و رقم الکی به شما اضافه می‌کنن. داشتن تعداد زیاد دنبال‌کننده بدون فعالیت و تعامل مفید، به هیچ دردی نمیخوره.
  • دنبال‌کننده ارگانیکِ جعلی: شاید باورتون نشه اما این مورد هم وجود داره. افرادی هستند که صفحاتی رو میسازند، تعداد خوبی دنبال‌کننده جذب می‌کنند و بعد صفحه رو به قیمت‌هایی که معمولا پایین هم نیستند، می‌فروشند. این فالوئرها، خوبن. اما مفید نیستند. اکثرا آدمهایین که برای دنبال کردن دیگران، هزینه‌ای دریافت کردند یا در سیستم «داداشم فالو شه» خیلی معرفت به خرج دادند. به اینستاگرامشون سر نمیزنن و براشون مهم نیست در فلان صفحه چی بگذره و معمولا هر چندروز یک بار اینستاگرام رو باز می‌کنند، یه لایکی میزنن و میرن. اینها نه بدن و نه خوب، برای رقم‌سازی نیم‌چه ارگانیک، می‌تونن کمک باشن.

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

مرحله اول: پیدا کردن تیک‌های آبی

اول از همه، ما نیاز به یک سری صفحه داریم که اصطلاحا «تیک آبی» خوردند یا به عبارت بهتر، وریفای شدند. وریفای بودن صفحات، به این معناست که یک درجه خوبی از شهرت رو دارند. همین امر باعث میشه که دنبال‌کنندگان زیادی هم داشته باشند. گذشته از اون، بسیاری از دنبال‌کنندگان اون صفحات هم دنبال افرادی می‌گردن که در حوزه‌های مشابه فعالن. پس بازی، یک بازی برد-برد خواهد بود. حالا مرحله مرحله این کارها رو انجام بدیم؟

  • مشخص کردن حوزه کاری: در یک سناریو خیالی، فرض کنیم صفحه ما در حوزه موسیقی فعاله و موسیقیش محدود به ایران نیست. اولین کاری که باید بکنیم چیه؟ این که افرادی رو پیدا کنیم که در حوزه موسیقی فعالن و شهرت بین‌الملل دارند. مثلا گروهی مثل Metallica (طبیعتا با توجه به سبک کاری خودمون و سلیقمون میتونه عوض بشه) یک گروه فوق مشهوره و چند میلیون دنبال‌کننده داره. یک لیست از این افراد تهیه می‌کنیم.
  • دنبال کردن افراد لیست: الان کار ما راحت شده. افراد درون لیست رو یک به یک دنبال می‌کنم.
  • دنبال کردن دنبال‌کنندگان و دنبال‌شوندگان: این مورد بسیار مهمه، در بین دنبال‌کنندگان و دنبال‌شوندگان همون تیک‌های آبی، باید دنبال باقی تیک‌های آبی باشید! مثلا در یک گروه موسیقی ممکنه اعضاش هم خودشون تیک آبی داشته باشند. پس بهتره که فالوشون کنیم 🙂

تا اینجای بحث خوبه؟ نه؟ کار راحتی نیست ولی سخت هم نیست. به شما ایده کلی میده که این روش چطور کار می‌کنه. حالا باید بریم سراغ مرحله دوم 🙂

مرحله دوم: تکرار این عملیات به مدت چند روز

تیک‌های آبی رو فالو کردید؟ بسیار هم عالیه. زاکربرگ به شما افتخار می‌کنه. حالا نوبت اینه که همه رو آنفالو کنیم (و خیر، شما مسخره پدر اینستاگرام نیستید و این روشیه که ما پیش می‌گیریم) و دوباره فالو کنیم.

این حرکت رو بهتره ۲ الی ۳ روز ادامه بدیم. احتمالا روز دوم متوجه خواهید شد که یک عده شما رو فالو کردند و معمولا عددش هم خوبه (برای من حدود ۱۶ نفر در یک روز بود که واقعا رقم خوبیه!). به این شیوه میشه در حدود ۳ روز، نزدیک به پنجاه نفر به دنبال‌کنندگان اضافه کرد. برای شروع، خوبه؛ نیست؟

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

نکات مهم در این روش

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

  • بیش از ۱۰۰ صفحه رو در روز دنبال نکنید. اینستاگرام ممکنه رفتار فالو-آنفالو رو به شکل اسپم و یا «فعالیت مشکوک» تشخیص بده و حساب شما رو ببنده.
  • سعی کنید این روش رو بیش از حد ادامه ندید. ممکنه در آینده این روش دیگه جواب نباشه و شما طبیعتا سرد می‌شید نسبت به ادامه فعالیت.
  • سعی کنید در صفحاتی که دنبال می‌کنید لایک بزنید، کامنت بذارید و … . این هم به اون صفحه و هم به اینستاگرام نشون میده که شما واقعا فعالیت ارگانیک دارید و فعالیتتون رباتی نیست.
  • در نهایت، بگم که روش‌های افزایش فالوئر زیادند اما تضمینی نیستند. یک زمانی، صرف فالو کردن افراد در اینستاگرام کافی بود. یادمه که در هشتگ‌ها می‌شد چرخید و تعداد زیادی رو فالو کرد و اونها اصطلاحا «بک» می‌دادند. اما الان این روش کاملا منسوخ شده. روشی هم که در این مطلب پوشش دادم احتمالا به زودی منسوخ میشه پس تا معتبره، سعی کنید ازش استفاده کنید و حالشو ببرید 😁

جمع‌بندی

اول از همه، باید بگم که این مطلب برای من یک استراحت در میان مطالبی که در مورد مهندسی اجتماعی می‌نویسم بود. دوم این که، خودم تجربه استفاده از این روش رو داشتم وگرنه من معمولا آدمی نیستم که چنین مطالبی رو بنویسم و نشر بدم. در نهایت، بگم که این مطلب آموزش «پولدار شدن» به شما نیست! پس چیه؟ آموزشیه برای دریافت تعداد خوبی مخاطب که بتونید هنرتون یا کسب و کارتون رو به دنیا معرفی کنید. همونطوری که گفتم بعدها می‌تونه روش‌های بهتری هم براش ارائه بشه. پس اگر مثل اینفلوئنسرها دیده نشدید هم نگران نباشید. همیشه روش خوبی براش هست 🙂

و در آخر، ممنونم از این بابت که وقت گذاشتید و مطلب من رو خوندید. شما هم اگر روش خوبی برای اینستاگرام مارکتینگ دارید، ممنون میشم با من به اشتراک بذارید 🙂

Share

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

شاید الان با دیدن عنوان پست به خودتون گفتید که «ای بابا اینم که بی‌سوات از آب دراومد»، اما باید بگم نه، اشتباه نیست 🙂 عبارت «ماحی‌گیری» به نوعی بومی‌شده واژه Phishing به حساب میاد. فیشینگ یا ساخت صفحه جعلی، در واقع یک روش رایج برای انجام عملیات مهندسی اجتماعی و دزدیدن اطلاعات شماست.

در این مطلب، در مورد فیشینگ و راهکارهای جلوگیری ازش قراره صحبت کنیم. پس آماده باشید که بریم سراغ اصل مطلب 🙂

فیشینگ و راه‌های مبارزه با آن

سناریوی یک حمله فیشینگ

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

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

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

حالا شما روی لینک – بی‌توجه به مشخصاتش – کلیک می‌کنید. وارد اون لینک می‌شید و می‌بینید که یک درگاه پرداخت کاملا درسته. اطلاعات کارتتون رو وارد می‌کنید و بعد از چند روز متوجه می‌شید که کارتتون خالی شده.

پی‌نوشت : عمده این بحث برمی‌گرده به زمانی پیش از رمز پویا. گرچه الان هم برای رمز پویا راه‌های زیادی هست که بتونن ازتون بقاپنش.

نقاط ضعف ما در حملات فیشینگ

سناریوی بالا رو خوندید؟ دو مورد نقطه ضعف رو نوشتم. شاید یکیش صرفا بازی روان باشه اما عمدتا نقاط ضعف ما در این حملات (و در کل مهندسی اجتماعی) هدف قرار گرفته. در ادامه نقاط ضعفی که ممکنه برای شما دردسر بشه یا ماحی‌گیرها ازش استفاده کنند رو ذکر می‌کنیم:

  • ترس عقب‌ماندگی یا FOMO – به این شکل که ممکنه به شکل فروش رمزارز، فروش بلیت بخت‌‌آزمایی و …، ازتون اطلاعاتتون رو بگیرند و جای دیگر استفاده کنند.
  • ترس از پرونده‌سازی – این به نظر ممکنه احمقانه بیاد، اما حقیقتیه که وجود داره. چطور؟ ممکنه شما در معرض شکایت‌های متعدد بوده باشید (مثلا شرکت ورشکسته‌ای دارید و تعداد طلبکارانتون زیاده و …) و به این شکل ماحی‌گیر میتونه با استفاده از این ترس شما، با صفحه جعلی از سامانه‌هایی که برای پلیس یا قوه قضاییه طراحی شدند، اطلاعات خصوصی‌ای مثل سابقه کیفری شما رو علنی کنه.
  • ترس از دست دادن – در کیس‌های خاصی مثل فروش روی دیوار، ترس از دست دادن به شدت می‌تونه قوی عمل کنه. با این ایده که شما پول لازم دارید و برای حذف نشدن آگهی هرکاری ممکنه بکنید.
  • لو دادن اطلاعات – این مورد کمی حساس‌تره. در مکالمات روزمره، اینترکشن‌های شبکه‌های اجتماعی و … مراقب‌تر باشید تا خدای نکرده، اطلاعاتی که بتونن محل زندگی، محل کار و … شما رو مشخص کنن رو اساسی لو ندید. چون همین این‌ها، می‌تونن باعث بشن که شما راحت‌تر طعمه فیشینگ بشید.

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

ماسک مناسب برای ویروس فیشینگ

در این بخش از مطلب، صرفا راهکارهایی که باعث شدن خودم تا الان کمتر مورد این حملات قرار بگیرم رو در اختیارتون میذارم. طبیعتا این راهکارها می‌تونن در طول زمان کم‌تر شن یا کلا دیگه معتبر نباشن. اما برای امروز (۱۷ خرداد ۱۴۰۰) کاملا کار می‌کنند.

  • چک کردن HTTPS محل‌هایی که دیتا وارد می‌کنیم (این راهکار الان هم اعتبار زیادی نداره، چرا که ماحی‌گیر می‌تونه به سادگی بره سراغ این که از Let’s encrypt یک گواهی SSL بگیره)
  • چک کردن آدرس وبسایت با آدرس‌های معتبر (مثلا gmail صفحه ورودش mail.google.com/login خواهد بود، چیزی جز این احتمالا حقیقی نیست. البته دامین گوگل بسته به منطقه و VPN شما می‌تونه متفاوت باشه)
  • چک کردن اسامی، آدرس‌ها و وبسایت‌ها در اینترنت و درآوردن سوابقشون (حتی دایرکتوری‌هایی برای این قضایا ساخته شدند)
  • وارد کردن اطلاعات غلط اگر به درگاه یا صفحه لاگین مشکوکیم (چرا که معمولا وقتی اطلاعات رو غلط وارد کنیم، صفحه به صفحه واقعی ری‌دایرکت میشه، اینطوری به ماحی‌گیرا هم آدرس غلط دادیم)
  • اطلاع‌رسانی در باب این تیپ دزدی‌ها به بقیه 🙂

در کل، اگر حواسمون نباشه احتمال این که سرمون کلاه بره خیلی خیلی زیاده. حواستون باشه که با چک کردن یک سری موارد ساده، به سادگی می‌تونیم از شر دزد و … در امان باشیم.

جمع‌بندی

در نهایت، ازتون بابت این که مطلب رو خوندید تشکر می‌کنم. دوم، امیدوارم این سلسله مطالب به دردتون خورده باشه. سوم، شما چه راهکاری برای جلوگیری از فیشینگ دارید؟ 🙂

Share

مهندسی اجتماعی و نکاتی که باید به آنها توجه کنید.

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

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

اتصال نقاط، ساده‌ترین روش مهندسی اجتماعی

چند وقت پیش، در مورد امنیت بیت‌کوین و معاملاتش داشتم مطالعه می‌کردم. یک نکته جالبی برخوردم که بد نیست شما هم در موردش بدونید. شخصی که مطلب رو نوشته بود (متاسفانه با کامپیوتر قدیمی‌تری مطلب رو خوندم و در هیستوری مرورگرم نیافتمش، وگرنه پیوند می‌دادم) اینطور بیان کرده بود که:

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

حالا، بیاییم ببینیم که این «نقطه»ها چین؟ ما چطور می‌تونیم به هم وصلشون کنیم؟ چرا اتصال نقاط مهمه و … . اول از همه، بیایید صرفا چندتا نقطه رو ببینیم:

  • سلام، من فلانی هستم.
  • من سال ۹۳ رفتم دانشگاه.
  • من کامپیوتر خوندم.
  • در یک بحثی مرتبط با یکی از دانشگاه‌های مطرح کشور (بیایید بگیم دانشگاه X)، من ورود کردم و از استادی، نقل قول کردم یا از استادی بد گفتم.
  • در لینکدین من، مشخصه که کجا کار می‌کنم اما محل تحصیلم رو مشخص نکردم.
  • از آب و هوای یک منطقه خاص در ایران تعریف و تمجید کردم.

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

وقتی گفتم «من فلانی هستم» احتمالا به اسم شناسنامه‌ایم، لقبم، اسم مستعارم یا یکی تو این مایه‌ها اشاره کردم. وقتی گفتم سال ۹۳ رفتم دانشگاه، شخص می‌تونه حدس بزنه که من از اکثریتی بودم که ۱۸ سالگی رفتند دانشگاه پس احتمالا متولد ۷۵ باشم، اما بعضی وقتا (برای آقایان) دانشگاه رفتن بعد از خدمت سربازی اتفاق می‌افته، پس اینجا بهتره که در نظر بگیرید که رنج تاریخ تولد بین ۷۳ تا ۷۵ بوده.

در مورد رشته تحصیلیم صحبت کردم. البته رشته تحصیلی گهگاهی از محتوای تولیدشده روی اینترنت هم قابل حدسه، گاهی هم از بحث‌هایی که افراد با دیگران می‌کنن و به اسم اساتید یا دروس خاصی اشاره می‌کنن. مثلا اگر در بحثی اشاره به «الکترونیک دیجیتال» شده باشه، احتمال خیلی خوبی داره که شخص «مهندسی کامپیوتر گرایش سخت‌افزار» رو در دانشگاه خونده باشه. پس به این شکل، می‌تونیم رشته تحصیلی فرد هم دربیاریم.

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

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

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

اتصال نقطه‌های مختلف به هم، این شرایط رو فراهم می‌کنه

  • در موارد حساس (مثل امنیتی شدن جو کشورها، حساس شدن مسئولین یک شرکت یا سازمان روی موضوعی خاص و … ) می‌تونه به شناسایی راحت شما کمک کنه.
  • شما رو در معرض آسیب‌های روانی (باجخواهی، پرونده‌سازی و …) قرار بده.
  • احتمال آسیب فیزیکی رو ببره بالا.

این رو در نظر داشته باشید. حالا بیایید بریم سراغ راه‌هایی که مهندسی اجتماعی می‌تونه حتی راحتتر هم باشه. من بهش میگم «مهندسی اجتماعی تعاملی».

مهندسی اجتماعی تعاملی

در مهندسی اجتماعی تعاملی، هکر اتفاقا آدم ناامن و زاغ‌سیاه‌چوب‌زنی نیست! بلکه دقیقا یکیه که با شما تعامل داره. این تعامل به روش‌های زیر می‌تونه انجام شه:

  • ساخت حساب کاربری و کسب شهرت در شبکه‌های اجتماعی
  • ساخت حساب کاربری با نام و مشخصات جعلی در شبکه‌های اجتماعی و پیام‌رسان‌ها و ایجاد روابط دوستی با دیگران
  • ساخت صفحات جعلی از وبسایت‌های خبری، صفحه ورود شبکه‌های اجتماعی، فرم‌های تماس و … .
  • انتشار اخبار جعلی
  • در خواست کمک‌های نقدی (در قالب ارزهای رایج، رمزارز و …)

حالا این‌ها هرکدوم چطور کار می‌کنن؟ بسیار هم خوب. بیایید در ادامه بررسیشون کنیم.

ساخت حساب‌کاربری و کسب شهرت در شبکه‌های اجتماعی

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

مشکل اصلی، زمانی رخ میده که این روش، میشه وسیله‌ای برای اقدامات بعدی. مثل چی؟ مثل انتشار خبرهای جعلی و یا کلاهبرداری و سوءاستفاده‌های متعدد از افراد. همین الان از افرادی که شناخته‌شدگی خوبی در دنیا دارند (مثل خواننده‌ها، بازیگران، فوتبالیست‌ها و …) خبرهایی مثل آزار جنسی یا ایجاد مزاحمت کم نیست! فلذا بهتره که حواسمون جمع باشه که چه کسانی رو مشهور می‌کنیم و چرا.

ساخت حساب کاربری با نام و مشخصات جعلی در شبکه‌های اجتماعی و پیام‌رسان‌ها و ایجاد روابط دوستی با دیگران

شاید با خودتون بگید «عه این هم که مساله‌ای نداره، طرف نخواسته با هویت واقعیش فعال باشه». درست می‌فرمایید. این که هویت ساختگی داشته باشیم هم یک «حق» برای ماست (شاید جالب باشه بدونید که یکی از هجمه‌هایی که علیه فیسبوک هست همینه! که چرا کاربران رو فورس می‌کنه هویت واقعی خودشون رو بذارن روی اکانت‌هاشون) ولی نکات مهم‌تری هم وجود داره. در اینجا یک کیسی رو مثال میزنم.

فرض کنید شخصی هست که حساسیت گروه خاصی رو برانگیخته. شخص A و گروه G می‌گیم برای راحتی کار. حالا گروه G یک پلنی چیده که به شکلی، بخواد شخص A رو از مسیر خودش کنار بزنه. اینها میتونن یک «کارمند سابق» و یک «شرکت» باشن (خلاصه فکر نکنید همیشه ماجرا، ماجرای سیاسی و … است). پس گروه G چه می‌کنه؟ یکی رو مامور می‌کنه تا اکانتی بسازه و با اطرافیان A دوست شه. به این شکل می‌تونه طی دوستی با روش‌های مختلفی، اطلاعات به دست بیاره.

روش‌های کسب اطلاعات هم می‌تونن به خودی خود جالب باشن. در ادامه بعضیاشون رو لیست می‌کنم :

  • سوال در مورد توانایی‌های متفاوت شخص (در قالب تعریف و تمجید، تعجب، غیبت و …)
  • سوال در مورد تیپ شخصیتی فرد.
  • اعلام این که به شخص A علاقمند شده و نمی‌تونه پا پیش بذاره (بخصوص اگر A خانم باشه)
  • بدگویی از شخص برای سنجش نوع روابط و این که دیگران در مورد اون شخص چی میگن

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

انتشار اخبار جعلی

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

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

درخواست کمک‌های نقدی

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

ساخت صفحات جعلی

در مورد این یکی هم، به زودی خواهم نوشت. فقط عبارت «ماحی گیری» یا Phishing رو در ذهنتون داشته باشید.

چطور از مهندسی اجتماعی در امان بمونیم؟

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

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

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

Share