ubuntu – اضافه کردن حساب کاربری اصلی به گروه docker

daemon daock اجرا می شود با دسترسی ریشه، اما ظروف درون آن اجرا می شود، حتی آنهایی که کاربر فعلی ( دستور USER را در فایل Dockerfile خود تنظیم نمی کند) با دسترسی محدودی اجرا می شود.

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

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

در اینجا مثال docker run --rm -it -v '/: / mnt' debian: 9.2 cat / mnt / etc / shadow دسترسی به / به عنوان ریشه، به این معنی است که می تواند فایل های باینری را آلوده کند، به فایل / etc / shadow شما دسترسی داشته باشد، اضافه / حذف / تغییر رمز کاربر و غیره … [19659002] مرجع کامل: https://docs.docker.com/engine/security/security/#conclusions

گودال ماسهبازی – آیا رویکرد معقول برای گندزدایی پروژه های جدید در برابر حفره های امنیتی ساخته شده با شانس چیست؟

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

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

آیا یک گره کارگر swarmkit میتواند چیزی را که به طور معمول به معنای شناختن آن است دسترسی پیدا کند؟

آیا یک گره کارگر swarmkit میتواند چیزی را که به طور معمول به معنای شناخت آن نیست دسترسی پیدا کند؟
چه اقداماتی می تواند برای جلوگیری از گره کارگر swarmkit از دسترسی ناخواسته به چیزهای دیگر باشد؟

آیا خطرناک است که حجم Tmpfs را در Docker قرار دهید؟

گاهی اوقات من نیاز به عملیات شدید I / O در حافظه دارم. تسهیلات tmpfs برای این کار بسیار خوب است، اما من تعجب کردم که آیا خطرات زیادی برای استفاده از مانیتورهای tmpfs در داخل ظرف وجود دارد. آیا می توان آن را برای مصالحه میزبان مورد استفاده قرار داد؟

شبکه – چندگانه با Docker

من سعی می کنم ترافیک بین دو ظرف Docker ("وب سرور" و "chrome_client") را با استفاده از ظرف "middle" در حالت MITM ترسیم کنم. بنابراین ما این توپولوژی اساسی داریم:

[chrome_client] -> [intermediate] -> [webserver]

شرح مختصری از ظروف است:

  • [chrome_client] : ظرف مورد استفاده برای بازکردن کروم به صورت گرافیکی

  • [intermediate] : ظرف کالی با استفاده از ettercap برای راه اندازی آن در حالت mitm و گرفتن هر ترافیکی از طریق عبور

  • [webserver] : یک سرور ساده lighttpd یک ویرایشگر ساده Markdown را نشان می دهد

راه اندازی ظروف اولین تنظیم کننده است یک شبکه جدا شده و ظروف داخل آن را به کار ببرید (همانطور که در اینجا توضیح داده شده است). مثل این:

 # شبکه جدا شده
شبکه docker ایجاد --subnet = 172.19.0.0 / 24 - gateway 172.19.0.254 mynet123

در حال حاضر، ظرف "middle":

 docker run --rm -it --net mynet123 --ip = 172.19.0.7 - privileged kali / wireless: ettercap bash

مرورگر کروم:

 docker run --rm -d -u = 1000: 1000 --net mynet123 --ip = 172.19.0.4 -v /tmp/.X11-unix:/tmp/.X11- unix -e DISPLAY = unix $ DISPLAY -v $ HOME / EmptyDir: / data -v / dev / shm: / dev / shm --cap-add = SYS_ADMIN image / chrome: latest

و سرور وب (یک سرور lighttpd، نمایشگر ویرایشگر Markdown):

 docker run --rm -d --net mynet123 --ip = 172.19.0.5 image / markdown: latest

در ظرف "middle"، من اجرا می کنم:

 # اول، برخی از تنظیمات برای حمل و نقل
sysctl -w net.ipv4.ip_forward = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -w net.ipv4.conf.all.send_redirects = 0
iptables-FORWARD -i eth0 @ if16 -o eth0 @ if16 -j ACCEPT

# راه اندازی mitm برای گرفتن چیزی بین 2 ظرف دیگر:
ettercap -T -M arp: remote -i eth0 / 172.19.0.5// /172.19.0.4//

اکنون، URL مرورگر Chrome را وارد کنید http://172.19.0.5 و هیچ چیز ظاهر نمی شود. همه خالی است، در حالی که در خروجی ettercap من دریافت می کنم:

 جمعه ژوئن 19 16:19:22 2018 [463117]
TCP 172.19.0.4:51840 -> 172.19.0.5:80 | S (0)


جمعه ژوئن 19 16:19:22 2018 [463119]
TCP 172.19.0.4:51842 -> 172.19.0.5:80 | S (0)

 ... و غیره ....

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

PD: در عین حال، من در تلاش برای استفاده از mitmproxy در "پروکسی میانجی، اما من فکر کردم ممکن است راه حل اشتباه را با حذف هر گونه مشکل با گواهینامه SSL.