امروزه امنیت نرمافزارها یکی از دغدغههای اصلی حوزه امنیت بشمار میرود. شما نمیتوانید ریسک هیچ آسیبپذیری امنیتی را نادیده بگیرید، بخصوص اگر در حال توسعه نرمافزار برای سیستمهای امبدد هستید. این موضوع بدان معنی است که کد شما باید امن و عاری از خطاهای کدنویسی باشد. اما وقتی به امنیت نرمافزار فکر میکنید، احتمالا به رمز عبور و کنترل دسترسی فکر میکنید، یا ویروسها، جعل و حملات فیشینگ. این موارد نگرانیهای امنیتی رایج هستند و ویژگیهای امنیتی، مانند پروتکلهای رمزگذاری و احراز هویت، این آسیبپذیریها را کاهش میدهند. اما حتی اگر این ویژگیهای امنیتی را پیادهسازی کرده باشید، نرمافزار میتواند آسیبپذیر باقی بماند. برای اطمینان از امنیت نرمافزار، باید از سورسکد شروع کنید، در غیر این صورت، خطاهای کدنویسی برنامه شما را به خطر میاندازد. همین موضوع باعث شده است تا دغدغههای امنیتی در مورد نرمافزارها (بخصوص نرمافزارهای سطح پایین) همیشه وجود داشته باشد.
باید گفت که نوشتن کد امن کار بزرگی است. ویروسهای زیادی در جهان وجود دارند و بسیاری از آنها به سواستفاده از برنامههای کدگذاری ضعیف متکی هستند. گاهی اوقات راهحل فقط استفاده از یک زبان امنتر است (برای مثال جاوا) که معمولاً کد را در یک محیط محافظت شده (مثلاً ماشین مجازی جاوا) اجرا می کند. اما این موضوع همیشه بهترین گزینه نیست، برای مثال اگر به عملکرد عالی نیاز دارید یا اگر روی کدهای قدیمی نوشته شده در C یا C++ کار میکنید و باید از مسائل مربوط به نوشتن کدهای غیرقابل بهرهبرداری آگاه باشید.
با توجه به موارد بالا، آکادمی لیان اقدام به ارائه دوره Secure C Programming کرده است. رویکرد دوره کدنویسی امن در زبان برنامهنویسی C است.
سرفصلهای دوره Secure C Programming بصورت اختصاصی توسط استاد محترم دوره، تهیه و تدوین شده است. همانگونه که بالاتر اشاره شده، سرفصلها به گونهای طراحی شدهاند تا شما بتوانید توانایی کدنویسی امن در محیط برنامهنویسی C را به دست آورید. ضمن اینکه با توجه به اینکه رویکرد دوره بازار کار میباشد، امکان تغییر سرفصلها در طول دوره با نظر مستقیم استاد میباشد.
سرفصلهای دوره Secure C Programming بصورت اختصاصی توسط استاد محترم دوره، تهیه و تدوین شده است. همانگونه که بالاتر اشاره شده، سرفصلها به گونهای طراحی شدهاند تا شما بتوانید توانایی کدنویسی امن در محیط برنامهنویسی C را به دست آورید. ضمن اینکه با توجه به اینکه رویکرد دوره بازار کار میباشد، امکان تغییر سرفصلها در طول دوره با نظر مستقیم استاد میباشد.
1. Overview of C programming language
2. Basic syntax and data types
3. Variables, operators, and expressions
4. Control structures and loops
5. Preprocessors
1. Overview of the build process
2. Compilation process and the role of compilers
3. Understanding object files and linker
1. Stack and heap memory
2. Pointers and memory addresses
3. Memory allocation and deallocation
4. Buffer overflow and other memory-related vulnerabilities
1. Importance of input validation and sanitization
2. Common input-related vulnerabilities
3. Techniques for validating and sanitizing input
1. Building a cryptography library (libgcrypt)
2. Using cryptographic functions in C
1. Overview of network programming in C
2. Common network-related vulnerabilities
3. Secure network programming techniques
1. Types of security testing
2. Debugging techniques for security issues
3. Use of security testing tools
ورود به این دوره پیشنیاز خاصی نیاز ندارد، اما توصیه میشود کاربران از قبل تسلط نسبی روی سیستمعامل لینوکس داشته باشند.