Fork한 Repository 를 최신으로 동기화하는 방법은 다음과 같다. 

 

 1. 원본 Repository 를 Remote Repository 로 추가 해야한다. 

  => git remote add [Repository Name] [Repository Address]

  => git remote -v 로 등록된 Repository 목록을 확인 할 수 있다. 

 

2. git fetch 명령을 통해 최신 내용을 가져온다. 

  => git fetch [Repository Name] 

 

3. 최신 내용을 master branch 또는 원하는 branch로 merge 한다. 

  => git checkout [branch name] (merge 할 branch를 변경 하고 싶은 경우 사용)

  => git merge [Repository Name]/[Branch] 

 

4. 위 내용은 Local Repository에 적용한 것이므로 push 를 통해 Remote Repository에도 적용 시켜주어야 한다. 

  => git push [Repository Name] 

 

 

'0x012 Etc' 카테고리의 다른 글

[Etc] GitHub 학습 사이트  (0) 2018.11.18
[Term] Use-After-Free Exploit  (0) 2017.12.29
[Etc] Open Source License Guide  (0) 2017.12.29
[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29

GitHub 학습 사이트 


https://learngitbranching.js.org/ 

'0x012 Etc' 카테고리의 다른 글

[Git] Fork한 Repository 최신으로 동기화 하는 방법  (0) 2019.06.03
[Term] Use-After-Free Exploit  (0) 2017.12.29
[Etc] Open Source License Guide  (0) 2017.12.29
[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29

  Use-After-Free 취약점은 Free된 포인터를  사용함으로써 발생하는 버그이다. Use-After-Free 버그가 발생되는 대표적인 예는 아래와 같다. 

 

Object *obj = (Object *) malloc(sizeof(Object));
obj->Method();
free(obj);

obj->Method(); // Use-After-Free

 

  Dangling Pointer : 이미 Free된 메모리를 가리키는 포인터 

'0x012 Etc' 카테고리의 다른 글

[Git] Fork한 Repository 최신으로 동기화 하는 방법  (0) 2019.06.03
[Etc] GitHub 학습 사이트  (0) 2018.11.18
[Etc] Open Source License Guide  (0) 2017.12.29
[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29

  Open Source 소프트웨어는 일반적으로 자유롭게 사용, 복제, 배포, 수정할 수 있으며, 소스코드가 공개된 소프트웨어를 말한다. Open Source 소트프웨어 역시 독점소프트웨어와 동일하게 저작권 등에 의한 법적 보호를 받고 있으며, 이와 같은 권리에 기반하여 이용자에게 라이센스를 부여한다. Open Source 라이센스에서 요구하고 있는 준수사항을 이행하지 않는 경우 권리자로부터 저작권 위반( 또는 계약 위반)으로 소송을 제기 당할 수 있다. 따라서 인터넷 상에서 자유롭게 구할 수 있는 오픈소스를 개발에 적용할 때는 반드시 라이센스 요구 사항을 확인해야한다. 주요 라이센스 별 요구 사항은 다음과 같다
 


GPL

   FSF(Free Software Foundation)에서 주도하여 만든것으로 BSD License 와 비슷하지만 카피레프트 조항과 소스코드 제공 의무를 가지고 있다는 점에서 큰 차이가 있다.

 
< 그림 1. GPL 관련 규정 >

 

   동일한 바이너리에 포함되지 않더라도 동적 링크 등의 방식으로 공유주소영역에서 링크되어 실행되도록 설계된 경우, 플러그인이 동적으로 링크되어 함수를 호출하고 데이터구조를 공유하는 경우에도 GPL 소프트웨어와 함께 링크되어 실행되는 소프트웨어에도 GPL 이 적용되어 소스코드를 제공해야한다. 반면 두 개의 프로그램이 파이프, 소켓, Command-Line Arguments 형태로 통신하는 경우, 플러그인이 fork() / exec() 을 이용하는 경우 등은 별도의 저작물로서 GPL 이 적용되지 않는다.


 

< 그림 2. GPL 관련 규정 >

 

< 그림 3. GPL 관련 상담 사례>


LGPL

  주로 라이브러리에 사용하기 위해 FSF( Free Software Foundation ) GPL 과는 별도로 만든 라이센스이다. 라이브러리에 GPL 라이센스를 적용하게 되면 응용프로그램까지 GPL로 배포해야 하므로 GPL의 내용을 약간 수정하여 라이브러리 자체를 수정한 경우에는 카피레프트 조항을 적용하고, 해당 라이브러리를 이용한 응용프로그램은 카피레프트 조항을 적용하지 않고 소스코드 제공 의무도 없다.  

BSD License

  버클리 대학에서 만든 라이센스로 소프트웨어를 재배포할 때 저작권 표시를 할 것과 준수 조건 및 보증부인에 대한 고지사항을 소스코드 도는 문서 및 기타 자료에 포함할 것을 요구 하고 있다.
 
Apache License

  아파치소프트웨어재단( Apache Software Foundation ) 에서 배포한 라이센스이다. 1.0 1.1 버전은 BSD License 와 유사하게 간단한 내용만 담고 있었지만, 현재 사용되는 2.0 버전은 비교적 상세한 내용을 담고 있다. 배포 시 의무사항으로는 저작권, 특허, 상표, 권리 귀속에 대한 고지사항을 소스코드 또는 “Notice” 파일 등에 포함할 것과 수취인에게 라이센스 사본을 제공하도록 요구하고 있으며 파일을 수정하여 배포할 경우 수정된 파일에 대해 수정사항을 표기한 안내 문구를 첨부할 것을 요구하고 있다.
  하지만 카피레프트조항( 원 코드나 수정코드를 재배포할 때 동일한 라이센스로 배포해야한다는 조항 )을 포함하고 있지 않기 때문에 반드시 동일한 라이센스로 배포할 필요는 없으며 소스코드 제공 의무도 없지만 Apache 라이센스 등이 요구하는 기타의 사항(저작권 및 개발자 표시, 수정내용 고지 등)은 준수해야한다.

'0x012 Etc' 카테고리의 다른 글

[Etc] GitHub 학습 사이트  (0) 2018.11.18
[Term] Use-After-Free Exploit  (0) 2017.12.29
[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Denial of Service Attack  (0) 2017.12.29

CVE( Common Vulnerabilities and Exposure)는 알려진 소프트웨어의 취약점을 가리키는 고유 표기를 뜻한다.

출처 : http://cve.mitre.org

'0x012 Etc' 카테고리의 다른 글

[Term] Use-After-Free Exploit  (0) 2017.12.29
[Etc] Open Source License Guide  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29

Intrusion Detection System

 

  침입 탐지 시스템(Intrusion Detection System)은 일반적으로 시스템에 대한 원치 않는 조작을 탐지 해준다. 시스템에 대한 원치 않는 조작은 악의를 가진 숙련된 해커 또는 자동화된 툴을 사용하는 스크립트 키디에 의한 공격의 형태로 행해질 수 있다. 침입 탐지 시스템은 전통적인 방화벽이 탐지할 수 없는 모든 종류의 악의적인 네트워크 트래픽 및 컴퓨터 사용을 탐지하기 위해 필요하다. 이것은 취약한 서비스에 대한 네트워크 공격과 애플리케이션에서의 데이터 처리 공격 그리고 권한 상승 및 침입자 로그인, 침입자에 의한 주요 파일 접근, 악성 소프트웨어(바이러스, 트로이 목마, 웜)와 같은 호스트 기반 공격을 포함한다. 침입 탐지 시스템은 여러개의 구성 요소로 이루어져 있다. 센서는 보안 이벤트를 발생시키며, 콘솔은 이벤트를 모니터하고 센서를 제어하거나 경계시키며, 중앙 엔진은 센서에 의해 기록된 이벤트를 데이터베이스에 기록하거나, 시스템 규칙을 사용하여 수신된 보안 이벤트로부터 경고를 생성한다. 침입 탐지 시스템에는 두가지 방법이 존재한다. 두 가지 방법은 아래와 같다.

 

 1) 시그니처 기반 침입 탐지

    악의적인 것으로 추정되는 트래픽 또는 애플리케이션 데이터의 패턴을 감시하여 침입을 식별한다.

  패턴을 가지고 있는 행위만 탐지가 가능하다. 패턴을 서로 공유하거나 업데이트를 통해 새로운 공격
  들을 탐지 할 수 있다. 채집된 정보를 분석하여, 공격 시그니처를 저장하는 거대한 데이터베이스를
  통해 그것을 비교한다. 이미 문서화된 특정 공격을 찾는 것이다.

 

  2) 변칙 기반 침입 탐지

    네트워크 또는 호스트의 일반적인 동작과 다른것으로 추정되는 트래픽 또는 애플리케이션 컨텐트를
   시스템 운영자에게 알리는 것으로 침입을 식별한다. 변칙 기반 침입 탐지 시스템은 이것을 스스로
   학습한다. 변칙 탐지에서 시스템 관리자는 네트워크의 트래픽 로드, 고장, 프로토콜 그리고 일반적인
   패킷 크기에 대한 기준선 또는 일반 상태를 정의한다. 변칙 탐지자는 네트워크 세그먼트를 모니터링
   하여 정의된 기준과 그들의 상태를 비교하고 변칙을 찾는다.

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Etc] Open Source License Guide  (0) 2017.12.29
[Term] CVE  (0) 2017.12.29
[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29

Denial of Service Attack

 

  서비스 거부 공격(Denial of Service Attack) 은 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수 많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스를 이용하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함된다. 수단, 동기, 표적은 다양할 수 있지만, 보통 인터넷 사이트 또는 서비스의 기능을 일시적 또는 무기한으로 방해 또는 중단을 초래한다. 통상적으로 서비스 거부 공격은 유명한 사이트, 은행, 신용카드 지불 게이트웨이 또는 루트 네임 서버를 상대로 이루어 지기도 한다.

 

서비스 거부 공격 기술

 

  1) ICMP Flood

  2) tear drop

  3) Peer 2 Peer Attack

  4)  영구 서비스 거부 공격

  5) 응용 수준 공격

  6) DRDoS

 

출처 : 위키백과 

'0x012 Etc' 카테고리의 다른 글

[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29

Cryptography

 

  암호학(Cryptography)은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로 수학을 중심으로 컴퓨터, 통신 등 여러 학문 분야에서 공동으로 연구, 개발되고 있다. 초기의 암호는 메시지 보안에 초점을 맞추어져 군사 또는 외교적 목적으로 사용되었지만, 현재는 메시지 보안이외에도 인증, 서명 등을 암호의 범주에 포함시켜 우리의 일상에서 떼 놓을 수 없는 중요한 분야가 되었다. 현금지급기의 사용, 컴퓨터의 패스워드, 전자상거래 등은 모두 현대적 의미의 암호에 의해 안정성을 보장받고 있다. 현대 암호학은 암호 시스템, 암호 분석, 인증 및 전자서명 등을 주요 분야로 포함한다.

 

암호학을 이용하여 보호해야할 메시지를 평문(plaintext)이라고 하며, 평문을 암호학적 방법으로 변환한 것을 암호문(ciphertext)이라고 한다. 이때 평문을 암호문으로 변환하는 과정을 암호화라고 하며, 암호문을 다시 평문으로 변환하는 과정을 복호화라고 한다.

 

암호학적 서비스가 제공하고자 하는 목표

 

  1) 기밀성 : 부적절한 노출 방지. 허가받은 사용자가 아니면 내용에 접근 불가.

  2) 무결성 : 부적절한 변경 방지. 허가받은 사용자가 아니면 내용을 변경 불가.

  3) 가용성 : 부적절한 서비스 거부 방지.

  4) 부인방지 : 메시지를 전달하거나 전달받은 사람이 메시지를 전달하거나 전달 받았다는 사실을
                    부인할수 없어야함.

 

출처 : 위키백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29

Social Engineering

 

  사회공학(Social Engineering)은 보안학적 측면에서 기술적인 방법이 아닌 사람들간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법을 일컫는다. 우선 통신망 보안 정보에 접근 권한이 있는 담당자와 신뢰를 쌓고 전화나 이메일을 통해 그들의 약점과 도움을 이용하는 것이다. 상대방의 자만심과 권한을 이용하는 것, 정보의 가치를 몰라서 보안을 소홀히 하는 무능에 의존하는 것과 도청 등이 일반적인 사회 공학적 기술이다. 이 수단을 이용하여 시스템 접근 코드와 비밀번호를 알아내 시스템에 침입하는 것으로 물리적, 네트워크 및 시스템 보안에 못지 않게 인간적 보안이 중요하다.

출처 : 위키 백과

 

Phishing

 

  피싱(Phishing)은 전자우편  또는 메신저를 사용해서 신뢰할 수 있는 사람 또는 기업이 보낸 메시지인 것처럼 가장함으로써, 비밀번호 및 신용카드 정보와 같이 기밀을 요하는 정보를 부정하게 얻으려는 사회공학(Social Engineering)의 한 종류이다. 피싱(Phishing)이란 용어는 fishing에서 유래하였으며 Private date와 pishing 의 합성어이다. 즉, 점점 더 복잡한 미끼들을 사용해서 사용자의 금융정보와 패스워드를 '낚는다'는 데서 유래 되었다.

  피싱 사고에 대한 신고가 늘어감에 따라 피싱을 막으려는 방법들이 필요하게 되었다. 이런 방법들에는 법, 사용자 교육, 그리고 기술적인 도구 들이 있다. 최근에는 컴퓨터를 이용한 피싱외에도 보이스피싱(Voice Phishing)이라고 하여 전화를 이용한 피싱도 등장하고 있다.

 

 특징

   1) 메일을 이용해서 신뢰할 수 있는 메일 주소로 가장한다.

   2) 신용카드 번호나 패스워드 입력을 요구한다.

   3) 백신 소프트웨어에 검출되지 않는다.

   4) 웹 사이트를 만드는 기술 이외는 특별한 기술은 아무것도 필요가 없다.

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29

