SECURE SOFTWARE
DESIGN &
PROGRAMMING
‫ر‬‫ي‬‫و‬‫ط‬‫ت‬‫و‬ ‫م‬‫ي‬‫م‬‫ص‬‫ت‬
‫ة‬‫ن‬‫م‬‫آل‬‫ا‬ ‫ت‬‫ا‬‫ي‬‫ج‬‫م‬‫ر‬‫ب‬‫ل‬‫ا‬
: ‫ر‬ ‫ر‬ ‫ق‬ ‫م‬ ‫ل‬ ‫ا‬ ‫س‬ ‫ر‬ ‫د‬ ‫م‬
‫م‬ ‫س‬ ‫ا‬ ‫ق‬ ‫ل‬ ‫آ‬ ‫د‬ ‫ه‬ ‫ف‬ . ‫د‬
COURSE INFORMATION- 1
•
‫المقرر‬ ‫مفردات‬
o
‫عامة‬ ‫مقدمة‬
Introduction
.
o
‫المؤقتة‬ ‫الذاكرة‬ ‫فيض‬ ‫هجمة‬
Buffer overflow attack
.
o
‫اآلمن‬ ‫التصميم‬
Secure Design
.
o
‫اإلدخال‬ ‫فحص‬
Input Validation
.
o
‫والمخرجات‬ ‫االستدعاء‬
Output and Call-Out
.
o
‫الكود‬ ‫تحليل‬ ‫وأدوات‬ ‫طرق‬
Analysis Approaches &
Tools
o
‫األخطاء‬ ‫مع‬ ‫التعامل‬
Error Handling
.
2
‫التقييم‬
10%
‫تكليفات‬
5
‫مشاركة‬ %
10
‫نصفي‬ ‫امتحان‬ %
25
‫العملي‬ %
50
‫النهائي‬ ‫االمتحان‬ %
100
‫الدرجة‬ ‫إجمالي‬
‫النهائية‬
COURSE INFORMATION- 2
•
: ‫المقرر‬ ‫خالل‬ ‫المطلوبة‬ ‫التكليفات‬
.1
‫سواء‬ ،‫متنوعة‬ ‫برمجية‬ ‫ثغرات‬/‫هجمات‬ ‫عن‬ ‫بالبحث‬ ‫القيام‬ ‫مجموعة‬ ‫كل‬ ‫من‬ ‫مطلوب‬
‫تلك‬ ‫باستثناء‬ ،‫معينة‬ ‫برمجة‬ ‫بلغة‬ ‫خاصة‬ ‫أو‬ ،‫اللغات‬ ‫كل‬ ‫في‬ ،‫عامة‬ ‫ثغرات‬ ‫كانت‬
‫لـ‬ ‫المخصصة‬
C/C
. ++
.2
.‫بذلك‬ ‫وافي‬ ‫تقرير‬ ‫واعداد‬ ،‫لها‬ ‫المضادة‬ ‫التدابير‬ ‫وفهم‬ ‫الهجمة‬ ‫فهم‬ ‫المجموعة‬ ‫على‬
.3
‫أداة‬ ‫وتختار‬ ،‫الحماية‬ ‫منظور‬ ‫من‬ ‫الكود‬ ‫تحليل‬ ‫أدوات‬ ‫عن‬ ،‫أيضا‬ ،‫مجموعة‬ ‫كل‬ ‫تبحث‬
‫المصدرية‬ ‫البرمجية‬ ‫المشاريع‬ ‫أحد‬ ‫تفحص‬ ‫تجربة‬ ‫عليها‬ ‫وتجري‬ ،‫أكثر‬ ‫أو‬ ،‫مجانية‬ ‫واحدة‬
.‫حديثة‬ ‫برمجة‬ ‫بلغة‬ ،‫النت‬ ‫على‬ ‫المتاحة‬
.4
‫الهجمة‬ ‫عن‬ ،‫العملية‬ ‫باألمثلة‬ ‫مشروحا‬ ‫تقريرا‬ ‫الترم‬ ‫نهاية‬ ‫في‬ ‫المجموعة‬ ‫تسلم‬
‫األدوات‬ ‫أو‬ ‫األداة‬ ‫وتطبيق‬ ‫استخدام‬ ‫طريقة‬ ‫وكذلك‬ .‫منها‬ ‫الحماية‬ ‫وأساليب‬ ‫وتنفيذها‬
.‫اختاروها‬ ‫التي‬
.5
‫المجموعة‬ ‫تزيدا‬ ‫وال‬ ،‫أقصى‬ ‫كحد‬ ‫الثالثة‬ ‫المحاضرة‬ ‫في‬ ‫المجموعات‬ ‫أسماء‬ ‫تسلم‬
‫عن‬ ‫الواحدة‬
3
.‫التقرير‬ ‫بنفس‬ ‫مطالبة‬ ‫مجموعة‬ ‫فكل‬ ‫العدد‬ ‫كان‬ ‫وأيا‬ ،‫طالب‬
.6
‫التواصل‬ ‫وكذلك‬ ،‫والتنوع‬ ‫والتنظيم‬ ‫الترتيب‬ ‫معايير‬ ‫على‬ ‫التكليفات‬ ‫تقييم‬ ‫يعتمد‬
.‫الترم‬ ‫خالل‬ ‫والمناقشة‬
.7
.‫العاشرة‬ ‫المحاضرة‬ ‫في‬ ‫والتسليم‬ ‫العرض‬ ‫يتم‬ 3
SECURE SOFTWARE
DESIGN &
PROGRAMMING
INTRODUCTION
OUTLINE
• Why is most software insecure?
• Must consider security throughout lifecycle
• Weakness groupings
• Risk management/assurance cases
• Processes vs. phases/stages
•
‫آمنة؟‬ ‫غير‬ ‫البرامج‬ ‫أغلب‬ ‫تعتبر‬ ‫لماذا‬
•
‫الحياة‬ ‫دورة‬ ‫طوال‬ ‫األمان‬ ‫مراعاة‬ ‫يجب‬
•
‫الضعف‬ ‫نقاط‬ ‫مجموعات‬
•
/
‫الضمان‬ ‫المخاطر‬ ‫إدارة‬ ‫حاالت‬
•
/
‫الخطوات‬ ‫المراحل‬ ‫مقابل‬ ‫العمليات‬
5
INSECURE SOFTWARE
• Insecure software may:
– Release private/secret information
– Corrupt information
– Lose service
• Costing:
– money
– time
– trust
– lives
6
•
‫غير‬ ‫البرنامج‬ ‫يؤدي‬ ‫قد‬
:‫إلى‬ ‫اآلمن‬
•
‫معلومات‬ ‫كشف‬
. /
‫سرية‬ ‫خاصة‬
•
‫المعلومات‬ ‫إفساد‬
•
.‫الخدمة‬ ‫فقدان‬
•
:‫التكلفة‬
•
‫الثقة‬ ‫الوقت‬ ‫المال‬
‫الحياة‬
WHY IS MOST SOFTWARE
INSECURE?
•
‫آمنة‬ ‫برامج‬ ‫تطوير‬ ‫كيفية‬ ‫يعرفون‬ ‫المطورين‬ ‫من‬ ‫قليل‬
–
‫الدراسية‬ ‫مناهجها‬ ‫في‬ ‫تتضمنها‬ ‫ال‬ ‫المدارس‬ ‫معظم‬
–
‫مرحلة‬ ‫في‬ ‫مطلوبة‬ ‫وليست‬ ،‫االختياري‬ ‫العليا‬ ‫الدراسات‬ ‫مستوى‬ ‫على‬ ‫فهي‬ ،‫كذلك‬ ‫كانت‬ ‫إذا‬
‫البكالوريوس‬
–
/
‫تدرسها‬ ‫ال‬ ‫البرمجة‬ ‫دورات‬ ‫كتب‬
–
(
‫خاصة‬ ‫بطبيعتها‬ ‫خطيرة‬ ‫الشائعة‬ ‫العمليات‬ ‫بعض‬
C/C
)++
–
:‫المهاجمين‬ ‫مثل‬ ‫يفكرون‬ ‫ال‬ ‫المطورين‬ ‫معظم‬
•
!! " "
‫الشيء‬ ‫بعض‬ ‫ا‬ً‫متشكك‬ ‫كن‬ ، ‫هذا؟‬ ‫مهاجمة‬ ‫يمكن‬ ‫كيف‬
–
‫األمنية‬ ‫اآلخرين‬ ‫أخطاء‬ ‫من‬ ‫يتعلمون‬ ‫ال‬ ‫المطورون‬
–
‫من‬ ‫أكثر‬ ‫مدار‬ ‫على‬ ‫األخطاء‬ ‫نفس‬ ‫عن‬ ‫ناجمة‬ ‫األمنية‬ ‫الثغرات‬ ‫معظم‬
40
‫ا‬ً‫م‬‫عا‬
–
...
‫ترتكبها‬ ‫ال‬ ‫حتى‬ ‫الشائعة‬ ‫األخطاء‬ ‫عن‬ ‫سنتعلم‬
•
‫بسهولة‬ ‫البرامج‬ ‫أمان‬ ‫تقييم‬ ‫العمالء‬ ‫يستطيع‬ ‫ال‬
•
‫بجدية‬ ‫األمان‬ ‫في‬ ‫النظر‬ ‫يتم‬ ‫ال‬ ‫ما‬ ‫ا‬ً‫ب‬‫غال‬
–
‫التقييم‬ ‫ومعايير‬ ‫والمتطلبات‬ ‫العقود‬ ‫في‬ ،‫المثال‬ ‫سبيل‬ ‫على‬
•
/
ٍ‫كاف‬ ‫بشكل‬ ‫التدريب‬ ‫الموارد‬ ‫بتخصيص‬ ‫ا‬ً‫م‬‫دائ‬ ‫المديرون‬ ‫يقوم‬ ‫ال‬
7
MUST CONSIDER SECURITY
THROUGHOUT LIFECYCLE
8
Source: “Improving Security Across the Software Development Lifecycle – Task Force Report”, April 1, 2004.
http://www.cyberpartnership.org/init.html; based on Gary McGraw 2004, IEEE Security and Privacy. Fair use asserted.
• Developing secure software requires actions throughout lifecycle
 “Defense-in-breadth” " ‫الدفاع‬
