неділя, 16 травня 2010 р.
Building a SOC
субота, 15 травня 2010 р.
Securing mediawiki
- use https with mutual authentication;
- use single sign on by client certificates.
At first, enable mod_ssl on apache:
a2enmod ssl
Then add to apache configuration file httpd.conf next strings:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SSLCACertificateFile /etc/apache2/ssl/ca.crt
SSLCARevocationFile /etc/apache2/ssl/crl.pem
SSLVerifyClient require
SSLVerifyDepth 1
< Location />
SSLRequire (%{SSL_CLIENT_S_DN_OU} eq "infosec" )
< /Location>
Then disable http-server on apache:
a2dissite default
and edit ports.conf:
#NameVirtualHost *:80 - comment or delete
#Listen 80 - comment or delete
After this restart apache:
apache2ctl graceful
To configure SSL authentication on mediawiki using certificate CN as username you need to add these strings in your apache config:
< Directory "/var/lib/mediawiki/">
Options None
AllowOverride None
Order allow,deny
Allow from all
SSLRequireSSL
SSLRequire %{SSL_CLIENT_S_DN} =~ m/.*serialNumber=
< /Directory>
Then you need to use SSLAuthPlugin.php from guide: http://www.mediawiki.org/wiki/Extension:SSL_authentication depends on your version of mediawiki and add in LocalSettings.php these strings:
#Load SSLAuthPlugin
require_once('extensions/SSLAuthPlugin.php');
#Feel free to use extra PHP code to munge the variables if you'd like
#Additionally if you wish to only map some of the name data, set this to true
#and either blank ssl_RN and ssl_email or comment them out entirely.
$ssl_map_info = false;
#Ssssh.... quiet down errors
#$olderror = error_reporting(E_ALL ^ E_NOTICE);
#Map Real Name from certificate
#Can be DN but is it right?
$ssl_RN = $_SERVER['SSL_CLIENT_S_DN_CN'];
#MW username is required to map to something
#You should beware of possible namespace collisions, it is best to chose
#something that will not violate MW's usual restrictions on characters
#Just using Firstname + Lastname (CN) from Certificate 'will' make collisions... but what to use?
#UN could be md5-hash of DN, but its ugly to use...
$ssl_UN = $_SERVER['SSL_CLIENT_S_DN_CN'];
#Map e-mail to something close?
#Will throw warnings if E-Mail is not set in certificate.
#If so, comment out the next three lines and set $ssl_email empty.
if ($_SERVER['SSL_CLIENT_S_DN_Email'] != )
$ssl_email = $_SERVER['SSL_CLIENT_S_DN_Email'];
else
$ssl_email = ;
#Turn error reporting back on
#error_reporting($olderror);
#Activate SSL Plugin
SSLAuthSetup();
понеділок, 26 квітня 2010 р.
security asceticism - getting list of subdomains
Big Brother watching you or mobile phone security issues
субота, 3 квітня 2010 р.
Увеличения объема доступной виртуалке памяти в esxi3.5 или работа в esxi3.5 на хосте с 1 GB RAM
понеділок, 29 березня 2010 р.
Security Configuration Guides
- USA National Security Agency (NSA) - Security Configuration Guides
- USA National Institute of Standards and Technology (NIST) - National Checklist Program Repository
- USA Defense Information System Agency (DISA) - Security Technical Implementation Guides (STIGS)
- Community: the Center of Internet Security (CIS) - CIS Benchmarks
- Apple Mac OS X Security Configuration Guide
- Microsoft Security Configuration Guides and Wizards
- Apache community Security Tips
- Cisco IOS Security Configuration Guide
субота, 13 березня 2010 р.
Using Google Alert for information security
пʼятниця, 5 березня 2010 р.
Определение нагрузки на SPAN-порт
Предположим, есть коммутатор с n интерфейсов, сетевой трафик с m из которых необходимо анализировать. Порты могут быть как физические, так и логические. Независимо от того, будет ли SPAN-сессия терминироваться на данном коммутаторе или на удаленном, соблюдается условие m ≤ n – 1, поскольку интерфейс, передающий копии пакетов на анализатор, не может подавать копию своей нагрузки на себя. В зависимости от поставленных задач и возможностей коммутатора по каждому из m интерфейсов анализируется входящий, исходящий, либо весь трафик. Обозначим за Rx пиковое значение загрузки (бит/с) интерфейса входящими данными, а за Tx – исходящими. Расчет пропускной способности SPAN-порта и, соответственно, сетевого сенсора (Bw), на который подается весь трафик с m интерфейсов, производится по формуле:
(1)
Если же представляют интерес пакеты либо входящие, либо исходящие, в зависимости от порта коммутатора и подключенного к нему оборудования, то для вычисления введем дополнительные параметры: t – количество интерфейсов, с которых будет копироваться исходящий трафик, r – количество портов, у которых будут анализироваться входящие данные. В этом случае соблюдаются условия: r ≤ m, t ≤ m. Требования к соотношению значений r и t определяются либо поставленными задачами для исследования, либо программно-аппаратными ограничениями коммутатора. Таким образом, формула (1) для вычисления пропускной способности Bw приобретает следующий вид:
(2)
Практическое применение результатов данных расчетов в сети предприятия, как правило, сводится к решению вопросов:
- Какой интерфейс выделить на «зеркалированный» порт – FastEthernet, GigabitEthernet или TenGigabitEthernet?
- Какой производительности необходим сетевой сенсор?
Сетевые сенсоры как источник информации
Распределение информации с сенсоров между подразделениями
Сетевые сенсоры могут использоваться не только как подсистемы безопасности, но и как источник дополнительной информации для других подразделений компании. Если события, отрабатываемые сетевыми анализаторами, к которым нужен доступ, не являются критичными для некоторых подразделений компании, а носят вспомогательный характер, то очередным свидетельством целесообразности использования систем управления с открытым исходным кодом может быть частный случай распределения информации, поступающей с сетевых сенсоров, между подразделениями:- администраторы серверов;
- администраторы сети;
- администраторы рабочих станций пользователей;
- администраторы IT-безопасности;
- служба безопасности;
- маркетинг.
Сетевой трафик может генерироваться:
- пользователями;
- администраторами;
- серверным и сетевым оборудованием.
Посредством глубокого анализа данных, передаваемых по пакетной сети, возможно разграничить предоставление информации:
- нагрузки на сеть – администраторам сети и серверов, в компаниях-провайдерах связи подобная информация также может пригодиться маркетингу;
- наличия вирусов/троянов/червей – администраторам IT-безопасности, рабочих станций пользователей, серверов;
- неправомерных действий пользователей и администраторов – службе безопасности;
- некорректной конфигурации рабочих станций, серверов, активного сетевого оборудования – администраторам рабочих станций, сети, серверов, IT-безопасности.
Для каждого типа событий возможна настройка отсылки информации в виде трапов SNMP либо syslog (в зависимости от возможностей сенсора) на отдельный сервер мониторинга для полной изоляции доступа к событиям, необходимым для других подразделений.
Мониторинг состояния систем обнаружения вторжений
- рациональности использования ресурсов;
Устройства разной мощности и/или пропускной способности имеют различную стоимость. Учитывая то, что решения корпоративного уровня или операторского класса стоят достаточно дорого, а стабильность работы инфраструктуры критична для обеспечения бизнес-процессов, необходимо четко знать, какие требования должны предъявляться к программно-аппаратным комплексам, устанавливаемым в разных сегментах сети. Очевидно, что установка недостаточно мощного устройства вызовет либо ухудшение параметров работы инфраструктуры, либо, если от устройства не зависит работа сети, то обрабатывать полностью необходимый объем данных оно не будет иметь технической возможности. Использование чрезмерно мощного устройства на менее загруженных сегментах инфраструктуры, где не планируется серьезное развитие в обозримом будущем, окажется напрасной тратой денежных средств.- соответствия официально заявленных производителем параметров реальным данным;
Одна из наиболее важных и, соответственно, ценообразующих характеристик сетевых сенсоров – пропускная способность. От гарантированной возможности обрабатывать сетевой трафик на определенной скорости зависит не только эффективность работы, но и стоимость. Официально заявленные производителем цифры могут не соответствовать реальности в связи со спецификой работы корпоративной сети и использования различных бизнес-приложений.- возможности распределения сенсоров различной мощности по разным участкам сети;
Как обсуждалось выше, параметры сетевых сенсоров могут не соответствовать требованиям данного сегмента сети. Если это не было учтено на этапе проектирования, возможно выявление несоответствий в ходе эксплуатации благодаря анализу загрузки сенсоров.- необходимости снятия части нагрузки с детектора путем исключения из SPAN-сессии некоторых интерфейсов либо VLAN в случае высокой загрузки;
В сегментированных на виртуальные локальные сети (VLAN) корпоративных сетях могут существовать участки, которые требуется анализировать в первую очередь, в то время как анализ других сегментов может быть не обязателен. Если сенсор не справляется с нагрузкой, и при этом отсутствует возможность замены, приемлемо принятие решения о выборочном анализе виртуальных сетей или физических интерфейсов.- возможности наращивания инспектируемого трафика в случае низкой нагрузки;
Подобная проблема может возникнуть как при запланированном росте инфраструктурного сегмента, так и при постепенном наращивании трафика, который подается на сетевой сенсор, добавляя мониторинг выбранных портов или VLAN.- целесообразности подключения дополнительного детектора в коммутатор – в случае перегрузок;
При отсутствии более мощных решений определенные реализации сетевых сенсоров позволяют объединять несколько устройств, суммируя их пропускную способность, для более эффективной обработки всего трафика. Используется на сетевых сегментах, которые необходимо анализировать полностью.- возможности агрегации SPAN-сессий из разных коммутаторов для инспектирования на одном сенсоре любого производителя – при наличии такой необходимости;
В случае наличия сенсора с большим количеством интерфейсов возможен анализ сетевого трафика, который подается с разных коммутаторов, одним сетевым сенсором.- дополнительная информация об изменениях сетевой активности;
На основании информации об изменениях сетевого трафика можно контролировать появление аномалий либо использование несогласованных сетевых приложений- узнать о проведенных несогласованных работах по реорганизации сети либо о произошедшей аварии;
Зная нормальный уровень нагрузки каждого сетевого сегмента и сенсора в зависимости от времени, возможно определение проведенных работ по переносу нагрузки, реконфигурации активного сетевого оборудования. Также резкое изменение объема обрабатываемого трафика может свидетельствовать об аварии, отказе одного из элементов, перестроении таблиц маршрутизации, дерева коммутации и т. п.- определить степень влияния работ на сервис для пользователей;
Резкое падение либо возрастание нагрузки, не характерное для данного временного интервала на определенном участке сети, может частично помочь в определении влияния проводимых работ либо произошедшей аварии на сервис для конечных пользователей.- воздействие внешних факторов (температура, отключение штатного электропитания);
Если в программно-аппаратных средствах сенсоров реализована возможность получения информации о температуре окружающей среды и процессора, наличии штатного электропитания либо переходе на резервное – системы управления могут получать эту информацию и извещать соответствующие подразделения.- программный/аппаратный сбой в работе сенсоров.
В данном случае по отсутствию возможности управления определяется сбой в работе устройств.неділя, 28 лютого 2010 р.
Vulnerabilities scanners architecture in big enterprise
It's easy when you scan the network from your own laptop and use direct connection to the target system. But what about huge corporate network with a lot of routers, firewalls and packet filters between you and target system?
First of all you must install multiply instances of vulnerabilities scanners across the network. why you should avoid to use one scanner for all network ?
- compromising this scanner will give possibilities to attacker easily get access to all hosts. (For same scanner it's snap - IBM ISS internet scanner only works on Windows XP SP1 , so the scanner is vulnerable himself. )
- scanning through the firewalls will impact to the scan performance and could produce firewall cpu overload.
-low accuracy of the scans results (firewalls, routers and packets filters between scanner and the target can distort the scan )
So, does installing multiply scanner fix all problems? Sure thing, not. What about scan accuracy? It's depends of scanners and network configuration. So, if you would like to get trusted result you must be sure in scanner and network configuration before run each scan. It is not easy and can consume a lot of time without any warranty. How to solve this problem? Just do the same as engineers do for the precision instruments - calibrate them using master or template.
I recommend to use a bunch of calibration systems and allocate them across the network. It could be virtual systems based on well known vulnerable distributive such as Damn Vulnerable Linux or simple unpatched Windows with a test services running.
So, before scan the target system you must choose nearest calibration system, scan it and check result for accuracy. From my experience it's very important to do this because often even very famous vulnerabilities scanners fail during simple scan.
вівторок, 2 лютого 2010 р.
security asceticism-start browser from diff user
четвер, 21 січня 2010 р.
Terminal server with advanced logging capabilities.
1. Legacy system with no logging at all.
In the any big enterprise you can find old legacy system that have been designed a lot of years ago and do not fit any information security requirements at all. Very often you even haven’t possibility to install any additional software on such system (restricted by vendor or lack of performance). Sure thing you could protect this system from the network side by firewall but it not helps to get more logs from the system inside.
2. Business/ Mission critical systems supported on site or remotely by vendor.
It’s very popular now to give IT system operation support to the vendor or special outsourcing company. It’s very useful and helps to reduce you costs. But what about security? In such case you should fully trust to this company and couldn’t trust to the system logs (they could be changed easily with admin privileges on system and vendor knowledge of the system internals).
3. Protect your Business/ Mission critical systems from the evil systems administrators’ activities.
These guys have full knowledge and enough permission to do whatever they want. Sure thing well designed system must send logs to the central log’s storage and you could do investigation based on these logs. But what happened if it’s not enough or some subsystem of the system does not produce logs at all?
In all this case you must have a special designed infrastructure with terminals servers with advanced logging capabilities and give users access to the protected systems only through this terminal servers.
So , below samples of such infrastructures for each case.
1. Legacy system with no logging at all.
Except terminal server in this case sometimes you will need install network sniffer for control data flow within legacy information system (because old switches do not support acl or installing acl on network equipment prohibited by vendor )
2. Business/ Mission critical systems supported on site or remotely by vendor.
3. Protect your Business/ Mission critical systems from the evil systems administrators’ activities.
There are a lot of very expensive commercial terminal server solutions that could record all activities and produce a lot of logs or even be a man of the middle for ssh session. From my point of view one of the best solutions is Shell Control Box from Balabit. But it cost a lot and you should by license per each user ho access to the system and per each server access to whom this device protect.
In this article I gonna propose you alternative solution that will be much much cheaper but have almost the same functionality.
As a terminal server core I use Windows Terminal Server (Windows Server 2003). I chose licensing type – per user, but you could choose whatever you want.
1. Installing Windows Server 2003 and Terminal Server Service
Here there are two options:
- use local authentication for terminal users (for small amount of users )
- join the AD domain and use domain authentication for terminal users (for big amount users). If your company do not use AD, but you need to manage a lot users, especially on a multiply terminals servers you could install special AD Domain controller for this purpose.
2. Hardening terminal server.
First of all install Microsoft Windows Server 2003 Security Guide Tools and Templates (download it from Microsoft site) and configure your server as a Specialized Security - Limited Functionality server.
Then turn off or uninstall all unused services and windows components.
Modify the group policy and the registry to prohibit users to mount disk, copy clipboard, redirect ports and etc through RDP.
Do not forget do disable windows admin shares!
3. Set up a file share for users file transfer.
Very often users should have possibility to copy files to or from protected servers. We cannot allow users to use for this purpose RDP drive mounting for a lot of security reasons. The best way is to setup dedicated file share for such purpose. So, how user will transfer file to the protected area?
First of all user copy file to the terminal server file share. After that, he logon to the protected area through terminal server and copy file from terminal server to the protected server. So, he uses the terminal server as temporary transfer storage.
For you , as a security guy, it give possibility to copy this files for further analysis, scan it by anti-virus, log file transfer event, etc.
So, what should you do for this:
- Create a file share on separate disk.
- Turn on disk quotas.
- Modify folder and subfolder permissions for allowing only to file owner view o modify own files and folders. (It will protect information of one user from others during file transfer through terminal server)
5. Install a Screen Anytime software.
It cost about 1K$ per terminal server without session limitation. This really amazing soft could capture the user’s terminal session and store it as a high compressed video file. More over this software provide you session player and records management tools.
Configure Screen Anytime software for recording all session in shadow mode (hide it from users). If you have centralized log storage you can configure this software to send captured session video files to this log storage from all your terminals servers.
6. Change default shell to mstsc.exe instead of explorer.
Changing shell you prevent users from access data and software stored on terminal server. So, users can only go through this terminal server without possibilities to do something on the terminals server.
So, using mstsc ( RDP client) you can easily manage only windows servers.
But what happens if you would like to control access to the unix based systems? No problem! Create custom shell based on ssh client like Putty or even write small shall and include in it RDP, ssh, sql or other clients that you need. I strongly recommend you to check and modify these clients for preventing user access to terminal server file system. For example in my terminal server I using modified Putty with record session option and without any possibility to change it. So, I get two logs in one time: video from Screen Anytime and commands log in text from Putty.
7. Create a custom startup script to start Screen Anytime video capture on user log on.
Normally Screen Anytime does it for you. But, when you change this default shell you must take care of starting screen capturing.
8. Configure and startup a firewall.
Transit terminal server infrastructure
Sometimes you would like to allow users to install some software on terminal server or you cannot modify some client software to securely install it on terminal server. I recommend you to create a chain of terminal servers. First terminal server will have mstsc ( RDP client) as a shell and work as a transit terminal server with one purpose – record users activity. First server will only allow user to get to second terminal server. On this terminal server users will have all their software installed or even be administrators!
This scheme works amazing especially in case number 2 - giving ability to vendor easily remotely support your business critical systems.
Last tip: Use virtual infrastructure for these terminal servers! It really simplify your life.
That’s all folks!