2014년 대륭포스트타워6차 옥상 전망

Posted by ironmask84
2017. 6. 14. 17:41 취미생활/풍경 사진


3년전 쯤.. 이때 당시 저는 대륭포스트타워 6차 빌딩에서 근무 중 이었습니다...

가산디지털단지역 바로 옆에 있는 빌딩이구요..

열심히 업무를 하다가 바람쐬러 나와서 몇 컷 찍었습니다.. 

폰카로 찍었지만 나름 화질이 좋네요.. 

LG G2폰 카메라인데 아마 800만 화소 카메라였던 듯...

맑은 날씨여서 사진찍기 좋았습니다.


클릭하시면 확대되서 보여요 ^^


구로로 이어지는 전철과 남구로 일대가 보입니다.. 저기 넓적한게 고대구로병원인듯...


날씨가 맑을 땐 이렇게 63빌딩과 남산타워도 어렴풋이 보여요!


남구로 일대... 주택들이 엄청나게 붙어있습니다.. 저 도로를 지나가는 교통량도 어마어마함...



 

2014년 마라톤 - 국민건강마라톤

Posted by ironmask84
2017. 6. 14. 16:45 취미생활/마라톤


사실 2010년 부터 2015년 까지 매년


11월말 혹은 12월 첫째주 토요일에 개최되는 국민건강마라톤에 참여하였습니다.


결식아동돕기라는 명목도 있기에 참가비를 내면서도 나름 뿌듯합니다.


항상 5Km 코스로 했고, 기록은 5년동안 거의 30분 내외로 비슷했네요..


왜 변화가 없었을까.. ㅋㅋㅋ  이때만 5Km 열심히 뛰기 때문 ㅋㅋ



2016년은 제가 참석할 몸 상태가 아니었기에 ㅠㅠ


2017년에 다시 참석하는 저를 기대하고 소망합니당



그동안의 사진들이 어딘가에 있을텐데...


우선 찾게된 2014년 1장이 있어 올립니당


현장의 사진사가 찍어서 올리는 사진인데


공짜샘플사진이라고 글자삽입으로 사진이 엉망이네요 ㅠㅠ


매해 느끼지만 여성마라토너에게 추월당하거나 따라잡지 못할때의 기분이란....


매해 체력증진, 몸단련을 꿈꾸지만 현실은 쉽지 않네요...ㅋㅋ



2017년엔 27분 이내를 꿈꾸며!!



'취미생활 > 마라톤' 카테고리의 다른 글

2010년 첫 마라톤!  (0) 2012.12.19
 

수영 훈련 기록 #1 - 자유영 50m 한 번에 달성!!

Posted by ironmask84
2017. 5. 25. 00:51 생각과 일상/오늘의 일상


올해 2월부터 집 근처 체육센터에 수영을 배우러 다녔습니다.

약15년 전 쯤에 3개월 수영을 배운 적이 있긴 했었습니다만, 
의지도 좀 약했던 때라 그런가 평영까지 진도가 가긴했는데 실력이 잘 안늘었던 기억이 있습니다..^^;

그 후에 군대를 해군으로 가게 되어서 수영 훈련 측정을 받을 때에도..
3개월 배운 실력 발휘를 못하고 안좋은 결과를 받았던 아픈 기억이 ㅠㅠ

이러저러한 이유로 수영을 제대로 한 번 꼭 배우고 싶었는데,
올해 마침 시간적 여유가 생겨서 4개월째 수영을 배우고 있네요.
정확하게는 보름 정도 넘게 참석을 못한 시기가 있어서 3개월 반정도 라고 볼 수 있습니다.

진도는 평영이 끝나는 시기 쯤이어서, 제곧내 접영을 들어갈 수 있을 것 같네요.

아무튼! 서론이 길었지만, 이렇게 첫 수영 훈련 기록을 쓰게된 이유는!!
드디어 50m레인을 한 번에 쉬지않고 자유영으로 돌파했기 때문입니다. ㅋㅋ

배운 개월 수에 비해 습득이 저조할 수도 있지만,
50m의 벽은 높아만 보였습니다.
항상 30m, 35m 쯤 되면 다리에 힘이 부치고, 숨이 너무차서 도중에 멈춰서곤 했었는데,
지금 12시가 넘어갔으니 정확히 어제! 2017년 5월 24일에 한 번에 뙇! 돌파를 한 것이죠.

별 것 아니지만 정말로 통쾌하고 기뻤습니다.
그 동안 다리를 너무 많이 저었던게 문제였나 봅니다.
리듬만 좀 잘타면 다리를 조금 저어서도 자유영이 가능해서 숨이 덜 차서 50m가 가능했던 것 같네요.

배영은 조금 재미없어서 연습을 안하게 되고...
평영은 재밌게 하고 있는데, 아직 속도가 많이 뒤쳐지는 상태..

6월까지만 수영을 배울 수 있을 것 같아서,
미숙하더라도 얼른 접영을 익히고 싶은 마음이 굴뚝같네요.

접영을 익히는 때 다시 수영 훈련 기록 #2 는 이어질듯 합니다... ^^



 

삼성합병 논란 특검 구형 1호

Posted by ironmask84
2017. 5. 22. 19:59 생각과 일상/사회이슈 및 생각


드디어 기대했던 비열하고 부정한 삼성합병 논란에서 법의 심판을 받기 위한 건수가 1개 나왔습니다.
연합뉴스 기사는 아래와 같습니다.
http://www.yonhapnews.co.kr/bulletin/2017/05/22/0200000000AKR20170522088500004.HTML?input=1195m

예전에 이와 관련된 포스팅을 한 바 있습니다.  --> http://ironmask84.tistory.com/308

비록 구형이긴 하지만, 잘못이 확실하다면 실형으로 법의 심판을 받아야죠.

