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

  Write a python program to implement the diff command

Without using the system() function to call any bash commands, write a python program that will implement a simple version of the diff command.

  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.

  Prepare a python program

Prepare a Python program which evaluates how many stuck numbers there are in a range of integers. The range will be input as two command-line arguments.

  Python atm program to enter account number

Write a simple Python ATM program. Ask user to enter their account number, and print their initail balance. (Just make one up). Ask them if they wish to make deposit or withdrawal.

  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.

  Design program that asks user to enter amount in python

IN Python Design a program that asks the user to enter the amount that he or she has budget in a month. A loop should then prompt the user to enter his or her expenses for the month.

  Write python program which imports three dictionaries

Write a Python program called hours.py which imports three dictionaries, and uses the data in them to calculate how many hours each person has spent in the lab.

  Write python program to create factors of numbers

Write down a python program which takes two numbers and creates the factors of both numbers and displays the greatest common factor.

  Email spam filter

Analyze the emails and predict whether the mail is a spam or not a spam - Create a training file and copy the text of several mails and spams in to it And create a test set identical to the training set but with different examples.

  Improve the readability and structural design of the code

Improve the readability and structural design of the code by improving the function names, variables, and loops, as well as whitespace. Move functions close to related functions or blocks of code related to your organised code.

  Create a simple and responsive gui

Please use primarily PHP or Python to solve the exercise and create a simple and responsive GUI, using HTML, CSS and JavaScript.Do not use a database.

  The program is to print the time

The program is to print the time in seconds that the iterative version takes, the time in seconds that the recursive version takes, and the difference between the times.

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