Пост-аналіз: што вядома аб апошнім нападзе на сетку сервераў крыптаключоў SKS Keyserver

Хакеры выкарыстоўвалі асаблівасць пратакола OpenPGP, пра якую вядома больш за дзесяць гадоў.

Расказваем, у чым сутнасць і чаму яе не могуць закрыць.

Пост-аналіз: што вядома аб апошнім нападзе на сетку сервераў крыптаключоў SKS Keyserver
/ Unsplash / Chunlea Ju

Праблемы ў сетцы

У сярэдзіне чэрвеня невядомыя правялі атаку на сетку сервераў крыптаграфічных ключоў SKS Keyserver, пабудаваную на базе пратаколу OpenPGP. Гэта - стандарт IETF (RFC 4880), які выкарыстоўваецца для шыфравання электроннай пошты і іншых паведамленняў. Сетка SKS стварылі трыццаць гадоў таму для распаўсюджвання публічных сертыфікатаў. Да яе падключаюцца такія прылады, як GnuPG для шыфравання даных і стварэння электронных лічбавых подпісаў.

Хакеры скампраметавалі сертыфікаты двух мэйнтэйнераў праекта GnuPG – Роберта Хансена (Robert Hansen) і Дэніэла Гілмара (Daniel Gillmor). Загрузка сапсаванага сертыфіката з сервера прыводзіць да збою ў працы GnuPG – сістэма проста завісае. Ёсць падставы меркаваць, што на гэтым зламыснікі не спыняцца, і колькасць скампраметаваных сертыфікатаў будзе толькі павялічвацца. На дадзены момант маштабы праблемы застаюцца невядомымі.

Сутнасць атакі

Хакеры скарысталіся ўразлівасцю ў пратаколе OpenPGP. Яна вядома супольнасці ўжо не адзін дзясятак гадоў. Нават на GitHub можна знайсці адпаведныя эксплойты. Але пакуль ніхто не ўзяў на сябе адказнасць па закрыцці "дзіркі" (далей пагаворым аб прычынах падрабязней).

Пара падборак з нашага блога на Хабры:

Паводле спецыфікацыі OpenPGP хто заўгодна можа дадаваць лічбавыя подпісы да сертыфікатаў для пацверджання іх уладальніка. Прычым максімальная колькасць подпісаў ніяк не рэгламентавана. І тут узнікае праблема – сетка SKS дазваляе размясціць да 150 тыс. подпісаў на адзін сертыфікат, але GnuPG такая іх колькасць не падтрымлівае. Такім чынам, пры загрузцы сертыфіката GnuPG (як, зрэшты, і іншыя рэалізацыі OpenPGP) завісае.

Адзін з карыстальнікаў правёў эксперымент - Імпарт сертыфіката заняў у яго прыкладна 10 хвілін. Сертыфікат меў больш за 54 тыс. подпісаў, а яго вага склала 17 Мбайт:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: key F20691179038E5C6: 4 duplicate signatures removed
gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
gpg: key F20691179038E5C6: 4 signatures reordered
gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

Сітуацыю пагаршае той факт, што серверы ключоў з OpenPGP не выдаляюць інфармацыю аб сертыфікатах. Так зроблена, каб можна было прасачыць ланцужок усіх дзеянняў з сертыфікатамі і выключыць іх падмену. Таму ліквідаваць скампраметаваныя элементы нельга.

Па сутнасці, сетка SKS уяўляе сабой вялікі "файлавы сервер", на які любы жадаючы можа запісаць дадзеныя. Каб праілюстраваць праблему, у мінулым годзе рэзідэнт GitHub стварыў файлавую сістэму, якая захоўвае дакументы ў сетцы сервераў крыптаграфічных ключоў.

Чаму ўразлівасць не закрылі

Для закрыцця ўразлівасці не было нагоды. Раней яе не выкарыстоўвалі для правядзення хакерскіх нападаў. Хоць ІТ-супольнасць даўно прасіла распрацоўшчыкаў SKS і OpenPGP звярнуць увагу на праблему.

Дзеля справядлівасці варта адзначыць, што ў чэрвені яны ўсё ж запусцілі эксперыментальны сервер ключоў keys.openpgp.org. У ім рэалізавана абарона ад падобных тыпаў нападаў. Аднак яго база даных запаўняецца з нуля, а сам сервер не з'яўляецца часткай SKS. Таму мінуе час, перш чым ім можна будзе карыстацца.

Пост-аналіз: што вядома аб апошнім нападзе на сетку сервераў крыптаключоў SKS Keyserver
/ Unsplash / Rubén Bagüés

Што да бага ў арыгінальнай сістэме, то выправіць яго мяшае складаны механізм сінхранізацыі. Сетка сервераў ключоў першапачаткова пісалася як proof of concept для абароны доктарскай дысертацыі Яронам Мінск (Yaron Minsky). Прычым для працы была абрана даволі спецыфічная мова OCaml. Па слоў мэйнтэйнера Роберта Хансена, разабрацца ў кодзе складана, таму ў яго ўносяцца толькі невялікія выпраўленні. Каб мадыфікаваць архітэктуру SKS, яе давядзецца перапісаць з нуля.

У любым выпадку ў GnuPG не вераць, што сетка калі-небудзь атрымаецца выправіць. У пасце на GitHub распрацоўнікі нават напісалі, што не рэкамендуюць працаваць з SKS Keyserver. Уласна, гэта адна з галоўных чыннікаў, чаму яны ініцыявалі пераход на новы сэрвіс keys.openpgp.org. Нам застаецца толькі назіраць за далейшым развіццём падзеяў.

Пара матэрыялаў з нашага карпаратыўнага блога:

Крыніца: habr.com

Дадаць каментар