'2008/10'에 해당되는 글 17건

GTK+ 에서의 window code 설명 :: 2008/10/27 22:00   by 이슬희(17기)

저번시간에 window를 만들어 보았습니다. 아주 간단하게 몇줄 끄적였더니 하나의 귀엽고 앙증맞은 window가 생성되었죠?
오늘은 소스 코드에 대하여 설명하도록 하겠습니다. 처음 전 몇줄 없다고 대충 훌터 보았었지만, 그렇게 되면 결국 다시한번 보게 되더라구요 ^ ^ GTK+의 소스 하나하나 설명을 해보겠습니다.

#include <gtk/gtk.h>
이것은 gtk를 사용하기 위해 꼭 필요한 헤더입니다. /usr/include/gtk/ 
실제 gtk의 함수들은 여러 헤더 파일에 함수를 선언하고 있지만 위의 헤더파일만 선언해 주면 되지만, 가끔은 위의 헤더에 내장되어있지 않은 함수가 있기도 합니다. (그럴 경우에는 따로 프로젝트를 진행하면서 설명하도록 하겠습니다.) 그렇지만, 위의 헤더함수가 다른 하위 헤더파일을 거의 포함하고 있습니다.

gtkwidget *window;
이것은 gtk프로그래밍 할 때 꼭 선언되는 변수입니다. c나 c++ 등 프로그래밍을 할때 변수를 선언해 주듯이 선언해 주면 됩니다. gtkwidget은 문자 그대로 gtk widget의 한종류라는 것을 나타내줍니다. 우리는 window를 생설할 것이기 때문에 저는 window 로 선언하겠습니다. gtkwidget 은 여러 가지가 있지만, gtk로 짜여진 프로그램의 대부분 인터페이스는 저 자료형 하나로 선언가능한 것이 많습니다. 버튼 메뉴, 아이콘, 상태바, 레이블 등 모든 것이 저 자료형(gtkwidget)으로 선언하면 됩니다.

 gtk_init (&argc, &argv);
이것은 프로그램 실행 파일에 인수로 넘겨받는 것을 처리 하는 부분이며, 기본으로만 실행하기 위해서 내부 함수를 쓰는 부분이다. c에서 사용하시는 함수의 개념을 생각하시면 이해를 하시기에 조금의 도움이 됩니다.

 window = gtk_window_new (gtk_window_toplevel);
위에서 변수를 선언 했으니 이제 사용을 해보겠습니다. 모든 것이 저 하나로 선언가능하다면 어느 부분에 사용할 것인가를 정해야 할 것이다.위의 선언문을 하나씩 풀어보겠습니다.
window라는 변수는 단순히 변수에 window라는 형태를 갖는 역학을 하는 부분입니다. 윈도우는 말그대로 창을 의미합니다. (MFC에서의 Dialog와는 다른 개념입니다.) gtkwidget의 가장 기본이 되고 바탕이 되는 부분입니다. 가장 기본적이고 심플한 window를 생성할 것이 기때문에 우리는 gtk_window_toplevel 이라는 window의 특징을 선언해 준것입니다.
즉, 다시 말해서 window라는 변수안에 gtkwidget중 가장 기본적인 toplevel(가장 기본적인 window)을 정의해준 것입니다.

앞으로 여러 가지 widget을 만들어 보겠지만, 대부분 gtk_*_new 형태의 함수로 위젯을 정의 하게 될 것이다. '*'은 button, menu, label, box, frame 등이 됩니다.

gtk_widget_show (window);
위의 선언문을 해석하면 widget을 show하라는 뜻이며, 이로써 화면에 보이게 됩니다. gtk_widget_show 뒤의 인수 부분에서 화면에 보여질 위젯을 결정합니다. 우리는 window를 하나 만들었고 window만 보여줄 것이라 window만 show하게 되는거겠죠? 여러가지 widget을 생성한다면 widget을 각각 보여줘야겠죠? ^ ^;

gtk_main();
이부분도 마찬가지로 gtk프로그래밍에서 빠지지 않는 부분입니다. 인수도 없으며 단순히 저렇게 적어주면 됩니다. 물론 main 함수의 끝부분쯤에서 써줘야겠죠. 조금 중요한 부분이니 이부분은 나중에 따로 다루어 보도록 하겠습니다. (약간 미루는듯한-_-+)

여기까지가 저번시간에 작성한 코드였습니다. 흠.. 아주 귀엽고 앙증맞지만, 생각외로 close버튼도 있고 전 매우 놀랐습니다. 달랑 윈도우만 만들어 지는줄 알았는데 close 버튼이 있는게 어디입니까~ 다들 그냥 넘기시겠지만, 전!! 매우 좋았습니다. 분명 찾아보면 최소화, 최대화 버튼도 달린 윈도우를 만들수 있을거라는 생각이 들기 때문입니다.

