شما اینجایید
خانه > مصاحبه > مصاحبه کایِل کینگسبِری، محقق ایمنی رایانه

مصاحبه کایِل کینگسبِری، محقق ایمنی رایانه

مصاحبه کایِل کینگسبِری، محقق ایمنی رایانه

که هستید و چه می‌کنید؟

نامم کایِل کینگسبِری[۱] است؛ واقعاً دلیلش را کاملاً نمی‌فهمم که چرا معمولاً دستگاه‌ها در اطراف من به‌طور غیرعادی خراب می‌شوند. اما با آزمایش سیستم‌های توزیع‌شده تست[۲] برای بررسی امن بودنشان، از این نفرین بهترین استفاده را می‌کنم. پارتیشن‌های شبکه، انحراف زمان و دیگر خطاهای سیستم را نشان می‌دهم و با دقت سیستم را مشاهده می‌کنم تا ببینم آیا داده‌ها را از دست می‌دهد، داده‌های نامعتبر و خراب را نمایان می‌کند و یا تراکنش‌ها را به‌طور نامناسبی در میان هم قرار می‌دهد. در مورد تحقیقاتم گزارش می‌نویسم و صحبت می‌کنم و به‌علاوه کلاس‌های آموزشی و مشاوره در شرکت‌ها و کنفرانس‌ها برگزار می‌کنم.

قبلاً من یک عکاس، دانشجوی فیزیک، آیکیدو کار، پشتیبان IT، مهندس عملیات شبکه و توسعه‌دهنده بک‌اند بوده‌ام. چند مقاله در مقالات بررسی فیزیک (Physical Review Letters) در مورد نظریه آشوب در سیستم‌های غیرخطی کوانتوم داده‌ام. در مورد نرم‌افزار، وبلاگ نویسی می‌کنم و چند پروژه‌ی منبع باز مثل Riemann را انجام داده‌ام. حکاکی روی چوب، وب‌سایت، رندرینگ سه‌بعدی، پیراهن، اسباب منزل و موسیقی می‌سازم و داستان کوتاه و کتاب نیز می‌نویسم و اخیراً ساخت یک لامپ را هفته پیش به پایان رساندم. دوست دارم چیزهایی را بسازم، حتی اگر غیرحرفه‌ای باشد.

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

کار تحلیلی امنی را به‌طور فشرده و همگون با CPU و حافظه انجام می‌دهم. Comcast به من یک ضمانت تحقیقاتی OSS داد که یک دستگاه برای آن بسازد؛ بنابراین میزکار من یک Xeon 48-راهه (۲x E5-2697v2) مسخره است با ۱۲۸ گیگابایتECC DDR3 و ۱۱ TB SSD متنوع. مادربورد آن ضعیف است و نیمی از دیسک‌ها را پیدا نمی‌کند. استفاده از برخی از پورت‌های USPی معین صدا تولید می‌کند. کلاً با هم رابطه پیچیده‌ای داریم.

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

از یک کیبورد DAS با دکمه‌های Das استاندارد با سوئیچ‌های Cherry MX Brown استفاده می‌کنم؛ باورم نمی‌شود واقعاً آدمی باشم که چنین چیزی برایم مهم باشد. شاید علتش کاربریِ Vim است. هیچ برچسبی بر پوشش دکمه‌های کلید نیست (فقط همین مدل را برای فروش داشتند) برای همین یک‌عمر طول می‌کشد تا رمز عبورم را تایپ کنند. هر بار که از Mutt استفاده می‌کنم، مثل یک بازی رولت روسی می‌ماند. از یک موس لیزری Logitech G5 استفاده می‌کنم که برایم یک ابزار آرمانی است.

نمایشگر من یک Dell 32 اینچی ۴K است. فکر می‌کنم که UP3216Q است. یک صفحه‌نمایش فوق‌العاده برای ویرایش عکس‌ها و رندر کردن xterm های فراوان است که شاید ۹۰ درصد از زندگی محاسباتی من باشد.

گاهی اوقات با یک Nikon D700 عکس می‌گیرم که اتوفوکوس شاهکار و کارکرد نور کم دارد – اما وقتی که سفر می‌کنم D7000 را با یک ۲۸-۳۰۰mm Nikkor ترجیح می‌دهم. سبک‌تر است، رزولوشن بالایی دارد و لنزها بسیار تطبیق‌پذیر هستند. ارگونومی Nikon را واقعاً دوست دارم اما بیشتر عکس‌هایم با Canon گرفته می‌شوند.

برخی از اسلایدهای مکالمه‌ای من با استفاده از قلم‌های فنی Sakura و نوت بوک‌های گرید Whitelines انجام می‌شوند. عکس‌ها را با گوشی یا دوربینم بر سه‌پایه دوربین می‌گیرم و در GIMP تمیزکاری می‌کنم. این روند برای کار رنگی یا ویرایشی بر صفحات قبلاً از صحبت خوب کار نمی‌کند، بنابراین تصمیم دارم که از iPad Air 2 با Paper app و Pencil stylus استفاده کنم. واقعاً یک دردسر است – stylus غیرقابل اعتماد است و قابلیت palm rejection واقعاً کار نمی‌کند. بنابراین مجبورم همه چیز را کلاً از اول بکشم. اما انعطاف‌پذیری آن و قابلیت خروجی PDF با چند tap فوق‌العاده است.

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

