<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rollback &#187; security</title>
	<atom:link href="http://blog.rollback.hu/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rollback.hu</link>
	<description>SQL, üzemeltetés kicsiknek és nagyoknak.</description>
	<lastBuildDate>Thu, 17 Nov 2011 16:38:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Miért NE kezdjünk tárolt eljárást sp_-sal?</title>
		<link>http://blog.rollback.hu/2011/11/miert-ne-kezdjunk-tarolt-eljarast-sp_-sal/</link>
		<comments>http://blog.rollback.hu/2011/11/miert-ne-kezdjunk-tarolt-eljarast-sp_-sal/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 01:35:31 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=355</guid>
		<description><![CDATA[Sok fejlesztő használ naming conventiont (nevezési szokást) az adatbázis objektumainak elnevezésénél. Ez kedves tőlük, mivel kiszámíthatóbbá teszik a karbantartók (beleértve saját magukat) életét. Ámde vannak kevésbé szerencsés naming conventionök, és itt nem csak az akkor jó ötletnek tűnő Systems Hungarian notationre gondolok.
Többször találkoztam az sp_ prefixszel, mint tárolt eljárás jelöléssel, ami jó ötletnek tűnik, a [...]]]></description>
			<content:encoded><![CDATA[<p>Sok fejlesztő használ naming conventiont (nevezési szokást) az adatbázis objektumainak elnevezésénél. Ez kedves tőlük, mivel kiszámíthatóbbá teszik a karbantartók (beleértve saját magukat) életét. Ámde vannak kevésbé szerencsés naming conventionök, és itt nem csak az akkor jó ötletnek tűnő <a href="http://en.wikipedia.org/wiki/Hungarian_notation#Systems_vs._Apps_Hungarian">Systems Hungarian notationre </a>gondolok.</p>
<p>Többször találkoztam az sp_ prefixszel, mint tárolt eljárás jelöléssel, ami jó ötletnek tűnik, a Microsoft is ezt favorizálja, úgyhogy biztos jó. De nem az. Az sp_ ugyanis a Microsoft sajátja, amit befoglaltak kódból: minden sp_ kezdetű tárolt eljárást a master adatbázisban keres először az SQL Server, és ha ott nem találja, akkor nézi meg az aktuális adatbázist. Benne is van a BOL-ban, hogy <a href="http://msdn.microsoft.com/en-us/library/ms190669.aspx">ne használd, mert ráfázol</a>. És íme, a példa:</p>
<pre class="brush: sql;">
use tempdb
go
create procedure sp_password
AS
print 'De rossz nev ez...'
GO
</pre>
<p>És próbáljuk meg futtatni a mi kis sp_password SP-nket. Ez sosem fog sikerülni, még ha két- vagy háromtagú nevet adunk meg, akkor se.</p>
<pre class="brush: sql;">
EXEC sp_password
-- fail
EXEC tempdb.dbo.sp_password
-- ez is fail
GO
</pre>
<p>Az egyetlen elfogadható kiút, ha nem a dbo schema alá rakjuk, és legalább kéttagú névvel hivatkozunk rá:</p>
<pre class="brush: sql;">
create schema test
GO
create procedure test.sp_password
AS
print 'De rossz nev ez...'
GO
EXEC test.sp_password
</pre>
<p>Azért valljuk be, ez így gáz. Használjunk valami jobb nevezéket&#8230;</p>
<p>Ha esetleg valakiben felmerülne a kérdés, hogy ez miért jó dolog, akkor gondolja végig a fenti példa esetleges működésének következményeit: Gonosz Géza olyan szép trójai sp_password-öt produkálhat, hogy mindenki csak nézni fog. A security fontos dolog&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2011/11/miert-ne-kezdjunk-tarolt-eljarast-sp_-sal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Disabled login vs locked out login</title>
		<link>http://blog.rollback.hu/2011/10/disabled-login-vs-locked-out-login/</link>
		<comments>http://blog.rollback.hu/2011/10/disabled-login-vs-locked-out-login/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 23:22:50 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[üzemeltetés]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=351</guid>
		<description><![CDATA[Alcím: Hogyan nem tud valaki belépni egy SQL Serverbe? A belépés egy két részből álló folyamat, mint minden rendszer esetében: autentikáció és authorizáció. Az autentikáció mondja meg, hogy kik vagyunk: felhasználónév+jelszó például. Az authorizáció pedig megmondja, hogy mi, akik azok vagyunk, akik, mit tehetünk, mire vagyunk feljogosítva.
Ebból következik, hogy a legegyszerűbb nem-belépés az, ha elbukjuk [...]]]></description>
			<content:encoded><![CDATA[<p>Alcím: Hogyan nem tud valaki belépni egy SQL Serverbe? A belépés egy két részből álló folyamat, mint minden rendszer esetében: autentikáció és authorizáció. Az autentikáció mondja meg, hogy kik vagyunk: felhasználónév+jelszó például. Az authorizáció pedig megmondja, hogy mi, akik azok vagyunk, akik, mit tehetünk, mire vagyunk feljogosítva.</p>
<p>Ebból következik, hogy a legegyszerűbb nem-belépés az, ha elbukjuk az autentikációt. De az túl egyszerű. Inkább nézzük meg, hogyan lehet elbukni az authorizációt olyan mértékben, hogy be sem jutunk.</p>
<p>A legegyszerűbb a letiltás:</p>
<pre class="brush: sql;">
CREATE LOGIN [SQL01\ddisable] FROM WINDOWS;
ALTER LOGIN [SQL01\ddisable] DISABLE;
</pre>
<p>Csináltunk egy SQL logint egy domain usernek, majd letiltottuk a logint. Könnyű és nyilvánvaló, pipa.</p>
<p>Egy kicsit régebbi történet a DENY LOGIN:</p>
<pre class="brush: sql;">
EXEC sp_denylogin 'SQL01\ddeny';
</pre>
<p>Ez létrehozza az SQL logint a domain userhez, és annak rögtön meg is tiltja, hogy belogoljon. Erről a tárolt eljárásról egyébként <a href="http://msdn.microsoft.com/en-us/library/ms189459.aspx">azt írja a BOL</a>, hogy elavult:<br />
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER LOGIN instead. </p>
<p>Oké, és hogy használjuk az ALTER LOGIN-t? Hát, lehet DISABLE-t mondani, mint az előbb. De az nem egészen ugyanaz: a disable a sys.server_principals catalog is_disabled mezőjét állítja. A deny login pedig nem. Ő a sys. server_permissions catalog view-t bővíti egy sorral, amiben a CONNECT SQL jogot tiltja. Vagyis a fenti deny login script igazából így néz ki modernül:</p>
<pre class="brush: sql;">
CREATE LOGIN [SQL01\ddeny] FROM WINDOWS;
DENY CONNECT SQL TO [SQL01\ddeny];
</pre>
<p>És hab a tortán: ha ez nem elég, akár még ki is lockolhatunk egy accountot. Mi kell ehhez? egy olyan local account (vagy domain) policy, amiben van account lockout N próbálkozás után, plusz be kell állítanunk, hogy az SQL login ellenőrizze a policyt.</p>
<pre class="brush: sql;">
CREATE LOGIN slocked WITH PASSWORD='Password2',  CHECK_POLICY=ON;
</pre>
<p>Természetesen ez csak SQL loginra igaz, mivel a windows accountok lockoutját a Windows maga végzi. Rontsuk el párszor a jelszavát, és azt fogja mondani a jó jelszóra, hogy ki vagyunk lockolva. Erre két lehetőség van: vagy a jelszó ismeretében az ALTER LOGIN UNLOCK, vagy anélkül az ALTER LOGIN CHECK_POLICY=OFF, majd ON:</p>
<pre class="brush: sql;">
ALTER LOGIN slocked WITH PASSWORD='Password2' UNLOCK;
ALTER LOGIN slocked CHECK_POLICY=OFF;
ALTER LOGIN slocked CHECK_POLICY=ON;
</pre>
<p>Már csak egy kérdés maradt: mi a különbség a disable meg a deny között? Hát, a disable kb. arra jó, mint a Windows account disable: fel lehet vele függeszteni valaki-valami hozzáférését egy időre. A deny viszont azt a problémát tudja orvosolni, amikor egy csoportnak adtunk jogot, de azon belül egy kisebb csoportnak, vagy egyes személyeknek nem akarunk hozzáférést adni mégsem. A deny segítségével &#8220;kitakarhatjuk&#8221; őket a jogosultak köréből.</p>
<p>Az unlocknak pedig az a varázsa, hogy ha beállítjuk egy alkalmazásusernek, akkor simán ki tudja zárni az alkalmazást bárki az adatbázisból&#8230; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2011/10/disabled-login-vs-locked-out-login/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jogosultság lekérése T-SQL-ben</title>
		<link>http://blog.rollback.hu/2010/10/jogosultsag-lekerese-t-sql-ben/</link>
		<comments>http://blog.rollback.hu/2010/10/jogosultsag-lekerese-t-sql-ben/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 18:18:04 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=293</guid>
		<description><![CDATA[Keresgéltem a BOL-ban, és belebotlottam egy függvénybe: fn_my_permissions(). Ez igen kedvesen megmondja, hogy milyen jogaim vannak. Néhány példa:

SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
SELECT * FROM fn_my_permissions ('dbo.Mytable', 'OBJECT');

És mivel van kiváló impersonation is, sysadminként más jogait is lekérhetem:

EXECUTE AS LOGIN = 'GipszJakab'
SELECT * FROM fn_my_permissions ('dbo.Mytable', 'OBJECT');
REVERT

]]></description>
			<content:encoded><![CDATA[<p>Keresgéltem a BOL-ban, és belebotlottam egy függvénybe: fn_my_permissions(). Ez igen kedvesen megmondja, hogy milyen jogaim vannak. Néhány példa:</p>
<pre class="brush: sql;">
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
SELECT * FROM fn_my_permissions ('dbo.Mytable', 'OBJECT');
</pre>
<p>És mivel van kiváló impersonation is, sysadminként más jogait is lekérhetem:</p>
<pre class="brush: sql;">
EXECUTE AS LOGIN = 'GipszJakab'
SELECT * FROM fn_my_permissions ('dbo.Mytable', 'OBJECT');
REVERT
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2010/10/jogosultsag-lekerese-t-sql-ben/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 SP2 kiadva!</title>
		<link>http://blog.rollback.hu/2010/09/sql-server-2008-sp2-kiadva/</link>
		<comments>http://blog.rollback.hu/2010/09/sql-server-2008-sp2-kiadva/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 21:07:01 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[service pack]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=280</guid>
		<description><![CDATA[Hölgyeim és Uraim!
Végre a hőn áhított SQL 2008 SP2 kiadatott. Letölthető innen, a fixált bugok listája pedig a KB2285068 cikkben található. Vigyázat, a lista nem hibátlan, 1-2 dolog biztosan hiányzik belőle, például állítólag a lock escalation problémát javították (mely arról szól, hogy SQL 2008-ban van egy bug, amitől az INSERT-nél elfelejt lockot eszkalálni, és annyi [...]]]></description>
			<content:encoded><![CDATA[<p>Hölgyeim és Uraim!</p>
<p>Végre a hőn áhított SQL 2008 SP2 kiadatott. Letölthető <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17">innen</a>, a fixált bugok listája pedig a <a href="http://support.microsoft.com/kb/2285068">KB2285068</a> cikkben található. Vigyázat, a lista nem hibátlan, 1-2 dolog biztosan hiányzik belőle, például állítólag a lock escalation problémát javították (mely arról szól, hogy SQL 2008-ban van egy bug, amitől az INSERT-nél elfelejt lockot eszkalálni, és annyi lockot tud produkálni, ahány sort beszúrunk), de nincs a listában. Én meg még nem próbáltam ki. Majd megírom, ha igen.</p>
<p>Szóval lehet vinni tesztelni, meg várni még a SQL 2005 utolsó, negyedik SP-jére, melyet az év utolsó negyedévére ígértek.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2010/09/sql-server-2008-sp2-kiadva/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows login és az őt felruházó csoporttagságok</title>
		<link>http://blog.rollback.hu/2010/09/windows-login-es-az-ot-felruhazo-csoporttagsagok/</link>
		<comments>http://blog.rollback.hu/2010/09/windows-login-es-az-ot-felruhazo-csoporttagsagok/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 17:47:33 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=269</guid>
		<description><![CDATA[Klasszikus probléma, hogy van egy Windows login az SQL szerveren, aki benne van N csoportban, amik benne vannak másik M csoportban, és a répamese jegyében ez összesen nagyon sok csoport lesz. A kérdés pedig az, hogy pontosan melyik csoporttagságán keresztül milyen jogot is szerzett az SQL szerveren. Na, pont erre nyomtam egy lenyűgöző Powershell demót [...]]]></description>
			<content:encoded><![CDATA[<p>Klasszikus probléma, hogy van egy Windows login az SQL szerveren, aki benne van N csoportban, amik benne vannak másik M csoportban, és a répamese jegyében ez összesen nagyon sok csoport lesz. A kérdés pedig az, hogy pontosan melyik csoporttagságán keresztül milyen jogot is szerzett az SQL szerveren. Na, pont erre nyomtam egy lenyűgöző Powershell demót a SQL 2008 R2 bejelentési eseményen, aztán elhagytam a scriptet. Mivel valami dupla mákos hakkolás volt, próbáltam felhajtani, de nem sikerült. Viszont a vicc, hogy ugyanezt a fícsört megtaláltam beleépítve a SQL szerverbe.</p>
<p>A neve xp_logininfo, és két irányba is működik:</p>
<pre class="brush: sql;">
exec master..xp_logininfo [EMEA\EBitemo], 'all'
</pre>
<p>megmondja az összes csoportot, melyen keresztül engem beenged a SQL Server.</p>
<pre class="brush: sql;">
exec master..xp_logininfo [EMEA\#DBA_Operators], 'members'
</pre>
<p>pedig megmondja, h kiket is enged ő be azon a csoporton keresztül.</p>
<p>Ezzel TT felé való négyhónapos adósságomat rendezettnek tekintem :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2010/09/windows-login-es-az-ot-felruhazo-csoporttagsagok/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

