º¸¾È´º½º â°£ 17ÁÖ³âÀ» ÃàÇÏÇÕ´Ï´Ù!!

Home > Àüü±â»ç

[±â°í] DB¾Ïȣȭ Á¦Ç°(TDE)ÀÇ º¸¾È ¹®Á¦Á¡ ºÐ¼®-6(Ì¿)

ÀÔ·Â : 2011-11-15 17:55
ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â
°á·Ð : º¸¾È»ó µå·¯³­ ÇãÁ¡¿¡ ´ëÇؼ­´Â º¸¿Ï ÇÊ¿ä


DBº¸¾ÈÀÇ Ãâ¹ßÁ¡ÀÌ DB¿¡ ´ëÇÑ Àý´ëÀû ±ÇÇÑÀ» Çà»çÇÒ ¼ö ÀÖ´Â °ü¸®ÀÚ °èÁ¤(OS°ü¸®ÀÚÀÎ ¡®root¡¯¿Í DB°ü¸®ÀÚÀÎ ¡®SYSTEM¡¯)Àº ÃÖ¿ì¼±ÀûÀ¸·Î ÅëÁ¦µÇ¾î¾ß ÇÏ´Â 1Â÷ ÅëÁ¦ ´ë»óÀ̶ó´Â °ÍÀ̸ç, ±×·¸±â ¶§¹®¿¡ ¸ðµç º¸¾È Á¦Ç°ÀÌ SOD(Separate of Duty, Áï DB°ü¸®ÀÚÀÇ ±ÇÇÑ Áß Áß¿ä µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¢±ÙÀ» ÅëÁ¦ÇÏ´Â ±ÇÇÑÀ» º¸¾È°ü¸®ÀÚ°¡ Çà»ç Çϵµ·Ï ºÐ¸® ÇÏ´Â °Í)¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù.


À¯°¨½º·´°Ôµµ Å»ýÀûÀ¸·Î, DBMS º¥´õ¿¡¼­ Á¦°øÇÏ´Â TDE¿Í °°Àº º¸¾È Á¦Ç°(¶Ç´Â Function)µéÀº DB°ü¸®ÀÚ°¡ ¸ðµç °ü¸®¿Í ÅëÁ¦¸¦ Çϵµ·Ï µÇ¾î ÀÖ´Ù. Áï, ¡°DB°ü¸®ÀÚ´Â ½Å·ÚÇÒ ¼ö ÀÖ´Ù¡±´Â ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀº ÀüÁ¦°¡ ±ò¸° °ÍÀÌ´Ù.


MSSQL 2008°ú Oracle 11gÀÇ TDEµéÀº È®ÀÎ °á°ú ´Ù¼ÒÀÇ Â÷ÀÌ´Â ÀÖ¾úÁö¸¸ DB¾Ïȣȭ Á¦Ç°ÀÌ °®Ãß¾î¾ß ÇÒ º¸¾È ±â´Éµé Áß ¾Ïȣȭ ±â´ÉÀ» Á¦¿ÜÇϸé, Å° ±â¹Ð¼º À¯Áö ¿ä°Ç°ú Å° »ç¿ë±ÇÇÑ ÅëÁ¦ ¿ä°Ç µî Áß¿äÇÑ ±â´ÉµéÀÌ Á¦°øµÇÁö ¾Ê°Å³ª ¹ÌºñÇÔÀ» ¾Ë ¼ö ÀÖ¾ú´Ù. ƯÈ÷ Å×ÀÌºí ½ºÆäÀ̽º ´ÜÀ§ÀÇ ¾Ïȣȭ ¹æ¹ýÀº ¸Þ¸ð¸®»ó¿¡¼­ Æò¹® µ¥ÀÌÅÍ°¡ ³ëÃâµÇ´Â ¹®Á¦Á¡µµ Áö´Ï°í ÀÖ´Ù.


ÀÌ·Î ÀÎÇÑ À§ÇèÀº ¾ÆÁÖ ½±°Ô ¾Ïȣȭ ÇÑ µ¥ÀÌÅÍÀÇ À¯ÃâÀÌ °¡´ÉÇÏ°Ô µÇ¸ç, ½ÇÁ¦ °ËÁõÀ¸·Î È®ÀÎ µÇ¾ú´Ù.


[°ËÁõ °á°ú ¿ä¾à]

°ËÁõ Ç׸ñ

MSSQL 2008ÀÇ TDE

Oracle 11gÀÇ TDE

¸Þ¸ð¸®¿¡ Å×À̺í Àüü¸¦ Æò¹®À¸·Î ·ÎµùÇÏ´Â Ãë¾à¼º °ËÁõ

