安全架构师为组织构建和执行完整的网络和计算机安全。他们创建复杂的安全框架并确保其功能。他们负责设计能够抵御黑客攻击、恶意软件和 DDoS 攻击的安全系统。
首席信息安全官或 CISO 管理公司 IT 安全部门的事务。他们计划、协调和监督所有计算机、网络和数据安全要求。它们决定了组织的网络安全需求。
计算机安全代写案例: Computer Security Assignment CSE 127
For this assignment, you will implement an in-path network attack similar to China’s Great Cannon. The goal is to implement a man-in-the-middle attack that injects a specific iframe into certain targeted HTML pages. Unlike an arbitrarily-powerful in-path attacker, you will not be able to inject new packets, but you are able to decide whether to alter packets or allow them to pass through unmodified. You will write a Python function that inspects IP packets flying by on the wire and modifies them as it sees fit. Your solution is due on June 4, 2018 no later than 10:00 P.M. PDT. You may work with one other person in the class on this assignment; if you do so, you should only submit one solution for the two of you. You may not discuss your solution with anyone except your partner until seven days after the assignment deadline.
Here is the network topology:
[host] —— [switch] —– [Internet]
Both the host and the switch are emulated by Mininet, a popular network emulator, in the VM we provide. Since the switch connects the host to the Internet, it will see all traffic from and to the host. The switch is controlled by a controller via OpenFlow protocol. That is, the switch will send every packet it receives to the controller and does whatever the controller tells it. The controller is written using POX, a Python framework for writing OpenFlow controllers. In this project, you need to implement a function named manipulate packet in class Cannon (it can be found at /home/mininet/pox/pox/triton/cannon.py), which is called by the controller. Specifically, the controller passes every IP packet it receives from the switch to this function. This function needs to decide if the packet should be allowed to pass through unmodified, modified, or dropped.
You must implement a function named manipulate packet in /home/mininet/pox/pox/triton/cannon.py. This function modifies certain HTTP replies to inject an iframe into the HTML of Web pages being loaded from the host. Which HTTP replies to modify and what iframe source to inject are provided in the Cannon class’s constructor arguments:
1. target domain re: a compiled regular expression. This argument specifies the domains which are candidates for attack.
2. url path re: a compiled regular expression. This regex specifies the URL paths that are candidates for attack.
3. iframe url: a string. If the Webpage load is subject to iframe injection, inject an iframe into its body tag with the src attribute equal to iframe url.
The caller always passes an IP packet object (an instance of class ipv4 in pox.lib.packet.ipv4) to Cannon.manipulate packet, and it is supposed to either return an IP packet object (either a modified packet or the one passed in as an argument), or None (a Python None object). A None object tells the caller that the packet in question should be dropped. If the Triton Cannon observes an HTTP response from a matching target domain with a matching URL path, then the cannon should inject an iframe as the last element before the
<iframe src=”%iframe url%”></iframe>
where %iframe url% is IFRAME URL defined in cannon.py. Do not add any bytes before or after the opening and closing iframe tags. In other words, the length of the modified Webpage should increase only by 24 plus the length of the iframe URL’s encoding, since 24 is the length of the string “”. Your code should not modify an HTTP reply if it does not belong to both the target domain and target URL path. If your code modifies a packet, its contents should only be based on the contents of packets observed up to that point; let’s say you are processing packet n, you should make a decision about packet n based on previous packets (packet 1 to n). You cannot cache packet n first and then decide to modify it based on, say packet n+ 1. Also, you code should NOT serve as a proxy that downloads the requested Web page on its own (e.g., via urllib) and serves it back to the client, with or without modifications to the page. Do not modify the name of the Cannon class or the signatures of the Cannon. init or Cannon.manipulate packet methods. Other than that, feel free to modify cannon.py in any way you find useful, or add new files to the triton package (/home/mininet/pox/pox/triton/).
3 The Environment
The controller used in this project is in /home/mininet/pox/pox/forwarding/dummy.py. When it sees an IP
packet, it will pass it to manipulate packet. Based on the return value of manipulate packet, it may ask
the switch to route the packet returned from manipulate packet, or do nothing (drop the packet). Notice
the regexes for the target domain and URL paths are defined in this file.
Since the code you will write is inside POX, and POX has many useful data structures and library functions (e.g parsing TCP), you may want to look at what POX can provide you for free.