Публикация

SSH-Audit - Инструмент за проверка на сигурността

Въведение

Във времена на непрестанно нарастваща киберпрестъпност, гарантирането на сигурността на сървърите е от първостепенно значение. Един критичен аспект от защитата на системите, е управлението и осигуряването на отдалечен достъп, а SSH (Secure Shell) е често използван протокол за тази цел. За да подобрите сигурността на вашите SSH конфигурации съществува безценен инструмент, наречен SSH-Audit. В тази статия ще разгледаме възможностите, функции и как може да използваме този софтуер за укрепване сигурността на комуникацията посредством SSH протокола за отдалечена връзка.

Разбиране на SSH и неговото значение:

SSH е криптографски мрежови протокол, който улеснява сигурната комуникация между две системи, през несигурна мрежа. Той се използва широко за отдалечен достъп и изпълнение на команди, осигурявайки сигурна алтернатива на традиционните, уязвими протоколи, какъвто е например Telnet. Сигурността на SSH се крие в криптирането на данните, предавани между клиента и сървъра, както и в стабилни механизми за удостоверяване.

Въпреки сигурния си дизайн по подразбиране, неправилните SSH конфигурации могат да доведат до уязвимости, от които злонамерени участници да се възползват. В тези ситуации SSH-Audit се оказва безценен инструмент.

Какво е SSH-Audit?

SSH-Audit представлява софтуер с отворен код, предназначен за проверка на конфигурацията на SSH сървъри. Той анализира конфигурацията на OpenSSH сървъра и идентифицира потенциални проблеми със сигурността или неправилни конфигурации, които биха могли да компрометират сигурността на системата. Разработен на програмния език Python, SSH-Audit е лесен за използване, предоставяйки бърз и ефективен начин за оценка на състоянието на сигурността на вашите SSH сървъри.

Основни характеристики на SSH-Audit

Анализ на шифър и обмен на ключове

SSH-Audit проверява поддържаните шифри и алгоритми за обмен на ключове на SSH сървъра, дава представа за нивата на сигурност на тези алгоритми и предлага по-сигурни алтернативи, ако е необходимо.

Откриване на уязвимост

Инструментът може да идентифицира уязвимости и слабости в SSH конфигурацията на сървъра, като проверява за наличието на такива, а именно слаби алгоритми или отхвърлени настройки.

Препоръки за конфигурация

SSH-Audit предлага практически препоръки за подобряване на конфигурацията на SSH сървъра, като включва указания за това кои шифри, алгоритми за обмен на ключове и други настройки да се използват за подобрена сигурност.

Персонализиране на изхода

Потребителите могат да персонализират изходния формат според предпочитанията си. SSH-Audit предоставя опции за показване на резултатите по кратък или подробен начин, което го прави адаптивен към различни потребителски нужди.

Как да използваме SSH-Audit?

Използването на SSH-Audit е лесно. Просто инсталирайте инструмента на вашата система и след това го стартирайте срещу SSH сървъра, който искате да анализирате.

Инсталация

Посредством пакетния мениджър на Python

1
pip3 install ssh-audit

Под формата на Snap пакет

1
snap install ssh-audit

Посредством хранилището Dockerhub

1
docker pull positronsecurity/ssh-audit

Команди за изпълнение

Стартирането на SSH-Audit зависи от това, по кой начин е инсталиран на нашата система. Стига да не е от хранилището Dockerhub, командата е:

1
ssh-audit example.com

За инсталация посредством хранилището Dockerhub командата е:

1
docker run -it -p 2222:2222 positronsecurity/ssh-audit example.com

Заменете example.com с името на хоста или IP адреса на вашия SSH сървър.

Ако желаете да се запознаете с възможните опции при изпълнение на програмата, можете да изпълните командата:

1
ssh-audit --help

или

1
docker run -it -p 2222:2222 positronsecurity/ssh-audit --help

