SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Quick And Dirty Introduction to:
DDOS Using DNS Amplification
       By: Allen Baranov, CISSP
Quick And Dirty
Introduction to:

DDOS Using DNS
Amplification


By:
Allen Baranov, CISSP
Quick and Dirty
Introductions are
something that I
created at my
last employer to
describe in simple
language a pretty
complex
Information
Security concept.
-AB
…. The orginals
are naturally the
intellectual
property of the
company but now
that I am doing
them in my free
time, these are
released under
creative commons.
Quick definitions:

DDOS –
distributed denial of Service

You offer a service and
someone maliciously overuses
the service making it
impossible for genuine users
to access the service. The
attacker uses different
routes to be more
effective. There may be
several attackers.
Quick definitions:

DNS–
Domain Name Service

The distributed service that
the Internet uses to
convert Human Friendly
names to computer friendly
IP addresses so you don’t
have to remember that

www.google.com.au may be
accessed at
74.125.237.152
Critical Understanding:
How DNS Actually Works.

DNS is distributed. When
you look up
www.example.com.au first
your PC looks for “who
knows about .au”? then
“who knows about .com.au?”
then “who knows about
“example.com.au?” then
“who knows about
“www.example.com.au?”
Critical Understanding:
How DNS Actually Works.

DNS is distributed.
              I need
       “www.example.com.au”


        I know who knows “.au”

             I know who knows
                  “.com.au”

              I know who knows
              “example.com.au”


            I know who knows
          “www.example.com.au”

            www.example.com.au
                 is 1.2.3.4
Critical Understanding:
How DNS Actually Works.

To speed things up a DNS
entry can be cached so if
someone asks for the same
site then they don’t have to
go through the whole
process.

Also, to make the
networking easier – you can
use an “agent” server to do
all of this for you so you
only query one server.
Critical Understanding:
How DNS Actually Works.

The important bit:

DNS is asynchronous. So
although a session usually
consists of a request and an
answer – there is no time
taken to set up the session.
It would slow down the
Internet too much.

DNS servers don’t
know for sure who
performed the
query.
Critical Understanding:
The Planning
                              Compromised Huge DNS
Attacker sets up a long
                              DNS Server Entry
DNS entry – the longer, the
better.

He uses a compromised DNS
Server to do this.

DNS can be used for
storing text messages and
this is one popular method
for creating huge DNS
entries.
Critical Understanding:
The Planning
                              Compromised Huge DNS
Attacker finds a number of
                              DNS Server Entry
DNS Servers that are badly
configured. They will pass
on recursive DNS entries to
anyone.                                Recursive
                                       DNS Servers
It is fairly simple to find
these servers on the
Internet.

The more the attacker can
find and use – the better
for the attack.
Critical Understanding:
The Attack

Attacker queries the
recursive DNS servers
asking for the large DNS
entry.

But he doesn’t use his own
IP address. He uses the
target IP address.

To be more effective he
can enlist the help of
several (willing or unwilling)
accomplices.

To be effective the
attacker needs to send
Compromised Huge DNS
DNS Server Entry



         Recursive
         DNS Servers



           STEP 1
  Attacker sends
  multiple small DNS
  queries to
  recursive DNS
  Servers
STEP 2
            The recursive
            DNS Servers
Compromised send small
DNS Server queries to
            the
            compromised
            DNS Server.
            The Huge
            DNS entry is
            returned.




       Recursive
       DNS Servers
Recursive DNS
  Servers




STEP 3
The recursive DNS Servers
send the large DNS
entry to the target
System each time
the attacker sends a
request.
Recursive DNS
  Servers




STEP 3b
More attackers
(distributed)
means more
Traffic.
Critical Understanding:
Why ?

For each small DNS request
that the attacker performs,
a huge response is sent to
the target network.

This ends up being a very
effective way to block up a
network with very little
impact on the attacker’s
own network.

The DNS servers are
actualy working quit4e
normally.They are receiving
requests and sending
responses. They don’t know
that they are sending them
Image License

All pictures are distributed
either under Creative
Commons license or “stock
exchange default license” so
they may be redistributed.

Image Sources:
Crowd
photo by James Cridland on
Flickr

http://www.sxc.hu/photo/1
82229
http://www.sxc.hu/photo/2
11248

http://openiconlibrary.sourc
eforge.net
License

Feel free to redistribute
this document and make
changes but please credit
me, Allen Baranov with the
original.




Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)

