-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #47 from syreal17/master
Add Jeffery John's contributions / Add authorship by chapter
- Loading branch information
Showing
19 changed files
with
540 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
[appendix] | ||
== Careers | ||
[[careers]] | ||
[discrete] | ||
===== Jeffery John | ||
|
||
{empty} | ||
|
||
''' | ||
|
||
|
||
With all this effort learning cyber skills, you might be wondering how to use and practice them. There are many different career paths in cybersecurity, and they all require different skills. Some of the most common careers in cybersecurity are as analysts, engineers, and penetration testers. | ||
|
||
Organizations need people who can analyze data and find patterns, people who can design and build systems, and people who can test those systems for vulnerabilities. One approach is with 'red' and 'blue' teams. Red teams are offensive, and they try to break into systems. Blue teams are defensive, and they try to protect systems from attacks. Both teams are important, and they work together to make sure that systems are secure. | ||
|
||
It's also possible to pursue a career more independently, as a consultant or freelancer. This can be a good option for people who want to work on their own schedule and have more control over their work. | ||
|
||
The National Security Agency (NSA) also contributes to training through the RING program - Regions Investing in the Next Generation. Here's an interactive exercise from them: https://d2hie3dpn9wvbb.cloudfront.net/NSA+Ring+Project/index.html[https://d2hie3dpn9wvbb.cloudfront.net/NSA+Ring+Project/index.html, window="_blank"] | ||
|
||
=== Bug Bounties | ||
[[bounties]] | ||
|
||
One way vulnerabilities are reduced is through bug bounty programs, in which organizations offer rewards to their employees or the public for finding vulnerabilities and reporting them to be fixed. | ||
|
||
This is beneficial to the organization because it allows them to find and fix vulnerabilities before they are exploited by malicious actors. Many companies have bug bounty programs, and many people are safer because of the security flaws that have been found and fixed through them. | ||
|
||
Bug bounty programs are also beneficial to hackers as they can earn money legitimately while practicing their skills and helping others be more secure. | ||
|
||
Some bug bounty programs include: | ||
|
||
- HackerOne: https://hackerone.com/bug-bounty-programs[https://hackerone.com/bug-bounty-programs, window="_blank"] | ||
|
||
- Bugcrowd: https://www.bugcrowd.com/programs/[https://www.bugcrowd.com/programs/, window="_blank"] | ||
|
||
- Mozilla: https://www.mozilla.org/en-US/security/bug-bounty/[https://www.mozilla.org/en-US/security/bug-bounty/, window="_blank"] | ||
|
||
Even governments offer bounties! | ||
|
||
[.text-center] | ||
.NCSC-NL (National Cyber Security Centre – Netherlands) t-shirt reward, https://jacobriggs.io/blog/posts/i-hacked-the-dutch-government-and-all-i-got-was-this-t-shirt-24.html[Jacob Riggs, window="_blank"] | ||
image::images/careers1.png[] | ||
|
||
|
||
=== The CVE® Program | ||
[[cves]] | ||
|
||
When a vulnerability is found, it is assigned a CVE number, which is a unique identifier for that vulnerability. CVE stands for Common Vulnerabilities and Exposures, and it is a list of publicly known cybersecurity vulnerabilities. CVEs are assigned by the CVE Numbering Authority (CNA). | ||
|
||
By defining and cataloging vulnerabilities, security researchers, engineers, and analysts can more easily communicate about them to each other. Imagine trying to fix a problem without knowing what to call it! | ||
|
||
The list of CVEs, and forms to submit or update them, can be found at https://www.cve.org[https://www.cve.org, window="_blank"]. | ||
|
||
|
||
=== Ethical Considerations | ||
[[ethical-considerations]] | ||
|
||
Before publishing a vulnerability from a bug bounty program, or as a CVE, you should consider the ethical implications of doing so. | ||
|
||
If a vulnerability is published before it is fixed, it could be exploited by malicious actors. This could cause harm to people or organizations, as well as legal consequences for the publisher. Each organization or program will have its own rules and preferences for how to responsibly disclose vulnerabilities. | ||
|
||
Additionally, never hack into a system without permission, or attempt to go further than requested. This is illegal, and it could similarly cause harm to people or organizations. Bug bounty programs will define clear scopes for what is allowed. | ||
|
||
If the organization does not respond to a disclosure of a security risk to them or their users within a reasonable timeframe, there may be other options such as contacting a governing agency. In the United States, the Cybersecurity and Infrastructure Security Agency (CISA) is a good place to start: https://www.cisa.gov/coordinated-vulnerability-disclosure-process[https://www.cisa.gov/coordinated-vulnerability-disclosure-process, window="_blank"]. | ||
|
||
If a malicous actor is able to find and exploit an unreported vulnerability, it is known as a 'zero-day', because the organization has had zero days to fix it. These are considered the most dangerous, and can impact millions of innocent people. Ultimately, careers in cybersecurity are all about preventing these from hapening. | ||
|
||
While this Primer cannot cover all the ethical considerations of reporting individual vulnerabilities, it is important to consider your ability to help others through responsible disclosure. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
[appendix] | ||
== Virtual Environment | ||
[[environments]] | ||
[discrete] | ||
===== Jeffery John | ||
|
||
{empty} | ||
|
||
''' | ||
|
||
We mentioned Linux in our chapter on xref:book.adoc#_the_shell[the Shell], and you may be wondering what your next step is. The great thing about Linux is that it's hard to outgrow! | ||
|
||
Linux is a family of open source systems, which are distributed as 'distros', and each has strengths and weaknesses. The advantage of Linux is that the user has the power to control their own device, and freely choose between distros. | ||
|
||
Most of the world's super computers, servers, mobile devices, and embedded systems run a distro of Linux. Even the International Space Station runs Linux! | ||
|
||
When developers and hackers choose their tools, xref:book.adoc#_tools[including many mentioned in this Primer], they have to consider how their hardware and software will interact. This is known as their 'environment'. | ||
|
||
=== Web | ||
|
||
Many hacking tools are web-based, and so they'll work on any operating system that allows you to run a web browser. A good example is https://crackstation.net[CrackStation, window="_blank"] which allows anyone with an internet connection to check password hashes. | ||
|
||
Another option is to use a remote server, which is a computer that you can access over the internet. Typically, you'd own or rent this server, so you'd have more control over how it's used. This is a great way to run tools that require a lot of processing power, or to run tools that you don't want to run on your own computer due to space or computing power limitations. Remote servers are often called and offered by 'cloud' services, and they're a great way to get started with hacking! | ||
|
||
Note that web-based tools are often hosted on their own remote servers that they use as a 'backend' to process inputs and requests from the 'frontend', or the website that you can interact with. Having a remote server, like an instance of Amazon Web Services, Google Cloud Platform, or Azure, is unique in that you can choose the tools that are installed, the capability of the server, and how accessible to the public it is. | ||
|
||
=== Virtual Machines | ||
|
||
Virtual machines (VM) are a great way to run tools that require a specific operating system, or to run multiple operating systems at once. These can be run locally, or on a remote server. | ||
|
||
You might sometimes hear VMs referred to as a 'box' because anything inside of one tends to stay inside. You can treat a VM as if it were a separate computer - even if it's sharing hardware locally or with your remote server! | ||
|
||
For example, if you use a Windows computer, you can run a virtual machine with a distro of Linux to run Linux tools. You can also configure your virtual machine to be created in a certain way, and then reset or share that state with others! https://podman.io/[Podman, window="_blank"] is an excellent option for this, and helps teams have effectively identical environments so collaboration is easy. Since hacking can sometimes be very dependent on the version of a target's hardware or software, being able to practice on an exact copy is helpful. For the same reason, this is why downloading security updates for your software is a good idea! Cyber teams around the world work to 'patch' problems and publish fixes as quickly as they can. | ||
|
||
Additionally, if you're investigating potential malware, it's a good idea to run it in a virtual machine to help protect your computer. Since the VM acts like an independent computer, most malware will be contained inside it. If you run into any issues, you can simply reset the virtual machine to a previous state. | ||
|
||
To get started, you might be interested in https://www.virtualbox.org[VirtualBox, window="_blank"], which alows for software virtualization to whatever your other tools or use cases need. | ||
|
||
|
||
=== VPNs | ||
|
||
When accessing a remote server, you may need a Virtual Private Network, or VPN, to connect to it. This is a way to securely connect, as well as protect your privacy. | ||
|
||
In this arrangement, your data will be encrypted and sent to the VPN provider, who will then send it to a remote server, such as a website. If a third party intercepts your data, they won't be able to read it, and if they're listening to your traffic, all they'll see is the connection to the VPN, rather than where you go next. Pretty handy! | ||
|
||
In industry, companies often require their employees to use a company VPN to access their internal network from outside the office. Just like how VPNs can protect an individual's data, they can protect a company's sensitive information too! Without a VPN, employees working remotely may be vulnerable to their credentials being stolen. | ||
|
||
If you choose to use a VPN, it's important to understand that you're trusting the VPN provider with your data. If you're working on a sensitive project, you may want to vet the VPN provider to ensure that they're trustworthy. | ||
|
||
=== Authentication | ||
|
||
Hackers need to worry about their own security too! When using virtual services, along with a VPN, use strong passwords and multi-factor authentication whenever possible. That way, even if an adversary were to steal your password from one service, they would need others in order to impersonate you. | ||
|
||
If you pursue cybersecurity as a career, many people may be trusting you with their data. You should take this responsibility seriously, and protect your own accounts to avoid putting others at risk. | ||
|
||
Best practices change often, but current recommendations include using a password manager, and including a hardware token for authentication. When creating a password, consider using a passphrase instead, as these are generally easier to remember and harder to crack. | ||
|
||
[.text-center] | ||
.Password Strength, https://xkcd.com/936[xkcd.com, window="_blank"] | ||
image::images/environment1.png[] | ||
|
||
=== IDEs | ||
|
||
IDEs, or Integrated Development Environments, are tools that help developers write code. They often include features like syntax highlighting, code completion, and debugging. | ||
|
||
https://code.visualstudio.com/[Visual Studio Code, window="_blank"] is a popular IDE that's available for Windows, Mac, and Linux. Due to it being open source, many developers are able to contribute plugins to extend its functionality for specific languages or use cases. | ||
|
||
An IDE can help hackers by making it easier to write code for scripts, read code from their targets, and by providing tools to help them understand what code is doing. | ||
|
||
=== Installations | ||
|
||
If you're interested in installing a distro of Linux on your computer or on a virtual machine, it's generally a good idea to start with a popular distro so that there are plenty of resources and people that may be able to help you. | ||
|
||
A popular distro for beginners is https://ubuntu.com/[Ubuntu, window="_blank"], and another among hackers is https://www.kali.org/[Kali, window="_blank"]. If you don't want to install a distro, you can also use a live USB, which is a USB drive that you can boot from. This is a great way to try out a distro without installing it. Some, like https://tails.net[Tails, window="_blank"], are designed to use this feature to protect user privacy. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,6 +20,12 @@ | |
// Steganography | ||
|
||
== Forensics | ||
[discrete] | ||
===== Luke Jones | ||
|
||
{empty} | ||
|
||
''' | ||
|
||
=== What is Forensics? | ||
|
||
|
Oops, something went wrong.