вторник, 11 июня 2013 г.

Browser Security Handbook. Глава 1, пункт 9

Руководство по безопасности браузеров (Browser Security Handbook). Глава 1  
Visual Basic Scripting Edition (VBScript) - язык программирования, интерпретируемый компонентом Windows Script Host. Он широко используется при создании сценариев в операционных системах семейства Microsoft Windows; поддерживается Microsoft Internet Explorer через vbscript: URL-протокол, и через тег <SCRIPT>

VBScript не обладает конкурентным преимуществом в сравнении с технологией JavaScript, а в некоторых областях даже отстает от нее. Предположительно, из-за этого VBScript никогда не имел широкой популярности за пределами браузера IE. Там, где используется VBScript, следует ожидать примерно таких же последствий для безопасности, как и в JavaScript. Однако поверхность атаки и контроль безопасности в VBScript мало изучены по сравнению с альтернативой.


пятница, 7 июня 2013 г.

Новости ИБ за 31 мая – 7 июня 2013 года



Блоги:

Алексей Лукацкий описал проблемы, с которыми могут столкнуться специалисты по информационной безопасности при создании собственной ИБ-компании.

Перечень производителей, которые помогают ВУЗам с образованием по ИБ.

Статьи:
Термин «персональные данные» в разных странах и его отличие от «неперсональных данных».


Документы:
Best Practices for Securing Active Directory техническая документация с рекомендациями по защите Active Directory. Автор: Microsoft.

The NetTraveler Attacks. Part 1 – отчет о кибератаках NetTraveler - вредоносной программы, разработанной для скрытного наблюдения за компьютером (англ.). Автор: Лаборатория Касперского. 

NISTIR 7622 Notional Supply Chain Risk Management Practices for Federal Information Systems - руководство для управления цепочками поставок в системы федерального уровня (англ.). Автор: NIST.

Законодательство:
Приказ ФСТЭК России № 17 от 11 февраля 2013 г. «Об утверждении Требований о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах».

Программное обеспечение:
ModSecurity v2.7.4 - межсетевой экран для web-приложений.

Wireshark v1.10 - анализатор сетевых протоколов.

Ресурсы:

Презентация Алексея Лукацкого с курса по законодательству в области ИБ.

Перевод курса для подготовки к экзамену COMPTIA Security + (SY0-301). Раздел 1. Информационная безопасность. Введение. Перевод: Евгений Бартов, Яна Красовская.

WeCanTrust.Net - площадка для обсуждения вопросов технологии блокирования запрещенного контента и выработки рекомендаций по методам управления доступом в сети Интернет.

понедельник, 3 июня 2013 г.

Browser Security Handbook. Глава 1, пункт 8

Руководство по безопасности браузеров (Browser Security Handbook). Глава 1

8.  Браузерный Javascript 

   JavaScript - относительно простой, но богатый прототипно-ориентированный сценарный язык программирования, тесно интегрированный с HTML и поддерживаемый всеми современными браузерами. Название «JavaScript» - это просто маркетинговый ход, придуманный Netscape и Sun в 90-е годы. Авторы утверждают, что JavaScript берет свое начало от языков программирования Scheme и Self, хотя его часто характеризуют как скрещенный C/C++ и Visual Basic. Помимо схожести с Cи, он перенял некоторые функции языка Java.

   Язык является детищем компании Netscape. Первоначально на рынке он был известен под именем «Mocha», затем «Livescript», и, наконец, «JavaScript»; Microsoft выпустила аналог языка JavaScript, названный JScript. По инициативе компании Netscape была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript и описывается стандартом ECMA-262.

   Браузерный JavaScript может быть вызван из HTML-документов четырьмя основными способами:
