Securityאבטחה

Security here is not a dashboard you visit. It is a gate every release walks through, whether a human or an agent pushed it.

אבטחה כאן היא לא לוח מחוונים שמבקרים בו. היא שער שכל שחרור עובר דרכו, בין אם אדם או סוכן דחף אותו.

Bulwark: the scan on every deployBulwark: הסריקה בכל פריסה

Every build is scanned before it can receive traffic. Not nightly, not on a schedule you configure and then forget: between build and release, on the critical path, on staging and production alike.

כל בנייה נסרקת לפני שהיא יכולה לקבל תעבורה. לא כל לילה, לא לפי לוח זמנים שמגדירים ואז שוכחים: בין הבנייה לשחרור, על הנתיב הקריטי, גם ב-staging וגם בייצור.

DependenciesYour lockfile against known advisories, at the exact resolved versions, not the ranges in package.json.קובץ הנעילה שלכם מול התרעות ידועות, בגרסאות המדויקות שנפתרו, לא הטווחים ב-package.json.
Secrets in sourceCommitted keys, tokens and private keys, including in build artifacts and in files you thought were gitignored.מפתחות, טוקנים ומפתחות פרטיים שהוקומטו, כולל בתוצרי בנייה ובקבצים שחשבתם שהם ב-gitignore.
Container surfaceBase image CVEs, root execution, unnecessary capabilities and writable filesystem paths.חולשות בתמונת הבסיס, ריצה כ-root, הרשאות מיותרות ונתיבי קבצים ניתנים לכתיבה.
ConfigurationDebug modes left on, permissive CORS, missing security headers, exposed source maps in production.מצבי דיבאג שנשארו פתוחים, CORS מתירני, כותרות אבטחה חסרות, מפות מקור חשופות בייצור.

What happens when it finds somethingמה קורה כשהיא מוצאת משהו

terminal
$ shipyard security report --deployment dep_7Kq2

  Deployment dep_7Kq2 · api · production      blocked

  CRITICAL  cve-2026-31047   lib/pdfkit@0.14.0 → 0.14.3
            Arbitrary file read via crafted font path.

  HIGH      secret-in-image  .env.local baked into layer 6
            Add .env.local to .shipyardignore.

  2 findings blocked this release. 4 informational.
You cannot turn it offאי אפשר לכבות אותה

There is no flag, no environment variable and no support request that disables the scan for an organisation. There is a per-finding, time-boxed exception with a required reason, granted by an owner, that expires. That is the whole escape hatch, and every use of it is in the audit log.

אין דגל, אין משתנה סביבה ואין פנייה לתמיכה שמכבים את הסריקה לארגון. יש חריגה לממצא בודד, מוגבלת בזמן, עם נימוק חובה, שניתנת על ידי בעלים ופגה. זו כל דלת החירום, וכל שימוש בה נמצא ביומן הביקורת.

Secretsסודות

Isolationבידוד

RuntimeOne container per deployment, non-root, read-only root filesystem, no host network.קונטיינר אחד לכל פריסה, לא root, מערכת קבצים לקריאה בלבד, ללא רשת מארח.
NetworkPer-organisation overlay. Your staging cannot reach another org, and by default cannot reach your production database.רשת-על לכל ארגון. ה-staging שלכם לא מגיע לארגון אחר, וכברירת מחדל לא מגיע למסד הייצור שלכם.
StorageVolumes and managed databases are namespaced per project and per environment.נפחים ומסדי נתונים מנוהלים מופרדים לפי פרויקט וסביבה.
BuildBuilds run in an ephemeral sandbox with no access to other projects and no persistent state between builds.בניות רצות בארגז חול זמני ללא גישה לפרויקטים אחרים וללא מצב מתמיד בין בניות.

Data residencyמיקום נתונים

Your code, your build artifacts, your logs and your databases stay in the region you picked. There is no cross-region replication you did not ask for, and no “temporarily processed elsewhere” footnote. See regions.

הקוד, תוצרי הבנייה, הלוגים ומסדי הנתונים שלכם נשארים באזור שבחרתם. אין שכפול בין-אזורי שלא ביקשתם, ואין הערת שוליים על ”עיבוד זמני במקום אחר“. ראו אזורים.

Audit logיומן ביקורת

Every deploy, rollback, environment write, key creation, role change and security exception is recorded with actor, time, source address and target. Agent actions carry the key that performed them, so “which agent did that” is answerable. Retention is 12 months.

כל פריסה, חזרה לאחור, כתיבת סביבה, יצירת מפתח, שינוי תפקיד וחריגת אבטחה נרשמים עם מבצע, זמן, כתובת מקור ויעד. פעולות סוכן נושאות את המפתח שביצע אותן, ולכן ”איזה סוכן עשה את זה“ היא שאלה שיש לה תשובה. שמירה: 12 חודשים.

terminal
$ shipyard audit --since 24h --actor key_9f2c

Reporting a vulnerabilityדיווח על חולשה

Mail security@interhost.net. We acknowledge within one business day. We do not require you to sign anything before reporting, and we will not threaten you for looking.

כתבו ל-security@interhost.net. אנחנו מאשרים קבלה תוך יום עסקים אחד. אנחנו לא דורשים שתחתמו על משהו לפני דיווח, ולא נאיים עליכם על כך שהסתכלתם.