Category Archives: Security

Hooking 후킹 – Code path (Inline patch) 코드 패치, 인라인 패치

해당 파일을 직접 변경하는 방법으로 일반적으로 후킹은 메모리를 대상으로 진행하지만, 몇몇 특수한 상황인 경우, 파일을 직접 수정할 수도 있다. 이는 패킹된 데이터에도 종종 이용하는데, 암호화 해제가 완료되는 시점에 해제된 코드를 인라인 패치를 통해서 수정하고 프로그램을 실행하도록 하는 구조이다. 즉 파일에 비어있는 영역을 이용하여 기계어로 처리하는 로직을 변경하는 것이다. 먼저 프로그램 내에서 빈 공간을 확인한 후에

Read More

후킹 Hooking

후킹에 대해 어느 정도 진행해야 할까 고민이 많이 되었다. 후킹은 영어로 “걸다”라는 의미로, 우리가 익히 알고 있듯이 “가로 채기”와 같다. 즉 중간에 끼어들어 정보를 훔쳐보거나, 가로 채는 MITM(Man in the Middle) 방식으로 원제공자와 처리자 사이에서 지나가는 정보를 보고 이를 조작하는 공격과 유사하다고 할 수 있다. 후킹은 무엇인가를 노리는 낚시와 같이 가장 대표적인 방식으로 특정 프로그램과

Read More

LINUX IPTABLE – Limit the number of incoming tcp connections

오늘 아시는 분이 Linux 에서 Syn Flood 공격 차단에 대해서 문의 해 왔습니다. 아래 정책인데, 보면 limit per second 를 이용해서 특정횟수이상 초단위 연결을 차단하는 룰셋인것 같습니다.

  그리고 이상한 TCP 플래그의 트래픽도 차단하는 룰셋도 함께 적용하면 좋을듯합니다.

  위 룰셋은 플래그가 일반적이지 않은 TCP 트래픽을 차단합니다.    

안티 디버깅(Anti-debugging, 디버거 탐지) – INT3 예외 처리

How to debugging detect? 프로그램 역분석, 즉 프로그램 디버깅 방법을 배웠다면, 해당 프로그램의 코드를 그대로 보는 것과 같아서, 숙달되면 프로그램의 모든 코드를 손쉽게 확인할 수 있다. 이를 통해 개발자가 원하지 않았던 방식으로 처리 흐름을 바꾸거나 데이터를 바꿔 치기 하는 등 악용할 수 있는 소지가 많다. 이를 방지하기 위해 개발된 기술이 바로 안티 디버깅으로, 말 그대로

Read More

프로세스(Program) 보호

안티 디버깅과 프로세스 보호는 약간 차이가 있다. 안티 디버깅은 디버깅을 하지 못하도록 하여 프로그램의 실행 내용을 분석하지 못하도록 방해하는 행위로, 프로세스 보호와도 혼용하기도 하지만, 프로세스 보호는 후킹과 같은 외부 프로세스에서 해당 프로그램의 데이터를 조작하지 못하도록 방지하는 기능이라 할 수 있다. 쉽게 얘기하면 정당한 경로로 함수를 호출했는지를 확인하는, 안티 디버깅의 2차적 보안 기능인 셈이다. 안티 디버깅은

Read More

MSSQL 사용자 권한 확인하기

오늘은 오랫만에 MS-SQL에 대해 진행하도록 하겠습니다.   뭐.. MS-SQL의 경우 GUI가 잘되있어서 T-SQL을 사용할 일이 거희 없지만, 그래도 GUI로 확인하는것보다 표나, 텍스트 값이 더 정확하고, 세밀하다는것 잘 아실것 입니다. 그래서 오늘 아는 지인분에게 (박**대리님) 살짝 메신저로 문의를 해봤답니다. T-SQL으로 계정의 권한을 알수 있는지… 지인분께서 알려주신 사용자 권한을 T-SQL문으로 확인하는 방법을 확인해 볼까요?   select *

Read More

CISCO Allow only TELNET to specified hosts

허용할 host ip를 xxx.xxx.xxx.xxx에 지정하고 나머지는 모두 거부하도록 지정 telnet이 23이고 특정 포트만 지정하여야 하기 때문에 100이상의 extended access list로 지정합니다. log는 거부시에 기록을 남긴다는 옵션입니다. 이 기록은 syslog와 같은 툴을 통해 기록,확인이 가능하여 어느 호스트가 접근 시도하였는지 알수 있어 역추적시 유용합니다. (config)# access-list 105 permit tcp host xxx.xxx.xxx.xxx any eq 23 log (config)# access-list

Read More

네트워크 포랜식 분석

네트워크 포랜식 분석 방법에 대한 정의 및 예제 포렌식 네트워크 분석방법에 대해 알아 볼까합니다. 단계별 수집 가능 정보 및 로그 파일 종류 1단계 스위치 2단계 라우터 3단계 방화벽 4단계 VPN 5단계 침입탐지 시스템 취약점정보 -시간 정보 -버전 정보 -Time -Version -Time -Version -Time -Version -Time -Version -Time -Version -Time -Version -설정 정보 -정책 정보 -Port

Read More

Cisco allow icmp access list

Cisco Icmp의 경우 컴퓨터를 아는 사람이라면 거희 알고 잇는 네트워크 관리용 프로토콜입니다. 외부의 icmp는 막는게 좋습니다. 공격의 유용한 도구가 되지요. (서버의 경우 더더욱 막아야 합니다.) 라우터의 Access list(이하 ACL)을 통해 icmp를 보호하는 ACL로 Router에 구성하면 아주 좋습니다.^^ 허용할 네트워크를 xxx.xxx.xxx.xxx.에 입력하고 해당 서브넷을 yyy.yyy.yyy.yyy에 입력합니다. 여기서 서브넷은 호스트 수로 입력합니다.(255.255.255.0의 경우 0.0.0.255) echo 기본 기능으로

Read More

패킹 – 프로그램 코드 암호화

패킹은 요즘 안티 디버깅으로 각광받는 기술로 그 내용이 광범위 하여 따로 빼놓았다(원래 안티 디버깅 기법 중 하나이다). 프로그램의 코드를 분석하기 어렵도록 암호화하거나 정크 코드(불필요한 쓰레기 코드)를 삽입하는 행위를 패킹(Packing)이라 하는데, 이러한 패킹을 진행해주는 도구를 패커(Packer)라고 한다. 패킹 원리는 간단 한다. 프로그램을 특정 키를 이용하여 암호화 하고, 이를 해당 키를 이용해 복호화 해야 정상적으로 실행할 수

Read More