‫الشامل‬ "
• This class focuses on design & implementation (code)
• ‫الحياة‬ ‫دورة‬ ‫طوال‬ ‫إجراءات‬ ‫اتخاذ‬ ‫اآلمنة‬ ‫البرامج‬ ‫تطوير‬ ‫يتطلب‬
WHAT DO OTHER ORGANIZATIONS
DO? BSIMM SURVEY
• Building Security in Maturity Model (BSIMM)
–
( ‫دراسة‬
‫مسحية‬
)
‫المنظمات‬ ‫مختلف‬ ‫في‬ ‫البرمجيات‬ ‫أمن‬ ‫لمبادرات‬
–
‫بين‬ ‫المختلفة‬ ‫لألنشطة‬ ‫المئوية‬ ‫النسبة‬ ‫يوضح‬
109
‫آرائها‬ ‫استطالع‬ ‫تم‬ ‫منظمة‬
– https://www.bsimm.com/
• 4 domains (divided in 12 practices, divided into many activities)
– Governance.
– Intelligence.
– Secure Software Development Lifecycle (SSDL) Touchpoints.
– Deployment.
•
4
(
‫إلى‬ ‫مقسمة‬ ‫مجاالت‬
12
)‫األنشطة‬ ‫من‬ ‫العديد‬ ‫إلى‬ ‫مقسمة‬ ،‫ممارسة‬
–
:
‫البرمجيات‬ ‫أمن‬ ‫مبادرة‬ ‫وقياس‬ ‫وإدارة‬ ‫تنظيم‬ ‫في‬ ‫تساعد‬ ‫التي‬ ‫الممارسات‬ ‫الحوكمة‬
.
–
:
‫أمن‬ ‫أنشطة‬ ‫تنفيذ‬ ‫في‬ ‫المستخدمة‬ ‫المؤسسية‬ ‫المعرفة‬ ‫تجميع‬ ‫إلى‬ ‫تؤدي‬ ‫التي‬ ‫الممارسات‬ ‫االستخبارات‬
‫البرمجيات‬
–
( ‫اآلمنة‬ ‫البرمجيات‬ ‫تطوير‬ ‫حياة‬ ‫دورة‬ ‫اتصال‬ ‫نقاط‬
SSDL
:)
‫عمليات‬ ‫وضمان‬ ‫بتحليل‬ ‫المرتبطة‬ ‫الممارسات‬
.‫معينة‬ ‫برامج‬ ‫وتطوير‬
–
:
‫التقليدية‬ ‫البرامج‬ ‫وصيانة‬ ‫الشبكات‬ ‫أمن‬ ‫منظمات‬ ‫مع‬ ‫تتفاعل‬ ‫التي‬ ‫الممارسات‬ ‫النشر‬
9
Developing secure software requires more than design & code...
but you need those fundamentals
ATTACKER, CRACKER, HACKER
• Attack:
•
" :
‫تعطيل‬ ‫أو‬ ‫جمع‬ ‫تحاول‬ ‫التي‬ ‫الخبيثة‬ ‫األنشطة‬ ‫من‬ ‫نوع‬ ‫أي‬ ‫الهجوم‬
‫المعلومات‬ ‫أو‬ ‫المعلومات‬ ‫نظام‬ ‫ـ‬
‫د‬‫موار‬ ‫تدمير‬ ‫أو‬ ‫تدهور‬ ‫أو‬ ‫إنكار‬ ‫أو‬
".‫نفسها‬
• Attacker:
•
:‫المهاجم‬
) (
‫إذن‬ ‫بدون‬ ‫النظام‬ ‫يهاجم‬ ‫شخص‬
• Cracker:
•
" :
‫الكمبيوتر‬ ‫أنظمة‬ ‫إلى‬ ‫ـ‬
‫ل‬‫الوصو‬ ‫يحاول‬ ‫الذي‬ ‫الشخص‬ ‫المخترق‬
) ( "
‫المهاجمين‬ ‫من‬ ‫نوع‬ ‫إذن‬ ‫دون‬
• Hacker:
•
" :
‫وأجهزة‬ ‫للنظام‬ ‫الداخلي‬ ‫للعمل‬ ‫عميق‬ ‫فهم‬ ‫على‬ ‫بالحصول‬ ‫يستمتع‬ ‫الذي‬ ‫الشخص‬ ‫الهاكر‬
[ "‫الخصوص‬ ‫وجه‬ ‫على‬ ‫الكمبيوتر‬ ‫وشبكات‬ ‫الكمبيوتر‬
RFC 1392
]
•
‫الصحفيون‬ ‫فيه‬ ‫يقع‬ ‫شائع‬ ‫خطأ‬
– NOTE: Hacker ≠ attacker
– Most hackers don’t attack systems
– Many attackers aren’t hackers (might not be clever or knowledgeable)
10
SECURITY OBJECTIVES
• Typical security objectives (CIA):
•
( ‫النموذجية‬ ‫األمنية‬ ‫األهداف‬
CIA
:)
–
‫الموثوقية‬
" " :
‫بها‬ ‫مصرح‬ ‫غير‬ ‫قراءة‬ ‫يجوز‬ ‫ال‬
–
‫السالمة‬
") / ( " :
‫حذف‬ ‫كتابة‬ ‫به‬ ‫مصرح‬ ‫غير‬ ‫تعديل‬ ‫أي‬ ‫إجراء‬ ‫يجوز‬ ‫ال‬
–
" " :
‫هجوم‬ ‫وجود‬ ‫ظل‬ ‫في‬ ‫العمل‬ ‫في‬ ‫يستمر‬ ‫التوفر‬
•
:‫منفصل‬ ‫بشكل‬ ‫الداعمة‬ ‫اآلليات‬ ‫أو‬ ‫األهداف‬ ‫إدراج‬ ‫يتم‬ ‫األحيان‬ ‫بعض‬ ‫في‬
–
) / (
‫المستقبل‬ ‫أو‬ ‫و‬ ‫المرسل‬ ‫من‬ ‫اإلنكار‬ ‫عدم‬
–
(
‫حماية‬ ،‫المثال‬ ‫سبيل‬ ‫على‬ ‫الخصوصية‬
‫المستخدم‬ ‫هوية‬
)
–
/ /
‫التسجيل‬ ‫المساءلة‬ ‫التدقيق‬
–
( ] [
‫الهوية‬ ‫ومصادقة‬ ‫الهوية‬
I&A
)
‫والتفويض‬ ،
•
‫إلى‬ ‫األخيرين‬ ‫اختصار‬ ‫تم‬
AuthN
‫و‬
AuthZ
11
AUTHORIZATION
• Once you have user identity and authentication, you can determine what they’re
authorized to do
•
‫هو‬ ‫ما‬ ‫تحديد‬ ‫يمكنك‬ ،‫عليه‬ ‫والمصادقة‬ ‫المستخدم‬ ‫هوية‬ ‫على‬ ‫حصولك‬ ‫بمجرد‬
‫بفعله‬ ‫له‬ ‫مصرح‬
• Discretionary Access Control
–
‫بماذا‬ ‫القيام‬ ‫يمكنه‬ ‫من‬ ‫يقرر‬ ‫الذي‬ ‫هو‬ ‫والمالك‬ ،‫مالك‬ ‫لها‬ ‫البيانات‬
• Mandatory Access Control
–
(
‫على‬ ‫المالك‬ ‫قبل‬ ‫من‬ ‫حتى‬ ‫الوصول‬ ‫حقوق‬ ‫بعض‬ ‫منح‬ ‫يمكن‬ ‫وال‬ ،‫معينة‬ ‫بخصائص‬ ‫البيانات‬ ‫تتمتع‬
)‫التصنيف‬ ،‫المثال‬ ‫سبيل‬
• Role Based Access Control (RBAC)
–
) (
‫ديناميكية‬ ‫أو‬ ‫ثابتة‬ ‫أدوار‬ ‫إلى‬ ‫المستخدمين‬ ‫تعيين‬
–
‫مباشرة‬ ‫للمستخدم‬ ‫وليس‬ ،‫الدور‬ ‫إلى‬ ‫الوصول‬ ‫منح‬ ‫تم‬
–
) (
‫شراء‬ ‫وكيل‬ ‫المستلم‬ ‫الموظف‬ ‫يكون‬ ‫أال‬ ‫يجب‬ ‫العضوية‬ ‫على‬ ‫قيود‬ ‫هناك‬ ‫تكون‬ ‫األحيان‬ ‫بعض‬ ‫في‬
12
AUDITING/ACCOUNTABILITY/
LOGGING
•
/ /
‫التسجيل‬ ‫المساءلة‬ ‫التدقيق‬
• Record system actions, esp. security-relevant ones (e.g., log in)
• Detect unusual activity that might signal attack or exploitation
–
... :
،‫بمقاضاة‬ ‫وقم‬ ،‫النظام‬ ‫وأغلق‬ ،‫االتصال‬ ‫هذا‬ ‫افصل‬ ‫اإلجراء‬ ‫اتخاذ‬ ‫يمكنك‬ ‫لذا‬
–
‫في‬ ‫يساعد‬ ‫قد‬
‫االسترداد‬
) (
‫حدث‬ ‫ما‬ ‫معرفة‬ ‫خالل‬ ‫من‬ ‫المستقبل‬ ‫في‬ ‫االستغالل‬ ‫منع‬ ‫أو‬
–
‫أخرى‬ ‫أماكن‬ ‫إلى‬ ‫السجالت‬ ‫التشغيلية‬ ‫األنظمة‬ ‫ترسل‬ ‫ما‬ ‫ا‬ً‫غالب‬
•
‫القديمة‬ ‫السجل‬ ‫إدخاالت‬ ‫تغيير‬ ‫يمكن‬ ‫فال‬ ،‫النظام‬ ‫إفساد‬ ‫تم‬ ‫إذا‬
13
WEAKNESSES & VULNERABILITIES
• Weakness: A type of defect/flaw that might lead to a failure to meet security
objectives
•
/ :
‫تحقيق‬ ‫في‬ ‫الفشل‬ ‫إلى‬ ‫يؤدي‬ ‫قد‬ ‫الذي‬ ‫الخلل‬ ‫العيوب‬ ‫من‬ ‫نوع‬ ‫الضعف‬
‫األمان‬ ‫أهداف‬
• Vulnerability: “Weakness in an information system, system security
procedures, internal controls, or implementation that could be exploited by a
threat source” [CNSS 4009]
•
‫الثغرة‬
" :
‫أو‬ ،‫النظام‬ ‫أمن‬ ‫إجراءات‬ ‫أو‬ ،‫المعلومات‬ ‫نظام‬ ‫في‬ ‫ضعف‬
‫التنفيذ‬ ‫أو‬ ،‫الداخلية‬ ‫الضوابط‬
‫الذي‬
"
‫استغاللها‬ ‫يتم‬ ‫قد‬
‫مصدر‬ ‫قبل‬ ‫من‬
[ "‫التهديد‬
CNSS 4009
]
14
WEAKNESS CLASSIFICATIONS
• Software is vulnerable because of some weakness that is exploitable
–
‫مقصود‬ ‫غير‬ ‫الضعف‬ ‫يكون‬ ‫ما‬ ‫عادة‬
–
) / (
‫قبل‬ ‫من‬ ‫المرات‬ ‫آالف‬ ‫حدث‬ ‫قد‬ ‫الخلل‬ ‫نوع‬ ‫نوع‬ ‫الضعف‬ ‫يكون‬ ‫ما‬ ‫عادة‬
• We’ll spend lots of time learning about weaknesses – so you won’t make the
same mistakes
• Many weakness classification systems exist
•
‫الضعف‬ ‫تصنيف‬ ‫أنظمة‬ ‫من‬ ‫العديد‬ ‫هناك‬
– Common Weakness Enumeration (CWE) – merged
– “Seven pernicious kingdoms”, etc.
– Key is to learn what these weaknesses are
15
COMMON WEAKNESS
ENUMERATION (CWE)
• Common Weakness Enumeration (CWE) = list of software weaknesses,
Weakness = Type of vulnerabilities
•
( ‫الشائعة‬ ‫الضعف‬ ‫نقاط‬ ‫تعداد‬
CWE
= )
‫البرامج‬ ‫في‬ ‫الضعف‬ ‫نقاط‬ ‫قائمة‬
،
= ‫الضعف‬
‫نوع‬
‫األمنية‬ ‫الثغرات‬
• CWE-120 = Buffer Copy without Checking Size of Input (“Classic Buffer
Overflow”)
• Common naming system: ‫المشترك‬ ‫التسمية‬ ‫نظام‬
– Useful as “common name” (e.g., tool coordination)
– Does have some structuring/organization (slices, graphs, parents/children)… but
that’s not its strength
• More info: http://cwe.mitre.org
16
SEVEN PERNICIOUS KINGDOMS
•
‫الخبيثة‬ ‫السبع‬ ‫الممالك‬
• Input Validation and Representation
• API Abuse
• Security Features
• Time and State
• Error Handling
• Code Quality
• Encapsulation
: " :
‫ألخطاء‬ ‫تصنيف‬ ‫خبيثة‬ ‫ممالك‬ ‫سبع‬ ،‫وماكجرو‬ ،‫تشيس‬ ،‫تسيبينيوك‬ ‫المصدر‬
"
، ‫البرمجيات‬ ‫أمن‬
‫مؤتمر‬ ‫وقائع‬
SSATTM، 2005
17
Source: Tsipenyuk, Chess, and McGraw,
“Seven Pernicious Kingdoms: A Taxonomy of Software Security Errors”,
Proceedings SSATTM, 2005
ABSTRACT VIEW OF A PROGRAM
18
Program
Process Data
(Structured Program
Internals)
Input Output
Call-out to
other programs
(also consider
input & output issues)
‫للبرنامج‬ ‫مجردة‬ ‫نظرة‬
19
‫برنامج‬
‫العملية‬ ‫بيانات‬
(
‫الداخلية‬ ‫البيانات‬
)‫المنظم‬ ‫للبرنامج‬
‫مدخل‬ ‫الناتج‬
‫إلى‬ ‫نداء‬
‫اخرى‬ ‫برامج‬
(‫ًا‬‫ض‬‫أي‬ ‫اعتبارك‬ ‫في‬ ‫ضع‬
‫واإلخراج‬ ‫اإلدخال‬ ‫)قضايا‬
RISK MANAGEMENT SHOULD BE PART
OF ENTIRE SYSTEM LIFECYCLE
• Potential impacts of security vulnerabilities are a risk
– Manage that risk as part of risk management
– If complex to communicate, assurance case can help
20
Risk management process:
• Communication and
consultation
• Establishing the context
• Risk assessment
• Risk identification
• Risk analysis
• Risk evaluation
• Risk Treatment
Source: DoD Risk, Issue, and Opportunity Management
Guide for Defense Acquisition Programs, January 2017,
http://www.acq.osd.mil/se/docs/2017-RIO.pdf
Source: ISO 31000:2009
‫من‬ ‫ًا‬‫جزء‬ ‫المخاطر‬ ‫إدارة‬ ‫تكون‬ ‫أن‬ ‫يجب‬
‫بالكامل‬ ‫النظام‬ ‫حياة‬ ‫دورة‬
•
‫ا‬ً‫خطر‬ ‫تشكل‬ ‫األمن‬ ‫لثغرات‬ ‫المحتملة‬ ‫التأثيرات‬
–
‫المخاطر‬ ‫إدارة‬ ‫من‬ ‫كجزء‬ ‫المخاطر‬ ‫تلك‬ ‫إدارة‬
–
‫التأكيد‬ ‫حالة‬ ‫تساعدك‬ ‫أن‬ ‫يمكن‬ ،‫ا‬ً‫د‬‫معق‬ ‫التواصل‬ ‫كان‬ ‫إذا‬
21
:‫المخاطر‬ ‫إدارة‬ ‫عملية‬
•
‫والتشاور‬ ‫التواصل‬
•
‫السياق‬ ‫تحديد‬
•
‫المخاطر‬ ‫تقييم‬
•
‫المخاطر‬ ‫تحديد‬
•
‫المخاطر‬ ‫تحليل‬
•
‫المخاطر‬ ‫تقييم‬
•
‫المخاطر‬ ‫معالجة‬
:
‫الدفاع‬ ‫بوزارة‬ ‫والفرص‬ ‫والقضايا‬ ‫المخاطر‬ ‫إدارة‬ ‫المصدر‬
‫يناير‬ ،‫الدفاعية‬ ‫المشتريات‬ ‫برامج‬ ‫دليل‬
2017 ،
http://www.acq.osd.mil/se/docs/2017-RIO.pdf
:‫المصدر‬
ISO 31000:2009
POSSIBLE RISK RESPONSES
• Avoid / eliminate
–
.
‫ا‬ً‫ي‬‫عمل‬ ‫ا‬ً‫م‬‫دائ‬ ‫ليس‬ ‫ولكن‬ ،‫األفضل‬ ‫المخاطر‬ ‫حدوث‬ ‫عدم‬ ‫من‬ ‫تأكد‬
• Control / reduce / mitigate
– Limit system privileges so if attacker “takes over” a program, that program cannot do
everything
– Limit data available on potentially-attacked system
– Detect/respond/recover (quickly)
• Recover quickly when network denial-of-service ends
• Maintain protected backups, easy restore mechanism
• Transfer / share (e.g., outsourcing, insurance)
• Assume / accept / retain (budget for it!)
•
‫المخاطر‬ ‫حول‬ ‫األساسية‬ ‫النقطة‬
–
‫يمكنك‬ ‫ال‬
!‫المخاطر‬ ‫جميع‬ ‫على‬ ‫القضاء‬
•
) (
‫معقولة‬ ‫بتكلفة‬ ‫ا‬ً‫م‬‫دائ‬ ‫تحقيقه‬ ‫الممكن‬ ‫من‬ ‫ليس‬ ‫ولكن‬ ،‫جيد‬ ‫هدف‬
–
‫يمكنك‬
‫إدارتهم‬
​
22
ASSURANCE CASE (ISO/IEC 15026)
• Assurance = Grounds for justified confidence that a claim has been/will be achieved
(but how communicate that?)
• ISO/IEC 15026-2:2011 specifies defines structure & contents of an assurance case
–
‫الهندسية‬ ‫القرارات‬ ‫واتخاذ‬ ‫المصلحة‬ ‫أصحاب‬ ‫بين‬ ‫االتصاالت‬ ‫تسهيل‬
–
‫واألمن‬ ‫السالمة‬ ‫مثل‬ ‫للمطالبات‬ ً‫ة‬‫عاد‬
• ISO doesn’t mandate a graphical notation; primarily 3 in use:
–
( ‫واألدلة‬ ‫والحجج‬ ‫المطالبات‬
CAE
- )
‫للغاية‬ ‫بسيطة‬
–
( ‫الهدف‬ ‫هيكلة‬ ‫تدوين‬
GSN
- )
‫ا‬ً‫د‬‫معق‬ ‫يكون‬ ‫أن‬ ‫ويمكن‬ ،‫متطور‬
–
( ‫المنظم‬ ‫التأكيد‬ ‫حالة‬ ‫نموذج‬
SACM
– )
‫السمات‬ ‫بين‬ ‫يجمع‬
• An assurance case includes:
–
:
‫منتج‬ ‫أو‬ ‫نظام‬ ‫لخاصية‬ ‫األعلى‬ ‫المستوى‬ ‫من‬ ‫مطالبات‬ ‫المطالبات‬
–
:
‫االدعاء‬ ‫هذا‬ ‫تبرر‬ ‫التي‬ ‫المنهجية‬ ‫الحجج‬ ‫الحجج‬
–
: /
‫الحجة‬ ‫أساس‬ ‫تشكل‬ ‫التي‬ ‫الصريحة‬ ‫واالفتراضات‬ ‫األدلة‬ ‫االفتراضات‬ ‫األدلة‬
23
PROCESSES VS. STAGES/PHASES
‫العمليات‬
‫ـ؟‬
‫ل‬‫ـ‬
‫ح‬‫ـ‬
‫ا‬‫ـ‬
‫ر‬‫ـ‬
‫م‬‫ـ‬
‫ل‬‫ـ‬
‫ا‬ ‫ـ‬
‫و‬
• ISO/IEC/IEEE 12207:2017, Systems and software engineering — Software life cycle
processes
– Identifies processes in software, which are the same as ISO/IEC/IEEE 15288 (system life cycle
processes)
• Processes aren’t stages/phases
– Process = “set of interrelated or interacting activities that transforms inputs into outputs”
– Stage (aka phase) = “period within the life cycle of an entity that relates to the state of its
description or realization” [relate to major progress and achievement milestones…] [i.e.,
period of time]
–
" " =
‫مخرجات‬ ‫إلى‬ ‫المدخالت‬ ‫تحول‬ ‫التي‬ ‫المتفاعلة‬ ‫أو‬ ‫المترابطة‬ ‫األنشطة‬ ‫من‬ ‫مجموعة‬ ‫العملية‬
–
[ " " = ) (
‫تتعلق‬ ‫تحقيقه‬ ‫أو‬ ‫وصفه‬ ‫بحالة‬ ‫تتعلق‬ ‫الكيان‬ ‫حياة‬ ‫دورة‬ ‫ضمن‬ ‫فترة‬ ‫الطور‬ ‫أو‬ ‫المرحلة‬
] [ ]...
‫زمنية‬ ‫فترة‬ ‫أي‬ ‫الرئيسية‬ ‫واإلنجاز‬ ‫التقدم‬ ‫بمعالم‬
•
‫بالتوازي‬ ‫العمليات‬ ‫تحدث‬ ‫العملية‬ ‫الممارسة‬ ‫في‬
24
BASICS OF UNIX/LINUX/POSIX
•
/
‫الخادم‬ ‫برامج‬ ‫اآلمنة‬ ‫التطبيقات‬ ‫على‬ ‫تركيزنا‬
–
‫آمنة‬ ‫تشغيل‬ ‫أنظمة‬ ‫بإنشاء‬ ‫األمر‬ ‫يتعلق‬ ‫ال‬
‫أنها‬ ‫مع‬ ،
‫المبادئ‬ ‫نفس‬
.
•
(
‫نظام‬ ،‫المثال‬ ‫سبيل‬ ‫على‬ ‫الداعمة‬ ‫للمكونات‬ ‫األمان‬ ‫نموذج‬ ‫فهم‬ ‫يجب‬
)‫البيانات‬ ‫قواعد‬ ‫إدارة‬ ‫وأنظمة‬ ‫التشغيل‬
،
(
e.g., OS and DBMS
)
• Focus on Unix/Linux/POSIX model, used in:
– Linux-based (Red Hat Enterprise, Fedora, Ubuntu, Debian, Android, …)
– Unix (*BSDs, Solaris, AIX, …)
– MacOS & iOS
• We will call these “Unix-like” systems
• MS Windows’ model is different in detail, though in many cases very similar
(many analogies)
25
KERNEL VS. USER SPACE
• Usually implemented as:
– Kernel: :
‫هياكل‬ ‫وينفذ‬ ‫باألجهزة‬ ‫يتصل‬ ‫المستوى‬ ‫منخفض‬ ‫برنامج‬ ‫النواة‬
‫أساسية‬
– User space: Processes that run programs
• Some processes have special privileges
• Some long-running processes provide services (daemons)
26
Kernel
User space
Kernel
USERS & GROUPS
• Each user is assigned user id (UID) – an integer
–
‫لـ‬ ‫يمكن‬
UID 0
)" "(
‫األمنية‬ ‫التحكم‬ ‫عناصر‬ ‫تجاوز‬ ‫الجذر‬ ‫المستخدم‬
–
‫يوجد‬
‫ملف‬
passwd
‫به‬ ‫الخاص‬ ‫المستخدم‬ ‫ومعرف‬ ‫المستخدم‬ ‫اسم‬ ‫يسرد‬
• Users belong to at least one group
–
( ‫مجموعة‬ ‫ومعرف‬ ‫اسم‬ ‫لها‬ ‫مجموعة‬ ‫كل‬
GID
- )
‫صحيح‬ ‫عدد‬
–
‫يتمتع‬ ،‫العملية‬ ‫الممارسة‬ ‫في‬
GID 0
‫خاصة‬ ‫بامتيازات‬ ‫ا‬ً‫ض‬‫أي‬
–
‫المجموعات‬ ‫من‬ ‫العديد‬ ‫إلى‬ ‫باالنتماء‬ ‫للمستخدمين‬ ‫الحديثة‬ ‫األنظمة‬ ‫تسمح‬
–
‫يوجد‬
/
‫المجموعة‬ ‫قائمة‬ ‫ملف‬
‫فيها‬
‫والعضوية‬ ‫المجموعة‬ ‫ومعرف‬ ‫المجموعة‬ ‫اسم‬
• Separate different users in a multi-user system
• Android: Applications have different UID/GID
27
PROCESSES
• A process = a running program
•
=
‫التشغيل‬ ‫قيد‬ ‫برنامج‬ ‫عملية‬
– Same program may be run by >1 process
– Process may have multiple threads of control
•
‫ما‬ ‫ا‬ً‫ب‬‫وغال‬ ،‫اإلنشاء‬ ‫عملية‬ ‫من‬ ‫والحقوق‬ ‫السمات‬ ‫معظم‬ ‫العمليات‬ ‫ترث‬
‫تو‬
‫أنشأها‬ ‫الذي‬ ‫المستخدم‬ ‫إلى‬ ‫رثها‬
• See running processes with command line:
ps -ef
• Processes have various attributes
28
FILES
• Files, aka filesystem objects (FSOs), can be read from or written to. Files may
be:
– Regular (ordinary) file, character special file, block special file, FIFO special file,
symbolic link, socket, and directory
• Pathname: A sequence of bytes to identify a file
–
) ( "/"
‫الجذر‬ ‫الدليل‬ ‫بـ‬ ‫المطلقة‬ ‫المسارات‬ ‫أسماء‬ ‫تبدأ‬
–
‫الحالي‬ ‫الدليل‬ ‫في‬ ‫العادية‬ ‫المسارات‬ ‫أسماء‬ ‫تبدأ‬ ‫ال‬
–
) ( "/" ) (
‫الدليل‬ ‫فاصل‬ ‫و‬ ‫الملفات‬ ‫أسماء‬ ‫المسار‬ ‫اسم‬ ‫مكونات‬ ‫تسلسل‬
–
" " " "
‫االسم‬ ‫مسار‬ ‫مكونات‬ ‫ا‬ً‫رسمي‬ ‫هي‬ ‫الملفات‬ ‫أسماء‬ ‫الكثيرون‬ ‫عليه‬ ‫يطلق‬ ‫ما‬
–
‫الملف‬ ‫نفس‬ ‫إلى‬ ‫المختلفة‬ ‫المسارات‬ ‫أسماء‬ ‫تشير‬ ‫قد‬
•
‫األساسي‬ ‫الملف‬ ‫لنفس‬ ‫متعددة‬ ‫مستعارة‬ ‫أسماء‬ ‫إنشاء‬ ‫يمكنك‬
•
‫آخر‬ ‫مسار‬ ‫عبر‬ ‫ا‬ً‫د‬‫موجو‬ ‫يظل‬ ‫فقد‬ ،‫ملف‬ ‫بإزالة‬ ‫قمت‬ ‫إذا‬
–
‫المسارات‬ ‫وأسماء‬ ‫الملفات‬ ‫أسماء‬
‫ال‬
‫أحرف‬ ‫سلسلة‬ ‫بالضرورة‬ ‫تكون‬
•
( /
‫أو‬ ‫الحالية‬ ‫المحلية‬ ‫اإلعدادات‬ ‫في‬ ‫لها‬ ‫معنى‬ ‫ال‬ ‫قانونية‬ ‫غير‬ ‫البايتات‬ ‫تسلسالت‬ ‫تكون‬ ‫قد‬
)‫األخرى‬ 29
SOCKETS (FOR TCP/IP)
• Sockets represent
network communication
endpoints
• Today, network ==
Internet protocol (IP),
and usually TCP (creates
illusion of data flow)
• If you want to encrypt it,
typically build
encryption on top
socket()
bind()
listen()
accept()
read()/
write()
close()/
shutdown()
Server Client
socket()
connect()
read()/
write()
close()/
shutdown()
Establish
connection
RELEASED UNDER CC BY-SA 3.0
• This presentation is released under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC
BY-SA 3.0) license
• You are free:
– to Share — to copy, distribute and transmit the work
– to Remix — to adapt the work
– to make commercial use of the work
• Under the following conditions:
– Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any
way that suggests that they endorse you or your use of the work)
– Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only
under the same or similar license to this one
• These conditions can be waived by permission from the copyright holder
– dwheeler at dwheeler dot com
• Details at: http://creativecommons.org/licenses/by-sa/3.0/
• Attribute me as “David A. Wheeler”
31