Debian را اجرا می‌کنم. به جز برای ZFS همیشه از آن استفاده می‌کنم و از OpenBox+GKrellM+xfce-panel به عنوان مدیر پنجره استفاده می‌کنم. داشتن فضاهای مجازی و پیوندهای قابل پیکربندی را با هر چیزی دوست دارم. از irssi برای IRC، Mutt/Geary  برای ایمیل، Chromium  برای جستجو و Pidgin برای IM استفاده می‌کنم. عکس‌ها را در darktable و GIMP ویرایش می‌کنم و کارهای برداری‌ام را در Inkscape انجام می‌دهم. چند سال قبل Morganastra من را متقاعد کرد که یک Fish shell بخرم و اصلاً پشیمان نیستم.

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

هر بار یک‌بار تلاش می‌کنم که یک کاربر معمولی رایانه بشوم تا زمان کمتری برای ابزار عجیب‌وغریبم هدر کنم؛ OS X را برای یک هفته امتحان کردم اما کنارش گذاشتم. الآن تا حدی با این وحشت دائمی زندگی می‌کنم که افرادی که نرم‌افزاری را که من به آن تکیه دارم نگهداری می‌کنند، از توجه به آن دست بردارند و من را در برزخ میزکار لینوکسی‌ام تنها بگذارند.

حافظه‌ام افتضاح است و باید هر چیزی را بر صفحه‌نمایش ببینم یا کلاً فراموشش کنم! بنابراین وقتی که نرم‌افزار می‌نویسم در ۶ تا ۱۲ gnome-terminal زندگی می‌کنم. بیشتر آن‌ها Vim را اجرا می‌کنند، فضای نام‌های مختلف را که در آن زمان فراخوانی می‌کنم ویرایش می‌کنند. بعد از آن معمولاً یک clojure repl است و یک test runner که وقتی که فایل‌ها را در دیسک‌ها می‌نویسم، به‌طور خودکار تست‌های را بارگیری و اجرا می‌کند. شاید یک پنجره برای فرمان‌های git  و ابزار مختلف اجرایی نیز باشند.

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

Aphyr.com پر از RubySinatra+ سفارشی است که بر یک Linode اجرا می‌شود. Jepsen.io یک سایت Clojure است که بر Skyliner اجرا می‌شود. مقاله‌ها در Markdown نوشته می‌شوند و با Pandoc پیش‌پردازش می‌شوند. وقتی به آن فکر می‌کنم، می‌بینم که LaTeX  زیادی در زندگی من وجود دارد.

تعدادی اسکریپت Perl، Ruby و Clojure متنوع برای چیزهای مختلف نیز هست. مثل فیلم‌های Honey ، I Shrunk the Kids یا Wallace and Gromit که وارد خانه یک مخترع می‌شوند و تمام این ابزارآلات مسخره برای تخم‌مرغ درست کردن و جواب تلفن دادن را می‌بینند؛ تقریباً ~/bin من همین شکلی است. هیولاهای زیادی برای گرفتن اسنپ شات ZFS و برگرداندن چیزها به NAS و S3 وجود دارند. تونل‌های معکوس SSH باز هستند. اسکریپت‌هایی برای جدا کردن PDF ها، اضافه کردن چیزها به یک صفحه، و بخیه زدن آن‌ها دوباره به هم؛ چرخاندن خوشه‌هایی از نودها در Debian برای تست‌های Jepsen؛ تعیین رنگ‌های نورها در اتاق حال خانه با استفاده از تولید برنامه‌های رنگی و دانلود آن‌ها از وب‌سایت‌ها؛ آرسینک کردن عکس‌های گوشی به یک SFTP. در aphyr.com هیولایی وجود دارد که ایمیل‌ها را که قیمت‌های جاری در بازار آنلاین EVE را نشان می‌دهد تجزیه می‌کند. آن را در sqlite بار می‌کند و از یک خود-اتصالگر n-راهه خنده‌دار برای مسیرهای تجاری مؤثر راه‌یابی (pathfind) استفاده می‌کند. دستگاه‌های کامپیوتری Goldberg در هر جا هستند.

ستاپ رؤیایی شما چیست؟

مطمئنم که محدودیتی در تعداد xterms-هایی که می‌توانم منطقاً جلوی خودم داشته باشم وجود دارد اما فکر نمی‌کنم هنوز به آن نزدیک باشم. یک صفحه‌نمایش منحنی ۵۰ اینچی بد نیست؛ به‌علاوه کلیدهایی را می‌خواهم که روی آن برچسب باشد تا بتوان فهمید کدام دکمه یک ایمیل را با عنوان خوانده‌نشده علامت میزند؛ در عوض پاک کردن کل رشته و فوروارد کردن سلفی‌ها به مشتریان.

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

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

ضمناً در این روزها دارم پول زیادی را خرج خوشه‌های AWS می‌کنم ساختن یک خوشه ۵ نودی فیزیکی برای تست Jepsen در آپارتمانم از لحاظ هزینه مؤثرتر بود. جای افتخار داشت، زیرا کانتینرهای LXC همگی یک ساعت را اشتراک می‌گذارند و مانع می‌شوند بتوانم انحراف ساعت را به‌طور محلی تست کنم.

[۱] Kyle Kingsbury

[۲] testing distributed systems

پاسخ دهید

بالا