해킹을 위해서 3가지의 조건이 필요하다.
1. 가치
2. 접근성
3. 지속성
가치는, 해킹의 목적이 해커에게 가치 있어야 한다.
접근성은, 지속적인 해킹 시도를 가능하게 해준다. 이는 해킹에 있어서 매우 중요한 요소이다. 여러가지 인자값, 환경에서 많은 시도 이후 성공해내는게 해킹이기 때문이다.
지속성은 가치와 접근성이 지속적인가에 초점이 있다.
해킹에 성공했다고 하더라도 해당정보가 10초만에 가치가 사라지거나, 접근되는 정보가 매번 바뀐다면 해커는 해킹에 흥미를 잃게 될 것이다.
이로써 해킹이라는 행위 이전에 해커또한 사람이라는 점을 이용하여 방어하는 방법의 잠재성을 알 수 있다.
기술적으로 아무리 아름답게 막더라도, 결국 시간이 지나면 해커는 우아하게 보란듯이 해킹한다.
하지만 해커라는 사람을 기만한다면, 해킹을 시도하려는 시도는 줄 것이다.
실용적인 방어는 효율적인 방어이다.
보안은 돈과 역설적인 관계이다.
기업에서 보안은 돈과 직접적인 연관이 있지만 투자 대상에서 밀리기 마련이다.
따라서 비용을 절약하며 방어하는 것이 효율적인 방어이다.
비용은 크게 두가지로 나뉘어진다.
시간적비용과, 금전적비용으로 나뉘게 되는데 이는 모두 자원으로써 취급받는다.
따라서 개발 시간, 엔드 포인트측에서 대기하는 시간, 개발 비용, 유지 비용, 보수 비용을 모두 감안하여 보안제품을 개발하여야 한다.
이를 모두 만족하는 해커를 기만하는 방법은 단순히 해커의 실험에 순순히 따라주지 않는 솔루션이라고 볼 수 있다.
웹 서비스에 대한 브루트포싱, sql자동화 공격에 대응하기 위해서는
captcha, waiting을 적용하여 방어하고
reversing과 같은 직접 분석은 api hook과
inline code patch, 디버거 감지를 통해서 정적분석과 동적분석을 무력화한다.
하지만 가장 좋은 방법은 가능한 모든 코드를 서버사이드에 두어서 해커가 클라이언트측 코드를 변경하여도 얻는 이득을 최소화 시키는 것이다.
또한 문서에 대한 보안은 추가적으로 공격적인 보안이 필요하다.
적극적인 감청을 통해 네트워크상으로 이동되는 문서를 검사하고, 목적지를 감시하며
usb와 같은 이동식저장장치의 사용을 제한하고
물리적으로 보호대상을 복사하는 모든 매체(사진을 통한 복사와 같은 위험)의 사용을 제한한다면 효과적인 보안이라 할 수 있겠지만 이는 비용과 시간의 소모가 크다.
따라서 문서에 워터마크를 의무화하거나, 특정 뷰어가 없다면 문서의 열람을 제한하는 솔루션이 효과적이다.
또한 카메라에 대응하여 특정한 필름이나, 색상을 사용한다면 물리적인 매체에 대한 공격도 어느정도 선에서 방어할수있다.
'리버싱' 카테고리의 다른 글
About process hollowing (0) | 2020.09.02 |
---|---|
64비트 프로세스 은닉 (3) | 2020.04.09 |
reversing.kr (Replace.exe) (1) | 2020.03.27 |
reversing.kr (Music_Player.exe) (0) | 2020.03.27 |
reversing.kr (Easy_UnpackMe.exe) (0) | 2020.03.27 |