User avatar

We know that criminals exploited a U.S. website application vulnerability. The vulnerability was Apache Struts CVE-2017-5638 -- https://www.equifaxsecurity2017.com/

Comment

Apache Struts is prone to a remote code-execution vulnerability. Specifically, this issue affects the Jakarta based file upload Multipart parser. An attacker can exploit this issue through a malicious Content-Type value. Successfully exploiting this issue may allow an attacker to execute arbitrary code in the context of the affected application. https://www.symantec.com/security_response/attacksignatures/detail.jsp?asid=29972

 ‎· bördvotç person
Comment

Все равно не представляю, какой произвольный код нужно исполнить в контексте апача, чтобы скачать весь эквифакс.

 ‎· bördvotç person
Comment

а в чём проблема-то? RCE в контексте апача (edit: почему апача? в контексте явовского application server-а же, небось?) -- это какой-никакой local access, после этого local privilege escalations везде как грязи, дальше root и делай что хочешь (это даже отдельно от того, что код в контексте апача, поди, может у базы данных спросить более-менее что угодно)

 ‎· jsn 6
Comment

^я не понимаю со слов "какой-никакой local access". У меня появляется терминал, в который можно печатать команды, обладающие локальным аксессом?

 ‎· bördvotç person
Comment

^ по сути - именно так

 ‎· бинарный холокост виталия 1
Comment

^ так интересует на практике, а не по сути. В теоретико-информационном смысле я понимаю.

 ‎· bördvotç person
Comment

@birdwatcher: лучше. Терминал вам даст исполнять только код, который уже есть на машине. RCE даст вам залить любой код и его исполнить. В реальности, как правило, разница невелика

 ‎· jsn 1
Comment

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

 ‎· bördvotç person
Comment

В смысле, если официально нанять кого-нибудь, то его надо надо три месяца держать за руку и все объяснять и показывать, пока он сделает самостоятельно что-то полезное. А если через дырку в Апаче, то прямо сразу?

 ‎· bördvotç person
Comment

@birdwatcher: написать код, который exec-нет шелл, присоединив его stdin/out/err к сокету, в общем, не фокус (готовых тыщи), дальше все тоже довольно обыденно

 ‎· jsn 2
Comment

Так там делать-то ничего не надо особо вроде. Взял у struts хэндл db connection, спросил у него show tables, про каждую спросил select *. Я утрирую, но без потери общности

 ‎· jsn 2
Comment

Вроде, вебсерверу в нормальной работе не может понадобиться select больше одной записи за раз, не то что select *. Было бы решением ввести это ограничение явно?

 ‎· bördvotç person
Comment

@birdwatcher: это рассуждение представляется резонным только тем из нас, кто не закончил университет по классу баяна или чего там было, балалайки

 ‎· screamager 4
Comment

@birdwatcher: :) нет, приложение с базой часто хочет от базы наборы по критериям, а не одну запись. И нет, такое ограничение практично сделать нельзя, к тому же оно совершенно бессмысленно -- таскать таблицу порциями нисколько не сложнее.

 ‎· jsn
Comment

@jsn: "приложение с базой часто хочет от базы наборы по критериям, а не одну запись" - это верное утверждение, но в конкретном кейсе equifax запросы широкой выборки -- повод срывать какой-нибудь аларм в мониторинге. учитывая что там, как я понимаю, каждый запрос стоит типа 5-20$, кто-то, кто кверит сотни (молчим уж про миллионы) рекордов одним реквестом -- либо хакер, либо это какая-то бага

 ‎· screamager 1
Comment

@screamager: ну я бы сказал, что аларм надо ставить не на это вообще (потому что куда, например, его ставить? Прямо в оракл? Все до оракла у нас к этому моменту уже compromised), а на data exfil; но и это все не панацея

 ‎· jsn 1
Comment

я бы сказал, что ораклу вообще не стоило давать наружу select privileges, а только exec stored procedure. Тогда потеря апача не была бы равна потере оракла

 ‎· bördvotç person 2
Comment

@jsn: это хорошие пойнты; хотя мне всё-таки кажется, что именно в случае эквифакса надо ставить аларм на спайк в реквестах -- сам оракл может отдать эту цифру в отдельный мониторинговый сервис, который совершенно необязательно compromised -- у злоумышленника же нет RCE для последней ubuntu на которой крутится какой-нить zabbix? может быть даже стоит сразу отключать базу, если там типа девиация на пять порядков от обычной нагрузки. но, с другой стороны, я ж не CSO, что я знаю <задумчиво наигрывает что-то лирическое на балалайке>

 ‎· screamager 2