2년 전 삼성 회장자리를 이재용씨에게 승계하기 위한 의도가 매우 다분한 삼성물산과 제일모직을 합병 사건이 있었습니다.
이 때, 합병 찬성의 결과로 이끄는 결정적인 역할을 대주주였던 국민연금관리공단 한 바 있습니다.
문제는 합병 찬성을 하게되면 국민연금관리공단이 1000억원대의 손해를 보게되었다는 것입니다.
사실 들리는 소문에 의하면 1000억원이 아니라 5000억원도 넘을 수 있다는 얘기가 있습니다.
그리고 이 국민연금의 돈은 전 국민에게 돌아가야할 국민 쌈짓돈인데, 이것을 재벌총수가 가로챈 결과가 된다는 것은
너무나 어처구니 없고 격분하게 만드는 일입니다.

이번 7년 구형은 문형표 전 보건복지부 장관이 국민연금관리공단에 찬성하도록 압력을 가했다는 것입니다.
아마도 압력을 가하고 박근혜 정부에 큰돈이 들어오지 않았을까 조심스레 추측을 해봅니다.
그리고 홍완선 전 기금운용본부장도 그 압력에 동의했다는 것에 당연한 심판의 결과로 구형 7년을 받게 되었습니다.

이러한 범죄의 결과가 정확하다면
구형으로 끝나는 것이 아니라, 정당한 법에 의해 실형이 선고되어야 할 것입니다.

그리고 삼성전자 부회장 이재용씨에게 타당한 법의 심판의 결과가 있어야 할 것입니다.


추가로 8월 7일에 이재용 부회장 징역 12년 구형 및 전직 임원 4명 징역 10~7년 구형 되었다고 합니다.

 

디자인패턴

Posted by ironmask84
2017. 4. 1. 15:06 나는 프로그래머다!/기초 다지기


  • 생성 디자인 패턴
    • 싱글톤패턴
      • 어떤 클래스의 인스턴스 개수가 최대 한 개를 넘지 않도록 하는 패턴
      • 이 하나의 인스턴스는 공유자원에 대한 문지기 또는 중앙에 있는 소통의 중심 역할을 한다.
      • 애플리케이션에서 새 인스턴스를 만들 수 없으며, 모든 메소드는 싱글톤을 통해서만 액세스할 수 있다.
      • 애플리케이션에서는 클래스에 있는 정적 메소드를 호출하여 싱글톤을 가져온다.
      • 상속과 인터페이스(싱글톤은 객체다. 따라서 베이스 클래스로부터 상속을 받고 인터페이스를 구현할 수 있다.)
      • 다수 객체로 전환 가능(나중에 마음이 바뀌어 여러 객체를 만들고자 하는 경우에 코드를 많이 바꾸지 않고도 원하는 바를 이룰 수 있다.)
      • 동적 바인딩(싱글통을 생성하기 위해 실제로 사용하는 클래스를 컴파일시가 아닌 실행시에 결정할 수 있다.)
      • 싱글턴 패턴을 구현 할 때는 private 생성자와 정적 메소드, 정적 변수를 사용한다. 

 

 public class Singleton {

1
2
3
4
5
6
7
8
9
 private static Singleton uniqueInstance;
 
 private Singleton(){} //다른 클래스에서 new키워드를 사용할 수 없게 된다.
 public static Singleton getInstance(){  //그래서 getInstance()를 사용할 수 밖에 없다.
  if(uniqueInstance == null){
   uniqueInstance = new Singleton();
  }
  return uniqueInstance;
 }


 

  • 빌더패턴
    • 객체가 어떤 식으로 구축되는지에 대해 모르는 상황에서 단계별로 객체를 생성하는 패턴이다.
    • 객체를 직접 구축하는 대신 빌더의 인스턴스를 만들고 빌더에서 객체를 직접 구축하는 대신 빌더의 인스턴스를 만들고 빌더에서 객체를 대신 만들도록 하는 방식이다.
    • 객체를 초기화하는 데 여러 생성자 매개변수가 필요한 경우, 그 중에서도 특히 동일 또는 유사한 유형의 매개변수가 여럿 필요한 경우에 특히 이 빌더 패턴이 유용하다.
    • 빌더패턴 예시

 

 적용 전

 적용 후

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Window{
 
     public Window(bloolean visible,boolean modal,boolean diaog){
 
         this.visible=visible;
 
         this.modal=modal;
 
         this.dialog=dialog;
 
     }
 
 
 
    private boolean visible;
 
    private boolean modal;
 
    private boolean dialog;
 
}


  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class WindowBuilder{
 
 
 
   public WindowBuilder(){}
 
   
 
   public WindowBuilder setDialog(boolean flag){
 
  
 
        dialog=flag;
 
        return this;
 
    }
 
   public WindowBuilder setModal(boolean flag){
 
  
 
        modal=flag;
 
        return this;
 
    }
 
   public WindowBuilder setVisible(boolean flag){
 
  
 
        visible=flag;
 
        return this;
 
    }
 
   public Window build(){
 
         return new Window(visible,modal,dialog);
 
    }
 
    private boolean visible;
 
    private boolean modal;
 
    private boolean dialog;



 

Secure 코딩과 기본해킹 3가지 기법

Posted by ironmask84
2017. 3. 27. 11:53 컴퓨터공학/Security




1. Secure Cording
SW개발과정에서 개발자 실수, 논리적 오류 등으로 발생하는 취약점을 최소화하는 보안활동
좁게는 소스코드 구현단계에서의 활동이고,
넓게는 SW 개발생명주기 SDLC 의 각 단계별 요구되는 보안활동이 모두 포함됨

1) 입력데이터의 검증

가) SQL Injection
DB와 연동된 웹 어플리케이션에서 입력되는 데이터에 대해 유효성 검증을 하지 않을 경우,
공격자가 입력폼에 SQL문을 삽입하여 DB로부터 정보를 조회하거나 조작하는 취약점

