Distinguish between vulnerability, threat, and control.

1.8 Exercises

1. Distinguish between vulnerability, threat, and control.

2. Theft usually results in some kind of harm. For example, if someone steals

your car, you may suffer financial loss, inconvenience (by losing your mode of

transportation), and emotional upset (because of invasion of your personal

property and space). List three kinds of harm a company might experience from

theft of computer equipment.

3. List at least three kinds of harm a company could experience from electronic

espionage or unauthorized viewing of confidential company materials.

4. List at least three kinds of damage a company could suffer when the integrity

of a program or company data is compromised.

5. List at least three kinds of harm a company could encounter from loss of

service, that is, failure of availability. List the product or capability to which

access is lost, and explain how this loss hurts the company.

6. Describe a situation in which you have experienced harm as a consequence of

a failure of computer security. Was the failure malicious or not? Did the attack

target you specifically or was it general and you were the unfortunate victim?

7. Describe two examples of vulnerabilities in automobiles for which auto

manufacturers have instituted controls. Tell why you think these controls are

effective, somewhat effective, or ineffective.

8. One control against accidental software deletion is to save all old versions of

a program. Of course, this control is prohibitively expensive in terms of cost of

storage. Suggest a less costly control against accidental software deletion. Is

your control effective against all possible causes of software deletion? If not,

what threats does it not cover?

9. On your personal computer, who can install programs? Who can change

operating system data? Who can replace portions of the operating system? Can

any of these actions be performed remotely?

10. Suppose a program to print paychecks secretly leaks a list of names of employees

earning more than a certain amount each month. What controls could be instituted to

limit the vulnerability of this leakage?

11. Preserving confidentiality, integrity, and availability of data is a restatement of the

concern over interruption, interception, modification, and fabrication. How do the

first three concepts relate to the last four? That is, is any of the four equivalent to one

or more of the three? Is one of the three encompassed by one or more of the four?

12. Do you think attempting to break in to (that is, obtain access to or use of) a

computing system without authorization should be illegal? Why or why not?

13. Describe an example (other than the ones mentioned in this chapter) of data

whose confidentiality has a short timeliness, say, a day or less. Describe an example

of data whose confidentiality has a timeliness of more than a year.

14. Do you currently use any computer security control measures? If so, what?

Against what attacks are you trying to protect?

15. Describe an example in which absolute denial of service to a user (that is, the user

gets no response from the computer) is a serious problem to that user. Describe

another example where 10 percent denial of service to a user (that is, the user’s

computation progresses, but at a rate 10 percent slower than normal) is a serious

problem to that user. Could access by unauthorized people to a computing system

result in a 10 percent denial of service to the legitimate users? How?

16. When you say that software is of high quality, what do you mean? How does

security fit in your definition of quality? For example, can an application be insecure

and still be “good”?

17. Developers often think of software quality in terms of faults and failures. Faults

are problems (for example, loops that never terminate or misplaced commas in

statements) that developers can see by looking at the code. Failures are problems,

such as a system crash or the invocation of the wrong function, that are visible to the

user. Thus, faults can exist in programs but never become failures, because the

conditions under which a fault becomes a failure are never reached. How do software

vulnerabilities fit into this scheme of faults and failures? Is every fault a

vulnerability? Is every vulnerability a fault?

18. Consider a program to display on your website your city’s current time and

temperature. Who might want to attack your program? What types of harm might

they want to cause? What kinds of vulnerabilities might they exploit to cause harm?

19. Consider a program that allows consumers to order products from the web. Who

might want to attack the program? What types of harm might they want to cause?

What kinds of vulnerabilities might they exploit to cause harm?

20. Consider a program to accept and tabulate votes in an election. Who might want

to attack the program? What types of harm might they want to cause? What kinds of

vulnerabilities might they exploit to cause harm?

21. Consider a program that allows a surgeon in one city to assist in an operation on a

patient in another city via an Internet connection. Who might want to attack the

program? What types of harm might they want to cause? What kinds of

vulnerabilities might they exploit to cause harm?

1. Describe each of the following four kinds of access control mechanisms in