Изходът изглежда по следния начин:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
usage: ssh-audit.py [options] <host>

   -h,  --help             print this help
   -1,  --ssh1             force ssh version 1 only
   -2,  --ssh2             force ssh version 2 only
   -4,  --ipv4             enable IPv4 (order of precedence)
   -6,  --ipv6             enable IPv6 (order of precedence)
   -b,  --batch            batch output
   -c,  --client-audit     starts a server on port 2222 to audit client
                               software config (use -p to change port;
                               use -t to change timeout)
   -d,  --debug            debug output
   -g,  --gex-test=<x[,y,...]>  dh gex modulus size test
                   <min1:pref1:max1[,min2:pref2:max2,...]>
                   <x-y[:step]>
   -j,  --json             JSON output (use -jj to enable indents)
   -l,  --level=<level>    minimum output level (info|warn|fail)
   -L,  --list-policies    list all the official, built-in policies
        --lookup=<alg1,alg2,...>    looks up an algorithm(s) without
                                    connecting to a server
   -M,  --make-policy=<policy.txt>  creates a policy based on the target server
                                    (i.e.: the target server has the ideal
                                    configuration that other servers should
                                    adhere to)
   -m,  --manual           print the man page (Windows only)
   -n,  --no-colors        disable colors
   -p,  --port=<port>      port to connect
   -P,  --policy=<policy.txt>  run a policy test using the specified policy
   -t,  --timeout=<secs>   timeout (in seconds) for connection and reading
                               (default: 5)
   -T,  --targets=<hosts.txt>  a file containing a list of target hosts (one
                                   per line, format HOST[:PORT]).  Use --threads
                                   to control concurrent scans.
        --threads=<threads>    number of threads to use when scanning multiple
                                   targets (-T/--targets) (default: 32)
   -v,  --verbose          verbose output

Преглед на резултатите

Анализирайте изхода, генериран от SSH-Audit, като обърнете внимание на всички идентифицирани уязвимости или области за подобрение.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# algorithm recommendations (for OpenSSH 8.9)
(rec) !rsa-sha2-256                         -- key algorithm to change (increase modulus size to 3072 bits or larger)
(rec) !rsa-sha2-512                         -- key algorithm to change (increase modulus size to 3072 bits or larger)
(rec) -ecdh-sha2-nistp256                   -- kex algorithm to remove
(rec) -ecdh-sha2-nistp384                   -- kex algorithm to remove
(rec) -ecdh-sha2-nistp521                   -- kex algorithm to remove
(rec) -ecdsa-sha2-nistp256                  -- key algorithm to remove
(rec) -hmac-sha1                            -- mac algorithm to remove
(rec) -hmac-sha1-etm@openssh.com            -- mac algorithm to remove
(rec) -diffie-hellman-group14-sha256        -- kex algorithm to remove
(rec) -hmac-sha2-256                        -- mac algorithm to remove
(rec) -hmac-sha2-512                        -- mac algorithm to remove
(rec) -umac-128@openssh.com                 -- mac algorithm to remove
(rec) -umac-64-etm@openssh.com              -- mac algorithm to remove
(rec) -umac-64@openssh.com                  -- mac algorithm to remove

# additional info
(nfo) For hardening guides on common OSes, please see: <https://www.ssh-audit.com/hardening_guides.html>

Прилагане на препоръки

Въз основа на резултатите от одита, направете необходимите корекции в конфигурацията на вашия SSH сървър, за да разрешите идентифицираните проблеми.

Заключение

SSH-Audit е мощен инструмент, който добавя допълнителен слой сигурност към вашите SSH конфигурации. Чрез редовен одит на вашите SSH сървъри можете да идентифицирате и коригирате потенциални уязвимости, като гарантирате, че вашите системи остават устойчиви срещу неоторизиран достъп и други заплахи за сигурността. Включването на SSH-Audit във вашата кутия с инструменти за киберсигурност е проактивна стъпка към поддържане на стабилна и сигурна компютърна среда.


Линкове

Тази публикация е лицензирана под CC BY 4.0 от автора.