DB와 연동되는 입력값들에 대해서는
SQL 쿼리문관련 특수문자나 SQL명령어들을 필터링 하도록 코드 구현함으로 해결
(ex) ' or 1=1 #  을 통해 TRUE 값 만들수 있음)

나) XSS (크로스 사이트 스크립트)
웹페이지에서 악의적인 스크립트를 포함시켜 사용자 측에서 실행되도록 유도하여 정보 유출 등의 공격 유발

스크립트 종류
Client Side : JavaScipt는 Client측에 다운로드 되어서 브라우져에서 수행
Server Side : JSP, ASP, C#, PHP 등

- 스크립트의 코드 중에 서버에서 값을 받아오는 부분에 대해서는 해당 값에 대해 문자변환 함수나 메소드를 이용하여
유효성 검증을 함으로 해결
- HTML 태그를 허용하는 게시판에서는 White List 선정후 해당 태그만 허용 (Script 태그 금지 등)

2) 보안기능
인증, 접근제어, 기밀성, 암호화, 권한관리 등을 적절하지 않게 구현시 발생하는 취약점

가) 중요 자원에 대한 잘못된 권한 설정
password와 같은 중요자원에는 관리자에 의해서만 read/write 되도록 설정한다.

나) Cross Site Request Forgery (사이트 간 요청 위조)
사용자 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
사용자의 인증 없이 정보에 접근하거나 위조가 가능해진다.

중요한 정보를 처리하는 웹페이지에서는 사용자 재인증 작업을 거치도록 한다.
(코드상에서 ID/Password를 다시 입력받게해서 기존 session의 ID/Password를 비교하도록 한다.)

3) 시간 및 상태
데드락(dead lock)나 자원에 대한 경쟁조건(race condition)과 같이
프로그램 동작과정에서 프로세스 혹은 쓰레드나 시스템 상태에 대한 정보(자원잠금, 세션정보)에 관련된 취약점을 말한다.


가) 경쟁조건(race condition)
한 자원에 대해 동시에 여러 프로세스 혹은 쓰레드에서 접근을 하려고 하면,
동기화 문제가 발생할 수 있고, 
이를 임계영역에 대한 처리를 해서 해결하지만, 잘못 처리하면 데드락이 발생할 수 있다.


4) 에러처리 
에러를 처리하지 않거나, 불충분하면 에러정보에 중요 시스템 정보가 노출될 수 있는 취약점
ex) java에서 e.printStackTrace()와 같이 디버깅 정보를 보여주는 건 개발 때 사용하는 것으로 상용 땐 위험
    그래서 대신 따로 에러메세지를 출력하도록 하고, 내부적인 예외상황은 로그로 따로 저장하도록 구현해야 함

5) 코드오류
메모리의 부적절한 반환 등 개발자의 코딩오류로 인해 유발되는 취약점
Null이 될 수 있는 레퍼런스는 참조하기 전에 널 값인지 검사하도록 한다.

6) 캡슐화
중요한 데이터를 불충분하게 캡슐화하면, 인가되지 않은 사용자에게 데이터 노출이 가능해지는 취약점
멀티 쓰레드 환경인 java 서블릿 등에서는 정보를 저장하는 멤버변수가 포함되지 않도록 하여
서로 다른 세션에서 데이터를 공유하지 않도록 해야한다.



* 아래는 http://ironmask.net/261 참조

2. Race Condition

3. Buffer Overflow

4. Format String

 

웹보안 관련과 OWASP 2013 그리고 2017

Posted by ironmask84
2017. 3. 27. 11:51 컴퓨터공학/Security




국내 웹 취약점 진단기준 : 국정원 10대 취약점, KISA 제시 취약점, 행안부 제시 43개 시큐어 코딩 진단기준
--> CVE, CWE, OWASP 에서 나온 문서들을 참고한 것이다.

1. CVE(Common Vulnerabilities and Exposures) : http://cve.mitre.org , CVE-연도-순서 순의 포맷으로 목록화

2. CWE(Common Weakness Enumeration) : http://cwe.mitre.org , 다양한 언어의 소스코드 취약점 목록화

3. OWASP(Open Web Application Security Project) : https://www.owasp.org/index.php/Main_page
--> 웹어플리케이션에 대한 취약점 Top 10 목록화

4. KISA 점검기준 : http://www.kisa.or.kr/public/laws/laws3.jsp

5. 행정안전부 시큐어코딩 항목 : http://www.mospa.go.kr/


OWASP 2013에 대표적 3가지

1) SQL Injection
   - 유형별
      ㄱ) Error Base SQL Injection : SQL시스템에서  error 리턴시, 그 정보를 이용하여 취약점 찾음
      ㄴ) Blind SQL Injection : 쿼리의 참과 거짓을 통해 데이터 추출
   - 공격방식별
      ㄱ) Form SQL Injection : 입력폼에 쿼리문 Injection
      ㄴ) Union SQL Injection : union select 쿼리문 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 접합
      ㄷ) Stored Procedure SQL Injection : 일련의 쿼리를 함수처럼 실행
      ㄹ) Mass SQL Injection : 한 번의 공격으로 대량의 DB값이 변조 (악성스크립트 이용)
   - 대안
     ㄱ) DB와 연동되는 스크립트의 모든 패러미터 유효성 검증, SQL 특수문자 필터링
     ㄴ) 입력 문자열 길이 제한

2) XSS (cross site script)
   - 유형별
      ㄱ) Stored XSS - 웹서버내에 DB에 악성스크립트가 저장 - 게시판, 방명록 등에서..
      ㄴ) Reflected XSS - 악성스크립트가 공격사이트가 아닌 다른 사이트에 있는 경우
   - 대안
      ㄱ) 사용자 입력값은 반드시 서버단에서 검증 (특수문자는 변환함수로 치환)
      ㄴ) 게시판에서 HTML 태그 허용시, White List 선정후, 해당 태그만 허용 (Script 태그는 금지 등)