terms of (a) ease of determining authorized access during execution, (b) ease of

adding access for a new subject, (c) ease of deleting access by a subject, and (d)

ease of creating a new object to which all subjects by default have access.

• per-subject access control list (that is, one list for each subject tells

all the objects to which that subject has access)

• per-object access control list (that is, one list for each object tells all

the subjects who have access to that object)

• access control matrix

• capability

2. Suppose a per-subject access control list is used. Deleting an object in such a

system is inconvenient because all changes must be made to the control lists of

all subjects who did have access to the object. Suggest an alternative, less costly

means of handling deletion.

3. File access control relates largely to the secrecy dimension of security. What

is the relationship between an access control matrix and the integrity of the

objects to which access is being controlled?

4. One feature of a capability-based protection system is the ability of one

process to transfer a copy of a capability to another process. Describe a situation

in which one process should be able to transfer a capability to another.

5. Suggest an efficient scheme for maintaining a per-user protection scheme.

That is, the system maintains one directory per user, and that directory lists all

the objects to which the user is allowed access. Your design should address the

needs of a system with 1000 users, of whom no more than 20 are active at any

time. Each user has an average of 200 permitted objects; there are 50,000 total

objects in the system.

6. Calculate the timing of password-guessing attacks:

(a) If passwords are three uppercase alphabetic characters long, how much

time would it take to determine a particular password, assuming that testing

an individual password requires 5 seconds? How much time if testing

requires 0.001 seconds?

(b) Argue for a particular amount of time as the starting point for “secure.”

That is, suppose an attacker plans to use a brute-force attack to determine a

password. For what value of x (the total amount of time to try as many

passwords as necessary) would the attacker find this attack prohibitively

long?

(c) If the cutoff between “insecure” and “secure” were x amount of time,

how long would a secure password have to be? State and justify your

assumptions regarding the character set from which the password is

selected and the amount of time required to test a single password.

7. Design a protocol by which two mutually suspicious parties can authenticate

each other. Your protocol should be usable the first time these parties try to

authenticate each other.

8. List three reasons people might be reluctant to use biometrics for

authentication. Can you think of ways to counter those objections?

9. False positive and false negative rates can be adjusted, and they are often

complementary: Lowering one raises the other. List two situations in which false

negatives are significantly more serious than false positives.

10. In a typical office, biometric authentication might be used to control access to

employees and registered visitors only. We know the system will have some false

negatives, some employees falsely denied access, so we need a human override,

someone who can examine the employee and allow access in spite of the failed

authentication. Thus, we need a human guard at the door to handle problems, as well

as the authentication device; without biometrics we would have had just the guard.

Consequently, we have the same number of personnel with or without biometrics,

plus we have the added cost to acquire and maintain the biometrics system. Explain

the security advantage in this situation that justifies the extra expense.

11. Outline the design of an authentication scheme that “learns.” The authentication

scheme would start with certain primitive information about a user, such as name and

password. As the use of the computing system continued, the authentication system

would gather such information as commonly used programming languages; dates,

times, and lengths of computing sessions; and use of distinctive resources. The

authentication challenges would become more individualized as the system learned

more information about the user.

• Your design should include a list of many pieces of information

about a user that the system could collect. It is permissible for the

system to ask an authenticated user for certain additional information,

such as a favorite book, to use in subsequent challenges.

• Your design should also consider the problem of presenting and

validating these challenges: Does the would-be user answer a truefalse

or a multiple-choice question? Does the system interpret natural

language prose?

12. How are passwords stored on your personal computer?

13. Describe a situation in which a weak but easy-to-use password may be adequate.

14. List three authentication questions (but not the answers) your credit card

company could ask to authenticate you over the phone. Your questions should be

ones to which an imposter could not readily obtain the answers. How difficult would

it be for you to provide the correct answer (for example, you would have to look

something up or you would have to do a quick arithmetical calculation)?

15. If you forget your password for a website and you click [Forgot my password],

sometimes the company sends you a new password by email but sometimes it sends

you your old password by email. Compare these two cases in terms of vulnerability

of the website owner.

16. Defeating authentication follows the method–opportunity–motive paradigm

