Saturday, March 27, 2010

Security configuration guides

When auditors visit your company for checking overall information security level they usually shower you with questions about vulnerability and patch management process. And if you haven't one of these processes well established - I'm dead sure you will get serious deficiency in the audit results.
But what about system hardening process ( it could part of configuration management ) - do you have such process established? Do yo have security configuration standards for all yours OS, DB and application well developed and updated? If you will start doing this from a scratch you gonna waste hell of a lot time. To save your time I propose you list of links to the well known library of security configuration guides:
  1. USA National Security Agency (NSA) - Security Configuration Guides
  2. USA National Institute of Standards and Technology (NIST) - National Checklist Program Repository
  3. USA Defense Information System Agency (DISA) - Security Technical Implementation Guides (STIGS)
  4. Community: the Center of Internet Security (CIS) - CIS Benchmarks
Sure thing you can find a lot of such guides on vendors websites:
  1. Apple Mac OS X Security Configuration Guide
  2. Microsoft Security Configuration Guides and Wizards
  3. Apache community Security Tips
  4. Cisco IOS Security Configuration Guide
  5. Debian Linux Securing Debian Manual
Automated Hardening Tools:
So, use it and stay secured!

PS. If you got more links and guides , pls add it in comments.

I do it myself:
Old one general Unix security checklist

Saturday, March 13, 2010

Using Google Alert for information security

So, we have spent hell of a lot of time and money installing different systems but how we can be sure that everything done good? Once in the morning you can find out that top today news is: your company has been hacked! I think, you must get worst news first. For this purpose you can write own web robot but from my point of view the simplest way is google alert service. How we can use it?
Create a search pattern like " my_company_name hacked OR compromised OR defaced " change option How often to as-it-happens, provide email and vuala - once google find something it gonna inform you.
More over you can use google alert service for checking your company web-resources for occasional leakage of confidential information. For this purpose create pattern like "site:my_company_web_site.com confidential OR secret OR internal use" or special pattern for documents that should not be published "site:my_company_web_site.com confidential filetype:doc OR filetype:cad". So, google will monitor your web sites instead of you and notify you.
Sure thing you can combine both methods for control of private data leakage over the internet, finding negative information about your company, advertisement about selling your protected data, etc.
Keep informed! :-)

Sunday, February 28, 2010

Vulnerabilities scanners architecture in big enterprise

Let's talk about vulnerabilities scanners within corporate security infrastructure. Everybody knows that vulnerability identification is one of the major component of security risk management process. So we must be sure that information about vulnerabilities is correct and up to date .
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.

Tuesday, February 2, 2010

security asceticism-start browser from diff user

A lot of information security guys use windows. Sure thing -We Are All Sinners!
All of us know that they must work under limited account on windows - but usually we work with admin privileges. Yes it insecure, but everybody does it! So, how you can reduce the risk staying working under admin account?
Just start your web browser from account with limited privileges and access rights.
1. Create a user with such limited rights. (I've called him- browser)
2. Create a desktop shortcut with this command:

%windir%\System32\runas.exe /savecred /user:browser "C:\ProgramFiles\Mozilla Firefox\firefox.exe"

Thats all folks. If your browser will be penetrated , attacker gets only limited rights on your system.


Thursday, January 21, 2010

Terminal server with advanced logging capabilities.

How we (Information security guys) get the information about user activities within information system? Sure thing – from the logs, produced by this system. But what could we do if some business critical system do not produce such logs or we cannot trust them? It could be in cases below:

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.
Registering Windows Terminal Server and installing CAL licenses. (On domain controller for multiply terminal servers within domain)

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)
4. Install Antivirus software and configure it to scan files in shared folder.

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!

Sunday, November 1, 2009

Проблемы обеспечения ИТ безопасности.


Данная статья несколько отличается от обычного круга материалов посвященных информационной безопасности.
Здесь не будет рассказа о новых продуктах уважаемых вендоров, красочных описаний внедрений новых систем и хвалебных отзывах о них. Эта статья не о новых угрозах и способах борьбы с ними. Эта статья о том , обычно остается за кадром и чем мало кто рассказывает. Она начинается там где остальные рассказчики заканчивают. Если бы мы говорили о сказке то можно было бы сказать, что я расскажу вам о том что происходит в сказке после фразы «и жили они долго и счастливо».
Итак, рассказ будет посвящен жизни систем и решений обеспечения ИТ безопасности после их внедрения и тем выводам и рекомендациям на которые эта жизнь наводит.
А жизнь это как раз обеспечение той ИТ безопасности ,о которой так много говорят, этими самыми системами , которых так много продают.