1. Автономным тегом <script>, расположенным в блоке кода.
2. Обработчиком событий, привязанным к тегам (например, onmouseover="...").
3. Блоком таблицы стилей expression(...) в некоторых браузерах, которые пропускают JavaScript-синтаксис.
4. Специальными URL-протоколами, указанными в качестве цели для определенных ресурсов или действия (javascript:...) - в HTML и таблицах стилей.

Обратите внимание на то, что первый вариант может не работать, если такая строка к существующему документу добавлена рабочим сценарием не динамически. Однако любой из оставшихся способов может использоваться в качестве альтернативы.

Независимо от их источника (<script src ="...">), удаленные скрипты всегда выполняются в контексте безопасности документа, к которому они прикреплены. JavaScript имеет полный доступ к текущему DOM, а также ограниченный доступ к DOM других окон; это может вызвать новые JavaScript путем вызова eval(), настройки таймера (setTimeout(...) и setInterval(...)), или путем создания JavaScript, используя HTML. JavaScript может также запуститься при взаимодействии его объектов со сторонним JavaScript-кодом сценария, настраивая часы, сеттеры (мутаторы) или геттеры (получатели), или пересекающийся контекст, вызывая функции того же источника, принадлежащие другим документам. 

JavaScript имеет очень ограниченные возможности загрузки и вывода. Существует не так много доступных средств ввода-вывода для взаимодействия с данными документа и графикой CANVASec, отображения всплывающих диалоговых окон и записи консольных ошибок сценария. Операции с файлами и доступ к другому постоянному хранению, как правило, не возможны, несмотря на то, что некоторые экспериментальные функции вводятся и быстро отбраковываются. Сценарии могут отправлять и получать данные с исходного сервера, используя расширение XMLHttpRequest, которое позволяет сценариям передавать и читать произвольные полезные нагрузки; могут также автоматически отправлять запросы и считывать правильно отформатированные ответы на выдачу <script src ="..."> или <link rel ="stylesheet" href="..."> даже между доменами. Наконец, JavaScript может отправлять информацию на сторонние серверы, порождая такие объекты, как <img>, <iframe>, <object>, <applet>, или перенаправлять на другую страницу и одновременно автоматически кодировать информацию в URL, - но сценарий не может читать возвращаемые данные. Некоторые побочные каналы связанны с механизмами кэширования браузера и проверки безопасности DOM обеспечивают дополнительные побочные каналы между взаимодействующими сторонами.

Другими важнейшими характеристиками безопасности среды JavaScript в современных браузерах являются:

- Динамическая интерпретация исполняемого кода без строгих правил кэширования. Любые фрагменты кода, содержащиеся в тегах, будут интерпретированы и исполнены, и JavaScript имеет возможность оценить строки как JavaScript-код (eval (...)), или создать новый HTML, который, в свою очередь, может содержать другие сценарии (свойства .innerHTML и .outerHTML, document.write(), обработчики событий). Поведение кода, которое пытается изменить собственный контейнер во время выполнения (через DOM), определено нечетко и в разных браузерах отличается.

- Несколько противоречивая поддержка исключений. Несмотря на то, что в самом языке, условия для исключений хорошо определены, при взаимодействии с DOM-структурой это не работает. В зависимости от обстоятельств, некоторые операции с DOM могут не выполняться (игнорируется команда редактирования или чтения), возвращаться необычные ответы (undefined, null, object inaccessible), выдаваться нестандартизированные исключения, или даже безоговорочно прерываться выполнение.

- Несколько противоречивые, но модифицируемые встроенные команды и прототипы. Поведение многих языковых конструкций может быть переопределено программами в текущем контексте путем изменения объектов (сеттеров, геттеров) или перезаписью прототипов. Из-за этого рискованно полагаться на какой-либо конкретный код (например, проверку безопасности), выполняющийся предсказуемым способом в непосредственной близости от потенциально вредоносной полезной нагрузки. Однако не все встроенные объекты могут быть легко подделаны, например, Array - прототип сеттеров - может изменяться, но не так как XML. В JavaScript 1.x есть все необходимые для жизни операторы, хотя нет их перегрузки.

