Difference between revisions of "Bot"

From SI410
Jump to: navigation, search
(add history section content)
(add design section content)
Line 3: Line 3:
 
[[File:Bot_diagram.jpg|frame|Example of how bots work over the Internet.<ref>Suchacka, G., & Iwański, J. (2020). Identifying legitimate web users and bots with different traffic profiles — An information bottleneck approach. ''Knowledge-Based Systems'', 197, 3. https://doi.org/https://doi.org/10.1016/j.knosys.2020.105875</ref>]]
 
[[File:Bot_diagram.jpg|frame|Example of how bots work over the Internet.<ref>Suchacka, G., & Iwański, J. (2020). Identifying legitimate web users and bots with different traffic profiles — An information bottleneck approach. ''Knowledge-Based Systems'', 197, 3. https://doi.org/https://doi.org/10.1016/j.knosys.2020.105875</ref>]]
  
A '''bot''' (or, more specifically, an '''Internet bot''') is a computer program that performs automated tasks on top of a network (commonly the [https://en.wikipedia.org/wiki/Internet Internet]).<ref name="cf-bot-def">Cloudflare. (n.d.). ''How is an internet bot constructed?'' Cloudflare. Retrieved January 20, 2022, from https://www.cloudflare.com/learning/bots/how-is-an-internet-bot-constructed/</ref> Bots carry out repetitive and predefined tasks, often in a manner that mimics human behavior.<ref name="kaspersky">Kaspersky. (2021, March 22). ''What are bots? – Definition and explanation. Kaspersky''. Retrieved January 20, 2022, from https://www.kaspersky.com/resource-center/definitions/what-are-bots</ref> Due to their automated nature, bots can complete tasks more efficiently and at a larger scale than humans. Compared with other software applications, the time needed to develop and deploy bots (especially those that do not converse with online users) is relatively short.<ref name="cf-bot-def"/> Consequently, bots hold a significant presence on the Internet and power core components of the modern [https://en.wikipedia.org/wiki/World_Wide_Web Web], such as [https://en.wikipedia.org/wiki/Search_engine search engines]. In light of this ability, however, bots are frequently utilized to execute a variety of malicious activities.
+
A '''bot''' (or, more specifically, an '''Internet bot''') is a computer program that performs automated tasks on top of a [https://en.wikipedia.org/wiki/Computer_network network] (commonly the [https://en.wikipedia.org/wiki/Internet Internet]).<ref name="cf-bot-def">Cloudflare. (n.d.). ''How is an internet bot constructed?'' Cloudflare. Retrieved January 20, 2022, from https://www.cloudflare.com/learning/bots/how-is-an-internet-bot-constructed/</ref> Bots carry out repetitive and predefined tasks, often in a manner that mimics human behavior.<ref name="kaspersky">Kaspersky. (2021, March 22). ''What are bots? – Definition and explanation. Kaspersky''. Retrieved January 20, 2022, from https://www.kaspersky.com/resource-center/definitions/what-are-bots</ref> Due to their automated nature, bots can complete tasks more efficiently and at a larger scale than humans. Compared with other software applications, the time needed to develop and deploy bots (especially those that do not converse with online users) is relatively short.<ref name="cf-bot-def"/> Consequently, bots hold a significant presence on the Internet and power core components of the modern [https://en.wikipedia.org/wiki/World_Wide_Web Web], such as [https://en.wikipedia.org/wiki/Search_engine search engines]. In light of this ability, however, bots are frequently utilized to execute a variety of malicious activities.
  
 
== History ==
 
== History ==
Line 10: Line 10:
  
 
=== Early bots ===
 
=== Early bots ===
The computer player used in the Turing test closely resembles a [https://en.wikipedia.org/wiki/Chatbot chatbot], one that interacts with humans via dialogue.<ref>Adamopoulou, E., & Moussiades, L. (2020). Chatbots: History, technology, and applications. ''Machine Learning with Applications'', 2, 1–3. https://doi.org/https://doi.org/10.1016/j.mlwa.2020.100006</ref> Over the next few decades following the development of the Turing test, the development of chatbots grew significantly. During the 1960s, MIT professor [https://en.wikipedia.org/wiki/Joseph_Weizenbaum Joseph Weizenbaum] created [https://en.wikipedia.org/wiki/ELIZA ELIZA], a bot that utilizes [https://en.wikipedia.org/wiki/Natural_language_processing natural language processing] (NLP) to converse with humans. Overall, the original version of ELIZA was quite limited in terms of functionality and ability to hold conversations, but it is nevertheless remembered as being one of the first true instances of a bot.<ref name="hubspot"/>
+
The computer player used in the Turing test closely resembles a [https://en.wikipedia.org/wiki/Chatbot chatbot], one that interacts with humans via dialogue.<ref>Adamopoulou, E., & Moussiades, L. (2020). Chatbots: History, technology, and applications. ''Machine Learning with Applications'', 2, 1–3. https://doi.org/https://doi.org/10.1016/j.mlwa.2020.100006</ref> Over the next few decades following the development of the Turing test, the development of chatbots grew significantly. During the 1960s, [https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology MIT] professor [https://en.wikipedia.org/wiki/Joseph_Weizenbaum Joseph Weizenbaum] created [https://en.wikipedia.org/wiki/ELIZA ELIZA], a bot that utilizes [https://en.wikipedia.org/wiki/Natural_language_processing natural language processing] (NLP) to converse with humans. Overall, the original version of ELIZA was quite limited in terms of functionality and ability to hold conversations, but it is nevertheless remembered as being one of the first true instances of a bot.<ref name="hubspot"/>
  
 
Following ELIZA, several chatbots emerged with varying behavior and oftentimes enhancements to preceding chatbots. These include [https://en.wikipedia.org/wiki/PARRY PARRY] (1972), [https://en.wikipedia.org/wiki/Jabberwacky Jabberwacky] (1988), [https://en.wikipedia.org/wiki/Dr._Sbaitso Dr. Sbaitso] (1991), and [https://en.wikipedia.org/wiki/Artificial_Linguistic_Internet_Computer_Entity ALICE] (1995).<ref>Wood, D. (2020, August 28). ''What is the history of chatbots?'' YakBots. Retrieved January 21, 2022, from https://yakbots.com/what-is-the-history-of-chatbots/</ref> Many of the improvements made to chatbots over time are a result of advances in communication technologies and mechanisms, such as [https://en.wikipedia.org/wiki/Instant_messaging instant messaging] (IM) and [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat] (IRC).<ref>Gillis, A. S. (n.d.). Bot. In ''WhatIs.com dictionary''. Retrieved January 21, 2022, from https://whatis.techtarget.com/definition/bot-robot</ref>
 
Following ELIZA, several chatbots emerged with varying behavior and oftentimes enhancements to preceding chatbots. These include [https://en.wikipedia.org/wiki/PARRY PARRY] (1972), [https://en.wikipedia.org/wiki/Jabberwacky Jabberwacky] (1988), [https://en.wikipedia.org/wiki/Dr._Sbaitso Dr. Sbaitso] (1991), and [https://en.wikipedia.org/wiki/Artificial_Linguistic_Internet_Computer_Entity ALICE] (1995).<ref>Wood, D. (2020, August 28). ''What is the history of chatbots?'' YakBots. Retrieved January 21, 2022, from https://yakbots.com/what-is-the-history-of-chatbots/</ref> Many of the improvements made to chatbots over time are a result of advances in communication technologies and mechanisms, such as [https://en.wikipedia.org/wiki/Instant_messaging instant messaging] (IM) and [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat] (IRC).<ref>Gillis, A. S. (n.d.). Bot. In ''WhatIs.com dictionary''. Retrieved January 21, 2022, from https://whatis.techtarget.com/definition/bot-robot</ref>
  
 
=== Web era ===
 
=== Web era ===
With the development of the Web, the usage and capabilities of bots expanded beyond chatting.<ref name="abusix">Knecht, T. (2021, May 4). ''A brief history of bots and how they've shaped the Internet today''. Abusix. Retrieved January 21, 2022, from https://abusix.com/resources/botnets/a-brief-history-of-bots-and-how-theyve-shaped-the-internet-today/</ref> In particular, [https://en.wikipedia.org/wiki/Web_crawler web crawlers], which are bots used by search engines to [https://en.wikipedia.org/wiki/Web_indexing index] web pages, arose during the 1990s. The first web crawler was developed in 1994 by Brian Pinkerton, a student at the University of Washington. Pinkerton’s web crawler led to the first search engine capable of text search, [https://en.wikipedia.org/wiki/WebCrawler WebCrawler].<ref>The History of SEO. (n.d.). ''Short history of early search engines''. The History of SEO. Retrieved January 21, 2022, from https://www.thehistoryofseo.com/The-Industry/Short_History_of_Early_Search_Engines.aspx</ref> A few years later, in 1997, [https://en.wikipedia.org/wiki/Google Google] created its first web crawler, BackRub (now known as [https://en.wikipedia.org/wiki/Googlebot Googlebot]).<ref name="abusix"/>
+
With the development of the Web, the usage and capabilities of bots expanded beyond chatting.<ref name="abusix">Knecht, T. (2021, May 4). ''A brief history of bots and how they've shaped the Internet today''. Abusix. Retrieved January 21, 2022, from https://abusix.com/resources/botnets/a-brief-history-of-bots-and-how-theyve-shaped-the-internet-today/</ref> In particular, [https://en.wikipedia.org/wiki/Web_crawler web crawlers], which are bots used by search engines to [https://en.wikipedia.org/wiki/Web_indexing index] web pages, arose during the 1990s. The first web crawler was developed in 1994 by Brian Pinkerton, a student at the [https://en.wikipedia.org/wiki/University_of_Washington University of Washington]. Pinkerton’s web crawler led to the first search engine capable of text search, [https://en.wikipedia.org/wiki/WebCrawler WebCrawler].<ref>The History of SEO. (n.d.). ''Short history of early search engines''. The History of SEO. Retrieved January 21, 2022, from https://www.thehistoryofseo.com/The-Industry/Short_History_of_Early_Search_Engines.aspx</ref> A few years later, in 1997, [https://en.wikipedia.org/wiki/Google Google] created its first web crawler, BackRub (now known as [https://en.wikipedia.org/wiki/Googlebot Googlebot]).<ref name="abusix"/>
  
 
As the Web and Internet have grown, so have the roles and functions of bots. Bots are currently being used in several contexts, including [https://en.wikipedia.org/wiki/Online_shopping online shopping], [https://en.wikipedia.org/wiki/Website_monitoring website monitoring], and [https://en.wikipedia.org/wiki/Social_media social media].<ref name="kaspersky"/>
 
As the Web and Internet have grown, so have the roles and functions of bots. Bots are currently being used in several contexts, including [https://en.wikipedia.org/wiki/Online_shopping online shopping], [https://en.wikipedia.org/wiki/Website_monitoring website monitoring], and [https://en.wikipedia.org/wiki/Social_media social media].<ref name="kaspersky"/>
  
 
== Design ==
 
== Design ==
 +
=== Components ===
 +
Like most software applications, bots can be designed in several ways; however, there are a few underlying components that most designs share. These include application logic, [https://en.wikipedia.org/wiki/Database databases], and external integrations.<ref name="cf-bot-def"/> Application logic is the code that drives a bot (i.e., the program for the bot). It determines a bot’s behavior and actively interacts with any databases or external integrations that the bot utilizes. Databases store data, which may be pre-existing (before the bot runs) or created as the bot runs. Pre-existing data can help guide a bot’s decisions. Newly created data can be processed for other purposes independent of the bot’s functionality, as is the case with web crawlers. External integrations, which usually occur through an [https://en.wikipedia.org/wiki/API application programming interface] (API), enable a bot to utilize services provided by another party (e.g., Twitter). Such integrations can help prevent a bot’s developer from writing complicated code needed to perform a task (e.g., posting on [https://en.wikipedia.org/wiki/Twitter Twitter]).<ref>Cloudflare. (n.d.). ''What is a social media bot?'' Cloudflare. Retrieved January 22, 2022, from https://www.cloudflare.com/learning/bots/what-is-a-social-media-bot/</ref>
 +
 +
In cases where a bot requires [https://en.wikipedia.org/wiki/Artificial_intelligence artificial intelligence] (AI), NLP or [https://en.wikipedia.org/wiki/Machine_learning machine learning] (ML) are oftentimes utilized.<ref>Joshi, N. (2020, February 23). ''Choosing between rule-based bots and AI Bots''. Forbes. Retrieved January 22, 2022, from https://www.forbes.com/sites/cognitiveworld/2020/02/23/choosing-between-rule-based-bots-and-ai-bots/</ref> This can be in the bot’s application logic directly or through an external integration.
 +
 +
=== Botnets ===
 +
In the general sense, a [https://en.wikipedia.org/wiki/Botnet botnet] is a network of computers connected through the Internet.<ref>Techopedia (2017, January 4). Botnet. In ''Techopedia dictionary''. Retrieved January 22, 2022, from https://www.techopedia.com/definition/384/botnet</ref> Each device in the network is a bot, or, rather, runs any number of bots, and the botnet works to accomplish a specific task. Communication in early botnets occurred through IRC.
 +
 +
Although botnets can be used for well-founded purposes, such as ensuring a [https://en.wikipedia.org/wiki/Website website] remains alive, they are oftentimes used for malicious purposes.<ref>Norton. (2019, August 12). ''What is a botnet?'' Norton. Retrieved January 22, 2022, from https://us.norton.com/internetsecurity-malware-what-is-a-botnet.html</ref> This occurs when a remote party, the bot herder, penetrates through the [https://en.wikipedia.org/wiki/Computer_security security defenses] of several computers and installs [https://en.wikipedia.org/wiki/Malware malware] on them.<ref name="fortinet">Fortinet. (n.d.). ''What is a botnet?'' Fortinet. Retrieved January 22, 2022, from https://www.fortinet.com/resources/cyberglossary/what-is-botnet</ref> Once the malware has been installed, the bot herder can effectively run bots on the infected devices to carry out malicious operations, such as [https://en.wikipedia.org/wiki/Spamming spamming].
 +
 +
In terms of architecture, botnets can be organized in a wide array of arrangements. Common models used to construct botnets include [https://en.wikipedia.org/wiki/Client%E2%80%93server_model client-server], [https://en.wikipedia.org/wiki/Star_network star network], [https://en.wikipedia.org/wiki/Hierarchical_network_model hierarchical network], and [https://en.wikipedia.org/wiki/Peer-to-peer peer-to-peer].<ref name="fortinet"/>
  
 
== Types of bots ==
 
== Types of bots ==

Revision as of 03:46, 28 January 2022

Back • ↑Topics • ↑Categories

Example of how bots work over the Internet.[1]

A bot (or, more specifically, an Internet bot) is a computer program that performs automated tasks on top of a network (commonly the Internet).[2] Bots carry out repetitive and predefined tasks, often in a manner that mimics human behavior.[3] Due to their automated nature, bots can complete tasks more efficiently and at a larger scale than humans. Compared with other software applications, the time needed to develop and deploy bots (especially those that do not converse with online users) is relatively short.[2] Consequently, bots hold a significant presence on the Internet and power core components of the modern Web, such as search engines. In light of this ability, however, bots are frequently utilized to execute a variety of malicious activities.

History

Turing test

The notion of a bot dates back to 1950, when Alan Turing created the imitation game, later named the Turing test.[4] The test, or game, revolves around three players: two humans and one computer.[5] One of the human players, the interrogator, is isolated and inputs questions into a computer. The questions are structured in a particular format and a limited number are asked. The other human player and the computer player answer the questions asked. As the game proceeds, the interrogator uses the answers to determine which of the other players is the human and which is the computer. The computer player attempts to answer questions in a manner that imitates humans and is said to have passed the Turing test if the interrogator falsely concludes that it is the other human player. The computer player in this sense is thus seen as a representation of a bot.

Early bots

The computer player used in the Turing test closely resembles a chatbot, one that interacts with humans via dialogue.[6] Over the next few decades following the development of the Turing test, the development of chatbots grew significantly. During the 1960s, MIT professor Joseph Weizenbaum created ELIZA, a bot that utilizes natural language processing (NLP) to converse with humans. Overall, the original version of ELIZA was quite limited in terms of functionality and ability to hold conversations, but it is nevertheless remembered as being one of the first true instances of a bot.[4]

Following ELIZA, several chatbots emerged with varying behavior and oftentimes enhancements to preceding chatbots. These include PARRY (1972), Jabberwacky (1988), Dr. Sbaitso (1991), and ALICE (1995).[7] Many of the improvements made to chatbots over time are a result of advances in communication technologies and mechanisms, such as instant messaging (IM) and Internet Relay Chat (IRC).[8]

Web era

With the development of the Web, the usage and capabilities of bots expanded beyond chatting.[9] In particular, web crawlers, which are bots used by search engines to index web pages, arose during the 1990s. The first web crawler was developed in 1994 by Brian Pinkerton, a student at the University of Washington. Pinkerton’s web crawler led to the first search engine capable of text search, WebCrawler.[10] A few years later, in 1997, Google created its first web crawler, BackRub (now known as Googlebot).[9]

As the Web and Internet have grown, so have the roles and functions of bots. Bots are currently being used in several contexts, including online shopping, website monitoring, and social media.[3]

Design

Components

Like most software applications, bots can be designed in several ways; however, there are a few underlying components that most designs share. These include application logic, databases, and external integrations.[2] Application logic is the code that drives a bot (i.e., the program for the bot). It determines a bot’s behavior and actively interacts with any databases or external integrations that the bot utilizes. Databases store data, which may be pre-existing (before the bot runs) or created as the bot runs. Pre-existing data can help guide a bot’s decisions. Newly created data can be processed for other purposes independent of the bot’s functionality, as is the case with web crawlers. External integrations, which usually occur through an application programming interface (API), enable a bot to utilize services provided by another party (e.g., Twitter). Such integrations can help prevent a bot’s developer from writing complicated code needed to perform a task (e.g., posting on Twitter).[11]

In cases where a bot requires artificial intelligence (AI), NLP or machine learning (ML) are oftentimes utilized.[12] This can be in the bot’s application logic directly or through an external integration.

Botnets

In the general sense, a botnet is a network of computers connected through the Internet.[13] Each device in the network is a bot, or, rather, runs any number of bots, and the botnet works to accomplish a specific task. Communication in early botnets occurred through IRC.

Although botnets can be used for well-founded purposes, such as ensuring a website remains alive, they are oftentimes used for malicious purposes.[14] This occurs when a remote party, the bot herder, penetrates through the security defenses of several computers and installs malware on them.[15] Once the malware has been installed, the bot herder can effectively run bots on the infected devices to carry out malicious operations, such as spamming.

In terms of architecture, botnets can be organized in a wide array of arrangements. Common models used to construct botnets include client-server, star network, hierarchical network, and peer-to-peer.[15]

Types of bots

Examples of bots

Traffic and management

Ethical concerns

See also

References

  1. Suchacka, G., & Iwański, J. (2020). Identifying legitimate web users and bots with different traffic profiles — An information bottleneck approach. Knowledge-Based Systems, 197, 3. https://doi.org/https://doi.org/10.1016/j.knosys.2020.105875
  2. 2.0 2.1 2.2 Cloudflare. (n.d.). How is an internet bot constructed? Cloudflare. Retrieved January 20, 2022, from https://www.cloudflare.com/learning/bots/how-is-an-internet-bot-constructed/
  3. 3.0 3.1 Kaspersky. (2021, March 22). What are bots? – Definition and explanation. Kaspersky. Retrieved January 20, 2022, from https://www.kaspersky.com/resource-center/definitions/what-are-bots
  4. 4.0 4.1 Zantal-Wiener, A. (2021, June 11). Where do bots come from? A brief history. HubSpot. Retrieved January 21, 2022, from https://blog.hubspot.com/marketing/where-do-bots-come-from
  5. Oppy, G., & Dowe, D. (2003, April 9). The Turing Test. In The Stanford Encyclopedia of Philosophy. Metaphysics Research Lab, Stanford University. Retrieved January 21, 2022, from https://plato.stanford.edu/entries/turing-test/
  6. Adamopoulou, E., & Moussiades, L. (2020). Chatbots: History, technology, and applications. Machine Learning with Applications, 2, 1–3. https://doi.org/https://doi.org/10.1016/j.mlwa.2020.100006
  7. Wood, D. (2020, August 28). What is the history of chatbots? YakBots. Retrieved January 21, 2022, from https://yakbots.com/what-is-the-history-of-chatbots/
  8. Gillis, A. S. (n.d.). Bot. In WhatIs.com dictionary. Retrieved January 21, 2022, from https://whatis.techtarget.com/definition/bot-robot
  9. 9.0 9.1 Knecht, T. (2021, May 4). A brief history of bots and how they've shaped the Internet today. Abusix. Retrieved January 21, 2022, from https://abusix.com/resources/botnets/a-brief-history-of-bots-and-how-theyve-shaped-the-internet-today/
  10. The History of SEO. (n.d.). Short history of early search engines. The History of SEO. Retrieved January 21, 2022, from https://www.thehistoryofseo.com/The-Industry/Short_History_of_Early_Search_Engines.aspx
  11. Cloudflare. (n.d.). What is a social media bot? Cloudflare. Retrieved January 22, 2022, from https://www.cloudflare.com/learning/bots/what-is-a-social-media-bot/
  12. Joshi, N. (2020, February 23). Choosing between rule-based bots and AI Bots. Forbes. Retrieved January 22, 2022, from https://www.forbes.com/sites/cognitiveworld/2020/02/23/choosing-between-rule-based-bots-and-ai-bots/
  13. Techopedia (2017, January 4). Botnet. In Techopedia dictionary. Retrieved January 22, 2022, from https://www.techopedia.com/definition/384/botnet
  14. Norton. (2019, August 12). What is a botnet? Norton. Retrieved January 22, 2022, from https://us.norton.com/internetsecurity-malware-what-is-a-botnet.html
  15. 15.0 15.1 Fortinet. (n.d.). What is a botnet? Fortinet. Retrieved January 22, 2022, from https://www.fortinet.com/resources/cyberglossary/what-is-botnet