Социальную инженерию можно определить как манипулирование человеком или группой людей с целью взлома систем безопасности и похищения важной информации. Социальное программирование же может применяться безотносительно от какого-либо взлома, а для чего угодно, к примеру, для обуздания агрессивной толпы или обеспечения победы какого-либо кандидата на очередных выборах, или наоборот, для очернения кандидата и для того, чтобы миролюбивую толпу сделать агрессивной. Важно то, что здесь уже речи о той или иной ЭВМ нет и в помине. Таким образом, термин социальная инженерия мы будем употреблять тогда, когда речь идет об атаке на человека, который является частью компьютерной системы, как это показано на рис. 1.1.
Примечание
Иногда кроме термина социальная инженерия употребляется также термин обратная социальная инженерия. Суть в том, что при обратной социальной инженерии вы человека напрямую ни к чему не принуждаете, а создаете такие условия, что он сам к вам обращается. К примеру, если вам нужно прийти в организацию под видом телефонного мастера, вы можете просто прийти и начать проверять телефонные коробки. Это в данной терминологии – социальная инженерия. А можно поступить и по-другому. Вы создаете такую ситуацию, при которой в какой-то конкретной организации вас знают как телефонного мастера. После этого вы ждете, когда что-то случиться с телефонами, или сами делаете с ними что-то, и спокойно ждете, когда вам позвонят и попросят прийти. Это и есть обратная социальная инженерия. Таким образом, не вы сами куда-то ни с того ни с сего приходите, а вас просят прийти. Конечно, второй случай намного предпочтительнее, т. к. снимает с вас вообще все подозрения. Грамотные социоинженерные подходы именно так и строятся, поэтому этот термин мы считаем излишним, и его употреблять не будем.
Социальное программирование можно назвать наукой, которая изучает методы целенаправленного воздействия на человека или группу лиц с целью изменения или удержания их поведения в нужном направлении. Таким образом, по сути, социальный программист ставит перед собой целью овладение искусством управления людьми. Основная концепция социального программирования состоит в том, что многие поступки людей и их реакции на то или иное внешнее воздействие во многих случаях предсказуемы. Вещь, вообще говоря, очень интересная. Но в большинстве своем это действительно так. Общая схема методов работы социальных программистов представлена на рис. 1.3.
Рис. 1.3. Общая схема методов работы социальных программистов
В социальном программировании разработка схемы воздействия идет с конца, т. е. от нужного итога. Приведу один очень простой и очень нехороший пример. Пускай есть некто, к примеру, заместитель, которому ну очень мешает начальник. Допустим, этот заместитель знает, что у его начальника больное сердце и слабые сосуды, и тот, у которого больное сердце, очень любит "приложиться к рюмочке". Родственники, конечно, чуть не по пятам ходят и эту рюмочку отбирают, и это даже действует. А наш зам. начальника теми или иными способами начинает того, у которого больное сердце, целенаправленно спаивать. В конце концов, сосуды не выдерживают. Геморрагический инсульт. Зам. начальника стал начальником. На похоронах рыдал больше всех, да и потом остался самым близким другом семьи. Несмотря на то, что фактически убил главу семейства.
Чем методы социального программирования прекрасны для преступников, что о них либо вообще никто никогда не узнает, как в вышеописанном примере, либо даже если кто-то о чем-то догадывается, привлечь к ответственности такого деятеля очень сложно. Ну нет у нас в уголовном кодексе статьи "Доведение до инсульта". А если б и была – пойди, докажи, что все так и было, ведь "доведенный" все делал сугубо добровольно, будучи дееспособным, в гипноз его никто не вводил, электромагнитными лучами никакими не облучал…