- Обычное синхронное выполнение. В пределах одного документа, на стороне браузера JavaScript обычно выполняется синхронно и в едином потоке, и асинхронным событиям таймера не разрешается запускаться до тех пор, пока механизм выполнения сценариев не введет состояние ожидания. Не существует никаких гарантий синхронного выполнения, однако, многопроцессорный рендеринг Chrome и MSIE8 позволяет осуществлять междоменный доступ более асинхронно.

- Глобальные функциональные поиски не зависят от упорядочивания или потока выполнения. Функции могут быть вызваны в блоке кода прежде, чем они будут определены и проиндексированы. Поэтому доверять операторам, таким, как while (1); для предотвращения последующего интерпретированного кода, может быть рискованно.

- Бесконечные циклы, которые завершаются. Когда сценарий выполняется слишком долго, пользователю предлагают прервать выполнение. Это способ защиты заставляет остановить текущее выполнение, но не препятствует его повторному запуску.

- Быстро развивающийся синтаксис. Например, в Firefox расширение языка программирование «ECMAScript for XML (E4X)» добавляет встроенную поддержку XML в JavaScript. Трудно представить, что какой-то формат данных будет не допустим JavaScript-синтаксисом в будущем.


Встроенные в HTML блоки сценария, сложнее удалить, если разрешено содержать управляемые пользователями строки, потому что, такие теги как <TEXTAREA>, <STYLE> и некоторые другие теги, идут за нелогичным анализом CDATA-style: последовательность литерала </SCRIPT> заканчивает блоком сценария независимо от своего расположения в синтаксисе JavaScript. Например, следующий блок кода завершится преждевременно и приведет к несанкционированному, дополнительному выполнению JavaScript-блока:

<SCRIPT>
  var user_string = 'Hello world</SCRIPT><SCRIPT>alert(1)</SCRIPT>';
  </SCRIPT>

Грубо говоря, стандарт HTML4 определяет, что любая </... последовательность, (такая, как <SCRIPT>) может быть использована для высвобождения из блока. На практике, браузеры этому примеру не следуют и взамен требуют строку с литералом </SCRIPT>. Однако, на эту способность полагаться не безопасно. 


Некоторые отличительные особенности браузеров приведены в таблице№10:
Таблица№10
Описание теста
MSIE7
MSIE8
FF3
Safari
Opera
Chrome
Android
Поддерживаются ли в настоящее время сеттеры и геттеры?
НЕТ
НЕТ
ДА
ДА
ДА
ДА
ДА
Возможен ли доступ к прототипам через __proto__?
НЕТ
НЕТ
ДА
ДА
НЕТ
ДА
ДА
Возможен ли псевдоним функции eval()?
ДА
ДА
ЧАСТИЧНО
ДА
ЧАСТИЧНО
ДА
ДА
Поддерживается ли объектами метод watch?
НЕТ
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
Могут ли в настоящем времени исполняемые блоки кода самостоятельно измениться?
только для чтения
только для чтения
НЕТ
НЕТ
ДА
НЕТ
НЕТ
Поддерживается ли E4X-расширение?
НЕТ
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
charset= соблюдается в <SCRIPT SRC="...">?
(Is charset= honored on <SCRIPT SRC="...">?)
ДА
ДА
ДА
ДА
НЕТ
ДА
ДА
Unicode-символы новой строки (U+2028, U+2029) разбивают строки в Javascript?
НЕТ
НЕТ
ДА
ДА
ДА
ДА
ДА

Общая информация: программы на Javascript могут инициировать или перехватывать различные элементы (такие как мышь и клавиатуру) в пределах окна. Это может нарушить работу других механизмов защиты, таких как "защищенное" поле <INPUT TYPE=FILE ...> или HTML-фреймы с другого источника. Во время проектирования этим взаимодействиям было уделено недостаточно внимания, что привело к проблемам реализации в современных браузерах. 

