Започвам да пиша пост с надеждата да ти стане ясно за какво се опасяваш. За всички останали - аз не разбирам много от сигурност, още по-малко от мрежова, ако има нещо - попрявяйте ме.
Както е написал колегата преди мен, понятията не са ти ясни. Може би някой се е възползвал от представата ти че всичко работи на магия и те е наплашил. Не ги вземай на сериозно такива хора! Това е единственият им шанс да се чувстват по-велики. Въпреки, че съм голям гъз, никога не си позволявам да лъжа хората за да се чувствам велик.
Та ще споделя знанията си с теб, въпреки, че ИЗКЛЮЧИТЕЛНО НЕОДОБРЯВАМ хленченето по форими без човек да е изчел всяка една статия в интернет преди това!
Мрежи.
Преполагам си запознат с OSI модела и седемте слоя на мрежите, а акоо не си - потърси в Google.
Нека поговорим за атака на ниво 1. Единствените начини някой да прочете информация от твое име/да направи атака от твое име на това ниво са:
1) Твоят интернет доставчик. Преди искаха да прокарат закон с който мобилните оператори са задължени да предоставят интерфейс на МВР, чрез който да се прави справка за даден клиент. Подобно нещо може да съществува, но все още го няма. Репутацията на даден оператор би пострадала твърде много от тази технология. Интересна възможност е примерно вътрешен за оператора човек, който има достъп рутер/суитч към който ти си закачен. Тогава за "Интернет" ще изглежда, че ти си извършител на дадено престъпление, НО това няма да се приеме като доказателство в НИТО ЕДИН съд, защото основно качество на доказателствата е да са необорими. В действителност сериозните доставчици, който работят със сериозни клиенти имат сертификации за сигорност и преминават през редовни одити. Да го кажем така: никоя фирма няма да иска да си цапа ръцете с теб!
2) Човек по средата. Да си представим че аз съм сложил малка кутийка някъде на пътя на твоя кабел. До колкото си спомням не беше задължително кабела да се реже. Тогава ще мога да чета всичко което ти четеш. Ако се включа към кабела ще мога да изпращям информация от твое име и даже да променям информация, която ти изпращаш по мое усмотрение. Кофти. В такъв случай, както казах по-горе, работа на разследващия орган е да докаже автетичността на заявките. Ако не може, всякакви доказателства са невалидни.
На тези нива начините да се защитиш са твърде малко. Ако продължиш да четеш, ще разбереш как може да неутрализираш изтичане на информация.
Второ ниво също не е интересно. На практика тук нещата са като първо с малката подробност,че при калпав хардуер (Лан карти/суитчове/...) могат да се правят разни DoS атаки - примерно MAC poisoning на суитчовете. За да откраднеш самоличност е нужен някакъв начин да "препрограмираш" устройстовото, за да работи, както ти би искал, но със същия успех може да програмираш миксер да укротява лъвове.На това ниво се имплементира и криптография, но тя по никакъв начин не засяга обикновения потребител.
за Wireless стандарта ( за разлика от Ethernet ) криптографията е задължителна. Gat3way пише прекрасни статии на тема сигурност свързани с Wireless ( блога му е gat3way.eu ). Само ще вметна, че използването на WPA2+AES е нещо задължително.
Тук някъде се намърдва и PPP. Point-To-Point протоколите добавят някакво ниво на защита чрез автентикация на клиента в мрежата. Най-често се използват от DSL доставчиците (БТК). Според вики, обаче криптографията не е добра.
Трето ниво ( проклетите IP адреси ) Трябва няистина да си представяш IP адресите, просто като адреси - начин информацията да стигне от едно място на друго. Вички протоколите от 2-ро ниво (Ethernet, Wireless,PPP,ATM, и десетки други ) имат просто за цел да доставят информацията в цял и непокътнат вид м-у две директно свързани устройства, или поне изглещаши да са директно свързани(контролирана среда). В трето ниво може да се усъществи комуникация м-у отдалечени машини (неконтролирана среда). Както в ниво две и тук има разни протоколи за кръптиране на канала - IPSec примерно. IPSec не е панацея, защото добавя много натоварване на мрежата. Също така, това не е протокол който да се използва от крайния потребител.
Какво означава да знаеш нечии IP адрес?
Означава, че знаеш как да изпратиш пакет с данни до него. IP адреса не е идентичност. IP адреса не е портал към устройството.
Ако си в една мрежа (зад един рутер) с твоята жерта и мрежата не е защитена по никакъв начин, може да конфигурираш IP адреса на жертава на своята машина. Ако машината на жертвата е изключена, ще ползваш интернет от с негов адрес, но НЕ от негово име защото както казах, IP адреса не е идентичност! Ако е включена - двамата си духате супата!
"Чувал съм за IP spoofing". Съветвам те да прочетеш тази малка статийка
http://en.wikipedia.org/wiki/IP_address_spoofing Ще ти стане ясно защо този метод НЕ може да се използва за крадене на идентичност, а само в редки случай за DoS атаки.
Нека да вметна:
Криптираш данни на ниво 2 -> данните остават криптирани до следващата машина ( и дано да знае как да ги декриптира ). Примерно имаш VLAN канал м-у два датацентъра, или използваш канал за VoIP. За Wireless-a няма смисъл да давам пример.
Криптираш данни на ниво 3 -> данните остават криптирани до рутера на който си ги изпратил. После всичко си е явно...
Ниво 4 го пропускаме като малка гара, щото нищо не знам. МОМЕНТ!
Firewall-ите
Firewall-a също не е бастион на комютърната сигурност. Firewall-a по скоро отделя една мрежова среда от друга. Най-често един домайн си има един или два firewall-a който пропускат само определен трафик за определени машини. Доста често, целта на firewall-a е и да блокира и целия изходящ трафик. Изходящият трафик от дадена среда ( или мрежов сегмент, или whatever ) в добре подсигурена мрежа минава през proxy-сървър с автениткация.
Напоследък стана модерно десктопите също да имат firewall. Ето примерно firewall-a на моят лаптоп:
Generated by iptables-save v1.4.12 on Thu Jan 26 06:43:12 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [393087:44940853]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Jan 26 06:43:12 2012
Слушащите процеси на моя лаптоп са:
ctive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1082/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1537/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1751/sendmail
tcp 0 0 :::22 :::* LISTEN 1082/sshd
tcp 0 0 :::631 :::* LISTEN 1/init
Това значи, че firewall-a e абсолютно безмислен. Няма нячин някой да се свърже с моя компютър. Ако пусня някоя мрежова услуга обаче, ОЧЕВИДНО искам някой да се свърже с нея, тогава трябва да отворя порта и/или изрично да кажа кой може да се свърже - обидно сложна конфигурация за десктоп (правило в сигурността номер 1: пиши пароли възможно НАЙ-РЯДКО). Би била интересна следната ситуация. Някой ми е изпратил зловредна програма, която да речем аз не съм видял. Тя всеки път се пуска като се логна и прави безкрайни търсения в data.bg с цел да натоварва сайта. Аз да си призная не бих видял това:
- компа ми и интернетът ми са достатъчно бързи за да не забележа
- нямам навика да ps -ef на компа си за да търся процеси-бандити
Ако бях на Windows, firewall-а щеше да каже, че неоторизиран процес се опитва да използва TCP. В Линукс може да се направи също това ( със SELinux и то не за скриптове ), но наистина отнема доста усилия. Мисълта ми - "това не са дройдите, който търсите"
Ниво 5 -бла бла
Ниво 6 - presentation layer. VPNs. Тук нещата стават сложни и аз нямам големи познания. VPN-ите или тунелите представляват сигурна връза м-у две точки, без значение инфраструктурата м-у тях. Защо - ами виж на колко височко ниво в OSI-a. Не зависят от хардуера, не зависят дали си на Wireless или Ethernet, цялостта на информацията и управлението на сеисята ти са подсигурени от TCP - изобщо кеф. Най-често се използва OpenVPN, защото той потдържа различни методи за шифроване. Едва ли някой, ще седне да ти обяснява за hand-shake-овете при правене на криптирана връзка - има го в интернет и е скучно. И пак да вметнем - нямаме ограничение от инфраструктурата като при IPSec примерно
Седмо ниво. Асъл мрежа. Да взмем един протокол от най-високо ниво като HTTP. Ако използваш интернет "as it is" и отвориш някой сайт, всеки м-у теб и сайта, ще те наблюдава. HTTPS е друга работа. HTTP се криптира през SSL/TLS протоколи. Е как става това без да ти искат парола/ключове? Може да питаш wiki:
http://en.wikipedia.org/wiki/HTTP_Secure. Има даден интересен пример за атака. Нека аз съм собственик на рутер, a то си мой клиент. Ако напишеш в браузера си gmail.com, адреса трябва да се смени на
https://gmail.com и иконата да покаже, че сертификата на сайта е валиден. Ако аз обаче прихавана твоята заявка и комуникирам с gmail.com през HTTPS, а на теб ти предавам чист HTTP текст, тогава ще мога да прочета всеки твой е-маил, всяка твоя парола, абе общо взето прецакан си. Сещаш ли се онова съобшение дето ти го вади Firefox от време на време "Confirm Security Exception" - това значи, сертификата на сайта не е валиден или е изтекъл - внимавай на кого какво казваш!
И така...
IP адреса е последното за което да се тревожиш. По-добре се замисли за цялостната картника:
- рутера ти дали е с последен firmware
- може ли да се администрира от WAN мрежата
- достатъчно ли му е силна паролата
- wireless-a има ли силна парола: 16+ символва от поне 3 вида, има ли добър алгоритъм за криптография
- можеш ли да си криптираш хард диска ( swap-a ) ( за критиран хард диск също има атаки от boot-loader-a)
- имаш ли достатъчно силни пароли.
- забранил ли си на FF да помни пароли
Ако се страхуваш, че вече си компроментиран, си направи много простичък одит. А и да знаеш - имал ли е човека администраторски достъп - край. Няма спасение. Преинсталирай. Та одита:
netstat -lntp - да видиш какво слуша
cat /etc/passwd | grep bash - не трябва да ти показва други потребители освен теб и root (или жената)
пусни SELinux на enforcing и наблюдавай дали нещо няма да изпищи в audit.log ( след ребоот ще има доста време да почакаш... може и час ... може и два ), Аз съм чел бая за SELinux и ако се научиш да го конфигурираш, ще може да направиш чудеса.
махни executable флага на всички файлове в /home ( това може да не се отрази много добре... )
Анонимноста в интернет е почтни невъзможна за постигане напоследък. Ако не целиш някакви криминални злодеяния, те съветвам да спреш до тук.Ако някой те е наплашил, то той със сигурност блафира,защото проникването в нечии компютър не е като по филмите,защото техническите познания много рядко водят до успех, но социалните хватки са друга работа...