described in Chapter 1. Discuss how these three factors apply to an attack on

authentication.

17. Suggest a source of some very long unpredictable numbers. Your source must be

something that both the sender and receiver can readily access but that is not obvious

to outsiders and not transmitted directly from sender to receiver.

18. What are the risks of having the United States government select a cryptosystem

for widespread commercial use (both inside and outside the United States). How

could users from outside the United States overcome some or all of these risks?

19. If the useful life of DES was about 20 years (1977–1999), how long do you

predict the useful life of AES will be? Justify your answer.

20. Humans are said to be the weakest link in any security system. Give an example

for each of the following:

(a) a situation in which human failure could lead to a compromise of

encrypted data

(b) a situation in which human failure could lead to a compromise of

identification and authentication

(c) a situation in which human failure could lead to a compromise of access

control

21. Why do cryptologists recommend changing the encryption key from time to

time? Is it the same reason security experts recommend changing a password from

time to time? How can one determine how frequently to change keys or passwords?

22. Explain why hash collisions occur. That is, why must there always be two

different plaintexts that have the same hash value?

23. What property of a hash function means that collisions are not a security

problem? That is, why can an attacker not capitalize on collisions and change the

underlying plaintext to another form whose value collides with the hash value of the

original plaintext?

24. Does a PKI perform encryption? Explain your answer.

25. Does a PKI use symmetric or asymmetric encryption? Explain your answer.

26. Should a PKI be supported on a firewall (meaning that the certificates would be

stored on the firewall and the firewall would distribute certificates on demand)?

Explain your answer.

27. Why does a PKI need a means to cancel or invalidate certificates? Why is it not

sufficient for the PKI to stop distributing a certificate after it becomes invalid?

28. Some people think the certificate authority for a PKI should be the government,

but others think certificate authorities should be private entities, such as banks,

corporations, or schools. What are the advantages and disadvantages of each

approach?

29. If you live in country A and receive a certificate signed by a government

certificate authority in country B, what conditions would cause you to trust that

signature as authentic?

30. A certificate contains an identity, a public key, and signatures attesting that the

public key belongs to the identity. Other fields that may be present include the

organization (for example, university, company, or government) to which that

identity belongs and perhaps suborganizations (college, department, program, branch,

office). What security purpose do these other fields serve, if any? Explain your

answer.

MySQL and MySQL Workbench install

1.1 MySQL and MySQL Workbench install

1. Go to www.mysql.com and download and install the Community Edition of MySQL.  Note that you do not have to register to complete the download.

2. Go to www.mysql.com and download and install MySQL Workbench. Both of these software products are available for Windows and Mac OS X.

3. Start up the database using the MySQL Workbench tool.

4. To show that you have completed these steps, perform a screen capture and upload it to this drop box.

5. Download the create_databases.sql script from the create_databases.sql.zip file and then open up the script in MySQL Workbench using the second icon from the left.

6. Then execute the script using the lightning bolt icon. This will create many of the tables that you will need for the rest of the course.

7. Complete the following chapter 2 exercises:

 

1. Make sure the MySQL Workbench and open a connection for the root user.

1. Check whether the MySQL server is running.  If it isn’t, start it.  When you’re done, close the Startup/Shutdown window.

 

2. Use MySQL Workbench to review the Account Payable (AP) database

1. In the Navigator window, expand the node for the AP database so you can see all of the database objects it contains.

2. View the data for the Vendors and Invoices tables.

3. Navigate through the database objects and view the column definitions for at least the Vendors and Invoices tables.

 

3. Use MySQL Workbench to enter and run SQL statements

1. Double-click the AP database to select it.  When you do that, MySQL Workbench should display the database in bold.

2. Open a SQL Editor tab. Then, enter and run this SQL statement: SELECT vendor_name FROM vendors

3. Delete the e at the end of vendor_name and run the statement again.  Note the error number and the description of the error.

4. Open another SQL Editor tab.  Then enter and run this statement:

SELECT COUNT(*) AS number_of_invoices,

SUM(invoice_total) AS grad_invoice_total

FROM invoices

 

 

 

 

2.1 Chapter 4 Exercises