3) CSRF 공격 (cross site request Forgery)
웹어플에서 정상적 경로 통한 요청과 비정상 결로 통한 요청을 서버가 구분하지 못할 경우에,
공격자가 스크립트 구문 이용하여, 정상 사용자로 하여금 조작된 요청을 전송하도록 하여
설정 및 정보 변경시키는 경우
   - 대안
      ㄱ) Get 보다는 POST 방식 사용 (Get은 url에 sql문이 노출?)
      ㄴ) 중요기능에는 세션검증과 재인증을 유도한다.



새롭게 TOP 10 에 추가된 3개 항목은 다음과 같습니다.

1. XML External Entities (XXE) 

XXE 라고 부르는 'XML 외부 엔터티' 취약점은 XML 문서의 DTD 구조 정의 시 Entity 항목을 설정할 수 있을 때 발생하는 취약점 입니다.

XML 문서는 마치 변수를 선언한 것 처럼 Entity를 선언하여 사용 할 수 있는데, Entity 선언 시 외부 리소스로 선언이 가능합니다.

아래 코드와 같이 외부 파일, 가령 운영체제의 계정 정보가 기록된 passwd 파일을 외부 엔터터로 선언하고 XML 문서 내에서 '&엔터티명'을 호출하면 해당 파일 내용을 핸들링 할 수 있습니다.

<?xml version="1.0" encoding="ISO-8859-1"?>

 <!DOCTYPE foo [<!ELEMENT foo ANY >

 <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

 <foo>&xxe;</foo>

참고로 일반적으로 마크업 문서에서 <, > 대신 사용하는 &lt, &gt 는 기본적으로 선언된 Entity 입니다.


2. Insecure Deserialization

Javascript 를 비롯하여 여러가지 개발 언어에서 여러가지 이유로 데이터 혹은 객체를 전송할 때 직렬화(Serialization)을 수행하게 됩니다. 가령 특수 문자나 공백등의 구분자가 포함되어 있다던가, 바이너리 데이터를 전송할 필요가 있다던가 URL 호출로 직접 데이터를 전송 할 경우 일반적으로 사용합니다.

이렇게 serialization 된 정보 전송 시 별도의 무결성 검증이나 암호화를 수행하지 않을 경우 프로그램에 영향을 줄 수 있는 악의적인 정보를 전송할 경우 원래 데이터로 복원하는 Deserializtion 시 문제를 발생시킬 수 있습니다.


3. Insufficient Logging & Monitoring

악의적인 공격 징후에 대한 로그를 남기지 않거나 로그를 기록하더라도 모니터링을 수행하지 않으면 지속적인 공격의 대상이 될 수 있습니다.

공격의 징후 (가령 대량의 포트 스캐닝, Brute force 공격 등)에 대한 로그 기록과 지속적인 모니터링을 통해 공격 징후를 파악하고 사전에 공격을 차단할 수 있도록 방비해야 합니다.

[출처] OWASP TOP 10 2017 릴리즈|작성자 강군



2013 버전과 비교하면 몇가지 변경사항들이 좀 눈에 띄입니다. 특히 2013 버전에 있던 CSRF(크로스 사이트 요청변조)가 이번 버전에서 빠졌는데, OWASP 그룹에 따르면 CSRF는 13위에 랭크되어 이번 TOP 10 에서는 제외되었다고 합니다.



아래는 OWASP Top 10 -2017 관련 내용입니다.

처 : https://blog.naver.com/PostView.nhn?blogId=crehacktive3&logNo=221162402841&proxyReferer=https%3A%2F%2Fwww.google.com%2F


드디어 OWASP Top 10 - 2017 최종 버전이 공개되었습니다. 지난번 OWASP Top 2017 RC1 항목에 관해 포스팅을 하였는데 그때와는 다소 항목이 변경된 것을 아래 그림을 통해 알 수 있습니다. 이전 OWASP Top 10 - 2013 버전 보다 훨씬 더 직관적으로 항목이 변경되었으며, 최신 트랜드를 반영한 것을 알 수 있습니다.



OWASP Top 10 - 2013, OWASP Top 10 - 2017 항목 비교


아래는 본문 내용에서 발췌한 내용입니다.


데이터가 제공한 새로운 문제: 

- A4:2017-XML 외부 개체(XXE)는 주로 소스 코드 분석 보안 테스팅 도구(SAST) 데이터 집합에서 지원되는 새로운 범주입니다.


커뮤니티가 제공한 새로운 문제: 

우리는 커뮤니티가 지켜보고 있는 두 가지 취약점에 대한 통찰력을 제공할 것을 요청했습니다. 500개 이상의 개별 제출 및 민감한 

노출, XXE와 같은 이미 제시된 데이터를 제거한 후 다음과 같은 두 가지 새로운 문제가 있었습니다: 

- A8:2017-안전하지 않은 역직렬화는 영향을 받는 플랫폼에서 원격 코드 실행 또는 중요한 개체 조작을 허용합니다. 

- A10:2017-불충분한 로깅과 모니터링은 악의적인 활동 및 침입 탐지, 사고 대응 및 디지털 포렌식을 방해하거나 크게 지연시킬 수 

있는 결함이 있습니다. 


병합했거나 삭제됐지만, 잊지 말아야 하는 사항: 

- A4-안전하지 않은 직접 객체 참조와 A7-기능 수준의 접근 통제 누락은 A5:2017-취약한 접근 통제 항목으로 병합되었습니다. 

- A8-크로스-사이트 요청 변조 (CSRF)은 CSRF 방어를 포함한 많은 프레임워크에 있기 때문에 5%의 애플리케이션에서만 

발견되었습니다. 

- A10-검증되지 않은 리다이렉트 및 포워드는 약 8%의 애플리케이션에서 발견되었지만 XXE에 밀려났습니다

OWASP Top 10 - 2017(한글버전 PDF)

https://www.owasp.org/images/b/bd/OWASP_Top_10-2017-ko.pdf

OWASP Top 10 - 2017(영문버전 PDF)

https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf




 

네트워크 보안 관련

Posted by ironmask84
2017. 3. 23. 13:15 컴퓨터공학/Security


1. ARP Spoofing
: 논리주소(IP) -> 물리주소(MAC) 로 변환해주는 프로토콜인 ARP를 이용하여,
  ARP Request를 계속해서 보냄으로써 공격대상 통신장비에 ARP Cache Table에 저장되어 있는
  임의의 IP, MAC 주소를 자신의 주소로 변경시켜서, 통신데이터를 Sniffing 하는 공격
--> arp -s ip주소 명령어로 정적주소로 타입을 등록함으로 ARP Cache Table 변경을 막는 방법이 있다.

2. ping, traceroute
: ping은 TCP/IP방식의 3계층인 IP프로토콜의 신뢰할 수 없는 전송을 관리해주는 ICMP의 메세지 중
  echo request(type 8), echo reply(type 0)을 이용하여, 네트워크 속도 및 손실률을 검사하는 유틸이다.

: traceroute는 여러 중계 라우터 각 구간에 대한 네트워크 상태를 관리하는 유틸
  ICMP 메세지 중 Time Exceeded(Type 11)와 Destination Unreachable(Type 3)을 이용하고,
  IP헤더에 포함된 TTL(Time To Live) 을 이용한다.

3. ICMP Redirect 공격
:   ICMP Redirect는 라우터만이 보낼수 있는데, 이를 공격자가 자신이 라우터 인것처럼 보이기 위해 IP헤더에
    source ip를 라우터의 주소로 위조하여 보내고, 라우팅 테이블을 변조시킨다.
   보안상의 이유로 일반적으로 OS에서 ICMP Redirect 옵션을 기본적으로 해제한다.
   리눅스에서는 sysctl -w 명령어 이용

4. ifconfig eth1 promisc (2계층 스위치 관련): 자신에게 온 패킷이 아니어도 다 받는다. Sniffing 목적 

5. DNS Spoofing 공격 (DNS는 도메인명 -> IP주소 로 변경해주는 것)
: 희생자가 DNS 쿼리를 수행하면 공격자가 이를 스니핑하고 있다가 희생자 호스트에 위조된 웹사이트로 접속하는
  DNS응답을 보내 위조된 주소로 접속하게 만드는 공격이다. DNS는 UDP를 이용하므로 비연결이라는 특성의 취약점을
  이용하여, 트랜잭션ID만 일치하면 먼저 들어온 응답을 신뢰하는 특성 이용한 것
  --> 중요한 사이트는 hosts 파일에 등록하여, DNS응답보다 우선순위가 높은 hosts파일을 참조하도록 하여 해결 


** 참조 우선순위 : hosts파일 -> 호스트의 dns cache -> resolv.conf파일에 등록된 dns서버정보에 질의

6. DNS Cache Poisoning
: DNS서버의 캐시 메모리에 위조된 데이터를 저장하여 호스트는 이 위조된 정보를 사용하도록 유도는 방식의 파밍 공격
  해당서버에 접근하는 호스트들이 위조된 정보를 응답받으므로 피해가 크다.
  DNS서버가 질의를 받을때, 자신의 Cache에 해당 정보가 없으면 Root DNS서버부터 순환질의를 하는데,
  이틈에 해당 DNS서버에 공격자가 Cache에 정보를 먼저 업데이트 시켜버린다.
  --> DNSSEC 기술을 이용 (기존 DNS에서 공개키 암호화  기능을 추가 부여)
  --> named.conf 파일을 수정하여 재귀적 질의 제한, zone transfer파일 제한

7. DNS Lookup 하는 명령어 (도메인 -> IP주소)
   1) nslookup
   2) dig : nslookup을 대체하기 위함, 리눅스 및 유닉스 계열에는 기본 설치

8. DHCP : 동적으로 클라이언트의 네트워크 주소 (IP)를 설정하기 위한 프로토콜
   * DHCP Starvation 공격 : 할당가능한 IP를 모두 소진하게 만들어  IP할당이 불가능하게 하는 공격
     --> 서로다른 MAC주소로 대량으로 보냄 -> 이에대한 offer 오면 -> request메세지까지 보내고 실제로는 할당안함

9. DDOS : C&C서버(Command & Control)를 이용하여, Bot/좀비PC 들을 컨트롤하여, 타겟을 공격한다.
   ex1) DNS Query Flooding : UDP프로토콜 기반의 서비스를 제공하는 DNS에 대해 DNS쿼리 데이터를 다량으로 서버에
          전송하여 DNS의 정상적인 서비스를 방해
   ex2) TCP SYN Flooding : 공격자는 다량의 SYN패킷을 서버로 전달하여 서버가 새로운 클라이언트의 연결요청을
          처리하지 못함 (syn+ack 받고, ack를 보내지 않아서 처리되지 않은 정보를 계속 쌓이게 만든다.)
   ex3) HTTP Get Flooding : 공격자는 동일한 URL을 반복 요청하여 웹서버가 URL에 대해 데이터를 클라이언트에게 회신하기 위한 서버자원을 사용하도록 공격

10. DRDOS (Distributed Reflection DOS)
: 공격자는 출발지 IP를 공격대상의 IP로 위조하여 다수의 반사서버로 요청정보를 전송,
  공격대상은 반사서버로 부터 다수의 응답을 받아 서비스 거부상태가 됨

  * 공격근원지를 파악하기 어렵다. (출발지 IP를 변조하여, 공격트래픽이 수많은 반사서버를 경유하므로)
  * 좀비PC의 공격트래픽 효율이 증가한다. 반사서버는 syn+ack 패킷에 대한 응답이 없는경우 일정횟수 재전송을
    수행하기 때문에 공격자가 전송하는 syn패킷보다 몇배많은 syn+ack 패킷이 타켓에 전송된다.