¸Þ¸ð¸®¿¡ Æò¹®À¸·Î ¾Ïȣȭ Å×À̺íÀ» ·ÎµùÇÏ°í ÀÖÀ¸¸ç dump¸¦ ÅëÇØ Æò¹®À¸·Î ³ëÃâµÈ °ÍÀÌ È®ÀεÊ.

¸Þ¸ð¸®¿¡ Æò¹®À¸·Î ¾Ïȣȭ Å×À̺íÀ» ·ÎµùÇÏ°í ÀÖÀ¸¸ç, SGA¸¦ ¸Þ¸ð¸® DumpÇϸé Æò¹®À¸·Î ³ëÃâµÈ °ÍÀÌ È®ÀεÊ.

Á¢±ÙÅëÁ¦°¡ ¾È µÇ´Â Ãë¾à¼º °ËÁõ

¾Ï¡¤º¹È£Å°ÀÇ »ç¿ë¿¡ ´ëÇÑ º°µµÀÇ ±ÇÇÑÅëÁ¦ ±â´ÉÀÌ ¾ø¾î GRANTµÈ »ç¿ëÀÚ ¶Ç´Â DBA´Â º¹È£È­µÈ Á¤º¸¸¦ º¼ ¼ö ÀÖ¾ú´Ù. °á±¹, DB°¡ °¡µ¿µÇ´Â µ¿¾ÈÀÇ º¸¾È¼ºÀÇ ¾Ïȣȭ ÀÌÀü°ú °°´Ù.

Á µ¿

Å° ±â¹Ð¼º À¯Áö¿¡ °üÇÑ Ãë¾à¼º °ËÁõ

ÀÎÁõ¼­ ¹× Å° ÆÄÀÏ°ú ÇÔ²² µ¥ÀÌÅÍ ÆÄÀÏÀÌ À¯Ã⠵Ǵ °æ¿ì, ´Ù¸¥ ¼­¹ö¿¡¼­µµ Á¦¾à ¾øÀÌ Á¶È¸°¡ °¡´ÉÇÏ´Ù.

wallet°ú wallet open script°¡ ÇÔ²² µ¥ÀÌÅÍ ÆÄÀÏ°ú À¯Ã⠵Ǵ °æ¿ì, ´Ù¸¥ ¼­¹ö¿¡¼­µµ Á¦¾à ¾øÀÌ Á¶È¸°¡ °¡´ÉÇÏ´Ù. ¶ÇÇÑ Script ¶Ç´Â Interactive session¿¡¼­ Æнº¿öµå°¡ È­¸é »ó¿¡ Æò¹®À¸·Î ³ëÃâµÈ´Ù.


À̹ø¿¡ °ËÁõÇØ º» ¹æ¹ýÀº ÁÖ·Î °¢ º¥´õ»çÀÇ ±¸Ãà°¡ÀÌµå ¹®¼­ÀÇ ÀýÂ÷¿¡ µû¶ó ½Ã¿¬ÇØ º¸¾ÒÀ¸¸ç, ÀÌ ¿Ü¿¡ ´Ù¸¥ ±¸Çö ¹æ¹ýµéµµ ÀÖÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª Áß¿äÇÑ °ÍÀº Àû¿ë ¹æ¹ý¿¡ µû¶ó º¸¾È»óÀÇ ÇãÁ¡À» ÁÙÀÏ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ´Â °æ¿ì¶ó ÇÏ´õ¶óµµ, º¸¾È Á¦Ç°Àº ¾î¶°ÇÑ ÇãÁ¡µµ À־´Â ¾È µÈ´Ù.


DBMS º¥´õ»ç¸¶´Ù °íÀ¯ÇÑ TDEÀÇ °³¹ß ¸ñÀûÀÌ ÀÖÀ» °ÍÀÌ°í ±â´ÉÀÇ ÇÑ°èÁ¡ ¶ÇÇÑ °ø½Ä ¹®¼­¿¡ ¸íÈ®È÷ Àû½ÃÇÏ°í ÀÖÀ¸¹Ç·Î Àû¿ë ÇÏ·Á´Â ÀÔÀå¿¡¼­ ÃæºÐÈ÷ ÀÎÁöÇÏ°í °¢Á¾ ±ÔÁ¤¿¡ ¸Âµµ·Ï ±¸¼ºÇÏ¿© ÃæÁ·ÀÌ °¡´É ÇÑ °æ¿ì´Â »ç¿ë¿¡ ¹®Á¦°¡ ¾øÀ» °ÍÀÌ´Ù.


