Tagged: infosec

[Linkset] Authorization termination: OAuth reverse proxy

UPDATE Today was released Nginx Plus with a new nginx-openid-connect module.

If you are looking for Authentication Server or OAuth library then OpenID Conect implementations page is a good place to start. I chose Keycloak but also want to look on FreeIPA or https://ipsilon-project.org

Keycloak Security Proxy but I want proxy as Nginx module and I need to implement something non standard.
Also there is some an OpenID/Keycloak Proxy service https://github.com/gambol99/keycloak-proxy

For Apache web server everything is clear:
https://github.com/zmartzone/mod_auth_openidc

But I need something for Nginx .

lua-resty-openidc and it’s intro blog post written in Lua so its easier to extend (so I did for implementing of custom grant flow+ sessions + reference tokens).

https://github.com/tarachandverma/nginx-openidc written fully in C++ and this is interesting because you don’t need to enable Lua on Nginx (believe me, this can be harmful).

What is also interesting is tha module for only one purpose: to use reference tokens (opaque tokens)
https://github.com/curityio/nginx_phantom_token_module it’s written in C so no needs for additional deps.

Authentication Based on Subrequest Result

Actually Nginx already has something that can satisfy 80% of your needs:

https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/

https://www.nginx.com/blog/nginx-plus-authenticate-users/
http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

https://github.com/nginxinc/nginx-ldap-auth
https://redbyte.eu/en/blog/using-the-nginx-auth-request-module/
https://news.ycombinator.com/item?id=7641148

But to use the sebrequest auth your auth server should support this or you need to setup another shim proxy:
https://github.com/bitly/oauth2_proxy
and here is docker container which integrates it https://github.com/sinnerschrader/oauth-proxy-nginx

Or you can use this one which is written in Lua
https://github.com/jirutka/ngx-oauth

Bonus:
Important article from Security researcher Egor Homakov who hacked several times GitHub and Facebook:

OAuth1, OAuth2, OAuth…?

Реклама

Вебинар: Как защитить свой сайт от хакеров если вы ленивый

Всем привет и с праздниками.
Утром проснулся и подумал: «а что ты сделал для человечества?» и вспомнил что у меня есть презентация про то как быстро улучшить безопасность сайтов для таких ламеров каким я был три года назад когда начал вникать в тему.
И я бы хотел замутить небольшой вебинарчик и чтобы закрепить я выдам домашнее задание и тем кто его выполнит подгоню каких нибудь ништячков.
В двух словах:
0. Цель вебинара: дать совсем чуть-чуть самых базовых знаний о том как делать защиту сайта и научить практическим методам защиты при этом упор только на Quick Win приёмы которые можно быстро и ненапряжно внедрить и они закроют большую часть уязвимостей. Никоим образом после этого вебинара у вас не будет понимания того как защищаться, вы будете такими же дебилами в инфо секьюрити как и прежде, но хотя бы совсем лажать не будете. Т.е. советы будут уровня «мойте руки перед едой» но на практике 90% программистов с которыми я работал даже этого не знают потому что «некогда нам, нужно тикеты закрывать и бизнес вэлью делать ведь у нас Аджайл и вообще кому мы нафиг нужны».
1. Для кого: любой веб программист любого уровня на любом языке (но пару примеров будет на PHP). Если вы шарите в теме тем более приходите: дам микрофон, буду рад услышать ваши советы и замечания.
2. Необходимые знания: базовое понимание работы HTTP, опыт вёрстки сайтов минимум год
3. Агенда:
3.0 Покажу как проверить хакнули вас или нет. Ну чтобы запугать хорошенько.
3.1 Почему ваш сайт обязательно должен отдаваться через https, как получить сертификат на халяву через Let’s Encrypt
3.2 В основном я буду рассказывать про то что такое XSS и как защищаться от него с помощью Content Security Headers (CSP). Это очень простой но супер эффективных механизм.
3.3 Как защитить пароли пользователей и как их правильно захешировать (password shadow)
3.4 Возможно подраскужу ещё чего нибудь простенького но эффективного в качестве небольшого офтопа.
4. Когда: не раньше чем через пару месяцев утром в субботу. Я сейчас очень уставший, у меня много работы и ещё я недавно стал отцом и не высыпаюсь. Время буквально краду у семьи.
5. Дисклаймер: я не секьюрити специалист а всего лишь веб программист которому немного пришлось вникнуть в тему. Моя личная цель самому себе закрепить опыт и передать вам потому что я же блин сам вашим софтом и пользуюсь. Вы собственно всё сами можете почитать и изучить просто я вам время сэкономлю.
Короче будет норм, регайтесь друзья тут или следите за бложиком.