** 해결방법
: IP주소가 위조된 패킷이 인터넷망에 유입되지 않도록 ISP가 직접 차단
  반서서버에게는 icmp프로토콜이 필요없는 시스템은 해당프로토콜을 차단




 

Linux 명령어와 시스템보안

Posted by ironmask84
2017. 3. 3. 18:23 컴퓨터공학/Security


1. ls (디렉터리, 파일 정보 출력)
-> 1) 파일종류, 접근권한  2) 하드링크수  3) 소유주  4) 소유그룹  5) 크기  6) 최종 변경일  7) 최종 변경시간  8) 이름

2. stat (i-node 속성정보 출력)
-> 1) i-node number  2) 파일타입  3) 접근권한  4) link count  5) 소유자  6) 소유그룹  7) 크기  8) MAC Time  
    9) Block Index
    ln source_file target_file : 하드링크 
    ln -s source_file target_file : 심볼릭링크 (소프트 링크)

3. find (파일 검색)
-> find path [expression] [action]
    1) find . -name "*.c" : 현재 디렉터리에서 파일명이 .c로 끝나는 파일 검색
    2) find . -size +56 : 현재 디렉터리에서 파일 크기가 56블록보다 큰 것을 검색
    3) find . -perm -664 : 현재 디렉터리에서 user와 group에 읽기 및 쓰기 권한, other에 읽기 권한이 있는 파일 검색
    4) find . -mtime +3 : 현재 디렉터리에서 파일을 수정한지 3일이 지난 것을 검색

4. touch : 0byte 파일을 생성 또는 파일의 시간을 변경

5. umask : 파일 생성 시 접근권한에 영향을 미침 (/etc/profile 에 적용, 개인은 .profile에 적용)

6. diff : 파일이 동일한지 여부를 검사

7. comm : 파일을 비교할 때 사용 (한쪽에만 있거나 양쪽 모두에 있는 행 출력)

8. grep : 파일 내 특정 패턴이나 문자열을 검색

9. ps : 시스템에 상주중인 프로세스 정보 출력
-> UID, PID, PPID, STIME(프로세스 시작 시간), TTY(프로세스가 연결된 터미널), TIME(CPU 사용시간), CMD(프로세스명)

10. 시그널 : UNIX 시스템에서 지원하는 소프트웨어 인터럽트, 프로세스간 통신수단
-> 1) 외부에 의해서 : 키보드 입력 (ctrl + c)
    2) (커널)에러에 의해서 : divde zero 오류, 메모리 참조 오류
    3) 이벤트에 의해서 : alarm() 함수, 프로세스 종료
    4) 인위적으로 : kill() 함수, kill 명령어 (kill -시그널번호 PID)
  * 주요시그널 : SIGKILL(9), SIGSTOP(23) 이 2가지는 무시나 핸들링이 불가능하므로 관리자가 해커를 막기위한 강력권한
  * 좀비프로세스 : 프로세스 수행을 종료했지만 부모 프로세스가 종료상태정보를 확인하지 않아서 소멸하지 않고
                        남아있는 프로세스
  * 고아프로세스 : 자식프로세스가 살아있는 상태에서 부모 프로세스가 종료하게 되면 자식프로세스는 고아프로세스 됨.

11. mount : 보조기억장치에 설치된 파일시스템을 UNIX시스템이 인식하도록 특정 디렉토리에 논리적으로 연결시킴

12. cron : 정기적 처리할 작업을 crontab명령으로 crontab파일에 저장, cron데몬 프로세스가 관리
              해커가 주기적으로 정보를 빼돌리는 데에 사용도 가능하다. -> crobtab 파일 관리 필요

13. /etc/passwd : account / password(x로표시) / user_ID / group_ID / comment / home_directory / login_shell
    /etc/shadow : account / encrypted_password / last_change / minlife / maxlife / warn / inactive / expires
      ** chage 명령어로 패스워드 Aging관련 설정을 할 수 있다. -> /var/log/secure파일에 로그가 남는다.

14. setuid, setgid (chmod ug+s)
   1) setuid, setgid 설정된 경우 -> RUID == EUID,  RGID == EGID
   2) setuid, setgid 설정되지 않은 경우
   -> RUID, RGID = 실행시킨 사용자의 ID
       EUID, EGID  = 실행파일 소유자의 ID (프로세스가 실행중인 동안에 접근권한을 판단하기 위한 ID)
* root소유의 실행파일에 setuid를 설정하면, ruid는 실행자의 id, euid는 root id로 설정이 된다. 
  따라서, 실행 프로그램 내에 euid 설정에 따라 root권한으로 접근하게 된다.

* sticky bit (chmod o+t)
-> 디렉토리에 설정이 되면, 파일의 생성은 자유롭게 할 수 있지만
    파일 삭제 및 파일명 변경은 파일소유자 또는 root만이 가능하다.



 

하이패스 단말기 명의변경!!

Posted by ironmask84
2017. 3. 1. 22:48 재테크/깨알꿀팁


중고차를 구입하면서 하이패스 단말기가 딸려왔습니다. ㅎㅎ

단말기를 본인정보로 등록해놓지 않으면, 
과금 시에 카드에 금액이 부족할 때 이전 소유주의 정보를 통해 연락이 가는 등 
번거롭고 정상적인 사용이 아니므로 본인으로 명의변경 해놓고 사용하는 것이 좋습니다.

혹시나 했는데, 제가 변경할 때 보니 차량번호부터 다르걸 보고는 이 차주인도 명의변경을 하지 않고
사용하고 있었구나 싶었어요 ㅋㅋ

하지만, 저는! 깔끔하게 변경하고 사용하기로 했습니다.
의외로 간단합니다. 아래 사이트에 접속하고 단말기 제조번호만 알면 됩니다.
www.e-hipassplus.co.kr