À¯Ãâ À§ÇèÀ» ¾ø¾Ö±â À§Çؼ­´Â ¾î¶°ÇÑ °æ¿ì¿¡µµ  º¸¾È¼ºÀÌ À¯ÁöµÇ¾î¾ß Çϸç À̸¦ À§Çؼ­´Â ÇÊ¿äÇÑ ¸ðµç Option(Oracle»çÀÇ °æ¿ì´Â, HSM°ú Data Vault ¹× Audit Vault µîÀÇ Á¦Ç°ÀÌ ÁغñµÇ¾î ÀÖÀ½)À» °®Ãßµµ·Ï »ç¿ëÀÚ¿¡°Ô ±Ç°íÇÏ´Â °ÍÀÌ Å¸´çÇÏ´Ù.


±¹³»¿ÜÀÇ DB¾Ïȣȭ¿Í °ü·ÃÇÑ ¸ðµç ¿ä°Ç ¹× ±ÔÁ¤À» ÁؼöÇÏ´Â Àü¹® º¸¾È Á¦Ç°µé°ú, ÀϺΠ¿ä°Ç¸¸ ÃæÁ·µÇ´Â Á¦Ç°ÀÌ µ¿ÀÏÇÑ Àã´ë·Î Æò°¡ µÇ´Â ºÒÇÕ¸®ÇÑ ¹®Á¦Á¡¿¡ ´ëÇÑ ÀÎ½Ä °³¼±µµ ÇÊ¿äÇÏ´Ù.


º» ±â°í¹®ÀÇ ÀÛ¼º ¸ñÀû ¶ÇÇÑ ÀÌ·¯ÇÑ Á¡À» Á¤È®È÷ ¾Ë°í ÇÑ°èÁ¡À̳ª º¸¾È»óÀÇ ÇãÁ¡¿¡ ´ëÇÑ º¸¿ÏÀ» ÇÏ¿©¾ß ÇÑ´Ù´Â ÃëÁö¿¡¼­ ÀÛ¼ºµÇ¾úÀ¸¸ç, TDE¸¦ Àû¿ëÇØ °³ÀÎÁ¤º¸º¸È£ °ü·Ã ¹ý ±ÔÁ¤»óÀÇ ¿ä°Ç°ú DB¾Ïȣȭ Á¦Ç°ÀÇ º¸¾È ±â´É ¿ä°ÇÀ» ÃæÁ·ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î ±¸Ãà ÇÒ °æ¿ì¿¡ ÃæÁ·µÇ´Â ºÎºÐ°ú ÃæÁ·ÇÒ ¼ö ¾ø´Â ºÎºÐÀÌ ¹«¾ùÀÎÁö, ±×·Î ÀÎÇØ °¨¼öÇØ¾ß ÇÒ ºÎºÐÀº ¾î¶² °ÍÀÌ ÀÖ´ÂÁö¸¦ Á¤È®È÷ ¾Ë°í ÀÌ¿¡ ´ëÇÑ ´ëºñÃ¥À» ¼¼¿ì´Âµ¥ Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù¶÷ÀÌ´Ù.


[ Appendix ] findsga À¯Æ¿¸®Æ¼ÀÇ ¼Ò½º


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/shm.h>

#include <unistd.h>

#include <sys/errno.h>


#define  OUTLEN   1024


main(argc, argv)

int   argc;

char  *argv[];

{

   key_t key;

   size_t   size;

   unsigned char  *pSGA, *pSGAtmp;

   char  sSearch[1024];

   int   nSearch;

   int   k, l;

   int   nRtn;

int   nShmId = 0;


   if (argc != 4) {

      printf ("%s <key> <size> <search string>", argv[0]);

      exit (-1);

   }


   /* Initialization */

   strcpy (sSearch, argv[3]);

   nSearch = strlen (sSearch);


   /* get key and size */

#ifdef LINUX

   key = strtoll (argv[1],NULL,16);

#else

   key = strtol (argv[1],NULL,16);

#endif

   printf ("Key = [%08x][%ld]", key, key);

   size = atol (argv[2]);

   printf ("size= [%ld]", size);

/* shmget */

   printf ("shmget...");

   nShmId = shmget (key, size, SHM_HUGETLB|0440);

   if (nShmId == -1) {

      printf ("Error shmget with SHM_HUGETBL with errno=[%d]", errno);

      nShmId = shmget (key, size, 0440);

      if (nShmId == -1) {

         printf ("Error shmget with errno=[%d]", errno);

         exit (-1);

      }

   }


   /* attach SGA */

   printf ("shmat...");

   pSGA = shmat (nShmId, NULL, 0400);

   if (pSGA == NULL) {

      printf ("Error shmat with errno=[%d]", errno);

      exit (-1);

   }


/* find specific string */

   int i, j;

   for (i = 0; i < size; i++) {

      if (pSGA[i] == sSearch[0]) {

         for (j=1; j < nSearch; j++) {

            if (pSGA[i+j] == sSearch[j])

               continue;

            else

               break;

         }

         if (j == nSearch) {

            /* printf ("Found: [%s]", &pSGA[i]); */

            printf ("Found: [%s]", sSearch);


            /* print data around it */

            pSGAtmp = (&pSGA[i]) - OUTLEN/2;

            for (k = 0; k < OUTLEN;k = k+16) {

               printf ("%08p ", pSGAtmp);

               for (l = 0; l < 8; l++) {

                  printf ("%02x%02x ", pSGAtmp[k+l], pSGAtmp[k+l+1]);

               }

               printf ("    ");

for (l = 0; l < 16; l++) {

                  if (pSGAtmp[k+l] >= 0x20 && pSGAtmp[k+l] <= 0x7E)

                     printf ("%c", pSGAtmp[k+l]);

                  else

                     printf (".");

               }

               printf ("   ");

            }  /* end of for k */


            i = i + nSearch;

         }

      }

   }  /* end of for i */




   shmdt (pSGA);


   printf ("Done Searching SGA data.");


   exit (0);

}