Comment

меж тем -- Today in Equifax: FTC confirms probe, Schumer compares to Enron+says execs may need to resign, stock hits 2-year low

 ‎· screamager 1
Comment

да не, ну, наверное, in the grand scheme of things, это всё небессмысленно, но ээ. ну вот, положим, я -- перп, вот я отсверлился через RCE, добыл рут, насыпал руткита, осмотрёлся -- всё как на ладони же, вот request rate, вот traffic patterns, вот db creds, вот роуты, вот ваша сеть внутри периметра, между прочим (на которой, поди, на каждой второй машине какой-нибудь внтренний сервис на том же самом struts). ну вот самый простой вариант: поставил выбираться из базы потихонечку, на скоростях, не превышающих 10% легитимного трафика, хочешь -- селектом, хочешь -- той самой хранимой процедурой, неважно. Вот всё это эксфильтруется по мере добычи, месяц, три, пять, i have al the time in the world, если не жадничать.

 ‎· jsn 2
Comment

^ чтобы выбирать из базы потихонечку, надо заранее знать имена, фамилии и пароли?

 ‎· bördvotç person
Comment

@jsn: всё так. с другой стороны, секьюрити же -- это не про какую-то там чёрную магию, это про то, чтобы порядок был. у каких-нибудь здравых ребят, кстати, и 10% рост может вызвать желание разобраться, а что это такое происходит (особенно учитывая, что 10% рост должен приводить к 10% росту в инвойсинге, а -- как мне навскидку кажется -- если ковырять из оракла напрямую, там сразу дискрепанция появится), ну а у нездравых... я, кстати, на HN читал, что это даже не zero day, патч-то был доступен чуть ли не месяц как. о чём тут вообще говорить

 ‎· screamager
Comment

в одном из тредов на HN какие-то чуваки, знакомые с темой, писали, что мол equifax внутри это примерно советское Министерство Кредитных Рейтингов (что неудивительно, если твой бизнес -- продавать выписки из базы по 5$), ну и соответственно - - -

 ‎· screamager 3
Comment

^^Так вот мне как раз кажется, что роль безопасности апача преувеличена. Можно исполнить на апачевой машине произвольный код - ах, ну тогда всё ясно. Так вот это не слишком ясно. Может быть, стоит считать апач скомпрометированным заранее, и строить инфраструктуру вокруг этого предположения.

 ‎· bördvotç person
Comment

@birdwatcher: какие пароли? пароли от базы -- в конфиге рядом, вот же, положила. и ни в жисть я не поверю, что там нет какой-нибудь легитимной функциональности в вебаппе, которая позволяет в каких-то пределах делать enumeration содержимого, не бывает такого, чтоб не было.

 ‎· jsn
Comment

^ вроде бы, юзкейзы эквифакса - узнать свой кредитный рейтинг по своему id и паролю, или чужой рейтинг по его id и своему паролю банкира. Это очень ограниченная функциональность, через которую невозможно выкачать эквифакс. Если там рядом в конфиге лежат какие-то пароли, позволяющие сделать что-то большее, то проблема в этом, а не в дыре в апаче.

 ‎· bördvotç person
Comment

ну то есть ну самый тупой вариант: мы захватываем все фронтенды, и карбон-копируем себе в карман все легитимные запросы настоящих доброкачественных пользователей. месяцами. даже этим можно дофига чего украсть, вообще никак не детектясь.

 ‎· jsn 1
Comment

^ да, пусть вот это будет единственным способом. По-моему, это огромное улучшение

 ‎· bördvotç person
Comment

Как писали по ссылкам на HN, внутри эквифакса был ужасный операционный бардак, поэтому первый попавшийся дятел без проблем раздобыл привилегии, чтобы разрушить всю цивилизацию. То, о чём вы говорите (layered security + monitoring), несомненно, помогло бы, но наклонение там строго сослагательное.

 ‎· 9000 3
Comment

там же еще где-то admin/admin был

 ‎· machine does not surrender
Comment

^admin/admin был в аргентинском филиале. там же пароли сотрудников были их же юзернеймами, которые в свою очередь были фамилиями, изредка с инициалом. но кому нужна чужая Аргентина?

 ‎· Котик, Пси Котик

1 2 3 4 5 6 7 8 9 10