Популярные сайты, которые пользователи считают доверенными, часто распространяют вирусы. Это бывает в результате взлома сайта злоумышленниками или целенаправленно спецслужбы заражают некоторых пользователей. Антивирусы и брандмауэры частично решают эти трудности. Операционные системы отличные от Windows (например, Unix) тоже сильно снижают угрозы безопасности, но всё равно надо быть осторожным.
Теперь надо разобраться с аппаратной виртуализации. Аппаратная виртуализация, реализованная в процессорах (в первую очередь CPU) чем-то напоминает платформу Java, так как в ней тоже есть виртуальная машина. Напомню, что программист написав приложение для платформы Java, не обязательно на выходе получит, то что он хотел бы видеть. Разные версии JRE предоставляют разный функционал. Создавая приложения на различных языках программирования, программист может получить не то, что он задумал, так как в дело вступает аппаратная виртуализация. Формально аппаратная виртуализация CPU (в частности антивирусная защита) создана для предотвращения выполнения нежелательного вредоносного кода. На самом деле нежелательным кодом можно объявить любое приложение, какое захочет Intel (или другой производитель процессоров), а возможно АНБ.
По сути сейчас операционная система (Host) стала гостевой, а основной ОС стал гипервизор, управляемый аппаратной виртуализацией процессора. Агент может воздействовать на гипервизор и агент может входить в состав ОС Windows или же в виде отдельного приложения, причём его можно сделать скрытным в виде руткита, или доверенного приложения, но управляемого АНБ.
Что касается определения конфигурации вашей ОС сайтами (серверами), то вы можете зайти на какой-нибудь проверяющий сайт и увидите данные о вашей ОС и аппаратном обеспечении. Далее, отключаете в вашем браузере JavaScript, очищаете кеш и заходите опять на этот проверяющий сайт и увидите только ваш IP и географическое положение, которое определяется по этому IP.
Теперь вспомним за SELinux, который создан для Unix и входит (и даже включён) во многие операционные системы и дистрибутивы. Было бы наивным полагать, что АНБ создав SELinux преследует благие намерения. Если поразмыслить над тем, зачем АНБ создало мощную (на первый взгляд) систему безопасности и открыло исходный код, то возникают определённые подозрения. АНБ не благотворительная организация и её деятельность направлена на защиту государственных учреждений и фирм тесно связанных с государством или имеющих большое значение для США, а также действия направленные против иностранных государств, которые являются её противниками (или потенциальными противниками). Следует понимать, что SELinux многим пользователям Linux не нужна и они её не включают, а те, кто включает SELinux, делают это не спроста. Они чего-то опасаются и защита SELinux им нужна. Если бы SELinux действительно был бы системой, обеспечивающей максимальную защиту, то АНБ не только бы раскрыла исходный код и не предоставила в свободный доступ SELinux, но и всячески его скрывала от всех, предоставляя госучреждением и близким к государству организациям. А так получается, что АНБ предоставила SELinux своим врагам, чтобы они создали защищённую систему и защиту в том числе и от АНБ. Что-то здесь не так. Поставьте себя на место АНБ и подумайте. Разве можно упустить такой шанс и не сделать заднюю дверь в SELinux? Получив контроль над SELinux, можно получить контроль над ОС, а значит контроль над какими-либо организациями, личностями или целыми странами. Все данные хранящиеся на компьютерах будут в АНБ или появиться возможность управлять инфраструктурой противника или менять данные, которые нанесут ущерб противнику.
SELinux включено в ядро Linux и пробив брешь в нём, какой-нибудь нехороший процесс получит права root. Если он обработает программный код, который написан особым образом, то это приложение получит неограниченный доступ к системе (root).
Справедливости ради отметим, что во многих дистрибутивах SELinux по умолчанию выключен.
Если SELinux включен, то достаточно внести в код SELinux всего лишь один знак, который может, при определённых условиях дать какому-нибудь процессу права root. Причём, бывает так, что код бывает двойного назначения, то есть в одних случаях от него польза, о в других — вред. По сути недокументированные возможности — это тайное api к приложению. Следует помнить, что чем больше кода в приложении, чем сильнее приложение интегрировано в ОС и чем сложнее приложение, тем труднее найти в нём уязвимость, а если уязвимость будет найдена, то всегда можно сослаться на ошибку программиста и выпустить обновление.
Следует знать, что в Linux (Unix) обычно, пока сам не установишь приложение и не запустишь его, оно работать не будет.
Пару слов об AES шифровании. AES шифрование само по себе может быть и безопасно, но при определённых сочетаниях в программах и аппаратном шифровании, возможна расшифровка данных. Например, BitLocker в ОС Windows или аппаратное шифрование во внешних жёстких дисках. Кое-кто думает, что спецслужбы и здесь постарались, ослабив AES шифрование, но точных данных, которые подтверждают это, пока ещё нет. Есть только предположения, но и к ним надо относится серьёзно.