컴퓨터를 활용선에서 쓸때도 그렇고, 개발하려고 쓸때도 오류가 종종 발생합니다. 아주 고약하지는 않다면 마음의 평정을 가지고 해결하려고 하다보면 해결이 됩니다.
STM32 개발처럼 IDE와 도구 상에서 체크해야 할 옵션이 많고 코드를 동적으로 생성하는 UI가 제작사에서 정책적으로 바꾸는 경우에는 사용법이나 활용법, 구현하려는 프로젝트의 원리를 잘 숙고하면 해결이 되는데요.
시스템 오류가 해킹으로 있는 현상이라면 정말 고약하게 작동이 오작동이 되기도 합니다.
이 경우 잘 판단을 하는 방법으로
(1) 현상과 인과의 구분
(2) 나타나는 오류 메시지에 대한 이해
(3) 표시되는게 속여지는 문제
이 세가지가 일반화될 수 있는 판단 조건입니다.
(1) 현상과 인과의 구분은 메타적인 인식인데요. 보통 현상과 인과는 하나의 짝처럼 발생해서 두가지가 일치되는 것이 일반입니다. 예를 들면 옵션창에서 특정 기능이 체크가 안되어 있으면 그 기능은 작동을 안하는 것이고, 체크가 되어 있으면 작동을 하는 것입니다. 이 옵션으로 인해 오류가 발생했다면 현상을 보고 인과를 파악해도 큰 문제가 없습니다.
그런데 속임을 의도한 경우라면 메모리 인젝션이나 시스템 파일이 역공학후 리패키징된 경우 현상과 인과는 다르게 되죠. 이 예도 들어보면 라우터에서 파란빛의 LED가 들어오면 채널 본딩이라고 하는데, 실재로는 다른 결과를 겹치게 해서 의도한 현상일 수도 있습니다.
이 경우 (2) 오류 메시지를 잘 살펴야 하는데, 현상을 속이는 경우 특히 오픈소스를 가져다가 변조하면 오류 메시지에 의존하는 판단에 심각한 착오를 일으킵니다.
그래서 다들 (3)을 이해할 수 있어서, SDK 재설치나 IDE 재설치를 하는데, 이 경우에도 문제가 이어지는 경우가 있네요. 즉 SDK 재설치나 IDE 재설치가 해결법인데, 재설치 도중에 파일들이 덮어씌워지거나 메모리 상태가 다시 변조되는 경우에 해당합니다. 그러면 내부 작동이라 (1)과 (2)가 (3)처럼 일어나니, 재설치가 해결법이 아니라고 인식되는 경우도 있네요. 그러면 해결법을 찾았는데도 해결법으로 안믿어지기도 하네요.
이는 미친 인식 같지만, 누군가 사용자 계정을 털어서 작동상황을 보고 있는 경우에 해당되네요. 자동화하는 기술이 있는지는 미확인입니다.
프로그램 작성시 이런 일들이 일어나면 학습효율에도 영향을 주네요.
특별히 HDD가 갑자기 액세스가 5분간 빠르게 되는 경우가 컴파일할때도 일어나는데 이경우 현상들의 유사성에 의해 현상이 겹쳐져서 속여지는 것으로 판단됩니다.
(a) 파일 덮어씌워짐
(b) 안티바이러스가 실시간 검진중임
(c) 그냥 작업부하임
이런 현상들을 잘 살펴두고 판단하면 좋네요.
때로는 논리적인 것을 지켜야 하기에 논리적(또는 표현상의 흐름)이어야 한다고 생각이 되서 “에게 그런게 어떻게 가능해?”라고도 느끼는데요. 해킹은 상식적으로 있을 수 없다고 논리적인 사고가 인식하는 것을 역이용해서 인식불가능하게 해킹을 만들기도 해서 유의되어야 합니다.
그러니 논리적이지 않은 듯해도 있을 수 있다는 발상도 개인의 노하우이고 휴리스틱한 감각입니다.
VPN의 예를 들면
(가) 세션당 암호화를 한다 → VPN 사용전에 IP가 탈취되면 암호화키도 탈취된다
(나) VPN에 로그가 남으니 괜찮다 → 사용자 계정이 VPN 사용전에 뚫리면 메모리 인젝션의 영향으로 로그가 잘못 남겨진다
(다) VPN은 안전하다 → 해커가 공개 VPN을 만들고 사용자에게 쓰게 유인해서 리버스 프록시로 전환한다 (피싱등에 이용)
이런 현상도 있게 되서 문제가 큽니다.
이 경우 현상과 인과를 분리해서 그 증상의 의도를 알면 의외로 판단이 잘 되네요.