Кодировка символов в Javascript

Для обработки строк, содержащих строковые литералы, такие как </SCRIPT>, ", ', CL или LF и другие непечатаемые символы, JavaScript предлагает пять схем кодирования символов:

1. 8-разрядное восьмеричное числовое представление, содержащее три цифры, дополненное нулем, Си-стиль (C-style) ("test" → "t\145st"),
2. 8-разрядное шестнадцатеричное числовое представление, содержащее две цифры, дополненное нулем, C-style с префиксом \х ("test" → "t\x65st"),
3. 16-разрядное шестнадцатеричное числовое Unicode-представление, содержащее четыре цифры, дополненное нулем, с префиксом \u ("test" → "t\u0065st"),
4. префикс \  перед литералом ("test""t\est"),
5. Специальное сокращенное обозначение Cи-стиля \ для некоторых управляющих символов (таких как \n или \t).

   Четвертая схема является наиболее компактной, хотя и подвержена ошибкам; например, неспособность избежать \ как \\ может привести к строке \" + alert(1);" преобразованной из \\" + alert(1), и будет неправильно интерпретирована; это также частично пересекается с оставшимся \-префиксом выходом из метода, и не совместима с синтаксисом языка C.

   Анализ этих схем универсален для всех браузеров, когда введено меньшее количество цифр, чем требуется: значение интерпретируется правильно, и никакой последующий текст не используется ("\1test" принят, и становится "\001test").

    Кодирование HTML-объектов не имеют особого значения внутри блоков <SCRIPT>.

   Забавно, несмотря на то, что все четыре вышеупомянутых схемы поддерживаются в JavaScript, предлагаемый информационный стандарт для представления объектов JavaScript (JSON) и транспортно-ориентированная схема сериализации для объектов и массивов JavaScript (RFC 4627) технически допускают только \u запись и, по-видимому, произвольное подмножество \ сокращенных кодов управляющего символа (варианты 3 и 5 в списке схем кодирования символов). Поскольку формат JSON является подмножеством синтаксиса языка JavaScript, то он может быть быстро десериализован встроенной функцией eval(). Кроме того, возможна вставка вполне работоспособных JavaScript-функций. Однако, из-за рекомендаций, приведенных в документе RFC, некоторое несвойственное выполнение parseJSON может неправильно обрабатывать обычные \х управляющие символы. Также не определено, по какой схеме будут следовать браузеры. В настоящее время рассмотрены собственные, не исполняющие анализаторы предложенные для повышения производительности и безопасности. 

   В отличие от некоторых реализаций C, в JavaScript отдельные многострочные строковые литералы не разрешены, но отдельный \ в конце строки, может быть использован для разбиения длинных строк. 

пятница, 31 мая 2013 г.

Новости ИБ за 27 – 31 мая 2013 года



Блоги:
Алексей Прозоров сделал подборку дайджестов по информационной безопасности.

Законодательство:
Приказ Федеральной службы по техническому и экспортному контролю (ФСТЭК России) от 3 апреля 2013 г. N 39 г. «О внесении изменения в Административный регламент Федеральной службы по техническому и экспортному контролю по предоставлению государственной услуги по осуществлению (в пределах своей компетенции) нетарифного регулирования внешнеторговой деятельности, в том числе выдаче лицензий на осуществление операций по экспорту и (или) импорту товаров (работ, услуг), информации, результатов интеллектуальной деятельности (прав на них) в случаях, предусмотренных законодательством Российской Федерации, утвержденный приказом ФСТЭК России от 4 мая 2012 г. N 51».

Программное обеспечение:
Nexpose v5.6.6 - сканер уязвимостей.

The Social-Engineer Toolkit (SET) v5.1 – инструмент с открытым исходным кодом для тестирования на проникновение с помощью социальной инженерии.