Колесо стандарта.
Начнем с самого начала - со стандарта ISO 27001, который нам диктует, как надо управлять информационной безопасностью.
В данном стандарте существует модель PDCA, описывающая этот процесс.

В самой логике модели заложено, то что это «колесо» должно вертеться, совершая оборот за оборотом, приводя к переоценке рисков после каждого внедрения компенсирующих мероприятий (а проще говоря технических средств и мероприятий для обеспечения безопасности ).
К сожалению, в реальной жизни, «колесо» получается несколько квадратным – совершит один два оборота и замирает. Компания считает себя полностью защищенной, почивает на лаврах собственной значимости и уверенности во внедренных решениях.
Хотя, именно постоянная эксплуатация систем обеспечения ИТ безопасности и постоянный мониторинг, позволяют точно проводить оценку рисков и правильно внедрять компенсирующие мероприятия, т.е. эффективно обеспечивать информационную безопасность компании..
В целом, эффективное обеспечение безопасности подразумевает наличие каких-то параметров эффективности. В данной статье мерой эффективности будут скорость и величина снижения рисков, а также финансы, затраченные на безопасность.
И если с рисками все понятно, то расходы на безопасность стоит рассмотреть подробнее
Расходы на безопасность.
Итак, расходы на обеспечение ИТ безопасности компании складываться из двух основных компонентов: первоначальных инвестиций в покупку системы и последующих затрат на поддержку и сопровождение. По первичным затратам более менее ясно. Компания идет на них с пониманием и с оценкой их необходимости, но вот расходы на дальнейшую поддержку трудно предсказать, а тем временем их стоимость порой может превышать стоимость самого внедрения.
Во сколько же обходится обеспечение ИТ безопасности средней компании?
60 - 80 тыс USD ежегодно.
В эту сумму входит примерно: 10 сенсоров системы обнаружения/предотвращения вторжений IPS/IDS, пара-тройка сканеров безопасности на 500 IP и одна система SIM. Не так уж много и далеко не все что находится в хозяйстве рачительного безопасника.
Стоит ли безопасность этих денег? Конечно – Да. Это бесспорно, безоговорочно и обжалованию не подлежит!
Но никто не мешает нам оптимизировать эти расходы исходя из практического опыта обеспечения безопасности. Кроме того, мы попробуем решить вопрос по оптимизации и другой статьи затрат – затрат на внедрения новых систем.
Итак, стандарт рассмотрели, меры оценки эффективности выбрали, целями оптимизации задались
Разнообразие систем обеспечения безопасности и моновендороность
Давайте рассмотрим, о каких системах обеспечения безопасности идет речь, дабы понять масштаб вопроса.
На данный момент системы обеспечения информационной безопасности обычно относят к одной или нескольким следующим категориям:
  • Защита периметра (Firewalls).
  • Системы обнаружения/предотвращения вторжений (IDS/IPS) как на уровне сети (LAN , WIFI), так и серверов (HIPS).
  • Прокси и реверс — прокси.
  • Системы контент — фильтрации.
  • Система управления обновлениями рабочих станций и серверов.
  • Антивирусная защита рабочих станций и серверов.
  • Web- антивирус и почтовые антивирусы.
  • Обеспечение безопасного удаленного доступа (IPsec and SSL vpn’s).
  • Защита web приложений (WAF).
  • Аутентификация, авторизация и учет (AAA).
  • Резервное копирование и восстановление.
  • PKI инфраструктура.
  • Системы шифрования и обеспечения целостности.
  • Система сбора и анализа событий безопасности (SIM).
  • Сканеры уязвимостей (как внутри корпоративной сети, так и ее периметра).
  • Системы IDM (Identity Management).
  • Системы SSO (Single Sign On).
  • Системы RMS (Rights Management System).
  • Системы защиты от утечек информации (DLP).
  • Системы управления всем этим хозяйством включая системы корреляции.