Submit proof of completion of the following Chapter 4 exercises to the dropbox:

4. Write SELECT statement that returns these five columns:

vendor_name The vendor_name column from the Vendors table
invoice_date The invoice_date column from the Invoices table
invoice_number The invoice_number column from the Invoices table
li_sequence The invoice_sequence column from the Invoice_Line_Items table
li_amount The line_item_amount column from the Invoice_Line_Items table

 

Use aliases for the tables.  This should return 118 rows

Sort the final result set by vendor_name, invoice_date, invoice_number and invoice_sequence.

5. Write SELECT statement that returns three columns:

vendor_id The vendor_id column from the Vendors table
vendor_name The vendor_name column from the Vendors table
contact_name A concatenation of the vendor_contact_first_name and vendor_contact_last_name columns with a space between

 

Return one row for each vendor whose contact has the same last name as another vendor’s contact.  This should return 2 rows.  Hint: Use a self-join to check that the vendor_id columns aren’t equal but the vendor_contact_last_name columns are equal.

Sort the result set by vendor_contact_last_name.

6. Write a SELECT statement that returns these three columns:

account_number The account_number column from the General_Ledger_Accounts table
account_description The account_description column from the General_Ledger_Accounts table
invoice_id The invoice_id column from the Invoice_Line_Items table

 

Return one row for each account number that has never been used. This should return 54 rows.  Hint: Use an outer join and only return rows where the invoice_id column contains a null value.

Remove the invoice_id column from the SELECT clause.

Sort the final result set by the account_number column.

 

 

3.1 Chapter 5 and 6 Exercises

Submit proof of completion of the following exercises from Chapter 5 to the dropbox.

To test whether a table has been modified correctly as you do these exercises, you can write and run an appropriate SELECT statement. Or, when you’re usingMySQL Workbench, you can right-click on a table name in the Object Browser window and select the Select Rows – Limit 1000 command to display the data for the table in a Result tab.  To refresh the data in this tab after modifying the table data, click the Refresh button in the toolbar at the top of the tab.

1. Write an INSERT statement that adds this row to the Terms table:

terms_id: 6
terms_description: Net due 120 days
terms_due_days: 120

 

Use MySQL Workbench to review the column definitions for the Terms table, and include a column list with the required columns in the INSERT statement.

2. Write an UPDATE statement that modifies the row you just added to the Terms table.  This statement should change the terms_description column to “Net due 125 days”, and it should change the terms_due_days column to 125.

3. Write a DELETE statement that deletes the row you added to the Terms table in exercise 1.

Submit proof of completion of the following exercises from Chapter 6 to the dropbox:

1. Write a SELECT statement that returns one row for each vendor in the Invoices table that contains these columns:

The vendor_id column from the Vendors table The sum of the invoice_total columns in the Invoices table for that vendor

This should return 34 rows.

3. Write a SELECT statement that returns one row for each vendor that contains three columns:

The vendor_name column from the Vendors table The count of the invoices in the Invoices table for each vendor The sum of the invoice_total columns in the Invoices table for each vendor

6. Write a SELECT statement that answers this questions: What is the total amount invoiced for each general ledger account number? Return these columns:

The account number from the Invoice_Line_Items table The sum of the line item amounts from the Invoice_Line_Items table

Use the WITH ROLLUP operator to include a row that gives the grand total. This should return 22 rows.

Note: Once you add the WITH ROLLUP operator, you may need to use MySQL Workbench’s Execute SQL Script button instead of its Execute Current Statement button to execute this statement.

 

 

 

4.1 Code of Ethics

Submit a 2 page paper responding to this article:

http://www.dba-oracle.com/t_oracle_dba_code_of_ethics.htm

Address the adequacy of this code of ethics.  What ethical framework drives this proposed code of ethics?  (Recall the various ethical approaches from your CSC  510 or 810 class).  To what extent does each of the following ethical theories inform this proposed code?

· moral relativism

· utilitarianism

· deontological ethics

· virtue ethics

 

Are there additional dimensions that the doctrine of vocation brings into the discussion?  See http://blogs.lcms.org/2011/technology-vocation-2-2011

 

 

 

 

