LINUX.ORG.RU
ФорумTalks

Запрет на использование динамических языков в секретных проектах

 , ,


1

3

Нашел такой вопрос на SE: Why does the US government disallow dynamic languages for secure projects?

I know some people that are currently working on a project for the US military (low security level, non-combat human resources type data).

An initial state of the project code was submitted to the military for review, and they ran the program through some sort of security analyzer tool. It returned a report of known security issues in the code and required changes that needed to be implemented before delivery of the final product.

One of the items that needed to be resolved was removal of part of the project that was written in Ruby as it is a dynamic language.

What is the background/reason for not allowing a dynamic language to be used in a secure setting? Is this the government being slow to adopt new technologies? Or do dynamic languages pose an additional security risk compared to static languages (ala C++ or Java)?

Кто-нибудь встречался с/читал о том, что в госпрограммах нельзя использовать какие-то конкретные языки или технологии?

update:

Интересны не случаи написания сайтов для минобороны, а что-то прикладное в стиле «все что связано с баллистическими ракетами можно писать только на Фортране с такими-то библиотеками таких-то версий».

★★★★

Последнее исправление: aidan (всего исправлений: 1)

Госзаказ госзаказу рознь.
Можно сайт для службы делать, а можно ракетные комплексы прогать.
За последнее - там куча гостов.

Spirit_of_Stallman ★★★
()

Кто-нибудь встречался с/читал о том, что в госпрограммах нельзя использовать какие-то конкретные языки или технологии?

Требования к языку программирования и стилю, это достаточно обычная вещь для «серьёзных» проектов, нет?

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

Из недавнего, тот же Curiosity запрограммирован на, емнип, подмножестве Си.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

Требования к языку программирования и стилю, это достаточно обычная вещь для «серьёзных» проектов, нет?

Ну так мне и интересны примеры таких требований для госпроектов.

aidan ★★★★
() автор топика

Может смущать, например, размер рантайма. Или, может быть, там просто скрипт с открытым наружу кодом.

cdshines ★★★★★
()

Знаю только про фортран vs NASA.

outtaspace ★★★
()
Ответ на: <fat> от Deleted

Синтаксис в динамических языках обычно на этапе компиляции всегда проверяется.

provaton ★★★★★
()

хаха! Значит COMMOH LNCP это ещё и самый демократичный язык в мире

Bad_ptr ★★★★★
()

На лоре не так давно проскальзывало мнение экспертов, что бинарники, скомпиленные из ООП-языков, не удовлетворяют каким-то ГОСТам безопасности выше какого-то уровня, например.

spyro
()

То что связано с баллистическими ракетами можно писать только на ассемблере, форте, фортране, с и плюсах. По очевидным причинам.

next_time ★★★★★
()

А я думал, у них там уже давно ada во все поля.

jeuta ★★★★
()

Когда-то устраивался на работу в одну контору, там сказали, что часть кода, отвечающая за авторизацию пользователей у них написана на Java (при том, что весь проект на PHP) по требованию сертифицирующих органов. Именно из-за того, что PHP — интерпретируемый язык. Уж не знаю, насколько это не бред.

Dobriy_i_Prostoy
()

Правильно.

Для надежных проектов нужен язык, поддерживающий одну парадигму и типизацию:

1) строгую;

2) статическую;

3) безопасную;

4) именованную;

5) явную.

А малолетние кульхацкеры-нищеброды могут много и долго умничать на собеседованиях.

Bioreactor ★★★★★
()

дык прикинь пулемёт с утиной типизацией, ты крякнешь, а он тебя подстрелит :)

Слишком много степеней свободы, военам это не нужно. Чем поведение ПО проще, тем лучше.

drBatty ★★
()

«все что связано с баллистическими ракетами можно писать только на Фортране с такими-то библиотеками таких-то версий».

ты хотел сказать на Ada?

exception13 ★★★★★
()
Ответ на: комментарий от gh0stwizard

Видимо касается проблемы переполнения памяти. И я с этим согласен на 100%.

проблема не с переполнением а с безопасностью и верификацией кода на этапе разработки/трансляции.

exception13 ★★★★★
()
Ответ на: комментарий от provaton

Синтаксис в динамических языках обычно на этапе компиляции всегда проверяется.

он в _любых_ ЯП проверяется. Разница в том, что код на сишечке у тебя скорее всего не соберётся, а вот код на php заработает. Но потом рухнет, или, что ещё хуже, будет работать непредсказуемо. Конечно такой быдлокод возможен и в сишечке, но он хорошо известен и программистам и компилятору.

drBatty ★★
()
Ответ на: комментарий от Dobriy_i_Prostoy

Именно из-за того, что PHP — интерпретируемый язык. Уж не знаю, насколько это не бред.

требования исходят из возможности легко и непринужденно модифицировать код в plain text. вот если бы использовали трансляцию из PHP в какой нить байткод то обошлись бы и без жабы.

exception13 ★★★★★
()
Ответ на: комментарий от exception13

проблема не с переполнением а с безопасностью и верификацией кода

В проекте, в котором мне довелось участвовать, код необходимо было не верифицировать, а доказывать.

baka-kun ★★★★★
()
Ответ на: комментарий от exception13

требования исходят из возможности легко и непринужденно модифицировать код в plain text. вот если бы использовали трансляцию из PHP в какой нить байткод то обошлись бы и без жабы.

В упор не понимаю, как это влияет на безопасность. Если можно модифицировать код PHP, точно также можно модифицировать и байт код. Это конечно чуть сложнее, но принципиально ничего не меняет.

Dobriy_i_Prostoy
()
Ответ на: комментарий от Dobriy_i_Prostoy

В упор не понимаю, как это влияет на безопасность. Если можно модифицировать код PHP, точно также можно модифицировать и байт код. Это конечно чуть сложнее, но принципиально ничего не меняет.

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

exception13 ★★★★★
()
Ответ на: комментарий от exception13

ну требования такие

Я, собственно, пытаюсь понять, это требования маразматические или в этом есть какой-то смысл.

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

Ну а если интерпретатор работает непосредственно с исходниками, ничего этого вообще не нужно, соответственно все становится проще и прозрачнее.

Dobriy_i_Prostoy
()
Ответ на: комментарий от Dobriy_i_Prostoy

Ну а если интерпретатор работает непосредственно с исходниками, ничего этого вообще не нужно, соответственно все становится проще и прозрачнее.

plain text проще модифицировать. в том числе и на лету.

exception13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.