Список приличный, не так ли? Как вы понимаете, об этом задумались не только мы, но и вендоры, что привело к первому важному вопросу нашей статьи: Моно или мульти вендорность?
Итак, рассмотрим все плюсы и минусы моновендорности.
Итак, первый оборот колеса безопасности- внедрение новых систем. Давайте взглянем на это с точки зрения указанных выше мер эффективности обеспечения безопасности. Для начала определим тройку, на мой взгляд, основных подходов к построению систем обеспечения ИТ безопасности.
  1. Внедрение сложных многокомпонентных систем с самого начала (построение безопасности с 0 при достаточном финансировании)
  2. Эволюционный подход: замена существующих систем ИТ безопасности мощным интегрированным решением Enterprise level
  3. Эволюционный подход с сохранением устаревших систем после внедрения новой и последующей их совместной эксплуатацией
Внедрение сложных многокомпонентных систем с самого начала
Достаточно популярный подход, который опирается на устоявшиеся мнения:
  • Зачем разводить зоопарк разных систем
  • Лучше купить сразу правильное Enterprise решение
  • Несерьезно для такой солидной компании как наша заниматься внедрением простеньких систем, у нас же есть хороший бюджет на безопасность (Этот аргумент уже не столь часто звучит в новых экономических реалиях)
Исходя из данных мнений плюсы такого подхода, а также его простота очевидны.
А вот, те потенциальные проблемы, которые за этим скрываются:
  • Невозможность правильной формулировки требований ввиду отсутствия опыта эксплуатации систем в существующей инфраструктуре компании и ее бизнес процессах.
  • Возложение ответственности на вендора , интегратора или консультанта за выбор системы и ее конфигурацию (которые де факто по букве контракта ее не несут)
  • Завышенные представления о системе
  • Потеря времени при внедрении систем безопасности и во время опытной эксплуатации, которые не учтены в предложениях по интеграции
  • Отсутствие учета будущих угроз при формировании требований к будущей системе обеспечения ИТ безопасности.
Ну а теперь вместо слов, применим нашу меру эффективности – снижение рисков:
Как видно из графика перед началом реализации некоего проекта была проведена оценка рисков и принято решение минимизировать риск, оцененный значением 30. А далее идут стандартные вехи многих проектов: принятие решения, подписание контракта по результатам тендера, начало внедрения, опытная и, наконец, продуктивная эксплуатация.
Как видно из графика, риски начинают значительно компенсироваться только после окончания опытной эксплуатации. А ведь только тендерная процедура, не говоря уже о внедрении и опытной эксплуатации, занимает более месяца, а то и двух. И все это время риски не только не минимизируются, но и растут с изменением характера угроз, появления новых, на минимизацию которых решение изначально не рассчитывалось.
Эволюционные подходы.
Теперь рассмотрим два других подхода, по сути являющиеся вариациями эволюционной модели с небольшими отличиями в финальной фазе реализации.
Что, собственно, дает эволюционный подход и что это такое применительно к системам обеспечения безопасности ? В первую очередь, это накопление опыта эксплуатации систем в конкретной компании и в конкретных бизнес процессах .
Это идеальный путь выработки требований к сложным системам.
Основные плюсы эволюционного подхода развития систем безопасности в компании :
  • Снижение рисков безопасности с первой минуты (ввиду использования простых решений , не требующих сложной интеграции)
  • Переоценка требований к системе и ее возможностей.
  • Выявление ошибочных решений при небольших вложениях
  • Накопление опыта эксплуатации данной системы безопасности
  • Обучение персонала
В обоих подходах общие достоинства и недостатки за исключением одного показателя – общей надежности систем обеспечения безопасности компании
Ну и наш график эффективности:

Легенда графика говорит об open-source решениях, но это скорее пример, так как в качестве простого решения обеспечения безопасности может, и часто выступает, просто недорогое решение.
Основное отличие данного графика от предыдущего, именно в предварительной и частичной минимизации рисков простой системой с последующей ее заменой Enterprise решением. Более того, после запуска основного (Enterprise) решения в продуктивную эксплуатацию для минимизации изменившихся, за время внедрения, рисков можно и нужно начинать внедрение новой системы снижающей возросшие риски.
Обучение персонала.
Ест один маленький момент, который я намеренно не раскрывал во всех трех подходах, но который очень важен для их финансовой эффективности. Это вопрос - обучение персонала.
Сложившаяся на данный момент практика обучения персонала после выполнения подрядчиком всех работ по установке и интеграции решения, на мой взгляд, требует переворота вверх тормашками. А именно, обучения персонала до начала всех работ и возможно даже до начала тендерной процедуры.
Это снимет следующие потенциальные проблемы
  • Проблема того, что персонал, которому предстоит работать с будущей системой, узнает о ее маленьких нюансах после установки
  • Неполная занятость и понимание персонала во время интеграционных работ (полностью полагаются на поставщика ) + рост дополнительных расходов на консультантов (а их время ой как дорого)
  • невозможность точной формулировки требований к системе и завышенные (или заниженные) представления о ней (а это частая ошибка еще на этапе тендера)
  • плохо учтены особенности эксплуатации системы
