Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Сервис семейства протоколов Интернет
Internet Protocol Suite service
Протокол генератора символов (CHARGEN) — это сервис семейства протоколов Интернет, определённый в 1983 году Джоном Постелом. Он предназначен для тестирования, отладки и измерений. Протокол используется редко из-за присущих ему недостатков, которые позволяют легко злоупотреблять им. Хост может подключиться к серверу, поддерживающему протокол генератора символов, через порт 19 протокола управления передачей (TCP) или протокола пользовательских датаграмм (UDP). После установления TCP-соединения сервер начинает отправлять произвольные символы подключающемуся хосту и продолжает это делать до тех пор, пока хост не закроет соединение. В UDP-реализации протокола сервер отправляет UDP-датаграмму, содержащую случайное количество (от 0 до 512) символов, каждый раз при получении датаграммы от подключающегося хоста. Все данные, полученные сервером, отбрасываются.
The Character Generator Protocol (CHARGEN) is a service of the Internet Protocol Suite defined in in 1983 by Jon Postel. It is intended for testing, debugging, and measurement purposes. The protocol is rarely used, as its design flaws allow for ready misuse. A host may connect to a server that supports the Character Generator Protocol on either Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) port number 19. Upon opening a TCP connection, the server starts sending arbitrary characters to the connecting host and continues until the host closes the connection. In the UDP implementation of the protocol, the server sends a UDP datagram containing a random number (between 0 and 512) of characters every time it receives a datagram from the connecting host. Any data received by the server is discarded.
Приложения
Служба CHARGEN может использоваться как источник байтового потока для отладки TCP-сетевого кода с целью проверки корректности границ и управления буферами. Она также может служить источником универсальных данных для измерения пропускной способности и/или тонкой настройки QoS. Следует учитывать, включено ли аппаратное сжатие, поскольку выходные данные службы CHARGEN легко и эффективно сжимаются. Это сжатие может привести к тому, что тесты пропускной способности будут показывать размер данных после декомпрессии, а не фактический объем данных, переданных по сети.
The CHARGEN service may be used as a source of a byte stream for debugging TCP network code for proper bounds checking and buffer management. It may also be a source of generic payload for bandwidth measurement and/or QoS fine tuning. Consideration must be given if hardware compression is active, as the output from the CHARGEN service is easily and efficiently compressed. This compression can cause bandwidth tests to report the size of the data after decompression, instead of the actual amount of data which passed the wire.
Визуальная симуляция вывода
По соображениям безопасности, на большинстве современных машин следует отключать сервисы Telnet и CHARGEN. Ниже представлен скрипт bash для Linux, который имитирует визуальный вид службы CHARGEN в окне терминала. Скрипт можно остановить, нажав Ctrl + C. strg=""; for n in {32..126}; do c=`printf '%x' $n | xxd -r -p`; strg=${strg}${c}; done; strg=${strg}${strg}; n=0; while :; do m=$((n % 95)); echo "${strg:$m:72}"; n=$((n+1)); sleep 0.1; done;
For security reasons, most modern machines should have both Telnet and CHARGEN services disabled. The following is a Linux bash script that will simulate the visual appearance of the CHARGEN service in the terminal window. The script can be stopped by pressing Ctrl + C. strg=""; for n in {32 126}; do c=`printf '%x' $n | xxd r p`; strg=${strg}${c}; done; strg=${strg}${strg}; n=0; while :; do m=n%95; echo "${strg:m:72}"; n=$((n+1)); sleep .1; done;
Злоупотребление
Служба была использована злонамеренно для вывода из строя серверов доменных имен Microsoft (DNS) под управлением Windows NT 4.0, путем прямой передачи произвольных символов в порт прослушивания сервера DNS (telnet ntbox 19 | telnet ntbox 53). Однако, атака могла быть следствием некорректного управления буфером в службе DNS Microsoft, а не напрямую связана со службой CHARGEN. UDP CHARGEN обычно используется в атаках типа "отказ в обслуживании". Используя поддельный IP-адрес источника, злоумышленник может направить отраженный трафик с UDP CHARGEN-приложения на жертву. UDP CHARGEN отправляет от 200 до 1000 раз больше данных, чем получает, в зависимости от реализации. Это "умножение трафика" также привлекательно для злоумышленника, поскольку оно скрывает его IP-адрес от жертвы. CHARGEN широко использовался в сетевых принтерах. Поскольку прошивка принтеров редко обновлялась в старых моделях до того, как стали известны CHARGEN и другие уязвимости, до сих пор может существовать множество сетевых принтеров, поддерживающих этот протокол. Если они доступны из Интернета, они неизменно используются в качестве векторов для атак типа "отказ в обслуживании". Потенциальные злоумышленники часто сканируют сети в поисках источников UDP CHARGEN на порту 19. Настолько широко распространено наличие CHARGEN в принтерах, что некоторые трояны для распределенных атак типа "отказ в обслуживании" теперь используют порт 19 UDP для своего трафика. Предполагаемая цель – запутать следствие, заставить исследователей искать старые принтеры, а не скомпрометированные компьютеры.
The service was used maliciously to crash Microsoft domain name servers (DNS) running Windows NT 4.0 by piping the arbitrary characters straight into the DNS server listening port (telnet ntbox 19 | telnet ntbox 53). However, the attack may have been a symptom of improper buffer management on the part of Microsoft's DNS service and not directly related to the CHARGEN service. UDP CHARGEN is commonly used in denial of service attacks. By using a fake source address the attacker can send bounce traffic off a UDP CHARGEN application to the victim. UDP CHARGEN sends 200 to 1,000 times more data than it receives, depending upon the implementation. This "traffic multiplication" is also attractive to an attacker because it obscures the attacker's IP address from the victim. CHARGEN was widely implemented on network connected printers. As printer firmware was rarely updated on older models before CHARGEN and other security concerns were known, there may still be many network connected printers which implement the protocol. Where these are visible to the Internet, they are invariably misused as denial of service vectors. Potential attackers often scan networks looking for UDP port 19 CHARGEN sources. So notorious is the availability of CHARGEN in printers that some distributed denial of service trojans now use UDP port 19 for their attack traffic. The supposed aim is to throw investigators off the track; to have them looking for old printers rather than subverted computers.