XNUMX๋
์ ๊ฐ๋ฐ ๋์ ์ถํ ๋ ํ๋ก์ ํธ ๋ฆด๋ฆฌ์ค ์ค๋ํ๋ฃจํ๊ตฌ์ค 0.5.1๋ ํ๊ฒฝ์ ๋ณด์์ ๊ฐํํ๊ณ PHP ์ ํ๋ฆฌ์ผ์ด์
์คํ ์ ์ทจ์ฝ์ ์ผ๋ก ์ด์ด์ง๋ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํด PHP7 ์ธํฐํ๋ฆฌํฐ์ฉ ๋ชจ๋์ ์ ๊ณตํฉ๋๋ค. ์ด ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๋ค์์ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ฐ์ ํจ์น ์ทจ์ฝํ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ํน์ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ ๋ชจ๋ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๋๋ ํธ์คํ
์์คํ
์ ์ฌ์ฉํ๊ธฐ์ ํธ๋ฆฌํฉ๋๋ค. ๋ชจ๋์ ๊ฐ์ ๋น๋ ์ต์ํ๋ ๊ฒ์ผ๋ก ์ถ์ ๋ฉ๋๋ค. ๋ชจ๋์ C๋ก ์์ฑ๋์์ผ๋ฉฐ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(php.ini์ "extension=snuffleupagus.so") ํํ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋ฐฐํฌ์ LGPL 3.0์ ๋ฐ๋ผ ๋ผ์ด์ผ์ค๊ฐ ๋ถ์ฌ๋์์ต๋๋ค.
Snuffleupagus๋ ํ์ค ํ
ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ณด์์ ๊ฐํํ๊ฑฐ๋ ์์ ๋ง์ ๊ท์น์ ์์ฑํ์ฌ ์
๋ ฅ ๋ฐ์ดํฐ ๋ฐ ํจ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์๋ ๊ท์น ์์คํ
์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ system() ํจ์ ์ธ์์์ ํน์ ๋ฌธ์ ์ฌ์ฉ์ ์ ํํ ์ ์์ต๋๋ค. ์ด์ ๋ฑ์ ์ทจ์ฝ์ ํด๋์ค๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํ ๋ด์ฅ ๋ฉ์๋๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๊ด๋ จ๋ ๋ฐ์ดํฐ ์ง๋ ฌํ๋ก, ์ํํ PHP mail() ํจ์ ์ฌ์ฉ, XSS ๊ณต๊ฒฉ ์ค ์ฟ ํค ๋ด์ฉ ์ ์ถ, ์คํ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ํฌํจ๋ ํ์ผ ๋ก๋๋ก ์ธํ ๋ฌธ์ (์: ํ์) ํ), ํ์ง์ด ์ข์ง ์์ ๋์ ์์ฑ ๋ฐ ์นํ ์๋ชป๋ XML ๊ตฌ์ฑ.
Snuffleupagus๊ฐ ์ ๊ณตํ๋ PHP ๋ณด์ ๊ฐํ ๋ชจ๋:
- ์ฟ ํค์ ๋ํด "secure" ๋ฐ "samesite"(CSRF ๋ณดํธ) ํ๋๊ทธ๋ฅผ ์๋์ผ๋ก ํ์ฑํํฉ๋๋ค. ์ํธํ ์ฟ ํค;
- ์ ํ๋ฆฌ์ผ์ด์
์ ๊ณต๊ฒฉ ๋ฐ ์์ ํ์ ์ ์๋ณํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๊ท์น ์ธํธ
- "์ ๊ฐ์ ์ ์ญ ํ์ฑํ์๊ฒฉํ"(์๋ฅผ ๋ค์ด ์ ์ ๊ฐ์ ์ธ์๋ก ๊ธฐ๋ํ ๋ ๋ฌธ์์ด์ ์ง์ ํ๋ ค๋ ์๋๋ฅผ ์ฐจ๋จํฉ๋๋ค.) ์ ํ ์กฐ์;
- ๊ธฐ๋ณธ ์ฐจ๋จ ํ๋กํ ์ฝ ๋ํผ (์: ๋ช
์์ ์ธ ํ์ดํธ๋ฆฌ์คํธ๋ฅผ ํตํด "phar://" ๊ธ์ง)
- ์ฐ๊ธฐ ๊ฐ๋ฅํ ํ์ผ ์คํ ๊ธ์ง
- ํ๊ฐ๋ฅผ ์ํ ํ๋ฐฑ ๋ชฉ๋ก;
- ์ฌ์ฉํ ๋ TLS ์ธ์ฆ์ ํ์ธ์ ํ์ฑํํ๋ ๋ฐ ํ์ํฉ๋๋ค.
๊ณฑ์ฌ ๊ณฑ์ฌํ๋ค;
- ์ง๋ ฌํ๋ ๊ฐ์ฒด์ HMAC๋ฅผ ์ถ๊ฐํ์ฌ ์ญ์ง๋ ฌํ๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋์ง ํ์ธํฉ๋๋ค.
- ์์ฒญ ๋ก๊น
๋ชจ๋;
- XML ๋ฌธ์์ ๋งํฌ๋ฅผ ํตํด libxml์ ์ธ๋ถ ํ์ผ ๋ก๋๋ฅผ ์ฐจ๋จํฉ๋๋ค.
- ์
๋ก๋๋ ํ์ผ์ ํ์ธํ๊ณ ์ค์บํ๊ธฐ ์ํด ์ธ๋ถ ํธ๋ค๋ฌ(upload_validation)๋ฅผ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ
์ค ๋ณ๊ฒฝ ์ ๋ฆด๋ฆฌ์ค์์๋: PHP 7.4์ ๋ํ ์ง์์ด ํฅ์๋๊ณ ํ์ฌ ๊ฐ๋ฐ ์ค์ธ PHP 8 ๋ธ๋์น์์ ํธํ์ฑ์ด ๊ตฌํ๋์์ต๋๋ค. syslog๋ฅผ ํตํด ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋กํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(php ๋๋ syslog ๊ฐ์ ์ฌ์ฉํ ์ ์๋ sp.log_media ์ง์๋ฌธ์ด ํฌํจ๋๋๋ก ์ ์๋์์ต๋๋ค). ์ต๊ทผ์ ์๋ณ๋ ์ทจ์ฝ์ ๊ณผ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ๊ณต๊ฒฉ ๊ธฐ์ ์ ๋ํ ์๋ก์ด ๊ท์น์ ํฌํจํ๋๋ก ๊ธฐ๋ณธ ๊ท์น ์ธํธ๊ฐ ์
๋ฐ์ดํธ๋์์ต๋๋ค. macOS์ ๋ํ ์ง์์ด ํฅ์๋๊ณ GitLab ๊ธฐ๋ฐ์ ์ง์์ ์ธ ํตํฉ ํ๋ซํผ ์ฌ์ฉ์ด ํ๋๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru