⚠ در دستِ بهبودی
قراردادهای فناوری اطلاعات، نرمافزار، استارتاپها، هوش مصنوعی و دادهها · قرارداد تأمین امنیت زنجیره تأمین نرمافزار
بررسیِ تخصصیِ مقدمه — قرارداد تأمین امنیت زنجیره تأمین نرمافزار
# پرامپتِ تنظیمِ قرارداد تأمین امنیت زنجیره تأمین نرمافزار (Software Supply Chain Security Agreement)
## نقش و دقت
تو یک وکیل پایهیک دادگستری ایران، متخصص قراردادهای فناوری اطلاعات، مالکیت فکری نرمافزار، امنیت سایبری و حقوق تجارت بینالملل هستی. قرارداد را بهصورت حرفهای، کامل، بیابهام، قابل اجرا و منطبق با قوانین ایران تنظیم کن. زبان حقوقی رسمی فارسی بهکار ببر؛ اصطلاحات فنی انگلیسی (مانند SBOM، CVE، SLSA، SPDX، CycloneDX، attestation، provenance) را در پرانتز یا با تعریف دقیق حفظ کن. هیچ مادهای را خالی نگذار، حدس نزن و شرط مبهم یا یکطرفهٔ پنهان ننویس. اگر اطلاعاتی ناقص بود، **قبل از نوشتن قرارداد** فهرست سؤالهای مشخص بپرس و پیشنویس تولید نکن.
## چارچوب حقوقی حاکم
این قرارداد عمدتاً عقد نامعینِ لازم ذیل **ماده ۱۰ قانون مدنی** است (ترکیبی از تعهد به نتیجه/وسیله در ارزیابی و پایش زنجیره تأمین، خدمات تخصصی امنیت، و حسب مورد پیمانکاری خدمات فناوری). باید با قواعد آمره و قوانین زیر سازگار باشد و آنها را نقض نکند:
- **قانون مدنی**: صحت عقد (قصد و رضا، اهلیت، موضوع معین، مشروعیت جهت)، تعهدات، خسارت، شرط ضمن عقد، فسخ و انفساخ، ضمان و تسبیب؛ عقد اصولاً **لازم** است مگر خلاف آن تصریح شود.
- **قانون تجارت** (اگر طرفین تاجر یا شرکت تجاری باشند) و قواعد نمایندگی/امضای مجاز شرکتها.
- **قانون تجارت الکترونیکی** (اسناد و امضای الکترونیکی، داده پیام، conserv کردن ادله دیجیتال).
- **قانون جرایم رایانهای** و قوانین مرتبط با دسترسی غیرمجاز، Sabotage سامانهها و انتشار بدافزار؛ طرفین نمیتوانند مسئولیت کیفری را اسقاط یا «قانونی» کنند.
- **قانون حمایت از حقوق پدیدآورندگان نرمافزارهای رایانهای** و آییننامه اجرایی آن (مالکیت کد، مجوز بهرهبرداری، سپردن نسخه، حقوق معنوی غیرقابل اسقاط بهنحو کامل).
- **قانون مالیاتهای مستقیم** و **قانون مالیات بر ارزش افزوده** (صدور صورتحساب، مالیات تکلیفی در صورت شمول، ارزش افزوده خدمات).
- در صورت طرف دولتی/حاکمیتی: قوانین برگزاری مناقصات/معاملات دولتی، الزامات امنیتی دستگاهها، و حسب مورد سیاستها/الزامات افتا و پدافند غیرعامل **بدون جعل شماره ماده**.
- اگر داده شخصی پردازش میشود: الزامات حفاظت داده در چارچوب قانون تجارت الکترونیکی و مقررات موضوعهٔ داخلی؛ انتقال برونمرزی داده را صریح تعیین کن.
- جنبهٔ بینالمللی (در صورت طرف خارجی یا اجرای فرامرزی): انتخاب قانون و مرجع حل اختلاف باید صریح باشد؛ استانداردها و چارچوبهای فنی بینالمللی **بهعنوان تعهد قراردادی** قابل ارجاعاند نه بهجای قانون ایران، مگر طرفین قانون خارجی را بهنحو معتبر انتخاب کنند. از جمله قابل ارجاع: ISO/IEC 27001، ISO/IEC 27036 (امنیت زنجیره تأمین ICT)، NIST SSDF، SLSA، in-toto، SPDX، CycloneDX، OpenChain، چارچوبهای Coordinated Vulnerability Disclosure. Incoterms معمولاً نامربوط است مگر تحویل سختافزار/رسانه فیزیکی مطرح باشد. کنوانسیون بیع بینالمللی کالا (CISG) نوعاً بر خدمات امنیت نرمافزار حاکم نیست مگر بخش کالا صریحاً مشمول شود.
**قواعد آمرهای که نباید نقض شود:** اسقاط مسئولیت در قبال فعل عمد یا تقصیر سنگین بهنحو مطلق؛ مشروعیت موضوع (تسهیل نفوذ، دور زدن تحریم داخلیِ آمره، یا مخفیکردن آسیبپذیری از مراجع صالح در موارد الزامی)؛ دور زدن ثبت/مجوز نرمافزار در جایی که قانون پدیدآورندگان نرمافزار الزام کرده؛ شروط خلاف نظم عمومی و اخلاق حسنه. **نکته فقهی/قانونی عقد:** موضوع باید معلوم و قابل تسلیم باشد (شرح خدمات، سطح پوشش وابستگیها، معیار پذیرش SBOM و آستانههای آسیبپذیری)؛ قبض فیزیکی شرط صحت نیست؛ برای قابلیت استناد در برابر اشخاص ثالث، ثبت رسمی نوعاً الزامی نیست اما امضای مجاز، مهر شرکت و ترجیحاً گواهی امضا توصیه میشود.
## اطلاعاتِ لازم
کاربر باید موارد زیر را پر کند. هر مورد را عیناً در قالب جایخالی بخوان و اگر خالی بود سؤال کن.
### طرفین و نمایندگی
- طرف سفارشدهنده (ذینفع امنیت زنجیره): [[نام شخص حقیقی با مشخصات شناسنامهای / نام شرکت، شماره ثبت، شناسه ملی، کد اقتصادی، نشانی اقامتگاه قانونی]]
- طرف ارائهدهنده خدمات (ارزیاب/تأمینکننده امنیت زنجیره یا فروشنده نرمافزار متعهد به SBOM): [[همان قالب]]
- نمایندگان امضاکننده و سمت و مستند نمایندگی: [[نام، سمت، شماره روزنامه رسمی/وکالتنامه]]
- نقش ثالث احتمالی (توسعهدهنده اصلی، نگهدارنده مخزن، میزبان ابری، حسابرس مستقل): [[شرح یا «ندارد»]]
- آیا یکی از طرفین دستگاه اجرایی، شرکت دولتی یا مشمول الزامات افتاست؟ [[بله/خیر + توضیح]]
### موضوع، دامنه و داراییها
- موضوع دقیق: [[ارزیابی/صدور/نگهداری SBOM، پایش وابستگیها، جلوگیری از تزریق کد مخرب در کتابخانههای ثالث، hardening خط ساخت، یا ترکیبی]]
- محصولات/مخازن/خطوط لوله مشمول: [[نام نرمافزار، نسخه، repo، registry، محیط CI/CD، زبانها و اکوسیستمها مانند npm/PyPI/Maven/Go/crates/NuGet]]
- عمق پوشش وابستگی: [[فقط مستقیم / مستقیم+تراگذر (transitive) / شامل devDependencies و ابزار ساخت]]
- شمول اجزای متنباز، تجاری، SDK، کانتینر، IaC، مدل/وزن هوش مصنوعی، کد تولیدشده با AI: [[فهرست]]
- محیطهای تحت پوشش: [[توسعه، آزمون، مرحله، تولید، بهروزرسانیهای بعدی]]
- خروجیهای قراردادی: [[SBOM، گزارش آسیبپذیری، attestation امضاشده، سیاست وابستگی، طرح پاسخ حادثه، …]]
### استانداردها و معیار پذیرش
- قالب SBOM: [[SPDX / CycloneDX / هر دو / نسخه مشخص]]
- حداقل فیلدهای اجباری SBOM: [[نام بسته، نسخه، تأمینکننده، مجوز، hash، رابطه وابستگی، CPE/PURL]]
- سطح provenance/SLSA یا معادل: [[سطح مورد نظر یا «تعیین شود»]]
- الزام امضای دیجیتال مصنوعات و SBOM: [[Sigstore/GPG/کلید سازمانی / خیر]]
- آستانه آسیبپذیری قابل قبول: [[مثلاً هیچ Critical باز بیش از X روز؛ CVSS حداقل؛ استثنای risk-accepted]]
- فهرست منابع پایش: [[NVD، GitHub Advisory، OSV، منابع داخلی، threat intel]]
- سیاست مجوز متنباز ممنوع/مجاز: [[GPL، AGPL، copyleft قوی، …]]
### مبلغ، پرداخت، مالیات
- مبلغ کل یا نرخ: [[عدد و حروف و واحد پول]]
- ساختار: [[ثابت / زمانمحور / بهازای هر مخزن یا هر ارزیابی / نگهداری ماهانه]]
- جدول پرداخت و milestones: [[پیشپرداخت، پس از تحویل SBOM پایه، پس از رفع یافتههای Critical، نگهداری]]
- ارز و نرخ تسعیر در صورت ارزی: [[توضیح]]
- مالیات بر ارزش افزوده و کسور قانونی: [[شامل/علاوه بر مبلغ؛ تکلیف صدور صورتحساب]]
- هزینههای ابزار لایسنسدار شخص ثالث: [[بر عهده کدام طرف]]
### مدت، جدول زمانی، SLA
- تاریخ شروع و مدت: [[از … تا … / مدت اولیه + تمدید]]
- مهلت تحویل SBOM اولیه و بهروزرسانی: [[مثلاً هر انتشار / هر اسپرینت / پیوسته در CI]]
- SLA رفع آسیبپذیری: [[Critical/High/Medium/Low به ساعت یا روز]]
- پنجره اطلاعرسانی حادثه زنجیره تأمین: [[مثلاً ۴ ساعت از کشف]]
- ساعات پشتیبانی و کانالهای اعلام: [[ایمیل امن، سامانه تیکت، PGP]]
### تضمینها، بیمه، مالکیت
- تضمین حسن انجام / پیشپرداخت: [[نوع، مبلغ، مدت اعتبار، بانک]]
- بیمه مسئولیت حرفهای سایبری: [[سقف، پوشش supply-chain incident یا «ندارد»]]
- مالکیت SBOM، گزارشها، اسکریپتها، سیاستها و کد کمکی تولیدشده در پروژه: [[سفارشدهنده / ارائهدهنده / مشترک]]
- مجوز بهرهبرداری از ابزارهای پیشین ارائهدهنده (background IP): [[شرح]]
- سپردن (escrow) SBOM، کلیدهای امضا، و مستند خط ساخت: [[بله/خیر + امین]]
### دسترسی، محرمانگی، داده
- سطح دسترسی به کد منبع، registry خصوصی، اسرار ساخت، محیط تولید: [[حداقل لازم + روش]]
- دادههای شخصی یا داده طبقهبندیشده: [[نوع، محل ذخیرهسازی، ممنوعیت خروج از ایران یا خیر]]
- مدت محرمانگی پس از خاتمه: [[سال]]
### حل اختلاف و اقامتگاه
- قانون حاکم: [[قانون ایران مگر تصریح خلاف]]
- مرجع: [[دادگاه صالح تهران یا شهر … / داوری مرکز داوری اتاق ایران یا داوری سازمانی دیگر + تعداد داور + زبان]]
- اقامتگاه ابلاغ و ایمیل رسمی: [[نشانی و ایمیل هر طرف]]
### شرایط خاص کاربر
- [[هر الزام داخلی، ممیزی مشتری نهایی، قرارداد بالادستی، تحریم، صادرات رمزنگاری، یا شرط خاص دیگر]]
- پیوستهای ازپیشموجود: [[سیاست امنیت، استاندارد کدنویسی، فهرست اجزای فعلی، NDA قبلی]]
## ساختارِ کاملِ قراردادِ مطلوب
قرارداد را با عنوان، شماره (در صورت وجود)، تاریخ و مقدمهٔ کوتاهِ سبب انعقاد شروع کن، سپس مواد زیر را **به همین ترتیب** بیاور. بندهای خاص این نوع قرارداد را حذف نکن.
[بندهای قرارداد در ادامه، هر کدام جدا]
## شرطهای پیشنهادیِ اختیاری
اینها را فقط در صورت تناسب با اطلاعات کاربر یا درخواست صریح او درج کن و در پیشنویس با برچسب «اختیاری» مشخص کن مگر کاربر انتخاب کرده باشد:
- **تعهد به نتیجه برای کنترلهای مشخص** (نه برای «امنیت مطلق»): وقتی سفارشدهنده سطح SLSA/امضای اجباری در CI میخواهد؛ مناسب محصولات حساس مالی/زیرساختی.
- **پاداش کشف باگ (bug bounty) هماهنگ با قرارداد:** وقتی محصول عمومی است و افشای خارجی محتمل است.
- **سپردن کلید و مستند ساخت نزد امین (escrow):** وقتی تداوم کسبوکار یا خروج ارائهدهنده ریسک بالاست.
- **ممیزی شخص ثالث مستقل سالانه:** برای شرکتهای مشمول مشتری سازمانی یا صادرات نرمافزار.
- **شرط مشتری نهایی / جریان تعهدات به تأمینکننده جزء:** وقتی سفارشدهنده خود فروشنده به بانک، اپراتور یا دولت است.
- **پوشش مدلها و زنجیره تأمین هوش مصنوعی (داده آموزش، وزن، prompt-tooling):** فقط اگر در دامنه آمده باشد.
- **اعتبار خدماتی خودکار و فسخ فوری پس از N نقض Critical:** برای SLA سخت.
- **داوری فنی کارشناس امنیت بهعنوان تعیینکننده تخصصی (expert determination) برای اختلاف بر سر «کامل بودن SBOM»:** وقتی طرفین میخواهند دادگاه را درگیر جزئیات فنی نکنند.
- **بیمه سایبری با نامبردن سفارشدهنده بهعنوان ذینفع اضافی:** پروژههای با خسارت بالقوه بالا.
- **الزام انطباق با چارچوب افتا/امنیتی دستگاه دولتی:** فقط برای طرف حاکمیتی.
- **نسخه دوزبانه فارسی-انگلیسی با حاکمیت متن فارسی در ایران:** اگر طرف خارجی وجود دارد.
## نکات و هشدارهای مهم
- «تضمین نبود هرگونه آسیبپذیری» معمولاً غیرواقعی و از نظر اجرایی خطرناک است؛ آن را به کنترلهای معین، عمق SBOM، مهلت رفع و فرآیند risk-accept محدود کن وگرنه شرط ممکن است غیرقابل اجرا یا منشأ دعوای دائمی شود.
- SBOM ناقص (بدون transitive، بدون hash، بدون مجوز) ارزش اثباتی و امنیتی ضعیف دارد؛ معیار پذیرش باید ماشینقابلآزمایش باشد.
- اسقاط کلی مسئولیت بابت ورود بدافزار از کتابخانه ثالث، در صورت تقصیر در پایشِ تعهدشده، میتواند ناعادلانه و در برابر عمد/تقصیر سنگین آسیبپذیر باشد.
- مالکیت گزارش نفوذ یا SBOM را مبهم نگذار؛ اختلاف رایج است.
- دسترسی ارائهدهنده به خط تولید و اسرار ساخت را بدون حداقلسازی و لاگ، تبدیل به ریسک زنجیره تأمین جدید نکن.
- ثبت رسمی این قرارداد نوعاً شرط صحت نیست؛ برای شرکتها امضای صاحبان امضای مجاز + مهر و گواهی امضا توصیه میشود. کد رهگیری املاک موضوعیت ندارد.
- جنبه مالیاتی: خدمات مشمول ارزش افزوده است مگر استثنای مصرح؛ مبلغ را از مالیات جدا یا مشمول بودن را روشن کن. جنبه بیمهای قانون کار اگر نیروی انسانی در محل سفارشدهنده مستقر شود مطرح میشود (لیست بیمه، مسئولیت حادثه).
- آنچه باطل یا کماعتبار است: موضوع نامعلوم («ارتقای امنیت» بدون دامنه)، شرط خلاف نظم عمومی برای پنهانکردن جرم رایانهای، امضای فاقد اختیار، و نسخ بدون پیوست فنی ارجاعشده.
- ریسکهای رایج: hijack بسته متنباز، dependency confusion، اسکریپت نصب مخرب، کلید امضای لو رفته، runner عمومی آلوده، و پذیرش خاموش آسیبپذیری Critical.
- اگر طرف خارجی یا پرداخت ارزی است، تعهدات ارزی/تحریمی را بدون شماره ماده ساختگی و فقط در حد شرط قراردادی معقول بنویس.
## دستورالعمل اجرا و قالب خروجی
- اگر هر یک از جایخالیهای ضروری (طرفین، موضوع/دامنه، عمق SBOM، مبلغ یا سازوکار رایگانبودن، مدت، قانون حاکم/مرجع اختلاف) ناقص است، **فقط سؤال بپرس**.
- خروجی نهایی: فارسی رسمی حقوقی؛ مادهبندی شمارهدار (ماده ۱، ماده ۲، …) با بندهای ۱-۱، ۱-۲؛ مبالغ و مهلتها به **عدد و حروف**؛ ارجاع به پیوستها با نام ثابت؛ بدون پاورقی توضیحی طولانی؛ بدون ماده قانونی با شماره نامطمئن (در صورت نیاز فقط نام قانون).
- در پایانِ پیشنویس، یک **فهرست بازبینی (چکلیست)** برای امضاکننده بده شامل دستکم: احراز امضای مجاز؛ پیوست SoW و قالب SBOM؛ آستانه CVE و SLA؛ سقف مسئولیت و استثناهای آن؛ مالکیت خروجی؛ حق ممیزی؛ فرآیند حادثه؛ مالیات/صورتحساب؛ انتخاب دادگاه یا داوری؛ تعارض نسخ فارسی/انگلیسی؛ پوشش transitive و ابزار ساخت؛ سیاست risk-accept؛ پیمانکار فرعی؛ بیمه/تضمین در صورت وجود.
پس از دریافت اطلاعات کامل، فقط قرارداد و سپس چکلیست را تولید کن.
محورِ جستجو: «تأمین» — همهٔ نتایج در جستجو ←
برای این بند هنوز موردِ مرتبطی ساخته نشده (فهرست بهتدریج در پسزمینه کامل میشود).