PenQ v1.0 – браузер для проведения тестирования на проникновения, построенный на базе Mozilla Firefox. Браузер содержит расширения для сбора данных, глубокого поиска, сохранения анонимности, сканирования веб-серверов, фаззинга и т.д.

John The Ripper 1.8.0 - программа, предназначенная для восстановления паролей по их хешам.

Вебинары:
Тема: «Расследование инцидентов утечки информации». Дата: 5 июня 2013. Организаторы: Symantec Vault, MicroOLAP.

Ресурсы:
Видеозапись PHDays III,  а также отзывы и публикации о данном мероприятии.

Книги:
Автор: Ти Джей О'Коннор (TJ O'Connor)
Язык: английский
Год издания: 2012
Описание: В книге представлены скрипты на Python, которые могут быть полезны для автоматизации выполнения различных задач в сфере информационной безопасности.

Авторы: Barry L. Williams
Язык: английский
Год издания: 2013
Описание: Книга представляет собой руководство по разработке политики информационной безопасности организации, которая будет отвечать мировым стандартам и законодательным требованиям в сфере информационной безопасности.



Авторы: А. С. Марков, В. Л. Цирлов, А. В. Барабанов
Язык: русский
Год издания: 2012
Описание: Книга содержит метрики, модели и формальные методики испытаний средств защиты информации и тестирования безопасности программного обеспечения, а также актуальные нормативные и правовые требования по сертификации средств защиты информации.

понедельник, 27 мая 2013 г.

Новости ИБ за 17 – 27 мая 2013 года



Блоги:



Наталья Храмцовская ознакомилась с отчетами Всемирного экономического форума о проблемах, связанных с персональными данными (часть 1, часть 2).

Статьи:
Сравнение функциональных возможностей антивирусов для защиты смартфонов на базе Google Android: AVG Mobilation Anti-Virus Pro, BitDefender Mobile Security, Dr.Web Mobile Security, Kaspersky Mobile Security и Norton Mobile Security.

Иногда возникают ситуации, когда необходимо обновить ОС при отсутствующем интернете. Справиться с данной задачей вам помогут наборы обновлений для Windows XP x86 и Windows 7 x86-x64.

Документы:
ГОСТ Р ИСО/МЭК 19785-4-2012 «Информационные технологии. Биометрия. Единая структура форматов обмена биометрическими данными. Часть 4. Спецификация формата блока защиты информации».

ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».

Законодательство:
Приказ ФСТЭК России №21 от 18 февраля 2013 «Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных». Комментарии от Андрея Прозорова, Александра Бондаренко, Сергея Борисова, Loreweil (Хабрахабр), Евгения Шауро.

Вебинары:
Время: 29 мая 2013 г. в 11:00. Тема: «Практика подготовки коммерческой организации к получению лицензий ФСБ и ФСТЭК». Докладчик: Владимир Кузин, Руководитель отдела аттестации и лицензионной работы компании LETA

Аналитика:
Количество спама в апреле увеличилось на 2,1%.

Мероприятия:
Технический комитет 362 «Информационная безопасность» призывает специалистов по информационной безопасности принять участие в разработке новых российских ГОСТов по защите информации. Замечания и предложения надо дать до 20 июня текущего года.
Ресурсы:
Открытый урок по интернет-безопасности для школьников.

пятница, 17 мая 2013 г.

Новости ИБ за 26 апреля – 17 мая 2013 года



Блоги:
Евгений Касперский порекомендовал пользователям больше не ориентироваться на сертификацию AV-TEST при выборе антивируса для защиты домашних компьютеров.

Андрей Прозоров опубликовал список стандартов, которые полезно знать специалистам по информационной безопасности.

Дмитрий Евтеев рассмотрел три типовых сценария размещения веб-серверов и способы атаки внутренней сети через них.