Cloud__Computing cloud____computing.pptx

  • 1.
    SECURE SOFTWARE DESIGN & PROGRAMMING ‫ر‬‫ي‬‫و‬‫ط‬‫ت‬‫و‬‫م‬‫ي‬‫م‬‫ص‬‫ت‬ ‫ة‬‫ن‬‫م‬‫آل‬‫ا‬ ‫ت‬‫ا‬‫ي‬‫ج‬‫م‬‫ر‬‫ب‬‫ل‬‫ا‬ : ‫ر‬ ‫ر‬ ‫ق‬ ‫م‬ ‫ل‬ ‫ا‬ ‫س‬ ‫ر‬ ‫د‬ ‫م‬ ‫م‬ ‫س‬ ‫ا‬ ‫ق‬ ‫ل‬ ‫آ‬ ‫د‬ ‫ه‬ ‫ف‬ . ‫د‬
  • 2.
    COURSE INFORMATION- 1 • ‫المقرر‬‫مفردات‬ o ‫عامة‬ ‫مقدمة‬ Introduction . o ‫المؤقتة‬ ‫الذاكرة‬ ‫فيض‬ ‫هجمة‬ Buffer overflow attack . o ‫اآلمن‬ ‫التصميم‬ Secure Design . o ‫اإلدخال‬ ‫فحص‬ Input Validation . o ‫والمخرجات‬ ‫االستدعاء‬ Output and Call-Out . o ‫الكود‬ ‫تحليل‬ ‫وأدوات‬ ‫طرق‬ Analysis Approaches & Tools o ‫األخطاء‬ ‫مع‬ ‫التعامل‬ Error Handling . 2 ‫التقييم‬ 10% ‫تكليفات‬ 5 ‫مشاركة‬ % 10 ‫نصفي‬ ‫امتحان‬ % 25 ‫العملي‬ % 50 ‫النهائي‬ ‫االمتحان‬ % 100 ‫الدرجة‬ ‫إجمالي‬ ‫النهائية‬
  • 3.
    COURSE INFORMATION- 2 • :‫المقرر‬ ‫خالل‬ ‫المطلوبة‬ ‫التكليفات‬ .1 ‫سواء‬ ،‫متنوعة‬ ‫برمجية‬ ‫ثغرات‬/‫هجمات‬ ‫عن‬ ‫بالبحث‬ ‫القيام‬ ‫مجموعة‬ ‫كل‬ ‫من‬ ‫مطلوب‬ ‫تلك‬ ‫باستثناء‬ ،‫معينة‬ ‫برمجة‬ ‫بلغة‬ ‫خاصة‬ ‫أو‬ ،‫اللغات‬ ‫كل‬ ‫في‬ ،‫عامة‬ ‫ثغرات‬ ‫كانت‬ ‫لـ‬ ‫المخصصة‬ C/C . ++ .2 .‫بذلك‬ ‫وافي‬ ‫تقرير‬ ‫واعداد‬ ،‫لها‬ ‫المضادة‬ ‫التدابير‬ ‫وفهم‬ ‫الهجمة‬ ‫فهم‬ ‫المجموعة‬ ‫على‬ .3 ‫أداة‬ ‫وتختار‬ ،‫الحماية‬ ‫منظور‬ ‫من‬ ‫الكود‬ ‫تحليل‬ ‫أدوات‬ ‫عن‬ ،‫أيضا‬ ،‫مجموعة‬ ‫كل‬ ‫تبحث‬ ‫المصدرية‬ ‫البرمجية‬ ‫المشاريع‬ ‫أحد‬ ‫تفحص‬ ‫تجربة‬ ‫عليها‬ ‫وتجري‬ ،‫أكثر‬ ‫أو‬ ،‫مجانية‬ ‫واحدة‬ .‫حديثة‬ ‫برمجة‬ ‫بلغة‬ ،‫النت‬ ‫على‬ ‫المتاحة‬ .4 ‫الهجمة‬ ‫عن‬ ،‫العملية‬ ‫باألمثلة‬ ‫مشروحا‬ ‫تقريرا‬ ‫الترم‬ ‫نهاية‬ ‫في‬ ‫المجموعة‬ ‫تسلم‬ ‫األدوات‬ ‫أو‬ ‫األداة‬ ‫وتطبيق‬ ‫استخدام‬ ‫طريقة‬ ‫وكذلك‬ .‫منها‬ ‫الحماية‬ ‫وأساليب‬ ‫وتنفيذها‬ .‫اختاروها‬ ‫التي‬ .5 ‫المجموعة‬ ‫تزيدا‬ ‫وال‬ ،‫أقصى‬ ‫كحد‬ ‫الثالثة‬ ‫المحاضرة‬ ‫في‬ ‫المجموعات‬ ‫أسماء‬ ‫تسلم‬ ‫عن‬ ‫الواحدة‬ 3 .‫التقرير‬ ‫بنفس‬ ‫مطالبة‬ ‫مجموعة‬ ‫فكل‬ ‫العدد‬ ‫كان‬ ‫وأيا‬ ،‫طالب‬ .6 ‫التواصل‬ ‫وكذلك‬ ،‫والتنوع‬ ‫والتنظيم‬ ‫الترتيب‬ ‫معايير‬ ‫على‬ ‫التكليفات‬ ‫تقييم‬ ‫يعتمد‬ .‫الترم‬ ‫خالل‬ ‫والمناقشة‬ .7 .‫العاشرة‬ ‫المحاضرة‬ ‫في‬ ‫والتسليم‬ ‫العرض‬ ‫يتم‬ 3
  • 4.
  • 5.
    OUTLINE • Why ismost software insecure? • Must consider security throughout lifecycle • Weakness groupings • Risk management/assurance cases • Processes vs. phases/stages • ‫آمنة؟‬ ‫غير‬ ‫البرامج‬ ‫أغلب‬ ‫تعتبر‬ ‫لماذا‬ • ‫الحياة‬ ‫دورة‬ ‫طوال‬ ‫األمان‬ ‫مراعاة‬ ‫يجب‬ • ‫الضعف‬ ‫نقاط‬ ‫مجموعات‬ • / ‫الضمان‬ ‫المخاطر‬ ‫إدارة‬ ‫حاالت‬ • / ‫الخطوات‬ ‫المراحل‬ ‫مقابل‬ ‫العمليات‬ 5
  • 6.
    INSECURE SOFTWARE • Insecuresoftware may: – Release private/secret information – Corrupt information – Lose service • Costing: – money – time – trust – lives 6 • ‫غير‬ ‫البرنامج‬ ‫يؤدي‬ ‫قد‬ :‫إلى‬ ‫اآلمن‬ • ‫معلومات‬ ‫كشف‬ . / ‫سرية‬ ‫خاصة‬ • ‫المعلومات‬ ‫إفساد‬ • .‫الخدمة‬ ‫فقدان‬ • :‫التكلفة‬ • ‫الثقة‬ ‫الوقت‬ ‫المال‬ ‫الحياة‬
  • 7.
    WHY IS MOSTSOFTWARE INSECURE? • ‫آمنة‬ ‫برامج‬ ‫تطوير‬ ‫كيفية‬ ‫يعرفون‬ ‫المطورين‬ ‫من‬ ‫قليل‬ – ‫الدراسية‬ ‫مناهجها‬ ‫في‬ ‫تتضمنها‬ ‫ال‬ ‫المدارس‬ ‫معظم‬ – ‫مرحلة‬ ‫في‬ ‫مطلوبة‬ ‫وليست‬ ،‫االختياري‬ ‫العليا‬ ‫الدراسات‬ ‫مستوى‬ ‫على‬ ‫فهي‬ ،‫كذلك‬ ‫كانت‬ ‫إذا‬ ‫البكالوريوس‬ – / ‫تدرسها‬ ‫ال‬ ‫البرمجة‬ ‫دورات‬ ‫كتب‬ – ( ‫خاصة‬ ‫بطبيعتها‬ ‫خطيرة‬ ‫الشائعة‬ ‫العمليات‬ ‫بعض‬ C/C )++ – :‫المهاجمين‬ ‫مثل‬ ‫يفكرون‬ ‫ال‬ ‫المطورين‬ ‫معظم‬ • !! " " ‫الشيء‬ ‫بعض‬ ‫ا‬ً‫متشكك‬ ‫كن‬ ، ‫هذا؟‬ ‫مهاجمة‬ ‫يمكن‬ ‫كيف‬ – ‫األمنية‬ ‫اآلخرين‬ ‫أخطاء‬ ‫من‬ ‫يتعلمون‬ ‫ال‬ ‫المطورون‬ – ‫من‬ ‫أكثر‬ ‫مدار‬ ‫على‬ ‫األخطاء‬ ‫نفس‬ ‫عن‬ ‫ناجمة‬ ‫األمنية‬ ‫الثغرات‬ ‫معظم‬ 40 ‫ا‬ً‫م‬‫عا‬ – ... ‫ترتكبها‬ ‫ال‬ ‫حتى‬ ‫الشائعة‬ ‫األخطاء‬ ‫عن‬ ‫سنتعلم‬ • ‫بسهولة‬ ‫البرامج‬ ‫أمان‬ ‫تقييم‬ ‫العمالء‬ ‫يستطيع‬ ‫ال‬ • ‫بجدية‬ ‫األمان‬ ‫في‬ ‫النظر‬ ‫يتم‬ ‫ال‬ ‫ما‬ ‫ا‬ً‫ب‬‫غال‬ – ‫التقييم‬ ‫ومعايير‬ ‫والمتطلبات‬ ‫العقود‬ ‫في‬ ،‫المثال‬ ‫سبيل‬ ‫على‬ • / ٍ‫كاف‬ ‫بشكل‬ ‫التدريب‬ ‫الموارد‬ ‫بتخصيص‬ ‫ا‬ً‫م‬‫دائ‬ ‫المديرون‬ ‫يقوم‬ ‫ال‬ 7
  • 8.
    MUST CONSIDER SECURITY THROUGHOUTLIFECYCLE 8 Source: “Improving Security Across the Software Development Lifecycle – Task Force Report”, April 1, 2004. http://www.cyberpartnership.org/init.html; based on Gary McGraw 2004, IEEE Security and Privacy. Fair use asserted. • Developing secure software requires actions throughout lifecycle  “Defense-in-breadth” " ‫الدفاع‬ ‫الشامل‬ " • This class focuses on design & implementation (code) • ‫الحياة‬ ‫دورة‬ ‫طوال‬ ‫إجراءات‬ ‫اتخاذ‬ ‫اآلمنة‬ ‫البرامج‬ ‫تطوير‬ ‫يتطلب‬
  • 9.
    WHAT DO OTHERORGANIZATIONS DO? BSIMM SURVEY • Building Security in Maturity Model (BSIMM) – ( ‫دراسة‬ ‫مسحية‬ ) ‫المنظمات‬ ‫مختلف‬ ‫في‬ ‫البرمجيات‬ ‫أمن‬ ‫لمبادرات‬ – ‫بين‬ ‫المختلفة‬ ‫لألنشطة‬ ‫المئوية‬ ‫النسبة‬ ‫يوضح‬ 109 ‫آرائها‬ ‫استطالع‬ ‫تم‬ ‫منظمة‬ – https://www.bsimm.com/ • 4 domains (divided in 12 practices, divided into many activities) – Governance. – Intelligence. – Secure Software Development Lifecycle (SSDL) Touchpoints. – Deployment. • 4 ( ‫إلى‬ ‫مقسمة‬ ‫مجاالت‬ 12 )‫األنشطة‬ ‫من‬ ‫العديد‬ ‫إلى‬ ‫مقسمة‬ ،‫ممارسة‬ – : ‫البرمجيات‬ ‫أمن‬ ‫مبادرة‬ ‫وقياس‬ ‫وإدارة‬ ‫تنظيم‬ ‫في‬ ‫تساعد‬ ‫التي‬ ‫الممارسات‬ ‫الحوكمة‬ . – : ‫أمن‬ ‫أنشطة‬ ‫تنفيذ‬ ‫في‬ ‫المستخدمة‬ ‫المؤسسية‬ ‫المعرفة‬ ‫تجميع‬ ‫إلى‬ ‫تؤدي‬ ‫التي‬ ‫الممارسات‬ ‫االستخبارات‬ ‫البرمجيات‬ – ( ‫اآلمنة‬ ‫البرمجيات‬ ‫تطوير‬ ‫حياة‬ ‫دورة‬ ‫اتصال‬ ‫نقاط‬ SSDL :) ‫عمليات‬ ‫وضمان‬ ‫بتحليل‬ ‫المرتبطة‬ ‫الممارسات‬ .‫معينة‬ ‫برامج‬ ‫وتطوير‬ – : ‫التقليدية‬ ‫البرامج‬ ‫وصيانة‬ ‫الشبكات‬ ‫أمن‬ ‫منظمات‬ ‫مع‬ ‫تتفاعل‬ ‫التي‬ ‫الممارسات‬ ‫النشر‬ 9 Developing secure software requires more than design & code... but you need those fundamentals
  • 10.
    ATTACKER, CRACKER, HACKER •Attack: • " : ‫تعطيل‬ ‫أو‬ ‫جمع‬ ‫تحاول‬ ‫التي‬ ‫الخبيثة‬ ‫األنشطة‬ ‫من‬ ‫نوع‬ ‫أي‬ ‫الهجوم‬ ‫المعلومات‬ ‫أو‬ ‫المعلومات‬ ‫نظام‬ ‫ـ‬ ‫د‬‫موار‬ ‫تدمير‬ ‫أو‬ ‫تدهور‬ ‫أو‬ ‫إنكار‬ ‫أو‬ ".‫نفسها‬ • Attacker: • :‫المهاجم‬ ) ( ‫إذن‬ ‫بدون‬ ‫النظام‬ ‫يهاجم‬ ‫شخص‬ • Cracker: • " : ‫الكمبيوتر‬ ‫أنظمة‬ ‫إلى‬ ‫ـ‬ ‫ل‬‫الوصو‬ ‫يحاول‬ ‫الذي‬ ‫الشخص‬ ‫المخترق‬ ) ( " ‫المهاجمين‬ ‫من‬ ‫نوع‬ ‫إذن‬ ‫دون‬ • Hacker: • " : ‫وأجهزة‬ ‫للنظام‬ ‫الداخلي‬ ‫للعمل‬ ‫عميق‬ ‫فهم‬ ‫على‬ ‫بالحصول‬ ‫يستمتع‬ ‫الذي‬ ‫الشخص‬ ‫الهاكر‬ [ "‫الخصوص‬ ‫وجه‬ ‫على‬ ‫الكمبيوتر‬ ‫وشبكات‬ ‫الكمبيوتر‬ RFC 1392 ] • ‫الصحفيون‬ ‫فيه‬ ‫يقع‬ ‫شائع‬ ‫خطأ‬ – NOTE: Hacker ≠ attacker – Most hackers don’t attack systems – Many attackers aren’t hackers (might not be clever or knowledgeable) 10
  • 11.
    SECURITY OBJECTIVES • Typicalsecurity objectives (CIA): • ( ‫النموذجية‬ ‫األمنية‬ ‫األهداف‬ CIA :) – ‫الموثوقية‬ " " : ‫بها‬ ‫مصرح‬ ‫غير‬ ‫قراءة‬ ‫يجوز‬ ‫ال‬ – ‫السالمة‬ ") / ( " : ‫حذف‬ ‫كتابة‬ ‫به‬ ‫مصرح‬ ‫غير‬ ‫تعديل‬ ‫أي‬ ‫إجراء‬ ‫يجوز‬ ‫ال‬ – " " : ‫هجوم‬ ‫وجود‬ ‫ظل‬ ‫في‬ ‫العمل‬ ‫في‬ ‫يستمر‬ ‫التوفر‬ • :‫منفصل‬ ‫بشكل‬ ‫الداعمة‬ ‫اآلليات‬ ‫أو‬ ‫األهداف‬ ‫إدراج‬ ‫يتم‬ ‫األحيان‬ ‫بعض‬ ‫في‬ – ) / ( ‫المستقبل‬ ‫أو‬ ‫و‬ ‫المرسل‬ ‫من‬ ‫اإلنكار‬ ‫عدم‬ – ( ‫حماية‬ ،‫المثال‬ ‫سبيل‬ ‫على‬ ‫الخصوصية‬ ‫المستخدم‬ ‫هوية‬ ) – / / ‫التسجيل‬ ‫المساءلة‬ ‫التدقيق‬ – ( ] [ ‫الهوية‬ ‫ومصادقة‬ ‫الهوية‬ I&A ) ‫والتفويض‬ ، • ‫إلى‬ ‫األخيرين‬ ‫اختصار‬ ‫تم‬ AuthN ‫و‬ AuthZ 11
  • 12.
    AUTHORIZATION • Once youhave user identity and authentication, you can determine what they’re authorized to do • ‫هو‬ ‫ما‬ ‫تحديد‬ ‫يمكنك‬ ،‫عليه‬ ‫والمصادقة‬ ‫المستخدم‬ ‫هوية‬ ‫على‬ ‫حصولك‬ ‫بمجرد‬ ‫بفعله‬ ‫له‬ ‫مصرح‬ • Discretionary Access Control – ‫بماذا‬ ‫القيام‬ ‫يمكنه‬ ‫من‬ ‫يقرر‬ ‫الذي‬ ‫هو‬ ‫والمالك‬ ،‫مالك‬ ‫لها‬ ‫البيانات‬ • Mandatory Access Control – ( ‫على‬ ‫المالك‬ ‫قبل‬ ‫من‬ ‫حتى‬ ‫الوصول‬ ‫حقوق‬ ‫بعض‬ ‫منح‬ ‫يمكن‬ ‫وال‬ ،‫معينة‬ ‫بخصائص‬ ‫البيانات‬ ‫تتمتع‬ )‫التصنيف‬ ،‫المثال‬ ‫سبيل‬ • Role Based Access Control (RBAC) – ) ( ‫ديناميكية‬ ‫أو‬ ‫ثابتة‬ ‫أدوار‬ ‫إلى‬ ‫المستخدمين‬ ‫تعيين‬ – ‫مباشرة‬ ‫للمستخدم‬ ‫وليس‬ ،‫الدور‬ ‫إلى‬ ‫الوصول‬ ‫منح‬ ‫تم‬ – ) ( ‫شراء‬ ‫وكيل‬ ‫المستلم‬ ‫الموظف‬ ‫يكون‬ ‫أال‬ ‫يجب‬ ‫العضوية‬ ‫على‬ ‫قيود‬ ‫هناك‬ ‫تكون‬ ‫األحيان‬ ‫بعض‬ ‫في‬ 12
  • 13.
    AUDITING/ACCOUNTABILITY/ LOGGING • / / ‫التسجيل‬ ‫المساءلة‬‫التدقيق‬ • Record system actions, esp. security-relevant ones (e.g., log in) • Detect unusual activity that might signal attack or exploitation – ... : ،‫بمقاضاة‬ ‫وقم‬ ،‫النظام‬ ‫وأغلق‬ ،‫االتصال‬ ‫هذا‬ ‫افصل‬ ‫اإلجراء‬ ‫اتخاذ‬ ‫يمكنك‬ ‫لذا‬ – ‫في‬ ‫يساعد‬ ‫قد‬ ‫االسترداد‬ ) ( ‫حدث‬ ‫ما‬ ‫معرفة‬ ‫خالل‬ ‫من‬ ‫المستقبل‬ ‫في‬ ‫االستغالل‬ ‫منع‬ ‫أو‬ – ‫أخرى‬ ‫أماكن‬ ‫إلى‬ ‫السجالت‬ ‫التشغيلية‬ ‫األنظمة‬ ‫ترسل‬ ‫ما‬ ‫ا‬ً‫غالب‬ • ‫القديمة‬ ‫السجل‬ ‫إدخاالت‬ ‫تغيير‬ ‫يمكن‬ ‫فال‬ ،‫النظام‬ ‫إفساد‬ ‫تم‬ ‫إذا‬ 13
  • 14.
    WEAKNESSES & VULNERABILITIES •Weakness: A type of defect/flaw that might lead to a failure to meet security objectives • / : ‫تحقيق‬ ‫في‬ ‫الفشل‬ ‫إلى‬ ‫يؤدي‬ ‫قد‬ ‫الذي‬ ‫الخلل‬ ‫العيوب‬ ‫من‬ ‫نوع‬ ‫الضعف‬ ‫األمان‬ ‫أهداف‬ • Vulnerability: “Weakness in an information system, system security procedures, internal controls, or implementation that could be exploited by a threat source” [CNSS 4009] • ‫الثغرة‬ " : ‫أو‬ ،‫النظام‬ ‫أمن‬ ‫إجراءات‬ ‫أو‬ ،‫المعلومات‬ ‫نظام‬ ‫في‬ ‫ضعف‬ ‫التنفيذ‬ ‫أو‬ ،‫الداخلية‬ ‫الضوابط‬ ‫الذي‬ " ‫استغاللها‬ ‫يتم‬ ‫قد‬ ‫مصدر‬ ‫قبل‬ ‫من‬ [ "‫التهديد‬ CNSS 4009 ] 14
  • 15.
    WEAKNESS CLASSIFICATIONS • Softwareis vulnerable because of some weakness that is exploitable – ‫مقصود‬ ‫غير‬ ‫الضعف‬ ‫يكون‬ ‫ما‬ ‫عادة‬ – ) / ( ‫قبل‬ ‫من‬ ‫المرات‬ ‫آالف‬ ‫حدث‬ ‫قد‬ ‫الخلل‬ ‫نوع‬ ‫نوع‬ ‫الضعف‬ ‫يكون‬ ‫ما‬ ‫عادة‬ • We’ll spend lots of time learning about weaknesses – so you won’t make the same mistakes • Many weakness classification systems exist • ‫الضعف‬ ‫تصنيف‬ ‫أنظمة‬ ‫من‬ ‫العديد‬ ‫هناك‬ – Common Weakness Enumeration (CWE) – merged – “Seven pernicious kingdoms”, etc. – Key is to learn what these weaknesses are 15
  • 16.
    COMMON WEAKNESS ENUMERATION (CWE) •Common Weakness Enumeration (CWE) = list of software weaknesses, Weakness = Type of vulnerabilities • ( ‫الشائعة‬ ‫الضعف‬ ‫نقاط‬ ‫تعداد‬ CWE = ) ‫البرامج‬ ‫في‬ ‫الضعف‬ ‫نقاط‬ ‫قائمة‬ ، = ‫الضعف‬ ‫نوع‬ ‫األمنية‬ ‫الثغرات‬ • CWE-120 = Buffer Copy without Checking Size of Input (“Classic Buffer Overflow”) • Common naming system: ‫المشترك‬ ‫التسمية‬ ‫نظام‬ – Useful as “common name” (e.g., tool coordination) – Does have some structuring/organization (slices, graphs, parents/children)… but that’s not its strength • More info: http://cwe.mitre.org 16
  • 17.
    SEVEN PERNICIOUS KINGDOMS • ‫الخبيثة‬‫السبع‬ ‫الممالك‬ • Input Validation and Representation • API Abuse • Security Features • Time and State • Error Handling • Code Quality • Encapsulation : " : ‫ألخطاء‬ ‫تصنيف‬ ‫خبيثة‬ ‫ممالك‬ ‫سبع‬ ،‫وماكجرو‬ ،‫تشيس‬ ،‫تسيبينيوك‬ ‫المصدر‬ " ، ‫البرمجيات‬ ‫أمن‬ ‫مؤتمر‬ ‫وقائع‬ SSATTM، 2005 17 Source: Tsipenyuk, Chess, and McGraw, “Seven Pernicious Kingdoms: A Taxonomy of Software Security Errors”, Proceedings SSATTM, 2005
  • 18.
    ABSTRACT VIEW OFA PROGRAM 18 Program Process Data (Structured Program Internals) Input Output Call-out to other programs (also consider input & output issues)
  • 19.
    ‫للبرنامج‬ ‫مجردة‬ ‫نظرة‬ 19 ‫برنامج‬ ‫العملية‬‫بيانات‬ ( ‫الداخلية‬ ‫البيانات‬ )‫المنظم‬ ‫للبرنامج‬ ‫مدخل‬ ‫الناتج‬ ‫إلى‬ ‫نداء‬ ‫اخرى‬ ‫برامج‬ (‫ًا‬‫ض‬‫أي‬ ‫اعتبارك‬ ‫في‬ ‫ضع‬ ‫واإلخراج‬ ‫اإلدخال‬ ‫)قضايا‬
  • 20.
    RISK MANAGEMENT SHOULDBE PART OF ENTIRE SYSTEM LIFECYCLE • Potential impacts of security vulnerabilities are a risk – Manage that risk as part of risk management – If complex to communicate, assurance case can help 20 Risk management process: • Communication and consultation • Establishing the context • Risk assessment • Risk identification • Risk analysis • Risk evaluation • Risk Treatment Source: DoD Risk, Issue, and Opportunity Management Guide for Defense Acquisition Programs, January 2017, http://www.acq.osd.mil/se/docs/2017-RIO.pdf Source: ISO 31000:2009
  • 21.
    ‫من‬ ‫ًا‬‫جزء‬ ‫المخاطر‬‫إدارة‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫بالكامل‬ ‫النظام‬ ‫حياة‬ ‫دورة‬ • ‫ا‬ً‫خطر‬ ‫تشكل‬ ‫األمن‬ ‫لثغرات‬ ‫المحتملة‬ ‫التأثيرات‬ – ‫المخاطر‬ ‫إدارة‬ ‫من‬ ‫كجزء‬ ‫المخاطر‬ ‫تلك‬ ‫إدارة‬ – ‫التأكيد‬ ‫حالة‬ ‫تساعدك‬ ‫أن‬ ‫يمكن‬ ،‫ا‬ً‫د‬‫معق‬ ‫التواصل‬ ‫كان‬ ‫إذا‬ 21 :‫المخاطر‬ ‫إدارة‬ ‫عملية‬ • ‫والتشاور‬ ‫التواصل‬ • ‫السياق‬ ‫تحديد‬ • ‫المخاطر‬ ‫تقييم‬ • ‫المخاطر‬ ‫تحديد‬ • ‫المخاطر‬ ‫تحليل‬ • ‫المخاطر‬ ‫تقييم‬ • ‫المخاطر‬ ‫معالجة‬ : ‫الدفاع‬ ‫بوزارة‬ ‫والفرص‬ ‫والقضايا‬ ‫المخاطر‬ ‫إدارة‬ ‫المصدر‬ ‫يناير‬ ،‫الدفاعية‬ ‫المشتريات‬ ‫برامج‬ ‫دليل‬ 2017 ، http://www.acq.osd.mil/se/docs/2017-RIO.pdf :‫المصدر‬ ISO 31000:2009
  • 22.
    POSSIBLE RISK RESPONSES •Avoid / eliminate – . ‫ا‬ً‫ي‬‫عمل‬ ‫ا‬ً‫م‬‫دائ‬ ‫ليس‬ ‫ولكن‬ ،‫األفضل‬ ‫المخاطر‬ ‫حدوث‬ ‫عدم‬ ‫من‬ ‫تأكد‬ • Control / reduce / mitigate – Limit system privileges so if attacker “takes over” a program, that program cannot do everything – Limit data available on potentially-attacked system – Detect/respond/recover (quickly) • Recover quickly when network denial-of-service ends • Maintain protected backups, easy restore mechanism • Transfer / share (e.g., outsourcing, insurance) • Assume / accept / retain (budget for it!) • ‫المخاطر‬ ‫حول‬ ‫األساسية‬ ‫النقطة‬ – ‫يمكنك‬ ‫ال‬ !‫المخاطر‬ ‫جميع‬ ‫على‬ ‫القضاء‬ • ) ( ‫معقولة‬ ‫بتكلفة‬ ‫ا‬ً‫م‬‫دائ‬ ‫تحقيقه‬ ‫الممكن‬ ‫من‬ ‫ليس‬ ‫ولكن‬ ،‫جيد‬ ‫هدف‬ – ‫يمكنك‬ ‫إدارتهم‬ ​ 22
  • 23.
    ASSURANCE CASE (ISO/IEC15026) • Assurance = Grounds for justified confidence that a claim has been/will be achieved (but how communicate that?) • ISO/IEC 15026-2:2011 specifies defines structure & contents of an assurance case – ‫الهندسية‬ ‫القرارات‬ ‫واتخاذ‬ ‫المصلحة‬ ‫أصحاب‬ ‫بين‬ ‫االتصاالت‬ ‫تسهيل‬ – ‫واألمن‬ ‫السالمة‬ ‫مثل‬ ‫للمطالبات‬ ً‫ة‬‫عاد‬ • ISO doesn’t mandate a graphical notation; primarily 3 in use: – ( ‫واألدلة‬ ‫والحجج‬ ‫المطالبات‬ CAE - ) ‫للغاية‬ ‫بسيطة‬ – ( ‫الهدف‬ ‫هيكلة‬ ‫تدوين‬ GSN - ) ‫ا‬ً‫د‬‫معق‬ ‫يكون‬ ‫أن‬ ‫ويمكن‬ ،‫متطور‬ – ( ‫المنظم‬ ‫التأكيد‬ ‫حالة‬ ‫نموذج‬ SACM – ) ‫السمات‬ ‫بين‬ ‫يجمع‬ • An assurance case includes: – : ‫منتج‬ ‫أو‬ ‫نظام‬ ‫لخاصية‬ ‫األعلى‬ ‫المستوى‬ ‫من‬ ‫مطالبات‬ ‫المطالبات‬ – : ‫االدعاء‬ ‫هذا‬ ‫تبرر‬ ‫التي‬ ‫المنهجية‬ ‫الحجج‬ ‫الحجج‬ – : / ‫الحجة‬ ‫أساس‬ ‫تشكل‬ ‫التي‬ ‫الصريحة‬ ‫واالفتراضات‬ ‫األدلة‬ ‫االفتراضات‬ ‫األدلة‬ 23
  • 24.
    PROCESSES VS. STAGES/PHASES ‫العمليات‬ ‫ـ؟‬ ‫ل‬‫ـ‬ ‫ح‬‫ـ‬ ‫ا‬‫ـ‬ ‫ر‬‫ـ‬ ‫م‬‫ـ‬ ‫ل‬‫ـ‬ ‫ا‬‫ـ‬ ‫و‬ • ISO/IEC/IEEE 12207:2017, Systems and software engineering — Software life cycle processes – Identifies processes in software, which are the same as ISO/IEC/IEEE 15288 (system life cycle processes) • Processes aren’t stages/phases – Process = “set of interrelated or interacting activities that transforms inputs into outputs” – Stage (aka phase) = “period within the life cycle of an entity that relates to the state of its description or realization” [relate to major progress and achievement milestones…] [i.e., period of time] – " " = ‫مخرجات‬ ‫إلى‬ ‫المدخالت‬ ‫تحول‬ ‫التي‬ ‫المتفاعلة‬ ‫أو‬ ‫المترابطة‬ ‫األنشطة‬ ‫من‬ ‫مجموعة‬ ‫العملية‬ – [ " " = ) ( ‫تتعلق‬ ‫تحقيقه‬ ‫أو‬ ‫وصفه‬ ‫بحالة‬ ‫تتعلق‬ ‫الكيان‬ ‫حياة‬ ‫دورة‬ ‫ضمن‬ ‫فترة‬ ‫الطور‬ ‫أو‬ ‫المرحلة‬ ] [ ]... ‫زمنية‬ ‫فترة‬ ‫أي‬ ‫الرئيسية‬ ‫واإلنجاز‬ ‫التقدم‬ ‫بمعالم‬ • ‫بالتوازي‬ ‫العمليات‬ ‫تحدث‬ ‫العملية‬ ‫الممارسة‬ ‫في‬ 24
  • 25.
    BASICS OF UNIX/LINUX/POSIX • / ‫الخادم‬‫برامج‬ ‫اآلمنة‬ ‫التطبيقات‬ ‫على‬ ‫تركيزنا‬ – ‫آمنة‬ ‫تشغيل‬ ‫أنظمة‬ ‫بإنشاء‬ ‫األمر‬ ‫يتعلق‬ ‫ال‬ ‫أنها‬ ‫مع‬ ، ‫المبادئ‬ ‫نفس‬ . • ( ‫نظام‬ ،‫المثال‬ ‫سبيل‬ ‫على‬ ‫الداعمة‬ ‫للمكونات‬ ‫األمان‬ ‫نموذج‬ ‫فهم‬ ‫يجب‬ )‫البيانات‬ ‫قواعد‬ ‫إدارة‬ ‫وأنظمة‬ ‫التشغيل‬ ، ( e.g., OS and DBMS ) • Focus on Unix/Linux/POSIX model, used in: – Linux-based (Red Hat Enterprise, Fedora, Ubuntu, Debian, Android, …) – Unix (*BSDs, Solaris, AIX, …) – MacOS & iOS • We will call these “Unix-like” systems • MS Windows’ model is different in detail, though in many cases very similar (many analogies) 25
  • 26.
    KERNEL VS. USERSPACE • Usually implemented as: – Kernel: : ‫هياكل‬ ‫وينفذ‬ ‫باألجهزة‬ ‫يتصل‬ ‫المستوى‬ ‫منخفض‬ ‫برنامج‬ ‫النواة‬ ‫أساسية‬ – User space: Processes that run programs • Some processes have special privileges • Some long-running processes provide services (daemons) 26 Kernel User space Kernel
  • 27.
    USERS & GROUPS •Each user is assigned user id (UID) – an integer – ‫لـ‬ ‫يمكن‬ UID 0 )" "( ‫األمنية‬ ‫التحكم‬ ‫عناصر‬ ‫تجاوز‬ ‫الجذر‬ ‫المستخدم‬ – ‫يوجد‬ ‫ملف‬ passwd ‫به‬ ‫الخاص‬ ‫المستخدم‬ ‫ومعرف‬ ‫المستخدم‬ ‫اسم‬ ‫يسرد‬ • Users belong to at least one group – ( ‫مجموعة‬ ‫ومعرف‬ ‫اسم‬ ‫لها‬ ‫مجموعة‬ ‫كل‬ GID - ) ‫صحيح‬ ‫عدد‬ – ‫يتمتع‬ ،‫العملية‬ ‫الممارسة‬ ‫في‬ GID 0 ‫خاصة‬ ‫بامتيازات‬ ‫ا‬ً‫ض‬‫أي‬ – ‫المجموعات‬ ‫من‬ ‫العديد‬ ‫إلى‬ ‫باالنتماء‬ ‫للمستخدمين‬ ‫الحديثة‬ ‫األنظمة‬ ‫تسمح‬ – ‫يوجد‬ / ‫المجموعة‬ ‫قائمة‬ ‫ملف‬ ‫فيها‬ ‫والعضوية‬ ‫المجموعة‬ ‫ومعرف‬ ‫المجموعة‬ ‫اسم‬ • Separate different users in a multi-user system • Android: Applications have different UID/GID 27
  • 28.
    PROCESSES • A process= a running program • = ‫التشغيل‬ ‫قيد‬ ‫برنامج‬ ‫عملية‬ – Same program may be run by >1 process – Process may have multiple threads of control • ‫ما‬ ‫ا‬ً‫ب‬‫وغال‬ ،‫اإلنشاء‬ ‫عملية‬ ‫من‬ ‫والحقوق‬ ‫السمات‬ ‫معظم‬ ‫العمليات‬ ‫ترث‬ ‫تو‬ ‫أنشأها‬ ‫الذي‬ ‫المستخدم‬ ‫إلى‬ ‫رثها‬ • See running processes with command line: ps -ef • Processes have various attributes 28
  • 29.
    FILES • Files, akafilesystem objects (FSOs), can be read from or written to. Files may be: – Regular (ordinary) file, character special file, block special file, FIFO special file, symbolic link, socket, and directory • Pathname: A sequence of bytes to identify a file – ) ( "/" ‫الجذر‬ ‫الدليل‬ ‫بـ‬ ‫المطلقة‬ ‫المسارات‬ ‫أسماء‬ ‫تبدأ‬ – ‫الحالي‬ ‫الدليل‬ ‫في‬ ‫العادية‬ ‫المسارات‬ ‫أسماء‬ ‫تبدأ‬ ‫ال‬ – ) ( "/" ) ( ‫الدليل‬ ‫فاصل‬ ‫و‬ ‫الملفات‬ ‫أسماء‬ ‫المسار‬ ‫اسم‬ ‫مكونات‬ ‫تسلسل‬ – " " " " ‫االسم‬ ‫مسار‬ ‫مكونات‬ ‫ا‬ً‫رسمي‬ ‫هي‬ ‫الملفات‬ ‫أسماء‬ ‫الكثيرون‬ ‫عليه‬ ‫يطلق‬ ‫ما‬ – ‫الملف‬ ‫نفس‬ ‫إلى‬ ‫المختلفة‬ ‫المسارات‬ ‫أسماء‬ ‫تشير‬ ‫قد‬ • ‫األساسي‬ ‫الملف‬ ‫لنفس‬ ‫متعددة‬ ‫مستعارة‬ ‫أسماء‬ ‫إنشاء‬ ‫يمكنك‬ • ‫آخر‬ ‫مسار‬ ‫عبر‬ ‫ا‬ً‫د‬‫موجو‬ ‫يظل‬ ‫فقد‬ ،‫ملف‬ ‫بإزالة‬ ‫قمت‬ ‫إذا‬ – ‫المسارات‬ ‫وأسماء‬ ‫الملفات‬ ‫أسماء‬ ‫ال‬ ‫أحرف‬ ‫سلسلة‬ ‫بالضرورة‬ ‫تكون‬ • ( / ‫أو‬ ‫الحالية‬ ‫المحلية‬ ‫اإلعدادات‬ ‫في‬ ‫لها‬ ‫معنى‬ ‫ال‬ ‫قانونية‬ ‫غير‬ ‫البايتات‬ ‫تسلسالت‬ ‫تكون‬ ‫قد‬ )‫األخرى‬ 29
  • 30.
    SOCKETS (FOR TCP/IP) •Sockets represent network communication endpoints • Today, network == Internet protocol (IP), and usually TCP (creates illusion of data flow) • If you want to encrypt it, typically build encryption on top socket() bind() listen() accept() read()/ write() close()/ shutdown() Server Client socket() connect() read()/ write() close()/ shutdown() Establish connection
  • 31.
    RELEASED UNDER CCBY-SA 3.0 • This presentation is released under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license • You are free: – to Share — to copy, distribute and transmit the work – to Remix — to adapt the work – to make commercial use of the work • Under the following conditions: – Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work) – Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one • These conditions can be waived by permission from the copyright holder – dwheeler at dwheeler dot com • Details at: http://creativecommons.org/licenses/by-sa/3.0/ • Attribute me as “David A. Wheeler” 31

Editor's Notes

  • #20 DoD Risk, Issue, and Opportunity Management Guide for Defense Acquisition Programs, June 2015 http://bbp.dau.mil/docs/RIO-Guide-Jun2015.pdf The 2015 DoD document is an update of the Risk Management Guide for DoD Acquisition, DoD, August 2006
  • #22 Sources: Risk Management Guide for DoD Acquisition, Sixth Edition (Version 1.0), 2006. Dorfman, Mark S. (2007). Introduction to Risk Management and Insurance (9 ed.). Englewood Cliffs, N.J: Prentice Hall. ISBN 0-13-224227-3.