[±Û_Á¶µ·¼· À̱۷ιú½Ã½ºÅÛ ÀÌ»ç(alex@cubeone.co.kr)]


<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(http://www.boannews.com/) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>

  •  
  • 3
  • ÆäÀ̽ººÏ º¸³»±â Æ®À§ÅÍ º¸³»±â ³×À̹ö ¹êµå º¸³»±â Ä«Ä«¿À ½ºÅ丮 º¸³»±â ³×À̹ö ºí·Î±× º¸³»±â

  • ¡°
  •  SNS¿¡¼­µµ º¸¾È´º½º¸¦ ¹Þ¾Æº¸¼¼¿ä!! 
  • ¡±
 ÇÏÀÌÁ¨ ÆÄ¿öºñÁî 23³â 11¿ù 16ÀÏ~2024³â 11¿ù 15ÀϱîÁö ¾Æ½ºÆ®·Ð½ÃÅ¥¸®Æ¼ ÆÄ¿öºñÁî 2023³â2¿ù23ÀÏ ½ÃÀÛ À§Áîµð¿£¿¡½º 2018 ³Ý¾Øµå ÆÄ¿öºñÁî ÁøÇà 2020³â1¿ù8ÀÏ ½ÃÀÛ~2021³â 1¿ù8ÀϱîÁö
¼³¹®Á¶»ç
3¿ù 15ÀϺÎÅÍ ½ÃÇàµÇ°í ÀÖ´Â °³Á¤ °³ÀÎÁ¤º¸º¸È£¹ý°ú °ü·ÃÇØ °¡Àå ±î´Ù·Ó°í ÀÌÇàÇϱ⠾î·Á¿î Á¶Ç×Àº ¹«¾ùÀΰ¡¿ä?
ÀΰøÁö´É(AI) µî ÀÚµ¿È­µÈ °áÁ¤¿¡ ´ëÇÑ Á¤º¸ÁÖü ±Ç¸® ±¸Ã¼È­
Á¢±Ù±ÇÇÑ °ü¸® µî °³ÀÎÁ¤º¸ ¾ÈÀü¼º È®º¸Á¶Ä¡ °­È­ ¹× °íÀ¯½Äº°Á¤º¸ °ü¸®½ÇÅ Á¤±âÁ¶»ç
¿µÇâÆò°¡ ¿ä¾àº» °ø°³Á¦µµ µµÀÔ µî °³ÀÎÁ¤º¸ ¿µÇâÆò°¡Á¦µµ
¿µ»óÁ¤º¸Ã³¸®±â±â ¹× ¾ÈÀüÁ¶Ä¡ ±âÁØ
°³ÀÎÁ¤º¸ º¸È£Ã¥ÀÓÀÚÀÇ Àü¹®¼º °­È­ À§ÇÑ Àü¹®CPO ÁöÁ¤
±¹¿Ü ¼öÁý¡¤ÀÌÀü °³ÀÎÁ¤º¸ 󸮹æħ °ø°³ µî °³ÀÎÁ¤º¸ 󸮹æħ Æò°¡Á¦µµ
¼ÕÇعè»óÃ¥ÀÓ Àǹ«´ë»óÀÚ º¯°æ ¹× È®´ë
°ø°ø±â°ü °³ÀÎÁ¤º¸ º¸È£¼öÁØ Æò°¡ È®´ë
±âŸ(´ñ±Û·Î)