Weitere ähnliche Inhalte

Andere mochten auch

Security Onion Conference - 2016
Security Onion Conference - 2016Security Onion Conference - 2016
Security Onion Conference - 2016DefensiveDepth
 
Dns tunnelling its all in the name
Dns tunnelling its all in the nameDns tunnelling its all in the name
Dns tunnelling its all in the nameSecurity BSides London
 
MIRAI: What is It, How Does it Work and Why Should I Care?
MIRAI: What is It, How Does it Work and Why Should I Care?MIRAI: What is It, How Does it Work and Why Should I Care?
MIRAI: What is It, How Does it Work and Why Should I Care?Memoori
 
How IoT Is Breaking The Internet
How IoT Is Breaking The InternetHow IoT Is Breaking The Internet
How IoT Is Breaking The InternetCarl J. Levine
 
State of the Internet: Mirai, IOT and History of Botnets
State of the Internet: Mirai, IOT and History of BotnetsState of the Internet: Mirai, IOT and History of Botnets
State of the Internet: Mirai, IOT and History of BotnetsRahul Neel Mani
 
DNS Security
DNS SecurityDNS Security
DNS Securityinbroker
 
Dns security overview
Dns security overviewDns security overview
Dns security overviewVladimir2003
 
IoT - the Next Wave of DDoS Threat Landscape
IoT - the Next Wave of DDoS Threat LandscapeIoT - the Next Wave of DDoS Threat Landscape
IoT - the Next Wave of DDoS Threat LandscapeAPNIC
 
CNIT 40: 1: The Importance of DNS Security
CNIT 40: 1: The Importance of DNS SecurityCNIT 40: 1: The Importance of DNS Security
CNIT 40: 1: The Importance of DNS SecuritySam Bowne
 
(SEC306) Defending Against DDoS Attacks
(SEC306) Defending Against DDoS Attacks(SEC306) Defending Against DDoS Attacks
(SEC306) Defending Against DDoS AttacksAmazon Web Services
 
DNS Security Presentation ISSA
DNS Security Presentation ISSADNS Security Presentation ISSA
DNS Security Presentation ISSASrikrupa Srivatsan
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
Spamhaus DDoS - FR
Spamhaus DDoS - FRSpamhaus DDoS - FR
Spamhaus DDoS - FRMatthieu Tourne
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of ThingsChristopher Frenz
 

Andere mochten auch (16)

Security Onion Conference - 2016
Security Onion Conference - 2016Security Onion Conference - 2016
Security Onion Conference - 2016
 
Dns tunnelling its all in the name
Dns tunnelling its all in the nameDns tunnelling its all in the name
Dns tunnelling its all in the name
 
MIRAI: What is It, How Does it Work and Why Should I Care?
MIRAI: What is It, How Does it Work and Why Should I Care?MIRAI: What is It, How Does it Work and Why Should I Care?
MIRAI: What is It, How Does it Work and Why Should I Care?
 
Advanced DNS Protection
Advanced DNS ProtectionAdvanced DNS Protection
Advanced DNS Protection
 
How IoT Is Breaking The Internet
How IoT Is Breaking The InternetHow IoT Is Breaking The Internet
How IoT Is Breaking The Internet
 
State of the Internet: Mirai, IOT and History of Botnets
State of the Internet: Mirai, IOT and History of BotnetsState of the Internet: Mirai, IOT and History of Botnets
State of the Internet: Mirai, IOT and History of Botnets
 
DNS Security
DNS SecurityDNS Security
DNS Security
 
Dns security overview
Dns security overviewDns security overview
Dns security overview
 
Security of DNS
Security of DNSSecurity of DNS
Security of DNS
 
IoT - the Next Wave of DDoS Threat Landscape
IoT - the Next Wave of DDoS Threat LandscapeIoT - the Next Wave of DDoS Threat Landscape
IoT - the Next Wave of DDoS Threat Landscape
 
CNIT 40: 1: The Importance of DNS Security
CNIT 40: 1: The Importance of DNS SecurityCNIT 40: 1: The Importance of DNS Security
CNIT 40: 1: The Importance of DNS Security
 
(SEC306) Defending Against DDoS Attacks
(SEC306) Defending Against DDoS Attacks(SEC306) Defending Against DDoS Attacks
(SEC306) Defending Against DDoS Attacks
 
