Информация об изменениях

Сообщение И ещё чуть-чуть о [статанализе] JS от 19.04.2017 19:48

Изменено 21.04.2017 17:17 kochetkov.vladimir

И ещё чуть-чуть о JS
Отличная презентация Натали Сильванович из Google P0 о том, как дизайн JS влечёт за собой появление уязвимостей в его выполняющих средах на примере Chakra.

А от себя по поводу JS могу также добавить, что в соседней теме в КСВ, хоть и обломали тьму копий, но почему-то так не вспомнили (вроде) ещё об одном важном свойстве языка: анализируемости написанного на нём кода. В т.ч. анализируемости его безопасности. У динамических языков со статанализом, по понятным причинам, и так всё не вполне здорово. А JS с его системой типов, основанной (фактически) на monkey-patching'е, заставляет срать кирпичаминервно курить всех, кто так или иначе связан с областью статического анализа. Для примера небольшая статистика. В 2014 я и ещё один разработчик за 2 месяца спрототипировали с нуля прототип абстрактного интерпретатора C#. Чуть раньше один разработчик из соседней команды за 3 месяца запилил прототип абстрактного интерпретатора PHP. Два разработчика из ещё одной команды примерно за то же время время осилили прототип интерпретатора Java. Но никто из нас, до сих пор (когда те прототипы уже давно выросли в продукт с двумя мажорными релизами и сотней минорных) не знает, с какой стороны подобраться к прототипированию анализатора JS.

А security-внезапности тестами как бы не покроешь, поэтому хвалёное TDD здесь совершенно импотентно Вот такой "отличный" язык с колокольни нашего брата.

UPD: Ссылка на презу Натали: https://conference.hitb.org/hitbsecconf2017ams/materials/CLOSING%20KEYNOTE%20-%20Natalie%20Silvanovich%20-%20The%20ECMA%20and%20The%20Chakra.pdf
И ещё чуть-чуть о [статанализе] JS
Отличная презентация Натали Сильванович из Google P0 о том, как дизайн JS влечёт за собой появление уязвимостей в его выполняющих средах на примере Chakra.

А от себя по поводу JS могу также добавить, что в соседней теме в КСВ, хоть и обломали тьму копий, но почему-то так не вспомнили (вроде) ещё об одном важном свойстве языка: анализируемости написанного на нём кода. В т.ч. анализируемости его безопасности. У динамических языков со статанализом, по понятным причинам, и так всё не вполне здорово. А JS с его системой типов, основанной (фактически) на monkey-patching'е, заставляет срать кирпичаминервно курить всех, кто так или иначе связан с областью статического анализа. Для примера небольшая статистика. В 2014 я и ещё один разработчик за 2 месяца спрототипировали с нуля прототип абстрактного интерпретатора C#. Чуть раньше один разработчик из соседней команды за 3 месяца запилил прототип абстрактного интерпретатора PHP. Два разработчика из ещё одной команды примерно за то же время время осилили прототип интерпретатора Java. Но никто из нас, до сих пор (когда те прототипы уже давно выросли в продукт с двумя мажорными релизами и сотней минорных) не знает, с какой стороны подобраться к прототипированию анализатора JS.

А security-внезапности тестами как бы не покроешь, поэтому хвалёное TDD здесь совершенно импотентно Вот такой "отличный" язык с колокольни нашего брата.

UPD: Ссылка на презу Натали: https://conference.hitb.org/hitbsecconf2017ams/materials/CLOSING%20KEYNOTE%20-%20Natalie%20Silvanovich%20-%20The%20ECMA%20and%20The%20Chakra.pdf