위에 살짝쿵 설명했듯이, GTK+에서는 window와 dialog는 다른 방식입니다. gtk_window_new()를 위한 또다른 define으로 GTK_WIDNOW_TOPLEVEL말고 GTK_WINDOW_DIALOG 도 있습니다. 이것은 윈도매니저와 약간 다른 방식으로 상호작용하며, 일시적인 윈도 들에 대해 쓰여지고 있습니다. 예를 들어 기본 윈도우에 팝업 정도의 개념이라고 생각하시면 됩니다.

그럼 위의 코드를 응용하여 dialog를 만들어 낼 수 있겠죠? 다들 한번 응용해 보세요~
이제부터 위의 코드에 widget을 하나씩 추가하여 기능성 있는 window를 만들어 볼까 합니다.

오늘은 사정상 새로운 내용을 첨가 하지 못하였습니다. 다음주부터는 분발하겠습니다 ^ ^ 넓으신 마음으로 봐주세요 ~
그럼 이번주도 매일매일 올라오는 즐겁고 흥미로운 블로그를 보면서 열공하겠습니다..ㅋㅋ



 

☆ 글쓴이 소개☆
이슬희(17기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/281
Name
Password
Homepage
Secret

GTK 설치 및 컴파일 :: 2008/10/20 22:00   by 이슬희(17기)

오늘은 GTK를 설치해 보려고 합니다.^ ^
저는 처음 GTK를 배울때, 누군가(아주 멋진분)의 도움으로 쉽게 설치 할 수 있었습니다.
그래서 이번 블로그를 쓰기위해 그분의 자료를 살포시 참고했지요.
설치 방법대로 제 컴도 살펴 보았어요. 그럼.. 시작해볼까요? ㅋㅋ

gtk 설치하려면 여러가지가 필요합니다.
패키지로 받아서 설치하는 방법이 있다고 하네요.
http://www.gtk.org 에서 받아서 설치하면 된다네요.
tar xvfz gtk+-2.0.0.tar.gz
tar xvfj gtk+-2.0.0.tar.bz2   

./configure --prefix=/opt/gtk

make
make install    /etc/profile에 집어 넣어주고

PPFLAGS="-I/opt/gtk/include/gtk-2.0/"
LDFLAGS="-L/opt/gtk/lib"
PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
export CPPFLAGS LDFLAGS PKG_CONFIG_PATH
LD_LIBRARY_PATH="/opt/gtk/lib"
PATH="/opt/gtk/bin:$PATH"
export LD_LIBRARY_PATH PATH   

/bin/gtkgcc 라고 만들어서 집어넣주면 된다네요~
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` \    `pkg-config --libs gtk+-2.0`

위의 처럼 bin/gtkgcc에 설정을 해주면, 컴파일 할 때 복잡하게 쓰지 않고
gtkgcc 파일명.c 파일폴더
이렇게 하면, 파일폴더안에 쫘잔~ (에러가 없다면)그럼 실행파일을 볼 수 있답니다.


GTK 실행 환경도 만들었는데 오늘은 맛보기로 윈도우 창 하나 띄워 보겠습니다.
일단 파일을 만들어야겠죠? ^ ^
아래와 같이 코딩을 해주세요 ~ 당연! 파일을 만든다음 해주셔야해요 ~

#include <gtk/gtk.h>

int main(int argc, char * argv[])
{
        GtkWidget * window;

        gtk_init(&argc, &argv);

        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

        gtk_widget_show(window);

        gtk_main();

        return 0;

}

위의 내용을 저장한후, 컴파일을 해주세요.^ ^
저는 gtkgcc window.c window 이렇게 했답니다.

GTK 녀석 얼마나 이쁜 윈도우 창을 만들었는지 한번 봐야겠죠? ^ ^

사용자 삽입 이미지


우왕우왕! 이쁘고 귀엽죠~

다음시간에는 윈도우를 만들기위하여 사용한 위의 코드를 설명하겠습니다.
윈도우에 대해 공부도 해보구요 ^ ^*

좋은하루되세요 ^ ^

☆ 글쓴이 소개☆
이슬희(17기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/280
Name
Password
Homepage
Secret

ASIC?FPGA? :: 2008/10/16 00:17   by 김지혜(18기)

 안녕하세요~~17-2기 이호성입니다.
 이번에 FPGA 관련 시그를 하면서 공부한 내용을 차근차근 정리해 보도록 하겠습니다.

 VerilogHDL로 FPGA 개발을 하기전에 배경지식을 알아본다. 반도체 칩을 설계 하는 방법에는 무엇이 있고 특징들은 무엇인지 지금부터 살펴 보겠다.

1. ASIC & FPGA
 현대의 전자제품시장은 여러가지 기능의 다양한 제품이 출현하여 그 제품들 사이의 경쟁력을 가중시키고, 부가가치가 높은 다양한 기능의 고성능,고집적화된 제품들을 빠른 시간내에 개발하여 생산할 것을 요구하게 되고 이러한 문제들을 해결하기 위해 사용자의 주문에 따라 특정용도에 사용하는 ASIC (Application Specific Integrated Circuit)이 등장하게 되었다. 즉 반도체 부품의 저가격화, 다기능화, 제품수명 (Life Cycle)의 단축으로 ASIC기술이 도입되었고 이로 말미암아 반도체 부품의 개발기간이 단축되고 개발 비용이 절감되었다.

 PLD (Programmable Logic Device)는 반도체 제조업체 측에서 보면 다량으로 제조되어 일반적인 용도로 판매되므로 범용성 칩의 범주에 속하고, 사용자 측에서 보면 사용자의 요구에 맞게 일시적으로나 영구적으로 칩내의 기본소자들을 물리적으로 연결시켜 사용하게 되므로 ASIC의 범주에 속하게 된다. PLD는 일반 ASIC보다 회귀시간(Turn-around Time)이 훨씬 줄어들고 개발비가 필요 없지만 PLD를 프로그래밍 할 또다른 장비를 필요로 한다. 이러한 PLD들은 기능적인 유연성(Flexibility)과 확장성 (Expansibility)의 한계를 가지고 있어, 이를 해결하기 위해 FPGA (Field Programmable Gate Array)가 등장하여 Mask Programming된 ASIC의 Gate Arreay와 경쟁상대로 널리 사용되고 있다.

2. LSI 분류

ASIC  : Application Specific IC

ASCP : Application Specific Custom IC
USIC : User Programmable IC
ASSP : Application Specific Custom Standard Product
UPIC : User Programmable IC
CPLD : Complex Programmable Logic Device
FPGA : Field Programmable Gate Array
PLD : Programmable Logic Device
PROM : Programmable Read Only Memory

3. FPGA?
 
이미 설계된 하드웨어를 반도체로 생산하기 직전 최종적으로 하드웨어와 동작및 성능을 검증하기 위해 제작하는 중간 개발물 형태의 집적 회로(IC).
 반도체 제조업자 측에서 보면 양산되어 일반적 용도로 사용 되므로 범용 IC의 범주에 속하고, 사용자 측에서 보면 사용자 요구에 맞게 프로그래밍하여 사용할 수 있으므로 주문형 반도체(ASIC) 범주에 속한다.
 칩안에 수많은 논리 게이트(NAND, NOR, Flip-Flop...)등이 연결이 되지 않은 채로 들어가 있다. 자신이 만들고자 하는 회로를 설계하여 해당 FPGA의 CAD툴(Synthesizer:합성장치)을 돌리면 게이트들의 결선 정보로 변환되어 나온다. 이것을 FPGA에 써주면 원하는 칩으로써 동작한다. 이러한 과정은 한번이 아니고 반영구적으로 무한히 가능하므로 이런회로 저런회로 얼마든지 만들어 볼 수 있다. FPGA 자체 단가는 비싸다. 갓 출시된 수백만 게이트짜리 제품들은 수급상황에 따라 개당 천만원을 넘어가기도 한다.

4. ASIC?
 일반 집적회로와 달리 전자정보통신 제품에 사용할 목적으로 설계된 비메모리 반도체 칩을 말한다. 논리회로형 반도체(FPGA)에 비해 값은 싸지만 상품화하는데 오랜 시간이 필요하다.
 주로 PC에 사용되는 마이크로프로세서나(microprocessor)나 메모리칩(memory chip) 등 일반 집적회로와 달리 특정한 전자정보통신 제품에 사용할 목적으로 설계된 비메모리 반도체 칩이다. 전자제품을 제조하는 업체가 반도체 설계 업체에 개발을 주문하는 형태로 제작되는데, 전자제품의 성능을 좌우하는 핵심 기능을 포함한다.
 설계자 의도를 반영해 회로를 설계하는 논리회로형 반도체(FPGA)에 비해 값은 싸지만 상품화 하는데 오랜시간이 필요하다. 수용자가 제품의 규격을 정해놓고 제조업체에 주문하는 특정 용도 주문제품(ASCP)과 제조업체가 스스로 규정한 용도를 위해 설계제작하는 표준제품(ASSP)으로 분류된다.
 완성된 주문형 반도체를 도입하면 복잡한 중간 개발단계를 생략함으로서 개발에 필요한 인력과 비용을 대폭 줄일 수 있다. 제품의 고급화, 성능의 다양화 등도 가능해 계속 수요가 증가하는 상황이다.
 주문형 반도체 업체에서는 연산장치, 제어장치, 출력장치, 입력장치 등의 부품으로 쓰이는 각종 집적회로를 개발한다. 또 새로운 제조기술과 제조방법 등에 관한 연구, 제조장비의 설치와 유지, 보수는 물론 반도체 칩의 실험 프로그램을 개발하고, 완성품의 작동여부에 대한 점검까지 담당하는 경우가 많다.
 디자인된 회로를 Transistor Level로 그대로 Silicon Wafer안에 그려 넣는다.이렇게 만들어진 집적회로는 기능이 딱 결정이 되어 수정이 불가능하다. 반도체 라인에 한번의 ASIC을 돌리려면 라인 이용료로 한번의 많은 비용(수억)이 들어가지만 이후 양산 물량은 굉장히 저렴하게 대량생산이 가능하다.

 ASIC으로 바로 칩을 만들기 전에 FPGA로 디자인한 회로를 먼저 검증하고, 잘 돌아가는 것이 확인되면 ASIC을 돌리게 된다. FPGA나 ASIC이나 둘다 집적회로이다. ASIC은 목적에 맞게 그 기능이 딱 제한된 IC이고 FPGA는 그 기능을  Programmable하게 바꿀수 있는 장치가 더 들어가 있는 IC라고 생각하면 된다.

참고 : 기초부터 응용까지 Verilog HDL (다다미디어)
         'http://blog.naver.com/bstu24'
☆ 글쓴이 소개☆
김지혜(18기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/279
Name
Password
Homepage
Secret

[UNIX 보안 기초 -1-] 개요 :: 2008/10/16 00:16   by 김지혜(18기)

* 보안에 관한 간략한 개요


1. 정보보호란?

The Protection of information against unauthorized disclosure, transfer, modification, or destruction, whether accidential or intentional [ Information Warfare, July 1996 ]
(우연 또는 의도적으로 허가받지 않은 정보의 누출, 전송,수정,파괴 등으로부터 보호)


2. 정보보호의 원칙

  • OECD 의 개인정보보호 8대 원칙 (1980)
    원문보기[새창]
    1) 수집제한의 원칙
    개인데이터의 수집에 제한을 두어야하며 개인데이터 수집 방법은 적법하며 공정한 수단에 의해 행하도록 하여야 한다. 경우에 따라서는 정보주체에 알리거나 동의를 구하여야 한다.
     
    2) 정보내용의 원칙
    개인데이터는 그 이용목적에 따라야 하며 이용목적에 필요한 범위 내에서 정확, 안전 그리고 최신의 것을 가져야만 한다.
     
    3) 목적명확화의 원칙
    개인데이터의 수집 목적은 수집시 보다 늦지 않은 시점에서 명확하게 되어야 하며 그후의 데이터 이용은 해당 수집 목적의 달성 또는 수집 목적에 모순되지 않도록 하며 목적의 변경 시에 명확한 다른 목적의 달성에 한정되어야만 한다.
     
    4) 이용제한의 원칙
    개인데이터는 명확한 목적이외의 목적을 위해서는 데이터 주체의 동의가 있는 경우나 법률의 규정에 의한 경우를 제외하고는 공개나 이용, 그 외의 사용에 대해서는 금지되어야 한다.

    5) 안전보호의 원칙
    데이터는 분실 또는 부당한 접근, 파괴, 사용, 수정, 공개의 위험에 대해서 합리적인 안전보장 조치에 의해 보호되어야 한다.

    6) 공개의 원칙
    개인데이터에 관한 개발, 운용 및 정책에 관해서는 일반적인 공개 정책이 취해져야 한다. 개인데이터의 존재, 성질 및 주요목적과 함께 데이터 관리자의 식별, 통상의 주소를 분명히 하기 위한 수단이 쉽게 이용될 수 있도록 하여야 한다.

    7) 개인참가의 원칙
    개인은 다음 4가지의 권리를 가진다.
    ① 데이터 관리자는 자기 데이터 유무를 확인할 수 있다.
    ② 자기 데이터를 알 수 있다.
    ③ ① 또는 ②가 거부되었을 경우는 사유를 들을 수 있다.
    ④ 자기 데이터에 관한 이의신청이 인정될 경우는 데이터를 소거, 수정, 완전한, 교정할 수 있다.

    8) 책임의 원칙
    전기통신분야에 있어서 고용문제에 대한 데이터 관리자는 상기의 원칙을 실시하기 위한 조치에 책임을 가진다.
  • NIST 컴퓨터 보안 원칙
    원문보기[새창]
    1). 컴퓨터 보안은 조직의 임무를 지원해야 한다.
    컴퓨터 보안의 목적은 조직의 가치 있는 자원(정보, 하드웨어, 소프트웨어 등)을 보호하기 위한 것이며 적절한 보호 수단의 선택 및 적용을 통하여, 조직의 물리적 재정적 자원, 평판, 법적인 위상, 혹은 다른 유 무형 자산의 보호하는데 그 의미가 있다.
    또한 보안은 목적을 달성하기 위한 수단으로서 존재하며, 그 자체가 목적은 아니다. 예를 들면, 개인적인 사업 영역에서의 보안은 이익을 창출하기 위한 부가적인 수단이 될 수 있으며, 공공기관에서의 보안은 대중에게 제공하는 서비스의 수준을 향상시키기 위하여 필요한 부가적인 수단이 되는 것이다.

    2). 컴퓨터 보안은 견고한 관리를 위한 필수 요소이다.
    정보와 컴퓨터 시스템은 조직의 임무를 지원하는 결정적인 자산이다. 그 자산을 보호하는 것은 조직 경영관리를 위한 필수요소이다. 그러나, 정보와 컴퓨터 관리에 있어서 보안에 대한 문제를 포함하는 것 만으로는 이러한 자산에 대한 위험 가능성을 완벽하게 배제할 수는 없다. 결과적으로 조직의 관리자는 보안 통제에 따르는 비용을 반영하여 허용 가능한 위험의 수준을 결정하여야 한다.

    3). 컴퓨터 보안은 비용대 효과가 고려되어야 한다.
    보안에 대한 비용과 이익은 보안의 실현에 따르는 비용이 효과를 넘지않도록 금전적인 면과 비 금전적인 면에 대하여 주의 깊게 검토되어야 한다.. 보안은 컴퓨터 시스템에 대한 의존도, 가치, 잠재적인 위협의 심각성 및 발생가능성 등을 고려하여 적절하고, 균형있게 이루어져야 한다. 만약 위험을 방치했을 때 발생되는 손실보다 직·간접적으로 더 많은 비용이 든다면 보안대책은 비용대 효과면에서 고려되어야 한다.

    4). 컴퓨터 보안에 대한 책임과 책임추적성이 분명해야 한다.
    컴퓨터 시스템의 소유자, 공급자, 사용자 및 보안에 관련된 사람들의 책임과 책임추적성이 분명해야 한다 .만일 시스템이 외부 사용자를 가지고 있다면, 그 소유자는 다른 사람들로 하여금 그 시스템이 적절하게 안전하다는 확신을 가질 수 있도록 보안 대책의 일반적인 범위와 현황에 대하여 정보를 제공하고 이에 대한 책임을 가지고 있어야 한다.

    5). 시스템 소유자들은 그들의 조직 외부에 대해서도 보안 책임을 갖는다.
    IT 시스템 및 관련된 다른 분야의 소유자, 공급자 그리고 사용자는 그에 대한 책임 및 의무가 명백하게 정의되어야 하며, 책임의 할당은 조직 내부 혹은 조직의 경계 밖에까지 확대되어 질 수 있다.

    6). 컴퓨터 보안은 포괄적이고 통합된 접근방법을 필요로 한다.
    효율적인 컴퓨터 보안은 모든영역을 고려하는 포괄적인 접근법을 필요로 한다. 즉 관리자들은 컴퓨터 보안이 다른 시스템의 영역 및 전체적인 조직의 관리 구조에 대하여 어떻게 연관이 있는지 이해하여야 한다.

    7). 컴퓨터 보안은 정기적으로 재평가되어야 한다.
    컴퓨터와 그 운영 환경은 동적이다. 그래서 시스템 기술과 사용자, 시스템내의 데이터와 정보, 시스템과 관련된 위험과 보안 요구는 항상 변화한다 그러므로 시스템이 한번 잘 구현되었다 할지라도 그것이 동적으로 변화를 반영하지 못하면 그 시스템의 보안은 결코 완벽할 수가 없는 것이다. 또한 시스템 사용자들과 운영자들은 보안 설정을 우회하거나 파괴하는 방법을 의도적 혹은 비의도적으로 새로이 발견하게 되며. 시스템 및 환경의 변화는 새로운 보안 취약성들을 생성하기도 한다. 따라서 IT 시스템 보안은 주기적으로 재 평가되어야 한다.

    8). 컴퓨터 보안은 사회적인 요인에 의해 제약된다.
    조직의 임무를 지원하는 보안 능력은 사회적 쟁점과 같은 다양한 요인에 의해 제한될 수 있다. 예를들면 보안정책과 사업장에서의 프라이버시는 서로 대립될 수 있다. 그러므로 보안의 통제 수단은 다른 사람들의 법적인 권리를 이해하는 바탕에서 선택되고 구현되어야 한다. 다시 말해서, 정보의 소유자가 요구하는 보안과 사용자의 사회적인 목표가 조화를 이루어야 한다.
  • GASSP의 정보보호원칙
    원문보기[새창]
    1) 보편적 원칙(Pervasive Principles)
    기본적인 원칙으로써 거의 불변하며 원칙의 수가 적다.
    1. 책임추적성의 원칙(Accountability Principle)
    2. 인식의 원칙(Awareness Principle)
    3. 윤리원칙(Ethics Principle)
    4. 다중협력의 원칙(Multidisciplinary Principle)
    5. 균형성의 원칙(Proportionality Principle)
    6. 통합성의 원칙(Integrated Principle)
    7. 적시성의 원칙(Timeliness Principle)
    8. 재평가의 원칙(Reassessment Principle)
    9. 공정성의 원칙(Equity Principle)

    2) 광범위한 기능적 원칙(Broad Functional Principles)
    보편적 원칙에 종속되며 다음의 상세원칙의 개발지침을 제공한다. 이 원칙은 기술이나 기타 영향 요소의 중요한 개발에 반영될 때에만 변경되며 다소 원칙의 수도 많고 특수성을 갖는다.
    1. 정보보호 정책(Policy)
    2. 보안 인식(Awareness)
    3. 책임추적성(Accountability)
    4. 정보관리(Information Management)
    5. 환경관리(Environment Management)
    6. 인력의 자격(Qualifications)
    7. 무결성(Integrity)
    8. 정보시스템 생명주기(Life cycle)
    9. 접근통제(Access Control)
    10. 업무연속성 계획(Contingency Planning)
    11. 위험관리(Risk Management)
    12. 네트워크와 기반구조 보호)Infrastructure Security)
    13. 정보보호의 법률, 규제 및 계약상 요구사항(Legal, Regulatory, Contractual)
    14. 윤리실행(Ethical Practices)

    3) 상세원칙(Detailed Security Principle)
    광범위한 기능적 원칙에 종속되며 기술이나 기타 영향요소의 혁신에 따른 잦은 변경이 이루어진다. 원칙의 수도 많고 특수성과 갑자기 부각되는 특성을 갖는다.
    1. Need to know 원칙
    2. Need to go 원칙
    3. Need to do 원칙
    4. 최소권한의 원칙(Least Privilege Principle)
    5. 임무분리의 원칙(Separation of Duty)
    6. 임무 순환 원칙(Rotation of Duty)
    7. 2인조 근무의 원칙(Two-man Principle)


3. 관리자의 역할과 책임
 
시스템 관리자는 시스템을 정상적으로 유지하는 데 있어서 가장 중요한 위치에 있는 사람이다. 관리자가 시스템을 어떻게 관리하느냐에 따라 사용자들이 얼마나 유용하고 편리하게 사용할 수 있는가 하는 것이 결정되어지며 그 시스템의 안정성과 보안에 대한 신뢰도도 결정되어진다.

다음 아래는  '이상용 삼성전자 총무보안그룹 차장'의 글

 아래는 보안관리자가 해야 할 가장 기본적인 책무이다.
 - 보안계획 수립
 - 보안지침을 수립하며 개정
 - 주기적으로 보안점검을 수행
 - 침해사고에 대응
 - 보안 시스템 도입을 기획, 운영 및  관리
 - 보안 시스템에 대한 보안성 검토 및 효율성 분석을 수행
 - 보안관련 교육을 실시를 통하여 보안에 대한 인식제고를 향상
 - 보안위반사고 발생시 해당 사항을 경영층에 보고하고 신속한 조치를 실행
 - 보안대책의 변경 시 변경사항이 보안성에 적합한지 판단

 위의 내용에 부가하여 보안관리자는 실질적인 보안사고에 있어 해당사고를 통한 어떠한 손실이 발생하는지 통계화해서 실제 보안사고를 통하여 기업의 얼마나 많은 손실의 갖게 되는가 분석하고 예방대책을 포함하여 경영층에 제시하도록 하여야 한다.

이와 같은 정보보호관리자의 업무분야는 이미 언급한 것과 같이 경영진과 현업과의 관계수립을 다루어야 한다.

정보보호 거버넌스의 5가지 요소는 다음과 같다.
- 정보보호 이니셔티브를 위한 최고경영진의 참여
- 정보보호 현안에 대한 경영진의 이해
- 정보보호와 기업비지니스의 연계
- 정보보호 핵심척도 분석을 통한 경영진과 관리진의 소유권과 책임
- 조직의 목적에 대한 정보보호의 연계

이상의 요소가 충족되어야만 정보보호 거버넌스가 수립됐다고 할 수 있다.


 
4. 보안등급
 보안을 실시한다고 할 때 과연 어느 정도로 정보가 안전한가를 객관적으로 판단하기 위하여 여러 단체에서 보안의 정도를 판별하는 기준을 세워 놓은 것이 있다. 그 중 가장 권위 있는 것이 Trusted Computer System Evaluation Criteria (TCSEC)이다. 여기에서는 컴퓨터 보안에 관한 여섯 가지 기본 항목을 정하였다. 여섯 가지 항목은 다시 다음의 세 그룹으로 나뉘어진다.

  • Policy
    • Security Policy
    • Marking
  • Accountability
    • Identification
    • Accountability
  • Assurance
    • Assurance
    • Continuous Protection

이 항목들에 의하여 보안등급이 나뉘어진다. 보안등급은 D, C, B, A 등으로 나뉘며 세부적으로는 다시 C1, C2, B1, B2, B3 등으로 나뉘어진다. 보안은 등급이 A로 갈수록 강력하며 같은 등급 내에서는 뒤에 붙는 숫자가 클수록 강력하다. 보안등급에 대하여 간단히 설명하면 다음과 같다.  

  • D 등급: 보안이 거의 또는 전혀 고려되지 않은 상태로 주로 외부에 완전히 공개되어 있는 PC등이 여기에 해당된다.

  • C1 등급: 사용자가 서로 침범할 수 없게 되어 있다. 정보는 모두 사용자 단위로 접근 허가를 줄 수 있어서 모든 사용자는 특정한 정보에 대한 접근(access) 권한만을 가질 수 있다. 이 정도의 보안은 그렇게 강한 보안은 아니며 단지 사용자가 실수로 다른 사용자의 정보를 접근할 수 없도록 한 정도이다. 보통의 UNIX 시스템이 여기에 해당된다.

  • C2 등급: C1보다 약간 엄격한 정도로, 사용자들의 로그인(login) 정보를 포함하여 보안과 관계된 모든 로그 정보를 저장해 두어서 필요할 때 보안감사(auditing)를 할 수 있도록 하는 정도의 보안이다. 이 정도는 되어야 비로소 안전하다고 할 수 있다. 현재는 VMS(DEC), AOS/VS(Data General) 등이 C2 정도의 보안등급임을 NCSC(National Computer Security Center)에서 인정하였다. 현재 UNIX를 C2 보안등급으로 바꾸어주는 패키지들이 UNIX 클론(clone) 제작 회사들에서 만들어지고 있지만 NCSC에서는 아직 인정해주지 않고 있다.

  • B1 등급: 우선 C2의 모든 것을 포함하여야 한다. 그 외에 보안정책이 있어야 하고 모든 데이터는 각각 레이블을 붙일 수 있어야 한다. 레이블을 붙인다는 것은 자료 객체(data object)에 보안등급 같은 것을 정해 놓을 수 있어서 낮은 보안등급을 가지고 있는 사용자가 높은 보안등급을 가지고 있는 정보에 접근 하지 못하도록 하는 것이다.

  • B2 등급: B2에서는 B1의 모든 것을 포함하고 보안정책도 일정한 형식을 가지고 정의가 되어 있어야 한다. 보안 정책은 시스템의 모든 데이터에 대하여 각각에 대한 접근방법을 여러가지로 정의할 수 있어야 한다. 이러한 보안은 소프트웨어만으로는 불가능하며 하드웨어적인 뒷받침이 있어야 한다.

  • B3 등급: B2의 모든 것을 가지고 있어야 한다. 그리고 운영체제 내부의 보안과 관련된 코드에서 보안과 관련이 없는 것은 모두 제거되어야 하며 모듈의 크기가 작아서 분석과 테스트가 가능하여야 한다.

  • A1 등급: 이 등급은 B3와 거의 같다. 단지 차이가 있다면 그 시스템이 안전하다는 것을 수학적으로 증명하여야 한다는 것이다. 그러기 위해서는 시스템 보안에 대한 일정한 형식을 갖춘 모델이 있어야 하며 그것을 검증할 수 있는 방법도 제시되어야 한다.

 관리자는 시스템을 어느 정도의 보안등급으로 구축할 것인지를 결정하여야 한다. 이때 주의하여야 할 것은 보안등급이 높다고 해서 꼭 좋다고 볼 수만은 없다는 것이다. 너무 엄격하게 보안을 유지한다면 사용자들의 불편이 그만큼 커지기 때문이다. 그러므로 관리자는 이 점을 충분히 고려하여야 한다.

5. 일반적인 침입수법

A. 정상적인 데이터 전송 .
 

B. 방해 (Interrupted)
 ex) DOS (Denial Of Service), etc

C. 가로채기 (Interception)
 ex) Sniffering, etc

D. 수정 (Modification)
 ex) IP address spoofing, DNS spoofing, etc

E. 조작 (Fabrication)
 ex) IP address spoofing, DNS spoofing, etc

 * 침입수법에 따른 구분
- 신분도용 (Impersonation)
- 신뢰받는 기계로 위장 (Transitive trust)
- 부당 이용 (Exploits)
- 자료 이용 (Data driven)
- 하부구조 이용 (Infrastructure)
- 서비스 거부 (Denial of service)


* Reference
- [book] Security PLUS for UNIX
- [Web] http://en.wikipedia.org
- [Web] http://www.oecd.org
- [Web] http://csrc.nist.gov/groups/SMA/fisma/library.html#02
- [Web] http://csrc.nist.gov/publications/nistbul/csl96-10.txt

다음글 예고
대표적인 공격 유형과 대응책. 실습.

☆ 글쓴이 소개☆
김지혜(18기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/278
Name
Password
Homepage
Secret

[UNIX 보안 기초 -0-] Prologue. :: 2008/10/16 00:15   by 김지혜(18기)


안녕하세요.
18-2 전한경입니다.

저는 Unix의 보안 기초에 대해 공부를 하면서 정리해 나갈 것입니다.
여기에 제가 공부했던 것들 하고있는 것들을 정리하면서 참조했던 소스나 자료들은 출처를 링크로 남겨놓겠습니다.

참고서적은
* Security PLUS for UNIX - 포항공대 유닉스 보안연구회 (영진출판사, 2000)
* UNIX NETWORK PROGRAMMING VOLUME 1(제3판) - STEVENS 외 (교보문고, 2005년)
* Advanced Programming in the UNIX Environment - Stevens
                                   +
                          정보의 바다 인터넷

이 되겠습니다.^__^

블로깅은 생각날때, 공부할때 마다 작성할거구요. 아마도 한 40개 정도의 글이 되지 않을까 생각합니다.


내용은 크게
시스템보안/네트워크보안#1,#2/보안기술/리눅스,윈도NT보안/각종도구들
이렇게 나뉠 것이구요..각 파트당 5~6개의 글들로 구성될 것입니다.


ps.
블로깅에 앞서 편한 글쓰기를 위해 '입니다'가 아닌 '이다'체를 사용할께염~ㅋ



다음글 [UNIX 보안 기초 -1-] 개요

☆ 글쓴이 소개☆
김지혜(18기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/277
Name
Password
Homepage
Secret

MSRDS 란? :: 2008/10/14 06:15   by 김지혜(18기)

로보틱스 스튜디오는 MS에서 2006년 말에 새롭게 출시한 로봇 애플리케이션 개발 툴입니다.

이제는 로봇 S/W 개발 시대입니다. 로봇 S/W 개발은 더이상 로봇 전문 분야의 개발자들에게만 국한된 영역이 아니라 일반 S/W 개발자 모두가 참여할 수 있는 애플리케이션 개발의 한 형태로서 발전하고 있습니다.

로봇 S/W 개발을 어렵게 생각하지 마시고 이제 한번 새롭게 시작해 보시기 바랍니다.

MS의 로보틱스 스튜디오 (이하 MSRS)에서는 기본적으로는 별도의 프로그래밍 언어를 습득하지 않아도 쉽게 로봇 애플리케이션을 개발할 수 있도록 VPL(Visual Programming Language) 이라는 새로운 툴을 제공하며, 고급 개발자들의 경우 C#을 이용하여, 다양한 형태의 서비스들이나 시뮬레이션 프로그래밍을 할 수 있도록 지원합니다.

                           

 

두개의 숫자를 더하는 VPL 구현 예

 

 

 

시뮬레이션 상에서 지원되는 레고 NXT 로봇

 

 

 

시뮬레이션 상에서 지원되는 Pioneer 로봇

 

MS 로봇틱스 스튜디오(MSRS)에서의 프로그래밍 과정은 크게 아래 3가지로 나눌 수 있습니다.

  • 이미 개발되어 있는 서비스들을 이용하여 애클리케이션 개발하기 - VPL을 이용하여 애플리케이션 개발 (초급 과정)

 

  • C#으로 서비스 개발하기 - VPL에서 사용될 수 있는 기본 서비스들을 개발하거나 VPL 없이 애플리케이션을 직접 개발
    • DSS나 CCR에 대한 개념을 적용하여 서비스를 개발함

 

  • 시뮬레이션 프로그래밍 - C#을 이용하여, 직접 시뮬레이션 로봇을 제어하거나 시뮬레이션 로봇을 제작

 

MSRS를 처음 시작하시는 개발자 분들은 처음에는 VPL을 통해 간단히 애플리케이션들을 개발해 보거나 실행시켜 보는 과정을 통해 MSRS의 단계적으로 이해해 나가는 것이 필요하며, 점차 C#을 이용해 개발자 여러분이 스스로 서비스들을 만들어 보는 단계로 나아가면 될 것 같습니다.

그리고 MSRS의 가장 큰 특징은 하드웨어 로봇이 없이도 로봇 애플리케이션 개발이 가능하다는 것인데, 여러분이 직접 시뮬레이션 로봇을 만들어 볼 수 있습니다. 여러 분이 직접 만들 수 있는 로봇의 형태는 아래와 같습니다.

  • 일반적인 바퀴달린 로봇
  • 4족 로봇 또는 6족 로봇
  • 기차 또는 자동차
  • 인공위성 또는 잠수함
  • 로봇 팔과 다리 (로봇 관절)
  • 홈 로봇