Implement core security features

Assignment Help Python Programming
Reference no: EM131065039

Project - Defeating SkyNet

Introduction

In the first part, you created the base foundations of a botnet. Project 2 extends upon this and implements some core security features most recently used in the Conficker worm. Using these cryptography methods, Conficker was able to remain out of the control of hackers, well funded organisations and even the US government.

The new features for SkyNet include:

- Using public key cryptography to ensure only data or updates sent out by the botnet master are downloaded by the bot

- Using public key cryptography to ensure no-one but the botnet master can decrypt valuable data sent by the bot SkyNet will be using advanced cryptograpy to protect itself against well funded organisations, government agencies and other hackers. What you will be implementing here is inspired by real world cases such as the Conficker work. To have any chance of defeating such a threat, you need to understand how they defend themselves.

Part 2 Protecting the Castle

In the previous part of the project, uploads were supplied to the bot via another bot using peer-to-peer (P2P) or a central website (pastebot.net). As you might have noticed, these updates were not verified in any secure way. By default, updates only needed to start with a specific string (Caesar) to be considered ‘signed' from the botnet master. Any third parties with trivial reverse engineering knowledge would be able to realise this and create their own ‘signed' updates.

You must devise a scheme where the botnet master is able to securely sign updates for SkyNet. Bots should perform this verification on updates retrieved via P2P or a website.

The exact mechanism by which this occurs is up to you, though some form of public key cryptography is suggested. Your signature scheme should also remain secure even when confrontd with attackers who have access to significant resources. The scheme should also be secure even if an attacker reverse engineers your program or the source code for your bot is stolen or released.

2 Securely Transferring Valuable Data to the Botnet Master

As part of their operation, the bots in SkyNet collect valuable data that is then sent to the botnet master. In the current codebase, this valuable data is uploaded in plaintext to pastebot.net. As it is plaintext, the data could be read by anyone who is able to intercept or access these uploads.

You must devise a scheme where the bots are able to securely upload valuable data to pastebot.net. No-one but the botnet master should be able to read the contents of these uploads. The exact mechanism by which this occurs is up to you, though some form of public key cryptography is suggested.

3 Implementation

An insecure skeleton framework written in Python 3 has been provided for you as a starting point. If you wish to use another language, such as Java with the Java Cryptography Extension (JCE), you may do so after seeking permission from your tutor. We can not provide any technical support if you select another language however.

4 Code Checklist

- Enable signing and verification for any botnet updates. This requires signing code in master sign.py and verification code in the verify file function in lib/files.py.

- Ensure upload valuables to pastebot securely encrypts the data so it's only accessible to the botnet master. You also need to modify mas-ter view.py to allow the file to be decrypted and read by the botnet master.

We will test that you can:

- Create and sign a new botnet update

- Test bot update verification by trying to download a legitimate update and a fradulent update from pastebot.net

- Test bot update verification when downloading updates via P2P

- Upload valuables of arbitrary size to pastebot.net in an encrypted man- ner

- Decrypt encrypted valuables of arbitrary size using the botnet master's private key

Your code must be well commented and in neat order.

Documentation

You are to write a two page design document outlining the security you im- plemented with your system. Your choices for authentication, confidentiality and integrity for the SkyNet botnet should be justified.

Specifically, you should provide a brief answer to these questions:

- How do you ensure the only one who can send updates to SkyNet is the botnet master?

- How do you protect the valuable information to ensure it can only be read by the botnet master? Remember that anyone can read the information uploaded onto pastebot.net.

- How do you ensure the botnet updates signed by the botnet master cannot be forged or modified?

- If SkyNet's botnet code is dismantled and/or the source code for it stolen, does your scheme become less secure?

- Give an indication of how difficult it would be for an adversary to take control of SkyNet when your protections are used.

Attachment:- Assignment.rar

Reference no: EM131065039

Questions Cloud

How can you best describe jason attitude toward risk : Jason Scott (see Problem 8-42, below) has decided to incorporate utility theory into his decision with his mortgage application. How can you best describe Jason's attitude toward risk? Justify your answer
Analyze impact that law to have on market for electricians : What economic principle justifies the high salaries of some professional athletes? Suppose the manager of a baseball team wants to hire a new pitcher for $4 million per year. Under what circumstances would it make sense for the team to do so?
What are advantages of a bond issued by federal government : Assume that you are choosing an investment for your retired parents. What are the advantages and disadvanges of a bond issued by the federal issued by the federal government.
Minor project 2 - decision analytic practicum : Frisco Property Management is a hypothetical company that manages a large number rental properties in the northern suburbs of Dallas. The company is outfitting a new administrative office and needs to select a safe to store important documents. I..
Implement core security features : What you will be implementing here is inspired by real world cases such as the Conficker work. To have any chance of defeating such a threat, you need to understand how they defend themselves.
Calculate the allowable load p using a factor of safety : Calculate the allowable load P using a factor of safety n = 2.4, taking into account the possibility of Euler buckling about either principal centroidal axis (i.e., axis 1-1 or axis 2-2).
What are advantages to an investor who chooses mutual fund : What are the advantages to an investor who chooses mutual fund investments over direct investments in stocks and bonds? When your financial plan is set up there are tools that need to be researched to be utilized at the highest potential.
Create a scatter diagram with monthly loan requests : Review of the linear trend model. Use the "loans" data attached to determine whether the linear trend model can be used to assess monthly loan requests. In your answer, please do the following:
What is the maximum weight of pipe that can be lifted : Based upon a factor of safety of 2.25 with respect to Euler buckling of the spreader, what is the maximum weight of pipe that can be lifted? (Assume pinned conditions at the ends of the spreader.)

Reviews

Write a Review

Python Programming Questions & Answers

  How do you call the main function in python

How do you call the main function? in Python

  Write a program that will open a blastn

Write a program that will open a BLASTN (nucleotide to nucleotide search) output file, parse out specific information, and produce formatted output that will be written to STDOUT

  Write a python program that draw as pie chart

Write a python program that draw as pie chart go n frequent lettering word.txt file. The program, will Use tkinter to build an interface to input n

  Write a program for checking a circle

Write a program for checking a circle program must either print "is a circle: YES" or "is a circle: NO", appropriately.

  Write an expression whose value is the concatenation

Write an expression whose value is the concatenation of the three str values associated with name1, name2, and name3, separated by commas. So if name1, name2, and name3, were (respectively) "Neville", "Dean", and "Seamus", your expression's value wou..

  Find in the dataset how often u2 is mentioned as artist

Write and run Hadoop code (mappers and reducers) to find in the Last.fm dataset (a) how often U2 is mentioned as artist and (b) songs that have been played more than 600 million times.

  Write a function comp(d1,u1,d2,u2)

Write a function comp(d1,u1,d2,u2)

  Python function to calculate two roots

Write a Python function main() to calculate two roots. You must input a,b and c from keyboard, and then print two roots. Suppose the discriminant D= b2-4ac is positive.

  Display the percent-ages of the overall grade

Write a program that uses a bar chart to display the percent-ages of the overall grade represented by the project, quizzes the midterm exam and the final exam

  Permutation ciphers

Permutation Ciphers (a.k.a. Transposition Ciphers) are another class of simple cryptosystems. For this we use the functions apply(.,.) and inv(.) from Homework 4; copy these two functions into your le as auxiliary functions.

  Make a python program that uses the getcwd

Make a Python program that uses the getcwd() function to provide a string of the current working directory. Save the string in the variable current folder and display the value.

  Python programming to solve this problem

Write a statement that adds 1 to deansList and prints studentName to standard out if gpa exceeds 3.5.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd