NOWS 53

(임베디드) Command injection vulnerability check 커맨드 인젝션 취약점 점검

커맨드 인젝션 취약점- OWASP : https://www.owasp.org/index.php/Command_Injection 시스템 함수의 사용을 권고하지 않음 (제약해야함)open() / seek() / write() / close()system ()exec(), execlv(), execve() 등 exec 계열 함수 * 임베디드 리눅스 환경이라 가정 1) 커맨드 인젝션 취약점에 노출될 가능성이 있는 함수 를 사용하는 프로그램 탐지/식별How To?$ find . -type f -executable(OR) $find . -type f perm(1) 함수 이름과 같은 문자열을 포함하고 있는 실행파일 식별$ find (PATH) -type f -executable -exec grep system {} ..

NOWS/Security 2017.09.07

Firmware 이해하기 (2) IDA

printf("abc"); 파라미터 셋업 - 파라미터 주소 설정출력 함수 호출 주소는 어떻게 알까?컴파일 후, 링커가 설정해준다. 시작 주소값 확인. 1) li 파라미터 값 확인하기2) UART Boot Message 확인하기Entry at 0x80001000Starting program at 0x80001000...3) BSS 초기화 코드 찾아서 Load address 찾기BSS 영역 : 초기화되지 않은 전역변수, 초기화되지않은 정적변수 nopli $a0, 0x1234 //BSD 시작주소li $a1, 0x2344 //BSD 끝주소 BSS 초기화하는 코드 - 일정한 패턴이 있음BSS 시작주소를 알 수 있다" BSS 시작주소 - Boot Code Size = Boot Code " 시작주소 추정 가능

NOWS/Security 2017.09.06

Firmware 이해하기 (1) MIPS 이해하기

(1) MIPS basic- CISC vs. RISC MIPS RISC : * 모든 inst 사이즈가 동일 (32bit - 4Byte) 코드 사이즈 줄이는데에 불리 * 같은 면적의 CPU Die를 더 효율적으로 이용할 수 있음 Register:* 레지스터 이름은 $로 시작한다* $zero : /dev/zero와 용도가 비슷. 읽기전용. 읽으면 16진수 0x0 반환. 초기화 시 사용.* load XX : 데이터 로드. lb, lw, licf. byte, word, immediate(const value)* save XX : 데이터 저장. sb, sw, si* branch XX : 분기. bne (branch not equal), be* jump XX : 함수 호출 시 사용. JAL (jump and lin..

NOWS/Security 2017.09.06

mac osx 에서 mysql 설치

* 환경 : max osx 10.10.5 (요세미티) pre-requisite : homebrew 설치 설치 및 실행 $ brew install mysql $ mysql.server start cf. 여기서 아래와 같은 에러가 뜰 수 있음.... ERROR! The server quit without updating PID file (/usr/local/var/mysql/emzeiui-MacBook-Air.local.pid). 해결책 -- $ ps aux | grep mysql 이미 실행중인 mysql 의 pid를 확인하여 사살 -- $ kill (mysql_pid)mysql 재실행 -- $ mysql.server restart $ mysql -u root Welcome to the MySQL monit..

NOWS/MEMO 2016.07.12

mac osx (10.10 이상) 에서 mysql 삭제

sql 연습하려고 설치 시도하는데, 처음엔 홈페이지에서 dmg 파일 받아서 패키지 설치까진 했는데... 그러고나서 터미널에서 할 줄 몰라서 헤매다가 homebrew로 또 설치... 두개 헷갈려서 brew꺼 지웠는데, 다시 dmg로 설치한거 하려니까...이상해서 이거 uninstall을 하고싶었는데...인터넷 검색결과 따라하려니까 파일이 없다?... 참고링크 : http://php-built.com/uninstall-mysql-from-os-x-yosemite/ 기존에 uninstall 방법에서와 차이점은 요세미티 (10.10) 에서는 /etc/hostconfig 파일이 존재하지 않는다. 대신에 이거 두개를 해줘야 함 $ sudo rm -rf /Library/LaunchDaemons/com.microsof..

NOWS/MEMO 2016.07.12

프로세스 - part 1. 프로세스 기술(description) 과 제어

part 1. 프로세스 기술(description) 과 제어 프로세스 : 수행 중인 프로그램 프로세스의 필수 적인 요소프로그램 코드 및 연계된 데이터의 집합프로세스를 식별하기 위한 구조 : Process Control Block (PCB) PCB의 주요 역할 : 프로세스의 다중처리 지원을 위해 프로세스 문맥의 정보를 유지프로세스가 인터럽트 될 때, PCB에 정보를 저장하고 추후 재 스케줄링 될 때 해당 정보를 적절히 복구하여, 프로세스 수행에 차질이 없도록 함 프로세스 상태2-상태 프로세스 모델 : 수행-비수행5-상태 프로세스 모델 : 생성-(준비-수행-블록)-종료cf. 준비큐. 블록큐.보류된 프로세스의 특성즉시 수행 불가보류 상태를 명시적으로 해제하지 않는 이상 해당 상태에서 벗어날 수 없다보류 이유 ..

SSL 프로토콜

Handshake 프로토콜서버와 클라이언트간의 상호인증을 수행하고, 사용할 키 교환 방식, 대칭키 암호 방식, HMAC 방식, 압축방식 등의 보안속성을 협상 Change Cipher Spec 프로토콜Handshake 프로토콜에 의해 협상된 압축, MAC, 암호화 방식 등이 이후부터 적용됨을 상대방에게 알림 Alert 프로토콜세션의 종료 또는 오류 발생시 이를 상대방에게 알림 Record 프로토콜상위계층 메시지들이 보안성이 유지되며 전송될 수 있도록 하기 위하여, 메시지 분할, 압축, 메시지 인증, 암호화 등의 작업을 수행

NOWS/Security 2016.07.06

암호 공격 방식

암호단독공격(ciphertext only attack)오로지 암호문 만을 가지고 평문이나 키값을 찾아내는 방법으로, 평문의 통계적 성질, 문장의 특성 등을 추정하여 해독 기지평문공격(known plaintext attack)공격자가 일정한 평문에 대한 암호문을 알고있을 때, 스니핑한 암호문에 대해서 암호화 방식을 추론하여 공격하는 방법. 선택평문공격(chosen plaintext attack) 암호방식을 알고있을 때, 평문을 추측하여 암호화 해본 뒤 비교해가며 실제 평문을 추정해가는 공격방식. 선택암호문공격(chosen ciphertext attack) 복호화 방식을 알 때 키값을 추정하여 복호화 하는 방법 (공개키 암호화의 경우 이 방식이 쓰임)

NOWS/Security 2016.07.06