Итак ,система установлена и работает. Все обучены, деньги на интеграции сэкономлены , риски снижены – эффективность просто потрясающая … казалось бы все. А вот как часто мы задумываемся о надежности?
Надежность систем обеспечения безопасности
Одной из задач информационной безопасности как раз и является контроль надежности информационных систем компании – ответит мне подкованный читатель, - тут и BCP (Business Continuity Plan) и учения по восстановлению после сбоя.
Да это все так, но вот какова надежность самих систем обеспечения безопасности?
Некоторые постулаты ясны изначально:
  • Вероятность выхода из строя систем безопасности зависит от их сложности
  • Системы безопасности обязаны быть надежнее классических ИТ систем и ,соответственно , кроме стандартных мер обеспечения надежности нужно применять нестандартные.
Понимание других проблем приходит из опыта эксплуатации:
  • Проблемы, связанные с закрытостью и нетривиальностью систем безопасности.
  • Недостаточная проработка решения с точки зрения эксплуатации (особенно характерно для аплайнсов, для которых часто используется дешевая аппаратная платформа с отсутствием возможности быстрой ее замены в случае выхода из строя).
  • Проблемы, связанные с недостаточной безопасностью самих систем безопасности.
  • Системы резервного копирования не предусмотрены, либо их возможности сильно ограничены.
  • Отсутствие самодиагностики для некоторых важных компонентов систем обеспечения ИТ безопасности.
    Поскольку статья-то практическая, я не могу обойтись без примеров:
    • Системы IDS - не все из них способны понять что SPAN- сессия разобрана
    • Некоторые SIM не поднимают тревогу, что система не шлет события
    • Системы сканирования могут отказывать после очередного обновления и требовать для установки XP c 1 SP
    • Встроенные в системы управления средства резервного копирования не заслуживают никакой критики (нет резервирования системных таблиц БД)
    • Громоздкость сканеров уязвимостей и их сложность. Отсутствие встроенных функций калибровки сканеров уязвимости путем сканирование системы с заранее известными брешами в безопасности.
Как мы можем практически улучшить показатели надежности систем обеспечения безопасности?
Использованием простых однокомпонентных и устаревших систем, как дополнительное средство обеспечения надежности. Как видно из графика, в случае выхода из строя основной системы обеспечения безопасности, риски безопасности по-прежнему будут скомпенсированы устаревшей системой. Более того, если основная система будет восстановлена максимально быстро, устаревшая система скомпенсирует риски безопасности в полном объеме и падения общего уровня защищенности информации компании не произойдет.
Ну что ж, мы правильно внедрили высоконадежные решения безопасности. Учли все факторы и т.д., и т.п.
И наконец-то у нас долгожданное спокойствие?
Не тут то было. Наша компания, как положено для средней - крупной корпорации продолжает развиваться и … возникает необходимость внедрить новую ИТ систему.
Внедрение новых ИТ систем и безопасность.
А это влечет за собой как интеграцию новой системы в корпоративную среду с переоценкой рисков безопасности, так и выполнения данных работ внешним поставщиками с доступом к вашей инфраструктуре и, наконец, удаленная поддержка данной системы поставщиком
В быстро растущей компании этот процесс происходит непрерывно и нам надо преодолевать возникающие сложности. И какие же практические решения возникших сложностей?
  • Необходимо разработать детальные требования ИТ безопасности для новых систем и вносить его как приложения к контракту на поставку решения и интеграцию
  • Обязательно проводить аудит безопасности решения перед передачей его в коммерческую эксплуатацию
  • Неприменимость рассмотрения поставляемой систему во время аудита как BlackBox - это ведет к неминуемому снижению уровня информационной безопасности компании в целом.
Будем честны до конца, вот какие потенциальные проблемы у вас возникнут при применении вышеуказанных рекомендаций:

  • Нежелание поставщиков предоставлять информацию о внутренностях системы (а чаще и не знания ими этого)
  • Ориентация поставщика на функциональный результат без учета требований безопасности
  • Приготовьтесь к срыву сроков проекта

