플래시해킹을 막을수 있을까요
민G
제가 플래시 5.0이 나오면서 숨겨진기능중 다른swf파일을 자기와 바꿔쳐서 마치 자기인양 돌려주는 액션을 써서 디버그를 하던기억이 납니다. 이렇게 디버그하다보니 당시에 유행하던 플래시게시판 사이트의 swf들을 모두 불러와서 디버그를 돌렸더니 그안의 변수들이 적나라하게 들어나더군요.
문제는 이 변수가 조작이 가능합니다.
변수에 admin이 있는것이 보이고 아예 패스워드까지 보이더군요.
아마 패스워드와 대조해보고 맞으면 글을쓸수있게 해놓것 같았습니다.
지금에야 말이지만 당시에는 장난을 좀쳤었습니다.
그걸루 admin 이렇게 사람이름하고 내용은 해킹당했습니다. 뭐이런장난이었죠.
당시에 상업용으로 내놓으려고 하셨던분들은 좀 당황했을지도 모릅니다.
한동안 질문을 많이 하고해서 알아봤지만 알아낼수가 없었습니다.
그냥 서버로 값을 넘기고 패스워드는 플래시에서 처리하지않고 서버에서 받아서한다. 이것이 대안이었는데
결국 최종단계에서 플래시에변수가 생성되는것은 막을수가 없더군요.
어느사람은 운영자인지 아닌지검사하는 루틴을 두라는데 그래봤자 결국 변수를 기준으로 검사할것 아닌가요
그리고 플래시가 페이지에서 사라졌다 다시 나타나거나 리프레쉬되었을때 다시 로그인해야되는데
php나 asp같은 스크립트 언어들은 4.0이 들어오면서 이문제때문에 결국 세션을 도입하게되었습니다.
플래시가 만일 어플리케이션의 영역을 구축하려면 인터랙티브 무비뿐아니라 이러한 세션을 지원해야된다고생각합니다.
현재버젼으로 세션구현을 할수있는방법은 플래시의 쿠키입니다.
그리고 그 쿠키를 md5로 암호화해야합니다.
1. swf를 보는사람은 패스워드와 암호를 넣게되면 암호가 md5화되어 쿠키에 저장되고 동시에 서버로 전송됩니다.
2. 서버에서는 들어온 md5 데이터와 저장되어어있는 md5가 맞으면 해당 유저로 인정하고 데이터를 보내줍니다.
3. 이 데이터를 다시 돌려받은 swf는 해당 데이터를 사용합니다.
4. 만일 장면이 바뀌거나 했을경우 서버로 md5데이터를 다시전송합니다. 이때는 passwd같은 변수에서 보내는것이 아닌 쿠키에 저장되어있는 md5를직접 전송합니다.
5. 이럴경우 시간이 어느정도지났을경우 쿠키는 자동파기되므로 암호는 알수없습니다.
장점과 단점이있습니다.
장점: 쿠키를 사용하므로 쿠키 파괴시간내에서는 플래시를 닫고 다시열어도 로그인상태로 인정된다.
단점: md5암호화 알고리즘이 너무 용량이 커서 플래시에 임베드시킬경우 로딩시간이 필요하다.
md5는 매크로매디아에서 현재 제공하고있습니다만
이것은 너무 무겁더군요.
더 가벼운 다른 알고리즘이 필요한데
혹시 이것에 대해 생각해본적이 있으신분이 계신가요
-
토리
갤러수다님께 질문 하나만 해도 될까요? session 값을 플래시에서 어떻게 연동하는지? 간단한 예문이라도... ^^
-
간지포텐
어렵다...^^;;
-
하늘이
하나두 멀겟네
-
연하얀
session.. 쓰시면 됩니다.
어차피 로그인 등의 기반을 가지는 flash를 만드실려면,
asp,php,jsp 등의 언어를 통해야만하니...
그냥 서버에 저장하는 것이 젤 좋죠. 굳이 패스워드를 swf에 저장해야할 이유가 있을까요? 흠... -
사람
그렇쵸... 사실상.. 플래시에서는 보안이 가장 취약 부분이기 때문에 그부분에 대해서는 타 언어나 시스템에 견주었을때에는 할말이 없어지는건 사실입니다. 그동안의 매크로미뎌의 정책은 오픈소스의 개념이기 때문에 모든 소스가 공개되고 sdk 도 공개 되는형태였습니다. 그랬기 때문에 웹유저의 97% 이상이 설치하게 된 플러그인이 되었고 확산이 쉬웠던것이죠.. 하지만... 플랙스등과 같은 큰 규모의 어플에서 부터 리아, 서버연동등의 다양한 형태의 보안이 생명인
-
리네
액션의 소스를 변형한다고해도 최종적으로 메모리에 올라가게되면 조작이 가능합니다. 요즘은 플래시파일을 크래킹해서 불러올수있도록도하기때문에 플래시 디버깅을 쓰기가 용이하게되어있거든요. 플래시 어플리케이션은 일종의 단말기역할을 하기때문에 단말기쪽에서 데이터를 컨트롤하게끔되면 매우 위험하게 되는 상황이발생할수도 있어서요. 기존의 erp 솔루션같은경우 웹페이지로 제작이 어려운점이 실시간 갱신이 반드시 필요하기때문이죠. .net류의 프로그램으로 제작하게되면 유지보
-
아이돌
음.. swf 락 걸어주는 플그램 돌리면 당장은 왼만한건 막을수 있긴 한데.. 그것도 좀더 깊이 들어가면... 결국 코드를 추출해낼수 있다고 하는데.. 어째꺼나.. Flashincrypt 2.8 이걸 이용하면 왼만한 최신버전의 소스분석기에서 변수도 엉뚱하게 물음표로 다 바뀝니다. 물론 소스분석기들이 다시 업하면 소용없어지겠지만 아직은 잘돌아 갑니다. 이것과 함께 위에서 말씀하신거 처럼 넘어가고 오는 값들을 암호화 하고 다시 복호화 하는등의 처리를