DNS Security Presentation ISSA
DNS Security Presentation ISSADNS Security Presentation ISSA
DNS Security Presentation ISSA
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Spamhaus DDoS - FR
Spamhaus DDoS - FRSpamhaus DDoS - FR
Spamhaus DDoS - FR
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
 

KĂĽrzlich hochgeladen

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

KĂĽrzlich hochgeladen (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

QD Explaination of DNS Amplification

  • 1. Quick And Dirty Introduction to: DDOS Using DNS Amplification By: Allen Baranov, CISSP
  • 2. Quick And Dirty Introduction to: DDOS Using DNS Amplification By: Allen Baranov, CISSP
  • 3. Quick and Dirty Introductions are something that I created at my last employer to describe in simple language a pretty complex Information Security concept. -AB
  • 4. …. The orginals are naturally the intellectual property of the company but now that I am doing them in my free time, these are released under creative commons.
  • 5. Quick definitions: DDOS – distributed denial of Service You offer a service and someone maliciously overuses the service making it impossible for genuine users to access the service. The attacker uses different routes to be more effective. There may be several attackers.
  • 6. Quick definitions: DNS– Domain Name Service The distributed service that the Internet uses to convert Human Friendly names to computer friendly IP addresses so you don’t have to remember that www.google.com.au may be accessed at 74.125.237.152
  • 7. Critical Understanding: How DNS Actually Works. DNS is distributed. When you look up www.example.com.au first your PC looks for “who knows about .au”? then “who knows about .com.au?” then “who knows about “example.com.au?” then “who knows about “www.example.com.au?”
  • 8. Critical Understanding: How DNS Actually Works. DNS is distributed. I need “www.example.com.au” I know who knows “.au” I know who knows “.com.au” I know who knows “example.com.au” I know who knows “www.example.com.au” www.example.com.au is 1.2.3.4
  • 9. Critical Understanding: How DNS Actually Works. To speed things up a DNS entry can be cached so if someone asks for the same site then they don’t have to go through the whole process. Also, to make the networking easier – you can use an “agent” server to do all of this for you so you only query one server.
  • 10. Critical Understanding: How DNS Actually Works. The important bit: DNS is asynchronous. So although a session usually consists of a request and an answer – there is no time taken to set up the session. It would slow down the Internet too much. DNS servers don’t know for sure who performed the query.
  • 11. Critical Understanding: The Planning Compromised Huge DNS Attacker sets up a long DNS Server Entry DNS entry – the longer, the better. He uses a compromised DNS Server to do this. DNS can be used for storing text messages and this is one popular method for creating huge DNS entries.
  • 12. Critical Understanding: The Planning Compromised Huge DNS Attacker finds a number of DNS Server Entry DNS Servers that are badly configured. They will pass on recursive DNS entries to anyone. Recursive DNS Servers It is fairly simple to find these servers on the Internet. The more the attacker can find and use – the better for the attack.
  • 13. Critical Understanding: The Attack Attacker queries the recursive DNS servers asking for the large DNS entry. But he doesn’t use his own IP address. He uses the target IP address. To be more effective he can enlist the help of several (willing or unwilling) accomplices. To be effective the attacker needs to send
  • 14. Compromised Huge DNS DNS Server Entry Recursive DNS Servers STEP 1 Attacker sends multiple small DNS queries to recursive DNS Servers
  • 15. STEP 2 The recursive DNS Servers Compromised send small DNS Server queries to the compromised DNS Server. The Huge DNS entry is returned. Recursive DNS Servers
  • 16. Recursive DNS Servers STEP 3 The recursive DNS Servers send the large DNS entry to the target System each time the attacker sends a request.
  • 17. Recursive DNS Servers STEP 3b More attackers (distributed) means more Traffic.
  • 18. Critical Understanding: Why ? For each small DNS request that the attacker performs, a huge response is sent to the target network. This ends up being a very effective way to block up a network with very little impact on the attacker’s own network. The DNS servers are actualy working quit4e normally.They are receiving requests and sending responses. They don’t know that they are sending them
  • 19. Image License All pictures are distributed either under Creative Commons license or “stock exchange default license” so they may be redistributed. Image Sources: Crowd photo by James Cridland on Flickr http://www.sxc.hu/photo/1 82229 http://www.sxc.hu/photo/2 11248 http://openiconlibrary.sourc eforge.net
  • 20. License Feel free to redistribute this document and make changes but please credit me, Allen Baranov with the original. Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)