Итак, система внедрена, проверена и тут возникает необходимость ее удаленной поддержки.
Существующая практика – осуществление поддержки продуктивных систем компании поставщиками.
Достаточно серьезной проблемой безопасности в данном случае являться как само предоставление удаленного доступа к продуктивному оборудованию, так и контроль действий поставщика в момент проведения работ.
Классическое на данный момент решение VPN on demand с одновременной активацией аккаунта поддержки на обслуживаемой системе не позволяет на 100% контролировать действия поддержки и проводить разбирательства в случае аварии на продуктивной системе.
Рекомендуемое и уже используемое решение – это терминальный сервер с расширенными функциями мониторинга и логирования протоколов удаленного управления (RDP, SSH, X-Window). На данный момент существуют какEnterprise решения, так и возможность реализовать подобное решение на недорогих компонентах для применения его в достаточно крупных компаниях.
Ключевой фактор успеха в таком нелегком деле как обеспечение информационной безопасности это конечно люди.
Профессионализм сотрудников
Ключевой фактор успеха в таком нелегком деле как обеспечение информационной безопасности это конечно люди.
Как же обеспечить высокий уровень квалификации персонала, слаженность их действий и постоянный уровень готовности?
На мой взгляд, ответом на этот вопрос, будет требование того, чтобы группа, отвечающая за информационную безопасность, осуществляла эксплуатацию как можно большего количества систем обеспечения безопасности. Это позволит сотрудникам группы досконально знать все уровни защищаемых информационных систем, поддерживать технические навыки и знания в актуальном состоянии и, самое главное, давать выполнимые рекомендации.
Итог
Казалось бы, рекомендации, рассмотренные в данной статье, идут в разрез со всем тем, что предлагают вендоры на рынке и направлением движения рынка. Ведь последние слово индустрии это - Security as a Service, предоставляемыми лидерами отрасли. При помощи данного сервиса крупные вендоры готовы за вас развивать инфраструктуру, анализировать уязвимости, эксплуатировать ваши системы безопасности и даже расследовать инциденты. Да все это так. Но когда стоимость высококлассных специалистов родной страны опускается до стоимости технической поддержки из Индии, когда годовая стоимость поддержки простых систем безопасности у вендора стоит больше чем само решение, я думаю самое время пересмотреть сложившиеся тенденции.

Sunday, October 18, 2009

Security requirements for new Information systems

Any company that taking care about information security should have a some security requirements or standard.
Usually it's huge and very formal document created for using within the company. It's OK.
But, what's happens when some new information system (product, solution ) have purchased from foreign supplier and going to integration with your corporate environment? Sure thing this new system must pass your security audit. Lucky you if everything ok. But what could you do if not? Even if couple of words about security exist inside contract or agreement with supplier you will spent a lot of time pushing him to close security holes and slow down whole integration and whole project.
From my point of view the best way to save your time and money is to create short and concrete document calling "Security requirement for new IS " and make whole this document a part of agreement with supplier.
Sample of this document you can find below :

General IS Security Requirements
1.Information systems (IS) should be installed with maximum possible level of security (“hardened” mode)
2.All unused or service accounts (including OS/application standard ones) should be disabled or deactivated
3.On IS must be started only those services and applications which are required for functioning of this IS or Company’s business-processes
4.Unauthorised installation and initiation of services which provide functioning of the data transmission network (i.e. DHCP, DNS, all type of PROXY, NTP, SMTP relay, Gating/Routing, LPD, VPN, etc) are strictly forbidden
5.All integrated IS should pass an obligatory technical audit in Infosec group, considering such phases:
System architecture concordance on the phase of supplier's choice or technical decision
Audit of technical document on the chosen decision or system
IT audit prior to putting IS into operation in accordance with Company’s statutory acts
6.After making considerable alterations to the system (equipment, OS or application upgrades) it obligatory to conduct technical audit like in p.5
7.Test and development systems/instances should not contain any confidential information, either contain it in coded, incomplete and/or distorted way

Privileged access requirements
1.Remote privileged user authentication should be forbidden everywhere where it is technically feasibly
2.Remote privileged access is allowed only in case of production necessity, considerable reasons and only with the use of secure protocols (ssh, sftp/scp, SecureVNC, etc)
3.All actions, which do not require privileged rights for its execution should be made on behalf of less privileged accounts

Audit requirements
1.All implementing IS should synchronize system time with the specially selected NTP-server, which is a part of network infrastructure
2.Logging should be switched on. If it is possible, log files should be stored in encrypted way at least three months locally, whereupon must be copied and kept remotely, at least, three years in specially designed system
3.Log files should contain at least the following information:
-Successful or unsuccessful registration attempts in the system
-Name of the executed operation
-Object of the operation
-User login
-Result of operation
-Date and time of the event
-All privileged users’ actions (at least system and administrative accounts)


Updates and antivirus software requirements
1.Security updates should be installed as soon as they become available. If its possible, such updates should be tested on test IS prior to installation
2.In case of unstable work of updates, supplier or company, carrying out IS support, owes in strictly stipulated in Agreement on support terms (but less than in seven days) to propose and implement alternative decision of the security issue
3.For IS based on Windows OS it is obligatory to use anti-virus software with the regular automatically bases updates
4.Operating systems and application software should be of the latest stable release or updated to those versions which provide maximal level of protection (absence of known vulnerabilities, described in different security bulletins, bugtracks)


Password and authentication requirements
1.Implementing IS should provide the obligatory authentication mechanism for users. Use of the systems which do not support this mechanism is forbidden
2.IS should not give out any information about system type and version or any prompts or “system banners” prior to successful completion of authentication procedures
3.Verification of input information (login, password) is carried out only after its complete input. In case of an error, the system must not specify, whether user name or password entered incorrectly. Password should not be displayed while being entered
4.Logical access to IS resources should be granted only after the successful user identification and authentication
5.It is forbidden to save password undisguised in IS, executable files, scripts, databases, on servers, etc.
6.Password storage and transmission between client and authentication server should be carried out in protected by cryptographic algorithms way or with the use of protected communication channels
7.Created or acquired IS should comply the following requirements:
To grant users an opportunity to choose their password independently (letter-digital combinations) and change it at any time
To control changing of the primary password set by administrator during first logon to the system and checks up its quality in compliance with certain requirements (length, structure requirements - small or capital letters, digits, non-trivial password, etc)
To provide forced changing of password through the preliminary set interval of time
To have an opportunity to notify users in advance about the necessity of password changing (by means of reports/prompts or emails)
If user password was not changed until the date, set in advance, the system should have an opportunity to block user account
Provides storage for user's password history, at least, for the last 12 months for prevention of repeated use
To have an opportunity to set amount of unsuccessful login attempts, whereupon user account should be blocked for certain period
To have an opportunity to predefine user session duration, whereupon it should be interrupted
8.Password file or database owe kept separately from application programs using cryptographic methods. Only proof algorithms should be used


Data storing and exchange requirements
External systems
1.Any confidential data exchange process through external channels should be carried out with the use of encrypted data channel, with the use of one of the following protocols:
HTTPS with key not less than 128 bit
SFTP
S/MIME with the use of PGP
Х25 data exchange channel or VPN
2.Remote software support can be carried out by suppliers only with the use of VPN
3.Whether it is impossibility to use transmission methods, described in p.6.1, any confidential or sensitive information should be encrypted with the use of proof cryptographic algorithms
4.If IS requires an access to the Company systems or databases, located in Company's intranet, these IS must consist at least of two servers (WEB/Gateway server/Reverse proxy and Application Server) for placing them in DMZ or Application Zone. It is also necessary that exchange by information between these servers was in encrypted
5.If IS supposed to work with customer individual information (mail for subscribers, state of accounts, baskets of electronic shops, etc) then encrypted protocols should be used (https, iiop/ssl)

DMZ
6.IS, located in DMZ, must not contain any confidential information in order to avoid its loss as a result of hack attacks from public networks
7.IS which is assumed to place in DMZ should be built exceptionally on products and operating systems, satisfying all security requirements and having good producer's support
8.Setting up of the servers, operating under OS Microsoft in DMZ is forbidden, except for the cases when supplier guarantees compensation of all direct and indirect damages in case of system compromising

Company’s network
9.Only secure protocols of interaction between servers and information systems should be used, if it is possible


Service Level Agreements
1.In case of finding out critical OS/application vulnerabilities, IS supplier owe if it is possible to undertake certain actions on the removal of these vulnerabilities (development or installing of patches/updates) within the time described in SLA, but noе more than 7 days from the moment of vulnerability detection/proper patch release