ssl ресурс
Используйте ssl ресурс проверки Chef InSpec, чтобы протестировать настройки SSL для указанного порта.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса ssl объявляет порт SSL и другие свойства теста, такие как шифр и/или протокол:
describe ssl(port: #) do
it { should be_enabled }
end
или:
describe ssl(port: #).filter('value') do
it { should be_enabled }
end
где
-
ssl(port: #)— номер порта, напримерssl(port: 443) -
filterможет принимать любые из следующих аргументов:ciphers,protocols, иhandshake
Примеры
В следующих примерах показано, как использовать этот ресурс проверки Chef InSpec.
Выполнить примерный профиль ssl-baseline
Следующий пример демонстрирует использование ssl ресурса проверки Chef InSpec для поиска всех TCP-портов в системе, включая IPv4 и IPv6. (Это частичный пример, основанный на файле ssl_text.rb в профиле ssl-baseline на GitHub.)
...
control 'tls1.2' do
title 'Run TLS 1.2 whenever SSL is active on a port'
impact 0.5
sslports.each do |socket|
proc_desc = "on node == #{command('hostname').stdout.strip} running #{socket.process.inspect} (#{socket.pid})"
describe ssl(port: socket.port).protocols('tls1.2') do
it(proc_desc) { should be_enabled }
it { should be_enabled }
end
end
end
...
control 'rc4' do
title 'Disable RC4 ciphers from all exposed SSL/TLS ports and versions.'
impact 0.5
sslports.each do |socket|
proc_desc = "on node == #{command('hostname').stdout.strip} running #{socket.process.inspect} (#{socket.pid})"
describe ssl(port: socket.port).ciphers(/rc4/i) do
it(proc_desc) { should_not be_enabled }
it { should_not be_enabled }
end
end
end
Есть два способа выполнить примерный профиль ssl-baseline для тестирования SSL с помощью ресурса ssl.
Клонировать профиль:
$ git clone https://github.com/dev-sec/ssl-baseline
а затем выполнить:
$ inspec exec ssl-baseline
Или выполнить профиль непосредственно по URL:
$ inspec exec https://github.com/dev-sec/ssl-baseline
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
be_enabled
Матчер be_enabled проверяет, включен ли SSL:
it { should be_enabled }
шифры
Матчер ciphers проверяет указанный шифр:
its('ciphers') { should_not eq '/rc4/i' }
или:
describe ssl(port: 443).ciphers(/rc4/i) do
it { should_not be_enabled }
end
протоколы
Матчер protocols проверяет, какие версии протоколов (SSLv3, TLSv1.1 и т. д.) включены:
its('protocols') { should eq 'ssl2' }
или:
describe ssl(port: 443).protocols('ssl2') do
it { should_not be_enabled }
end
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/ssl/