<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های پدرام پاک نیا</title><link>https://virgool.ir/feed/@m_51162990</link><description>مهندس امنیت سایبری | کارشناس ارشد هوش مصنوعی</description><language>fa</language><pubDate>2026-11-11 13:45:43</pubDate><image><url>https://files.virgool.ir/upload/users/1598681/avatar/MTr2bS.png</url><title>پدرام پاک نیا</title><link>https://virgool.ir/@m_51162990</link></image><item><title>در ستایش سادگی</title><link>https://virgool.ir/@m_51162990/در-ستایش-سادگی-xgk2iorxc9co</link><description>تقریباً در تمام طول تاریخ هر ‌ایده و یا محصولی که به ساده‌ترین شکل خود بیان و یا ساخته شده بیشترین مخاطب را داشته است. به عنوان مثال موفقیت سیستم عامل ویندوز نسبت به گنو لینوکس از منظر فراوانی مخاطب عام به دلیل مخفی کردن پیچیدگی‌های فنی از چشم کاربر و تمرکز بر سادگی بیشتر محیط گرافیکی.به عنوان مهندس همه ما عاشق درگیر شدن با مسائل پیچیده و سخت هستیم. عطش فایق آمدن بر چالش‌های سخت و لذت فتح دشت‌های بکر این مسائل پیش برنده ما هستند.اما ساده فکر کردن و به همان میزان ساده‌سازی مسائل شاید والا‌ترین نوع کمال باشد. همانطور که لئوناردو داوینچی که خود از بزرگترین مهندسین تاریخ است می‌گوید:Simplicity is the ultimate sophistication.بر همین اساس اکثرا پیچیده‌ترین ‌ایده‌ها و محصولات در ساده‌ترین حالت ممکن ارائه می‌شوند. اما سادگی تا کجا و به چه اندازه‌ای؟نظر آلبرت اینشتین چنین است:Everything should be made as simple as possible، but not simpler.حقیقت این است که سادگی بسیار سخت است!اگر چنین فکر نمی‌کنید تلاش کنید یک محصول، ‌ایده، یک قطعه موسیقی و یا هر چیز دیگری را تا حد ممکن ساده و بازطراحی کنید.همه ما تجربه استاد بد در دانشگاه را داشته‌ایم. استادی که مطالب را چنان سخت و غیر قابل فهم بیان می‌کرد که رمق دانشجو را برای یادگیری می‌گرفت و جوانه تفکر او را می‌خشکاند. اما اگر کمی خوش شانس بوده باشید شاید در بازه زمانی متفاوتی بازهم به سراغ آن مطلب رفته باشید و متوجه شده باشید که نه تنها آن مطلب اصلاً سخت نبوده بلکه بسیار شیرین و منطقی بوده است. شاید مثال مربوط به یادگیری تفکر Object oriented و مسائل مربوط به ارث بری و چند ریختی برای مهندسین کامپیوتر نمونه بارزی از این دست تجربیات باشد.تقریباً همه می‌توانند سخت صحبت کنند و یا یک مسئله را به شکل غیر قابل درک حل کنند. اما سادگی..سادگی شاید حاصل از درک عمیق آن پدیده دارد و یا شاید اگر بتوان به یک پدیده از دورتر نگاه کرد همه چیز ساده‌تر به نظر برسد درست مثل وقتی که از فضا به زمین نگاه می‌کنیم. نه مرز نه حکومت و نه هیچ نژادی وجود دارد. همه پیچیدگی‌ها بر اثر Abstraction حاصل از فاصله گرفتن حذف می‌شوند و می‌توان تصویر کلی‌تری را نسبت به زمین داشت.اکثر مواقع متخصص‌ترین و فنی‌ترین افراد هر حوزه‌ای چه در مواجهه با مخاطب عام به دلیل نبود درک عمیق مخاطب از مطلب و چه در گفتگو با افراد خبره به دلیل وجود فهم مشترک و عدم نیاز به توضیحات اضافی‌، به ساده‌ترین زبان ممکن در مورد مسائل صحبت می‌کنند.در تضاد با این موضوع، افراد کم اطلاع‌تر و نا آگاه‌تر به دلیل افق دید محدودتر نسبت به آن مطلب همیشه تلاش در سخت توضیح دادن و استفاده از اطلاعات فنی معادل با سواد اندکشان دارند.عموما افراد غیر متخصص با پیچیده بیان کردن افکار، در تلاش برای مطلع نشان دادن خود هستند و مخاطب عام در اکثر موارد فریفته این نمایش می شود. اما اگر سوی دیگر مکالمه یک مخاطب حرفه ای و مطلع از موضوع باشد به سادگی متوجه این شوی تبلیغاتی می شود.شاید جمله To a man with a hammer، everything looks like a nail. از آبراهام مازلو درک بهتری در این باره ارائه کند. افراد غیر متخصص با تکیه به دانش محدود خود و در مواردی تحت اثر دانینگ کروگر، هر مسئله ای را در قالب سواد محدود خود قرار می دهند و سعی در اظهار نظر و یا حل آن چالش دارند.نمودار اثر دانینگ کروگر شاید کمی افراطی به نظر برسد اما از نگاه یک متخصص کامپوتر اکثر مسائل باینری باشند و از دید یک روانشناس همه اتفاقات ریشه در کودکی داشته باشند.هرچه وسعت افق دیدمان نسبت یک موضوع بیشتر شود، می‌توانیم سطح‌بندی بهتری از Abstraction را برای ساده‌سازی و توصیف یک پدیده داشته باشیم. بسیاری از کج فهمی ها به دلیل ارائه توضیحات غیر ضروری و عدم انتقال مطلب در ساده ترین فرم خود به وجود می آیند. سادگی در تفکر و بیان افکار و ایده ها در خالص ترین حالت خود به کیفیت بیشتر در انتقال مطلب می انجامد و فضای گفتگو را مهیا می سازد.Simplicity is not the goal. It is the by-product of a good idea and modest expectations.Paul Rand</description><category>پدرام پاک نیا</category><author>پدرام پاک نیا</author><pubDate>Tue, 06 Jun 2023 14:27:20 +0330</pubDate></item><item><title>ساز و کار The Last Layer Attack در شبکه های عصبی</title><link>https://virgool.ir/@m_51162990/the-last-layer-attack-nrmyzclm7bxa</link><description>&#34;ما در آخرین محصول امنیتی خودمون با استفاده از هوش مصنوعی و شبکه عصبی تونستیم امن ترین مکانیزم Authentication با چهره رو پیاده سازی کنیم. این شبکه با اسکن نقطه به نقطه صورت افراد و یادگیری ماشین، امکان ورود و خروج رو فقط و فقط برای افراد Authorize شده فراهم میکنه.&#34;احتمالا شما هم تا به حال با این تیپ ادعاها از طرف شرکت‌ ها رو به رو شدید.  قوی ترین، سریع ترین، اولین و .. . اما این ادعاها تا چه اندازه صحیح هستند؟ خب.. در اکثر مواقع فقط ترفند های بازاریابی هستند که توسط بخش مارکتینگ اون شرکت طراحی شدند و با واقعیت فاصله دارند.امروزه اکثر شرکت ها سعی میکنند که هوش مصنوعی و یادگیری ماشین رو به نحوی در محصولات خودشان بکار بگیرند. مثل استفاده از تشخیص چهره برای دسته بندی عکس ها در گالری تلفن همراه و یا تشخیص متن از روی تصاویر برای ترجمه به زبان های مختلف. تاثیر هوش مصنوعی در زندگی پیش رو انکار ناپذیر است و استفاده از آن باعث افزایش کیفیت سطح زندگی بشری می شود اما همیشه با پیدایش و استفاده گسترده از تکنولوژی، مخاطرات و نگرانی های امنیتی جدیدتری به وجود می آیند. به عنوان مثال، استفاده از خودرو علاوه بر افزایش بهره وری و سرعت حمل و نقل، خطر تصادفات را به وجود آورد و یا افزودن دوربین به تلفن همراه علاوه بر ثبت لحظات و خلق تجربه شخصی برای افراد، خطر جاسوسی از آن ها را همراه داشت.انفجار هوش مصنوعی و علوم مرتبط با آن و استفاده روز افزون از ماشین های یادگیر و الگوریتم های مرتبط با آن در محصولات و یا خدمات شرکت ها، باعث فراگیر شدن و اعتماد بیشتر عموم مردم (کاربران) به این تکنولوژی ها شده تا عملا به بخش جدا ناپذیر در زندگی آن ها تبدیل شود.استفاده از هوش مصنوعی در محصولات و خدمات سازمان ها از نگاه امنیتی موضوع بسیار مهمی است چرا که در پروسه طراحی و ساخت، مهندسین یادگیری ماشین و Data Scientist ها بیشترین نقش را دارند و در اکثر مواقع درک درستی از مخاطرات و نگرانی های امنیتی که ممکن است برای آن محصول/سرویس به وجود بیاید و یا توسط آن محصول/سرویس ایجاد شود ندارند. سازمان ها همانطور که امنیت وب سایت و شبکه خود را تامین می کنند، باید از محصولات/سرویس های مرتبط با هوش مصنوعی خود نیز دفاع نمایند.  با توجه شعار تبلیغاتی که در ابتدای این پست به آن اشاره شد، در ادامه به یک نمونه از حملات مرتبط به شبکه‌های عصبی می پردازم که در آن مهاجم به Model مرتبط به شبکه عصبی دست یافته است.شبکه های عصبی بر اساس ساختار نورونی بدن جانداران طراحی شده اند. در ساده ترین حالت هر Node از یک شبکه عصبی به یک نورون تشبیه شده است که در صورت تحریک، Fire می شود و یک پالس الکتریکی را در Axon خودش منتشر می کند و به سایر نورون هایی که با آن ها ارتباط دارد می فرستد.همانطور که از نام این حمله مشخص است، Exploit در آخرین لایه شبکه عصبی که وظیفه تصمیم گیری را دارد اتفاق می افتد. فرض می کنیم که شرکت مذکور، محصولی برای Authentication کاربران جهت ورود به Data Center تولید کرده است که با گرفتن تصویر فرد به عنوان Input وضعیت ورود و خروج او را بررسی می کند. طبیعتا خروجی شبکه عصبی دو حالت Access Granted و Access Denied می باشد.در آخرین لایه، همانند تمامی لایه های قبلی مقدار عبارت w . x + b (وزن . ورودی + مقدار بایاس) محاسبه شده و از یک Activision Function  می گذرد و خروجی این تابع مشخص می کند که فرد حق ورود دارد یا خیر. بردارهای Weight و Bias که برای Tune کردن شبکه عصبی کاربرد دارند می توانند توسط مهاجم برای Exploit کردن مورد استفاده قرار بگیرند.  در سال 2014 گروهی از محققین گوگل متوجه شدند که فریب دادن یک شبکه عصبی کار چندان دشواری نیست و می توان با افزودن نویز (داده دلخواه) به همراه ورودی شبکه عصبی، خروجی دلخواه را دریافت کرد.برای درک بهتر، قطعه برنامه زیر، یک شبکه عصبی است که روی دیتاست mnist آموزش دیده و برای تشخیص اعداد از روی دست خط طراحی شده است.# Network.py&#xA;----------------------------------------------------------&#xA;from tensorflow import kerasfrom tensorflow.keras import layersmnist = keras.datasets.mnist(train_images, train_lables), (test_images, test_lables) = mnist.load_data()train_images = train_images.reshape((train_images.shape[0], 28, 28, 1))test_images = test_images.reshape((test_images.shape[0], 28, 28, 1))# Normalize: 0, 255 -&gt; 0,1train_images, test_images, train_images / 255.0, test_images / 255.0# Modelmodel = keras.models.Sequential()model.add(layers.Conv2D(32,3, strides=(1,1), padding =&#34;valid&#34;, activation= &#34;relu&#34;, input_shape=(28, 28, 1)))model.add(layers.MaxPool2D((2,2)))model.add(layers.Conv2D(32, 3, activation=&#34;relu&#34;))model.add(layers.MaxPool2D((2,2)))model.add(layers.Flatten())model.add(layers.Dense(64, activation=&#34;relu&#34;))model.add(layers.Dense(10))print(model.summary())# Loss and optimizerloss = keras.losses.SparseCategoricalCrossentropy(from_logits=True)optim = keras.optimizers.Adam(lr=0.001)metrics = [&#34;accuracy&#34;]model.compile(optimizer=optim, loss=loss, metrics=metrics)# Trainingbatch_size = 64epochs = 5model.fit(train_images, train_lables, epochs=epochs, batch_size=batch_size, verbose=2)model.save(&#34;./model.h5&#34;)&#xA;همانطور که مشاهده می شود، شبکه عصبی بالا در لایه خروج (آخرین لایه) 10 عدد Node منحصر به فرد دارد که نشانگر اعداد 0 تا 9 می باشد. فرمت ذخیره سازی مدل h5 است. h5 برای ذخیره کردن داده ها به صورت سلسله مراتبی و از یک آرایه چند بعدی استفاده می کند. این فرمت ذخیره سازی در فیزیک، صنایع هوایی، جغرافیا، ستاره شناسی، علوم کامپیوتر و .. کاربرد دارد.قطعه کد زیر برای Authentication طراحی شده است. ورودی (عکس) را با مدل آموزش دیده شبکه عصبی چک می کند. اگر خروجی برابر عدد 4 بود، کاربر اجازه ورود دارد. در غیر این صورت خیر.# Access.py&#xA;--------------------------------------------------&#xA;&#xA;from tensorflow import kerasimport numpy as npfrom PIL import Imageimage = Image.open(&#34;./fake_id.png&#34;)image = np.asarray(image, dtype=np.float32)image = image / 255.0image = image.reshape((1, 28, 28, 1))# Load the modelmodel = keras.models.load_model(&#39;./model.h5&#39;)prediction = model.predict(image)digit = np.argmax(prediction)print(prediction)print(digit)# Only Digit 4 grants access !if digit == 4:print(&#34;Access Granted.&#34;)else:print(&#34;Access Denied.&#34;)تصویر زیر به عنوان ورودی (Fake id) به برنامه داده شده است. طبیعتا پس از تشخیص عدد موجود در عکس (عدد 2)، برنامه در ادامه اجازه ورود به ما را نمی دهد.خروجی برنامه به صورت زیر است :برنامه مقدار تصویر بالا را برابر با عدد 8 شناسایی کرده استحال قصد داریم با دستکاری مدلی که شبکه بر اساس آن آموزش دیده است خروجی مطلوب خودمان یعنی Access Granted را بدست آوریم. برای این کار باید فایل model.h5 را ویرایش کنیم. برای باز کردن این فایل نیاز به نرم افزار مخصوص به این کار را داریم. خوشبختانه شرکت سازنده این فرمت، نرم افزار مناسب برای ویرایش این فایل ها را نیز تولید کرده. نرم افزار HDFView را می توان از اینجا دانلود نمود. پس از دانلود و نصب، فایل model.h5 را باز می کنیم. زیر شاخه dense_1 آخرین لایه شبکه عصبی هستند.جدول bias شامل 10 سطر است که بیانگر خروجی شبکه یعنی اعداد 0 تا 9 می باشند. از آنجا که می دانیم خروجی دلخواه ما برای ورود عدد 4 است، سطر با id 4 را به بالاترین مقدار نسبت به بقیه سطر ها آپدیت می کنیم.پس از ذخیره تغییرات، اگر قطعه کد Access.py را اجرا کنیم میبینیم که توانستیم مکانیزم امنیتی را دور بزنیم و شبکه را Exploit کنیم.همانطور که مشاهده شد مهاجم با دستیابی به asset های مرتبط با هوش مصنوعی می تواند حملات متعددی از جمله Last Layer Attack انجام دهد. در سناریو مطرح شده مهاجم توانست با دستکاری bias در مدل آموزشی شبکه عصبی، مکانیزم Login را Bypass کند. در سایر موارد مانند استفاده از سیستم های مشابه برای خودرو های خودران، مهاجم میتواند معنای علائم جاده ای مثل تابلو ایست را تغییر دهد و خودرو به جای ایستادن به مسیر خود ادامه دهد. نتیجه گیریشرکت ها همواره مبالغ هنگفتی را صرف ایمن سازی شبکه و وب سایت ها و آموزش پرسنل خود می کنند. درحالی که با توجه به فراگیر شدن هوش مصنوعی باید تدابیر و راهکار های امنیتی در راستای حفاظت و ایمن سازی محصولات/سرویس ها به کار برد.  علاج واقعه پیش از وقوع باید کرد          دریغ سود ندارد چو رفت کار از دستبه روزگار سلامت سلاح جنگ بساز          وگرنه سیل چو بگرفت، سد نشاید بست</description><category>پدرام پاک نیا</category><author>پدرام پاک نیا</author><pubDate>Fri, 22 Apr 2022 21:09:54 +0430</pubDate></item></channel></rss>