5.1 Chapter 9 and 12 Exercises

Submit proof of completion of the following exercises from Chapter 9 to the dropbox.

1. Write a SELECT statement that returns these columns from the Invoices table:

The invoice_total column A column that uses the ROUND function to return the  invoice_total column with 1 decimal digit A column that uses the ROUND function to return the invoice_total column with no decimal digits

2. Write a SELECT statement that returns these columns from the Date_Sample table in the EX database:

The start_date column A column that uses the DATE_FORMAT function to return the start_date column with its month name abbreviated and its month, day, and two-digit year separated by slashes A column that uses the DATE_FORMAT function to return the start_date column with its month and day returned as integers with no leading zeros, a two-digit year, and all date parts separated by slashes A column that uses the DATE_FORMAT function to return the start_date column with only the hours and minutes on a 12-hour clock with an am/pm indicator A column that uses the DATE_FORMAT function to return the start_date column with its month returned as an integer with no leading zeros, its month, day and two-digit year separated by slashes and its hours and minutes on a 12-hour clock with an am/pm indicator

3. Write a SELECT statement that returns these columns from the Vendors table:

The vendor_name column The vendor_name column in all capital letters The vendor_phone column A column that displays the last four digits of each phone number

When you get that working right, add the columns that follow to the result set.  This is more difficult because these columns require the use of functions within functions.

The vendor_phone column with the parts of the number separated by dots, as in 555.555.5555 A column that displays the second word in each vendor name if there is one and blanks if there isn’t

Submit proof of completion of the following exercises from Chapter 12 to the dropbox.

1. Create a view named open_items that shows the invoices that haven’t been paid.

This view should return four columns from the Vendors and Invoices tables:

vendor_name, invoice_number, invoice_total, and balance_due (invoice_total – payment_total – credit_total).

A row should only be returned when the balance due is greater than zero, and the rows should be in sequence by vendor_name.

3. Create a view named open_items_summary that returns one summary row for each vendor that has invoices that haven’t been paid.

Each row should include vendor_name, open_item_count (the number of invoices with a balance due), and open_item_total (the total of the balance due amounts)

The rows should be sorted by the open item totals in the descending sequence.

6. Write an UPDATE statement that changes the address for the row with a vendor ID of 4 so the suite number (Ste 260) is stored in the vendor_address2 column instead of the vendor_address1 column.

 

6.1 Chapter 13 and 14 Exercises

Submit proof of completion of the following exercise from Chapter 13 to the dropbox.

1. Write a script following the same structure as figure 13-1 that creates and calls a stored procedure named test.  This stored procedure should declare a variable and set it to the count of all rows in the Invoices table that have a balance due that’s greater than or equal to $5,000.  Then, the stored procedure should display a result set that displays the variable in a message like this:

3 invoices exceed $5,000.

Submit proof of completion of the following exercise from Chapter 14 to the dropbox.

1. Write a script that creates and calls a stored procedure named test.  This procedure should include a set of three SQL statements coded as a transaction to reflect the following change: United Parcel Service has been purchased by Federal Express Corporation and the new company is named FedUP.  Rename one of the vendors and delete the other after updating the vendor_id column in the Invoices table.

If these statements execute successfully, commit the changes.  Otherwise, roll back the changes.

 

 

 

 

7.1 Chapter 15 and 16 Exercises

Submit proof of completion of the following exercise from Chapter 15 to the dropbox.

1. Write a script that creates and calls a stored procedure named insert_glaccount.  First, code a statement that creates a procedure that adds a new row to the General_Ledger_Accounts table in the AP schema.  To do that, this procedure should have two parameters, one for each of the two columns in this table.  Then, code a CALL statement that tests this procedure.  (Note that this table doesn’t allow duplicate account descriptions.)

 

Submit proof of completion of the following exercise from Chapter 16 to the dropbox.

2. Create a trigger named invoices_after_update.  This trigger should insert the old data about the invoice into the  Invoices_Audit table after the row is updated.  Then, test this trigger with an appropriate UPDATE statement.  If the Invoices_Audit table doesn’t exist, you can use the code shown in figure 16-3 to create it.

 

 

 

 

 

