Ещё одна популярная тема для обсуждений в цифровом сообществе – тема открытых и закрытых исходных кодов. Принято мнение, что открытый в разы безопаснее, нежели закрытый. Но так ли это? Давайте разбираться!
Разберём доводы «опенсорсников». Их всего два, главный – «исходный код может проинспектировать любой человек, поэтому безопасность таких приложений выше». Вроде бы звучит разумно, но много ли у нас людей, реально разбирающихся в информационных технологиях, чтобы провести аудит? Нет. К тому же, если код открыт, то он открыт для всех желающих, в том числе и хакеров. Несравненно проще писать малварь (вредоносное ПО) под софтину, код которой можешь исследовать от и до. Если в случае с закрытым кодом, необходимо делать реверс-инжиниринг, собирать программу по крупицам, то с открытым кодом всё открыто, делай не хочу. Спасает то, что реальных специалистов в этих вопросах так же кот наплакал, поэтому какие-то громкие случаи бывают редко. На памяти автора, когда имел удовольствие играть в онлайн-игру LineAge 2, закрытый исходный код бот-программ составлял серьёзную проблему, был совсем юнец, и платить за стороннее ПО не хотелось.
Вторым будет возможность вносить правки в код всем желающим. Этот довод действительно весомый, но вспомним количество специалистов, коих мало. Может, малая группа энтузиастов действительно будет проводить какие-то правки, но процесс этот сильно растянут: чтобы внести весомый вклад в совершенствование какой-либо программы, нужно знать её от начала до конца. К примеру, в одной только ОС Windows сотни тысяч строк кода(этим, кстати, и объясняется, почему десятка такая тупая и щедро одаривает нас ошибками, кто её знает всю целиком?)! Впридачу, действительно сильные специалисты обычно не работают бесплатно, и полностью заняты работой в каком-либо проекте.
А что с закрытыми исходниками? Если рассматривать их с тех же позиций, получится похожая картина: всё упирается в людей, но, есть особенность: закрытый код обычно у коммерческих проектов, а значит, всегда будет наёмная команда, которая проект обслуживает, и всё зависит от профессионализма отдельно взятых людей – всё так же, как и с опен-сорсом. Если брать закрытые исходные коды с точки зрения устойчивости взломоустойчивости по коду, то необходимость реверса (реверс-инжиниринга) серьёзно усложняет процесс взлома программы.
Лично мне без разницы, закрыты или открыты исходники: при использовании программы смотрю на конечный результат, на её работоспособность. Если всё устраивает, то какой смысл предъявлять дополнительные требования?