! 

Assignment #4

Inspirational quote:
"I love deadlines. I like the whooshing sound they make as they fly by." Douglas Adams (1952 - 2001)

Type of assignment: This assignment should be done in groups.

Note: The assignment submission should clearly list the student members of the group, their names, and student numbers on the first page.

Points: The maximum number of points for this assignment is 56 (+ 3 bonus points) , which will be prorated accordingly after all assignments are posted. Weight of each problem is in parenthesis.

Format:

  1. Assignment submissions are accepted in the following formats only: HTML (extension .html), PDF (.pdf), RTF (.rtf) , ASCII text (.txt). Assignments submitted in any other format will be discarded. All text in the assignment submissions must be typed and figures plotted to be easy to read and understand. Spelling, grammar, and other language errors will result in fewer points credited to the corresponding problem solutions.
  2. Your submission file should be named to reflect the names of the group members, and the assignment number, e.g., alice_bob-assignment_1.pdf.
  3. If your submission consists of more than one file, submit a ZIP archive.

Problems

  1. (15) Exploiting Buffer Overflow

There is a coding error in this windows program that could cause potential
problems. The source code, and executable (compiled with Turbo C++ 1.01, which can be downloaded from the Internet) are included, analyze the code and do the following:

1. Without modifying the executable, find a way to exploit the error, and get the program to print out message

"Hello, Keith and Kosta! We exploited the vulnerability! Sincerely, <Group member names> "

where <Group member names> is a list of group student names who submitted the assignment. Include details of your exploit, so that the TA can reproduce it, i.e., run the executable provided in the archive with the input provided by your submission and get the required message printed.

2. Classify the problem, and determine how it can be fixed in the source code.

3. Explain what techniques for developing secure software could be used in a large development project to get high level of confidence that such problems are avoided by all programmers in the project.

  1. (15) Detecting a Virus
    NOTE: The file used in this project is INFECTED WITH A VIRUS. It is unlikely the virus could infect an OS other than MS-DOS, but you should not execute the file.
    A command.com file, from MS DOS 3.30 has been infected with a virus. Using only generic tools, such as debuggers and hex editors (no antivirus software), you are to study the file, and perform the following:
    1. Determine what virus the file has been infected with.
    2. Classify the virus type, based on the classifications detailed in chapter 22 of the textbook.
    3. Detail a method for detecting infected files, give specific information that would allow you to directly implement the method in code.
    4. Analyze your detection method, are there any situations where it would give a false positive, or a false negative?
    5. Detail a method for cleaning (removing) the virus from the infected file, give specific information that would allow you to directly implement the method in code.
    6. Once the file has been cleaned, will all data be recovered, or will some of the file data be lost or damaged?
    7. (3) BONUS! If you were designing an anti-virus application to specifically detect this one virus, what characteristic of this particular virus could you take advantage of to increase the speed at which you scan a file system for infected files?
  2. (8) Write answer to problem 12 from section 22.11 of the text book.
  3. (5) Write answer to problem 7 from section 13.6 of the text book.
  4. (13) Controlling Access to a Course

Develop configuration for access control mechanisms based on one of the RBAC models (RBAC0--RBAC3) for the following application and policy:

Application: Online access to university courses using Web services technology. Instructors post assignments and course materials, students download what instructors posted, and submit their solutions for assignments. Assume that there are the following operations that can be performed on each course and invocations of which should be controlled:

  • post_course_material( in material ), remove_course_material( in material_id ), download_course_material( in material_id, out material ),
  • post_assignment( in number, in assignment), download_assignment ( in number, out assignment ), mark_assignment( in number, in mark, in student_id )
  • list_registered_students( out student_id_list )

(hint: think of the above operations as methods on objects of type Course, in OO terms, with a separate instance of such an object for each course.)

Assume the following population of students, TAs, and instructors, as well as the following courses

10 students: s1 … s10
3 instructors: i1, i2, i3
5 TAs: ta1, ..., ta5
5 courses: c1, … c5

Assignment of instructors, TAs, and students to courses is the following:
C1 = {i1, ta5, {s1, s2, s3}}
C2 = {i2, ta4, {s3, s4, s5}}
C3 = {i3, ta3, {s5, s6, s7}}
C4 = {i1, ta3, {s7, s8, s9}}
C5 = {{i2, i3}, {ta2, ta1}, {s8, s9, s10}}

Assume the following organizational security policy to be enforced:

  1. Students can
    1. read course material and assignment instructions for the courses they are registered
    2. submit (i.e., write) their assignments for the registered courses
  2. Instructors can
    1. read and mark student submitted assignments for the courses they teach, and
    2. manage (i.e., post, read, and delete) course material and assignment instructions for their courses
    3. list registered for their course students.
  3. TAs can
    1. read and mark student submitted assignments for the courses they TA.
    list registered for their course students.

As a solution to this problem, provide the following:

  1. role hierarchy
  2. table with assignments of users to roles
  3. table with assignments of permissions to roles
  4. justification that:
    1. the configuration you came up with supports the functioning of the system and the above access policies , and
    2. the configuration you came up with is as precise as possible (i.e., not secure and not broad)
    3. the way you define and organize roles scales with the number of students, instructors, TAs, and courses. That is, adding/removing a new student, instructor, or TA does not require creating/deleting a role. Adding/removing a course requires creating/deleting only O(1) roles.

 


©2003-2004 Konstantin Beznosov