중고차에 딸려있던 단말기는 엠피온 SET-210이라는 2008년식 모델이더라구요..
꽤 오래된 모델이기도 하고, 첨엔 몰랐는데 버튼을 길게 누르면 음성으로 제조번호, 발행번호 등의 정보를 알려줍니다.ㅋ

1. 음성 듣고 잽싸게 번호를 메모해둡니다.
2. 그리고 www.e-hipassplus.co.kr 사이트에 접속합니다.
3. 명의변경 메뉴에서 제조번호를 입력하고 진행하면 됩니다. 





 

현 시대의 청년실업과 캥거루족

Posted by ironmask84
2017. 2. 20. 15:22 생각과 일상/사회이슈 및 생각


2~3년 쯤 전에 봤던 기사에서 본 그래프였던 것 같은데,
지금 생각나서 올려본다.

그래프를 보면 2010~2011년 대졸자라고 했으니, 
2~3년 전 쯤 당시 30살 정도 되는 인구들을 대상으로 했다고 보면 된다.

캥거루족이란 이미 독립할 나이가 되었지만, 부모님과 함께 거주하거나 따로 살지만 용돈을 받는 이들을 가리킨다.

사실 블로거 운영자도 이때 비슷한 나이였고, 독립은 한 상태였다.
근데 서울은 너무 집값, 땅값이 비싼 것이 문제다.

그래서 결혼을 하지 않은 상태이고, 직장이 부모님집과 같은 지역이면,
캥거루족 처럼 부모님과 같이 사는 것이 좋다고 생각한다. (특히, 서울..)

하지만, 캥거루족 중에서도 몇몇 분류가 나뉜다.
부모님으로부터 용돈을 받느냐 받지 않느냐 인데,
이 부분은 아래 그래프에서 알 수있다.
취업자이냐 비취업자이냐 에서 어느정도 예상이 된다.

위 그래프 표본인 나이 30살 정도의 17000 여명을 대상으로 조사한 자료에서 실업률을 계산해보면,
51.1% X 34.6% = 17.6% 정도로 나온다.
2015년 청년 실업률을 검색해보면 9.2% 로 나오는데, 차이가 꽤 많이 난다??

결론적으로, 양심 상 부모님과 함께 거주는 하되,
생활비 명목으로 부모님께 용돈을 드리는 것이 가장 베스트 케이스 일 것 같다.

우리 나라는 언제 실업률 걱정을 해소할 수 있을까..
옆 나라 일본은 최근 상당히 실업률이 줄어들었다고 한다.
나라 정세가 어지러운 지금.. 정말 훌륭한 정치인이 여럿 나와야 할 때이다 ㅜㅜ


 

방문자 수 10만 돌파 기념 이벤트!! (티스토리 초대장 배포)(마감)

Posted by ironmask84
2017. 2. 18. 21:56 ※공지


블로그 개설 8년 반 정도만에 방문자 수 10만을 돌파했습니다. 짝짝짝 ㅋㅋ

게을리한 기간이 많아서 개설 시작에 비해 초라한 수이지만,
조촐하게 이벤트를 진행해보려 합니다. ㅋㅋ

요즘도 티스토리 초대장이 필요하신분이 있을지.. 는 모르겠지만 ^^

댓글 달아주시는 분 선착순 5분에게 티스토리 초대장을 보내드립니다~
댓글 달아주실 때 초대장을 받으실 메일주소를 적어주세요~

마감되었습니다~~

언제 끝날지 모를? 이벤트이지만 많은 성원 부탁드립니다.  :)

앞으로도 제 맘대로? 양질의 포스팅을 위해 노오오력을 하는 블로그 운영이 계속될 예정이오니,
많은 방문과 댓글 부탁드립니다. ㅋㅋ


2017-2-18 ~ 2017-4-10 기간인 거의 2달만에 이벤트가 끝났네요 ㅋㅋ
다음 이벤트때 뵙겠습니다~~



 

암호화의 진화

Posted by ironmask84
2017. 2. 17. 18:09 컴퓨터공학/Security


암호화를 통한 정보보안 방법은 계속 발전해왔습니다.

--> 스테가노그라피(최근엔 워터마크) -> 전치 -> 단일치환 -> 다중치환 (에그니마) -> DES -> AES -> RSA -> 양자암호학

DES : 페이스텔 구조
AES : SPN 구조


블록암호 원리 : 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘
스트림암호 원리 : 음성, 영상 스트리밍 전송, 무선 암호화 방식 (평문 XOR 키 스트림)

대칭키 -> 키배포문제 -> Diffie-Hellman 키교환 -> 공개키 암호화

hash(무결성 확인)
-> MAC(메세지인증코드, hash + 대칭키암호 이용) -> 2명만이 키 공유하고 있으므로 거짓행세는 해결
-> 부인방지 문제 -> hash + 공개키 암호를 이용하는 전자서명으로 부인방지 해결 -> 중간자 공격으로 공개키 공유 시 올바른지의 문제  
-> PKI도입(공개키 인증서)로 해결 (공개키에 전자서명을 하여 배포, 이 때의 전자서명은 인증기관에서 발급한 공개키로 확인가능, 그 공개키는 App에 포함되어있다. 브라우져 등)


PKI : 공개키 기반구조 라고 하며, 공개키 암호화 알고리즘을 이용하여, 암호화 통신을 하는 구조에서 공개키를 공유하여야 하는데, 이 때 공개키 공유 시 중간자 공격으로 잘못된 키가 공유되지 않도록 하기 위하여, 공개키를 전자서명 기술을 이용하여 공개키 인증서 형태로 공유합니다.  (공개키 + 공개키를 RSA와 hash알고리즘으로 만든 전자서명 형식의 데이터) 이 때 공개키 인증서는 보통 공개키 암호화알고리즘 + hash 알고리즘 형태로 구성된 전자서명 기술로 만들어집니다.

여기서의 전자서명은 CA의 서명입니다.