Code Obfuscation

 

  코드 난독화(Code Obfuscation)는 프로그램을 바꾸는 방법의 일종으로, 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다. 난독화는 대상에 따라 크게 소스코드 난독화와 바이너리 난독화로 나눌 수 있다. 소스코드 난독화는 C/C++/자바 등의 프로그램의 소스코드를 알아보기 힘든 형태로 바꾸는 기술이고, 바이너리 난독화는 컴파일 후에 생성된 역공학을 통해 분석하기 힘들게 변조하는 기술이다. 출처 : 네이버 지식백과

 

  .NET으로 개발된 프로그램의 경우 .NET Reflector 라는 툴을 이용하면 프로그램의 소스코드를 확인 할 수 있습니다. 이러한 경우 프로그램의 내부 흐름과 알고리즘등이 그대로 노출되는 문제점이 발생하게 됩니다.. 이러한 문제점을 막기 위해 사용 하는 방법 중 하나가 코드 난독화 입니다. 코드 난독화는 직접 프로그램을 만들어서 이용하셔도 되지만 이미 많은 툴들이 개발되어 출시 되고 있기 때문에 적당한 툴을 선택하셔서 이용하시면 됩니다. 

 

 

 

출처 : http://www.codejam.or.kr/codejam/index.jsp

'0x012 Etc' 카테고리의 다른 글

[Term] Cryptography  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29

+ Recent posts