8.1 Summary of learning

Submit a 3-page course summary describing and summarizing what you have learned in this course. Your paper should include two paragraphs on ethical use of databases and administrative rights.

Case Study: Appliance Warehouse – Analysis & Planning

Assignment Content

 

Overview

The Appliance Warehouse case study is designed to practice systems analysis and design skills using a life-like scenario. Appliance Warehouse is facing a big business change: create a Service Department as one of their product offerings.

They need you, the new systems analyst, to help them. You have been tasked to help develop a technological solution to help schedule service appointments and integrate it with existing systems. As a newly hired analyst, you report to Carlie Davis, the IT manager, who will guide you through the steps of this project.

In the MindTap simulation environment, you will see email examples to your (simulated) Appliance Warehouse email inbox. These simulated emails will contain instructions for each session, and you will consult the Appliance Warehouse’s resource libraries and website for additional information.

For this week’s assignment, be sure to refer to the Appliance Warehouse Resources: Organizational Staffing Document, Appliance Warehouse website, Historical Analysis Phase Durations spreadsheet.

Directions

In MindTap, review the Appliance Warehouse Case, and do the following:

o Read the Before You Begin Message and the Module 1-3 Appliance Warehouse Webmail Client Emails. Read the messages to help determine the tasks you must complete.

o Review and analyze the weekly Appliance Warehouse case study content and resources.

Create a 2- to 3-page document that includes the following:

o An Organization Chart to support the Appliance Warehouse case study

o The SWOT Analysis diagram you performed and created to support the Appliance Warehouse case study

o The Mission Statement to support the Appliance Warehouse case study

o The Problem/Opportunity Statement to support the Appliance Warehouse case study

Submit your document.

Resources will be provided upon request if a resources has been omitted and is required to complete the assignment.

Sheet1

Costs for in-house development Standard Development Times
As standard practice, use these costs for all in-house development. As standard practice, use these guidelines (assume 8 hours of work per day).
Cost per hour (for first year) Duration
Database Development $ 60 Database design 5 days
Web developers $ 75 Database build 10 days
App developers $ 75 Design of a report (web or app) 2 days
UX designers $ 60 Design of data entry page (web or app) 2 days
Business Analyst $ 50 Design of static text page (web or app) 1 day
Trainers $ 50 Build of a report (web or app) 1 day
Cybersecurity specialists $ 90 Build of data entry page (web or app) 1 day
System Admin $ 70 Build of static text page (web or app) 1 day
Connection to separate system or database (sys admin) 8 days
Analysis work (both web and app combined) 20 days
Training 5 days
Equipment: Cybersecurity work 10 days
Servers $ 2,500
Routers $ 200
Expected Monthly Maintenance:
Development (web or app) 2 days
System Admin 3 days
Training 1 day
Key:
Web or app = activity must be done for both web and app. Same amount of time required for each deliverable.
Both web and app = time given includes development for both of the web and app deliverables.

Resource Library/historical-analysis-phase-durations.xlsx

Principles of Computer Security

Written Assignment should follow the rules to get full marks

 

Content
Answered all questions correctly

5points

Did not answer one part/point correctly

4points

Did not answer two parts/points correctly

3points

Did not answer three parts/points correctly

2points

Missed most of the parts/points of the assignment

1points

No Submission

0points

 

Writing Skills
Excellent—totally free of errors

5points

Very few errors

4points

Occasional errors

3points

More than occasional errors

2points

Frequent errors

1points

No Submission

0points

 

Formatting Skills
Excellent—totally free of errors

5points

Very few errors

4points

Occasional formatting errors

3points

More than occasional formatting errors

2points

Frequent formatting errors

1points

No Submission

0points

 

References Supplied
Supplied every reference that was required to support the assignment

5points

4points

Supplied a few references required to support the assignment

3points

2points

No references were supplied to support the assignment

1points

No Submission

0points

 

Ontime Submission
OnTime

10points

One Week Late

8points

Two Weeks Late

6points

Three Weeks Late

4points

Four Weeks Late

2points

No Submission

0points