이 공개키 인증서는 이미 CA에서 인증된 기관이면, 그 공개키 인증서를 브라우져내에 인증할 수 있는 공개키 및 인증방법이 탑재되어 있습니다.  그러므로, 브라우져를 통해 공개키를 안전하게 입수 가능합니다.

* 인증서 표준 규격은 X.509

* 폐지된 인증서의 일련번호의 목록에 대해 인증기관이 전자서명을 붙인 것이 CRL (Certificate Revocation List)

ECC : 타원곡선 문제의 원리를 이용한 공개키 암호화 알고리즘, 1024비트의 RSA 키와 160비트의 ECC는 동일한 보안수준 정도로 ECC가 고속으로 암호/복호가 가능

** 암호알고리즘의 안정성평가
--> 대표적으로 NIST의 CMVP 가 있다.
--> 암호알고리즘->암호모듈->정보보호제품->응용시스템 순으로 평가한다.
--> CMVP는 암호기술의 적합성, 암호키운용 및 관리 물리적 보안 항목으로 평가한다.

* 평가기준 중요요소
1. 암호해독 비용이 암호화된 정보의 가치 초과
2. 암호해독 시간이 정보의 유효기간 초과


** 위험관리 = 보안정책 -> 위험분석 (위험분석 : 자산식별 -> 위협 및 취약점 평가 -> 위험의 측정)
    -> 대책 선택 -> 대책 구현 -> 잔여위험 수용

** 워터마크 -> 판매자정보를 은닉하고, 저작권표시 용도
** 핑거프린트 -> 구매자 추적정보를 은닉하고, 구매자 추적 용도




 

인터넷 쿠키

Posted by ironmask84
2017. 2. 17. 18:01 컴퓨터공학/Security


고객이 특정 홈페이지를 접속할 때 생성되는 정보를 담은 임시 파일로 크기는 4KB 이하로 작다. 쿠키는 애초 인터넷 사용자들의 홈페이지 접속을 돕기 위해 만들어졌다. 특정 사이트를 처음 방문하면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 다음에 접속했을 때 별도 절차 없이 사이트에 빠르게 연결할 수 있다.

쿠키는 사용하는 웹브라우저가 자동으로 만들기도 하고 갱신하기도 하며 웹사이트로 기록을 전달하기도 한다. 따라서 개인의 사생활을 침해할 소지가 있다. 이용자가 인터넷에서 어떤 내용을 봤는지, 어떤 상품을 샀는지 등 모든 정보가 기록되기 때문이다. 온라인 광고업체들은 쿠키를 이용해서 인터넷 사용자의 기호 등을 수집·분석해 광고전략을 짜는 데 유용하게 활용해왔다. 

또 보안문제를 유발하기도 한다. 회원번호나 비밀번호 등이 유출될 가능성이 있기 때문이다. 그래서 마이크로소프트는 인터넷 익스플로러 5.0 이상에서는 쿠키 거부 기능을 첨가했다.

- [네이버 지식백과] 쿠키 [cookie] (두산백과) - 


* 웹 사이트는 해당 사이트에 쇼핑정보, ID, 암호, IP주소 등의 세션 정보를 기억하기 위해
  쿠키를 사용한다. 

  1. 임시 쿠키 : 인터넷 익스플로러가 실행하고 있는 시간만큼만 유효, 익스플로러가 종료되면 삭제된다.
  2. 영구 쿠키 : 인터넷 익스플로러 세션을 통해 하드디스크에 저장된다. 보존기간은 설정에 따라 다르다.

--> 익스플로러에서는 도구-인터넷옵션-개인정보 탭에서 보호정책 단계를 선택할 수 있다.


* 인터넷 익스플로러는 "InPrivate"모드를 통해 탭을 열어 쿠키정보 저장을 안하게 가능
* 크롬은 "시크릿"모드를 통해 탭을 열어 쿠키정보 저장을 안하게 가능

 

한국 최고재벌회사 삼성전자 부회장의 영장 청구

Posted by ironmask84
2017. 2. 14. 21:51 생각과 일상/사회이슈 및 생각


사실 이번 검찰에서의 영장 청구는 2번째인 재청구이다.

2015년 7월... 그때 당시 나는 삼성물산 주식 주주였다.. (얼마되지 않는 주식 수 였지만..)
http://ironmask.net/211

작년 말부터 우리나라의 정치는 뒤집어질 정도로 엉망이 되었다..
국제적 망신 수준이다..
이제는 전국민이 알 것이다. 비선실세 최순실 국정농단...

최순실과 그의 측근들도 문제가 엄청나지만,
나는 삼성전자가 이 일에 관여가 되어있다는 기사에 많은 관심을 가지고 있다.

내가 삼성물산 주식 주주였던 이유도 있지만,
그것보다 국민연금이 개입되어 있다는 것에 분노를 느낀다.
우리나라 전국민의 노후대책 보루인 국민연금...  이미 예산이 많이 무너져가고 있고 앞으로 노령인구 증가로 인해
연금 수령에 대해 비관적인 여론이 대세다..
그러한 국민연금이 삼성물산 주식의 대주주였는데, 삼성물산과 제일모직 합병에 손을 들어줬다.
합병 시의 합병비율이 삼성물산 주주는 손해보는 구조였는데 국민연금은 손을 들어줬다..
합병 후 지금까지도 별다른 주가 상승은 없고 아직도 손해보는 구간이다.

2017년 1월 중순에 이재용 삼성전자 부회장에게 영장이 청구되었다는 소식에 조금은 기대했다.
혹시나 했지만, 기각이 되었다.

오늘 다시 재 청구가 되었다.

우리나라 최고재벌 회사의 승계자인 만큼 이재용씨는 합당한 절차로 승계 이행을 위해,
국민연금에게 손해 배상을 제대로 해주기를 바란다.
(맘 같아서는 합병 전 삼성물산 주주 모두에게 보상을 해주길 바라지마는..)

그리고 세금도 좀 팍팍 내서 사회에 많은 환원을 해주기를 바란다.