Сергей Борисов опубликовал набор требований и ограничений, с которыми сталкиваются пользователи по организации и обеспечении функционирования шифровальных (криптографических) средств, в частности, сертифицированного защищенного удаленного доступа (Remote VPN). Часть1, часть2, часть3.

Статьи:
Программно-аппаратные архитектуры параллельных вычислений CUDA и OpenCL, благодаря использованию графических процессоров фирм NVIDIA и ATI соответственно, позволяют существенно ускорить взлом хешей.


Правила по безопасной зарядке смартфона помогут предотвратить утечку данных при зарядке вашего мобильного устройства в неизвестном месте.

Поиск уязвимостей и конфиденциальной информации с помощью технологии Search Engine Hackingператоров поиска Google), а также инструменты для автоматизации этого процесса (англ.). Еще одна похожая статья + советы по сокрытию конфиденциальных данных на интернет-ресурсе (англ.).

«Лаборатория Касперского» опубликовала список альтернативных браузеров, которые не следят за пользователями и нацелены на улучшение их защиты.


Методы сокрытия следов преступления или невозможности их восстановления на магнитных носителях, препятствующие расследованию компьютерных преступлений (цифровой криминалистики) (англ.).

Обзор программ для анализа обфусцированного кода с помощью XOR -шифрования: XORSearch, XORStrings, xorBruteForcer, brutexor и NoMoreXOR (англ).

Крис Андре Солберг Дейл (Chris Andre Solberg Dale) поделился своим опытом работы на должности начальника службы информационной безопасности (CISO) (англ.).


Пост-эксплуатация XSS: продвинутые методы и способы защиты.

Журналы:

Документы: 
Static Analysis Technologies Evaluation Criteria (SATEC) – перечень критериев, который следует учитывать при оценке приложений для статического анализа кода; позволяет выбрать продукт, который наилучшим образом будет соответствовать вашим потребностям. Автор: Web Application Security Consortium.
 
Исследование нового вируса, направленного на атаку клиентов «iBank2». Исполнитель: Трифонов В.А., ведущий специалист по исследованию вредоносного кода Group-IB.

Законодательство:
Приказ Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) от 15 марта 2013 г. N 274 «Об утверждении перечня иностранных государств, не являющихся сторонами Конвенции Совета Европы о защите физических лиц при автоматизированной обработке персональных данных и обеспечивающих адекватную защиту прав субъектов персональных данных».

Федеральный закон Российской Федерации от 7 мая 2013 г. N 99-ФЗ «О внесении изменений в отдельные законодательные акты Российской Федерации в связи с принятием Федерального закона «О ратификации Конвенции Совета Европы о защите физических лиц при автоматизированной обработке персональных данных» и Федерального закона «О персональных данных».

Программное обеспечение:
Kali Linux v1.0.3Linux-дистрибутив для тестирования на проникновение.

Arachni v0.4.2 – сканер безопасности интернет-приложений.

Nexpose v5.5.19 – сканер уязвимостей.

ConpotICS-ловушка (honeypot).

SpiderFoot v2.0 – утилита с открытым исходным кодом для сбора данных.

Oxygen Forensic Suite v5.2 - программа для судебно-технической экспертизы мобильных устройств.

AttackVector Linuxlinux-дистрибутив на базе Kali и TAILS для анонимного тестирования на проникновение.

Cain & Abel v4.9.44 – инструмент для восстановления паролей в среде Windows.

Nessus v5.2.1 – сканер уязвимостей.

PacketFence v4.0.0 - решение с открытым исходным кодом, обеспечивающее контроль доступа в сеть.

Вебинары:
Время: 21 мая в 12:00. Тема: «Как обеспечить качественно новый уровень ИБ-аналитики». Организатор: DLP-Эксперт, компания «Инфосистема Джет».

Ресурсы:

Онлайн словарь терминов по информационной безопасности от «Альянс PRO».


Shadow Tracers Kit - набор инструментов и советов для анонимного пребывания в интернете.